<roblox version="4">
  <Item class="Script" referent="0">
    <Properties>
      <string name="Name">FrameStudio</string>
      <token name="RunContext">0</token>
      <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
if not plugin then return end
local start = require(script.App)
start(plugin)
]]></string>
    </Properties>
    <Item class="ModuleScript" referent="1">
      <Properties>
        <string name="Name">App</string>
        <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
local Input = game:GetService("UserInputService")
local Run = game:GetService("RunService")
local Config = require(script.Parent.Config)
local Rig = require(script.Parent.CameraRig)
local Client = require(script.Parent.RecorderClient)
local UI = require(script.Parent.UI)

return function(plugin)
	local toolbar=plugin:CreateToolbar("Frame Studio")
	local toggle=toolbar:CreateButton("FrameStudioToggle", "Cinematic camera and viewport recording", "rbxasset://studio_svg_textures/Shared/InsertableObjects/Dark/Standard/Camera.png", "Frame Studio")
	local widget=plugin:CreateDockWidgetPluginGuiAsync("VOIDKSA_FrameStudio_v1", DockWidgetPluginGuiInfo.new(Enum.InitialDockState.Left,false,false,340,780,300,560))
	widget.Title="Frame Studio v"..Config.version
	local ui=UI.new(widget)
	local rig=Rig.new(plugin)
	local client=Client.new(plugin)
	local app={ rig=rig, client=client, ui=ui, widget=widget, plugin=plugin, alive=true, busy=false, recording=false, countdown=0, aspect="16:9", fps=30, duration=8 }
	local connections={}
	local function connect(signal,fn) table.insert(connections,signal:Connect(fn)) end
	local function status(text) if app.alive then ui.status.Text=text end end
	local function saveSettings()
		pcall(function() plugin:SetSetting("FrameStudioSettings1",{speed=rig.speed,smoothing=rig.smoothness,aspect=app.aspect,fps=app.fps,duration=app.duration}) end)
	end
	local ok,saved=pcall(plugin.GetSetting,plugin,"FrameStudioSettings1")
	if ok and type(saved)=="table" then
		rig.speed=math.clamp(tonumber(saved.speed) or 24,1,300); rig.smoothness=math.clamp(tonumber(saved.smoothing) or 0.75,0,1)
		app.aspect=saved.aspect=="Viewport" and "Viewport" or "16:9"; app.fps=saved.fps==60 and 60 or 30
		app.duration=math.clamp(tonumber(saved.duration) or 8,1,120)
	end
	ui.speed.Text=tostring(rig.speed); ui.smoothing.Text=tostring(rig.smoothness); ui.duration.Text=tostring(app.duration)
	ui.fov.Text=tostring(math.round(workspace.CurrentCamera.FieldOfView))
	local function choices()
		ui:setChoice(app.aspect=="16:9" and ui.wide or ui.viewport,app.aspect=="16:9" and ui.viewport or ui.wide)
		ui:setChoice(app.fps==30 and ui.fps30 or ui.fps60,app.fps==30 and ui.fps60 or ui.fps30)
	end
	choices()
	ui.onPage=function() ui.record.Text=(app.recording or app.countdown>0) and "Stop and save  |  Esc" or (ui.page=="Camera move" and "Record camera move" or "Record free take") end
	if client.token=="" then ui:showPage("Setup") end
	local function idle() return not app.busy and not app.recording and app.countdown==0 end
	local function refresh()
		ui.fly.Text=rig.mode=="fly" and "Release mouse  |  Esc" or "Start flying"
		ui.record.Text=(app.recording or app.countdown>0) and "Stop and save  |  Esc" or (ui.page=="Camera move" and "Record camera move" or "Record free take")
		ui.shotStatus.Text="Start: "..(app.a and "set" or "empty").."   /   Finish: "..(app.b and "set" or "empty")
	end
	function app:stop(reason)
		self.generation=(self.generation or 0)+1; self.countdown=0
		if self.busy and not self.recording then self.cancelPending=true; rig:stop(false); status("Cancelled. Your current view is kept."); refresh(); return end
		if self.recording then
			self.recording=false; self.busy=true; status("Saving your clip...")
			task.spawn(function()
				local response,err=client:request("/stop")
				self.busy=false
				status(response and (reason or "Clip saved. Open recordings folder to watch it.") or err)
				if response then self.lastFile=response.file end
				refresh()
			end)
		else status(reason or "Camera released. Your current view is kept.") end
		rig:stop(false); refresh()
	end
	function app:fly()
		if self.busy or self.countdown>0 then return end
		if rig.mode~="idle" then
			if self.recording then self:stop() else rig:stop(false); status("Mouse released. Set a view or start another take.") end
		else
			if Run:IsRunning() then status("Use Frame Studio in Edit mode. Stop the play test first."); return end
			rig:startFly(); status("Flying. WASD moves, Q / E changes height. Esc releases the mouse.")
		end
		refresh()
	end
	function app:start(kind,skipCountdown)
		if not idle() then return end
		if Run:IsRunning() then status("Stop the play test before recording."); return end
		if kind=="move" and (not self.a or not self.b) then status("Set start A and finish B before recording a move."); return end
		self.busy=true; self.cancelPending=false
		local response,err=client:request("/status")
		self.busy=false
		if not self.alive or self.cancelPending then return end
		if not response then status(err); return end
		if response.busy or response.state=="recording" then status("The local recorder is already recording. Stop that take first."); return end
		local generation=(self.generation or 0)+1; self.generation=generation
		self.countdown=skipCountdown and 0.01 or 3
		-- Hold the chosen start pose while the encoder starts; the actual move begins afterwards.
		rig:begin("hold")
		if kind=="move" then workspace.CurrentCamera.CFrame=self.a.cf; workspace.CurrentCamera.FieldOfView=self.a.fov; workspace.CurrentCamera.Focus=self.a.cf*CFrame.new(0,0,-64) end
		refresh()
		if not skipCountdown then
			for n=3,1,-1 do
				if self.generation~=generation or not self.alive then return end
				self.countdown=n; status("Recording in "..n.."...  Esc cancels."); task.wait(1)
			end
		end
		if self.generation~=generation or not self.alive then return end
		self.countdown=0; self.busy=true; status("Starting the video encoder...")
		local viewport=workspace.CurrentCamera.ViewportSize
		response,err=client:request("/start",{width=math.round(viewport.X),height=math.round(viewport.Y),studioName=game.Name,aspect=self.aspect,fps=self.fps})
		self.busy=false
		if self.cancelPending or not self.alive or self.generation~=generation then
			if response then client:request("/stop") end
			rig:stop(false); refresh(); return
		end
		if not response then rig:stop(false); status(err); refresh(); return end
		self.recording=true; self.lastFile=response.file; self.started=os.clock()
		if kind=="move" then rig:startMove(self.a,self.b,self.duration) else rig:startFly() end
		status(response.message); ui.meta.Text=response.width.." x "..response.height.."  /  "..response.fps.." fps  /  Video only"
		refresh()
	end
	function app:previewMove()
		if not idle() then return end
		if not self.a or not self.b then status("Set start A and finish B first."); return end
		rig:startMove(self.a,self.b,self.duration); status("Previewing A to B. Esc stops the move."); refresh()
	end
	rig.onMoveEnd=function()
		if app.recording then task.delay(0.4,function() if app.alive and app.recording then app:stop("Move saved. Open recordings folder to watch it.") end end)
		else rig:stop(false); status("Move preview finished. Record move saves it as a video."); refresh() end
	end
	rig.onError=function() app:stop("Camera stopped safely. Try the take again.") end
	local function async(fn) return function() task.spawn(fn) end end
	connect(ui.fly.Activated,function() app:fly() end)
	connect(ui.record.Activated,async(function() if app.recording or app.countdown>0 or app.busy then app:stop() else app:start(ui.page=="Camera move" and "move" or "free") end end))
	connect(ui.returnView.Activated,function() if idle() then rig:restore(); ui.fov.Text=tostring(math.round(workspace.CurrentCamera.FieldOfView)); refresh(); status("Original view restored.") end end)
	connect(ui.wide.Activated,function() if idle() then app.aspect="16:9"; choices(); saveSettings() end end)
	connect(ui.viewport.Activated,function() if idle() then app.aspect="Viewport"; choices(); saveSettings() end end)
	connect(ui.fps30.Activated,function() if idle() then app.fps=30; choices(); saveSettings() end end)
	connect(ui.fps60.Activated,function() if idle() then app.fps=60; choices(); saveSettings() end end)
	ui.onSpeed=function(n) rig.speed=n; saveSettings() end
	ui.onSmoothing=function(n) rig.smoothness=n; saveSettings() end
	ui.onFov=function(n) rig.fov=n; if rig.mode=="idle" then workspace.CurrentCamera.FieldOfView=n end end
	ui.onDuration=function(n) if idle() then app.duration=n; saveSettings() end end
	connect(ui.shotA.Activated,function() if idle() then app.a=rig:capture(); refresh(); status("Start A saved. Move the camera and set finish B.") end end)
	connect(ui.shotB.Activated,function() if idle() then app.b=rig:capture(); refresh(); status("Finish B saved. Preview the move or record it.") end end)
	connect(ui.playMove.Activated,function() app:previewMove() end)
	connect(ui.recordMove.Activated,async(function() app:start("move") end))
	connect(ui.folder.Activated,async(function() local _,err=client:request("/folder"); if err then status(err) end end))
	local polling=false
	local function poll()
		if polling or not app.alive then return end
		polling=true
		local response,err=client:request("/status")
		polling=false
		if not app.alive then return end
		if response then
			ui.reconnect.Parent.Visible=false
			ui.connection.Text=response.busy and "Recorder busy in another Studio session." or "Local recorder connected. Files stay on this PC."
			ui.connection.TextColor3=ui.colors.mint
			if app.recording and response.state=="recording" then
				local elapsed=math.floor(response.seconds)
				ui.record.Text=string.format("Stop and save  |  %02d:%02d",math.floor(elapsed/60),elapsed%60)
			end
			if app.recording and response.state~="recording" then
				app.recording=false; rig:stop(false); status(response.message); refresh()
			end
		elseif app.recording then app:stop("Recorder connection lost. Check the latest clip in your output folder.")
		else ui.connection.Text=client.token=="" and "Not paired  /  Open Setup to connect" or "Recorder offline  /  Open the desktop app"; ui.connection.TextColor3=ui.colors.muted; ui.reconnect.Parent.Visible=true end
	end
	connect(ui.reconnect.Activated,async(poll))
 connect(ui.pair.Activated,async(function()
  if not idle() then return end
  app.busy=true;status("Pairing with your desktop app...")
  local response,err=client:pair(ui.pairCode.Text)
  app.busy=false
  if not app.alive then return end
  if response then ui.pairCode.Text="";ui:showPage("Free camera");status("Connected. Start flying or record your first take.");poll()
  else status(err) end
 end))
	connect(toggle.Click,function() widget.Enabled=not widget.Enabled end)
	connect(widget:GetPropertyChangedSignal("Enabled"),function()
		toggle:SetActive(widget.Enabled)
		if not widget.Enabled then app:stop() else task.spawn(poll) end
	end)
	connect(Input.InputBegan,function(input,processed)
		if not widget.Enabled or Input:GetFocusedTextBox() then return end
		local key=input.KeyCode
		if key==Enum.KeyCode.Escape then app:stop(); return end
		local shortcut=(Input:IsKeyDown(Enum.KeyCode.LeftControl) or Input:IsKeyDown(Enum.KeyCode.RightControl)) and (Input:IsKeyDown(Enum.KeyCode.LeftAlt) or Input:IsKeyDown(Enum.KeyCode.RightAlt))
		if shortcut and key==Enum.KeyCode.F then app:fly(); return end
		if shortcut and key==Enum.KeyCode.R then task.spawn(function() if app.recording or app.countdown>0 or app.busy then app:stop() else app:start("free") end end); return end
		if rig.mode=="fly" and not processed then rig:key(key,true) end
	end)
	connect(Input.InputEnded,function(input) rig:key(input.KeyCode,false) end)
	connect(Input.InputChanged,function(input)
		if rig.mode~="fly" then return end
		if input.UserInputType==Enum.UserInputType.MouseMovement then rig:look(input.Delta)
		elseif input.UserInputType==Enum.UserInputType.MouseWheel then rig.speed=math.clamp(rig.speed*1.15^input.Position.Z,1,300); ui.speed.Text=string.format("%.1f",rig.speed) end
	end)
	connect(Input.WindowFocusReleased,function() rig.focused=false; rig.keys={} end)
	connect(Input.WindowFocused,function() rig.focused=true end)
	connect(plugin.Deactivation,function() if rig.mode~="idle" then app:stop("Camera released because another Studio tool was selected.") end end)
	function app:destroy()
		if not self.alive then return end
		self:stop(); self.alive=false; rig:restore(); saveSettings()
		for _,c in connections do c:Disconnect() end
		ui:destroy(); widget:Destroy(); toolbar:Destroy()
	end
	connect(plugin.Unloading,function() app:destroy() end)
	task.spawn(function()
		while app.alive do
			if widget.Enabled or app.recording then
				if Run:IsRunning() and rig.mode~="idle" then app:stop("Camera released for the play test.") end
				if not app.busy then poll() end
			end
			task.wait(1)
		end
	end)
	return app
end
]]></string>
      </Properties>
    </Item>
    <Item class="ModuleScript" referent="2">
      <Properties>
        <string name="Name">Brand</string>
        <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
-- Embedded RGBA pixels of assets/frame-studio.png, resized for plugin UI.
-- Image data only. This avoids external network requests for the brand image.
local pixels = "101c18ff101c19ff101c19ff101c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c18ff101c19ff111c19ff111c19ff101d19ff111d19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff101c19ff101c19ff101c19ff101d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff111c19ff111d19ff111c19ff101c19ff111c19ff101c19ff111c19ff101c19ff111d19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101b18ff101c18ff101c18ff101c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff101c18ff101c19ff101c19ff111c19ff101c19ff111c19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff101c19ff111c19ff111d19ff111c19ff111c19ff101c18ff101c18ff111c19ff111c19ff111c19ff101d19ff101c19ff101d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff101c19ff101c19ff101c19ff111d19ff111d19ff111c19ff111c19ff101c19ff101c19ff111c19ff101c19ff101c19ff111c18ff111c19ff101c19ff101c19ff101c19ff111c19ff101c19ff111c19ff101c19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff111c19ff111c19ff101c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff101c18ff101c19ff101c19ff101c19ff111c18ff111c18ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff111c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff101d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c18ff111c19ff101d19ff101c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c18ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff111c18ff101c19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c19ff101c19ff111c19ff101c18ff101c19ff111c19ff101c18ff101c18ff101c19ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff101c19ff111c19ff101c18ff101c19ff111c18ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff101c19ff101c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c18ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c18ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff101c19ff111c19ff111c19ff101c19ff101c18ff111c18ff101c18ff101c18ff101c19ff101c18ff101c19ff101c19ff101c18ff101c19ff101c19ff101c18ff111c19ff111c19ff111c18ff111c19ff101c19ff111c18ff111c19ff101c19ff101c19ff101c18ff101c19ff111c18ff101c19ff101c19ff101c19ff101c19ff101c19ff101c18ff111c19ff111c18ff111d19ff111c19ff101c19ff101c19ff101d19ff111c19ff101c18ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff101c19ff101c19ff111c18ff101c18ff101c18ff101c18ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c18ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c18ff111c19ff101c19ff111c19ff101c18ff111c19ff111c18ff101c18ff101c18ff101c18ff101c19ff111c19ff101c19ff111c18ff111d19ff101c19ff111c19ff101c19ff101c18ff101c18ff101c19ff101c19ff101c18ff101c18ff101c19ff101c19ff101c18ff111c19ff111c19ff111c19ff111c18ff101c18ff111c19ff111c18ff101c18ff111c18ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff111d19ff111c19ff101c19ff111d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff101c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c18ff101c19ff101c19ff101c18ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c18ff111c18ff111c19ff111d18ff111c19ff111c19ff111c19ff101c18ff101c18ff101c19ff111c19ff111d19ff111c19ff101c19ff111c19ff101c19ff101c19ff101c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff111c18ff111c19ff101c19ff101c19ff101c19ff111c19ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c18ff101c19ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff111c18ff101c19ff101c19ff101c19ff101c19ff101c19ff101c18ff101c19ff111c19ff111c19ff111c19ff111c18ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff101c19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c18ff101c18ff101c19ff101c19ff111c18ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c18ff101c19ff101c18ff101c19ff111c19ff101c19ff101c19ff101c18ff111c19ff111c19ff111c19ff101c18ff101c18ff101b18ff101c18ff101c19ff101c19ff101c19ff111c19ff111c18ff101c19ff111c18ff101c19ff101c19ff111c19ff111c19ff101c19ff101c18ff101c18ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff101d19ff101c19ff111c19ff101c19ff111c19ff111c19ff101c19ff111c19ff111c19ff101c19ff101c19ff111c18ff101c19ff111c18ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c18ff101c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c19ff111d19ff111d19ff101c19ff101c18ff101c19ff101c19ff101c18ff101c18ff101c19ff111c19ff111c19ff101c18ff101c18ff111c19ff111c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff101c19ff101c19ff101c18ff101c18ff101c19ff111c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c19ff101c18ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c19ff111d19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff101c19ff101c19ff101c19ff101c19ff111c19ff101c18ff101c18ff101c19ff101c19ff111c19ff111c18ff111c18ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff111c19ff101c19ff101c18ff111c19ff111c19ff111c18ff101c19ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff111c19ff111c18ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff101c19ff111c18ff101c19ff101c19ff101c19ff101c18ff101c18ff111c19ff111c19ff101c19ff111c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff111c19ff101c19ff111c19ff101c19ff101c19ff101c18ff101c19ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff101c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111c18ff111c19ff101c18ff111c19ff111c18ff101c18ff101c18ff111c19ff101c18ff101c18ff101c18ff101c19ff111c19ff101c19ff111c18ff111c19ff101c19ff101c19ff111c19ff111c19ff101c19ff111c19ff111c18ff101c19ff101c19ff101c19ff111c19ff111c19ff111d19ff111c19ff101c19ff111c19ff101c18ff101c18ff101c18ff111c18ff101c18ff101c19ff111c19ff101c19ff101c19ff101c18ff111c19ff101c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff101c19ff111c18ff101c18ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff101c19ff101d19ff111c19ff101c19ff111c19ff111d19ff101c19ff101c18ff101c19ff101c18ff101c18ff101c18ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff101c18ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff101c19ff111c19ff111c19ff111c19ff101d19ff111c19ff101c19ff111d18ff101c18ff111c18ff101c18ff101c18ff111c18ff111c18ff111c18ff111c18ff101c18ff101c18ff101c18ff101c19ff101c19ff111c18ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c19ff101c19ff111c19ff101c19ff101c19ff111c19ff101d19ff101c19ff111c18ff101c18ff111c19ff101c19ff101c19ff101c18ff111c19ff101c18ff101c18ff101c18ff101c18ff111c18ff111c19ff101c19ff101c19ff111c18ff111c18ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff101c19ff101c19ff111d19ff111c19ff111d19ff111c19ff111d19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111d19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c18ff111d19ff101c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101d19ff101d19ff101c19ff111c19ff101c19ff111c18ff111c18ff111c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff111c18ff111c19ff111d19ff111c19ff111c19ff101c18ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff111c19ff111c19ff111c19ff111c18ff101c19ff101c19ff111c19ff101c19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff101c19ff111c19ff101c18ff101c19ff101c19ff111c19ff101c19ff111c19ff101c19ff101c18ff101c18ff101c19ff101c19ff101c18ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff101c18ff101c19ff111c19ff111d19ff111c19ff111d19ff111d19ff101c19ff111d19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff101c19ff101c19ff101c18ff111c18ff101c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111c19ff101c19ff111c19ff111d19ff111c19ff111c19ff101c19ff101c18ff111c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c19ff101c19ff101d19ff101c19ff101c19ff101c18ff101c18ff101c19ff111c19ff101c18ff101c19ff111c19ff101c19ff101c18ff101c19ff101d19ff111c19ff111c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff101d19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff101d19ff111c19ff111c18ff101c18ff111c19ff111c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff111c18ff101c19ff101c19ff101c18ff101c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101b18ff101c18ff101c18ff101c19ff111c19ff101c18ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff101c19ff101c19ff111c19ff111c19ff111c19ff101c18ff111c19ff101c18ff101c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff101c19ff101c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c19ff101c19ff101c18ff101c18ff101c19ff111d19ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff111c19ff101c18ff101c18ff101c18ff111c18ff101c18ff101c18ff101c18ff101c19ff111c18ff111c18ff111c19ff101c18ff101c18ff101c19ff101c18ff101c19ff111c18ff101c19ff101c18ff101c18ff101b18ff0f1a17ff0f1916ff0f1a16ff0f1a17ff0f1a17ff0f1a17ff0f1a17ff0f1a17ff0f1916ff0f1917ff0f1a17ff0f1a17ff101a17ff0f1a17ff0f1a17ff101a17ff101c18ff101c18ff101c18ff101c19ff111d19ff111c19ff101c19ff101c19ff111c19ff111c19ff101c19ff101c19ff111c18ff111c19ff111c19ff101c19ff101c18ff101c18ff111c19ff101c18ff0f1a17ff0f1a17ff0f1a16ff0f1a17ff0f1a16ff0f1a16ff0f1a16ff0f1a17ff0f1a16ff0f1a16ff0f1a16ff0f1a16ff0f1a17ff0f1a17ff0f1a17ff0f1b17ff101c18ff101c19ff101c19ff111c19ff101c19ff111d19ff111c19ff111d19ff111c19ff101d19ff111d19ff101c18ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c18ff101c19ff111c19ff111c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff101c18ff111c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff0d1614ff0c1513ff121f1bff162621ff162620ff15251fff15251fff15251fff15251fff15251fff15251fff152520ff15251fff15261fff162620ff162620ff172721ff14231dff0d1714ff0f1916ff111c19ff111c19ff111c19ff101c19ff111d19ff101c19ff111c19ff101c19ff101c18ff111c19ff111c19ff111d19ff111d19ff111c19ff101c18ff101c18ff0f1916ff0e1714ff162620ff172822ff172721ff172721ff172721ff162721ff172821ff172822ff172822ff172822ff172822ff172822ff172822ff172822ff172822ff14211dff0d1613ff0d1614ff101c18ff101c19ff111c19ff111c19ff111d19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff101c19ff111c19ff101c19ff101c19ff111d19ff111c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff101c19ff101c19ff101c18ff111c18ff111c19ff101c18ff101c18ff101c18ff101c18ff0f1a17ff0d1613ff2c493cff5b997cff75c49fff7bcfa8ff7bcfa8ff7bcda7ff7bcda7ff7bcda6ff7bcda6ff7bcda6ff7ccda6ff7ccea7ff7bcda7ff7bcda7ff7ccea7ff7ccfa8ff7bcfa8ff7bcca6ff5b987bff192b25ff0f1916ff111c19ff111c19ff101c19ff101c19ff111d19ff101c19ff101c19ff101c18ff111c19ff101c19ff111d19ff111d19ff111c18ff101c18ff0f1916ff1c2e27ff5c9b7eff7ccea8ff7dd0a9ff7dd0a9ff7dd0a9ff7ed0a9ff7ed0a9ff7ed1a9ff7ed1aaff7ed1aaff7fd1aaff7fd0aaff7ed0aaff7ed0aaff7ed0aaff7ed0aaff78c7a1ff5d9c7fff2e4d40ff0d1714ff0f1a17ff101c19ff101c19ff101c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c18ff111c19ff111c19ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff111c18ff101c18ff101c18ff101c18ff101c19ff101c19ff101c18ff101c18ff0f1a17ff101c18ff538a70ff8ae6bbff8feec2ff8deabfff8ce8bdff8ce9beff8de9beff8de9beff8de9beff8de9beff8de9beff8de9beff8de9beff8de9beff8ee9bfff8ee9bfff8ee9bfff8de9beff8de9beff93f2c5ff62a485ff0f1a17ff101b18ff101c19ff101c19ff101c19ff101c19ff111c18ff111c19ff101c19ff101c18ff101c19ff101c19ff101c19ff111c19ff101b18ff0f1a16ff64a888ff93f2c5ff8de9beff8de8beff8de9beff8de9beff8de9beff8ee9bfff8ee9bfff8ee9beff8ee9bfff8ee9bfff8ee9bfff8ee9beff8ee9bfff8ee9beff8de8beff8de9bfff90eec2ff8ce8bcff579277ff111e1aff0f1a17ff101c18ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff101c19ff111c19ff111d19ff101c18ff101c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c18ff101c18ff101c19ff101c18ff101c19ff111c18ff101c18ff101c18ff101c18ff0d1714ff558d73ff91f0c3ff8ce7bdff8be5bbff8be5bbff8ae5bbff8ae5bbff8be6bbff8be6bcff8be6bcff8be5bbff8ae5bbff8be5bbff8be5bbff8be5bbff8ce6bcff8ce6bcff8ce6bcff8ce5bcff8be5bbff8ce8bdff85dcb3ff1d3129ff0e1916ff101c19ff101c19ff101c19ff101d19ff111c19ff101c19ff101c19ff101c19ff111c19ff101c19ff101c19ff101c18ff0e1816ff1d322aff86deb4ff8de7bdff8be5bbff8be5bcff8be5bcff8ce6bcff8be6bcff8be6bcff8be6bcff8be6bcff8ce6bcff8ce6bcff8ce6bcff8ce6bcff8ce6bcff8ce6bcff8ce5bcff8be6bcff8be5bcff8ce7bdff91f0c4ff5a967aff0d1815ff101b18ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c18ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff101c19ff101c18ff101c18ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff111c18ff101c19ff111c18ff101c18ff0d1613ff2f5042ff8ce9bdff8ce7bdff8be5bcff8be5bbff8be5bcff8be5bbff8be6bbff8be6bcff8be6bbff8be5bbff8be5bbff8be5bbff8ae5bbff8be5bbff8be6bcff8be6bcff8be6bcff8ce6bcff8be5bbff8be5bbff8de9beff7fd3acff182a24ff0f1a17ff101c19ff101c18ff101c18ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101d19ff111d19ff111c19ff0f1917ff1a2c25ff82d7afff8de9beff8ae5bbff8ae5bbff8ae5bbff8be5bbff8be6bcff8be6bbff8be5bbff8be6bbff8be6bbff8be6bbff8be6bcff8be6bcff8ce6bbff8ce6bcff8ce6bcff8be6bcff8be5bcff8be6bcff8ce7bdff8eebc0ff345948ff0c1513ff101c18ff101c18ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff101c18ff111c19ff111c18ff101c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c19ff111c18ff101c19ff101c18ff101c18ff101c18ff101c18ff111c18ff111c19ff111c18ff101c18ff101c19ff101c18ff101c18ff0d1714ff63a586ff90edc2ff8be5bbff8be5bbff8be5bbff8be5bbff8de9beff91edc2ff90eec2ff8fedc1ff8fedc1ff8fedc2ff90edc1ff90edc1ff90edc1ff90edc2ff90edc2ff91eec3ff90edc2ff8fedc1ff90eec2ff8feec2ff4a7d66ff0c1513ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff101c18ff0d1614ff4e826cff91efc3ff90eec2ff8fedc1ff8fedc2ff8fedc1ff8fedc1ff8fedc1ff8fedc2ff90edc2ff90edc2ff90eec2ff90edc2ff90eec2ff90eec3ff91eec3ff8ee9bfff8be5bcff8ce5bcff8be5bcff8be5bcff8fedc1ff67ae8dff0e1815ff101b18ff101c18ff101c18ff111c19ff111d19ff111d19ff111d19ff111c19ff101d19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff101c18ff101c19ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff101c18ff101c18ff0f1a17ff172721ff7dcfa8ff8de8beff8be5bbff8be5bbff8be5bcff8eeabfff7fd0abff62a185ff609e83ff609f83ff60a083ff60a083ff60a083ff609f83ff60a083ff60a083ff60a083ff60a084ff61a084ff60a083ff5d9b80ff38614fff0f1b17ff0f1b17ff101c18ff101c18ff101c19ff101c19ff101c18ff101c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101b18ff101c18ff3c6553ff5f9c81ff61a184ff60a084ff5f9f83ff5f9f83ff5f9f82ff5f9e82ff609f83ff609f83ff609f82ff60a083ff5f9e82ff5f9e82ff619f83ff7dcca8ff8feac0ff8be5bcff8ce5bcff8be5bcff8de8beff7fd4adff192b24ff0f1916ff101c18ff101c19ff101c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c18ff101c19ff111c19ff111c19ff101c18ff101c18ff111c18ff111c18ff101c18ff101c18ff111c19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c18ff0f1916ff1d3129ff83d9b1ff8ce7bdff8ae5bbff8be5bbff8de9bfff7acaa6ff1e332bff0b1312ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1513ff0c1412ff0c1513ff101b18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c18ff111c19ff101c18ff101c18ff101b18ff0c1513ff0c1413ff0c1614ff0c1613ff0c1613ff0c1513ff0c1512ff0b1413ff0b1513ff0b1513ff0c1513ff0c1513ff0c1513ff0c1513ff0a1211ff1c2e28ff77c4a1ff8eeabfff8ce5bcff8ce5bcff8de7bdff87deb6ff20362dff0e1815ff101c18ff101c19ff111c18ff101d19ff111d19ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111d19ff101c19ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff111d19ff111c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff0f1916ff1d3129ff83d9b0ff8ce7bdff8be5bbff8be5bcff91eec4ff538c73ff0a1110ff111c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff101c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111d19ff111c19ff111c19ff101c19ff101c19ff101c18ff111c18ff101c19ff101c18ff101c19ff101c19ff101c18ff101c19ff101c19ff101c18ff101c18ff0f1b18ff081916ff081916ff091916ff081916ff0f1c18ff101c18ff101c19ff0a1110ff4c7e68ff91eec2ff8ce5bcff8ce5bcff8de7beff87dfb6ff20362dff0e1815ff101c18ff101c19ff111c19ff111c19ff111c19ff111c18ff111c19ff101c19ff111c19ff111d19ff111c19ff111c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff111c19ff111c18ff111c19ff111c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c18ff0f1916ff1c3029ff82d8b0ff8ce7bcff8be5bcff8ce6bdff91efc4ff50866fff0b1311ff101c18ff101c19ff101c19ff101c18ff101c19ff101c18ff101c19ff101c19ff101c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff101c19ff111c19ff111c19ff101c19ff111c19ff101c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c18ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff101c18ff101c19ff101c19ff101c19ff0d1b17ff131c19ff663f36ffa45648ffa55748ff693f35ff151e1aff0d1a17ff101c19ff0b1312ff497963ff91eec2ff8ce5bcff8ce5bcff8ee7beff87deb6ff1f362dff0e1815ff111c19ff111c18ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c19ff111c18ff111c18ff101c19ff111c18ff101c19ff101c19ff101c19ff111c18ff101c18ff111c18ff111c19ff111c19ff0f1916ff1c3028ff83d9b0ff8ce7bdff8be5bbff8ce6bcff91efc4ff51876fff0b1311ff101c18ff101c19ff111c19ff111c18ff111c19ff101c19ff101c19ff101c19ff111d19ff111c19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c19ff111c19ff101c19ff111c19ff101d19ff111c18ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c19ff101c18ff111c19ff101c19ff101c19ff101c19ff101c19ff101c19ff111c19ff101c18ff101c19ff0e1b17ff161f1bffae594affff7a65ffff7b66fffe7a66ffff7b66ffb35c4dff19221dff0e1b18ff0b1412ff4a7a64ff92eec2ff8de5bcff8ce5bcff8ee7beff87deb6ff1f352dff0e1815ff101c19ff101d19ff111c19ff111c19ff111d19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c19ff101c18ff101b18ff101c18ff101c18ff101c18ff101c19ff101c19ff111c19ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff101c19ff0f1916ff1c2f27ff82d8b0ff8ce7bdff8be5bbff8ce6bcff91efc4ff51876fff0b1311ff101c18ff101c18ff101c19ff111c19ff111d19ff101c19ff111c19ff101c19ff101c18ff101c19ff101c19ff101c18ff101c19ff101c19ff111c18ff101c19ff101c19ff101c19ff111c19ff111c19ff101c18ff101c19ff101c19ff111c18ff111c19ff101c19ff101c18ff111c19ff101c18ff111c19ff101c19ff101c19ff101c19ff111d19ff101d19ff101c19ff111c19ff111c19ff081916ff764439ffff7c66fff77864fff77864fff67864fff77764ffff7e69ff814a3fff071815ff0c1412ff4a7a64ff92eec2ff8ce5bcff8ce5bcff8ee7beff87deb6ff1f352cff0e1815ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff101c19ff111d19ff111d19ff111d19ff101d19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff111d19ff111c19ff101c19ff101c18ff101c18ff101c18ff111c19ff101c19ff101c19ff0e1916ff1c3028ff83d8b0ff8de8bdff8be6bcff8ce6bdff91efc4ff518770ff0b1311ff101c18ff101c18ff101c19ff101c18ff101c19ff101c19ff111c19ff101c18ff101c18ff101c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111d19ff101c19ff101c18ff101d19ff101d19ff111c19ff101c19ff101c19ff101c19ff101c18ff101c18ff111d19ff111c19ff111c19ff111d19ff111c19ff101c19ff101c19ff111c19ff101c18ff0f1c18ffc16252fffd7a65fff67864fff67864fff67864fff67864fffc7a66ffca6454ff131e1aff0b1412ff4a7a64ff92eec3ff8ce5bcff8ce5bcff8ee8beff86deb6ff1f352dff0e1815ff111c19ff111d19ff111c19ff111c19ff101c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff101c19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff101c18ff0f1916ff1c2f28ff83d8b0ff8de8bdff8ce6bcff8ce6bdff91efc4ff518870ff0b1311ff101c18ff101c18ff101c19ff101c19ff101c18ff101c18ff111c18ff101c18ff101c18ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff111c18ff101c19ff111c19ff111c19ff101d19ff111d18ff101c19ff111c19ff111c19ff111d19ff111d19ff101c19ff101c19ff111d19ff111d19ff101d19ff111d19ff111c19ff101c19ff111d19ff111c19ff0f1c18ff121d19ffca6554fffc7a65fff77864fff77864fff67864fff67864fffb7a65ffd66c5bff17201cff0a1311ff497963ff91edc2ff8ce5bbff8ce5bcff8de8beff87deb6ff1f352dff0e1815ff101c18ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c18ff111c19ff111c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff111c18ff101c18ff101c18ff111c18ff111c19ff111c19ff101c18ff0f1916ff1c3029ff83d9b0ff8de7bdff8ce5bcff8ce6bdff91efc4ff518970ff0b1311ff101c18ff101c19ff101c18ff101c19ff101c19ff101c18ff101c18ff101c18ff101c19ff111c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c18ff111c19ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c18ff101c19ff091a16ff9c5143ffff7d67fff77965fff67964fff67965fff67964ffff7d67ffa75749ff0a1916ff0b1412ff4a7a64ff91edc2ff8ce5bbff8ce6bcff8de8beff87deb6ff1f352dff0e1815ff111c19ff101c18ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111c19ff111c18ff111c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff0e1916ff1c3029ff84d9b2ff8de7bdff8ce6bcff8ce6bdff91efc4ff528970ff0b1311ff101c18ff101c18ff111c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff0c1a17ff332b25ffe4735fffff7c67fff97965fff97965ffff7c67ffe97360ff392e27ff0b1a17ff0b1412ff4a7a64ff91edc2ff8be5bbff8ce6bcff8ee8beff86deb6ff1f352cff0e1815ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff0e1816ff1c3029ff84d9b2ff8de8bdff8ce6bcff8ce6bcff90efc3ff528971ff0b1311ff101c18ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff0a1a17ff3b2e27ffb75f4fffe7725effe8725effbd6152ff402e28ff091916ff111c19ff0b1412ff497964ff90edc1ff8ce5bbff8ce6bcff8de8beff86deb6ff1f352cff0e1815ff101c18ff101c19ff111c19ff111d19ff101c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111c19ff101c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff101c18ff101c18ff101c19ff101c18ff101c18ff101c18ff0f1916ff1d3029ff84d9b1ff8de8bdff8be5bbff8be6bcff90eec3ff518870ff0b1311ff101c18ff101c18ff101c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff0b1714ff091612ff0a1613ff0a1713ff101c18ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff101d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c19ff101c18ff101c19ff0b1a17ff0e1b18ff272620ff282621ff0f1c19ff0b1a17ff101c19ff101c19ff0b1412ff497964ff90edc1ff8be5bbff8ce5bcff8de8beff86deb6ff1f352dff0e1815ff101c18ff101c18ff111c19ff101d19ff101d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff101c19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c19ff101c19ff101c19ff101c18ff101c18ff111c19ff101c19ff111c18ff101c18ff101c19ff111c19ff101c18ff111c18ff0f1916ff1c3028ff83d8b0ff8de8bdff8be5bcff8be5bcff90eec3ff528971ff0b1311ff101c18ff101c18ff111c19ff111c18ff111c19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff0b1814ff3a433fffa6a69effafb0a8ff525953ff0b1814ff0c1815ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111c19ff101d19ff101c19ff101c19ff101c19ff101c19ff0d1b17ff0d1b18ff0f1c19ff101c19ff101c19ff101c19ff0b1412ff4a7a64ff90edc2ff8be5bcff8be5bcff8de7beff86deb6ff1f352dff0e1815ff101c18ff101c18ff111c19ff101c19ff111c19ff101d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c18ff101c18ff101c18ff101c19ff111c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff111c18ff111c18ff101c19ff101c18ff101c18ff101c18ff111c18ff0f1916ff1c2f28ff83d8b0ff8ce8bdff8be5bcff8ae5bcff90eec3ff518971ff0b1311ff101c18ff111c19ff101c19ff101c19ff101c19ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff0e1a16ff1e2824ffd5d3cafffffbf1fffdf7edfff7f2e8ffabaca4ff323b37ff071310ff0e1a16ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111c19ff111d19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff111c19ff101c19ff0b1312ff4a7b65ff91eec2ff8be5bbff8ce5bcff8de7beff86deb6ff1f362dff0e1815ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111c19ff101d19ff101c18ff101c18ff101c18ff101c18ff101c19ff111c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff111c19ff101c19ff101c19ff101c18ff101c19ff0f1916ff1c3028ff83d8b0ff8ce7bdff8be5bbff8be5bbff90edc2ff528a71ff0b1311ff101c18ff101c19ff111c19ff101c18ff101c18ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff0a1613ff3e4742fff6f0e6fff6f0e6fff5efe6fff5f0e6fffdf7edffeae5dbff838680ff1c2724ff081411ff101b18ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff101c19ff101c19ff111c19ff101d19ff111d19ff101c19ff101c19ff0b1412ff4b7b65ff91edc2ff8be5bbff8be5bcff8ce7bdff86deb6ff20372eff0e1815ff101c19ff111c19ff111d19ff111c19ff101d19ff101c19ff101c19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c18ff111c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c18ff111c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff0f1916ff1d3029ff83d9b1ff8ce7bdff8be5bbff8be5bbff90eec2ff538b72ff0b1311ff101c18ff101c19ff111c19ff111c19ff111d19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff0a1613ff404843fff4efe6fff5f0e6fff5efe6fff5efe6fff5efe6fff7f2e9fffef8eeffd4d1c8ff5e645eff0e1a17ff0b1713ff101c18ff101c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111d19ff111c19ff101c19ff101c19ff101c19ff0b1312ff4b7c66ff91eec2ff8be5bbff8be5bbff8ce7bcff86dfb5ff20372eff0e1815ff111c18ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff101c18ff101c19ff111c19ff111c19ff111c18ff101c18ff101c18ff101c18ff111c18ff101c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff0f1a17ff16241fff7bcca7ff8deabfff8ae5bbff8ae5bbff8fefc3ff416f5bff0b1312ff101c18ff111c18ff101c18ff111c19ff111d19ff111c19ff101c19ff101c19ff101c18ff101c18ff101c18ff0a1613ff3f4742fff4efe5fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fffaf4ebfffbf5ebffb5b5adff3b443fff081411ff0e1916ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff101c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c19ff0c1513ff3b6352ff90eec2ff8be6bbff8be6bcff8deabfff7cd0aaff172822ff0f1a17ff101c18ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c18ff111c18ff101c18ff111c18ff111c18ff101c19ff101c19ff111c19ff101c18ff101c18ff101c18ff101c18ff111c19ff0e1714ff3e6957ff8be6bcff90eec2ff90f0c4ff70bb99ff172821ff0f1a17ff101c18ff101c18ff111c18ff101c19ff111c19ff111d19ff111c19ff111c19ff101c19ff101c19ff101c18ff0b1713ff3f4742fff4efe5fff6f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e7fff5f0e6fff5f0e7fffdf7edfff0ebe2ff8d9089ff202b27ff071410ff0f1b18ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff111d19ff111c19ff111d19ff111c19ff101c19ff111c19ff101c19ff101c19ff101c19ff101c18ff0f1b17ff14231eff6db393ff92f1c5ff91efc4ff8eeac0ff426f5cff0d1613ff101c18ff101c18ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111c19ff101c19ff101c18ff101c18ff111c18ff101c18ff111c18ff0e1815ff2d4b3fff4f846dff43705cff172923ff0e1816ff111c19ff101c19ff101c18ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c19ff101c18ff111c19ff0b1713ff404843fff4efe5fff6f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5f0e6fff7f1e8fffef8eeffdad7ceff656a65ff101c18ff0a1612ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff101c19ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff0e1816ff172621ff436e5bff50856eff315144ff0e1916ff101b18ff101c19ff101c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff101c18ff101c19ff101c18ff101c19ff101c18ff101c19ff101c18ff101c18ff101c18ff111c18ff111c19ff111c19ff111c19ff101c18ff111c19ff111c19ff101c18ff101c19ff0d1614ff0b1412ff0c1413ff0f1a17ff101c19ff101c18ff101c19ff101c18ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff111c19ff101c18ff101c19ff0b1713ff404843fff4efe5fff6f0e7fff5f0e6fff5f0e6fff5f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e7fff5f0e6fff5f0e6fff5efe6fff9f3eafffcf6ecffbbbbb3ff424a45ff091512ff0d1815ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff101c19ff101c18ff111c19ff0f1a17ff0c1513ff0b1312ff0d1614ff101c18ff101c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c18ff111c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c18ff101c19ff111c19ff111c19ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff0a1713ff3f4742fff4efe5fff6f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e7fffcf7edfff3eee4ff959790ff26302cff071410ff0f1b17ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111d19ff111d19ff101c19ff101c19ff111c19ff101c19ff111c19ff111c19ff111c19ff101c19ff111c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff101c19ff101c19ff111c19ff111c19ff101c18ff111c19ff111c19ff101d18ff101c19ff101c19ff101c19ff111c19ff101c19ff111c19ff111c18ff111c19ff111d19ff111c19ff111c19ff101c19ff111d19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c19ff101c19ff111d19ff101c18ff111c19ff101c19ff101c18ff101c18ff101c19ff0a1613ff3f4743fff4efe6fff6f0e7fff5f0e6fff5f0e7fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff6f1e8fffef8eeffe0dcd3ff6e736dff131f1bff091512ff101c18ff111c19ff101c19ff111d19ff111d19ff111c19ff101c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111d19ff111d19ff111c19ff101c18ff111c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c18ff111c18ff101c19ff101c18ff111c19ff111d19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c18ff101c19ff111c19ff101c19ff111c18ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c18ff111c18ff101c19ff0a1713ff3f4743fff5f0e6fff6f1e7fff5f0e6fff5f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e7fff5f0e6fff4efe6fff4efe6fff8f3eafffdf7edffc3c2baff49514cff0a1713ff0b1714ff111d19ff111d19ff111d19ff101c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c18ff111c19ff111c19ff111c19ff111c19ff111c18ff101c18ff101c18ff101c18ff101c18ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff111c19ff101c18ff101c18ff111c19ff101c19ff0b1713ff3f4743fff4efe6fff6f0e7fff5f0e6fff5f0e6fff5f0e7fff5f0e6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e7fff5f0e6fff5f0e7fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5f0e6fffbf5ebfff5f0e7ffa0a19aff2b3431ff0c1814ff111c19ff101c19ff101c19ff111c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c18ff111c18ff111c19ff111c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c19ff101d19ff101c18ff111c19ff111c19ff111d19ff111c18ff101c19ff101c19ff111c19ff111c19ff101c18ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff111c18ff101c19ff111c18ff101c19ff0b1713ff3f4843fff4efe6fff6f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e7fff5f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff4efe6fff6f0e7fffef8eeffe2ded6ff3a423eff0b1714ff111c19ff101c19ff101c18ff101c18ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c18ff101c18ff101c18ff111c19ff101c19ff111c19ff101c19ff101c18ff101c19ff111c19ff101c18ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff101c18ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff111c19ff101c18ff111c19ff0b1713ff3f4843fff4efe6fff6f1e7fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff4efe6fff5f0e6fff5efe6fff5efe6fffffbf1ff989992ff081411ff111c19ff101c19ff101c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff101d19ff101c19ff111c19ff111d19ff111d19ff111c19ff101c18ff111c19ff111c19ff111c19ff101c18ff101c19ff101c18ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c18ff111c18ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff101c19ff101c19ff101c18ff101c19ff101c19ff111c19ff101c19ff111c19ff111c18ff0b1713ff3f4743fff5f0e6fff6f0e7fff5f0e7fff5f0e7fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5f0e6fff5f0e6fff5efe6fff5f0e6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff4efe6fff5efe6fff4efe5fff4efe6fffffdf3ff8e918aff081511ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101d19ff101d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c18ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c18ff101c18ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c18ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c19ff101c19ff101c18ff101c19ff111c19ff111d19ff111c19ff101c18ff0b1713ff3f4843fff4efe5fff6f0e7fff5f0e6fff4efe6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff5f0e6fff5f0e6fff5efe6fff4f0e6fff5efe6fff5efe6fff5efe6fff5efe6fff5efe6fff4efe5fff4efe5fff8f2e9fffef9eeffcac9c1ff2b3531ff0d1916ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff101c18ff111d19ff111d19ff111d19ff111c19ff101c18ff101c18ff111c19ff111c19ff101c19ff101c19ff111c19ff111c18ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff101c19ff0b1713ff3f4742fff4efe5fff5f0e7fff4efe6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff5efe6fff5efe6fff4efe6fff5f0e7fffef8eeffe4e0d7ff7a7f79ff182420ff0c1815ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111c19ff111d19ff111c19ff111c18ff111c19ff101c19ff101c19ff101c19ff101c19ff101c19ff111c18ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff101c19ff111c18ff111c19ff101c19ff111c19ff111c19ff101c19ff101c18ff101c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff0a1713ff3e4742fff4efe6fff6f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff4efe5fff5efe6fff5efe6fffcf6edfff4efe6ff9d9f98ff2b3531ff071310ff0e1a17ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff111c19ff101c19ff111c19ff101d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c18ff111c18ff111c18ff101c19ff101c19ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c19ff0a1713ff3f4742fff4efe6fff6f0e7fff5f0e6fff5f0e6fff5efe6fff5f0e6fff5efe6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5f0e6fff5efe6fff4efe5fff9f4eafffcf7edffbebdb5ff474f4aff091512ff0c1815ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c18ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c18ff101c19ff101c19ff111c18ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff101c19ff111d18ff111c18ff101c18ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff101c19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c19ff0a1713ff3f4742fff4efe6fff6f1e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff5efe6fff5efe6fff5efe6fff5efe6fff4efe6fff7f2e8fffef8efffd8d5cbff676e68ff111d1aff091512ff101c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c19ff101c18ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c18ff111c19ff101c18ff101c18ff101c18ff101c18ff111c19ff101c19ff111c19ff111c19ff111c19ff101c19ff111c19ff111d19ff111c19ff111c19ff101c19ff101c19ff101c18ff0e1715ff0c1412ff0c1513ff0f1a17ff101c18ff101c18ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff101c18ff0a1713ff3f4742fff4efe6fff6f0e7fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff5efe6fff5efe6fff5efe6fff4efe6fff5f0e6fffdf7eeffece8deff8a8e87ff202b27ff071410ff0f1b18ff101c19ff111d19ff111d19ff111c19ff111c19ff101d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c18ff0f1b17ff0c1413ff0b1412ff0e1714ff101c18ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c18ff111c18ff101c18ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff101c18ff101c18ff0e1815ff284438ff487862ff3d6654ff15241fff0e1815ff101c18ff101c19ff111c19ff111d19ff111c19ff101c19ff111c19ff111d19ff111c19ff111c19ff111d19ff101c18ff0a1613ff3e4742fff4efe5fff6f1e6fff5f0e6fff5f0e6fff5f0e6fff5f0e6fff5efe6fff4efe6fff5efe6fff4efe5fffaf5ebfff9f4eaffaeafa7ff37413cff071410ff0d1a16ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff0f1916ff15231eff39604fff4a7b64ff29473aff0e1815ff101c18ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c18ff101c19ff101c18ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff101c18ff101c18ff101c19ff111c19ff101c18ff101c18ff0d1614ff39614fff89e3b8ff90efc3ff90efc3ff6bb391ff14241eff0f1a17ff101c18ff101c19ff111c19ff111c19ff101c19ff101c19ff111d19ff111c19ff111c19ff111c19ff101c19ff0a1713ff3f4742fff4efe5fff6f0e7fff5f0e6fff5f0e6fff5f0e6fff4efe6fff4f0e6fff4efe5fff8f2e8fffef8efffcdcbc2ff565e59ff0c1915ff0b1713ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff101b18ff13211cff67ac8cff8feec2ff90eec2ff8be6bbff3c6753ff0d1614ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111d19ff111c19ff111d19ff111d19ff111c18ff111c18ff101c19ff101c18ff111d19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff0f1a17ff14221dff78c7a2ff8febc0ff8be5bbff8be6bcff90f0c4ff416e5bff0c1412ff111c18ff111c18ff101c18ff111c19ff111c19ff101c18ff101c19ff111c19ff111c19ff101c19ff101d18ff0b1713ff3f4742fff4efe5fff5f0e6fff4efe6fff4efe6fff4efe6fff4efe6fff6f0e7fffef8eeffe6e2d9ff7b7f78ff192521ff081411ff101b18ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff0d1513ff3a6150ff90eec2ff8be5bcff8be5bbff8eebc0ff7ccfa9ff172721ff0f1a17ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff101c19ff111d19ff111d19ff111d19ff101c18ff101c18ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c18ff101c19ff101c19ff0f1916ff1c3029ff84d9b1ff8ce7bdff8be5bbff8be5bcff90eec3ff548b73ff0b1311ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff0b1713ff404843fff5f0e6fff5f0e6fff4efe6fff4efe6fff4efe6fffcf6ecfff4f0e6ff9ea098ff2d3733ff071411ff0e1a16ff101c19ff101c19ff101c19ff101c19ff111c18ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111c19ff0b1412ff4b7d66ff90edc1ff8be5bbff8be5bbff8ce7bdff87dfb7ff20372eff0e1815ff101c19ff101d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c18ff101c18ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff0f1916ff1d3129ff83d9b1ff8ce7bdff8be5bbff8be5bcff90eec3ff538b72ff0b1312ff111c19ff101c19ff101c19ff101c19ff111c18ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff0c1814ff38413cfff4efe5fff6f1e8fff4f0e6fff9f4eafffcf6ecffbfbeb5ff48514bff091613ff0c1815ff111d19ff111d19ff101c19ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff0b1412ff4b7c66ff90edc1ff8be5bbff8be5bbff8ce7beff87dfb7ff21372eff0e1815ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c18ff111c19ff111c19ff101c18ff101c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c18ff101d19ff111c19ff101c19ff111c19ff111c19ff101c19ff0f1916ff1d3029ff83d8b1ff8ce7bdff8ae5bbff8be5bcff90eec3ff528970ff0b1311ff101c18ff111c19ff101d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111c19ff101c19ff101c18ff101c18ffa7a8a1fffffaf0fffff9efffdad7cdff69706aff111d19ff091512ff101c18ff111c19ff101c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101d18ff111c19ff111c19ff111c19ff111c19ff111c19ff0c1412ff4a7b65ff90edc2ff8be5bbff8be5bcff8de8beff86dfb7ff20362eff0e1815ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c18ff101c18ff101c18ff101c19ff101c19ff111c18ff111c19ff101c19ff111c19ff101c19ff101c19ff111d19ff111c19ff111d19ff111c19ff111c19ff0f1916ff1c2f27ff82d8afff8ce7bdff8be5bbff8be5bcff8feec3ff51876fff0b1211ff101c18ff101c19ff101c19ff111c19ff101c19ff101d19ff111d19ff111d19ff111c19ff101c19ff101c19ff111c19ff0e1a17ff17221fff5c635cff666c66ff232d29ff071310ff0f1b18ff111c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c18ff111c19ff111d19ff101c19ff101c18ff111c19ff0b1412ff4b7c66ff91eec2ff8be5bbff8be5bcff8de7beff86dfb6ff1f362dff0e1815ff101c19ff101c19ff111c19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff101c18ff111c19ff101c19ff101b18ff101c19ff101c19ff101c19ff101c18ff101c18ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff101d19ff111c19ff111d19ff0f1916ff1c2f28ff82d8afff8ce7bdff8be5bbff8be5bcff8feec3ff4f876fff0b1311ff101c18ff101c18ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff0f1a17ff091512ff071410ff0d1916ff101c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff101d19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff101c19ff111d19ff111c19ff111c18ff101c18ff101c18ff101c19ff0b1412ff4b7c66ff90eec1ff8be5bbff8be5bcff8ce7bdff85deb5ff1f352cff0e1815ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff101d19ff111c19ff111d19ff111c19ff101c18ff101c18ff111c19ff101c18ff101c18ff101c19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c18ff101c19ff111c19ff111c19ff0f1916ff1c2f28ff82d8b0ff8ce7bdff8be5bbff8be5bcff8feec2ff50876fff0b1311ff101c18ff101c18ff111c19ff101c19ff101c19ff101c19ff111c19ff101c19ff111c19ff111c19ff111d19ff111c19ff101c19ff101c19ff101c18ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111c19ff101c19ff111c19ff111c18ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c18ff111c18ff101c18ff101c18ff101c19ff0b1412ff4a7c65ff90edc1ff8be5bbff8be5bbff8ce7bdff85deb5ff1f352dff0e1815ff101c18ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c18ff111c19ff0f1916ff1c2f28ff82d8b0ff8ce7bdff8be5bbff8be5bcff8feec3ff508870ff0b1211ff101c18ff101c18ff101c19ff101c19ff111c19ff101c18ff101c18ff101c19ff111c19ff101c18ff111c19ff111c19ff101c19ff101c19ff101c18ff101c19ff111c19ff101c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111c19ff111d19ff101c19ff101c18ff111c19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff101c19ff101c19ff111c19ff101d19ff111c19ff101c19ff111c18ff101c19ff0b1412ff4a7b65ff90edc1ff8be5bbff8be5bbff8ce7bdff85ddb5ff1f352dff0e1815ff101c18ff101c19ff111c19ff111d19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff101c19ff101c19ff111c18ff101c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c18ff111c19ff111c19ff111c18ff101c19ff0e1916ff1c3028ff83d8b1ff8ce7bdff8be5bbff8be5bcff90eec3ff518870ff0b1311ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff101c18ff101c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c18ff111c19ff111c19ff101c19ff101c18ff111c19ff111d19ff101c19ff111c19ff101c19ff0b1412ff4a7b65ff90edc1ff8be5bbff8be5bcff8de7bdff85ddb5ff1e352cff0e1815ff101c18ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff101c19ff101c18ff101c19ff101d19ff101c19ff111d19ff101c18ff0e1816ff1c2f28ff83d8b0ff8ce7bdff8ae5bbff8ae5bcff90efc3ff518870ff0b1311ff111c19ff111c18ff111c19ff101c18ff101c18ff101c18ff101c18ff111c19ff101c18ff111c19ff111c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff101c18ff101c19ff101c18ff111c19ff101c19ff0b1412ff4a7b65ff90edc1ff8be5bbff8be5bcff8de7bdff85ddb5ff1e352cff0e1815ff101c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111c18ff111c19ff111c19ff111c19ff101c19ff101c18ff111c19ff111c19ff111c19ff111c19ff101c19ff101c18ff111d19ff111d19ff101c19ff111c19ff0f1916ff1c2f28ff82d8afff8ce7bdff8ae5bbff8ae5bbff8feec3ff50876fff0b1311ff111c19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c18ff111c19ff101c19ff111c19ff101c19ff111c19ff101d19ff111d19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff101c19ff101c19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111c19ff101c19ff101c19ff101d19ff0c1412ff4a7b65ff90edc2ff8be5bbff8be5bcff8de7bdff85ddb5ff1e352cff0e1815ff111c19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101d19ff111d19ff111c19ff111c19ff111c19ff101c18ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff101c19ff0f1916ff1c2f28ff81d8afff8be7bdff8ae5bbff89e5bbff8feec2ff50876fff0b1312ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff111c19ff111d19ff111c19ff111c19ff101c19ff101c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff101c19ff101c19ff111c19ff111c19ff111d19ff111c19ff111c19ff101d19ff111d19ff111c19ff111c19ff101c19ff101c19ff101c18ff101c19ff101d19ff0c1412ff4a7b65ff90eec2ff8be5bbff8be5bbff8ce7bdff85deb5ff1f352dff0e1815ff111c18ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c18ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff111c19ff111c19ff101c19ff111c19ff111c19ff101c19ff111c19ff111c18ff101c18ff0f1916ff1c2f28ff81d7afff8be7bcff8ae4bbff89e4bbff8fedc2ff4f866eff0b1311ff101c18ff101c18ff111c19ff111c19ff101c18ff101c18ff101c18ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c18ff111c19ff111d19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff101c19ff111d19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff0c1412ff497a64ff90eec2ff8be5bcff8be5bbff8ce7bdff85deb5ff1f352cff0e1815ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c19ff101c19ff101c18ff111c18ff111c18ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c18ff0f1916ff1c2f28ff81d7afff8be7bcff8ae4bbff8ae4bbff8feec2ff50856eff0b1311ff101c18ff101c18ff101c19ff101c18ff101c19ff101c18ff111c18ff101c19ff111c19ff101c19ff111c19ff101c19ff101c18ff101c18ff101c19ff111c19ff111c19ff111d19ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101c19ff111d19ff101c19ff101c18ff101c18ff111c19ff111c19ff101c19ff101c18ff0b1412ff497963ff90eec2ff8be5bbff8ae5bbff8ce7bdff85ddb5ff1f352cff0e1815ff111c18ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff101d19ff101c19ff101c18ff101c19ff111c19ff101c18ff111c18ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c18ff111c19ff0f1916ff1d3129ff82d8b0ff8be7bcff8ae5bbff8ae5bbff8fedc2ff589479ff09100fff101b17ff0f1b17ff0f1b17ff0f1a17ff0f1b17ff101b17ff101b18ff101b17ff0f1b17ff0f1b17ff0f1b17ff0f1a17ff0f1a17ff101b17ff101c18ff101c18ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff101c19ff101c19ff101c19ff101c18ff101b18ff101b17ff0f1b17ff0f1a17ff0f1b17ff0f1b17ff101b18ff101b17ff0f1b17ff0f1a17ff101b17ff101b17ff101b17ff101b18ff09100fff51886eff90edc2ff8ae5bbff8be5bbff8ce7bdff85deb5ff1f362dff0e1815ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff101c18ff101c19ff111c19ff0f1916ff1c3028ff81d7afff8be7bcff8ae4bbff8ae5bbff8be7bcff82d8b0ff315344ff121f1bff13201cff12201bff12201cff13211cff13211cff13211cff13211cff13211cff13201bff12201bff13201cff13211cff121e1aff0c1513ff0f1a17ff111c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c19ff101c18ff101c19ff101a17ff0d1513ff111e1aff13201bff12201bff12201bff121f1bff121f1bff131f1bff121f1bff121f1aff121f1aff121f1aff121f1aff121f1bff111d1aff2c4a3dff7fd3abff8ce7bdff8ae5bbff8ae5bbff8ce7bdff84ddb4ff1e352cff0e1815ff101c18ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111c19ff101c19ff111c19ff101b18ff14221eff76c7a2ff8ce9beff8ae4baff8ae4baff8ae4bbff8ce7bdff87e2b7ff77c7a1ff76c5a0ff76c5a0ff76c5a0ff76c5a0ff76c5a0ff76c6a0ff77c6a1ff76c6a0ff76c6a0ff76c6a0ff77c6a0ff78c7a2ff75c39eff548c72ff162620ff0f1a16ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff101c18ff111c19ff0f1a17ff172621ff548d72ff75c29eff77c5a0ff76c5a0ff75c49eff76c49fff76c49fff76c49fff76c49fff75c39eff76c39eff76c49fff76c39fff76c29eff76c49fff87e0b7ff8ce8bdff8ae5bbff8ae5bbff8ae5bbff8ce9beff7ccfa9ff162620ff0f1a17ff101c18ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff101d19ff101c19ff101c19ff111c19ff101c19ff111c19ff111c19ff101c19ff111c19ff0c1513ff579278ff90eec2ff8ae4baff8ae4baff8ae4bbff8ae5baff8be6bcff8de9beff8deabeff8de9beff8deabfff8de9bfff8deabfff8deabfff8eeabfff8deabfff8deabfff8deabfff8eeabfff8eeabfff8febc0ff94f3c7ff5d9c80ff0e1815ff101b18ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c18ff0e1916ff5f9e80ff93f2c5ff8eeabfff8deabfff8deabfff8eeabfff8eeabfff8eebc0ff8eeac0ff8eeabfff8eeabfff8eeabfff8eeac0ff8eebc0ff8febc0ff8feac0ff8ce6bdff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8fefc2ff5e9d81ff0c1613ff101c18ff101c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c18ff111c19ff111d19ff111c19ff111c18ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c19ff111c19ff0e1815ff233a31ff84dcb3ff8de8bdff8ae4baff8ae4bbff8ae5bbff8be5bbff8be5bbff8ae5bbff8be5bbff8be5bcff8be5bcff8be5bcff8be5bcff8be5bcff8ce6bcff8be6bcff8be5bcff8ce6bcff8ce6bcff8be5bcff8ce8beff84dbb3ff1b2f27ff0e1916ff101c19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111c19ff101d19ff111c19ff111c19ff111c18ff0f1916ff1e322aff85ddb4ff8ce7bdff8ae5bbff8be5bbff8be5bbff8be5bbff8be5bcff8be5bbff8be5bcff8be5bcff8be5bbff8be5bcff8be5bcff8be6bcff8be6bcff8be5bcff8be5bcff8ae5bbff8ae4bbff8ae5bbff8ce8bdff88e1b8ff274237ff0e1714ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff101c19ff101c18ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff111c19ff101c19ff111c19ff101c19ff101c19ff0c1513ff3d6654ff8be7bdff8deabfff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8ae5bbff8be6bcff8be5bcff8be5bbff8be6bcff8be6bcff8be5bbff8ae5bbff8ce9beff81d7afff192b24ff0f1916ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff0f1916ff1b2e27ff83d9b0ff8ce8bdff8be5bbff8be5bbff8be5bcff8be5bbff8be5bbff8be5bbff8be6bcff8ae5bbff8ae5bbff8be6bcff8be5bcff8be6bcff8be5bcff8be5bbff8be5bbff8ae5bbff89e4bbff8ce9beff8de9bfff426f5bff0c1513ff101c19ff101c19ff101d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c18ff111c19ff111d19ff111c19ff111c19ff101c18ff111c19ff111c19ff111c18ff111c19ff111c19ff111d19ff101c19ff111c18ff111c19ff101c19ff111c19ff101c19ff0c1513ff365b4cff7bcda7ff8fedc2ff8eedc2ff8eecc1ff8eecc1ff8eecc0ff8decc0ff8decc1ff8decc1ff8eecc1ff8eecc1ff8eecc0ff8eecc0ff8eecc1ff8eedc1ff8fedc1ff8fedc1ff8fedc1ff91f0c4ff4e856cff0d1614ff101c18ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff101c19ff101c19ff101c18ff0d1714ff528870ff92f1c5ff8fedc1ff8fecc1ff8fecc1ff8fecc1ff8eecc0ff8eecc0ff8eecc1ff8eebc0ff8eecc1ff8eecc1ff8fecc1ff8eecc1ff8fecc1ff8fecc1ff8eebc0ff8eecc1ff8feec2ff7ed2acff3b6452ff0d1714ff101c18ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c18ff101c18ff111d19ff111d19ff111c19ff111c19ff101c18ff101c18ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c18ff111c19ff111d19ff101d19ff111c19ff111c18ff101c18ff111c19ff101c19ff101c18ff0c1513ff182923ff3d6755ff5b997eff65a88aff64a88aff64a88aff64a88aff63a88aff64a88aff64a88aff63a789ff63a789ff63a789ff63a789ff63a889ff65a88aff65a98bff63a688ff3e6a57ff111e1aff101b17ff101c18ff101c19ff101d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c19ff0f1a17ff111e1aff416e5aff66a98bff68ad8eff67ac8eff68ac8eff69ae8fff69ae8fff68ad8eff68ad8eff68ad8eff68ae8fff69ae8fff69ae8fff69ae8fff69ae8fff69ae8fff60a084ff43705cff1a2d26ff0c1513ff101c18ff101c19ff101c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d18ff111c19ff111c19ff101c18ff101c18ff101b18ff101c18ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff101d19ff111c19ff111c19ff111c19ff101c19ff101c19ff0f1a17ff0c1512ff0c1513ff0d1714ff0d1715ff0e1715ff0e1714ff0d1715ff0d1715ff0d1614ff0d1714ff0d1714ff0d1714ff0d1614ff0d1614ff0d1714ff0d1715ff0d1714ff0d1513ff101b18ff101c19ff101c18ff101d19ff111c19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c18ff0f1a17ff0c1513ff0d1714ff0e1815ff0e1816ff0e1815ff0e1815ff0e1916ff0e1816ff0e1815ff0e1815ff0e1815ff0e1816ff0e1815ff0e1815ff0e1815ff0e1815ff0c1513ff0c1513ff0f1916ff101c19ff101c19ff111c19ff101c19ff101c19ff101c19ff101d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101d19ff111d19ff111c19ff101c19ff101c18ff101c18ff101c18ff101c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff101c18ff101c18ff101c18ff101c19ff101c18ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c18ff101b18ff101b18ff101c18ff101c18ff101c19ff111c19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c18ff101c19ff101c18ff101c18ff101c18ff101c18ff101c19ff101c19ff101c19ff101c18ff101c19ff101c19ff101c19ff101c19ff101c19ff101c19ff101c18ff101c19ff101c18ff101c18ff101c19ff101c19ff101c19ff111c19ff101c19ff101c19ff111d19ff111d19ff101c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff101d19ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff101c19ff111c19ff111c19ff111c19ff101c19ff101c19ff101c18ff101c18ff101c18ff101c18ff111c19ff101c19ff101c18ff101c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff101c18ff111c18ff101c18ff101c19ff101c19ff111c19ff101c19ff111c19ff111d19ff111c19ff101c18ff101c19ff111c19ff111d19ff101c19ff101c19ff101c19ff101c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff101c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff101c18ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff101c19ff111c19ff101d19ff111c19ff111c19ff101d19ff111c19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff101d19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c18ff111d19ff111c19ff111c19ff111c19ff111c19ff101c18ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d1aff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111d19ff111c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111c19ff111c19ff111c19ff101d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101d19ff101d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c18ff111c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff101c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111c19ff111c19ff111d19ff101d19ff111d19ff111d19ff111d19ff111c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c18ff111c19ff111c19ff111c19ff111d19ff111c19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff101c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff101c19ff101c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d1aff111d1aff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d1aff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111c18ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d1aff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d1aff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c18ff101c18ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c18ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111c19ff101c19ff101c18ff101c18ff101c19ff111d19ff111c19ff111c19ff111c18ff111c19ff101c19ff111c19ff111c19ff111c19ff111c19ff111d19ff111c19ff111c19ff111c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111d19ff111c19ff111c19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff101c19ff111c19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111d19ff111c19ff111c19ff111d19ff111d19ff111c19ff111c19ff101c18ff101c18ff"
local Brand = {}
function Brand.mount(label)
 local editable
 local ok=pcall(function()
  editable=game:GetService("AssetService"):CreateEditableImage({Size=Vector2.new(96,96)})
  assert(editable,"Image memory unavailable")
  local data=buffer.create(96*96*4)
  for i=1,#pixels,2 do buffer.writeu8(data,(i-1)/2,tonumber(pixels:sub(i,i+1),16)) end
  editable:WritePixelsBuffer(Vector2.zero,Vector2.new(96,96),data)
  label.ImageContent=Content.fromObject(editable)
 end)
 if not ok then
  if editable then editable:Destroy();editable=nil end
  local fallback=Instance.new("TextLabel")
  fallback.BackgroundTransparency=1;fallback.Size=UDim2.fromScale(1,1)
  fallback.Text="[▶]";fallback.TextSize=26;fallback.TextColor3=Color3.fromRGB(139,228,186)
  fallback.Parent=label
 end
 return editable
end
return Brand
]]></string>
      </Properties>
    </Item>
    <Item class="ModuleScript" referent="3">
      <Properties>
        <string name="Name">CameraRig</string>
        <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
local RunService = game:GetService("RunService")
local Input = game:GetService("UserInputService")
local Selection = game:GetService("Selection")
local OverlayGuard = require(script.Parent.OverlayGuard)
local Rig = {}
Rig.__index = Rig

function Rig.new(plugin)
	return setmetatable({ plugin = plugin, mode = "idle", speed = 24, smoothness = 0.75, sensitivity = 0.18, fov = 70, keys = {}, focused = true }, Rig)
end

function Rig:capture()
	local c = workspace.CurrentCamera
	return { cf = c.CFrame, fov = c.FieldOfView, focus = c.Focus }
end

function Rig:begin(mode)
	local c = workspace.CurrentCamera
	if not c then return false end
	if self.mode == "idle" then
		self.saved = { camera = c, cf = c.CFrame, focus = c.Focus, fov = c.FieldOfView, kind = c.CameraType,
			icon = Input.MouseIconEnabled, mouse = Input.MouseBehavior, selection = Selection:Get() }
		self.returnView = self.returnView or self.saved
		self.plugin:Activate(true)
		Selection:Set({})
		self.overlays = OverlayGuard.new()
	end
	RunService:UnbindFromRenderStep("VOIDKSA_FrameStudioCamera")
	c.CameraType = Enum.CameraType.Scriptable
	self.mode = mode
	self.position = c.CFrame.Position
	self.yaw = math.atan2(-c.CFrame.LookVector.X, -c.CFrame.LookVector.Z)
	self.pitch = math.asin(math.clamp(c.CFrame.LookVector.Y, -1, 1))
	self.targetYaw, self.targetPitch = self.yaw, self.pitch
	self.velocity = Vector3.zero
	self.keys = {}
	self.elapsed = 0
	self.fov = c.FieldOfView
	self.focused = true
	Input.MouseIconEnabled = false
	if mode ~= "fly" then Input.MouseBehavior = self.saved.mouse end
	RunService:BindToRenderStep("VOIDKSA_FrameStudioCamera", Enum.RenderPriority.Camera.Value + 10, function(dt)
		local ok, err = pcall(function() self:step(math.min(dt, 0.1)) end)
		if not ok then self:stop(true); if self.onError then self.onError(tostring(err)) end end
	end)
	return true
end

function Rig:startFly()
	return self:begin("fly")
end

function Rig:startMove(a, b, duration)
	if not a or not b then return false end
	self.a, self.b, self.duration = a, b, math.clamp(duration, 1, 120)
	if not self:begin("move") then return false end
	workspace.CurrentCamera.CFrame = a.cf
	workspace.CurrentCamera.FieldOfView = a.fov
	return true
end

function Rig:key(code, down)
	self.keys[code] = down or nil
end

function Rig:look(delta)
	if self.mode ~= "fly" or not self.focused then return end
	self.targetYaw -= math.rad(delta.X * self.sensitivity)
	self.targetPitch = math.clamp(self.targetPitch - math.rad(delta.Y * self.sensitivity), math.rad(-88), math.rad(88))
end

function Rig:step(dt)
	local c = workspace.CurrentCamera
	if not c or c ~= self.saved.camera then error("The active Studio camera changed.") end
	if self.mode == "move" then
		self.elapsed += dt
		local t = math.clamp(self.elapsed / self.duration, 0, 1)
		local eased = t * t * (3 - 2 * t)
		c.CFrame = self.a.cf:Lerp(self.b.cf, eased)
		c.FieldOfView = self.a.fov + (self.b.fov - self.a.fov) * eased
		c.Focus = c.CFrame * CFrame.new(0, 0, -64)
		if t >= 1 then
			self.mode = "hold"
			if self.onMoveEnd then task.defer(self.onMoveEnd) end
		end
	elseif self.mode == "fly" then
		if self.focused and not Input:GetFocusedTextBox() then
			Input.MouseBehavior = Enum.MouseBehavior.LockCenter
			Input.MouseIconEnabled = false
		else
			self.keys = {}
			Input.MouseBehavior = self.saved.mouse
			Input.MouseIconEnabled = self.saved.icon
		end
		local function key(k) return self.keys[Enum.KeyCode[k]] and 1 or 0 end
		local response = self.smoothness <= 0 and 1 or 1 - math.exp(-(3 + 22 * (1 - self.smoothness)) * dt)
		self.targetYaw += (key("Left") - key("Right")) * dt
		self.targetPitch = math.clamp(self.targetPitch + (key("Up") - key("Down")) * dt, math.rad(-88), math.rad(88))
		self.yaw += (self.targetYaw - self.yaw) * response
		self.pitch += (self.targetPitch - self.pitch) * response
		local rotation = CFrame.fromOrientation(self.pitch, self.yaw, 0)
		local move = Vector3.new(key("D") - key("A"), key("E") + key("Space") - key("Q") - key("LeftControl"), key("S") - key("W"))
		if key("LeftControl")>0 and key("LeftAlt")>0 then move=Vector3.zero end
		if move.Magnitude > 1 then move = move.Unit end
		local factor = key("LeftShift") > 0 and 3 or (key("LeftAlt") > 0 and 0.25 or 1)
		self.fov = math.clamp(self.fov + (key("C") - key("Z")) * 22 * dt, 10, 110)
		local desired = rotation:VectorToWorldSpace(Vector3.new(move.X, 0, move.Z)) + Vector3.yAxis * move.Y
		self.velocity = self.velocity:Lerp(desired * self.speed * factor, response)
		self.position += self.velocity * dt
		c.CFrame = CFrame.new(self.position) * rotation
		c.FieldOfView = self.fov
		c.Focus = c.CFrame * CFrame.new(0, 0, -64)
	end
end

function Rig:stop(restoreView)
	if self.mode == "idle" then return end
	self.mode = "idle"
	RunService:UnbindFromRenderStep("VOIDKSA_FrameStudioCamera")
	local s = self.saved
	self.keys = {}
	if self.overlays then self.overlays:restore(); self.overlays=nil end
	if s then
		Input.MouseBehavior = s.mouse
		Input.MouseIconEnabled = s.icon
		if s.camera.Parent then
			if restoreView then s.camera.CFrame = s.cf; s.camera.Focus = s.focus; s.camera.FieldOfView = s.fov end
			s.camera.CameraType = s.kind
		end
		local remaining = {}
		for _, item in s.selection do if item.Parent then table.insert(remaining, item) end end
		Selection:Set(remaining)
	end
	self.plugin:Deactivate()
end

function Rig:restore()
	self:stop(true)
	local s = self.returnView
	if s and s.camera.Parent then
		s.camera.CFrame = s.cf; s.camera.Focus = s.focus; s.camera.FieldOfView = s.fov; s.camera.CameraType = s.kind
	end
	self.returnView = nil
end

return Rig
]]></string>
      </Properties>
    </Item>
    <Item class="ModuleScript" referent="4">
      <Properties>
        <string name="Name">Config</string>
        <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
return {
	version = "1.0",
	endpoint = "http://127.0.0.1:42831",
	website = "https://frame-studio-voidksa.pages.dev",
	icon = "",
}
]]></string>
      </Properties>
    </Item>
    <Item class="ModuleScript" referent="5">
      <Properties>
        <string name="Name">OverlayGuard</string>
        <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
local CoreGui=game:GetService("CoreGui")
local Guard={}
Guard.__index=Guard

function Guard.new()
	local self=setmetatable({saved={},connections={},active=true},Guard)
	local function hide(instance)
		local property
		if instance:IsA("HandleAdornment") or instance:IsA("Handles") or instance:IsA("ArcHandles")
			or instance:IsA("SelectionBox") or instance:IsA("SelectionSphere") then property="Visible"
		elseif instance.Name=="ViewSelectorScreenGui" and instance:IsA("ScreenGui") then property="Enabled" end
		if not property then return end
		pcall(function()
			local value=instance[property]
			self.saved[instance]={property=property,value=value}
			instance[property]=false
			table.insert(self.connections,instance:GetPropertyChangedSignal(property):Connect(function()
				if self.active and instance[property] then instance[property]=false end
			end))
		end)
	end
	for _,instance in CoreGui:GetDescendants() do hide(instance) end
	table.insert(self.connections,CoreGui.DescendantAdded:Connect(hide))
	return self
end

function Guard:restore()
	if not self.active then return end
	self.active=false
	for _,connection in self.connections do connection:Disconnect() end
	for instance,saved in self.saved do pcall(function() if instance.Parent then instance[saved.property]=saved.value end end) end
	self.saved={};self.connections={}
end

return Guard
]]></string>
      </Properties>
    </Item>
    <Item class="ModuleScript" referent="6">
      <Properties>
        <string name="Name">RecorderClient</string>
        <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
local Http = game:GetService("HttpService")
local Config = require(script.Parent.Config)
local Client = {}
Client.__index = Client

function Client.new(plugin)
	local ok, token = pcall(plugin.GetSetting, plugin, "FrameStudioRecorderToken1")
	return setmetatable({ owner = Http:GenerateGUID(false), plugin = plugin, token = ok and type(token)=="string" and token or "" }, Client)
end

function Client:pair(code)
	local data, err = self:request("/pair", { code = code:gsub("%s", "") })
	if not data then return nil, err end
	if type(data.token) ~= "string" or #data.token < 32 then return nil, "Pairing failed. Generate a new code in the app." end
	self.token = data.token
	pcall(self.plugin.SetSetting, self.plugin, "FrameStudioRecorderToken1", self.token)
	return data
end

function Client:request(route, fields)
	fields = fields or {}
	if route ~= "/pair" and self.token == "" then return nil, "Not paired. Open Setup and enter the code from the Frame Studio app." end
	fields.owner = self.owner
	local ok, result = pcall(function()
		return Http:RequestAsync({ Url = Config.endpoint .. route, Method = "POST",
			Headers = { ["Content-Type"] = "application/json", ["X-Frame-Token"] = self.token },
			Body = Http:JSONEncode(fields) })
	end)
	if not ok then
		if tostring(result):find("HTTP requests are not enabled",1,true) then
			return nil, "Restart Studio to load the installed Frame Studio plugin. HTTP is unavailable in this test session."
		end
		return nil, "Open Frame Studio from your Start menu, then reconnect. Allow localhost access if Studio asks."
	end
	local decoded, data = pcall(Http.JSONDecode, Http, result.Body)
	if not decoded then return nil, "The local recorder returned an unreadable response." end
	if not result.Success or not data.ok then return nil, data.message or "The local recorder could not complete that action." end
	return data
end

return Client
]]></string>
      </Properties>
    </Item>
    <Item class="ModuleScript" referent="7">
      <Properties>
        <string name="Name">UI</string>
        <string name="Source"><![CDATA[-- Copyright (c) 2026 VOIDKSA. All rights reserved.
local Tween = game:GetService("TweenService")
local UI = {}
local C = { bg = Color3.fromRGB(18, 29, 26), panel = Color3.fromRGB(32, 45, 40), border = Color3.fromRGB(61, 79, 69),
	text = Color3.fromRGB(246, 242, 232), muted = Color3.fromRGB(163, 182, 171), accent = Color3.fromRGB(139, 228, 186),
	danger = Color3.fromRGB(239, 120, 104), mint = Color3.fromRGB(139, 228, 186) }

local function create(kind, props, parent)
	local obj = Instance.new(kind)
	for k, v in props do obj[k] = v end
	obj.Parent = parent
	return obj
end
local function round(o, r) create("UICorner", { CornerRadius = UDim.new(0, r or 9) }, o) end
local function label(parent, text, height, size, color)
	return create("TextLabel", { Name = "Label", Size = UDim2.new(1, 0, 0, height), BackgroundTransparency = 1,
		Text = text, TextSize = size or 12, TextColor3 = color or C.text, Font = Enum.Font.BuilderSans,
		TextXAlignment = Enum.TextXAlignment.Left, TextYAlignment = Enum.TextYAlignment.Center, TextWrapped = true }, parent)
end
local function button(parent, text, color)
	local base = color or C.panel
	local b = create("TextButton", { Name = text:gsub("%W", ""), Size = UDim2.new(1, 0, 0, 36), BackgroundColor3 = base,
		BorderSizePixel = 0, AutoButtonColor = false, Text = text, TextSize = 13, Font = Enum.Font.BuilderSansMedium,
		TextColor3 = color and C.bg or C.text }, parent)
	round(b)
	create("UIStroke", { Color = color or C.border, Transparency = color and 0.8 or 0.35, ApplyStrokeMode = Enum.ApplyStrokeMode.Border }, b)
	local active
	local function tint(factor)
		if active then active:Cancel() end
		active = Tween:Create(b, TweenInfo.new(0.12), { BackgroundColor3 = base:Lerp(Color3.new(1,1,1), factor) }); active:Play()
	end
	b.MouseEnter:Connect(function() tint(0.07) end)
	b.MouseLeave:Connect(function() tint(0) end)
	b.MouseButton1Down:Connect(function() tint(0.16) end)
	b.MouseButton1Up:Connect(function() tint(0.07) end)
	return b
end

function UI.new(widget)
 local self = { colors=C, page="Free camera" }
 local root=create("Frame",{Name="FrameStudioUI",BackgroundColor3=C.bg,BorderSizePixel=0,Size=UDim2.fromScale(1,1)},widget)
 local logo=create("ImageLabel",{Name="Brand",BackgroundTransparency=1,Position=UDim2.fromOffset(12,12),Size=UDim2.fromOffset(40,40)},root)
 local brand=require(script.Parent.Brand)
 self.brandImage=brand.mount(logo)
 local title=label(root,"Frame Studio",28,18); title.Position=UDim2.fromOffset(60,10);title.Size=UDim2.new(1,-76,0,28);title.Font=Enum.Font.BuilderSansBold
 local tagline=label(root,"BY VOIDKSA  /  v1.0",18,10,C.muted);tagline.Position=UDim2.fromOffset(60,37);tagline.Size=UDim2.new(1,-76,0,18)
 self.connection=label(root,"Open Setup to pair your recorder.",34,11,C.muted);self.connection.Position=UDim2.fromOffset(14,62);self.connection.Size=UDim2.new(1,-28,0,34)
 local tabs=create("Frame",{Name="Tabs",BackgroundTransparency=1,Position=UDim2.fromOffset(14,104),Size=UDim2.new(1,-28,0,36)},root)
 local pages,tabButtons={},{}
 local order=0; local container
 local function page(name)
  local scroll=create("ScrollingFrame",{Name=name:gsub("%W",""),Position=UDim2.fromOffset(0,154),Size=UDim2.new(1,0,1,-300),BackgroundTransparency=1,BorderSizePixel=0,ScrollBarThickness=4,ScrollBarImageColor3=C.border,CanvasSize=UDim2.new(),AutomaticCanvasSize=Enum.AutomaticSize.Y,ScrollingDirection=Enum.ScrollingDirection.Y,Visible=false},root)
  create("UIPadding",{PaddingLeft=UDim.new(0,14),PaddingRight=UDim.new(0,22),PaddingBottom=UDim.new(0,16)},scroll)
  create("UIListLayout",{Padding=UDim.new(0,10),SortOrder=Enum.SortOrder.LayoutOrder},scroll)
  pages[name]=scroll;container=scroll;order=0
 end
 local function row(height)
  order+=1
  return create("Frame",{BackgroundTransparency=1,Size=UDim2.new(1,0,0,height),LayoutOrder=order},container)
 end
 local function note(text,height) local r=row(height or 38);return label(r,text,height or 38,12,C.muted) end
 local function heading(text) local r=row(27);local t=label(r,text,27,15);t.Font=Enum.Font.BuilderSansBold end
 local function one(text,color) return button(row(38),text,color) end
 local function pair(a,b)
  local r=row(38);local x=button(r,a);x.Size=UDim2.new(0.5,-4,1,0)
  local y=button(r,b);y.Position=UDim2.new(0.5,4,0,0);y.Size=UDim2.new(0.5,-4,1,0)
  return x,y
 end
 local function field(name,value,min,max,onChange)
  local r=row(56);label(r,name,18,11,C.muted)
  local box=create("TextBox",{Name=name:gsub("%W",""),Position=UDim2.fromOffset(0,22),Size=UDim2.new(1,0,0,34),BackgroundColor3=C.panel,BorderSizePixel=0,Text=tostring(value),TextColor3=C.text,TextSize=13,Font=Enum.Font.BuilderSans,ClearTextOnFocus=false},r);round(box,8)
  box.FocusLost:Connect(function()
   local n=tonumber(box.Text)
   if n and n==n then value=math.clamp(n,min,max);onChange(value) end
   box.Text=tostring(value)
  end)
  return box
 end
 function self:showPage(name)
  self.page=name
  for key,p in pages do p.Visible=key==name end
  for key,b in tabButtons do b.TextColor3=key==name and C.accent or C.muted;b:FindFirstChildWhichIsA("UIStroke").Color=key==name and C.accent or C.border end
  if self.onPage then self.onPage(name) end
 end
 for i,name in {"Free camera","Camera move","Setup"} do
  local b=button(tabs,name);b.TextSize=11;b.Size=UDim2.new(1/3,-4,1,0);b.Position=UDim2.new((i-1)/3,(i-1)*2,0,0)
  tabButtons[name]=b;b.Activated:Connect(function() self:showPage(name) end)
 end
 page("Free camera")
 heading("Find your angle")
 note("Fly around your scene. Move the mouse to look, without holding right-click.",50)
 self.fly=one("Start flying",C.accent)
 note("W A S D  Move     Q / E  Down / up\nShift  Faster     Alt  Slower\nEsc  Release the camera",62)
 self.speed=field("Movement speed",24,1,300,function(n) if self.onSpeed then self.onSpeed(n) end end)
 self.smoothing=field("Camera softness / 0 to 1",0.75,0,1,function(n) if self.onSmoothing then self.onSmoothing(n) end end)
 self.fov=field("Field of view / degrees",70,10,110,function(n) if self.onFov then self.onFov(n) end end)
 note("Wheel changes speed. Z / C changes zoom.\nRecord whenever your shot is ready.",42)
 self.returnView=one("Return to original view")
 page("Camera move")
 heading("A smooth move, in 3 steps")
 note("1. Frame the start, then save A.\n2. Move to your finish, then save B.\n3. Preview, then record the move.",66)
 self.shotA,self.shotB=pair("Save start A","Save finish B")
 self.shotStatus=note("Start: empty  /  Finish: empty",26)
 self.duration=field("Move duration / seconds",8,1,120,function(n) if self.onDuration then self.onDuration(n) end end)
 self.playMove=one("Preview camera move",C.accent)
 self.recordMove=one("Record camera move",C.danger)
 note("Position, direction and zoom blend between A and B. The clip saves automatically at the end. Views last for this Studio session.",76)
 page("Setup")
 heading("Connect your recorder")
 note("Open the Frame Studio desktop app. Click Get pairing code, then enter its 8-digit code here.",60)
 local codeRow=row(38)
 self.pairCode=create("TextBox",{Name="PairingCode",Size=UDim2.new(1,0,1,0),BackgroundColor3=C.panel,BorderSizePixel=0,Text="",PlaceholderText="8-digit pairing code",TextColor3=C.text,PlaceholderColor3=C.muted,TextSize=16,Font=Enum.Font.BuilderSans,ClearTextOnFocus=false},codeRow);round(self.pairCode,8)
 self.pair=one("Pair with desktop app",C.accent)
 self.reconnect=one("Reconnect")
 note("Allow localhost access if Studio asks. Pairing stays on this computer. No Roblox password is needed.",56)
 heading("Your video")
 self.wide,self.viewport=pair("16:9 frame","Full viewport")
 self.fps30,self.fps60=pair("30 fps","60 fps")
 note("MP4 at the viewport's actual resolution. 16:9 crops the center. Video only; audio is not recorded in v1.0.",66)
 self.folder=one("Open recordings folder")
 self.help=note("Windows desktop app required for recording. Visit frame-studio-voidksa.pages.dev for setup.",56)
 local footer=create("Frame",{Name="Footer",Position=UDim2.new(0,0,1,-136),Size=UDim2.new(1,0,0,136),BackgroundColor3=C.bg,BorderSizePixel=0},root)
 create("UIPadding",{PaddingLeft=UDim.new(0,14),PaddingRight=UDim.new(0,14)},footer)
 self.record=button(footer,"Record free take",C.danger);self.record.Position=UDim2.fromOffset(0,4);self.record.Size=UDim2.new(1,0,0,40)
 self.status=label(footer,"Pair your recorder in Setup to get started.",52,12);self.status.Position=UDim2.fromOffset(0,51);self.status.TextYAlignment=Enum.TextYAlignment.Top
 self.meta=label(footer,"3-second countdown  /  Esc stops & saves",24,10,C.muted);self.meta.Position=UDim2.fromOffset(0,109)
 function self:setChoice(selected,other)
  selected.TextColor3=C.accent;other.TextColor3=C.muted
  selected:FindFirstChildWhichIsA("UIStroke").Color=C.accent
  other:FindFirstChildWhichIsA("UIStroke").Color=C.border
 end
 function self:destroy() if self.brandImage then self.brandImage:Destroy() end;root:Destroy() end
 self:showPage("Free camera")
 return self
end
return UI
]]></string>
      </Properties>
    </Item>
  </Item>
</roblox>