Þ ¥bonds€¬cell_resultsÞ  Ù$2fa207dd-749f-4dc0-b4ab-159edf1d9bceŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8begin_value_iteration_v (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁFâ¹°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$2fa207dd-749f-4dc0-b4ab-159edf1d9bce¹depends_on_disabled_cellsÂ§runtimeÎ $gµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$e0cc1ca1-595d-44e2-8612-261df9e2d327Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ	<div class="markdown"><blockquote>
<h3><em>Exercise 8.1</em></h3>
<p>The nonplanning method looks particularly poor in Figure 8.3 because it is a one-step method; a method using multi-step bootstrapping would do better. Do you think one of the multi-step bootstrapping methods from Chapter 7 could do as well as the Dyna method? Explain why or why not.</p>
</blockquote>
<p>For the n &#61; 50 agent, it can learn a policy that covers nearly the entire maze during the second episode.  In the extreme case of a multistep method we would attempt to solve the maze using monte carlo sampling in which case after a single episode we would have action/value updates for every state visited along the random trajectory.  However, these action/value estimates would be high variance estimates of the randomly initialized policy.  In contrast, the Dyna method after one random episode has observed most or all of the transitions in the maze.  During the long planning phase its Q updates would actually be able to converge to the optimal policy given a large enough n using bootstrapping and the single reward from reaching the goal.  As long as something is sampled close to the goal that information will propagate through to the rest of the states and each update is simultaneously improving the Ïµ-greedy policy.  With multi-step bootstrapping we can extend the updates back along the trajectory a certain distance, but in the extreme case we just sample values from the random policy without any bootstrapping or we bootstrap to a limited degree close to the goal and still have the lack of information further away from it.  Since this environment is deterministic, having the sample transitions is equivalent to having a full model of the environment.  This could be used explicitely with value iteration to obtain the Q function as well.  The planning step is effectively performing this computation but only using the known transitions and over time is focused only on the states visited by the optimal or nearly optimal policy.  No n-step method can take advantage of previously observed transitions this well, but it should be noted that Dyna-Q only works this well if the environment is deterministic and is taking advantage of the fact that we know our model is correct for the transitions already observed.  </p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`û°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e0cc1ca1-595d-44e2-8612-261df9e2d327¹depends_on_disabled_cellsÂ§runtimeÎ Ñàµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$304e6afd-11e0-4011-9929-85889b988400Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À–«—°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$304e6afd-11e0-4011-9929-85889b988400¹depends_on_disabled_cellsÂ§runtimeÎ 7‚)µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8make_Ïµ_greedy_policy! (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁG˜J°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07¹depends_on_disabled_cellsÂ§runtimeÎ  Z'µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$3b4e27e7-8065-44b3-bc2a-e540913aa540Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*takestep (generic function with 4 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á#�í°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$3b4e27e7-8065-44b3-bc2a-e540913aa540¹depends_on_disabled_cellsÂ§runtimeÎ Xáµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6e273f2b-a1af-421f-aca7-772a836b89efŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ>uniform_bellman_policy_value! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À÷¼I°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6e273f2b-a1af-421f-aca7-772a836b89ef¹depends_on_disabled_cellsÂ§runtimeÎ 'Uµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$726af565-8905-4409-864f-a5c1b5767e09Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ3form_random_policy (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á+°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$726af565-8905-4409-864f-a5c1b5767e09¹depends_on_disabled_cellsÂ§runtimeÎ  Qµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$5d2abde0-7128-41c3-bd1f-b6940492d1aeŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ2double_q_learning (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Æ‹°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae¹depends_on_disabled_cellsÂ§runtimeÎ ŠÇ$µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$76489f21-677e-4c25-beaa-afaf2244cd94Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙf<div class="markdown"><h4>Figure 8.2</h4>
<p>Learning curves for a Dyna-Q agent in the maze</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·_ËG°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$76489f21-677e-4c25-beaa-afaf2244cd94¹depends_on_disabled_cellsÂ§runtimeÎ åµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$1127c36f-9bc0-49b1-9481-8a5861bdf6caŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ	¶<div class="markdown"><blockquote>
<h3><em>Exercise 8.5</em></h3>
<p>How might the tabular Dyna-Q algorithm shown above be modified to handle stochastic environments?  How might this modification perform poorly on changing environments such as considered in this section?  How could the algorithm be modified to handle stochastic environments <em>and</em> changing environments?</p>
</blockquote>
<p>Instead of storing the most recent transition for a state-action pair, we could store the fraction of the time different transition states and rewards are observed.  That way our model becomes a distribution model using the previously experienced samples as estimates of the true transition probabilities.  Then for the planning updates, we would sample the transition from the model stochastically and perform the same Q update.</p>
<p>If the environment is changing, then the model will take much longer to modify compared to the original version where as soon as a new transition is observed it replaces the previous value.  If we averaging the previously observed transitions and there are many actions, then a new experience would only slightly modify the model even if we use constant step size averaging.  We would therefore expect such a model to react much more slowly to a changing environment.</p>
<p>One solution to speed up model updates could be to use a modified reward such as what is used for Dyna-Q&#43; in which the time since a state-action pair was selected increases the planning reward update for that transition, but that method assumed that a single visit to the state is adequate to update the model.  In a stochastic environment if we are counting transition to have an estimate of the probabilities for each one, our method would need a way of forgetting transitions that no longer happen.  We could simply keep only data from the most recent n transitions or average with exponential decaying weights such that we give higher weight to more cently observed transitions in the probability distribution.  We may also have to keep track of the time since a specific transitions was seen rather than simply the time a state action pair was attempted, so we&#39;d have <span class="tex">$\tau&#40;s, a, sâ€², r&#41;$</span> and then the planning Q update could add up or take the maximum of all of the observed transitions from that state.  A state action pair would then be boosted if any one of the possible transitions has not been seen recently.  </p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·a=°°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$1127c36f-9bc0-49b1-9481-8a5861bdf6ca¹depends_on_disabled_cellsÂ§runtimeÎ )Äµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$69ff1b72-cb1b-4724-a445-38e4c9846964Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ[<div class="markdown"><h4>Figure 8.4:</h4>
<p>Average performance of Dyna-Q agent on a blocking task.  After 1000 episodes of training the environment is switched to the second version.  The flat portion of the graph shows the agent getting stuck following the old optimal policy and needing many time steps to learn the new environment</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`OD°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$69ff1b72-cb1b-4724-a445-38e4c9846964¹depends_on_disabled_cellsÂ§runtimeÎ “µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$3edc09ab-8fa1-440f-8a45-546898a2b2a3Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*takestep (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À¿eŒ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$3edc09ab-8fa1-440f-8a45-546898a2b2a3¹depends_on_disabled_cellsÂ§runtimeÎ ëïµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6c8cd429-2c2e-4515-98b2-d0394962e479Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*takestep (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á#;°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6c8cd429-2c2e-4515-98b2-d0394962e479¹depends_on_disabled_cellsÂ§runtimeÎ PÄµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6605b946-3010-47ed-8d88-3c4dca993cf8Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8begin_value_iteration_q (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁËÞ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6605b946-3010-47ed-8d88-3c4dca993cf8¹depends_on_disabled_cellsÂ§runtimeÎ $c&µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$00c8f62f-dee2-476c-b896-68d3ab57a168Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+figure_8_8 (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁVÓ °persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$00c8f62f-dee2-476c-b896-68d3ab57a168¹depends_on_disabled_cellsÂ§runtimeÎ Ã��µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4d4baa61-b5bd-4bcf-a491-9a35a1695f0bŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚú<div style = "display: flex;">
<div>Without planning (n = 0)	<div style = "display: flex; transform: scale(1.0); background-color: white;">
		<div>
			<div class = "gridworld test">
				<div class = "gridcell test" x = "1" y = "1" style = "grid-row: 6; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "2" style = "grid-row: 5; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "3" style = "grid-row: 4; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "4" style = "grid-row: 3; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "5" style = "grid-row: 2; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "6" style = "grid-row: 1; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "1" style = "grid-row: 6; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "2" style = "grid-row: 5; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "3" style = "grid-row: 4; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "4" style = "grid-row: 3; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "5" style = "grid-row: 2; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "6" style = "grid-row: 1; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "1" style = "grid-row: 6; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "2" style = "grid-row: 5; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "3" style = "grid-row: 4; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "4" style = "grid-row: 3; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "5" style = "grid-row: 2; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "6" style = "grid-row: 1; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "1" style = "grid-row: 6; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "2" style = "grid-row: 5; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "3" style = "grid-row: 4; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "4" style = "grid-row: 3; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "5" style = "grid-row: 2; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "6" style = "grid-row: 1; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "1" style = "grid-row: 6; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "2" style = "grid-row: 5; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "3" style = "grid-row: 4; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "4" style = "grid-row: 3; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "5" style = "grid-row: 2; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "6" style = "grid-row: 1; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "1" style = "grid-row: 6; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "2" style = "grid-row: 5; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "3" style = "grid-row: 4; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "4" style = "grid-row: 3; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "5" style = "grid-row: 2; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "6" style = "grid-row: 1; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "1" style = "grid-row: 6; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "2" style = "grid-row: 5; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "3" style = "grid-row: 4; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "4" style = "grid-row: 3; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "5" style = "grid-row: 2; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "6" style = "grid-row: 1; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "1" style = "grid-row: 6; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "2" style = "grid-row: 5; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "3" style = "grid-row: 4; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "4" style = "grid-row: 3; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "5" style = "grid-row: 2; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "6" style = "grid-row: 1; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "1" style = "grid-row: 6; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "2" style = "grid-row: 5; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "3" style = "grid-row: 4; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "4" style = "grid-row: 3; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "5" style = "grid-row: 2; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "6" style = "grid-row: 1; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div>
			</div>
		</div>
		<div style = "display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; color: black; font-size: 18px; width: 5em; margin-left: 1em;">
			<div style = "display: flex; flex-direction: column; align-items: center; justify-content: center; color: black; background-color: rgba(100, 100, 100, 0.1);">
	<div style = "display: flex; align-items: center; justify-content: center;">
	<div class = "downarrow" style = "transform: rotate(90deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(270deg);"></div>
	<div class = "downarrow" style = "position: absolute;"></div>
	</div>
	<div>Actions</div>
</div>

		</div>
	</div>

	<style>
		.test.gridworld {
			display: grid;
			grid-template-columns: repeat(9, 40px);
			grid-template-rows: repeat(6, 40px);
			background-color: white;

		.test[x="1"][y="4"]::before {
			content: 'S';
			position: absolute;
			color: green;
			opacity: 1.0;
		}

		.test[x="9"][y="6"]::before {
			content: 'G';
			position: absolute;
			color: red;
			opacity: 1.0;
		}

	</style>
</div>
<div>With planning (n = 50)	<div style = "display: flex; transform: scale(1.0); background-color: white;">
		<div>
			<div class = "gridworld test">
				<div class = "gridcell test" x = "1" y = "1" style = "grid-row: 6; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "2" style = "grid-row: 5; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "3" style = "grid-row: 4; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "4" style = "grid-row: 3; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "5" style = "grid-row: 2; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "1" y = "6" style = "grid-row: 1; grid-column: 1;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "1" style = "grid-row: 6; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "2" style = "grid-row: 5; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "3" style = "grid-row: 4; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "4" style = "grid-row: 3; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "5" style = "grid-row: 2; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "2" y = "6" style = "grid-row: 1; grid-column: 2;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "1" style = "grid-row: 6; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "2" style = "grid-row: 5; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "3" style = "grid-row: 4; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "4" style = "grid-row: 3; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "5" style = "grid-row: 2; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "3" y = "6" style = "grid-row: 1; grid-column: 3;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "1" style = "grid-row: 6; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "2" style = "grid-row: 5; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "3" style = "grid-row: 4; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "4" style = "grid-row: 3; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "5" style = "grid-row: 2; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "4" y = "6" style = "grid-row: 1; grid-column: 4;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "1" style = "grid-row: 6; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "2" style = "grid-row: 5; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "3" style = "grid-row: 4; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "4" style = "grid-row: 3; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "5" style = "grid-row: 2; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "5" y = "6" style = "grid-row: 1; grid-column: 5;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "1" style = "grid-row: 6; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "2" style = "grid-row: 5; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "3" style = "grid-row: 4; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "4" style = "grid-row: 3; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "5" style = "grid-row: 2; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "6" y = "6" style = "grid-row: 1; grid-column: 6;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "1" style = "grid-row: 6; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "2" style = "grid-row: 5; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "3" style = "grid-row: 4; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "4" style = "grid-row: 3; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 1.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "5" style = "grid-row: 2; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 1.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "7" y = "6" style = "grid-row: 1; grid-column: 7;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 1.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "1" style = "grid-row: 6; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 1.0"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "2" style = "grid-row: 5; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 1.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "3" style = "grid-row: 4; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "4" style = "grid-row: 3; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "5" style = "grid-row: 2; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "8" y = "6" style = "grid-row: 1; grid-column: 8;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "1" style = "grid-row: 6; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "2" style = "grid-row: 5; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "3" style = "grid-row: 4; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "4" style = "grid-row: 3; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "5" style = "grid-row: 2; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 1.0;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.0"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.0"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.0"></div>
	</div>
</div><div class = "gridcell test" x = "9" y = "6" style = "grid-row: 1; grid-column: 9;">	<div style = "display: flex; align-items: center; justify-content: center; transform: scale(0.8);">
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: 0.25;"></div>	
	<div class = "downarrow" style = "position: absolute; opacity: 0.25"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: 0.25"></div>
	<div class = "downarrow" style = "transform: rotate(-90deg); opacity: 0.25"></div>
	</div>
</div>
			</div>
		</div>
		<div style = "display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; color: black; font-size: 18px; width: 5em; margin-left: 1em;">
			<div style = "display: flex; flex-direction: column; align-items: center; justify-content: center; color: black; background-color: rgba(100, 100, 100, 0.1);">
	<div style = "display: flex; align-items: center; justify-content: center;">
	<div class = "downarrow" style = "transform: rotate(90deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(270deg);"></div>
	<div class = "downarrow" style = "position: absolute;"></div>
	</div>
	<div>Actions</div>
</div>

		</div>
	</div>

	<style>
		.test.gridworld {
			display: grid;
			grid-template-columns: repeat(9, 40px);
			grid-template-rows: repeat(6, 40px);
			background-color: white;

		.test[x="1"][y="4"]::before {
			content: 'S';
			position: absolute;
			color: green;
			opacity: 1.0;
		}

		.test[x="9"][y="6"]::before {
			content: 'G';
			position: absolute;
			color: red;
			opacity: 1.0;
		}

	</style>
</div>
</div>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Ìfb¿°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4d4baa61-b5bd-4bcf-a491-9a35a1695f0b¹depends_on_disabled_cellsÂ§runtimeÎÈÉDµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$cd79ce14-14a1-43c6-93e0-b4a786f7f9fbŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ><div class="markdown"><p>Because planning proceeds incrementally, it is trivial to intermix planning and acting.  So the learning from the model can inform the interaction with the environment in parallel and then any information from the environment can be used to update the model whenever it is received.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·_å÷°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$cd79ce14-14a1-43c6-93e0-b4a786f7f9fb¹depends_on_disabled_cellsÂ§runtimeÎ 'Îµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$516234a8-2748-11ed-35df-432eebaa5162Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚÞ<div class="markdown"><h1>Chapter 8 - Planning and Learning with Tabular Methods</h1>
<p>So far we have seen example problems where we have a full model of the environment in the form of the probability transition function as well as environments where we can only sample trajectories.  In this chapter we will integrate the techniques that are <em>model-based</em> and <em>model-free</em> and show how they can be intermixed.</p>
<h2>8.1 Models and Planning</h2>
<p>A <em>model</em> is anything that an agent can use to predict the environment.  If the model provides a full description of all possible transitions it is called a <em>distribution model</em> vs a <em>sample model</em> that can only generate one of those possibilities according to the correct probability distribution.  In dynamic programming, we used a distribution model while for certain example problems such as blackjack we only had a sample model.</p>
<p>A model can be used the create a <em>simulated experience</em> of the environment such as a trajectory.  The common thread across all the techniques is the computation of the value function to improve a policy and using some update process to compute the value function for example from the data collected in simulated experience.  For the learning methods considered so far, we have assumed that the data collected from trajectories is generated by the environment itself while in planning methods this experience would come instead from a model.  However the learning techniques largely still apply to planning techniques as well since the nature of the data is the same.  Consider a planning method analogous to Q-learning called <em>random-sample one-step tabular Q-planning</em>.  This technique applies the Q-learning update to a transition sapmled from a model.  Instead of interacting with the environment in an episode or continuing task, this technique simply selects a state action pair at random and observes the transition.  Just like with Q-learning, this method converges to the optimal policy under the assumption that all state-action pairs are visited an infinite number of times but the policy will only be optimal for the model of the environment.</p>
<p>Performing updates on single transitions highlights another theme of planning methods which don&#39;t necessarily involve exaustive solutions to the whole environment.  We can direct the method to specific states of interest which may be important for problems with very large state spaces.</p>
<h2>8.2 Dyna: Integrated Planning, Acting, and Learning</h2>
<p>A planning agent can use real experience in at least two ways: 1&#41; it can be used to improve the model to make it a better match for the real environment &#40;<em>model-learning</em>&#41; and 2&#41; it can be used directly to improve the value function using the previous learning methods &#40;<em>direct reinforcement learning</em>&#41;.  If a better model is then used to improve the value function this is also called <em>indirect reinforcement learning</em>.  </p>
<p>Indirect methods can make better use of a limited amount of experience, but direct methods are much simpler and are not affected by the biases in the design of the model.  Dyna-Q includes all the processes of planning, acting, model-learning, and direct RL.  The planning method is the random-sample one-step tabular Q-planning described above.  The direct RL method is one-step tabular Q-learning.  The model-learning mdethod is also table-based and assumes the environment is deterministic.  After each transition <span class="tex">$S_t,A_t \longrightarrow R_&#123;t&#43;1&#125;,S_&#123;t&#43;1&#125;$</span>, the model records in its table entry for <span class="tex">$S_t,A_t$</span> the prediction that <span class="tex">$R_&#123;t&#43;1&#125;,S_&#123;t&#43;1&#125;$</span> will deterministically follow.  Thus if the model is queried with a state-action pair that has been experienced before, it simply returns the last-observed next state and next reward as its prediction.</p>
<p>During planning, the Q-planning algorithm randomly samples only from state-action pairs that have previously been experienced, so the model is never queried with a pair about which it has no information.  The learning and planning portions of the algorithm are connected in that they use the same type of update.  The only difference is the source of the experience used.</p>
<p>The collection of real experience and planning could occur simultaneously in these agents, but for a serial implementation it is assumed that the acting, model-learning, and direct RL processes are very fast while the planning process is the model computation-intensive.  Let us assume that after each step of acting, model-learning, and direct RL there is time for <span class="tex">$n$</span> iterations of the Q-planning algorithm.  Without the model update and the <span class="tex">$n$</span> loop planning step, this algorithm is identical to one-step tabular Q-learning.  An example implementation is below along with an example applying it to a maze environment.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·_yW°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$516234a8-2748-11ed-35df-432eebaa5162¹depends_on_disabled_cellsÂ§runtimeÎ ø½µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$bf7950f2-05fa-4455-ad08-27735148d95cŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ9monte_carlo_tree_search (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Å³sq°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$bf7950f2-05fa-4455-ad08-27735148d95c¹depends_on_disabled_cellsÂ§runtimeÎR7—µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/a7554ac9055de0b8"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Éi²Ä°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27¹depends_on_disabled_cellsÂ§runtimeÎ Ø�µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/a7554ac9055de0b8¸depends_on_skipped_cellsÂ§erroredÂÙ$47ce2eda-b2c4-4f81-8d91-955bc35bab49Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À”á°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$47ce2eda-b2c4-4f81-8d91-955bc35bab49¹depends_on_disabled_cellsÂ§runtimeÎ g6Qµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$679b6096-b3ca-422d-9d9a-225832510ab1Š¦queuedÂ¤logs�§runningÂ¦output†¤body‚£msgÙ{UndefVarError: `vholdtest` not defined in `Main.var"workspace#3"`
Suggestion: check for spelling errors or missing imports.ªstacktrace‘Œªcall_short¯top-level scope§inlinedÂ£urlÀ¤pathÙé/home/runner/work/Reinforcement-Learning-Sutton-Barto-Exercise-Solutions/Reinforcement-Learning-Sutton-Barto-Exercise-Solutions/Chapter-08/Chapter_08_Planning_&_Learning_with_Tabular_Methods.jl#==#679b6096-b3ca-422d-9d9a-225832510ab1®source_packageÀ¤call¯top-level scopeªlinfo_type­Core.CodeInfo¤line¤fileÙ^Chapter_08_Planning_&_Learning_with_Tabular_Methods.jl#==#679b6096-b3ca-422d-9d9a-225832510ab1¤func¯top-level scope­parent_moduleÀ¦from_cÂ¤mimeÙ'application/vnd.pluto.stacktrace+object¬rootassigneeÀ²last_run_timestampËAÚ•Å¯ï,°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$679b6096-b3ca-422d-9d9a-225832510ab1¹depends_on_disabled_cellsÂ§runtimeÀµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÃÙ$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ%<div class="markdown"><p>Consider the simple maze shown above where the agent can take four actions which take it deterministically into the neighboring square unless it is blocked by a wall represented by a W in the diagram.  In this case the agent remains in its original state.  Reward is zero on all transitions except those into the goal state, on which it is &#43;1.  After reaching the goal the agent returns to the start to begin a new episode.  This is a discounted episodic task with <span class="tex">$\gamma &#61; 0.95$</span></p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·_®À°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5¹depends_on_disabled_cellsÂ§runtimeÎ a}µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ.figure_8_5â€² (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Êám½°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8¹depends_on_disabled_cellsÂ§runtimeÎ �Ûjµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$a3243bc4-7ae7-418a-9881-a265ca95f5efŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ><div class="markdown"><h2>8.4 Prioritized Sweeping</h2>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·aWÑ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$a3243bc4-7ae7-418a-9881-a265ca95f5ef¹depends_on_disabled_cellsÂ§runtimeÎ ×/µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$466268c4-664d-42dd-84c1-7b8ade49936fŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚÃ<div class="markdown"><p>For each maze there is an optimal path that scales up with the size.  The plot below compares prioritized sweeping with Dyna-Q where each method can make at most 5 planning updates.  The number of updates until an optimal path is found is computed for different size mazes.  The number of updates required for prioritied sweeping is dramatically lower by tens or hundreds of times depending on the size of the maze.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·a°O°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$466268c4-664d-42dd-84c1-7b8ade49936f¹depends_on_disabled_cellsÂ§runtimeÎ @0µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ(rollout (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀKÆë°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96¹depends_on_disabled_cellsÂ§runtimeÎ ã)µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+runepisode (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀÅÈ`°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8¹depends_on_disabled_cellsÂ§runtimeÎ RÑµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f424edac-388d-4465-900f-9459d2a88f79Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*init_step (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÅôR°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f424edac-388d-4465-900f-9459d2a88f79¹depends_on_disabled_cellsÂ§runtimeÎ cWµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$08e81e30-119d-4f4e-a865-f1f85cbffd31Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚª<div class="markdown"><p>For many tasks the state space is too large to be solved effectively without prioritization.  That being said, there are multiple methods of prioritizing states such as looking forward from states that are being visited frequently by the policy.  </p>
<p>Prioritized sweeping also makes use of expected updates to update the priority queue &#40;sweeping through model state action pairs&#41; which could be very costly in environments with large numbers of actions.  Also in stochastic environments, our model may not even be accurate for some low probability transitions which would be a waste to consider.  An alternative is to use sample updates which are higher variance individually, but may win out in terms of rate of convergence per computation in environments with high stochasticity and large branching.  In the next sections, we more closely examine the value of expected and sample updates.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·aÍò°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$08e81e30-119d-4f4e-a865-f1f85cbffd31¹depends_on_disabled_cellsÂ§runtimeÎ 0ýµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$898f1b06-a34f-496b-99db-9ca23498cbeeŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙCprioritized_sweeping_deterministic (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÅçO°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$898f1b06-a34f-496b-99db-9ca23498cbee¹depends_on_disabled_cellsÂ§runtimeÎh”âµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$08ff749b-f4ff-4639-99f5-48262aa4643eŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚQ<div class="markdown"><p>In the Dyna agents simulated transitions are started in the state-actino pairs selected uniformly at random from all previously experienced pairs, but a uniform selection is usually not the best.  Planning can be much more efficient if updates are focused on particular state-action pairs.  In particular if an environment has goal states such as the maze, then one-step TD updates will only be relevant along the trajectory leading to that goal.  Not all environments have goal states, but the idea still applies to cases where only certain states are expected to be updated given a certain amount of data from environment interactions.  We can therefore work <em>backward</em> from states we know will be updated to consider all of the relevant predecessor states.  Using <em>prioritized sweeping</em>, we maintain a queue of every state-action pair whose estimated value would change nontrivially if updated, prioritized by the size of the change.  When the top pair in the queue is updated, the effect on each of its predecessor pairs is computed.  If the effect is greater than some small threshold, then the pair is inserted int the queue with a new priority.  In this way the effects of changes are efficiently backpropagated backward until quienscence.  A full implementation of priorized sweeping can be found below.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·axy°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$08ff749b-f4ff-4639-99f5-48262aa4643e¹depends_on_disabled_cellsÂ§runtimeÎ µõµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$245d9616-e0d2-497e-bfdd-4729a7215bfdŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ¥<div class="markdown"><p>The maze task is a horrible candidate for MCTS because it is solved so effectively with the other techniques that build accurate action value estimates for the entire maze.  It is very likely that states will be revisited in this task as well and that information is useful to solve the problem.  MCTS would be most useful for problems where we cannot even know the full state space and states are never seen again in the course of a single episode as well as for tasks whose episodes don&#39;t last very long.  Blackjack might be a good example of this since the number of steps is usually one or two.  Another example could be tic-tac-toe.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·c"°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$245d9616-e0d2-497e-bfdd-4729a7215bfd¹depends_on_disabled_cellsÂ§runtimeÎ g„µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$e8a6e672-b860-404f-83c1-62a080f23112Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ0<div class="markdown"><h3>Figure 8.8</h3>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·b©Å°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e8a6e672-b860-404f-83c1-62a080f23112¹depends_on_disabled_cellsÂ§runtimeÎ ÒAµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$39ae7727-ea72-48f3-8d63-e03a9f607f87Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ/make_dyna_maze (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÇmP°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$39ae7727-ea72-48f3-8d63-e03a9f607f87¹depends_on_disabled_cellsÂ§runtimeÎ G•Úµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ)rollout (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À‰
Ô°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056¹depends_on_disabled_cellsÂ§runtimeÎ +éµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙBtrajectory_bellman_optimal_value! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁN¾°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$d0b18699-7d3a-418d-9d15-be41f1643f09¹depends_on_disabled_cellsÂ§runtimeÎ àµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$cd1980ff-2f35-4599-b08c-2037ddf5e995Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ1figure_8_4â€²â€² (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•É÷°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$cd1980ff-2f35-4599-b08c-2037ddf5e995¹depends_on_disabled_cellsÂ§runtimeÎ Êr»µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$c32d0943-ba8f-438f-83b6-5ed42221f630Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ1figure_8_5â€²â€² (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ËW°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$c32d0943-ba8f-438f-83b6-5ed42221f630¹depends_on_disabled_cellsÂ§runtimeÎ Íùµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$fc137613-7b4b-414c-93af-eeb2ace5d67fŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8make_Ïµ_greedy_policy! (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á"å?°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$fc137613-7b4b-414c-93af-eeb2ace5d67f¹depends_on_disabled_cellsÂ§runtimeÎ <ÄÝµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ%uct (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀY¬°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58¹depends_on_disabled_cellsÂ§runtimeÎ žµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4b424a47-dfeb-4380-8ab8-8bd24a080c2eŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/758f20745cddbdf8"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•ÌjÏ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4b424a47-dfeb-4380-8ab8-8bd24a080c2e¹depends_on_disabled_cellsÂ§runtimeÎ"$þµpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/758f20745cddbdf8¸depends_on_skipped_cellsÂ§erroredÂÙ$0f37ec0a-b737-478b-bf6a-027899250c4eŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+sarsa_step (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Åí™š°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$0f37ec0a-b737-478b-bf6a-027899250c4e¹depends_on_disabled_cellsÂ§runtimeÎ Dµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$8dbc76fd-ac73-47ca-983e-0e90023390e3Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/195acae2fa071a1a"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Ç­Ÿ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$8dbc76fd-ac73-47ca-983e-0e90023390e3¹depends_on_disabled_cellsÂ§runtimeÎ2'Ñ¡µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/195acae2fa071a1a¸depends_on_skipped_cellsÂ§erroredÂÙ$e4f73889-af82-4304-89d5-ee50172eb3daŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ5make_greedy_policy! (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁÂ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e4f73889-af82-4304-89d5-ee50172eb3da¹depends_on_disabled_cellsÂ§runtimeÎ Àµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$636d768c-670d-4485-a1dd-2bab6cf086d0Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ0make_random_mdp (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁLº°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$636d768c-670d-4485-a1dd-2bab6cf086d0¹depends_on_disabled_cellsÂ§runtimeÎ H%®µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$cd139745-1877-43a2-97a0-3333e544cbd8Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*figure8_2 (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Æ›>\°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$cd139745-1877-43a2-97a0-3333e544cbd8¹depends_on_disabled_cellsÂ§runtimeÎ CÇUµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ5q_policy_evaluation! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àþ6ø°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6¹depends_on_disabled_cellsÂ§runtimeÎ .d­µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f369a092-420d-4660-b802-93f05d5e7972Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+apply_uct! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀbÕA°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f369a092-420d-4660-b802-93f05d5e7972¹depends_on_disabled_cellsÂ§runtimeÎ )ëµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$1d97325a-8b9a-438d-a5f9-e17638e64627Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ7initialize_state_value (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À¦ã~°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$1d97325a-8b9a-438d-a5f9-e17638e64627¹depends_on_disabled_cellsÂ§runtimeÎ ¸§µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$113d2bc2-1f77-479f-86e5-a65b20672d7aŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ6double_expected_sarsa (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÆÝ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$113d2bc2-1f77-479f-86e5-a65b20672d7a¹depends_on_disabled_cellsÂ§runtimeÎ
TÄµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$27d12c1c-ddb0-4bc1-af51-3388ff806705Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ <div class="markdown"><h4>Figure 8.3:</h4>
<p>Policies found by planning and nonplanning Dyna-Q agents after episode <bond def="num_episodes_8_3" unique_id="Gw43lLc7ygzI"><input type='number' min='1' step='1' max='100' value='2'></bond>. The arrows indicate the greedy action with respect to the learned state-action value function.  Without planning, the only states with a policy update are those within n episodes of the goal where n is the number of episodes experienced so far in training.  For the planning agent after 1 episode, at least one of the values will be updated so during future planning steps, that information can propagate through the other states through bootstrapping since we are free to sample transitions from states into the ones that already have a value update.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•¾ré°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$27d12c1c-ddb0-4bc1-af51-3388ff806705¹depends_on_disabled_cellsÂ§runtimeÎ¬Ö¶µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f0e88db8-e3ee-4b74-923e-c34038024824Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/b33bcd4825a11f8e"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•ËO)„°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f0e88db8-e3ee-4b74-923e-c34038024824¹depends_on_disabled_cellsÂ§runtimeÎJÁòøµpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/b33bcd4825a11f8e¸depends_on_skipped_cellsÂ§erroredÂÙ$b0df4dad-74c7-4469-a13f-5ef6bb81199fŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙÇ<div class="markdown"><h4>Figure 8.5:</h4>
<p>Average performance of Dyna-Q on shortcut task.  The constant slope after learning the optimal policy indicates the shortcut is not exploited.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`ŠH°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$b0df4dad-74c7-4469-a13f-5ef6bb81199f¹depends_on_disabled_cellsÂ§runtimeÎ  îµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$cfdaa9c2-265f-4540-9d04-d1b7a72aee3eŠ¦queuedÂ¤logs‘ˆ¤lineÿ£msg’Ù,Downloading a local version of plotly@2.26.2ªtext/plain§cell_idÙ$cfdaa9c2-265f-4540-9d04-d1b7a72aee3e¦kwargs�¢id´PlutoPlotly_70a501d8¤fileÙJ/home/runner/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl¥group´local_plotly_library¥level¤Info§runningÂ¦output†¤bodyÚjõ<div class="markdown"><h3>Figure 8.7:</h3>
<p>Comparison of efficiency of expected and sample updates 	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/cb4cbc067ea31403"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•ÀENð°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$cfdaa9c2-265f-4540-9d04-d1b7a72aee3e¹depends_on_disabled_cellsÂ§runtimeÎˆ’~lµpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/cb4cbc067ea31403¸depends_on_skipped_cellsÂ§erroredÂÙ$250ea9da-dea3-4bf3-932d-cdda6756ae33Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ,runepisode (generic function with 4 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á$ËO°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$250ea9da-dea3-4bf3-932d-cdda6756ae33¹depends_on_disabled_cellsÂ§runtimeÎ =­µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$bc295bb5-addb-4bcf-a3e3-c839ccc346bdŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ2<div class="markdown"><h3>Maze Example</h3>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·bþ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$bc295bb5-addb-4bcf-a3e3-c839ccc346bd¹depends_on_disabled_cellsÂ§runtimeÎ Õ½µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$729197ce-2c27-467d-ba5f-47a1ecd539f2Š¦queuedÂ¤logs�§runningÂ¦output†¤body…¦prefix¥Int64¨elementsš’’¡0ªtext/plain’’¡0ªtext/plain’’¡0ªtext/plain’’¡1ªtext/plain’’¡1ªtext/plain’’¡1ªtext/plain’’¡2ªtext/plain’’¡2ªtext/plain’	’¡1ªtext/plain’
’¡0ªtext/plain¤type¥Array¬prefix_short ¨objectid°c15093f62d779bc9¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ•Æ2æÍ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$729197ce-2c27-467d-ba5f-47a1ecd539f2¹depends_on_disabled_cellsÂ§runtimeÎšiBµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$1aa76f3d-6041-4886-a6cd-787bdf1ec63cŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/8abe7fb8cc2fd548"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•ËÁc�°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$1aa76f3d-6041-4886-a6cd-787bdf1ec63c¹depends_on_disabled_cellsÂ§runtimeÎD¼_‚µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/8abe7fb8cc2fd548¸depends_on_skipped_cellsÂ§erroredÂÙ$3bf9e526-826d-42b8-84ee-75f1c7f79c69Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ4display_rook_policy (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ì2÷°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$3bf9e526-826d-42b8-84ee-75f1c7f79c69¹depends_on_disabled_cellsÂ§runtimeÎ <mµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$308fd488-a009-4de0-8b27-c1f6b0677fedŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ$uct (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀYhU°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$308fd488-a009-4de0-8b27-c1f6b0677fed¹depends_on_disabled_cellsÂ§runtimeÎ ”µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$340ba72b-172a-4d92-99b2-17687ab511c7Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚŒ<div class="markdown"><blockquote>
<h3><em>Exercise 8.4 &#40;programming&#41;</em></h3>
<p>The exploration bonus described above actually changes the estimated values of states and actions. Is this necessary? Suppose the bonus <span class="tex">$\kappa \sqrt&#123;\tau&#125;$</span> was used not in updates, but solely in action selection. That is, suppose the action selected was always that for which <span class="tex">$Q&#40;S_t,a&#41; &#43; \kappa \sqrt&#123;\tau&#40;S_t, a&#41;&#125;$</span> was maximal. Carry out a gridworld experiment that tests and illustrates the strengths and weaknesses of this alternate approach.</p>
</blockquote>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`ùU°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$340ba72b-172a-4d92-99b2-17687ab511c7¹depends_on_disabled_cellsÂ§runtimeÎ ÖRµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$44364e7f-1910-421a-b961-63fbbaac8230Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8bellman_optimal_value! (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á3$S°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$44364e7f-1910-421a-b961-63fbbaac8230¹depends_on_disabled_cellsÂ§runtimeÎ P�6µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚÏ<div class="markdown"><h2>8.3 When the Model Is Wrong</h2>
<p>In the maze example the model started out empty and then was only filled in with correct information.  In general, we cannot expect to be so fortunate.  Models may be incorrect because the environment is stochastic and only a limited number of samples have been observed, or simply because the environment has changed.  When the model is incorrect, the planning process will likely compute a suboptimal policy.</p>
<p>In some cases, the suboptimal poicy computed by planning quickly leads to the discovery and correction of the modeling error.  This tends to happen when the model is optimistic in the sense of predicting greater reward or better state transitions than are actually possible.  The planned policy attempts to exploit these opportunities and in doing so it discovers that they do not exist.</p>
<h3>Example 8.2: Blocking Maze</h3>
<p>Consider a maze with a barrier that separates the start from the goal except for an opening on one end.  After a set number of time steps this path is blocked and replaced with a longer path open at the other end.  Below is an example of the environment with a random trajectory before and after the blocking.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`2°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5¹depends_on_disabled_cellsÂ§runtimeÎ J�µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f6486854-4892-4fb6-a805-de56b19b3571Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ.make_uct_plus (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àq–¼°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f6486854-4892-4fb6-a805-de56b19b3571¹depends_on_disabled_cellsÂ§runtimeÎ C.µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ3make_random_policy (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À ƒ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00¹depends_on_disabled_cellsÂ§runtimeÎ -Ôµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$82e5719c-bbdb-4a18-b2f0-ad746b6acd41Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*make_puct (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àky°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$82e5719c-bbdb-4a18-b2f0-ad746b6acd41¹depends_on_disabled_cellsÂ§runtimeÎ 9†£µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$c62cc32c-0d29-4ea2-8284-ac4c883df6dbŠ¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À—"£°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$c62cc32c-0d29-4ea2-8284-ac4c883df6db¹depends_on_disabled_cellsÂ§runtimeÎ 2º÷µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$8586d633-7c50-49ba-9b74-b5bdad27c317Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/d66ad0b4e19c289f"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Ä–T*°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$8586d633-7c50-49ba-9b74-b5bdad27c317¹depends_on_disabled_cellsÂ§runtimeÏ   Qr)ëµpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/d66ad0b4e19c289f¸depends_on_skipped_cellsÂ§erroredÂÙ$bb439641-30bd-495d-ba70-06b2e27efdbdŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ/make_gridworld (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Æ<6D°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$bb439641-30bd-495d-ba70-06b2e27efdbd¹depends_on_disabled_cellsÂ§runtimeÎ Ø^Úµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ=<div class="markdown"><h2>8.6 Trajectory Sampling</h2>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·b]Ù°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5¹depends_on_disabled_cellsÂ§runtimeÎ èšµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$41bb1f78-b83a-4a45-ba5c-faa94e112f45Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ4get_mcts_statistics (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Çf‹i°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$41bb1f78-b83a-4a45-ba5c-faa94e112f45¹depends_on_disabled_cellsÂ§runtimeÎ Ñµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$0fff8e1b-d0c2-49b8-93b4-8d1615c26690Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚMŒ<script>
	
// Load the library for consistent smooth scrolling
const {default: scrollIntoView} = await import("data:text/javascript;base64,dmFyIFE9ZT0+Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT1lJiYxPT09ZS5ub2RlVHlwZSxVPShlLHQpPT4oIXR8fCJoaWRkZW4iIT09ZSkmJiJ2aXNpYmxlIiE9PWUmJiJjbGlwIiE9PWUsQT0oZSx0KT0+e2lmKGUuY2xpZW50SGVpZ2h0PGUuc2Nyb2xsSGVpZ2h0fHxlLmNsaWVudFdpZHRoPGUuc2Nyb2xsV2lkdGgpe2xldCBsPWdldENvbXB1dGVkU3R5bGUoZSxudWxsKTtyZXR1cm4gVShsLm92ZXJmbG93WSx0KXx8VShsLm92ZXJmbG93WCx0KXx8KGU9PntsZXQgdD0oZT0+e2lmKCFlLm93bmVyRG9jdW1lbnR8fCFlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBlLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZnJhbWVFbGVtZW50fWNhdGNoe3JldHVybiBudWxsfX0pKGUpO3JldHVybiEhdCYmKHQuY2xpZW50SGVpZ2h0PGUuc2Nyb2xsSGVpZ2h0fHx0LmNsaWVudFdpZHRoPGUuc2Nyb2xsV2lkdGgpfSkoZSl9cmV0dXJuITF9LFg9KGUsdCxsLG8sbixyLGkscyk9PnI8ZSYmaT50fHxyPmUmJmk8dD8wOnI8PWUmJnM8PWx8fGk+PXQmJnM+PWw/ci1lLW86aT50JiZzPGx8fHI8ZSYmcz5sP2ktdCtuOjAsJD1lPT5lLnBhcmVudEVsZW1lbnQ/PyhlLmdldFJvb3ROb2RlKCkuaG9zdHx8bnVsbCksdHQ9KGUsdCk9Pnt2YXIgbCxvLG4scjtpZih0eXBlb2YgZG9jdW1lbnQ+InUiKXJldHVybltdO2xldHtzY3JvbGxNb2RlOmksYmxvY2s6cyxpbmxpbmU6YSxib3VuZGFyeTpoLHNraXBPdmVyZmxvd0hpZGRlbkVsZW1lbnRzOnV9PXQsZz0iZnVuY3Rpb24iPT10eXBlb2YgaD9oOmU9PmUhPT1oO2lmKCFRKGUpKXRocm93IFR5cGVFcnJvcigiSW52YWxpZCB0YXJnZXQiKTtsZXQgdj1kb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsbT1bXSx3PWU7Zm9yKDtRKHcpJiZnKHcpOyl7aWYoKHc9JCh3KSk9PT12KXttLnB1c2godyk7YnJlYWt9bnVsbCE9dyYmdz09PWRvY3VtZW50LmJvZHkmJkEodykmJiFBKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCl8fG51bGwhPXcmJkEodyx1KSYmbS5wdXNoKHcpfWxldCBXPW51bGwhPShvPW51bGw9PShsPXdpbmRvdy52aXN1YWxWaWV3cG9ydCk/dm9pZCAwOmwud2lkdGgpP286aW5uZXJXaWR0aCxIPW51bGwhPShyPW51bGw9PShuPXdpbmRvdy52aXN1YWxWaWV3cG9ydCk/dm9pZCAwOm4uaGVpZ2h0KT9yOmlubmVySGVpZ2h0LHtzY3JvbGxYOl8sc2Nyb2xsWTp4fT13aW5kb3cse2hlaWdodDpFLHdpZHRoOlQsdG9wOk4scmlnaHQ6TCxib3R0b206WSxsZWZ0OkN9PWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksUj0ic3RhcnQiPT09c3x8Im5lYXJlc3QiPT09cz9OOiJlbmQiPT09cz9ZOk4rRS8yLFY9ImNlbnRlciI9PT1hP0MrVC8yOiJlbmQiPT09YT9MOkMsQj1bXTtmb3IobGV0IEQ9MDtEPG0ubGVuZ3RoO0QrKyl7bGV0IE89bVtEXSx7aGVpZ2h0Omosd2lkdGg6SSx0b3A6UyxyaWdodDpxLGJvdHRvbTp6LGxlZnQ6Rn09Ty5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZigiaWYtbmVlZGVkIj09PWkmJk4+PTAmJkM+PTAmJlk8PUgmJkw8PVcmJk4+PVMmJlk8PXomJkM+PUYmJkw8PXEpYnJlYWs7bGV0IEc9Z2V0Q29tcHV0ZWRTdHlsZShPKSxKPXBhcnNlSW50KEcuYm9yZGVyTGVmdFdpZHRoLDEwKSxLPXBhcnNlSW50KEcuYm9yZGVyVG9wV2lkdGgsMTApLFA9cGFyc2VJbnQoRy5ib3JkZXJSaWdodFdpZHRoLDEwKSxaPXBhcnNlSW50KEcuYm9yZGVyQm90dG9tV2lkdGgsMTApLGVlPTAsZXQ9MCxlbD0ib2Zmc2V0V2lkdGgiaW4gTz9PLm9mZnNldFdpZHRoLU8uY2xpZW50V2lkdGgtSi1QOjAsZW89Im9mZnNldEhlaWdodCJpbiBPP08ub2Zmc2V0SGVpZ2h0LU8uY2xpZW50SGVpZ2h0LUstWjowLGVuPSJvZmZzZXRXaWR0aCJpbiBPPzA9PT1PLm9mZnNldFdpZHRoPzA6SS9PLm9mZnNldFdpZHRoOjAsZXI9Im9mZnNldEhlaWdodCJpbiBPPzA9PT1PLm9mZnNldEhlaWdodD8wOmovTy5vZmZzZXRIZWlnaHQ6MDtpZih2PT09TyllZT0ic3RhcnQiPT09cz9SOiJlbmQiPT09cz9SLUg6Im5lYXJlc3QiPT09cz9YKHgseCtILEgsSyxaLHgrUix4K1IrRSxFKTpSLUgvMixldD0ic3RhcnQiPT09YT9WOiJjZW50ZXIiPT09YT9WLVcvMjoiZW5kIj09PWE/Vi1XOlgoXyxfK1csVyxKLFAsXytWLF8rVitULFQpLGVlPU1hdGgubWF4KDAsZWUreCksZXQ9TWF0aC5tYXgoMCxldCtfKTtlbHNle2VlPSJzdGFydCI9PT1zP1ItUy1LOiJlbmQiPT09cz9SLXorWitlbzoibmVhcmVzdCI9PT1zP1goUyx6LGosSyxaK2VvLFIsUitFLEUpOlItKFMrai8yKStlby8yLGV0PSJzdGFydCI9PT1hP1YtRi1KOiJjZW50ZXIiPT09YT9WLShGK0kvMikrZWwvMjoiZW5kIj09PWE/Vi1xK1ArZWw6WChGLHEsSSxKLFArZWwsVixWK1QsVCk7bGV0e3Njcm9sbExlZnQ6ZWksc2Nyb2xsVG9wOmVkfT1PO2VlPU1hdGgubWF4KDAsTWF0aC5taW4oZWQrZWUvZXIsTy5zY3JvbGxIZWlnaHQtai9lcitlbykpLGV0PU1hdGgubWF4KDAsTWF0aC5taW4oZWkrZXQvZW4sTy5zY3JvbGxXaWR0aC1JL2VuK2VsKSksUis9ZWQtZWUsVis9ZWktZXR9Qi5wdXNoKHtlbDpPLHRvcDplZSxsZWZ0OmV0fSl9cmV0dXJuIEJ9LGY9ZT0+e3ZhciB0O3JldHVybiExPT09ZT97YmxvY2s6ImVuZCIsaW5saW5lOiJuZWFyZXN0In06KHQ9ZSk9PT1PYmplY3QodCkmJjAhPT1PYmplY3Qua2V5cyh0KS5sZW5ndGg/ZTp7YmxvY2s6InN0YXJ0IixpbmxpbmU6Im5lYXJlc3QifX07ZnVuY3Rpb24gYyhlLHQpe3ZhciBsO2lmKCFlLmlzQ29ubmVjdGVkfHwhKGU9PntsZXQgdD1lO2Zvcig7dCYmdC5wYXJlbnROb2RlOyl7aWYodC5wYXJlbnROb2RlPT09ZG9jdW1lbnQpcmV0dXJuITA7dD10LnBhcmVudE5vZGUgaW5zdGFuY2VvZiBTaGFkb3dSb290P3QucGFyZW50Tm9kZS5ob3N0OnQucGFyZW50Tm9kZX1yZXR1cm4hMX0pKGUpKXJldHVybjtpZigib2JqZWN0Ij09dHlwZW9mKGw9dCkmJiJmdW5jdGlvbiI9PXR5cGVvZiBsLmJlaGF2aW9yKXJldHVybiB0LmJlaGF2aW9yKHR0KGUsdCkpO2xldCBvPSJib29sZWFuIj09dHlwZW9mIHR8fG51bGw9PXQ/dm9pZCAwOnQuYmVoYXZpb3I7Zm9yKGxldHtlbDpuLHRvcDpyLGxlZnQ6aX1vZiB0dChlLGYodCkpKW4uc2Nyb2xsKHt0b3A6cixsZWZ0OmksYmVoYXZpb3I6b30pfXZhciBkLHA9KCk9PihkfHwoZD0icGVyZm9ybWFuY2UiaW4gd2luZG93P3BlcmZvcm1hbmNlLm5vdy5iaW5kKHBlcmZvcm1hbmNlKTpEYXRlLm5vdyksZCgpKTtmdW5jdGlvbiBiKGUpe2xldCB0PU1hdGgubWluKChwKCktZS5zdGFydFRpbWUpL2UuZHVyYXRpb24sMSksbD1lLmVhc2UodCksbz1lLnN0YXJ0WCsoZS54LWUuc3RhcnRYKSpsLG49ZS5zdGFydFkrKGUueS1lLnN0YXJ0WSkqbDtlLm1ldGhvZChvLG4sdCxsKSxvIT09ZS54fHxuIT09ZS55P3JlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+YihlKSk6ZS5jYigpfWZ1bmN0aW9uIHkoZSx0LGwpe2xldCBvPWFyZ3VtZW50cy5sZW5ndGg+MyYmdm9pZCAwIT09YXJndW1lbnRzWzNdP2FyZ3VtZW50c1szXTo2MDAsbj1hcmd1bWVudHMubGVuZ3RoPjQmJnZvaWQgMCE9PWFyZ3VtZW50c1s0XT9hcmd1bWVudHNbNF06ZT0+MSstLWUqZSplKmUqZSxyPWFyZ3VtZW50cy5sZW5ndGg+NT9hcmd1bWVudHNbNV06dm9pZCAwLGk9YXJndW1lbnRzLmxlbmd0aD42P2FyZ3VtZW50c1s2XTp2b2lkIDAscz1lLnNjcm9sbExlZnQsYT1lLnNjcm9sbFRvcDtiKHtzY3JvbGxhYmxlOmUsbWV0aG9kKHQsbCxvLG4pe2xldCByPU1hdGguY2VpbCh0KSxzPU1hdGguY2VpbChsKTtlLnNjcm9sbExlZnQ9cixlLnNjcm9sbFRvcD1zLGk/Lih7dGFyZ2V0OmUsZWxhcHNlZDpvLHZhbHVlOm4sbGVmdDpyLHRvcDpzfSl9LHN0YXJ0VGltZTpwKCksc3RhcnRYOnMsc3RhcnRZOmEseDp0LHk6bCxkdXJhdGlvbjpvLGVhc2U6bixjYjpyfSl9dmFyIE09ZT0+ZSYmIWUuYmVoYXZpb3J8fCJzbW9vdGgiPT09ZS5iZWhhdmlvcixrPWZ1bmN0aW9uKGUsdCl7bGV0IGw9dHx8e307cmV0dXJuIE0obCk/YyhlLHtibG9jazpsLmJsb2NrLGlubGluZTpsLmlubGluZSxzY3JvbGxNb2RlOmwuc2Nyb2xsTW9kZSxib3VuZGFyeTpsLmJvdW5kYXJ5LHNraXBPdmVyZmxvd0hpZGRlbkVsZW1lbnRzOmwuc2tpcE92ZXJmbG93SGlkZGVuRWxlbWVudHMsYmVoYXZpb3I6ZT0+UHJvbWlzZS5hbGwoZS5yZWR1Y2UoKGUsdCk9PntsZXR7ZWw6byxsZWZ0Om4sdG9wOnJ9PXQsaT1vLnNjcm9sbExlZnQscz1vLnNjcm9sbFRvcDtyZXR1cm4gaT09PW4mJnM9PT1yP2U6Wy4uLmUsbmV3IFByb21pc2UoZT0+eShvLG4scixsLmR1cmF0aW9uLGwuZWFzZSwoKT0+ZSh7ZWw6byxsZWZ0OltpLG5dLHRvcDpbcyxyXX0pLGwub25TY3JvbGxDaGFuZ2UpKV19LFtdKSl9KTpQcm9taXNlLnJlc29sdmUoYyhlLHQpKX07ZXhwb3J0e2sgYXMgZGVmYXVsdH07")

const indent = true
const aside = true
const title_text = "Table of Contents"
const include_definitions = false


const tocNode = html`<nav class="plutoui-toc">
	<header>
	 <span class="toc-toggle open-toc"></span>
	 <span class="toc-toggle closed-toc"></span>
	 ${title_text}
	</header>
	<section></section>
</nav>`

tocNode.classList.toggle("aside", aside)
tocNode.classList.toggle("indent", indent)


const getParentCell = el => el.closest("pluto-cell")

const getHeaders = () => {
	const depth = Math.max(1, Math.min(6, 3)) // should be in range 1:6
	const range = Array.from({length: depth}, (x, i) => i+1) // [1, ..., depth]
	
	const selector = [
		...(include_definitions ? [
			`pluto-notebook pluto-cell .pluto-docs-binding`, 
			`pluto-notebook pluto-cell assignee:not(:empty)`, 
		] : []),
		...range.map(i => `pluto-notebook pluto-cell h${i}`)
	].join(",")
	return Array.from(document.querySelectorAll(selector)).filter(el => 
		// exclude headers inside of a pluto-docs-binding block
		!(el.nodeName.startsWith("H") && el.closest(".pluto-docs-binding"))
	)
}


const document_click_handler = (event) => {
	const path = (event.path || event.composedPath())
	const toc = path.find(elem => elem?.classList?.contains?.("toc-toggle"))
	if (toc) {
		event.stopImmediatePropagation()
		toc.closest(".plutoui-toc").classList.toggle("hide")
	}
}

document.addEventListener("click", document_click_handler)


const header_to_index_entry_map = new Map()
const currently_highlighted_set = new Set()

const last_toc_element_click_time = { current: 0 }

const intersection_callback = (ixs) => {
	let on_top = ixs.filter(ix => ix.intersectionRatio > 0 && ix.intersectionRect.y < ix.rootBounds.height / 2)
	if(on_top.length > 0){
		currently_highlighted_set.forEach(a => a.classList.remove("in-view"))
		currently_highlighted_set.clear()
		on_top.slice(0,1).forEach(i => {
			let div = header_to_index_entry_map.get(i.target)
			div.classList.add("in-view")
			currently_highlighted_set.add(div)
			
			/// scroll into view
			/*
			const toc_height = tocNode.offsetHeight
			const div_pos = div.offsetTop
			const div_height = div.offsetHeight
			const current_scroll = tocNode.scrollTop
			const header_height = tocNode.querySelector("header").offsetHeight
			
			const scroll_to_top = div_pos - header_height
			const scroll_to_bottom = div_pos + div_height - toc_height
			
			// if we set a scrollTop, then the browser will stop any currently ongoing smoothscroll animation. So let's only do this if you are not currently in a smoothscroll.
			if(Date.now() - last_toc_element_click_time.current >= 2000)
				if(current_scroll < scroll_to_bottom){
					tocNode.scrollTop = scroll_to_bottom
				} else if(current_scroll > scroll_to_top){
					tocNode.scrollTop = scroll_to_top
				}
			*/
		})
	}
}
let intersection_observer_1 = new IntersectionObserver(intersection_callback, {
	root: null, // i.e. the viewport
  	threshold: 1,
	rootMargin: "-15px", // slightly smaller than the viewport
	// delay: 100,
})
let intersection_observer_2 = new IntersectionObserver(intersection_callback, {
	root: null, // i.e. the viewport
  	threshold: 1,
	rootMargin: "15px", // slightly larger than the viewport
	// delay: 100,
})

const render = (elements) => {
	header_to_index_entry_map.clear()
	currently_highlighted_set.clear()
	intersection_observer_1.disconnect()
	intersection_observer_2.disconnect()

		let last_level = `H1`
	return html`${elements.map(h => {
	const parent_cell = getParentCell(h)

		let [className, title_el] = h.matches(`.pluto-docs-binding`) ? ["pluto-docs-binding-el", h.firstElementChild] : [h.nodeName, h]

	const a = html`<a 
		class="${className}" 
		title="${title_el.innerText}"
		href="#${parent_cell.id}"
	>${title_el.innerHTML}</a>`
	/* a.onmouseover=()=>{
		parent_cell.firstElementChild.classList.add(
			'highlight-pluto-cell-shoulder'
		)
	}
	a.onmouseout=() => {
		parent_cell.firstElementChild.classList.remove(
			'highlight-pluto-cell-shoulder'
		)
	} */
		
		
	a.onclick=(e) => {
		e.preventDefault();
		last_toc_element_click_time.current = Date.now()
		scrollIntoView(h, {
			behavior: 'smooth', 
			block: 'start',
		}).then(() => 
			// sometimes it doesn't scroll to the right place
			// solution: try a second time!
			scrollIntoView(h, {
				behavior: 'smooth', 
				block: 'start',
			})
	   )
	}

	const row =  html`<div class="toc-row ${className} after-${last_level}">${a}</div>`
		intersection_observer_1.observe(title_el)
		intersection_observer_2.observe(title_el)
		header_to_index_entry_map.set(title_el, row)

	if(className.startsWith("H"))
		last_level = className
		
	return row
})}`
}

const invalidated = { current: false }

const updateCallback = () => {
	if (!invalidated.current) {
		tocNode.querySelector("section").replaceWith(
			html`<section>${render(getHeaders())}</section>`
		)
	}
}
updateCallback()
setTimeout(updateCallback, 100)
setTimeout(updateCallback, 1000)
setTimeout(updateCallback, 5000)

const notebook = document.querySelector("pluto-notebook")


// We have a mutationobserver for each cell:
const mut_observers = {
	current: [],
}

const createCellObservers = () => {
	mut_observers.current.forEach((o) => o.disconnect())
	mut_observers.current = Array.from(notebook.querySelectorAll("pluto-cell")).map(el => {
		const o = new MutationObserver(updateCallback)
		o.observe(el, {attributeFilter: ["class"]})
		return o
	})
}
createCellObservers()

// And one for the notebook's child list, which updates our cell observers:
const notebookObserver = new MutationObserver(() => {
	updateCallback()
	createCellObservers()
})
notebookObserver.observe(notebook, {childList: true})

// And finally, an observer for the document.body classList, to make sure that the toc also works when it is loaded during notebook initialization
const bodyClassObserver = new MutationObserver(updateCallback)
bodyClassObserver.observe(document.body, {attributeFilter: ["class"]})

// Hide/show the ToC when the screen gets small
let match_listener = () => 
	tocNode.classList.toggle("hide", (tocNode.closest("pluto-editor") ?? document.body).scrollWidth < 1000)
for(let s of [1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900, 2000]) {
	let m = matchMedia(`(max-width: ${s}px)`)
	m.addListener(match_listener)
	invalidation.then(() => m.removeListener(match_listener))
}
match_listener()

invalidation.then(() => {
	invalidated.current = true
	intersection_observer_1.disconnect()
	intersection_observer_2.disconnect()
	notebookObserver.disconnect()
	bodyClassObserver.disconnect()
	mut_observers.current.forEach((o) => o.disconnect())
	document.removeEventListener("click", document_click_handler)
})

return tocNode
</script>
<style>
@media not print {

.plutoui-toc {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Cantarell, "Apple Color Emoji",
		"Segoe UI Emoji", "Segoe UI Symbol", system-ui, sans-serif;
	--main-bg-color: #fafafa;
	--pluto-output-color: hsl(0, 0%, 36%);
	--pluto-output-h-color: hsl(0, 0%, 21%);
	--sidebar-li-active-bg: rgb(235, 235, 235);
	--icon-filter: unset;
}

@media (prefers-color-scheme: dark) {
	.plutoui-toc {
		--main-bg-color: #303030;
		--pluto-output-color: hsl(0, 0%, 90%);
		--pluto-output-h-color: hsl(0, 0%, 97%);
		--sidebar-li-active-bg: rgb(82, 82, 82);
		--icon-filter: invert(1);
	}
}

.plutoui-toc.aside {
	color: var(--pluto-output-color);
	position: fixed;
	right: 1rem;
	top: 5rem;
	width: min(80vw, 300px);
	padding: 0.5rem;
	padding-top: 0em;
	/* border: 3px solid rgba(0, 0, 0, 0.15); */
	border-radius: 10px;
	/* box-shadow: 0 0 11px 0px #00000010; */
	max-height: calc(100vh - 5rem - 90px);
	overflow: auto;
	z-index: 40;
	background-color: var(--main-bg-color);
	transition: transform 300ms cubic-bezier(0.18, 0.89, 0.45, 1.12);
}

.plutoui-toc.aside.hide {
	transform: translateX(calc(100% - 28px));
}
.plutoui-toc.aside.hide section {
	display: none;
}
.plutoui-toc.aside.hide header {
	margin-bottom: 0em;
	padding-bottom: 0em;
	border-bottom: none;
}
}  /* End of Media print query */
.plutoui-toc.aside.hide .open-toc,
.plutoui-toc.aside:not(.hide) .closed-toc,
.plutoui-toc:not(.aside) .closed-toc {
	display: none;
}

@media (prefers-reduced-motion) {
  .plutoui-toc.aside {
	transition-duration: 0s;
  }
}

.toc-toggle {
	cursor: pointer;
    padding: 1em;
    margin: -1em;
    margin-right: -0.7em;
    line-height: 1em;
    display: flex;
}

.toc-toggle::before {
    content: "";
    display: inline-block;
    height: 1em;
    width: 1em;
    background-image: url("https://cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/list-outline.svg");
	/* generated using https://dopiaza.org/tools/datauri/index.php */
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHRpdGxlPmlvbmljb25zLXY1LW88L3RpdGxlPjxsaW5lIHgxPSIxNjAiIHkxPSIxNDQiIHgyPSI0NDgiIHkyPSIxNDQiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDozMnB4Ii8+PGxpbmUgeDE9IjE2MCIgeTE9IjI1NiIgeDI9IjQ0OCIgeTI9IjI1NiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjMycHgiLz48bGluZSB4MT0iMTYwIiB5MT0iMzY4IiB4Mj0iNDQ4IiB5Mj0iMzY4IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MzJweCIvPjxjaXJjbGUgY3g9IjgwIiBjeT0iMTQ0IiByPSIxNiIgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzAwMDtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLXdpZHRoOjMycHgiLz48Y2lyY2xlIGN4PSI4MCIgY3k9IjI1NiIgcj0iMTYiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDozMnB4Ii8+PGNpcmNsZSBjeD0iODAiIGN5PSIzNjgiIHI9IjE2IiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6MzJweCIvPjwvc3ZnPg==");
    background-size: 1em;
	filter: var(--icon-filter);
}

.aside .toc-toggle.open-toc:hover::before {
    background-image: url("https://cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-forward-outline.svg");
	/* generated using https://dopiaza.org/tools/datauri/index.php */
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHRpdGxlPmlvbmljb25zLXY1LWE8L3RpdGxlPjxwb2x5bGluZSBwb2ludHM9IjI2OCAxMTIgNDEyIDI1NiAyNjggNDAwIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NDhweCIvPjxsaW5lIHgxPSIzOTIiIHkxPSIyNTYiIHgyPSIxMDAiIHkyPSIyNTYiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDo0OHB4Ii8+PC9zdmc+");
}
.aside .toc-toggle.closed-toc:hover::before {
    background-image: url("https://cdn.jsdelivr.net/gh/ionic-team/ionicons@5.5.1/src/svg/arrow-back-outline.svg");
	/* generated using https://dopiaza.org/tools/datauri/index.php */
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHRpdGxlPmlvbmljb25zLXY1LWE8L3RpdGxlPjxwb2x5bGluZSBwb2ludHM9IjI0NCA0MDAgMTAwIDI1NiAyNDQgMTEyIiBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojMDAwO3N0cm9rZS1saW5lY2FwOnJvdW5kO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2Utd2lkdGg6NDhweCIvPjxsaW5lIHgxPSIxMjAiIHkxPSIyNTYiIHgyPSI0MTIiIHkyPSIyNTYiIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiMwMDA7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS13aWR0aDo0OHB4Ii8+PC9zdmc+");
}



.plutoui-toc header {
	display: flex;
	align-items: center;
	gap: .3em;
	font-size: 1.5em;
	/* margin-top: -0.1em; */
	margin-bottom: 0.4em;
	padding: 0.5rem;
	margin-left: 0;
	margin-right: 0;
	font-weight: bold;
	/* border-bottom: 2px solid rgba(0, 0, 0, 0.15); */
	position: sticky;
	top: 0px;
	background: var(--main-bg-color);
	z-index: 41;
}
.plutoui-toc.aside header {
	padding-left: 0;
	padding-right: 0;
}

.plutoui-toc section .toc-row {
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	padding: .1em;
	border-radius: .2em;
}

.plutoui-toc section .toc-row.H1 {
	margin-top: 1em;
}


.plutoui-toc.aside section .toc-row.in-view {
	background: var(--sidebar-li-active-bg);
}


	
.highlight-pluto-cell-shoulder {
	background: rgba(0, 0, 0, 0.05);
	background-clip: padding-box;
}

.plutoui-toc section a {
	text-decoration: none;
	font-weight: normal;
	color: var(--pluto-output-color);
}
.plutoui-toc section a:hover {
	color: var(--pluto-output-h-color);
}

.plutoui-toc.indent section a.H1 {
	font-weight: 700;
	line-height: 1em;
}

.plutoui-toc.indent section .after-H2 a { padding-left: 10px; }
.plutoui-toc.indent section .after-H3 a { padding-left: 20px; }
.plutoui-toc.indent section .after-H4 a { padding-left: 30px; }
.plutoui-toc.indent section .after-H5 a { padding-left: 40px; }
.plutoui-toc.indent section .after-H6 a { padding-left: 50px; }

.plutoui-toc.indent section a.H1 { padding-left: 0px; }
.plutoui-toc.indent section a.H2 { padding-left: 10px; }
.plutoui-toc.indent section a.H3 { padding-left: 20px; }
.plutoui-toc.indent section a.H4 { padding-left: 30px; }
.plutoui-toc.indent section a.H5 { padding-left: 40px; }
.plutoui-toc.indent section a.H6 { padding-left: 50px; }


.plutoui-toc.indent section a.pluto-docs-binding-el,
.plutoui-toc.indent section a.ASSIGNEE
	{
	font-family: JuliaMono, monospace;
	font-size: .8em;
	/* background: black; */
	font-weight: 700;
    font-style: italic;
	color: var(--cm-var-color); /* this is stealing a variable from Pluto, but it's fine if that doesnt work */
}
.plutoui-toc.indent section a.pluto-docs-binding-el::before,
.plutoui-toc.indent section a.ASSIGNEE::before
	{
	content: "> ";
	opacity: .3;
}
</style>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•½<Åø°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¹depends_on_disabled_cellsÂ§runtimeÎP+×úµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4e1c115a-4020-4a5a-a79a-56056892a953Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ;<div class="markdown"><h2>Gridworld Environment</h2>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·c}°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4e1c115a-4020-4a5a-a79a-56056892a953¹depends_on_disabled_cellsÂ§runtimeÎ ÏÀµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$324181f0-b890-4198-9b4b-c36547e6629aŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8create_Ïµ_greedy_policy (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÅÃ¬°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$324181f0-b890-4198-9b4b-c36547e6629a¹depends_on_disabled_cellsÂ§runtimeÎ :Bµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$eded8b72-70f4-4579-ba69-2eca409fa684Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*plot_path (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÈWnœ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$eded8b72-70f4-4579-ba69-2eca409fa684¹depends_on_disabled_cellsÂ§runtimeÎ Ûïµµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚm_<div style = "background-color: white; color: black; display: flex; align-items: center; justify-content: center;">
<div>	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/ad3aa1d6cffe4c04"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
</div>
<div><div style = "display: flex; flex-direction: column; align-items: center; justify-content: center; color: black; background-color: rgba(100, 100, 100, 0.1);">
	<div style = "display: flex; align-items: center; justify-content: center;">
	<div class = "downarrow" style = "transform: rotate(90deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(270deg);"></div>
	<div class = "downarrow" style = "position: absolute;"></div>
	</div>
	<div>Actions</div>
</div>
</div>
</div>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•ÌA¶°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6¹depends_on_disabled_cellsÂ§runtimeÎ ©y|µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/ad3aa1d6cffe4c04¸depends_on_skipped_cellsÂ§erroredÂÙ$6a4116c9-87cf-4ee7-8030-aa1150853984Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/f514ba9bca5ec68d"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Ì_F°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6a4116c9-87cf-4ee7-8030-aa1150853984¹depends_on_disabled_cellsÂ§runtimeÎX@“µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/f514ba9bca5ec68d¸depends_on_skipped_cellsÂ§erroredÂÙ$ee0f55c6-e9c6-4199-9f27-5706f3c84863Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ9<div class="markdown"><h3>MCTS Implementation</h3>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·bãï°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$ee0f55c6-e9c6-4199-9f27-5706f3c84863¹depends_on_disabled_cellsÂ§runtimeÎ Úµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$caca8d95-e40e-4592-b29e-a7e8b19faeb5Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ	Â<div class="markdown"><p>Modifying Dyna-Q&#43; with this method of action selection no longer uses the Ïµ-greedy policy for exploration as before and instead directly encourages exploration in the policy itself which no longer follows the value estimates directly.  Now, during the planning steps, we still update the value function using existing data.  The bonus reward for old experiences will only have an impact on the data collection by encouraging visits to states that have not been seen for a while.  The original method instead operates under the assumption that the value estimate updates during planning may be underestimating the value of states visited a long time ago and will boost their value increasing the chance of action selection indirectly.  </p>
<p>One problem with the method that modifies the action selection directly is that once the agent has found an optimal policy, along the trajectory of that path many state action pairs will be frequently visited, so an agent may deviate from that path for one action which has not been attempted in a while, but then by the same logic, the transition immediately back to the optimal state will be favored over all others since that transition hasn&#39;t been visited for a long time as well.  The agent may deviate slightly from the optimal path but never for long.  With DynaQ&#43;, however, eventually, unvisited states no matter how far away they are from the optimal path will eventually be visited since during planning those value bonuses will propagate throughout the whole environment.  That may be one reason why in the shortcut maze task, the modified DynaQ&#43; agent shown above never finds the shortcut and falls into the same trap as unmodified DynaQ.  If the goal is to find cases where the model is wrong even if it is far away in state space from the previously optimal policy, then DynaQ&#43; is a much more effective method than the one acting directly on action selection.</p>
<p>Similar to the original DynaQ, if the model is correct, then this algorithm will follow the optimal policy more often than DynaQ&#43; because very few deviations from optimal are tollerated.  You can see in both figures, once the environment is stable, the modified algorithm starts accumulating reward faster.  For the bloacking maze task, this method might perform the best over a certain time horizon by finding the new path faster than DynaQ but also consistently sticking new to the optimum more than DyanQ&#43;.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·a.°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$caca8d95-e40e-4592-b29e-a7e8b19faeb5¹depends_on_disabled_cellsÂ§runtimeÎ åQµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$24efe9b4-9308-4ad1-8ef0-69f6f93407c0Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ<div class="markdown"><blockquote>
<h3><em>Exercise 8.2</em></h3>
<p>Why did the Dyna agent with exploration bonus, Dyna-Q&#43;, perform better in the first phase as well as in the second phase of the blocking and shortcut experiments?</p>
</blockquote>
<p>For the second phase, the maze changed in both cases so the exploration reward bonus in Dyna-Q&#43; encourages the policy to attempt different actions that have not been visited recently which would result in model updates that reflect the new environment.  For the first phase where the model is accurate, this task may benefit from larger initial exploration than the Ïµ of 0.1 provides.  In that case the Dyna-Q&#43; reward simply acts like if we had a larger Ïµ in the first place which may result in faster learning.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`Äœ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$24efe9b4-9308-4ad1-8ef0-69f6f93407c0¹depends_on_disabled_cellsÂ§runtimeÎ ¯¯µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ7make_Ïµ_greedy_policy! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á!M×°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6¹depends_on_disabled_cellsÂ§runtimeÎ  ·8µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$beae0491-ed11-4edf-a136-d384578b088bŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyƒ¨elements“’’…¦prefix¤Left¨elements�¤type¦struct¬prefix_short¤Left¨objectid°ffffffffac7e5e95Ù!application/vnd.pluto.tree+object’’…¦prefixÙ@Dict{Main.var"workspace#3".GridworldState, Dict{Int64, Float32}}¨elements›’’…¦prefix®GridworldState¨elements’’¡x’¡4ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ab95892322307750Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements�¤type¤Dict¬prefix_short¤Dict¨objectid°fe0560e2b3db5142Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡4ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°325862729a669fdeÙ!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¤52.0ªtext/plain’’¡2ªtext/plain’¤51.0ªtext/plain’’¡3ªtext/plain’¤81.0ªtext/plain’’¡1ªtext/plain’¤56.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°fea827f9b51debbcÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡4ªtext/plain’¡y’¡2ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°27c77ee455c46eb4Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements�¤type¤Dict¬prefix_short¤Dict¨objectid°5f92f37df6f67837Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡3ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ec7c7c34fdbec3f2Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements‘’’¡4ªtext/plain’£1.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°9c938c3ef0f77498Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ef30e57a3ff0766eÙ!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’£1.0ªtext/plain’’¡2ªtext/plain’£6.0ªtext/plain’’¡3ªtext/plain’£2.0ªtext/plain’’¡1ªtext/plain’£2.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°4915531949faf4f6Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡3ªtext/plain’¡y’¡6ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°87fd641095222e9dÙ!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’£2.0ªtext/plain’’¡2ªtext/plain’£5.0ªtext/plain’’¡3ªtext/plain’£2.0ªtext/plain’’¡1ªtext/plain’£3.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°e6bf3012854eb8feÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡5ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°c75547dd94f170c1Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¤18.0ªtext/plain’’¡2ªtext/plain’¤17.0ªtext/plain’’¡3ªtext/plain’¤14.0ªtext/plain’’¡1ªtext/plain’¤14.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°45a738d1431ece42Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡2ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°74f497567b7de001Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’£7.0ªtext/plain’’¡2ªtext/plain’£5.0ªtext/plain’’¡3ªtext/plain’£9.0ªtext/plain’’¡1ªtext/plain’£9.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°ef85c8cf96dc001cÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡3ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°7d75a91561e03d66Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¤25.0ªtext/plain’’¡2ªtext/plain’¤26.0ªtext/plain’’¡3ªtext/plain’¤30.0ªtext/plain’’¡1ªtext/plain’¤24.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°c6701cc644addecaÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°78e123e4099fe993Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’£3.0ªtext/plain’’¡2ªtext/plain’£2.0ªtext/plain’’¡3ªtext/plain’£9.0ªtext/plain’’¡1ªtext/plain’£5.0ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°d08c069758e85958Ù!application/vnd.pluto.tree+object¤more¤type¤Dict¬prefix_short¤Dict¨objectid°674101c8864f7c1cÙ!application/vnd.pluto.tree+object’’…¦prefixÙ@Dict{Main.var"workspace#3".GridworldState, Dict{Int64, Float32}}¨elements›’’…¦prefix®GridworldState¨elements’’¡x’¡4ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ab95892322307750Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements�¤type¤Dict¬prefix_short¤Dict¨objectid°a2539aee7c77bf3bÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡4ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°325862729a669fdeÙ!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¨0.700827ªtext/plain’’¡2ªtext/plain’¨0.696991ªtext/plain’’¡3ªtext/plain’§0.76413ªtext/plain’’¡1ªtext/plain’§0.70808ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°77508f52a66eb858Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡4ªtext/plain’¡y’¡2ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°27c77ee455c46eb4Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements�¤type¤Dict¬prefix_short¤Dict¨objectid°81bc4d30bb492978Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡3ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ec7c7c34fdbec3f2Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements‘’’¡4ªtext/plain’¤0.95ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°5beb9b7d6fa78bb2Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ef30e57a3ff0766eÙ!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¦0.9025ªtext/plain’’¡2ªtext/plain’¨0.838876ªtext/plain’’¡3ªtext/plain’¨0.818798ªtext/plain’’¡1ªtext/plain’¨0.774799ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°ef5f4d85968ee30cÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡3ªtext/plain’¡y’¡6ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°87fd641095222e9dÙ!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’§0.92625ªtext/plain’’¡2ªtext/plain’¨0.852775ªtext/plain’’¡3ªtext/plain’¨0.882253ªtext/plain’’¡1ªtext/plain’¨0.858127ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°f38a11889ee47522Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡5ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°c75547dd94f170c1Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¨0.814499ªtext/plain’’¡2ªtext/plain’¨0.780975ªtext/plain’’¡3ªtext/plain’¨0.776294ªtext/plain’’¡1ªtext/plain’¨0.782916ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°29d052208b71045dÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡2ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°74f497567b7de001Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¨0.855627ªtext/plain’’¡2ªtext/plain’¨0.795567ªtext/plain’’¡3ªtext/plain’¨0.814752ªtext/plain’’¡1ªtext/plain’§0.82404ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°a849892608637e6eÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡3ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°7d75a91561e03d66Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¨0.773485ªtext/plain’’¡2ªtext/plain’§0.76205ªtext/plain’’¡3ªtext/plain’¨0.787554ªtext/plain’’¡1ªtext/plain’¨0.768714ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°7bb057d7af2e5372Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°78e123e4099fe993Ù!application/vnd.pluto.tree+object’…¦prefix´Dict{Int64, Float32}¨elements”’’¡4ªtext/plain’¨0.835238ªtext/plain’’¡2ªtext/plain’¨0.777856ªtext/plain’’¡3ªtext/plain’¨0.827622ªtext/plain’’¡1ªtext/plain’¨0.853253ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid°c7e9f02a47a452f2Ù!application/vnd.pluto.tree+object¤more¤type¤Dict¬prefix_short¤Dict¨objectid°726018cd1c8db039Ù!application/vnd.pluto.tree+object¤type¥Tuple¨objectid°d953fb7fee844eb0¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ•Ç^tŽ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$beae0491-ed11-4edf-a136-d384578b088b¹depends_on_disabled_cellsÂ§runtimeÎ»µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$562e824c-34b5-415d-b186-d8e2cf1980e7Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+figure_8_5 (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ê›Î«°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$562e824c-34b5-415d-b186-d8e2cf1980e7¹depends_on_disabled_cellsÂ§runtimeÎ EÙúµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ1show_grid_policy (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÌIÒ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69¹depends_on_disabled_cellsÂ§runtimeÎ8Âµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dcŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ-check_policy (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À¸¤U°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dc¹depends_on_disabled_cellsÂ§runtimeÎ ‘‰µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8monte_carlo_tree_search (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À�\)°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771b¹depends_on_disabled_cellsÂ§runtimeÎ Å\µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ9begin_value_iteration_v (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁG<›°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846¹depends_on_disabled_cellsÂ§runtimeÎ #Üôµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5cŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ0show_grid_value (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ì,„ý°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5c¹depends_on_disabled_cellsÂ§runtimeÎ u·Ûµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ&sarsa (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÅüÀ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91¹depends_on_disabled_cellsÂ§runtimeÎ ¨V>µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$618b5f35-2df5-4ffb-a34f-add542691080Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ)takestep (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À¿‚°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$618b5f35-2df5-4ffb-a34f-add542691080¹depends_on_disabled_cellsÂ§runtimeÎ øµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$0f9080af-f166-4a78-a003-8df07f6c27d4Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚc<style>
	.downarrow {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}

	.downarrow::before {
		content: '';
		width: 2px;
		height: 40px;
		background-color: black;
	}
	.downarrow::after {
		content: '';
		width: 0px;
		height: 0px;
		border-left: 5px solid transparent;
		border-right: 5px solid transparent;
		border-top: 10px solid black;
	}

	.gridcell {
			display: flex;
			justify-content: center;
			align-items: center;
			border: 1px solid black;
		}

	.windbox {
		height: 40px;
		width: 40px;
		display: flex;
		justify-content: center;
		align-items: center;
		transform: rotate(180deg);
		background-color: green;
	}

	.windbox * {
		background-color: green;
		color: green;
	}

	.windbox[w="0"] {
		opacity: 0.0; 
	}

	.windbox[w="1"] {
		opacity: 0.5;
	}

	.windbox[w="2"] {
		opacity: 1.0;
	}
</style>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Ìlòú°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$0f9080af-f166-4a78-a003-8df07f6c27d4¹depends_on_disabled_cellsÂ§runtimeÍ++µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f8bf29fe-568f-437f-ba82-6b861988a18eŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ4make_greedy_policy! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÁÜ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f8bf29fe-568f-437f-ba82-6b861988a18e¹depends_on_disabled_cellsÂ§runtimeÎ "PÛµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*figure8_3 (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÌP<C°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3¹depends_on_disabled_cellsÂ§runtimeÎ)Ï^wµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$b15f1262-1acf-40e5-87a7-bc4b1b437a42Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ,runepisode (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á$:Ò°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$b15f1262-1acf-40e5-87a7-bc4b1b437a42¹depends_on_disabled_cellsÂ§runtimeÎ Gm–µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ/expected_sarsa (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Æu°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2¹depends_on_disabled_cellsÂ§runtimeÎ ³yãµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$b3a5adcb-5343-44e9-9466-1c51c1143a0dŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/e3f0ea7a069278b6"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•ÈN…Ï°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$b3a5adcb-5343-44e9-9466-1c51c1143a0d¹depends_on_disabled_cellsÂ§runtimeÎžƒªµpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/e3f0ea7a069278b6¸depends_on_skipped_cellsÂ§erroredÂÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ3value_iteration_v! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á@X°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767¹depends_on_disabled_cellsÂ§runtimeÎ Ì>µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$9a1b250f-b404-4db3-a4b7-4cd33b79d921Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ5create_greedy_policy (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Å½<°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$9a1b250f-b404-4db3-a4b7-4cd33b79d921¹depends_on_disabled_cellsÂ§runtimeÎ +€vµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/69fe4d8c476440b4"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Ê•I°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215¹depends_on_disabled_cellsÂ§runtimeÎ%H^µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/69fe4d8c476440b4¸depends_on_skipped_cellsÂ§erroredÂÙ$72b40384-9ca1-4bc1-8e1a-8b639d39e215Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚú<div class="markdown"><p>In this section we compare two ways of distributing updates.  The classical approach, from dynamic programming, is to perform sweeps through the entire state &#40;or state-action&#41; space, updating each state &#40;or state-action pair&#41; once per sweep.  This is problematic on large tasks because there may not be time to complete even one sweep.  In many tasks, the vast majority or the states are irrelevant because they are visited only under very poor policies or with very low probability.  Exhaustive sweeps implicitely devote equal time to all parts of the state space rather than focusing where it is needed.  As we discussed in Chapter 4, exhaustive sweeps and the equal treatment of all states that they imply are not necessary properties of dynamic programming.  In principle, updates can be distributed in any way one likes &#40;to assure convergence, all states or state-action pairs must be visited in the limit an infinite number of times; although an exception to this is discussed in Section 8.7 below&#41;, but in practice exhaustive sweeps are often used.</p>
<p>The second approach is to sample from the state or state-action space according to some distribution.  One could sample uniformly, as in the Dyna-Q agent, but this would suffer from some of the same problems as exhaustive sweeps.  More appealing is to distribute updates according to the on-poliy distribution, that is according to the distribution observed when following the current policy.  One advantage of this distribution is that it is easily generated; one simply interacts with the model, following the current policy.  In an episodic task, one starts in a start state &#40;or according to the starting-state distribution&#41; and simulates until the terminal state.  In a continuing task, one starts anywhere and just keeps simulating.  In either case, sample state transitions and rewards are given by the model, and sample actions are given by the current policy.  In other words, one simulates explicit individual trajectories and performs updates at the state or state-action pairs encountered along the way.  We call this way of generating experience and updates <em>trajectory sampling</em>.</p>
<p>Is the on-policy distribution of updates a good one?  Intuitively it seems like a good choice, at least better than the uniform distribution.  For example, if you are learning to play chess, you study positions that might arise in real games, not random positions of chess pieces.  The latter may be valid states, but to be able to accurately value them is a different skill from evaluating positions in real games.  We will also see in Part II that the on policy distribution has significant advantages when function approximation is used.  Whether or not function approximation is used, one might expect on-policy focusing to significantly improve the speed of planning.</p>
<p>The following experiment attempts to assess empirically the value of sampling from the on policy distribution by comparing it directly to the alternative of <em>uniform</em> sampling.  In the <em>uniform</em> case, all state action pairs are updated once in place and in the <em>on-policy</em> case an episode is imulated starting from the same state and updating each state-action pair that occured under the current <span class="tex">$\epsilon$</span>-greedy policy <span class="tex">$&#40;\epsilon &#61; 0.1&#41;$</span>.  The tasks were undiscounted episodic tasks, generated randomly as follows.  From each of the <span class="tex">$\vert \mathcal&#123;S&#125; \vert$</span> states, two actions were possible, each of which results in one of <span class="tex">$b$</span> next states, all equally likely, with a different random selection of <span class="tex">$b$</span> states for each state-action pair.  The branching factor, <span class="tex">$b$</span>, was the same for all state-action pairs.  In addition, on all transitions there was a 0.1 probability of transition to the terminal state, ending the episode.  The expected reward on each transition was selected from a Gaussian distribution with mean 0 and variance 1.  At any point in the planning process one can stop and exhaustively compute <span class="tex">$v_&#123;\tilde \pi&#125;&#40;s_0&#41;$</span>, the true value of the start state under the greedy policy, <span class="tex">$\tilde \pi$</span>, given the current action-value function <span class="tex">$Q$</span>, as in indication of how well the agent would do on a new episode on which it acted greedily &#40;all while assuming the model is correct&#41;.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·b�‚°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$72b40384-9ca1-4bc1-8e1a-8b639d39e215¹depends_on_disabled_cellsÂ§runtimeÎ f+µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$63bf9d16-4516-4cec-895f-f010275bca16Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙD<div class="markdown"><h2>8.5 Expected vs Sample Updates</h2>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·açû°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$63bf9d16-4516-4cec-895f-f010275bca16¹depends_on_disabled_cellsÂ§runtimeÎ +àµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$0adcbce8-2be5-48ef-af43-04815e10dc5cŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ5make_greedy_policy! (generic function with 5 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Å°n?°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$0adcbce8-2be5-48ef-af43-04815e10dc5c¹depends_on_disabled_cellsÂ§runtimeÎ 0jšµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ)rollout (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àˆ¯£°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f9e4baec-c988-4abd-9bb0-c618c0ec07b9¹depends_on_disabled_cellsÂ§runtimeÎ .Iµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$502a7125-4460-4d39-be14-4852fb6d9ad2Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+plot_path (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÈWþÖ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$502a7125-4460-4d39-be14-4852fb6d9ad2¹depends_on_disabled_cellsÂ§runtimeÎ cDµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$31072f9b-de1b-42cf-a187-cbff99b49b50Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚú<div class="markdown"><p>Throughout the book we have considered a variety of value-function updates for the state value <span class="tex">$v&#40;s&#41;$</span> and the state-action value <span class="tex">$q&#40;s, a&#41;$</span>.  Broadly, they can be separated into expected updates and sample-updates.  The first expected update considered was for dynamic programming in which we make use of the full probability transition function <span class="tex">$p&#40;s^\prime, r \vert s, a&#41;$</span>.  When used with a policy <span class="tex">$\pi$</span> that provides a probability distribution over actions for each state, this technique is called <em>policy evaluation</em> and when a maximization is used over actions to find optimal value function and policy policy, this corresponds to <em>value iteration</em>.  Both of these techniques could be used with either the state or state-action value function.</p>
<p>The expected update for a state-action pair, <span class="tex">$s,a$</span>, is:</p>
<p class="tex">$$Q&#40;s, a&#41; \leftarrow \sum_&#123;s^\prime,r&#125;\hat p &#40;s^\prime,r \vert s, a&#41; \left &#91; \gamma \max_&#123;a^\prime&#125; Q&#40;s^\prime, a^\prime&#41; \right &#93; \tag&#123;8.1&#125;$$</p>
<p>Considering just one-step sample updates, we use an environment to sample a transition: <span class="tex">$&#40;s, a&#41; \rightarrow &#40;s^\prime, r&#41;$</span>.  Since we do not use the full probability transition function, the updates make use of a learning rate and accumulate samples over time either with Sarsa or Q-learning.  </p>
<p>The corresponding sample update for <span class="tex">$s,a$</span> given a sample next state and reward, <span class="tex">$S^\prime$</span> and <span class="tex">$R$</span> &#40;from the model&#41;, is the Q-learning-like update:</p>
<p class="tex">$$Q&#40;s, a&#41; \leftarrow Q&#40;s, a&#41; &#43; \alpha \left &#91; R &#43; \gamma \max_&#123;a^\prime&#125; Q&#40;s^\prime, a^\prime&#41; - Q&#40;s, a&#41; \right &#93; \tag&#123;8.2&#125;$$</p>
<p>where <span class="tex">$\alpha$</span> is the usual positive step-size parameter.</p>
<p>The difference between expected and sample updates is significant to the extent that the environment is stochastic, specifically, to the extent that, given a state and action, many possible next states may occur with various probabilities.  If only one next state is possible, then the expected and sample updates given above are identical &#40;taking <span class="tex">$\alpha&#61;1$</span>&#41;.  If there are many possible next states, then tehre may be significant differences.  In favor  of the expected update is that it is an exact computation, resulting in a new <span class="tex">$Q&#40;s, a&#41;$</span> whose correctness is limited only by the correctness of the <span class="tex">$Q&#40;s^\prime, a^\prime&#41;$</span> at successor states.  The sample update is in addition affected by sampling error.  On the other hand, the sample update is cheaper computationally because it considers only one next state, not all possible next states.  In practice, the computation required by update operations is usually dominated by the number of state-action pairs at which <span class="tex">$Q$</span> is evaluated.  For a particular starting pair, <span class="tex">$s, a$</span>, let <span class="tex">$b$</span> be the <em>branching factor</em> &#40;i.e. the number or possible next states, <span class="tex">$s^\prime$</span>, for which <span class="tex">$\hat p &#40;s^\prime, s, a&#41; \gt 0$</span>&#41;.  Then an expected update of this pair requires roughly <span class="tex">$b$</span> times as much computation as a sample update.</p>
<p>If there is enough time to complete an expected update, then the resulting estimate is generally better than that of <span class="tex">$b$</span> sample updates because of the absense of sampling error.  But if there is insufficient time to complete an expected update, then sample updates are always preferable because they at least make some improvement int he value estimate with fewer than <span class="tex">$b$</span> updates.  In a large problem with many state-action pairs, we are often in the latter situation.  With so many state-action pairs, expected updates of all of them would take a very long time.  Before that we may be much better off with a few sample updates at many state-action pairs than with expected updates at a few pairs.  Given a unit of computation effort, is it better devoted to a few expected updates or to <span class="tex">$b$</span> times as many sample updates?</p>
<p>Figure 8.7 shows the results of any analysis that suggests and answer ot this question.  It shows the estimation error as a function of computation time for expected and sample updates for a variety of branching factors <span class="tex">$b$</span>.  The case considered is that in which all <span class="tex">$b$</span> successor states are equally likely and in which the error in the initial estimate is 1.  The values at the next states are assumed correct, sot he expected update redues the error to zero upon its completion.  In this case, sample updates reduce the error according to <span class="tex">$\sqrt&#123;\frac&#123;b-1&#125;&#123;bt&#125;&#125;$</span> where <span class="tex">$t$</span> is the number of sample updates that have been performed &#40;assuming same averages, i.e. <span class="tex">$\alpha &#61; 1/t$</span>&#41;.  The key observation is that for moderately large <span class="tex">$b$</span> the error falls dramatically with a tiny fraction of <span class="tex">$b$</span> updates.  For these cases, many state-action pairs could have their values improved dramatically, to within a few percent of the effect of an expected update, in teh same time that a single state-action pair could undergo an expected update.</p>
<p>The advantage of sample updates shown in Figure 8.7 is probably an underestimate of the real effect.  In a real problem, the values of successor states would be estimates that are themselves updated.  By causing estimates to be more accurate sooner, sample updates will have a second advantage in that the values backed up from the successor states will be more accurate.  These results suggest that sample updates are likely to be superior to expected updates on problems with large stochastic branching factors and too many states to be solved exactly.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·b'°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$31072f9b-de1b-42cf-a187-cbff99b49b50¹depends_on_disabled_cellsÂ§runtimeÎ {Âµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$77fde69f-2119-41eb-8993-a93b2c47ca7eŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ=<div class="markdown"><h2>Gridworld Visualization</h2>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·c–¢°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$77fde69f-2119-41eb-8993-a93b2c47ca7e¹depends_on_disabled_cellsÂ§runtimeÎ ÑPµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$65818e67-c146-4686-a9aa-d0859ef662fbŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ<<div class="markdown"><h3>Example 8.1: Dyna Maze</h3>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·_“š°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$65818e67-c146-4686-a9aa-d0859ef662fb¹depends_on_disabled_cellsÂ§runtimeÎ áµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$b03087e9-e15d-4563-bdae-4d9ba7d2cec6Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ=<div class="markdown"><h2>MDP Types and Functions</h2>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·cbþ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$b03087e9-e15d-4563-bdae-4d9ba7d2cec6¹depends_on_disabled_cellsÂ§runtimeÎ �µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$195d2a34-c44c-4088-8ec4-dece3107f16dŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ7bellman_optimal_value! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á23a°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$195d2a34-c44c-4088-8ec4-dece3107f16d¹depends_on_disabled_cellsÂ§runtimeÎ ^ãÈµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6858ef8b-1ca7-4e96-b57e-26553423cc13Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ/sample_action (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àxuê°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6858ef8b-1ca7-4e96-b57e-26553423cc13¹depends_on_disabled_cellsÂ§runtimeÎ zhµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$e689df6b-d6f0-4928-9212-a940aa00b0efŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙº<style>
	main {
		margin: 0 auto;
		max-width: min(1200px, 90%);
    	padding-left: max(10px, 5%);
    	padding-right: max(10px, 5%);
		font-size: max(10px, min(24px, 2vw));
	}
</style>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·cI°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e689df6b-d6f0-4928-9212-a940aa00b0ef¹depends_on_disabled_cellsÂ§runtimeÎ ôªµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$3b0d2c55-2123-4b51-b946-6bc352e3d00aŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚl<div class="markdown"><blockquote>
<h3><em>Exercise 8.6</em></h3>
<p>The analysis above assumed that all of the <span class="tex">$b$</span> possible next states were equally likely to occur.  Suppose instead that the distribution was highly skewed, that some of the <span class="tex">$b$</span> states were much more likely to occur than most.  Would this strengthen or weaken the case for sample updates over expected updates?  Support your answer.</p>
</blockquote>
<p>For the expected updates, all transitions no matter how small the probability are given the same amount of computation time.  If certain transitions are much more likely than others, than the resulting state value computation is dominated by those transitions.  If we perform sample updates, those transitions will appear more frequently than the less likely ones and will contribute earlier to the error reduction.  In the extreme case if just one transition is close to probability 1, then that will be sampled almost every time and after just a single sample the error could be reduced close to 0.  An expected update, on the other hand, would have to consider every state action pair to just perform a single update.  Therefore the efficiency of sample updates would become exaggerated in all real world problems where the subsequent state transition probabilities deviate from a uniform distribution.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·bBÐ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$3b0d2c55-2123-4b51-b946-6bc352e3d00a¹depends_on_disabled_cellsÂ§runtimeÎ ¶µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cfŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ*simulate! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀPn°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf¹depends_on_disabled_cellsÂ§runtimeÎ &ezµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$d4e1e807-7e87-4b43-9c36-f59999dfcd2dŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ/get_dict_value (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀS#°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$d4e1e807-7e87-4b43-9c36-f59999dfcd2d¹depends_on_disabled_cellsÂ§runtimeÎ çµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$e25ec0d5-f70f-4269-b2a1-efa194936f72Š¦queuedÂ¤logs�§runningÂ¦output†¤body ¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àˆ<ï°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e25ec0d5-f70f-4269-b2a1-efa194936f72¹depends_on_disabled_cellsÂ§runtimeÎ 	_ªµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$1f7d77a6-d774-436d-a745-5a160cc15f2bŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+plot_path (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÈWÀè°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$1f7d77a6-d774-436d-a745-5a160cc15f2b¹depends_on_disabled_cellsÂ§runtimeÎ  F:µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$5b688057-06c7-4ae4-95d6-0a2ff451f11cŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ.figure_8_4â€² (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ép×^°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$5b688057-06c7-4ae4-95d6-0a2ff451f11c¹depends_on_disabled_cellsÂ§runtimeÎ �\)µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$8987052b-0828-43a5-982e-5f3d6209f2aaŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚÓ<bond def="fig_8_4_params" unique_id="IIcT7KYTWV7G"><span style='display: contents;'>
	<span style='display: contents;'><div class="markdown"><p>Planning Steps: <pl-combined-child key='zgemfucvnn' style='display: contents;'><input type='number' min='1' step='1' max='100' value='5'></pl-combined-child></p>
</div><script id='zgemfucvnn'>
const div = currentScript.parentElement
let key = "zgemfucvnn"
const inputs = div.querySelectorAll(`pl-combined-child[key='${key}'] > *:first-child`)

const values = Array(inputs.length)

inputs.forEach(async (el,i) => {
	el.oninput = (e) => {
		e.stopPropagation()
	}
	const gen = Generators.input(el)
	while(true) {
		values[i] = await gen.next().value
		div.dispatchEvent(new CustomEvent("input", {}))
	}
})


let set_input_value = (() => {
	let result = null
	try {
	result = setBoundElementValueLikePluto
} catch (e) {
	result = ((input, new_value) => {
	// fallback in case https://github.com/fonsp/Pluto.jl/pull/1755 is not available
    if (new_value == null) {
        //@ts-ignore
        input.value = new_value
        return
    }
    if (input instanceof HTMLInputElement) {
        switch (input.type) {
            case "range":
            case "number": {
                if (input.valueAsNumber !== new_value) {
                    input.valueAsNumber = new_value
                }
                return
            }
            case "date": {
                if (input.valueAsDate == null || Number(input.valueAsDate) !== Number(new_value)) {
                    input.valueAsDate = new_value
                }
                return
            }
            case "checkbox": {
                if (input.checked !== new_value) {
                    input.checked = new_value
                }
                return
            }
            case "file": {
                // Can't set files :(
                return
            }
        }
    } else if (input instanceof HTMLSelectElement && input.multiple) {
        for (let option of Array.from(input.options)) {
            option.selected = new_value.includes(option.value)
        }
        return
    }
    //@ts-ignore
    if (input.value !== new_value) {
        //@ts-ignore
        input.value = new_value
    }
})
}
return result
})()


Object.defineProperty(div, 'value', {
	get: () => values,
	set: (newvals) => {
		if(!newvals) {
			return
		}
		inputs.forEach((el, i) => {
			values[i] = newvals[i]
			set_input_value(el, newvals[i])
		})
},
	configurable: true,
});

</script></span>
	<input type=submit id='fcozdtdaow'>
	<script id='fcozdtdaow'>

let key = "fcozdtdaow"

let div = currentScript.parentElement
let button = currentScript.previousElementSibling
let input = div.firstElementChild
if(input === button) {
	return
}


let set_input_value = (() => {
	let result = null
	try {
	result = setBoundElementValueLikePluto
} catch (e) {
	result = ((input, new_value) => {
	// fallback in case https://github.com/fonsp/Pluto.jl/pull/1755 is not available
    if (new_value == null) {
        //@ts-ignore
        input.value = new_value
        return
    }
    if (input instanceof HTMLInputElement) {
        switch (input.type) {
            case "range":
            case "number": {
                if (input.valueAsNumber !== new_value) {
                    input.valueAsNumber = new_value
                }
                return
            }
            case "date": {
                if (input.valueAsDate == null || Number(input.valueAsDate) !== Number(new_value)) {
                    input.valueAsDate = new_value
                }
                return
            }
            case "checkbox": {
                if (input.checked !== new_value) {
                    input.checked = new_value
                }
                return
            }
            case "file": {
                // Can't set files :(
                return
            }
        }
    } else if (input instanceof HTMLSelectElement && input.multiple) {
        for (let option of Array.from(input.options)) {
            option.selected = new_value.includes(option.value)
        }
        return
    }
    //@ts-ignore
    if (input.value !== new_value) {
        //@ts-ignore
        input.value = new_value
    }
})
}
return result
})()



let private_value = null
let public_value = null




private_value = public_value = div.value
if(private_value != null) {
	set_input_value(input, private_value)
} else {

	// private_value = public_value = input.value
}

input.oninput = (e) => {
	e.stopPropagation()
}
const gen = Generators.input(input)

// If the child does not have an initial value, the `gen.next().value` promise will never resolve. If it does, then it resolves instantly.
let first_value = await Promise.any([
	gen.next().value,
	Promise.resolve(undefined)
])
private_value = public_value = first_value

;(async () => {
	while(true) {
		private_value = await gen.next().value
		// div.dispatchEvent(new CustomEvent("input", {}))
	}
})()

button.addEventListener("click", () => {
	public_value = private_value
	div.dispatchEvent(new CustomEvent("input", {}))
})


Object.defineProperty(div, 'value', {
	get: () => public_value,
	set: (newval) => {
		private_value = newval
		public_value = newval
		
		set_input_value(input, newval)
	},
	configurable: true,
});

</script></span></bond>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•¾�l�°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$8987052b-0828-43a5-982e-5f3d6209f2aa¹depends_on_disabled_cellsÂ§runtimeÎ¾CAµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$4b2a4fb1-7395-4293-9ff9-e2f9da50f56bŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ3value_iteration_q! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á9ˆ7°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4b2a4fb1-7395-4293-9ff9-e2f9da50f56b¹depends_on_disabled_cellsÂ§runtimeÎ 
t[µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/95a7829c5a22024f"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Å—la°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5¹depends_on_disabled_cellsÂ§runtimeÎí—(Wµpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/95a7829c5a22024f¸depends_on_skipped_cellsÂ§erroredÂÙ$5afad18b-1d87-450e-a0ff-8c1249d663edŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ.tabular_dynaQ (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÅÎk<°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$5afad18b-1d87-450e-a0ff-8c1249d663ed¹depends_on_disabled_cellsÂ§runtimeÎ@÷µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ2tabular_dynaQplus (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÅÖ`_°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3¹depends_on_disabled_cellsÂ§runtimeÎáµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$5ae2d740-13c7-4568-8f04-25bc82fecbdbŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/d28007b66490ffa3"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Éne°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$5ae2d740-13c7-4568-8f04-25bc82fecbdb¹depends_on_disabled_cellsÂ§runtimeÎ«¡#µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/d28007b66490ffa3¸depends_on_skipped_cellsÂ§erroredÂÙ$0dbd2b87-d000-408b-8d04-25fc0fa512d1Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/8b0fca3c029bef9b"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Éïk/°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$0dbd2b87-d000-408b-8d04-25fc0fa512d1¹depends_on_disabled_cellsÂ§runtimeÎ2¸&¤µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/8b0fca3c029bef9b¸depends_on_skipped_cellsÂ§erroredÂÙ$33f66659-1a87-4890-9137-dbc7776a19d8Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ5make_greedy_policy! (generic function with 4 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á+Œ.°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$33f66659-1a87-4890-9137-dbc7776a19d8¹depends_on_disabled_cellsÂ§runtimeÎ -ÓÖµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$269f4505-e807-446c-8fd8-3458482e00abŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ5tabular_dynaQplusâ€² (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÅÞn °persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$269f4505-e807-446c-8fd8-3458482e00ab¹depends_on_disabled_cellsÂ§runtimeÎ‘Àµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$037f1804-b24e-46e7-b2a8-6747e669db66Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+makelookup (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À…¦&°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$037f1804-b24e-46e7-b2a8-6747e669db66¹depends_on_disabled_cellsÂ§runtimeÎ Byµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$c1ff1bea-649c-4483-b4be-55134f0e8cb7Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ.sample_action (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àx?Ù°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$c1ff1bea-649c-4483-b4be-55134f0e8cb7¹depends_on_disabled_cellsÂ§runtimeÎ –Íµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$7ae23e8e-d554-4d26-a08a-83dab507af13Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ>initialize_state_action_value (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À­OD°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$7ae23e8e-d554-4d26-a08a-83dab507af13¹depends_on_disabled_cellsÂ§runtimeÎ 1Yµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$26fe0c28-8f0f-4cff-87fb-76f04fce1be1Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚØ<div class="markdown"><blockquote>
<h3><em>Exercise 8.3</em></h3>
<p>Careful inspection of Figure 8.5 reveals that the difference between Dyna-Q&#43; and Dyna-Q narrowed slightly over the first part of the experiment. What is the reason for this?</p>
</blockquote>
<p>As long as the environment isn&#39;t changing, no matter how small Ïµ is both algorithms will converge to the optimal policy as long as <span class="tex">$\alpha$</span>, <span class="tex">$\kappa$</span>, and <span class="tex">$\tau$</span> converge to 0.  For a given value of <span class="tex">$\epsilon$</span>, the Dyna-Q&#43; agent will take more exploratory actions due to the modified rewards updating the Q function.  If both agents have converged to close to the optimal policy at this point, then the agent which follows a more expoitative policy will produce higher rewards.  In this case, the extra exploration of Dyna-Q&#43; is not beneficial and its relative performance to Dyna-Q degrades.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`á3°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$26fe0c28-8f0f-4cff-87fb-76f04fce1be1¹depends_on_disabled_cellsÂ§runtimeÎ K,µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$98547223-05a6-43da-80b2-63c67d2de283Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/a52c35ad9932b961"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•ÊÚ>ê°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$98547223-05a6-43da-80b2-63c67d2de283¹depends_on_disabled_cellsÂ§runtimeÎ|
_µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/a52c35ad9932b961¸depends_on_skipped_cellsÂ§erroredÂÙ$4b3604db-0c1b-4770-95b1-5f5bb34d071bŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ,addelements (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ì%¹=°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$4b3604db-0c1b-4770-95b1-5f5bb34d071b¹depends_on_disabled_cellsÂ§runtimeÎøïÛµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$143fff7d-0bb2-43b4-b810-53784fe848bdŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+q_learning (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Æ�à°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$143fff7d-0bb2-43b4-b810-53784fe848bd¹depends_on_disabled_cellsÂ§runtimeÎ ¬œàµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$6778296c-ab05-47e7-86d2-e98c075a8a0cŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ9begin_value_iteration_q (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á9éš°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$6778296c-ab05-47e7-86d2-e98c075a8a0c¹depends_on_disabled_cellsÂ§runtimeÎ )µÓµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$c04c803c-cdca-4b8b-9c9d-e456ee677906Š¦queuedÂ¤logs�§runningÂ¦output†¤body…¦prefixÚ`MDP_TD{GridworldState, GridworldAction, var"#tr#253"{GridworldState, Float32, Float32, var"#246#257", Float32, GridworldState, Float32, Bool, var"#isterm#252"{GridworldState, GridworldState, Bool}, var"#step#251"{var"#260#262", var"#boundstate#250"{Int64, Int64}}}, var"#243#254"{GridworldState}, var"#isterm#252"{GridworldState, GridworldState, Bool}}¨elements—’¦states’…¦prefixÙ$Main.var"workspace#3".GridworldState¨elements›’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°78e123e4099fe993Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡2ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°e3e6b188bd382934Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡3ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°7d75a91561e03d66Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡4ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°325862729a669fdeÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡5ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°59376920d2867542Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡6ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°d7705072323ddd64Ù!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ef30e57a3ff0766eÙ!application/vnd.pluto.tree+object’’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡2ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°74f497567b7de001Ù!application/vnd.pluto.tree+object’	’…¦prefix®GridworldState¨elements’’¡x’¡2ªtext/plain’¡y’¡3ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°166e372c9e1355f0Ù!application/vnd.pluto.tree+object¤more’6’…¦prefix®GridworldState¨elements’’¡x’¡9ªtext/plain’¡y’¡6ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°1d0d8e9e873bda4fÙ!application/vnd.pluto.tree+object¤type¥Array¬prefix_short ¨objectid°5e3404ae0546631bÙ!application/vnd.pluto.tree+object’«statelookup’…¦prefixÙ1Dict{Main.var"workspace#3".GridworldState, Int64}¨elements›’’…¦prefix®GridworldState¨elements’’¡x’¡1ªtext/plain’¡y’¡4ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°325862729a669fdeÙ!application/vnd.pluto.tree+object’¡4ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡8ªtext/plain’¡y’¡6ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°d0ac7db8d6b14b7fÙ!application/vnd.pluto.tree+object’¢48ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡6ªtext/plain’¡y’¡2ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°4d2c7a741b24f41aÙ!application/vnd.pluto.tree+object’¢32ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡3ªtext/plain’¡y’¡1ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°ec7c7c34fdbec3f2Ù!application/vnd.pluto.tree+object’¢13ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡7ªtext/plain’¡y’¡4ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°6d65389d7722da42Ù!application/vnd.pluto.tree+object’¢40ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡6ªtext/plain’¡y’¡4ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°4e5052acf2cd62e8Ù!application/vnd.pluto.tree+object’¢34ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡6ªtext/plain’¡y’¡6ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°b2f6373593d54ffbÙ!application/vnd.pluto.tree+object’¢36ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡9ªtext/plain’¡y’¡5ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°26f50dc5dc06527cÙ!application/vnd.pluto.tree+object’¢53ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡6ªtext/plain’¡y’¡5ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°c13ef9f7ef89e757Ù!application/vnd.pluto.tree+object’¢35ªtext/plain’’…¦prefix®GridworldState¨elements’’¡x’¡3ªtext/plain’¡y’¡6ªtext/plain¤type¦struct¬prefix_short®GridworldState¨objectid°87fd641095222e9dÙ!application/vnd.pluto.tree+object’¢18ªtext/plain¤more¤type¤Dict¬prefix_short¤Dict¨objectid°b327a2c12cf53e8dÙ!application/vnd.pluto.tree+object’§actions’…¦prefixÙ%Main.var"workspace#3".GridworldAction¨elements”’’…¦prefix¢Up¨elements�¤type¦struct¬prefix_short¢Up¨objectid°ffffffff3d46da74Ù!application/vnd.pluto.tree+object’’…¦prefix¤Down¨elements�¤type¦struct¬prefix_short¤Down¨objectid°ffffffffd3211a14Ù!application/vnd.pluto.tree+object’’…¦prefix¤Left¨elements�¤type¦struct¬prefix_short¤Left¨objectid°ffffffffac7e5e95Ù!application/vnd.pluto.tree+object’’…¦prefix¥Right¨elements�¤type¦struct¬prefix_short¥Right¨objectid°ffffffffe46c1e9eÙ!application/vnd.pluto.tree+object¤type¥Array¬prefix_short ¨objectid°438bebd2b1ee3c7cÙ!application/vnd.pluto.tree+object’¬actionlookup’…¦prefixÙ2Dict{Main.var"workspace#3".GridworldAction, Int64}¨elements”’’…¦prefix¢Up¨elements�¤type¦struct¬prefix_short¢Up¨objectid°ffffffff3d46da74Ù!application/vnd.pluto.tree+object’¡1ªtext/plain’’…¦prefix¤Down¨elements�¤type¦struct¬prefix_short¤Down¨objectid°ffffffffd3211a14Ù!application/vnd.pluto.tree+object’¡2ªtext/plain’’…¦prefix¥Right¨elements�¤type¦struct¬prefix_short¥Right¨objectid°ffffffffe46c1e9eÙ!application/vnd.pluto.tree+object’¡4ªtext/plain’’…¦prefix¤Left¨elements�¤type¦struct¬prefix_short¤Left¨objectid°ffffffffac7e5e95Ù!application/vnd.pluto.tree+object’¡3ªtext/plain¤type¤Dict¬prefix_short¤Dict¨objectid¯3bf05d9d6d85a74Ù!application/vnd.pluto.tree+object’ªstate_init’Ù%#243 (generic function with 1 method)ªtext/plain’¤step’Úá(::Main.var"workspace#3".var"#tr#253"{Main.var"workspace#3".GridworldState, Float32, Float32, Main.var"workspace#3".var"#246#257", Float32, Main.var"workspace#3".GridworldState, Float32, Bool, Main.var"workspace#3".var"#isterm#252"{Main.var"workspace#3".GridworldState, Main.var"workspace#3".GridworldState, Bool}, Main.var"workspace#3".var"#step#251"{Main.var"workspace#3".var"#260#262", Main.var"workspace#3".var"#boundstate#250"{Int64, Int64}}}) (generic function with 1 method)ªtext/plain’¦isterm’Ù�(::Main.var"workspace#3".var"#isterm#252"{Main.var"workspace#3".GridworldState, Main.var"workspace#3".GridworldState, Bool}) (generic function with 1 method)ªtext/plain¤type¦struct¬prefix_short¦MDP_TD¨objectid°36d0eb4ffa9f9c28¤mimeÙ!application/vnd.pluto.tree+object¬rootassigneeÀ²last_run_timestampËAÚ•Æ”ŒÖ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$c04c803c-cdca-4b8b-9c9d-e456ee677906¹depends_on_disabled_cellsÂ§runtimeÎ(£¥Òµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$9d69687a-8df6-4e74-aa99-fbfcc84bcccfŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚH<div style = "display: flex; flex-direction: column; align-items: center; justify-content: center; color: black; background-color: rgba(100, 100, 100, 0.1);">
	<div style = "display: flex; align-items: center; justify-content: center;">
	<div class = "downarrow" style = "transform: rotate(90deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(270deg);"></div>
	<div class = "downarrow" style = "position: absolute;"></div>
	</div>
	<div>Actions</div>
</div>
¤mime©text/html¬rootassignee¹const rook_action_display²last_run_timestampËAÚ•Ì=³F°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$9d69687a-8df6-4e74-aa99-fbfcc84bcccf¹depends_on_disabled_cellsÂ§runtimeÎ iËßµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$16c68a13-c295-4a64-bc2b-2ae8451f332fŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8bellman_optimal_value! (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Á2« °persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$16c68a13-c295-4a64-bc2b-2ae8451f332f¹depends_on_disabled_cellsÂ§runtimeÎ í©[µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$fb00aedd-e103-4463-b4f8-d0dce6275c64Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ,example_8_4 (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ç{ð»°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$fb00aedd-e103-4463-b4f8-d0dce6275c64¹depends_on_disabled_cellsÂ§runtimeÎ q*µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$e43513e8-2517-43b7-9a16-e57d4125edc4Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ,runepisode (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀÆý°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$e43513e8-2517-43b7-9a16-e57d4125edc4¹depends_on_disabled_cellsÂ§runtimeÎ PÁµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$df62fd47-6627-4931-b429-964c65960446Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+figure_8_7 (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•¾¤Z°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$df62fd47-6627-4931-b429-964c65960446¹depends_on_disabled_cellsÂ§runtimeÎ 7Uµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$321bdf5a-bff7-4181-986f-d3884ea96d27Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ2<div class="markdown"><h1>Dependencies</h1>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·c3"°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$321bdf5a-bff7-4181-986f-d3884ea96d27¹depends_on_disabled_cellsÂ§runtimeÎ õ=µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ5make_greedy_policy! (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ág®°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$82e1ceb8-b1bb-4dea-b041-bf462041793f¹depends_on_disabled_cellsÂ§runtimeÎ ,æµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$5e49504e-9623-48f9-aeb5-360906b92a09Š¦queuedÂ¤logs�§runningÂ¦output†¤body‚£msgÙ�UndefVarError: `nyt_valid_words` not defined in `Main.var"workspace#3"`
Suggestion: check for spelling errors or missing imports.ªstacktrace‘Œªcall_short¯top-level scope§inlinedÂ£urlÀ¤pathÙé/home/runner/work/Reinforcement-Learning-Sutton-Barto-Exercise-Solutions/Reinforcement-Learning-Sutton-Barto-Exercise-Solutions/Chapter-08/Chapter_08_Planning_&_Learning_with_Tabular_Methods.jl#==#5e49504e-9623-48f9-aeb5-360906b92a09®source_packageÀ¤call¯top-level scopeªlinfo_type­Core.CodeInfo¤line¤fileÙ^Chapter_08_Planning_&_Learning_with_Tabular_Methods.jl#==#5e49504e-9623-48f9-aeb5-360906b92a09¤func¯top-level scope­parent_moduleÀ¦from_cÂ¤mimeÙ'application/vnd.pluto.stacktrace+object¬rootassignee©vholdtest²last_run_timestampËAÚ•Å®y)°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$5e49504e-9623-48f9-aeb5-360906b92a09¹depends_on_disabled_cellsÂ§runtimeÀµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÃÙ$2ff6d187-e06f-47b5-9834-d06bfc820c26Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+figure_8_4 (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•É “°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$2ff6d187-e06f-47b5-9834-d06bfc820c26¹depends_on_disabled_cellsÂ§runtimeÎ @Š¾µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚj„	<script id='plot_1'>
		// We start by putting all the variable interpolation here at the beginning
		// We have to convert all typedarrays in the layout to normal arrays. See Issue #25
		// We use lodash for this for compactness
		function removeTypedArray(o) {
			return _.isTypedArray(o) ? Array.from(o) :
			_.isPlainObject(o) ? _.mapValues(o, removeTypedArray) : 
			o
		}

		// Publish the plot object to JS
		let plot_obj = _.update(/* See the documentation for AbstractPlutoDingetjes.Display.published_to_js */ getPublishedObject("3ee53c46-38f7-11f0-16c9-2b093684d981/dc5f2c047336b14a"), "layout", removeTypedArray)
		// Get the plotly listeners
		const plotly_listeners = {}
		// Get the JS listeners
		const js_listeners = {}
		// Deal with eventual custom classes
		let custom_classlist = []


		// Load the plotly library
		let Plotly = undefined
		try {
			let _mod = await import("./plotlyjs/plotlyjs-2.26.2.min.js")
			Plotly = _mod.default
		} catch (e) {
			console.log("Local load failed, trying with the web esm.sh version")
			let _mod = await import("https://esm.sh/plotly.js-dist-min@2.26.2/es2022/plotly.js-dist-min.mjs")
			Plotly = _mod.default
		}

		// Check if we have to force local mathjax font cache
		if (false && window?.MathJax?.config?.svg?.fontCache === 'global') {
			window.MathJax.config.svg.fontCache = 'local'
		}

		// Flag to check if this cell was  manually ran or reactively ran
const firstRun = this ? false : true
const CONTAINER = this ?? html`<div class='plutoplotly-container'>`
const PLOT = CONTAINER.querySelector('.js-plotly-plot') ?? CONTAINER.appendChild(html`<div>`)
const parent = CONTAINER.parentElement
// We use a controller to remove event listeners upon invalidation
const controller = new AbortController()
// We have to add this to keep supporting @bind with the old API using PLOT
PLOT.addEventListener('input', (e) => {
	CONTAINER.value = PLOT.value
	if (e.bubbles) {
		return
	}
	CONTAINER.dispatchEvent(new CustomEvent('input'))
}, { signal: controller.signal })

	// This create the style subdiv on first run
	firstRun && CONTAINER.appendChild(html`
	<style>
	.plutoplotly-container {
		width: 100%;
		height: 100%;
		min-height: 0;
		min-width: 0;
	}
	.plutoplotly-container .js-plotly-plot .plotly div {
		margin: 0 auto; // This centers the plot
	}
	.plutoplotly-container.popped-out {
		overflow: auto;
		z-index: 1000;
		position: fixed;
		resize: both;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		border-top-left-radius: 0px;
		border-top-right-radius: 0px;
	}
	.plutoplotly-clipboard-header {
		display: flex;
		flex-flow: row wrap;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-top-left-radius: 12px;
		border-top-right-radius: 12px;
		position: fixed;
		z-index: 1001;
		cursor: move;
		transform: translate(0px, -100%);
		padding: 5px;
	}
	.plutoplotly-clipboard-header span {
		display: inline-block;
		flex: 1
	}
	.plutoplotly-clipboard-header.hidden {
		display: none;
	}
	.clipboard-span {
		position: relative;
	}
	.clipboard-value {
		padding-right: 5px;
		padding-left: 2px;
		cursor: text;
	}
	.clipboard-span.format {
		display: none;
	}
	.clipboard-span.filename {
		flex: 0 0 100%;
		text-align: center;
		border-top: 3px solid var(--kbd-border-color);
		margin-top: 5px;
		display: none;
	}
	.plutoplotly-container.filesave .clipboard-span.filename {
		display: inline-block;
	}
	.clipboard-value.filename {
		margin-left: 3px;
		text-align: left;
		min-width: min(60%, min-content);
	}
	.plutoplotly-container.filesave .clipboard-span.format {
		display: inline-flex;
	}
	.clipboard-span.format .label {
		flex: 0 0 0;
	}
	.clipboard-value.format {
		position: relative;
		flex: 1 0 auto;
		min-width: 30px;
		margin-right: 10px;
	}
	div.format-options {
		display: inline-flex;
		flex-flow: column;
		position: absolute;
		background: var(--main-bg-color);
		border-radius: 12px;
		padding-left: 3px;
		z-index: 2000;
	}
	div.format-options:hover {
		cursor: pointer;
		border: 3px solid var(--kbd-border-color);
		padding: 3px;
		transform: translate(-3px, -6px);
	}
	div.format-options .format-option {
		display: none;
	}
	div.format-options:hover .format-option {
		display: inline-block;
	}
	.format-option:not(.selected) {
		margin-top: 3px;
	}
	div.format-options .format-option.selected {
		order: -1;
		display: inline-block;
	}
	.format-option:hover {
		background-color: var(--kbd-border-color);
	}
	span.config-value {
		font-weight: normal;
		color: var(--pluto-output-color);
		display: none;
		position: absolute;
		background: var(--main-bg-color);
		border: 3px solid var(--kbd-border-color);
		border-radius: 12px;
		transform: translate(0px, calc(-100% - 10px));
		padding: 5px;
	}
	.label {
		user-select: none;
	}
	.label:hover span.config-value {
		display: inline-block;
		min-width: 150px;
	}
	.clipboard-span.matching-config .label {
		color: var(--cm-macro-color);
		font-weight: bold;
	}
	.clipboard-span.different-config .label {
		color: var(--cm-tag-color);
		font-weight: bold;
	}
</style>
`)

let original_height = plot_obj.layout.height
let original_width = plot_obj.layout.width
// For the height we have to also put a fixed value in case the plot is put on a non-fixed-size container (like the default wrapper)
// We define a variable to check whether we still have to remove the fixed height
let remove_container_size = firstRun
let container_height = original_height ?? PLOT.container_height ?? 400
CONTAINER.style.height = container_height + 'px'

// We create a Promise version of setTimeout
function delay(ms) {
  return new Promise((resolve) => setTimeout(resolve, ms));
}

// We import interact for dragging/resizing
const { default: interact } = await import('https://esm.sh/interactjs@1.10.19')


function getImageOptions() {
  const o = plot_obj.config.toImageButtonOptions ?? {};
  return {
    format: o.format ?? "png",
    width: o.width ?? original_width,
    height: o.height ?? original_height,
    scale: o.scale ?? 1,
    filename: o.filename ?? "newplot",
  };
}

const CLIPBOARD_HEADER =
  CONTAINER.querySelector(".plutoplotly-clipboard-header") ??
  CONTAINER.insertAdjacentElement(
    "afterbegin",
    html`<div class="plutoplotly-clipboard-header hidden">
      <span class="clipboard-span format"
        ><span class="label">Format:</span
        ><span class="clipboard-value format"></span
      ></span>
      <span class="clipboard-span width"
        ><span class="label">Width:</span
        ><span class="clipboard-value width"></span>px</span
      >
      <span class="clipboard-span height"
        ><span class="label">Height:</span
        ><span class="clipboard-value height"></span>px</span
      >
      <span class="clipboard-span scale"
        ><span class="label">Scale:</span
        ><span class="clipboard-value scale"></span
      ></span>
      <button class="clipboard-span set">Set</button>
      <button class="clipboard-span unset">Unset</button>
      <span class="clipboard-span filename"
        ><span class="label">Filename:</span
        ><span class="clipboard-value filename"></span
      ></span>
    </div>`
  );

function checkConfigSync(container) {
  const valid_classes = [
    "missing-config",
    "matching-config",
    "different-config",
  ];
  function setClass(cl) {
    for (const name of valid_classes) {
      container.classList.toggle(name, name == cl);
    }
  }
  // We use the custom getters we'll set up in the container
  const { ui_value, config_value, config_span, key } = container;
  if (config_value === undefined) {
    setClass("missing-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> is not present in the config.`;
  } else if (ui_value == config_value) {
    setClass("matching-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has the same value in the config and in the header.`;
  } else {
    setClass("different-config");
    config_span.innerHTML = `The key <b><em>${key}</em></b> has a different value (<em>${config_value}</em>) in the config.`;
  }
  // Add info about setting and unsetting
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click on the label <em><b>once</b></em> to set the current UI value in the config.`
  );
  config_span.insertAdjacentHTML(
    "beforeend",
    `<br>Click <em><b>twice</b></em> to remove this key from the config.`
  );
}

const valid_formats = ["png", "svg", "webp", "jpeg", "full-json"];
function initializeUIValueSpan(span, key, value) {
  const container = span.closest(".clipboard-span");
  span.contentEditable = key === "format" ? "false" : "true";
  let parse = (x) => x;
  let update = (x) => (span.textContent = x);
  if (key === "width" || key === "height") {
    parse = (x) => Math.round(parseFloat(x));
  } else if (key === "scale") {
    parse = parseFloat;
  } else if (key === "format") {
    // We remove contentEditable
    span.contentEditable = "false";
    // Here we first add the subspans for each option
    const opts_div = span.appendChild(html`<div class="format-options"></div>`);
    for (const fmt of valid_formats) {
      const opt = opts_div.appendChild(
        html`<span class="format-option ${fmt}">${fmt}</span>`
      );
      opt.onclick = (e) => {
        span.value = opt.textContent;
      };
    }
    parse = (x) => {
      return valid_formats.includes(x) ? x : localValue;
    };
    update = (x) => {
      for (const opt of opts_div.children) {
        opt.classList.toggle("selected", opt.textContent === x);
      }
    };
  } else {
    // We only have filename here
  }
  let localValue;
  Object.defineProperty(span, "value", {
    get: () => {
      return localValue;
    },
    set: (val) => {
      if (val !== "") {
        localValue = parse(val);
      }
      update(localValue);
      checkConfigSync(container);
    },
  });
  // We also assign a listener so that the editable is blurred when enter is pressed
  span.onkeydown = (e) => {
    if (e.keyCode === 13) {
      e.preventDefault();
      span.blur();
    }
  };
  span.value = value;
}

function initializeConfigValueSpan(span, key) {
  // Here we mostly want to define the setter and getter
  const container = span.closest(".clipboard-span");
  Object.defineProperty(span, "value", {
    get: () => {
      return plot_obj.config.toImageButtonOptions[key];
    },
    set: (val) => {
      // if undefined is passed, we remove the entry from the options
      if (val === undefined) {
        delete plot_obj.config.toImageButtonOptions[key];
      } else {
        plot_obj.config.toImageButtonOptions[key] = val;
      }
      checkConfigSync(container);
    },
  });
}

const config_spans = {};
for (const [key, value] of Object.entries(getImageOptions())) {
  const container = CLIPBOARD_HEADER.querySelector(`.clipboard-span.${key}`);
  const label = container.querySelector(".label");
  // We give the label a function that on single click will set the current value and with double click will unset it
  label.onclick = DualClick(
    () => {
      container.config_value = container.ui_value;
    },
    (e) => {
      console.log("e", e);
      e.preventDefault();
      container.config_value = undefined;
    }
  );
  const ui_value_span = container.querySelector(".clipboard-value");
  const config_value_span =
    container.querySelector(".config-value") ??
    label.insertAdjacentElement(
      "afterbegin",
      html`<span class="config-value"></span>`
    );
  // Assing the two spans as properties of the containing span
  container.ui_span = ui_value_span;
  container.config_span = config_value_span;
  container.key = key;
  config_spans[key] = container;
  if (firstRun) {
    plot_obj.config.toImageButtonOptions =
      plot_obj.config.toImageButtonOptions ?? {};
    // We do the initialization of the value span
    initializeUIValueSpan(ui_value_span, key, value);
    // Then we initialize the config value
    initializeConfigValueSpan(config_value_span, key);
    // We put some convenience getters/setters
    // ui_value forward
    Object.defineProperty(container, "ui_value", {
      get: () => ui_value_span.value,
      set: (val) => {
        ui_value_span.value = val;
      },
    });
    // config_value forward
    Object.defineProperty(container, "config_value", {
      get: () => config_value_span.value,
      set: (val) => {
        config_value_span.value = val;
      },
    });
  }
}

// These objects will contain the default value

// This code updates the image options in the PLOT config with the provided ones
function setImageOptions(o) {
  for (const [key, container] of Object.entries(config_spans)) {
    container.config_value = o[key];
  }
}
function unsetImageOptions() {
  setImageOptions({});
}

const set_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.set");
const unset_button = CLIPBOARD_HEADER.querySelector(".clipboard-span.unset");
if (firstRun) {
  set_button.onclick = (e) => {
    for (const container of Object.values(config_spans)) {
      container.config_value = container.ui_value;
    }
  };
  unset_button.onclick = unsetImageOptions;
}

// We add a function to check if the clipboard is popped out
CONTAINER.isPoppedOut = () => {
  return CONTAINER.classList.contains("popped-out");
};

CLIPBOARD_HEADER.onmousedown = function (event) {
  if (event.target.matches("span.clipboard-value")) {
    console.log("We don't move!");
    return;
  }
  const start = {
    left: parseFloat(CONTAINER.style.left),
    top: parseFloat(CONTAINER.style.top),
    X: event.pageX,
    Y: event.pageY,
  };
  function moveAt(event, start) {
    const top = event.pageY - start.Y + start.top + "px";
    const left = event.pageX - start.X + start.left + "px";
    CLIPBOARD_HEADER.style.left = left;
    CONTAINER.style.left = left;
    CONTAINER.style.top = top;
  }

  // move our absolutely positioned ball under the pointer
  moveAt(event, start);
  function onMouseMove(event) {
    moveAt(event, start);
  }

  // We use this to remove the mousemove when clicking outside of the container
  const controller = new AbortController();

  // move the container on mousemove
  document.addEventListener("mousemove", onMouseMove, {
    signal: controller.signal,
  });
  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        cleanUp();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );

  function cleanUp() {
    console.log("cleaning up the plot move listener");
    controller.abort();
    CLIPBOARD_HEADER.onmouseup = null;
  }

  // (3) drop the ball, remove unneeded handlers
  CLIPBOARD_HEADER.onmouseup = cleanUp;
};

function sendToClipboard(blob) {
  if (!navigator.clipboard) {
    alert(
      "The Clipboard API does not seem to be available, make sure the Pluto notebook is being used from either localhost or an https source."
    );
  }
  navigator.clipboard
    .write([
      new ClipboardItem({
        // The key is determined dynamically based on the blob's type.
        [blob.type]: blob,
      }),
    ])
    .then(
      function () {
        console.log("Async: Copying to clipboard was successful!");
      },
      function (err) {
        console.error("Async: Could not copy text: ", err);
      }
    );
}

function copyImageToClipboard() {
  // We extract the image options from the provided parameters (if they exist)
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key. We also ignore format because the clipboard only supports png.
    if (val === undefined || key === "format") {
      continue;
    }
    config[key] = val;
  }
  Plotly.toImage(PLOT, config).then(function (dataUrl) {
    fetch(dataUrl)
      .then((res) => res.blob())
      .then((blob) => {
        const paste_receiver = document.querySelector('paste-receiver.plutoplotly')
        if (paste_receiver) {
          paste_receiver.attachImage(dataUrl, CONTAINER)
        }
        sendToClipboard(blob)
      });
  });
}

function saveImageToFile() {
  const config = {};
  for (const [key, container] of Object.entries(config_spans)) {
    let val =
      container.config_value ??
      (CONTAINER.isPoppedOut() ? container.ui_value : undefined);
    // If we have undefined we don't create the key.
    if (val === undefined) {
      continue;
    }
    config[key] = val;
  }
  Plotly.downloadImage(PLOT, config);
}

let container_rect = { width: 0, height: 0, top: 0, left: 0 };
function unpop_container(cl) {
  CONTAINER.classList.toggle("popped-out", false);
  CONTAINER.classList.toggle(cl, false);
  // We fix the height back to the value it had before popout, also setting the flag to signal that upon first resize we remove the fixed inline-style
  CONTAINER.style.height = container_rect.height + "px";
  remove_container_size = true;
  // We set the other fixed inline-styles to null
  CONTAINER.style.width = "";
  CONTAINER.style.top = "";
  CONTAINER.style.left = "";
  // We also remove the CLIPBOARD_HEADER
  CLIPBOARD_HEADER.style.width = "";
  CLIPBOARD_HEADER.style.left = "";
  // Finally we remove the hidden class to the header
  CLIPBOARD_HEADER.classList.toggle("hidden", true);
  return;
}
function popout_container(opts) {
  const cl = opts?.cl;
  const target_container_size = opts?.target_container_size ?? {};
  const target_plot_size = opts?.target_plot_size ?? {};
  if (CONTAINER.isPoppedOut()) {
    return unpop_container(cl);
  }
  CONTAINER.classList.toggle(cl, cl === undefined ? false : true);
  // We extract the current size of the container, save them and fix them
  const { width, height, top, left } = CONTAINER.getBoundingClientRect();
  container_rect = { width, height, top, left };
  // We save the current plot size before we pop as it will fill the screen
  const current_plot_size = {
    width: PLOT._fullLayout.width,
    height: PLOT._fullLayout.height,
  };
  // We have to save the pad data before popping so we can resize precisely
  const pad = {};
  pad.unpopped = getSizeData().container_pad;
  CONTAINER.classList.toggle("popped-out", true);
  pad.popped = getSizeData().container_pad;
  // We do top and left based on the current rect
  for (const key of ["top", "left"]) {
    const start_val = target_container_size[key] ?? container_rect[key];
    let offset = 0;
    for (const kind of ["padding", "border"]) {
      offset += pad.popped[kind][key] - pad.unpopped[kind][key];
    }
    CONTAINER.style[key] = start_val - offset + "px";
    if (key === "left") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  // We compute the width and height depending on eventual config data
  const csz = computeContainerSize({
    width:
      target_plot_size.width ??
      config_spans.width.config_value ??
      current_plot_size.width,
    height:
      target_plot_size.height ??
      config_spans.height.config_value ??
      current_plot_size.height,
  });
  for (const key of ["width", "height"]) {
    const val = target_container_size[key] ?? csz[key];
    CONTAINER.style[key] = val + "px";
    if (key === "width") {
      CLIPBOARD_HEADER.style[key] = CONTAINER.style[key];
    }
  }
  CLIPBOARD_HEADER.classList.toggle("hidden", false);
  const controller = new AbortController();

  document.addEventListener(
    "mousedown",
    (e) => {
      if (e.target.closest(".plutoplotly-container") !== CONTAINER) {
        unpop_container();
        controller.abort();
        return;
      }
    },
    { signal: controller.signal }
  );
}

CONTAINER.popOut = popout_container;

function DualClick(single_func, dbl_func) {
  let nclicks = 0;
  return function (...args) {
    nclicks += 1;
    if (nclicks > 1) {
      dbl_func(...args);
      nclicks = 0;
    } else {
      delay(300).then(() => {
        if (nclicks == 1) {
          single_func(...args);
        }
        nclicks = 0;
      });
    }
  };
}

// We remove the default download image button
plot_obj.config.modeBarButtonsToRemove = _.union(
  plot_obj.config.modeBarButtonsToRemove,
  ["toImage"]
);
// We add the custom button to the modebar
plot_obj.config.modeBarButtonsToAdd = _.union(
  plot_obj.config.modeBarButtonsToAdd,
  [
    {
      name: "Copy PNG to Clipboard",
      icon: {
        height: 520,
        width: 520,
        path: "M280 64h40c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V128C0 92.7 28.7 64 64 64h40 9.6C121 27.5 153.3 0 192 0s71 27.5 78.4 64H280zM64 112c-8.8 0-16 7.2-16 16V448c0 8.8 7.2 16 16 16H320c8.8 0 16-7.2 16-16V128c0-8.8-7.2-16-16-16H304v24c0 13.3-10.7 24-24 24H192 104c-13.3 0-24-10.7-24-24V112H64zm128-8a24 24 0 1 0 0-48 24 24 0 1 0 0 48z",
      },
      direction: "up",
      click: DualClick(copyImageToClipboard, () => {
        popout_container();
      }),
    },
    {
      name: "Download Image",
      icon: Plotly.Icons.camera,
      direction: "up",
      click: DualClick(saveImageToFile, () => {
        popout_container({ cl: "filesave" });
      }),
    },
  ]
);

function getOffsetData(el) {
  let cs = window.getComputedStyle(el, null);
  const odata = {
    padding: {
      left: parseFloat(cs.paddingLeft),
      right: parseFloat(cs.paddingRight),
      top: parseFloat(cs.paddingTop),
      bottom: parseFloat(cs.paddingBottom),
      width: parseFloat(cs.paddingLeft) + parseFloat(cs.paddingRight),
      height: parseFloat(cs.paddingTop) + parseFloat(cs.paddingBottom),
    },
    border: {
      left: parseFloat(cs.borderLeftWidth),
      right: parseFloat(cs.borderRightWidth),
      top: parseFloat(cs.borderTopWidth),
      bottom: parseFloat(cs.borderBottomWidth),
      width: parseFloat(cs.borderLeftWidth) + parseFloat(cs.borderRightWidth),
      height: parseFloat(cs.borderTopWidth) + parseFloat(cs.borderBottomWidth),
    }
  };
  if (el === PLOT) {
    // For the PLOT we also want to take into account the offset
    odata.offset = {
      top: PLOT.offsetParent == CONTAINER ? PLOT.offsetTop : 0,
      left: PLOT.offsetParent == CONTAINER ? PLOT.offsetLeft : 0,
    }
  }
  return odata;
}
function getSizeData() {
  const data = {
    plot_pad: getOffsetData(PLOT),
    plot_rect: PLOT.getBoundingClientRect(),
    container_pad: getOffsetData(CONTAINER),
    container_rect: CONTAINER.getBoundingClientRect(),
  };
  return data;
}
function computeContainerSize({ width, height }, sizeData = getSizeData()) {
  const computed_size = computePlotSize(sizeData);
  const offsets = computed_size.offsets;

  const plot_data = {
    width: width ?? computed_size.width,
    height: height ?? computed_size.height,
  };

  return {
    width: (width ?? computed_size.width) + offsets.width,
    height: (height ?? computed_size.height) + offsets.height,
    noChange: width == computed_size.width && height == computed_size.height,
  }
}

// This function will change the container size so that the resulting plot will be matching the provided specs
function changeContainerSize({ width, height }, sizeData = getSizeData()) {
  if (!CONTAINER.isPoppedOut()) {
    console.log("Tried to change container size when not popped, ignoring");
    return;
  }

  const csz = computeContainerSize({ width, height }, sizeData);

  if (csz.noChange) {
    console.log("Size is the same as current, ignoring");
    return
  }
  // We are now going to set he width and height of the container
  for (const key of ["width", "height"]) {
    CONTAINER.style[key] = csz[key] + "px";
  }
}
// We now create the function that will update the plot based on the values specified
function updateFromHeader() {
  const header_data = {
    height: config_spans.height.ui_value,
    width: config_spans.width.ui_value,
  };
  changeContainerSize(header_data);
}
// We assign this function to the onblur event of width and height
if (firstRun) {
  for (const container of Object.values(config_spans)) {
    container.ui_span.onblur = (e) => {
      container.ui_value = container.ui_span.textContent;
      updateFromHeader();
    };
  }
}
// This function computes the plot size to use for relayout as a function of the container size
function computePlotSize(data = getSizeData()) {
  // Remove Padding
  const { container_pad, plot_pad, container_rect } = data;
  const offsets = {
    width:
      plot_pad.padding.width +
      plot_pad.border.width +
      plot_pad.offset.left +
      container_pad.padding.width +
      container_pad.border.width,
    height:
      plot_pad.padding.height +
      plot_pad.border.height +
      plot_pad.offset.top +
      container_pad.padding.height +
      container_pad.border.height,
  };
  const sz = {
    width: Math.round(container_rect.width - offsets.width),
    height: Math.round(container_rect.height - offsets.height),
    offsets,
  };
  return sz;
}

// Create the resizeObserver to make the plot even more responsive! :magic:
const resizeObserver = new ResizeObserver((entries) => {
  const sizeData = getSizeData();
  const {container_rect, container_pad} = sizeData;
  let plot_size = computePlotSize(sizeData);
  // We save the height in the PLOT object
  PLOT.container_height = container_rect.height;
  // We deal with some stuff if the container is poppped
  CLIPBOARD_HEADER.style.width = container_rect.width + "px";
  CLIPBOARD_HEADER.style.left = container_rect.left + "px";
  config_spans.height.ui_value = plot_size.height;
  config_spans.width.ui_value = plot_size.width;
  /* 
		The addition of the invalid argument `plutoresize` seems to fix the problem with calling `relayout` simply with `{autosize: true}` as update breaking mouse relayout events tracking. 
		See https://github.com/plotly/plotly.js/issues/6156 for details
		*/
  let config = {
    // If this is popped out, we ignore the original width/height
    width: (CONTAINER.isPoppedOut() ? undefined : original_width) ?? plot_size.width,
    height: (CONTAINER.isPoppedOut() ? undefined : original_height) ?? plot_size.height,
    plutoresize: true,
  };
  Plotly.relayout(PLOT, config).then(() => {
    if (remove_container_size && !CONTAINER.isPoppedOut()) {
      // This is needed to avoid the first resize upon plot creation to already be without a fixed height
      CONTAINER.style.height = "";
      CONTAINER.style.width = "";
      remove_container_size = false;
    }
  });
});

resizeObserver.observe(CONTAINER);


Plotly.react(PLOT, plot_obj).then(() => {
	// Assign the Plotly event listeners
	for (const [key, listener_vec] of Object.entries(plotly_listeners)) {
		for (const listener of listener_vec) {
			PLOT.on(key, listener)
		}
	}
	// Assign the JS event listeners
	for (const [key, listener_vec] of Object.entries(js_listeners)) {
		for (const listener of listener_vec) {
			PLOT.addEventListener(key, listener, {
				signal: controller.signal
			})
		}
	}
}
)


invalidation.then(() => {
	// Remove all plotly listeners
	PLOT.removeAllListeners()
	// Remove all JS listeners
	controller.abort()
	// Remove the resizeObserver
	resizeObserver.disconnect()
})



		return CONTAINER
	</script>
¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•Êl9"°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1¹depends_on_disabled_cellsÂ§runtimeÎ0½”µpublished_object_keys‘Ù53ee53c46-38f7-11f0-16c9-2b093684d981/dc5f2c047336b14a¸depends_on_skipped_cellsÂ§erroredÂÙ$dab6eac0-7958-4d3a-a1af-781fb57e7adbŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚ¸<div class="markdown"><h3>Example 8.3: Shortcut Maze</h3>
<p>The problem of an incorrect model can be even worse in the case of an improvement to the environment.  The following example illustrates the problem in which a maze is at first blocked forcing a longer path.  After a certain number of timesteps a shorter path is opened up without disturbing the original path.  The Dyna-Q agent however never learns to switch to the shortcut because the model never reveals it or provides incentive to explore paths that it already thinks are suboptimal.  Even with an Ïµ-greedy policy, it is very unlikely that hte agent will take so many exploratory actions as to discover the shortcut.  </p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`lÛ°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$dab6eac0-7958-4d3a-a1af-781fb57e7adb¹depends_on_disabled_cellsÂ§runtimeÎ áµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$04ea981e-337e-4324-a5cc-178eb3c7605bŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙB<div class="markdown"><h2>8.11 Monte Carlo Tree Search</h2>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·bÉë°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$04ea981e-337e-4324-a5cc-178eb3c7605b¹depends_on_disabled_cellsÂ§runtimeÎ Ýsµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$976ff0c3-54aa-41f0-b963-baf77bea8cb8Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÚß<div class="markdown"><p>The general problem here is the conflict between exploration and exploitation.  In a planning context, exploration means trying actions that improve the model, whereas exploitation means behaving in the optimal way given the current model.  We want the agent to explore to find changes in the environment, but not so much that performance is greatly degraded.  As in the earlier exploration/exploitation conflict, there probably is no solution that is both perfect and practical, but simple heuristics are often effective.</p>
<p>An example of such a heuristic is that used by the Dyna-Q&#43; agent which keeps track of how many time steps have elapsed since the state-action pair was last tried in a real interaction with the environment.  The more time that has elapsed, the greater &#40;we might presume&#41; the chance that the dynamics of this pair has changed and that the model is incorrect.  To encourage behavior that tests long-untried actions, a special &quot;bonus reward&quot; is given on simulated experiences involving these actions.  In particular, if the modeled reward for a transition is <span class="tex">$r$</span>, and the transition has not been tried in <span class="tex">$\tau$</span> time steps, then planning updates are done as if that transition produced a reward of <span class="tex">$r &#43; \kappa \sqrt&#123;\rho&#125;$</span>, for some small <span class="tex">$\kappa$</span>.  This encourages the agent to keep testing all accessible state transitions and even to find long sequences of actions in order to carry out such tests.  Of course all this testing has its cost, but in many cases, as in the shortcut maze, this kind of computational curiosity is well worth the extra exploration.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·`©L°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$976ff0c3-54aa-41f0-b963-baf77bea8cb8¹depends_on_disabled_cellsÂ§runtimeÎ Vµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$094321bc-2d44-4e67-9ac6-5216a42e0cd3Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ7bellman_policy_update! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àðì°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$094321bc-2d44-4e67-9ac6-5216a42e0cd3¹depends_on_disabled_cellsÂ§runtimeÎ 8aµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$13f08473-f0d8-47d1-aa48-de3e4a083dbfŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+simulate! (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À–4j°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$13f08473-f0d8-47d1-aa48-de3e4a083dbf¹depends_on_disabled_cellsÂ§runtimeÎ 2Šzµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$f143446c-e44b-4d75-baa7-3b24eafad003Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ+simulate! (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•À•³°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$f143446c-e44b-4d75-baa7-3b24eafad003¹depends_on_disabled_cellsÂ§runtimeÎ M†tµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ9begin_value_iteration_v (generic function with 3 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Å³Ù'°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43¹depends_on_disabled_cellsÂ§runtimeÎ , «µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$94b339bb-6e2d-422f-8043-615e8be9a217Š¦queuedÂ¤logs�§runningÂ¦output†¤body³FiniteStochasticMDP¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀÜ–°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$94b339bb-6e2d-422f-8043-615e8be9a217¹depends_on_disabled_cellsÂ§runtimeÎ ÇØJµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ9monte_carlo_tree_search (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Å±éO°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0a¹depends_on_disabled_cellsÂ§runtimeÎ³¶Ôµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bcŠ¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙó<div class="markdown"><h3>Example 8.4: Prioritized Sweeping on Mazes</h3>
<p>Consider different mazes with the same wall structure as the Dyna Maze example but scaled up to different resolutions.  Some example mazes are shown below.</p>
</div>¤mime©text/html¬rootassigneeÀ²last_run_timestampËAÚ•·a•£°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bc¹depends_on_disabled_cellsÂ§runtimeÎ ¬˜µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$81f2f335-6606-4506-bfb3-d0d95e651f24Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ8bellman_optimal_update! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀãCö°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$81f2f335-6606-4506-bfb3-d0d95e651f24¹depends_on_disabled_cellsÂ§runtimeÎ 7?Ùµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$aa898360-f802-438a-9081-a2e517230db2Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ,apply_uct! (generic function with 2 methods)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•ÀqÕ„°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$aa898360-f802-438a-9081-a2e517230db2¹depends_on_disabled_cellsÂ§runtimeÎ �‹µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ3show_mcts_solution (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Ìå\°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$2c587d5b-7b62-4835-ad02-9575c13d5874¹depends_on_disabled_cellsÂ§runtimeÎ $G³µpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂÙ$a8ec05ad-8333-4423-ab42-883ab806ebd7Š¦queuedÂ¤logs�§runningÂ¦output†¤bodyÙ?uniform_bellman_optimal_value! (generic function with 1 method)¤mimeªtext/plain¬rootassigneeÀ²last_run_timestampËAÚ•Àé¨7°persist_js_stateÂ·has_pluto_hook_featuresÂ§cell_idÙ$a8ec05ad-8333-4423-ab42-883ab806ebd7¹depends_on_disabled_cellsÂ§runtimeÎ �sµpublished_object_keys�¸depends_on_skipped_cellsÂ§erroredÂ±cell_dependenciesÞ  Ù$2fa207dd-749f-4dc0-b4ab-159edf1d9bce„´precedence_heuristic	§cell_idÙ$2fa207dd-749f-4dc0-b4ab-159edf1d9bce´downstream_cells_map�·begin_value_iteration_v�²upstream_cells_map†¦length�¤zero�«CompleteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤ones�¡*�¤Real�Ù$e0cc1ca1-595d-44e2-8612-261df9e2d327„´precedence_heuristic	§cell_idÙ$e0cc1ca1-595d-44e2-8612-261df9e2d327´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$304e6afd-11e0-4011-9929-85889b988400„´precedence_heuristic	§cell_idÙ$304e6afd-11e0-4011-9929-85889b988400´downstream_cells_map�¦MDP_MC‘Ù$e43513e8-2517-43b7-9a16-e57d4125edc4²upstream_cells_map†£new�£MDP‘Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72¦typeof�¤rand�¨Function�¦Vector�Ù$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07„´precedence_heuristic	§cell_idÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07´downstream_cells_map�¶make_Ïµ_greedy_policy!œÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$679b6096-b3ca-422d-9d9a-225832510ab1Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_map�£sum�¨isapprox�®AbstractVector�¤view�£one�¤Real�¦length�©eachindex�¡-�¡/�¡+�¡*�§maximum�Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540„´precedence_heuristic	§cell_idÙ$3b4e27e7-8065-44b3-bc2a-e540913aa540´downstream_cells_map�¨takestepšÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7a²upstream_cells_mapˆ­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13§weights�¤keys�¦Matrix�§collect�¦sample�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤Real�Ù$6e273f2b-a1af-421f-aca7-772a836b89ef„´precedence_heuristic	§cell_idÙ$6e273f2b-a1af-421f-aca7-772a836b89ef´downstream_cells_map�½uniform_bellman_policy_value!‘Ù$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6²upstream_cells_map‰¶bellman_policy_update!‘Ù$094321bc-2d44-4e67-9ac6-5216a42e0cd3¤zero�©eachindex�£max�¦Matrix�¦isless�¡+�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤Real�Ù$726af565-8905-4409-864f-a5c1b5767e09„´precedence_heuristic	§cell_idÙ$726af565-8905-4409-864f-a5c1b5767e09´downstream_cells_map�²form_random_policy‘Ù$0899f37c-5def-4d15-8ca3-ebdec8e96b43²upstream_cells_map„¦length�¡/�«CompleteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤ones�Ù$5d2abde0-7128-41c3-bd1f-b6940492d1ae„´precedence_heuristic	§cell_idÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae´downstream_cells_map�±double_q_learning�²upstream_cells_map�­AbstractFloat�¤zero�¥first�µdouble_expected_sarsa‘Ù$113d2bc2-1f77-479f-86e5-a65b20672d7a£one�´create_greedy_policy‘Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921¡/�¦Matrix�³make_greedy_policy!•Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$33f66659-1a87-4890-9137-dbc7776a19d8Ù$0adcbce8-2be5-48ef-af43-04815e10dc5c½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$76489f21-677e-4c25-beaa-afaf2244cd94„´precedence_heuristic	§cell_idÙ$76489f21-677e-4c25-beaa-afaf2244cd94´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$1127c36f-9bc0-49b1-9481-8a5861bdf6ca„´precedence_heuristic	§cell_idÙ$1127c36f-9bc0-49b1-9481-8a5861bdf6ca´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$69ff1b72-cb1b-4724-a445-38e4c9846964„´precedence_heuristic	§cell_idÙ$69ff1b72-cb1b-4724-a445-38e4c9846964´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3„´precedence_heuristic	§cell_idÙ$3edc09ab-8fa1-440f-8a45-546898a2b2a3´downstream_cells_map�¨takestepšÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7a²upstream_cells_map�¨Function�Ù$6c8cd429-2c2e-4515-98b2-d0394962e479„´precedence_heuristic	§cell_idÙ$6c8cd429-2c2e-4515-98b2-d0394962e479´downstream_cells_map�¨takestepšÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7a²upstream_cells_map„¶FiniteDeterministicMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¦Matrix�¤Real�Ù$6605b946-3010-47ed-8d88-3c4dca993cf8„´precedence_heuristic	§cell_idÙ$6605b946-3010-47ed-8d88-3c4dca993cf8´downstream_cells_map�·begin_value_iteration_q�²upstream_cells_map†¦length�¤zero�«CompleteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤ones�¡*�¤Real�Ù$00c8f62f-dee2-476c-b896-68d3ab57a168„´precedence_heuristic	§cell_idÙ$00c8f62f-dee2-476c-b896-68d3ab57a168´downstream_cells_map�ªfigure_8_8’Ù$8586d633-7c50-49ba-9b74-b5bdad27c317Ù$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5²upstream_cells_mapÞ ±searchsortedfirst�¦isless�§Float64�¤copy�¯make_random_mdp‘Ù$636d768c-670d-4485-a1dd-2bab6cf086d0¦length�¦Vector�§scatter�£min�¡/�¢==�¡:�§collect�¢|>�¥zeros�¦cumsum�¢<=�¥Int64�¥push!�¤plot�¾uniform_bellman_optimal_value!‘Ù$a8ec05ad-8333-4423-ab42-883ab806ebd7¦foldxt�¡+�¡*�Ù!trajectory_bellman_optimal_value!‘Ù$d0b18699-7d3a-418d-9d15-be41f1643f09£Map�¦Layout�§maximum�Ù$4d4baa61-b5bd-4bcf-a491-9a35a1695f0b„´precedence_heuristic	§cell_idÙ$4d4baa61-b5bd-4bcf-a491-9a35a1695f0b´downstream_cells_map€²upstream_cells_map‚©figure8_3‘Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3°num_episodes_8_3‘Ù$27d12c1c-ddb0-4bc1-af51-3388ff806705Ù$cd79ce14-14a1-43c6-93e0-b4a786f7f9fb„´precedence_heuristic	§cell_idÙ$cd79ce14-14a1-43c6-93e0-b4a786f7f9fb´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$516234a8-2748-11ed-35df-432eebaa5162„´precedence_heuristic	§cell_idÙ$516234a8-2748-11ed-35df-432eebaa5162´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$bf7950f2-05fa-4455-ad08-27735148d95c„´precedence_heuristic	§cell_idÙ$bf7950f2-05fa-4455-ad08-27735148d95c´downstream_cells_map�·monte_carlo_tree_search“Ù$beae0491-ed11-4edf-a136-d384578b088bÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45²upstream_cells_mapÞ (¤Dict�¤time�¥Tuple�¡>�¦isless�£one�Ù'Base.CoreLogging.Base.fixup_stdlib_path�²Base.CoreLogging.!�¦length�­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¡<�ªNamedTuple�©eachindex�¦values�¤Real�¡/�¥@info�±Base.invokelatest�³make_greedy_policy!•Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$33f66659-1a87-4890-9137-dbc7776a19d8Ù$0adcbce8-2be5-48ef-af43-04815e10dc5c¥round�§minimum�½Base.CoreLogging.invokelatest�´Base.CoreLogging.===�°AfterstateMDP_MC‘Ù$47ce2eda-b2c4-4f81-8d91-955bc35bab49¡:�©simulate!“Ù$f143446c-e44b-4d75-baa7-3b24eafad003Ù$13f08473-f0d8-47d1-aa48-de3e4a083dbfÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf¥zeros�¦haskey�º#___this_pluto_module_name�¤rand�§Integer�¨Function�ªapply_uct!’Ù$f369a092-420d-4660-b802-93f05d5e7972Ù$aa898360-f802-438a-9081-a2e517230db2¤Base�¥Int64�¦UInt64�¡-�´Base.CoreLogging.isa�¡+�³Base.CoreLogging.>=�Ù$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27„´precedence_heuristic	§cell_idÙ$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27´downstream_cells_map€²upstream_cells_map‚®fig_8_4_params‘Ù$8987052b-0828-43a5-982e-5f3d6209f2aaªfigure_8_4‘Ù$2ff6d187-e06f-47b5-9834-d06bfc820c26Ù$47ce2eda-b2c4-4f81-8d91-955bc35bab49„´precedence_heuristic	§cell_idÙ$47ce2eda-b2c4-4f81-8d91-955bc35bab49´downstream_cells_map�°AfterstateMDP_MC“Ù$bf7950f2-05fa-4455-ad08-27735148d95cÙ$f143446c-e44b-4d75-baa7-3b24eafad003Ù$13f08473-f0d8-47d1-aa48-de3e4a083dbf²upstream_cells_map‹¤Dict�¥Tuple�¥first�¦typeof�¢=>�¤rand�¨Function�ªmakelookup‘Ù$037f1804-b24e-46e7-b2a8-6747e669db66¦Vector�¥Int64�£new�Ù$679b6096-b3ca-422d-9d9a-225832510ab1„´precedence_heuristic	§cell_idÙ$679b6096-b3ca-422d-9d9a-225832510ab1´downstream_cells_map€²upstream_cells_map‚©vholdtest‘Ù$5e49504e-9623-48f9-aeb5-360906b92a09¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07Ù$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5„´precedence_heuristic	§cell_idÙ$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$aee1f6a8-de43-402e-b375-86c0f2f9e6b8„´precedence_heuristic	§cell_idÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8´downstream_cells_map�­figure_8_5â€²‘Ù$f0e88db8-e3ee-4b74-923e-c34038024824²upstream_cells_map‹¡:�®blocking_maze2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb±tabular_dynaQplus‘Ù$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3¥zeros�®blocking_maze3‘Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215¦cumsum�­tabular_dynaQ‘Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed§scatter�¤plot�¡/�¡+�Ù$a3243bc4-7ae7-418a-9881-a265ca95f5ef„´precedence_heuristic	§cell_idÙ$a3243bc4-7ae7-418a-9881-a265ca95f5ef´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$466268c4-664d-42dd-84c1-7b8ade49936f„´precedence_heuristic	§cell_idÙ$466268c4-664d-42dd-84c1-7b8ade49936f´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96„´precedence_heuristic	§cell_idÙ$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96´downstream_cells_map�§rollout”Ù$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$beae0491-ed11-4edf-a136-d384578b088bÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45²upstream_cells_map�£Inf�Ù$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8„´precedence_heuristic	§cell_idÙ$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8´downstream_cells_map�ªrunepisode’Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45Ù$1f7d77a6-d774-436d-a745-5a160cc15f2b²upstream_cells_map‚²make_random_policy‘Ù$fb5601b0-06d4-43c4-81a6-23a4a8f29f00¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6dbÙ$f424edac-388d-4465-900f-9459d2a88f79„´precedence_heuristic	§cell_idÙ$f424edac-388d-4465-900f-9459d2a88f79´downstream_cells_map�©init_step‘Ù$4494cb61-ee2c-467b-9bf6-0afb59023e91²upstream_cells_map…­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¦Matrix�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db¨Function�¤Real�Ù$08e81e30-119d-4f4e-a865-f1f85cbffd31„´precedence_heuristic	§cell_idÙ$08e81e30-119d-4f4e-a865-f1f85cbffd31´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$898f1b06-a34f-496b-99db-9ca23498cbee„´precedence_heuristic	§cell_idÙ$898f1b06-a34f-496b-99db-9ca23498cbee´downstream_cells_map�Ù"prioritized_sweeping_deterministic‘Ù$fb00aedd-e103-4463-b4f8-d0dce6275c64²upstream_cells_mapÞ #¤zero�¤keys�¥Tuple�¡>�¦isless�¡!�£one�¤copy�¦length�§delete!�¡<�©eachindex�¡/�§isempty�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¢==�£abs�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­PriorityQueue�­AbstractFloat�¡:�®calculate_qmax�¥first�¥zeros�¤Base�¢<=�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540§findall�¡-�¥Int64�¡+�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07§maximum�·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$08ff749b-f4ff-4639-99f5-48262aa4643e„´precedence_heuristic	§cell_idÙ$08ff749b-f4ff-4639-99f5-48262aa4643e´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$245d9616-e0d2-497e-bfdd-4729a7215bfd„´precedence_heuristic	§cell_idÙ$245d9616-e0d2-497e-bfdd-4729a7215bfd´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$e8a6e672-b860-404f-83c1-62a080f23112„´precedence_heuristic	§cell_idÙ$e8a6e672-b860-404f-83c1-62a080f23112´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$39ae7727-ea72-48f3-8d63-e03a9f607f87„´precedence_heuristic	§cell_idÙ$39ae7727-ea72-48f3-8d63-e03a9f607f87´downstream_cells_map�®make_dyna_maze’Ù$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$fb00aedd-e103-4463-b4f8-d0dce6275c64²upstream_cells_map‹¡:�¥union�¤ceil�¥Int64�¡-�¡+�¡*�®make_gridworld‘Ù$bb439641-30bd-495d-ba70-06b2e27efdbd¢in�®GridworldState‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2£Set�Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056„´precedence_heuristic	§cell_idÙ$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056´downstream_cells_map�§rollout”Ù$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$beae0491-ed11-4edf-a136-d384578b088bÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45²upstream_cells_map„£MDP‘Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72£Inf�¤rand�¤Real�Ù$d0b18699-7d3a-418d-9d15-be41f1643f09„´precedence_heuristic	§cell_idÙ$d0b18699-7d3a-418d-9d15-be41f1643f09´downstream_cells_map�Ù!trajectory_bellman_optimal_value!‘Ù$00c8f62f-dee2-476c-b896-68d3ab57a168²upstream_cells_mapŒ¤zero�£max�¡!�·bellman_optimal_update!‘Ù$81f2f335-6606-4506-bfb3-d0d95e651f24¦isless�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤Real�¨Function�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¦Matrix�¡+�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07Ù$cd1980ff-2f35-4599-b08c-2037ddf5e995„´precedence_heuristic	§cell_idÙ$cd1980ff-2f35-4599-b08c-2037ddf5e995´downstream_cells_map�°figure_8_4â€²â€²‘Ù$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1²upstream_cells_map‹¡:�®blocking_maze2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb±tabular_dynaQplus‘Ù$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3¥zeros�¦cumsum�§scatter�¤plot�¡/�®blocking_maze1‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb¡+�´tabular_dynaQplusâ€²‘Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$c32d0943-ba8f-438f-83b6-5ed42221f630„´precedence_heuristic	§cell_idÙ$c32d0943-ba8f-438f-83b6-5ed42221f630´downstream_cells_map�°figure_8_5â€²â€²‘Ù$1aa76f3d-6041-4886-a6cd-787bdf1ec63c²upstream_cells_map‹¡:�®blocking_maze2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb±tabular_dynaQplus‘Ù$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3¥zeros�®blocking_maze3‘Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215¦cumsum�§scatter�¤plot�¡/�¡+�´tabular_dynaQplusâ€²‘Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$fc137613-7b4b-414c-93af-eeb2ace5d67f„´precedence_heuristic	§cell_idÙ$fc137613-7b4b-414c-93af-eeb2ace5d67f´downstream_cells_map�¶make_Ïµ_greedy_policy!œÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$679b6096-b3ca-422d-9d9a-225832510ab1Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_mapÞ £sum�¥isnan�¦isless�£one�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217²Base.CoreLogging.!�¦length�¤Real�Ù'Base.CoreLogging.Base.fixup_stdlib_path�©eachindex�¡/�¦Matrix�¥@info�±Base.invokelatest�£â‰ˆ�½Base.CoreLogging.invokelatest�´Base.CoreLogging.===�¡:�£max�£Inf�º#___this_pluto_module_name�¤Base�¥Int64�¡-�´Base.CoreLogging.isa�¡+�³Base.CoreLogging.>=�Ù$cffc9f11-77d7-4076-aa3b-821f1c741f58„´precedence_heuristic	§cell_idÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58´downstream_cells_map�£uct“Ù$f369a092-420d-4660-b802-93f05d5e7972Ù$f6486854-4892-4fb6-a805-de56b19b3571Ù$aa898360-f802-438a-9081-a2e517230db2²upstream_cells_map‡¤Dict�¥Int64�£log�¤sqrt�¡/�¥Tuple�¤Real�Ù$4b424a47-dfeb-4380-8ab8-8bd24a080c2e„´precedence_heuristic	§cell_idÙ$4b424a47-dfeb-4380-8ab8-8bd24a080c2e´downstream_cells_map‚¨newmaze2�§newmaze�²upstream_cells_map…ªmaze_walls‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906©dyna_maze‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906®make_dyna_maze‘Ù$39ae7727-ea72-48f3-8d63-e03a9f607f87¢in�©plot_path“Ù$eded8b72-70f4-4579-ba69-2eca409fa684Ù$1f7d77a6-d774-436d-a745-5a160cc15f2bÙ$502a7125-4460-4d39-be14-4852fb6d9ad2Ù$0f37ec0a-b737-478b-bf6a-027899250c4e„´precedence_heuristic	§cell_idÙ$0f37ec0a-b737-478b-bf6a-027899250c4e´downstream_cells_map�ªsarsa_step‘Ù$4494cb61-ee2c-467b-9bf6-0afb59023e91²upstream_cells_map…­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¦Matrix�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db¨Function�¤Real�Ù$8dbc76fd-ac73-47ca-983e-0e90023390e3„´precedence_heuristic	§cell_idÙ$8dbc76fd-ac73-47ca-983e-0e90023390e3´downstream_cells_map€²upstream_cells_map�©figure8_2‘Ù$cd139745-1877-43a2-97a0-3333e544cbd8Ù$e4f73889-af82-4304-89d5-ee50172eb3da„´precedence_heuristic	§cell_idÙ$e4f73889-af82-4304-89d5-ee50172eb3da´downstream_cells_map�³make_greedy_policy!•Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921Ù$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_mapŒ£â‰ˆ�¡:�£sum�£max�¦isless�£Inf�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤Real�©eachindex�¡-�¡/�¦Matrix�Ù$636d768c-670d-4485-a1dd-2bab6cf086d0„´precedence_heuristic	§cell_idÙ$636d768c-670d-4485-a1dd-2bab6cf086d0´downstream_cells_map�¯make_random_mdp‘Ù$00c8f62f-dee2-476c-b896-68d3ab57a168²upstream_cells_mapŽ¤Dict�¥randn�¡:�§collect�¢=>�£zip�¤rand�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217©eachindex�¡-�¡/�¡+�¡*�¤fill�Ù$cd139745-1877-43a2-97a0-3333e544cbd8„´precedence_heuristic	§cell_idÙ$cd139745-1877-43a2-97a0-3333e544cbd8´downstream_cells_map�©figure8_2‘Ù$8dbc76fd-ac73-47ca-983e-0e90023390e3²upstream_cells_map�¡:�¦Random‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¥zeros�­tabular_dynaQ‘Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed£end�¥Int64�§scatter�¤plot�¡/�¡+�©dyna_maze‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906¦Layout�¬Random.seed!�Ù$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6„´precedence_heuristic	§cell_idÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6´downstream_cells_map�´q_policy_evaluation!�²upstream_cells_map�¤zero�½uniform_bellman_policy_value!‘Ù$6e273f2b-a1af-421f-aca7-772a836b89ef¡>�¦isless�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤Real�£eps�¡<�¥Int64�¢<=�§typemax�¦Matrix�¡+�Ù$f369a092-420d-4660-b802-93f05d5e7972„´precedence_heuristic	§cell_idÙ$f369a092-420d-4660-b802-93f05d5e7972´downstream_cells_map�ªapply_uct!’Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95c²upstream_cells_mapÞ ¤Dict�©@fastmath�£sum�¤keys�¥Tuple�£uct’Ù$308fd488-a009-4de0-8b27-c1f6b0677fedÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58£Inf�©@inbounds�¶Base.FastMath.div_fast�¦Vector�¤Real�¥Int64�¤Base�¦values�¶Base.FastMath.add_fast�§isempty�¶Base.FastMath.mul_fast�Ù$1d97325a-8b9a-438d-a5f9-e17638e64627„´precedence_heuristic	§cell_idÙ$1d97325a-8b9a-438d-a5f9-e17638e64627´downstream_cells_map�¶initialize_state_value�²upstream_cells_map…¦length�¤ones�¡*�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�Ù$113d2bc2-1f77-479f-86e5-a65b20672d7a„´precedence_heuristic	§cell_idÙ$113d2bc2-1f77-479f-86e5-a65b20672d7a´downstream_cells_map�µdouble_expected_sarsa‘Ù$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_mapÞ ¤zero�£sum�¡!�¦isless�£one�¦Vector�¦length�¡<�¤copy�©eachindex�¡/�¦Matrix�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¢==�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�¡:�¥first�¥zeros�¤rand�§findall�¥Int64�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¡-�´create_greedy_policy‘Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921¡+�¥undef�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$27d12c1c-ddb0-4bc1-af51-3388ff806705„´precedence_heuristic	§cell_idÙ$27d12c1c-ddb0-4bc1-af51-3388ff806705´downstream_cells_map�°num_episodes_8_3‘Ù$4d4baa61-b5bd-4bcf-a491-9a35a1695f0b²upstream_cells_map‹§@md_str�¤Core�¡:�¨Base.get�¥@bind�¤Base�«PlutoRunner�·PlutoRunner.create_bond�«NumberField�¯Core.applicable�¨getindex�Ù$f0e88db8-e3ee-4b74-923e-c34038024824„´precedence_heuristic	§cell_idÙ$f0e88db8-e3ee-4b74-923e-c34038024824´downstream_cells_map€²upstream_cells_map�­figure_8_5â€²‘Ù$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Ù$b0df4dad-74c7-4469-a13f-5ef6bb81199f„´precedence_heuristic	§cell_idÙ$b0df4dad-74c7-4469-a13f-5ef6bb81199f´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$cfdaa9c2-265f-4540-9d04-d1b7a72aee3e„´precedence_heuristic	§cell_idÙ$cfdaa9c2-265f-4540-9d04-d1b7a72aee3e´downstream_cells_map€²upstream_cells_map�ªfigure_8_7‘Ù$df62fd47-6627-4931-b429-964c65960446Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33„´precedence_heuristic	§cell_idÙ$250ea9da-dea3-4bf3-932d-cdda6756ae33´downstream_cells_map�ªrunepisode’Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45Ù$1f7d77a6-d774-436d-a745-5a160cc15f2b²upstream_cells_map‹¡!�£Inf�¨Function�¦Vector�¤Real�¢<=�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¥push!�«CompleteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¦Matrix�¡+�Ù$bc295bb5-addb-4bcf-a3e3-c839ccc346bd„´precedence_heuristic	§cell_idÙ$bc295bb5-addb-4bcf-a3e3-c839ccc346bd´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2„´precedence_heuristic	§cell_idÙ$729197ce-2c27-467d-ba5f-47a1ecd539f2´downstream_cells_map�ªapply_wind�¤Down‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2©DownRight‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¦UpLeft‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¤Stay‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¢Up‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¥Right‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¯GridworldAction’Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2Ù$bb439641-30bd-495d-ba70-06b2e27efdbd¤Left‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2§UpRight‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¨DownLeft‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2©wind_vals�¤move‘Ù$bb439641-30bd-495d-ba70-06b2e27efdbd®GridworldState–Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906Ù$39ae7727-ea72-48f3-8d63-e03a9f607f87Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdbÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215Ù$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$bb439641-30bd-495d-ba70-06b2e27efdbd¬rook_actions‘Ù$bb439641-30bd-495d-ba70-06b2e27efdbd²upstream_cells_map�¤Down‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¤Stay‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¦UpLeft‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2©DownRight‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¢Up‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¥Right‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¥Int64�¤Left‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¡-�¯GridworldAction‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¨DownLeft‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2§UpRight‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¡+�Ù$1aa76f3d-6041-4886-a6cd-787bdf1ec63c„´precedence_heuristic	§cell_idÙ$1aa76f3d-6041-4886-a6cd-787bdf1ec63c´downstream_cells_map€²upstream_cells_map�°figure_8_5â€²â€²‘Ù$c32d0943-ba8f-438f-83b6-5ed42221f630Ù$3bf9e526-826d-42b8-84ee-75f1c7f79c69„´precedence_heuristic	§cell_idÙ$3bf9e526-826d-42b8-84ee-75f1c7f79c69´downstream_cells_map�³display_rook_policy‘Ù$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69²upstream_cells_map‡Ù HypertextLiteral.attribute_value�·HypertextLiteral.Bypass�·HypertextLiteral.Result�°HypertextLiteral‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¤@htl�­AbstractFloat�¦Vector�Ù$308fd488-a009-4de0-8b27-c1f6b0677fed„´precedence_heuristic	§cell_idÙ$308fd488-a009-4de0-8b27-c1f6b0677fed´downstream_cells_map�£uct“Ù$f369a092-420d-4660-b802-93f05d5e7972Ù$f6486854-4892-4fb6-a805-de56b19b3571Ù$aa898360-f802-438a-9081-a2e517230db2²upstream_cells_map†¤Dict�¥Int64�£log�¤sqrt�¡/�¤Real�Ù$340ba72b-172a-4d92-99b2-17687ab511c7„´precedence_heuristic	§cell_idÙ$340ba72b-172a-4d92-99b2-17687ab511c7´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$44364e7f-1910-421a-b961-63fbbaac8230„´precedence_heuristic	§cell_idÙ$44364e7f-1910-421a-b961-63fbbaac8230´downstream_cells_map�¶bellman_optimal_value!’Ù$4b2a4fb1-7395-4293-9ff9-e2f9da50f56bÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767²upstream_cells_mapÞ ¤zero�©@fastmath�§typemin�¤keys�¶Base.FastMath.sub_fast�¦isless�©@inbounds�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217§nothing�¦Vector�¡<�¶Base.FastMath.max_fast�¯Base.simd_index�©eachindex�¤Real�¥@simd�¶Base.FastMath.abs_fast�®julia.simdloop�¶Base.FastMath.div_fast�£eps�¤Base�µBase.simd_outer_range�¶Base.simd_inner_length�¶Base.FastMath.add_fast�¡+�¶Base.FastMath.mul_fast�Ù$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5„´precedence_heuristic	§cell_idÙ$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$f6486854-4892-4fb6-a805-de56b19b3571„´precedence_heuristic	§cell_idÙ$f6486854-4892-4fb6-a805-de56b19b3571´downstream_cells_map�­make_uct_plus�²upstream_cells_mapÞ ¤Dict�©@fastmath�¤zero�¤keys�¡!�£uct’Ù$308fd488-a009-4de0-8b27-c1f6b0677fedÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58¦isless�©@inbounds�£one�¤rand�¨Function�¦Vector�¤Real�¡<�¥Int64�¤Base�¡-�¶Base.FastMath.add_fast�¡/�§isempty�¶Base.FastMath.mul_fast�Ù$fb5601b0-06d4-43c4-81a6-23a4a8f29f00„´precedence_heuristic	§cell_idÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00´downstream_cells_map�²make_random_policy’Ù$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8Ù$502a7125-4460-4d39-be14-4852fb6d9ad2²upstream_cells_map…¦length�¡/�¤ones�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�Ù$82e5719c-bbdb-4a18-b2f0-ad746b6acd41„´precedence_heuristic	§cell_idÙ$82e5719c-bbdb-4a18-b2f0-ad746b6acd41´downstream_cells_map�©make_puct�²upstream_cells_mapÞ ¤Dict�¶Base.FastMath.sub_fast�©@fastmath�¤zero�¤keys�¤sqrt�¡!�©@inbounds�£one�¶Base.FastMath.div_fast�¨Function�¦Vector�¤Real�¥Int64�¤Base�¶Base.FastMath.add_fast�¡/�¡+�§isempty�¡*�¶Base.FastMath.mul_fast�Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db„´precedence_heuristic	§cell_idÙ$c62cc32c-0d29-4ea2-8284-ac4c883df6db´downstream_cells_map�¦MDP_TDÜ Ù$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00Ù$1d97325a-8b9a-438d-a5f9-e17638e64627Ù$7ae23e8e-d554-4d26-a08a-83dab507af13Ù$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dcÙ$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8Ù$0f37ec0a-b737-478b-bf6a-027899250c4eÙ$f424edac-388d-4465-900f-9459d2a88f79Ù$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1aeÙ$bb439641-30bd-495d-ba70-06b2e27efdbd²upstream_cells_map‡¦Vector�¥Int64�£new�¤Dict�£MDP‘Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72¨Function�ªmakelookup‘Ù$037f1804-b24e-46e7-b2a8-6747e669db66Ù$8586d633-7c50-49ba-9b74-b5bdad27c317„´precedence_heuristic	§cell_idÙ$8586d633-7c50-49ba-9b74-b5bdad27c317´downstream_cells_map€²upstream_cells_map�ªfigure_8_8‘Ù$00c8f62f-dee2-476c-b896-68d3ab57a168Ù$bb439641-30bd-495d-ba70-06b2e27efdbd„´precedence_heuristic	§cell_idÙ$bb439641-30bd-495d-ba70-06b2e27efdbd´downstream_cells_map�®make_gridworld”Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906Ù$39ae7727-ea72-48f3-8d63-e03a9f607f87Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdbÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215²upstream_cells_map�¬rook_actions‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¡:�¥Int64�¯GridworldAction‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¡-�§Float32�¡+�¥clamp�¡*�¢==�¤move‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2®GridworldState‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6dbÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5„´precedence_heuristic	§cell_idÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45„´precedence_heuristic	§cell_idÙ$41bb1f78-b83a-4a45-ba5c-faa94e112f45´downstream_cells_map�³get_mcts_statistics�²upstream_cells_map‰¦length�¡:�§rollout“Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Ù$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96¢|>�¥first�©dyna_maze‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906¤mean�·monte_carlo_tree_search“Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bªrunepisode”Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8Ù$e43513e8-2517-43b7-9a16-e57d4125edc4Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690„´precedence_heuristic§cell_idÙ$0fff8e1b-d0c2-49b8-93b4-8d1615c26690´downstream_cells_map‹ªStatistics�©StatsBase�«Transducers�®DataStructures�§PlutoUI‘Ù$8987052b-0828-43a5-982e-5f3d6209f2aa¦Random’Ù$cd139745-1877-43a2-97a0-3333e544cbd8Ù$fb00aedd-e103-4463-b4f8-d0dce6275c64¥Arrow�­Serialization�¬StaticArrays�°HypertextLiteral—Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3Ù$4b3604db-0c1b-4770-95b1-5f5bb34d071bÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5cÙ$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69Ù$3bf9e526-826d-42b8-84ee-75f1c7f79c69Ù$9d69687a-8df6-4e74-aa99-fbfcc84bcccf«PlutoPlotly�²upstream_cells_map�¯TableOfContents�Ù$4e1c115a-4020-4a5a-a79a-56056892a953„´precedence_heuristic	§cell_idÙ$4e1c115a-4020-4a5a-a79a-56056892a953´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$324181f0-b890-4198-9b4b-c36547e6629a„´precedence_heuristic	§cell_idÙ$324181f0-b890-4198-9b4b-c36547e6629a´downstream_cells_map�·create_Ïµ_greedy_policy™Ù$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_map‡¤Real�¡:�¦Matrix�¥zeros�¤size�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07¤copy�Ù$eded8b72-70f4-4579-ba69-2eca409fa684„´precedence_heuristic	§cell_idÙ$eded8b72-70f4-4579-ba69-2eca409fa684´downstream_cells_map�©plot_path•Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdbÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215Ù$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$2c587d5b-7b62-4835-ad02-9575c13d5874²upstream_cells_mapÞ ¡:�£max�¦isless�¦filter�£end�¦Vector�¦length�¡-�§scatter�¨findlast�¤plot�¥push!�¡+�¤attr�¡*�¤fill�¦Layout�§maximum�Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6„´precedence_heuristic	§cell_idÙ$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6´downstream_cells_map€²upstream_cells_mapŠªmaze_walls‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906·HypertextLiteral.Bypass�³rook_action_display‘Ù$9d69687a-8df6-4e74-aa99-fbfcc84bcccf°HypertextLiteral‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690·HypertextLiteral.Result�©dyna_maze‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906¸HypertextLiteral.content�¢in�©plot_path“Ù$eded8b72-70f4-4579-ba69-2eca409fa684Ù$1f7d77a6-d774-436d-a745-5a160cc15f2bÙ$502a7125-4460-4d39-be14-4852fb6d9ad2¤@htl�Ù$6a4116c9-87cf-4ee7-8030-aa1150853984„´precedence_heuristic	§cell_idÙ$6a4116c9-87cf-4ee7-8030-aa1150853984´downstream_cells_map€²upstream_cells_map�²show_mcts_solution‘Ù$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$ee0f55c6-e9c6-4199-9f27-5706f3c84863„´precedence_heuristic	§cell_idÙ$ee0f55c6-e9c6-4199-9f27-5706f3c84863´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$caca8d95-e40e-4592-b29e-a7e8b19faeb5„´precedence_heuristic	§cell_idÙ$caca8d95-e40e-4592-b29e-a7e8b19faeb5´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$24efe9b4-9308-4ad1-8ef0-69f6f93407c0„´precedence_heuristic	§cell_idÙ$24efe9b4-9308-4ad1-8ef0-69f6f93407c0´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6„´precedence_heuristic	§cell_idÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6´downstream_cells_map�¶make_Ïµ_greedy_policy!œÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$679b6096-b3ca-422d-9d9a-225832510ab1Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_mapÞ £â‰ˆ�¡:�£sum�£max�¦isless�£Inf�£one�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤Real�¦length�©eachindex�§actions�¡-�¡/�¦Matrix�¡+�Ù$beae0491-ed11-4edf-a136-d384578b088b„´precedence_heuristic	§cell_idÙ$beae0491-ed11-4edf-a136-d384578b088b´downstream_cells_map€²upstream_cells_map„§rollout“Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Ù$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96´dyna_maze.state_init�©dyna_maze‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906·monte_carlo_tree_search“Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$562e824c-34b5-415d-b186-d8e2cf1980e7„´precedence_heuristic	§cell_idÙ$562e824c-34b5-415d-b186-d8e2cf1980e7´downstream_cells_map�ªfigure_8_5‘Ù$98547223-05a6-43da-80b2-63c67d2de283²upstream_cells_map‹¡:�®blocking_maze2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb¥zeros�®blocking_maze3‘Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215¦cumsum�­tabular_dynaQ‘Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed§scatter�¤plot�¡/�¡+�¡*�Ù$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69„´precedence_heuristic	§cell_idÙ$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69´downstream_cells_map�°show_grid_policy‘Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3²upstream_cells_mapÞ ©findfirst�¡:�·HypertextLiteral.Bypass�¸HypertextLiteral.content�©mapreduce�¤@htl�©eachindex�¡-�¤HTML�Ù HypertextLiteral.attribute_value�³display_rook_policy‘Ù$3bf9e526-826d-42b8-84ee-75f1c7f79c69°HypertextLiteral‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¡+�³rook_action_display‘Ù$9d69687a-8df6-4e74-aa99-fbfcc84bcccf·HypertextLiteral.Result�¹HypertextLiteral.StyleTag�¡*�§maximum�Ù$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dc„´precedence_heuristic	§cell_idÙ$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dc´downstream_cells_map�¬check_policy�²upstream_cells_mapŒºMain.Base.inferencebarrier�§@assert�¤size�§nothing�¦length�¤Main�¥throw�®AssertionError�¦Matrix�¢==�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�Ù$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771b„´precedence_heuristic	§cell_idÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771b´downstream_cells_map�·monte_carlo_tree_search“Ù$beae0491-ed11-4edf-a136-d384578b088bÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45²upstream_cells_mapƒ§rollout“Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Ù$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96£MDP‘Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72¤Real�Ù$6cf35193-dba5-4f78-a4ac-245dda7a0846„´precedence_heuristic	§cell_idÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846´downstream_cells_map�·begin_value_iteration_v�²upstream_cells_map†¤zero�©FiniteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤ones�¡*�¤size�¤Real�Ù$39c96fc8-8259-46e3-88a0-a14eb6752b5c„´precedence_heuristic	§cell_idÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5c´downstream_cells_map�¯show_grid_value�²upstream_cells_mapÞ ¡*�©findfirst�¡:�·HypertextLiteral.Bypass�¸HypertextLiteral.content�©mapreduce�¤@htl�¦Vector�©eachindex�¡-�¤HTML�Ù HypertextLiteral.attribute_value�·HypertextLiteral.Result�°HypertextLiteral‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¡+�¢!=�¹HypertextLiteral.StyleTag�¢==�¥round�§maximum�¦Matrix�Ù$4494cb61-ee2c-467b-9bf6-0afb59023e91„´precedence_heuristic	§cell_idÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91´downstream_cells_map�¥sarsa�²upstream_cells_mapÞ ¤zero�¡!�£one�¦Vector�¦length�¤copy�¡/�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¢==�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db©init_step‘Ù$f424edac-388d-4465-900f-9459d2a88f79­AbstractFloat�¡:�¥first�¥zeros�ªsarsa_step‘Ù$0f37ec0a-b737-478b-bf6a-027899250c4e§findall�¥Int64�¡-�¡+�¥undef�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$618b5f35-2df5-4ffb-a34f-add542691080„´precedence_heuristic	§cell_idÙ$618b5f35-2df5-4ffb-a34f-add542691080´downstream_cells_map�¨takestepšÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7a²upstream_cells_mapƒ­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¦Matrix�¤Real�Ù$0f9080af-f166-4a78-a003-8df07f6c27d4„´precedence_heuristic	§cell_idÙ$0f9080af-f166-4a78-a003-8df07f6c27d4´downstream_cells_map€²upstream_cells_map�¤HTML�Ù$f8bf29fe-568f-437f-ba82-6b861988a18e„´precedence_heuristic	§cell_idÙ$f8bf29fe-568f-437f-ba82-6b861988a18e´downstream_cells_map�³make_greedy_policy!•Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921Ù$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_map�£â‰ˆ�¡:�£sum�£max�£Inf�¦isless�¦Vector�¤Real�¶FiniteDeterministicMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217©eachindex�¡-�¡/�¦Matrix�¡+�¡*�Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3„´precedence_heuristic	§cell_idÙ$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3´downstream_cells_map�©figure8_3‘Ù$4d4baa61-b5bd-4bcf-a491-9a35a1695f0b²upstream_cells_map‹°show_grid_policy‘Ù$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69·HypertextLiteral.Bypass�¥first�¸HypertextLiteral.content�­tabular_dynaQ‘Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed¤@htl�´create_greedy_policy‘Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921·HypertextLiteral.Result�°HypertextLiteral‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690©dyna_maze‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906¤last�Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42„´precedence_heuristic	§cell_idÙ$b15f1262-1acf-40e5-87a7-bc4b1b437a42´downstream_cells_map�ªrunepisode’Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45Ù$1f7d77a6-d774-436d-a745-5a160cc15f2b²upstream_cells_mapˆ¢<=�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¥push!�¡!�£MDP‘Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72£Inf�¡+�¦Vector�Ù$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2„´precedence_heuristic	§cell_idÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2´downstream_cells_map�®expected_sarsa�²upstream_cells_mapÞ ¤zero�£sum�¡!�£one�¦Vector�¦length�¤copy�©eachindex�¡/�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¢==�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�¡:�¥first�¥zeros�§findall�¥Int64�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¡-�¡+�¥undef�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$b3a5adcb-5343-44e9-9466-1c51c1143a0d„´precedence_heuristic	§cell_idÙ$b3a5adcb-5343-44e9-9466-1c51c1143a0d´downstream_cells_map€²upstream_cells_map�«example_8_4‘Ù$fb00aedd-e103-4463-b4f8-d0dce6275c64Ù$80affd41-b5e6-4b9c-b827-4e3b39bd7767„´precedence_heuristic	§cell_idÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767´downstream_cells_map�²value_iteration_v!‘Ù$0899f37c-5def-4d15-8ca3-ebdec8e96b43²upstream_cells_map…¢<=�¶bellman_optimal_value!“Ù$195d2a34-c44c-4088-8ec4-dece3107f16dÙ$16c68a13-c295-4a64-bc2b-2ae8451f332fÙ$44364e7f-1910-421a-b961-63fbbaac8230¥push!�¡-�¤copy�Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921„´precedence_heuristic	§cell_idÙ$9a1b250f-b404-4db3-a4b7-4cd33b79d921´downstream_cells_map�´create_greedy_policy”Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_map‡¤Real�¡:�¦Matrix�¥zeros�³make_greedy_policy!•Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$33f66659-1a87-4890-9137-dbc7776a19d8Ù$0adcbce8-2be5-48ef-af43-04815e10dc5c¤size�¤copy�Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215„´precedence_heuristic	§cell_idÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215´downstream_cells_map‚®blocking_maze3“Ù$562e824c-34b5-415d-b186-d8e2cf1980e7Ù$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Ù$c32d0943-ba8f-438f-83b6-5ed42221f630¦block3�²upstream_cells_map‰¡:�¦block2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb´block_maze_base_args‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb®blocking_maze2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb©plot_path“Ù$eded8b72-70f4-4579-ba69-2eca409fa684Ù$1f7d77a6-d774-436d-a745-5a160cc15f2bÙ$502a7125-4460-4d39-be14-4852fb6d9ad2®GridworldState‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¢in�®make_gridworld‘Ù$bb439641-30bd-495d-ba70-06b2e27efdbd£Set�Ù$72b40384-9ca1-4bc1-8e1a-8b639d39e215„´precedence_heuristic	§cell_idÙ$72b40384-9ca1-4bc1-8e1a-8b639d39e215´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$63bf9d16-4516-4cec-895f-f010275bca16„´precedence_heuristic	§cell_idÙ$63bf9d16-4516-4cec-895f-f010275bca16´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$0adcbce8-2be5-48ef-af43-04815e10dc5c„´precedence_heuristic	§cell_idÙ$0adcbce8-2be5-48ef-af43-04815e10dc5c´downstream_cells_map�³make_greedy_policy!•Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921Ù$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_mapÞ §extrema�¤zero�£exp�®AbstractVector�¥error�¥isnan�£sum�£one�¥isinf�¤Real�¦length�¡-�¡/�¡*�¢==�£abs�Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9„´precedence_heuristic	§cell_idÙ$f9e4baec-c988-4abd-9bb0-c618c0ec07b9´downstream_cells_map�§rollout”Ù$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$beae0491-ed11-4edf-a136-d384578b088bÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45²upstream_cells_mapŠ¢<=�¤zero�¡!�£MDP‘Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72¡^�£Inf�¡+�¡*�¨Function�¤Real�Ù$502a7125-4460-4d39-be14-4852fb6d9ad2„´precedence_heuristic	§cell_idÙ$502a7125-4460-4d39-be14-4852fb6d9ad2´downstream_cells_map�©plot_path•Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdbÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215Ù$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$2c587d5b-7b62-4835-ad02-9575c13d5874²upstream_cells_map�²make_random_policy‘Ù$fb5601b0-06d4-43c4-81a6-23a4a8f29f00Ù$31072f9b-de1b-42cf-a187-cbff99b49b50„´precedence_heuristic	§cell_idÙ$31072f9b-de1b-42cf-a187-cbff99b49b50´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$77fde69f-2119-41eb-8993-a93b2c47ca7e„´precedence_heuristic	§cell_idÙ$77fde69f-2119-41eb-8993-a93b2c47ca7e´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$65818e67-c146-4686-a9aa-d0859ef662fb„´precedence_heuristic	§cell_idÙ$65818e67-c146-4686-a9aa-d0859ef662fb´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$b03087e9-e15d-4563-bdae-4d9ba7d2cec6„´precedence_heuristic	§cell_idÙ$b03087e9-e15d-4563-bdae-4d9ba7d2cec6´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$195d2a34-c44c-4088-8ec4-dece3107f16d„´precedence_heuristic	§cell_idÙ$195d2a34-c44c-4088-8ec4-dece3107f16d´downstream_cells_map�¶bellman_optimal_value!’Ù$4b2a4fb1-7395-4293-9ff9-e2f9da50f56bÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767²upstream_cells_mapÞ ¤zero�©@fastmath�§typemin�¶Base.FastMath.sub_fast�¦isless�©@inbounds�§nothing�¦Vector�¡<�¶Base.FastMath.max_fast�¯Base.simd_index�©eachindex�¤Real�¥@simd�¶Base.FastMath.abs_fast�®julia.simdloop�¶Base.FastMath.div_fast�£eps�¤Base�µBase.simd_outer_range�©enumerate�©FiniteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¶Base.FastMath.add_fast�¶Base.simd_inner_length�¡+�¶Base.FastMath.mul_fast�Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13„´precedence_heuristic	§cell_idÙ$6858ef8b-1ca7-4e96-b57e-26553423cc13´downstream_cells_map�­sample_action™Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$f143446c-e44b-4d75-baa7-3b24eafad003Ù$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cfÙ$618b5f35-2df5-4ffb-a34f-add542691080Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540Ù$0f37ec0a-b737-478b-bf6a-027899250c4eÙ$f424edac-388d-4465-900f-9459d2a88f79²upstream_cells_map†¦length�¡:�§weights�¦sample�­AbstractFloat�¦Vector�Ù$e689df6b-d6f0-4928-9212-a940aa00b0ef„´precedence_heuristic	§cell_idÙ$e689df6b-d6f0-4928-9212-a940aa00b0ef´downstream_cells_map€²upstream_cells_mapƒ¤Base�®Base.Docs.HTML�©@html_str�Ù$3b0d2c55-2123-4b51-b946-6bc352e3d00a„´precedence_heuristic	§cell_idÙ$3b0d2c55-2123-4b51-b946-6bc352e3d00a´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf„´precedence_heuristic	§cell_idÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf´downstream_cells_map�©simulate!’Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95c²upstream_cells_map�¤Dict�¤zero�¡!�£â‰¤�¦haskey�£one�®get_dict_value‘Ù$d4e1e807-7e87-4b43-9c36-f59999dfcd2d¤Real�¢<=�­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¥Int64�¡-�¡/�¡+�¡*�Ù$d4e1e807-7e87-4b43-9c36-f59999dfcd2d„´precedence_heuristic	§cell_idÙ$d4e1e807-7e87-4b43-9c36-f59999dfcd2d´downstream_cells_map�®get_dict_value’Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf²upstream_cells_map„¤Dict�¤zero�¦haskey�¤Real�Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72„´precedence_heuristic	§cell_idÙ$e25ec0d5-f70f-4269-b2a1-efa194936f72´downstream_cells_map�£MDP—Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$304e6afd-11e0-4011-9929-85889b988400Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6dbÙ$b15f1262-1acf-40e5-87a7-bc4b1b437a42²upstream_cells_map€Ù$1f7d77a6-d774-436d-a745-5a160cc15f2b„´precedence_heuristic	§cell_idÙ$1f7d77a6-d774-436d-a745-5a160cc15f2b´downstream_cells_map�©plot_path•Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdbÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215Ù$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$2c587d5b-7b62-4835-ad02-9575c13d5874²upstream_cells_map�ªrunepisode”Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8Ù$e43513e8-2517-43b7-9a16-e57d4125edc4Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11c„´precedence_heuristic	§cell_idÙ$5b688057-06c7-4ae4-95d6-0a2ff451f11c´downstream_cells_map�­figure_8_4â€²‘Ù$0dbd2b87-d000-408b-8d04-25fc0fa512d1²upstream_cells_map‹¡:�®blocking_maze2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb±tabular_dynaQplus‘Ù$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3¥zeros�¦cumsum�­tabular_dynaQ‘Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed§scatter�¤plot�¡/�®blocking_maze1‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb¡+�Ù$8987052b-0828-43a5-982e-5f3d6209f2aa„´precedence_heuristic	§cell_idÙ$8987052b-0828-43a5-982e-5f3d6209f2aa´downstream_cells_map�®fig_8_4_params‘Ù$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27²upstream_cells_map�§@md_str�¤Core�¡:�§PlutoUI‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¢|>�¨Base.get�¥@bind�¤Base�«PlutoRunner�·PlutoRunner.create_bond�«NumberField�§confirm�¯Core.applicable�¯PlutoUI.combine�¨getindex�Ù$4b2a4fb1-7395-4293-9ff9-e2f9da50f56b„´precedence_heuristic	§cell_idÙ$4b2a4fb1-7395-4293-9ff9-e2f9da50f56b´downstream_cells_map�²value_iteration_q!‘Ù$6778296c-ab05-47e7-86d2-e98c075a8a0c²upstream_cells_mapƒ¢<=�¶bellman_optimal_value!“Ù$195d2a34-c44c-4088-8ec4-dece3107f16dÙ$16c68a13-c295-4a64-bc2b-2ae8451f332fÙ$44364e7f-1910-421a-b961-63fbbaac8230¡-�Ù$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5„´precedence_heuristic	§cell_idÙ$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5´downstream_cells_map€²upstream_cells_map�ªfigure_8_8‘Ù$00c8f62f-dee2-476c-b896-68d3ab57a168Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed„´precedence_heuristic	§cell_idÙ$5afad18b-1d87-450e-a0ff-8c1249d663ed´downstream_cells_map�­tabular_dynaQ—Ù$cd139745-1877-43a2-97a0-3333e544cbd8Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3Ù$2ff6d187-e06f-47b5-9834-d06bfc820c26Ù$562e824c-34b5-415d-b186-d8e2cf1980e7Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11cÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Ù$fb00aedd-e103-4463-b4f8-d0dce6275c64²upstream_cells_mapÞ ¤Dict�¤zero�¤keys�¡!�£one�¤copy�¦length�©eachindex�¡/�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�£Set�¡:�¥first�¦haskey�¥zeros�¤rand�¢<=�§findall�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¥push!�¡-�¥Int64�¡+�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07§maximum�·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3„´precedence_heuristic	§cell_idÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3´downstream_cells_map�±tabular_dynaQplus”Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11cÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Ù$cd1980ff-2f35-4599-b08c-2037ddf5e995Ù$c32d0943-ba8f-438f-83b6-5ed42221f630²upstream_cells_mapÞ ¤zero�¡!�¤sqrt�£one�¤ceil�¤copy�¦length�©eachindex�¡/�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�¡:�¤hcat�¥first�¤ones�¥zeros�©mapreduce�¤rand�¢<=�§findall�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¡-�¥Int64�¡+�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07§maximum�·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$5ae2d740-13c7-4568-8f04-25bc82fecbdb„´precedence_heuristic	§cell_idÙ$5ae2d740-13c7-4568-8f04-25bc82fecbdb´downstream_cells_map…¦block2‘Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215®blocking_maze2—Ù$2ff6d187-e06f-47b5-9834-d06bfc820c26Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215Ù$562e824c-34b5-415d-b186-d8e2cf1980e7Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11cÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Ù$cd1980ff-2f35-4599-b08c-2037ddf5e995Ù$c32d0943-ba8f-438f-83b6-5ed42221f630´block_maze_base_args‘Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215¦block1�®blocking_maze1“Ù$2ff6d187-e06f-47b5-9834-d06bfc820c26Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11cÙ$cd1980ff-2f35-4599-b08c-2037ddf5e995²upstream_cells_map†¡:�©plot_path“Ù$eded8b72-70f4-4579-ba69-2eca409fa684Ù$1f7d77a6-d774-436d-a745-5a160cc15f2bÙ$502a7125-4460-4d39-be14-4852fb6d9ad2®GridworldState‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¢in�®make_gridworld‘Ù$bb439641-30bd-495d-ba70-06b2e27efdbd£Set�Ù$0dbd2b87-d000-408b-8d04-25fc0fa512d1„´precedence_heuristic	§cell_idÙ$0dbd2b87-d000-408b-8d04-25fc0fa512d1´downstream_cells_map€²upstream_cells_map�­figure_8_4â€²‘Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11cÙ$33f66659-1a87-4890-9137-dbc7776a19d8„´precedence_heuristic	§cell_idÙ$33f66659-1a87-4890-9137-dbc7776a19d8´downstream_cells_map�³make_greedy_policy!•Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921Ù$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_mapÞ £â‰ˆ�¤zero�¡:�£max�£sum�£Inf�¦isless�¦Vector�¤Real�©eachindex�¡-�©FiniteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¡/�¦Matrix�¡+�¡*�Ù$269f4505-e807-446c-8fd8-3458482e00ab„´precedence_heuristic	§cell_idÙ$269f4505-e807-446c-8fd8-3458482e00ab´downstream_cells_map�´tabular_dynaQplusâ€²’Ù$cd1980ff-2f35-4599-b08c-2037ddf5e995Ù$c32d0943-ba8f-438f-83b6-5ed42221f630²upstream_cells_mapÞ ¤zero�¡!�¤sqrt�£one�¤ceil�¤copy�¦length�©eachindex�¡/�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�¡:�¤hcat�¥first�¤ones�¥zeros�©mapreduce�¤rand�¢<=�§findall�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¡-�´create_greedy_policy‘Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921¥Int64�¡+�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07§maximum�·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$037f1804-b24e-46e7-b2a8-6747e669db66„´precedence_heuristic	§cell_idÙ$037f1804-b24e-46e7-b2a8-6747e669db66´downstream_cells_map�ªmakelookup“Ù$47ce2eda-b2c4-4f81-8d91-955bc35bab49Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6dbÙ$94b339bb-6e2d-422f-8043-615e8be9a217²upstream_cells_map„¤Dict�©enumerate�¢=>�¦Vector�Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7„´precedence_heuristic	§cell_idÙ$c1ff1bea-649c-4483-b4be-55134f0e8cb7´downstream_cells_map�­sample_action™Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$f143446c-e44b-4d75-baa7-3b24eafad003Ù$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cfÙ$618b5f35-2df5-4ffb-a34f-add542691080Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540Ù$0f37ec0a-b737-478b-bf6a-027899250c4eÙ$f424edac-388d-4465-900f-9459d2a88f79²upstream_cells_map‡¡:�§weights�¦Matrix�¤size�¦sample�§Integer�­AbstractFloat�Ù$7ae23e8e-d554-4d26-a08a-83dab507af13„´precedence_heuristic	§cell_idÙ$7ae23e8e-d554-4d26-a08a-83dab507af13´downstream_cells_map�½initialize_state_action_value™Ù$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_map…¦length�¤ones�¡*�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�Ù$26fe0c28-8f0f-4cff-87fb-76f04fce1be1„´precedence_heuristic	§cell_idÙ$26fe0c28-8f0f-4cff-87fb-76f04fce1be1´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$98547223-05a6-43da-80b2-63c67d2de283„´precedence_heuristic	§cell_idÙ$98547223-05a6-43da-80b2-63c67d2de283´downstream_cells_map€²upstream_cells_map�ªfigure_8_5‘Ù$562e824c-34b5-415d-b186-d8e2cf1980e7Ù$4b3604db-0c1b-4770-95b1-5f5bb34d071b„´precedence_heuristic	§cell_idÙ$4b3604db-0c1b-4770-95b1-5f5bb34d071b´downstream_cells_map�«addelements�²upstream_cells_map…·HypertextLiteral.Bypass�·HypertextLiteral.Result�°HypertextLiteral‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¸HypertextLiteral.content�¤@htl�Ù$143fff7d-0bb2-43b4-b810-53784fe848bd„´precedence_heuristic	§cell_idÙ$143fff7d-0bb2-43b4-b810-53784fe848bd´downstream_cells_map�ªq_learning�²upstream_cells_mapÞ ¤zero�¡!�£one�¦Vector�¦length�¤copy�©eachindex�¡/�½initialize_state_action_value‘Ù$7ae23e8e-d554-4d26-a08a-83dab507af13¢==�¦MDP_TD‘Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6db­AbstractFloat�¡:�¥first�¥zeros�§findall�¥Int64�¨takestep”Ù$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540¡-�¡+�¥undef�¡*�¶make_Ïµ_greedy_policy!“Ù$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07§maximum�·create_Ïµ_greedy_policy‘Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$6778296c-ab05-47e7-86d2-e98c075a8a0c„´precedence_heuristic	§cell_idÙ$6778296c-ab05-47e7-86d2-e98c075a8a0c´downstream_cells_map�·begin_value_iteration_q�²upstream_cells_mapŠ£eps�¥Int64�¡A�¤zero�¡S�²value_iteration_q!‘Ù$4b2a4fb1-7395-4293-9ff9-e2f9da50f56b«CompleteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¦Matrix�§typemax�¤Real�Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906„´precedence_heuristic	§cell_idÙ$c04c803c-cdca-4b8b-9c9d-e456ee677906´downstream_cells_map‚ªmaze_walls“Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$2c587d5b-7b62-4835-ad02-9575c13d5874©dyna_maze—Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$cd139745-1877-43a2-97a0-3333e544cbd8Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3Ù$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$beae0491-ed11-4edf-a136-d384578b088bÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45²upstream_cells_map„®make_gridworld‘Ù$bb439641-30bd-495d-ba70-06b2e27efdbd®GridworldState‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¢in�£Set�Ù$9d69687a-8df6-4e74-aa99-fbfcc84bcccf„´precedence_heuristic	§cell_idÙ$9d69687a-8df6-4e74-aa99-fbfcc84bcccf´downstream_cells_map�³rook_action_display’Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69²upstream_cells_map„·HypertextLiteral.Bypass�·HypertextLiteral.Result�°HypertextLiteral‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¤@htl�Ù$16c68a13-c295-4a64-bc2b-2ae8451f332f„´precedence_heuristic	§cell_idÙ$16c68a13-c295-4a64-bc2b-2ae8451f332f´downstream_cells_map�¶bellman_optimal_value!’Ù$4b2a4fb1-7395-4293-9ff9-e2f9da50f56bÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767²upstream_cells_mapÞ ¤zero�©@fastmath�§typemin�¶Base.FastMath.sub_fast�¦isless�©@inbounds�§nothing�¦Vector�¡<�¶Base.FastMath.max_fast�¯Base.simd_index�©eachindex�¤Real�¥@simd�¶Base.FastMath.abs_fast�®julia.simdloop�¶Base.FastMath.div_fast�£eps�¤Base�¶FiniteDeterministicMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217µBase.simd_outer_range�¶Base.simd_inner_length�¶Base.FastMath.add_fast�¡+�¶Base.FastMath.mul_fast�Ù$fb00aedd-e103-4463-b4f8-d0dce6275c64„´precedence_heuristic	§cell_idÙ$fb00aedd-e103-4463-b4f8-d0dce6275c64´downstream_cells_map�«example_8_4‘Ù$b3a5adcb-5343-44e9-9466-1c51c1143a0d²upstream_cells_mapÞ ¡:�Ù"prioritized_sweeping_deterministic‘Ù$898f1b06-a34f-496b-99db-9ca23498cbee¦Random‘Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¢|>�®make_dyna_maze‘Ù$39ae7727-ea72-48f3-8d63-e03a9f607f87­tabular_dynaQ‘Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed¦length�¨tcollect�§scatter�¤plot�¡/�¡+�¤last�¢==�£Map�¦Layout�¬Random.seed!�Ù$e43513e8-2517-43b7-9a16-e57d4125edc4„´precedence_heuristic	§cell_idÙ$e43513e8-2517-43b7-9a16-e57d4125edc4´downstream_cells_map�ªrunepisode’Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45Ù$1f7d77a6-d774-436d-a745-5a160cc15f2b²upstream_cells_map‚¦MDP_MC‘Ù$304e6afd-11e0-4011-9929-85889b988400¤rand�Ù$df62fd47-6627-4931-b429-964c65960446„´precedence_heuristic	§cell_idÙ$df62fd47-6627-4931-b429-964c65960446´downstream_cells_map�ªfigure_8_7‘Ù$cfdaa9c2-265f-4540-9d04-d1b7a72aee3e²upstream_cells_map‹§@md_str�¡:�¤sqrt�¡-�§scatter�¤plot�¡/�¤attr�¡*�¦Layout�¨getindex�Ù$321bdf5a-bff7-4181-986f-d3884ea96d27„´precedence_heuristic	§cell_idÙ$321bdf5a-bff7-4181-986f-d3884ea96d27´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$82e1ceb8-b1bb-4dea-b041-bf462041793f„´precedence_heuristic	§cell_idÙ$82e1ceb8-b1bb-4dea-b041-bf462041793f´downstream_cells_map�³make_greedy_policy!•Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921Ù$5d2abde0-7128-41c3-bd1f-b6940492d1ae²upstream_cells_mapÞ £â‰ˆ�¤zero�¡:�£max�¤keys�£sum�£Inf�¦isless�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¦Vector�¤Real�©eachindex�¡-�¡/�¦Matrix�¡+�¡*�Ù$5e49504e-9623-48f9-aeb5-360906b92a09„´precedence_heuristic	§cell_idÙ$5e49504e-9623-48f9-aeb5-360906b92a09´downstream_cells_map�©vholdtest‘Ù$679b6096-b3ca-422d-9d9a-225832510ab1²upstream_cells_map…¦length�¡-�¯nyt_valid_words�¥Inf32�¤fill�Ù$2ff6d187-e06f-47b5-9834-d06bfc820c26„´precedence_heuristic	§cell_idÙ$2ff6d187-e06f-47b5-9834-d06bfc820c26´downstream_cells_map�ªfigure_8_4‘Ù$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27²upstream_cells_mapŠ¡:�®blocking_maze2‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb§scatter�¤plot�¡/�¥zeros�¡+�®blocking_maze1‘Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdb­tabular_dynaQ‘Ù$5afad18b-1d87-450e-a0ff-8c1249d663ed¦cumsum�Ù$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1„´precedence_heuristic	§cell_idÙ$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1´downstream_cells_map€²upstream_cells_map�°figure_8_4â€²â€²‘Ù$cd1980ff-2f35-4599-b08c-2037ddf5e995Ù$dab6eac0-7958-4d3a-a1af-781fb57e7adb„´precedence_heuristic	§cell_idÙ$dab6eac0-7958-4d3a-a1af-781fb57e7adb´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$04ea981e-337e-4324-a5cc-178eb3c7605b„´precedence_heuristic	§cell_idÙ$04ea981e-337e-4324-a5cc-178eb3c7605b´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$976ff0c3-54aa-41f0-b963-baf77bea8cb8„´precedence_heuristic	§cell_idÙ$976ff0c3-54aa-41f0-b963-baf77bea8cb8´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$094321bc-2d44-4e67-9ac6-5216a42e0cd3„´precedence_heuristic	§cell_idÙ$094321bc-2d44-4e67-9ac6-5216a42e0cd3´downstream_cells_map�¶bellman_policy_update!‘Ù$6e273f2b-a1af-421f-aca7-772a836b89ef²upstream_cells_mapÞ ¤zero�©@fastmath�¤keys�¦isless�©@inbounds�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217§nothing�¤Real�¡<�¯Base.simd_index�©eachindex�¥@simd�¡/�¦Matrix�£abs�®julia.simdloop�£eps�¤Base�µBase.simd_outer_range�¥Int64�¡-�¶Base.simd_inner_length�¶Base.FastMath.add_fast�¡+�¡*�¶Base.FastMath.mul_fast�Ù$13f08473-f0d8-47d1-aa48-de3e4a083dbf„´precedence_heuristic	§cell_idÙ$13f08473-f0d8-47d1-aa48-de3e4a083dbf´downstream_cells_map�©simulate!’Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95c²upstream_cells_mapÞ ¤Dict�£sum�°AfterstateMDP_MC‘Ù$47ce2eda-b2c4-4f81-8d91-955bc35bab49¤keys�¥Tuple�§weights�§collect�§Integer�¤Real�¨Function�¥Int64�¡-�¦values�¡+�¡*�¦sample�¢==�Ù$f143446c-e44b-4d75-baa7-3b24eafad003„´precedence_heuristic	§cell_idÙ$f143446c-e44b-4d75-baa7-3b24eafad003´downstream_cells_map�©simulate!’Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95c²upstream_cells_mapÞ ¤Dict�¤zero�°AfterstateMDP_MC‘Ù$47ce2eda-b2c4-4f81-8d91-955bc35bab49£max�¡!�¥Tuple�¦isless�£â‰¤�¤Bool�¦haskey�§Integer�¤Real�¨Function�­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¥Int64�¢<=�¦values�¡/�¡+�§maximum�Ù$0899f37c-5def-4d15-8ca3-ebdec8e96b43„´precedence_heuristic	§cell_idÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43´downstream_cells_map�·begin_value_iteration_v�²upstream_cells_map�¡A�¤zero�§typemax�¤copy�£eps�¥Int64�¦Vector�¤Real�¡S�²value_iteration_v!‘Ù$80affd41-b5e6-4b9c-b827-4e3b39bd7767«CompleteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217³make_greedy_policy!•Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$33f66659-1a87-4890-9137-dbc7776a19d8Ù$0adcbce8-2be5-48ef-af43-04815e10dc5c²form_random_policy‘Ù$726af565-8905-4409-864f-a5c1b5767e09Ù$94b339bb-6e2d-422f-8043-615e8be9a217„´precedence_heuristic	§cell_idÙ$94b339bb-6e2d-422f-8043-615e8be9a217´downstream_cells_map„¶FiniteDeterministicMDP“Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$16c68a13-c295-4a64-bc2b-2ae8451f332f©FiniteMDP“Ù$33f66659-1a87-4890-9137-dbc7776a19d8Ù$195d2a34-c44c-4088-8ec4-dece3107f16dÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846«CompleteMDP—Ù$6778296c-ab05-47e7-86d2-e98c075a8a0cÙ$6605b946-3010-47ed-8d88-3c4dca993cf8Ù$94b339bb-6e2d-422f-8043-615e8be9a217Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$726af565-8905-4409-864f-a5c1b5767e09Ù$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$2fa207dd-749f-4dc0-b4ab-159edf1d9bce³FiniteStochasticMDP�Ù$a8ec05ad-8333-4423-ab42-883ab806ebd7Ù$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$81f2f335-6606-4506-bfb3-d0d95e651f24Ù$094321bc-2d44-4e67-9ac6-5216a42e0cd3Ù$6e273f2b-a1af-421f-aca7-772a836b89efÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6Ù$636d768c-670d-4485-a1dd-2bab6cf086d0Ù$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$3b4e27e7-8065-44b3-bc2a-e540913aa540Ù$44364e7f-1910-421a-b961-63fbbaac8230²upstream_cells_map�¤Dict�¥Tuple�£zip�ªmakelookup‘Ù$037f1804-b24e-46e7-b2a8-6747e669db66¦Vector�¥Int64�¤Real�©eachindex�£new�¦length�«CompleteMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¦Matrix�¡+�¥Array�¥undef�Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0a„´precedence_heuristic	§cell_idÙ$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0a´downstream_cells_map�·monte_carlo_tree_search“Ù$beae0491-ed11-4edf-a136-d384578b088bÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45²upstream_cells_mapÞ &¤Dict�¤time�¤keys�¡>�¦isless�®get_dict_value‘Ù$d4e1e807-7e87-4b43-9c36-f59999dfcd2d£one�Ù'Base.CoreLogging.Base.fixup_stdlib_path�²Base.CoreLogging.!�¦length�­sample_action’Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13¡<�ªNamedTuple�©eachindex�¤Real�£MDP‘Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72¡/�¥@info�±Base.invokelatest�³make_greedy_policy!•Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$33f66659-1a87-4890-9137-dbc7776a19d8Ù$0adcbce8-2be5-48ef-af43-04815e10dc5c¥round�§minimum�½Base.CoreLogging.invokelatest�´Base.CoreLogging.===�¡:�©simulate!“Ù$f143446c-e44b-4d75-baa7-3b24eafad003Ù$13f08473-f0d8-47d1-aa48-de3e4a083dbfÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf¥zeros�º#___this_pluto_module_name�¤rand�¨Function�ªapply_uct!’Ù$f369a092-420d-4660-b802-93f05d5e7972Ù$aa898360-f802-438a-9081-a2e517230db2¤Base�¥Int64�¦UInt64�¡-�´Base.CoreLogging.isa�¡+�³Base.CoreLogging.>=�Ù$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bc„´precedence_heuristic	§cell_idÙ$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bc´downstream_cells_map€²upstream_cells_map‚§@md_str�¨getindex�Ù$81f2f335-6606-4506-bfb3-d0d95e651f24„´precedence_heuristic	§cell_idÙ$81f2f335-6606-4506-bfb3-d0d95e651f24´downstream_cells_map�·bellman_optimal_update!’Ù$a8ec05ad-8333-4423-ab42-883ab806ebd7Ù$d0b18699-7d3a-418d-9d15-be41f1643f09²upstream_cells_mapÞ ¤zero�©@fastmath�§typemin�¤keys�¦isless�©@inbounds�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217§nothing�¤Real�¡<�¶Base.FastMath.max_fast�¯Base.simd_index�©eachindex�¥@simd�¡/�¦Matrix�£abs�®julia.simdloop�£eps�¤Base�µBase.simd_outer_range�¥Int64�¡-�¶Base.simd_inner_length�¡+�¡*�Ù$aa898360-f802-438a-9081-a2e517230db2„´precedence_heuristic	§cell_idÙ$aa898360-f802-438a-9081-a2e517230db2´downstream_cells_map�ªapply_uct!’Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95c²upstream_cells_mapŽ¤Dict�©@fastmath�£sum�¤keys�£uct’Ù$308fd488-a009-4de0-8b27-c1f6b0677fedÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58£Inf�©@inbounds�¦Vector�¤Real�¥Int64�¤Base�¦values�¶Base.FastMath.add_fast�¶Base.FastMath.mul_fast�Ù$2c587d5b-7b62-4835-ad02-9575c13d5874„´precedence_heuristic	§cell_idÙ$2c587d5b-7b62-4835-ad02-9575c13d5874´downstream_cells_map�²show_mcts_solution‘Ù$6a4116c9-87cf-4ee7-8030-aa1150853984²upstream_cells_mapŠ¤Dict�ªmaze_walls‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906¥Int64�§rollout“Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Ù$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96§Float32�©dyna_maze‘Ù$c04c803c-cdca-4b8b-9c9d-e456ee677906©plot_path“Ù$eded8b72-70f4-4579-ba69-2eca409fa684Ù$1f7d77a6-d774-436d-a745-5a160cc15f2bÙ$502a7125-4460-4d39-be14-4852fb6d9ad2®GridworldState‘Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2¢in�·monte_carlo_tree_search“Ù$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$a8ec05ad-8333-4423-ab42-883ab806ebd7„´precedence_heuristic	§cell_idÙ$a8ec05ad-8333-4423-ab42-883ab806ebd7´downstream_cells_map�¾uniform_bellman_optimal_value!‘Ù$00c8f62f-dee2-476c-b896-68d3ab57a168²upstream_cells_map‰¤zero�©eachindex�£max�·bellman_optimal_update!‘Ù$81f2f335-6606-4506-bfb3-d0d95e651f24¦Matrix�¦isless�¡+�³FiniteStochasticMDP‘Ù$94b339bb-6e2d-422f-8043-615e8be9a217¤Real�´cell_execution_orderÜ  Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690Ù$516234a8-2748-11ed-35df-432eebaa5162Ù$65818e67-c146-4686-a9aa-d0859ef662fbÙ$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5Ù$76489f21-677e-4c25-beaa-afaf2244cd94Ù$27d12c1c-ddb0-4bc1-af51-3388ff806705Ù$cd79ce14-14a1-43c6-93e0-b4a786f7f9fbÙ$e0cc1ca1-595d-44e2-8612-261df9e2d327Ù$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5Ù$69ff1b72-cb1b-4724-a445-38e4c9846964Ù$8987052b-0828-43a5-982e-5f3d6209f2aaÙ$dab6eac0-7958-4d3a-a1af-781fb57e7adbÙ$b0df4dad-74c7-4469-a13f-5ef6bb81199fÙ$976ff0c3-54aa-41f0-b963-baf77bea8cb8Ù$24efe9b4-9308-4ad1-8ef0-69f6f93407c0Ù$26fe0c28-8f0f-4cff-87fb-76f04fce1be1Ù$340ba72b-172a-4d92-99b2-17687ab511c7Ù$caca8d95-e40e-4592-b29e-a7e8b19faeb5Ù$1127c36f-9bc0-49b1-9481-8a5861bdf6caÙ$a3243bc4-7ae7-418a-9881-a265ca95f5efÙ$08ff749b-f4ff-4639-99f5-48262aa4643eÙ$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bcÙ$466268c4-664d-42dd-84c1-7b8ade49936fÙ$08e81e30-119d-4f4e-a865-f1f85cbffd31Ù$63bf9d16-4516-4cec-895f-f010275bca16Ù$31072f9b-de1b-42cf-a187-cbff99b49b50Ù$df62fd47-6627-4931-b429-964c65960446Ù$cfdaa9c2-265f-4540-9d04-d1b7a72aee3eÙ$3b0d2c55-2123-4b51-b946-6bc352e3d00aÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5Ù$72b40384-9ca1-4bc1-8e1a-8b639d39e215Ù$e8a6e672-b860-404f-83c1-62a080f23112Ù$04ea981e-337e-4324-a5cc-178eb3c7605bÙ$ee0f55c6-e9c6-4199-9f27-5706f3c84863Ù$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96Ù$d4e1e807-7e87-4b43-9c36-f59999dfcd2dÙ$308fd488-a009-4de0-8b27-c1f6b0677fedÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58Ù$f369a092-420d-4660-b802-93f05d5e7972Ù$82e5719c-bbdb-4a18-b2f0-ad746b6acd41Ù$f6486854-4892-4fb6-a805-de56b19b3571Ù$aa898360-f802-438a-9081-a2e517230db2Ù$bc295bb5-addb-4bcf-a3e3-c839ccc346bdÙ$245d9616-e0d2-497e-bfdd-4729a7215bfdÙ$321bdf5a-bff7-4181-986f-d3884ea96d27Ù$e689df6b-d6f0-4928-9212-a940aa00b0efÙ$b03087e9-e15d-4563-bdae-4d9ba7d2cec6Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13Ù$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cfÙ$037f1804-b24e-46e7-b2a8-6747e669db66Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Ù$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$47ce2eda-b2c4-4f81-8d91-955bc35bab49Ù$f143446c-e44b-4d75-baa7-3b24eafad003Ù$13f08473-f0d8-47d1-aa48-de3e4a083dbfÙ$304e6afd-11e0-4011-9929-85889b988400Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6dbÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00Ù$1d97325a-8b9a-438d-a5f9-e17638e64627Ù$7ae23e8e-d554-4d26-a08a-83dab507af13Ù$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dcÙ$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8Ù$e43513e8-2517-43b7-9a16-e57d4125edc4Ù$94b339bb-6e2d-422f-8043-615e8be9a217Ù$81f2f335-6606-4506-bfb3-d0d95e651f24Ù$a8ec05ad-8333-4423-ab42-883ab806ebd7Ù$094321bc-2d44-4e67-9ac6-5216a42e0cd3Ù$6e273f2b-a1af-421f-aca7-772a836b89efÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6Ù$6605b946-3010-47ed-8d88-3c4dca993cf8Ù$636d768c-670d-4485-a1dd-2bab6cf086d0Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$726af565-8905-4409-864f-a5c1b5767e09Ù$33f66659-1a87-4890-9137-dbc7776a19d8Ù$195d2a34-c44c-4088-8ec4-dece3107f16dÙ$16c68a13-c295-4a64-bc2b-2ae8451f332fÙ$44364e7f-1910-421a-b961-63fbbaac8230Ù$4b2a4fb1-7395-4293-9ff9-e2f9da50f56bÙ$6778296c-ab05-47e7-86d2-e98c075a8a0cÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767Ù$2fa207dd-749f-4dc0-b4ab-159edf1d9bceÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846Ù$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07Ù$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$00c8f62f-dee2-476c-b896-68d3ab57a168Ù$8586d633-7c50-49ba-9b74-b5bdad27c317Ù$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5Ù$5e49504e-9623-48f9-aeb5-360906b92a09Ù$679b6096-b3ca-422d-9d9a-225832510ab1Ù$0adcbce8-2be5-48ef-af43-04815e10dc5cÙ$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$9a1b250f-b404-4db3-a4b7-4cd33b79d921Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$0f37ec0a-b737-478b-bf6a-027899250c4eÙ$f424edac-388d-4465-900f-9459d2a88f79Ù$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1aeÙ$4e1c115a-4020-4a5a-a79a-56056892a953Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2Ù$bb439641-30bd-495d-ba70-06b2e27efdbdÙ$c04c803c-cdca-4b8b-9c9d-e456ee677906Ù$cd139745-1877-43a2-97a0-3333e544cbd8Ù$8dbc76fd-ac73-47ca-983e-0e90023390e3Ù$beae0491-ed11-4edf-a136-d384578b088bÙ$41bb1f78-b83a-4a45-ba5c-faa94e112f45Ù$39ae7727-ea72-48f3-8d63-e03a9f607f87Ù$fb00aedd-e103-4463-b4f8-d0dce6275c64Ù$b3a5adcb-5343-44e9-9466-1c51c1143a0dÙ$77fde69f-2119-41eb-8993-a93b2c47ca7eÙ$eded8b72-70f4-4579-ba69-2eca409fa684Ù$1f7d77a6-d774-436d-a745-5a160cc15f2bÙ$502a7125-4460-4d39-be14-4852fb6d9ad2Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdbÙ$2ff6d187-e06f-47b5-9834-d06bfc820c26Ù$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11cÙ$0dbd2b87-d000-408b-8d04-25fc0fa512d1Ù$cd1980ff-2f35-4599-b08c-2037ddf5e995Ù$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1Ù$db66615e-fbbc-4ea8-b529-bdc14e58a215Ù$562e824c-34b5-415d-b186-d8e2cf1980e7Ù$98547223-05a6-43da-80b2-63c67d2de283Ù$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Ù$f0e88db8-e3ee-4b74-923e-c34038024824Ù$c32d0943-ba8f-438f-83b6-5ed42221f630Ù$1aa76f3d-6041-4886-a6cd-787bdf1ec63cÙ$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$6a4116c9-87cf-4ee7-8030-aa1150853984Ù$4b3604db-0c1b-4770-95b1-5f5bb34d071bÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5cÙ$3bf9e526-826d-42b8-84ee-75f1c7f79c69Ù$9d69687a-8df6-4e74-aa99-fbfcc84bcccfÙ$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3Ù$4d4baa61-b5bd-4bcf-a491-9a35a1695f0bÙ$0f9080af-f166-4a78-a003-8df07f6c27d4´last_hot_reload_timeË        ©shortpathÙ6Chapter_08_Planning_&_Learning_with_Tabular_Methods.jl®process_status¥ready¤pathÙÁ/home/runner/work/Reinforcement-Learning-Sutton-Barto-Exercise-Solutions/Reinforcement-Learning-Sutton-Barto-Exercise-Solutions/Chapter-08/Chapter_08_Planning_&_Learning_with_Tabular_Methods.jl­pluto_version§v0.20.8®last_save_timeËAÚ•·Nªcell_orderÜ  Ù$516234a8-2748-11ed-35df-432eebaa5162Ù$5afad18b-1d87-450e-a0ff-8c1249d663edÙ$65818e67-c146-4686-a9aa-d0859ef662fbÙ$c04c803c-cdca-4b8b-9c9d-e456ee677906Ù$39ae7727-ea72-48f3-8d63-e03a9f607f87Ù$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6Ù$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5Ù$76489f21-677e-4c25-beaa-afaf2244cd94Ù$8dbc76fd-ac73-47ca-983e-0e90023390e3Ù$27d12c1c-ddb0-4bc1-af51-3388ff806705Ù$4d4baa61-b5bd-4bcf-a491-9a35a1695f0bÙ$cd139745-1877-43a2-97a0-3333e544cbd8Ù$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3Ù$cd79ce14-14a1-43c6-93e0-b4a786f7f9fbÙ$e0cc1ca1-595d-44e2-8612-261df9e2d327Ù$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5Ù$5ae2d740-13c7-4568-8f04-25bc82fecbdbÙ$69ff1b72-cb1b-4724-a445-38e4c9846964Ù$8987052b-0828-43a5-982e-5f3d6209f2aaÙ$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27Ù$2ff6d187-e06f-47b5-9834-d06bfc820c26Ù$dab6eac0-7958-4d3a-a1af-781fb57e7adbÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215Ù$b0df4dad-74c7-4469-a13f-5ef6bb81199fÙ$98547223-05a6-43da-80b2-63c67d2de283Ù$562e824c-34b5-415d-b186-d8e2cf1980e7Ù$976ff0c3-54aa-41f0-b963-baf77bea8cb8Ù$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3Ù$0dbd2b87-d000-408b-8d04-25fc0fa512d1Ù$5b688057-06c7-4ae4-95d6-0a2ff451f11cÙ$f0e88db8-e3ee-4b74-923e-c34038024824Ù$aee1f6a8-de43-402e-b375-86c0f2f9e6b8Ù$24efe9b4-9308-4ad1-8ef0-69f6f93407c0Ù$26fe0c28-8f0f-4cff-87fb-76f04fce1be1Ù$340ba72b-172a-4d92-99b2-17687ab511c7Ù$caca8d95-e40e-4592-b29e-a7e8b19faeb5Ù$269f4505-e807-446c-8fd8-3458482e00abÙ$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1Ù$1aa76f3d-6041-4886-a6cd-787bdf1ec63cÙ$cd1980ff-2f35-4599-b08c-2037ddf5e995Ù$c32d0943-ba8f-438f-83b6-5ed42221f630Ù$1127c36f-9bc0-49b1-9481-8a5861bdf6caÙ$a3243bc4-7ae7-418a-9881-a265ca95f5efÙ$08ff749b-f4ff-4639-99f5-48262aa4643eÙ$898f1b06-a34f-496b-99db-9ca23498cbeeÙ$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bcÙ$4b424a47-dfeb-4380-8ab8-8bd24a080c2eÙ$466268c4-664d-42dd-84c1-7b8ade49936fÙ$b3a5adcb-5343-44e9-9466-1c51c1143a0dÙ$fb00aedd-e103-4463-b4f8-d0dce6275c64Ù$08e81e30-119d-4f4e-a865-f1f85cbffd31Ù$63bf9d16-4516-4cec-895f-f010275bca16Ù$31072f9b-de1b-42cf-a187-cbff99b49b50Ù$cfdaa9c2-265f-4540-9d04-d1b7a72aee3eÙ$df62fd47-6627-4931-b429-964c65960446Ù$3b0d2c55-2123-4b51-b946-6bc352e3d00aÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5Ù$72b40384-9ca1-4bc1-8e1a-8b639d39e215Ù$a8ec05ad-8333-4423-ab42-883ab806ebd7Ù$d0b18699-7d3a-418d-9d15-be41f1643f09Ù$81f2f335-6606-4506-bfb3-d0d95e651f24Ù$094321bc-2d44-4e67-9ac6-5216a42e0cd3Ù$6e273f2b-a1af-421f-aca7-772a836b89efÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6Ù$00c8f62f-dee2-476c-b896-68d3ab57a168Ù$e8a6e672-b860-404f-83c1-62a080f23112Ù$8586d633-7c50-49ba-9b74-b5bdad27c317Ù$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5Ù$4b2a4fb1-7395-4293-9ff9-e2f9da50f56bÙ$6778296c-ab05-47e7-86d2-e98c075a8a0cÙ$6605b946-3010-47ed-8d88-3c4dca993cf8Ù$636d768c-670d-4485-a1dd-2bab6cf086d0Ù$04ea981e-337e-4324-a5cc-178eb3c7605bÙ$ee0f55c6-e9c6-4199-9f27-5706f3c84863Ù$f9e4baec-c988-4abd-9bb0-c618c0ec07b9Ù$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056Ù$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96Ù$d4e1e807-7e87-4b43-9c36-f59999dfcd2dÙ$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0aÙ$bf7950f2-05fa-4455-ad08-27735148d95cÙ$f143446c-e44b-4d75-baa7-3b24eafad003Ù$13f08473-f0d8-47d1-aa48-de3e4a083dbfÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cfÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771bÙ$308fd488-a009-4de0-8b27-c1f6b0677fedÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58Ù$f369a092-420d-4660-b802-93f05d5e7972Ù$82e5719c-bbdb-4a18-b2f0-ad746b6acd41Ù$f6486854-4892-4fb6-a805-de56b19b3571Ù$aa898360-f802-438a-9081-a2e517230db2Ù$bc295bb5-addb-4bcf-a3e3-c839ccc346bdÙ$beae0491-ed11-4edf-a136-d384578b088bÙ$6a4116c9-87cf-4ee7-8030-aa1150853984Ù$2c587d5b-7b62-4835-ad02-9575c13d5874Ù$41bb1f78-b83a-4a45-ba5c-faa94e112f45Ù$245d9616-e0d2-497e-bfdd-4729a7215bfdÙ$321bdf5a-bff7-4181-986f-d3884ea96d27Ù$0fff8e1b-d0c2-49b8-93b4-8d1615c26690Ù$e689df6b-d6f0-4928-9212-a940aa00b0efÙ$b03087e9-e15d-4563-bdae-4d9ba7d2cec6Ù$c1ff1bea-649c-4483-b4be-55134f0e8cb7Ù$6858ef8b-1ca7-4e96-b57e-26553423cc13Ù$037f1804-b24e-46e7-b2a8-6747e669db66Ù$e25ec0d5-f70f-4269-b2a1-efa194936f72Ù$47ce2eda-b2c4-4f81-8d91-955bc35bab49Ù$304e6afd-11e0-4011-9929-85889b988400Ù$c62cc32c-0d29-4ea2-8284-ac4c883df6dbÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00Ù$1d97325a-8b9a-438d-a5f9-e17638e64627Ù$7ae23e8e-d554-4d26-a08a-83dab507af13Ù$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dcÙ$618b5f35-2df5-4ffb-a34f-add542691080Ù$3edc09ab-8fa1-440f-8a45-546898a2b2a3Ù$b15f1262-1acf-40e5-87a7-bc4b1b437a42Ù$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8Ù$e43513e8-2517-43b7-9a16-e57d4125edc4Ù$94b339bb-6e2d-422f-8043-615e8be9a217Ù$f8bf29fe-568f-437f-ba82-6b861988a18eÙ$82e1ceb8-b1bb-4dea-b041-bf462041793fÙ$e4f73889-af82-4304-89d5-ee50172eb3daÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6Ù$fc137613-7b4b-414c-93af-eeb2ace5d67fÙ$6c8cd429-2c2e-4515-98b2-d0394962e479Ù$3b4e27e7-8065-44b3-bc2a-e540913aa540Ù$250ea9da-dea3-4bf3-932d-cdda6756ae33Ù$726af565-8905-4409-864f-a5c1b5767e09Ù$33f66659-1a87-4890-9137-dbc7776a19d8Ù$195d2a34-c44c-4088-8ec4-dece3107f16dÙ$16c68a13-c295-4a64-bc2b-2ae8451f332fÙ$44364e7f-1910-421a-b961-63fbbaac8230Ù$80affd41-b5e6-4b9c-b827-4e3b39bd7767Ù$0899f37c-5def-4d15-8ca3-ebdec8e96b43Ù$2fa207dd-749f-4dc0-b4ab-159edf1d9bceÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846Ù$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07Ù$5e49504e-9623-48f9-aeb5-360906b92a09Ù$679b6096-b3ca-422d-9d9a-225832510ab1Ù$0adcbce8-2be5-48ef-af43-04815e10dc5cÙ$9a1b250f-b404-4db3-a4b7-4cd33b79d921Ù$324181f0-b890-4198-9b4b-c36547e6629aÙ$0f37ec0a-b737-478b-bf6a-027899250c4eÙ$f424edac-388d-4465-900f-9459d2a88f79Ù$4494cb61-ee2c-467b-9bf6-0afb59023e91Ù$143fff7d-0bb2-43b4-b810-53784fe848bdÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2Ù$113d2bc2-1f77-479f-86e5-a65b20672d7aÙ$5d2abde0-7128-41c3-bd1f-b6940492d1aeÙ$4e1c115a-4020-4a5a-a79a-56056892a953Ù$729197ce-2c27-467d-ba5f-47a1ecd539f2Ù$bb439641-30bd-495d-ba70-06b2e27efdbdÙ$77fde69f-2119-41eb-8993-a93b2c47ca7eÙ$eded8b72-70f4-4579-ba69-2eca409fa684Ù$1f7d77a6-d774-436d-a745-5a160cc15f2bÙ$502a7125-4460-4d39-be14-4852fb6d9ad2Ù$4b3604db-0c1b-4770-95b1-5f5bb34d071bÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5cÙ$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69Ù$3bf9e526-826d-42b8-84ee-75f1c7f79c69Ù$9d69687a-8df6-4e74-aa99-fbfcc84bcccfÙ$0f9080af-f166-4a78-a003-8df07f6c27d4±published_objectsÞ Ù53ee53c46-38f7-11f0-16c9-2b093684d981/ad3aa1d6cffe4c04„¦layoutŠ¨autosizeÂ§paddingÊ    ¥xaxisŠ¨showgridÃ¨showlineÃ¨gridwithÊ?€  ©gridcolor¥black¨zerolineÃ¨tickvalsÇ$  €?   @  @@  €@   @  À@  à@   A  A¥range×  €?   A¦mirrorÃ¨ticktextš          ©linecolor¥black­paper_bgcolor°rgba(0, 0, 0, 0)¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦heightÊCH  ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¥yaxis‰¨showgridÃ¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ  €?   @  @@  €@   @  À@¥range×  €?  à@¦mirrorÃ¨ticktext–      ©linecolor¥black¥titleƒ¤font�¤sizeÊA`  ¤textÙ'Random policy path example in Dyna Maze¡xÊ?   ¥widthÊC‡  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤dataÜ ×‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡S¡xÖ  À?‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡G¡xÖ  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×   @  `@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  `@  `@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  `@   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  °@¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  °@¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  °@¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@   @¤type§scatter¤name¬Optimal Path¡x×   @   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×   @  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×   @  `@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  `@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  �@  `@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  `@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  �@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  °@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  �@  `@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  `@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  `@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  �@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  °@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  Ð@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  Ð@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  °@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@   @¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  �@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  Ð@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  Ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  ð@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  Ð@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  �@  `@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  `@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  �@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  `@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  �@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  °@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  °@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  �@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  �@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  °@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  Ð@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  °@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  Ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@   @¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  ð@  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  `@¤type§scatter¤name¬Optimal Path¡x×  A  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@   @¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  ð@  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  ð@  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  °@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  °@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  °@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¡xÖ33s@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡W¡xÖ33s@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  °@¤type§scatter¤text‘¡W¡xÖ33s@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ   @¤type§scatter¤text‘¡W¡xÖš™Ù@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡W¡xÖÍÌA‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  °@¤type§scatter¤text‘¡W¡xÖÍÌA‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡W¡xÖÍÌAÙ53ee53c46-38f7-11f0-16c9-2b093684d981/b33bcd4825a11f8e„¦layout‚¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data’„¡yÈ]À                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?ÍÌL?ÍÌL?fff?fff?fff?fff?fff?fff?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?ff¦?33³?33³?33³?33³?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?ÍÌÌ?š™Ù?š™Ù?š™Ù?ffæ?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?   @   @   @ff@ff@ff@ff@ff@ff@ÍÌ@ÍÌ@33@33@33@33@33@33@33@33@33@33@33@33@33@33@   @   @   @   @   @   @   @   @ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@333@š™9@š™9@š™9@š™9@š™9@š™9@š™9@š™9@š™9@š™9@š™9@š™9@  @@ffF@ffF@ffF@ffF@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@33S@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@š™Y@fff@fff@fff@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@  €@  €@33ƒ@33ƒ@33ƒ@ff†@ff†@š™‰@š™‰@š™‰@ÍÌŒ@ÍÌŒ@ÍÌŒ@ÍÌŒ@ÍÌŒ@  �@  �@  �@  �@  �@  �@š™™@š™™@š™™@š™™@š™™@š™™@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@   @   @33£@33£@33£@33£@ff¦@ff¦@ff¦@ff¦@š™©@š™©@š™©@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@  °@  °@  °@  °@  °@  °@33³@33³@33³@33³@ff¶@ÍÌ¼@ÍÌ¼@ÍÌ¼@ÍÌ¼@ÍÌ¼@ÍÌ¼@ÍÌ¼@  À@  À@  À@  À@33Ã@33Ã@33Ã@33Ã@33Ã@33Ã@33Ã@33Ã@33Ã@33Ã@ffÆ@š™É@ÍÌÌ@  Ð@33Ó@33Ó@33Ó@33Ó@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@š™Ù@š™Ù@š™Ù@ÍÌÜ@ÍÌÜ@ÍÌÜ@ÍÌÜ@ÍÌÜ@  à@33ã@33ã@33ã@33ã@ffæ@š™é@š™é@š™é@š™é@š™é@š™é@š™é@š™é@š™é@š™é@š™é@  ð@33ó@33ó@33ó@33ó@33ó@33ó@ffö@ffö@ffö@ffö@ffö@ffö@ffö@ÍÌü@ÍÌü@ÍÌü@ÍÌü@   A   Aš™Aš™Aš™Aš™Aš™Aš™A33A33A33AÍÌAÍÌAÍÌAÍÌAÍÌA  A  A  A  Aš™	Aš™	A33A33A33AÍÌAÍÌAÍÌAÍÌA  A  A  Aš™Aš™Aš™Aš™AÍÌAÍÌAffAffAffA  A  A  A  Aš™Aš™Aš™Aš™Aš™Aš™Aš™AÍÌAffA   A   A   A   Aš™!Aš™!A33#A33#A33#A33#AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$Aff&A  (A  (Aš™)Aš™)Aš™)A33+A33+AÍÌ,Aff.Aff.A  0A  0A  0A  0A  0A  0A  0A  0A  0A  0A  0Aš™1Aš™1Aš™1Aš™1Aš™1Aš™1A333AÍÌ4Aff6Aff6Aff6A  8A33;A33;A33;A33;A33;A33;A33;A33;A33;A33;AÍÌ<AÍÌ<AÍÌ<Aff>Aff>A  @A33CA33CAffFAffFA  HA  HA  HA  HA  HA  HA  HA  HA  HA  HA  HAš™IA33KA33KAffNA  PAš™QAš™QAš™QAš™QA33SA33SAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAffVAffVAffVA  XAš™YAš™YA33[A33[A33[A33[AÍÌ\A  `Aš™aAš™aAš™aAš™aA33cA33cA33cAÍÌdAÍÌdAÍÌdAfffAfffAfffAfffA  hA  hAš™iA33kA33kA33kAÍÌlAffnAffnAffnA  pA  pA  pAš™qAš™qAš™qA33sAÍÌtAÍÌtAÍÌtAÍÌtAffvAffvA  xA  xAš™yAš™yAš™yAÍÌ|AÍÌ|Aff~Aff~Aff~Aff~Aff~A  €A  €A  €A  €Aš™�Aš™�Aš™�Aš™�Aš™�Aš™�Aš™�Aš™�A33ƒA33ƒA33ƒA33ƒA  „AÍÌ„AÍÌ„AÍÌ„AÍÌ„Aš™…Aš™…A33‡A33‡A33‡A33‡A33‡A  ˆAÍÌˆAÍÌˆAÍÌˆAš™‰Aš™‰Aš™‰Aš™‰AffŠAffŠAffŠAffŠAffŠA33‹A  ŒAÍÌŒAÍÌŒAÍÌŒAÍÌŒAÍÌŒAÍÌŒAÍÌŒAÍÌŒAffŽA  �A  �A  �AÍÌ�AÍÌ�AÍÌ�AÍÌ�AÍÌ�AÍÌ�Aš™‘Aš™‘Aff’A33“A33“A33“A33“A  ”A  ”AÍÌ”AÍÌ”AÍÌ”AÍÌ”AÍÌ”AÍÌ”Aš™•A33—A33—A33—A33—A  ˜A  ˜A  ˜AÍÌ˜AÍÌ˜Aš™™Aš™™Aš™™AffšA33›A33›A33›AÍÌœAÍÌœAÍÌœAÍÌœAÍÌœAÍÌœAÍÌœAÍÌœAš™�AffžAffžA33ŸA33ŸA   A   A   A   AÍÌ Aš™¡Aš™¡Aš™¡Aff¢A33£A33£A33£A33£A  ¤A  ¤A  ¤Aš™¥Aš™¥Aff¦Aff¦Aff¦Aff¦Aff¦A33§A33§A  ¨AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨AffªA  ¬A  ¬AÍÌ¬Aš™­Aš™­Aš™­Aš™­Aff®Aff®Aff®Aff®Aff®A33¯A33¯A  °A  °A  °Aš™±A33³A33³A33³A  ´A  ´A  ´A  ´A  ´A  ´AÍÌ´AÍÌ´AÍÌ´Aš™µAš™µAff¶A33·A  ¸A  ¸A  ¸A  ¸A  ¸A  ¸AÍÌ¸AÍÌ¸AÍÌ¸AffºAffºAffºA33»A  ¼A  ¼A  ¼Aš™½Aš™½Aff¾A33¿A33¿A  ÀA  ÀA  ÀA  ÀA  ÀA  ÀAÍÌÀAÍÌÀAÍÌÀAÍÌÀAš™ÁAš™ÁAš™ÁAš™ÁAffÂAffÂAffÂA33ÃA33ÃA  ÄAÍÌÄAÍÌÄAš™ÅAš™ÅAš™ÅAffÆAffÆAffÆAffÆAffÆA33ÇA  ÈA  ÈAÍÌÈAÍÌÈAÍÌÈAš™ÉAš™ÉAffÊAffÊAffÊAffÊA33ËA  ÌA  ÌAÍÌÌAš™ÍAš™ÍAš™ÍAffÎAffÎAffÎA33ÏA  ÐA  ÐA  ÐA  ÐAÍÌÐAÍÌÐAÍÌÐAš™ÑAffÒAffÒA33ÓA  ÔA  ÔA  ÔAÍÌÔAš™ÕAš™ÕAffÖAffÖAffÖAffÖA33×AÍÌØAš™ÙAš™ÙAš™ÙAš™ÙAš™ÙAffÚAffÚA33ÛA33ÛA33ÛA33ÛA  ÜAÍÌÜAÍÌÜAÍÌÜAš™ÝAš™ÝA33ßA33ßA33ßA33ßAÍÌàAš™áAš™áAffâAffâAffâAffâAffâAffâAffâA33ãA  äA  äA  äA  äAš™åAffæA33çA  èAš™éAš™éAš™éAš™éAš™éAš™éAš™éAš™éAš™éAffêAffêA33ëA33ëA33ëA33ëAÍÌìAš™íA33ïA33ïA33ïA  ðA  ðA  ðAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAffòA33óA  ôAfföAfföAÍÌøAÍÌøAš™ùAš™ùAš™ùAš™ùAš™ùAš™ùAš™ùAš™ùAš™ùAš™ùAš™ùAffúAffúAffúAÍÌüAÍÌüAffþAffþA33ÿA   Bff BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ B33B33Bš™Bš™BffBÍÌBÍÌB33B33B33Bš™Bš™BffBffBffBffBffBffBffBÍÌBÍÌB33B33Bš™Bš™B  BffBÍÌB33Bš™Bš™Bš™B  B  B  BffBffBÍÌBÍÌBÍÌB33	B33	Bš™	B  
B  
Bff
Bff
Bff
Bff
BÍÌ
BÍÌ
B33Bš™B  B  B  BffBÍÌBÍÌBÍÌBš™B  B  B  BffBffBffBffBffBffBffBffBffBÍÌBÍÌB33Bš™Bš™B  BffB33Bš™Bš™B  B  B  BffBffBffBffBffBÍÌBÍÌBÍÌBÍÌB33Bš™B  BÍÌBš™Bš™Bš™Bš™Bš™Bš™Bš™BffBffBffBffBÍÌBÍÌBÍÌBÍÌB33B33Bš™B  BffBffBÍÌBÍÌB33B33B33B33Bš™Bš™Bš™BffBffBÍÌB33B33Bš™B  BffBffBffBffBffBffBÍÌBÍÌBš™Bš™Bš™Bš™Bš™B  B  B  BffBÍÌB   B   Bff Bff Bff Bff Bff Bff Bff B33!B33!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bff"Bff"BÍÌ"BÍÌ"B33#B33#Bš™#B  $B  $B  $B  $B  $Bff$Bff$Bff$BÍÌ$BÍÌ$Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bff&Bff&BÍÌ&BÍÌ&Bš™'Bš™'B  (Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(BÍÌ(B33)Bš™)Bš™)B  *Bff*Bff*Bff*BÍÌ*Bš™+Bš™+Bš™+B  ,B  ,B  ,B  ,B  ,Bff,Bff,Bff,BÍÌ,BÍÌ,Bš™-Bš™-Bš™-Bš™-Bš™-B  .Bff.BÍÌ.BÍÌ.B33/Bš™/Bš™/B  0Bff0Bff0Bff0BÍÌ0BÍÌ0B331B331B331B331B  2B  2B  2BÍÌ2B333B333Bš™3Bš™3B  4B  4BÍÌ4BÍÌ4BÍÌ4BÍÌ4BÍÌ4BÍÌ4BÍÌ4B335B335Bš™5Bš™5B  6B  6Bff6BÍÌ6BÍÌ6Bš™7Bš™7B  8B  8Bff8Bff8Bff8Bff8Bff8Bff8Bff8BÍÌ8B339Bš™9Bff:Bff:BÍÌ:BÍÌ:B33;B  <B  <B  <Bff<Bff<Bff<Bff<Bff<Bff<Bff<Bff<Bff<BÍÌ<BÍÌ<B33=B  >Bff>Bff>Bff>B33?Bš™?Bš™?Bš™?B  @B  @Bff@Bff@Bff@Bff@Bff@BÍÌ@BÍÌ@B33ABš™AB  BB  BB  BBffBBÍÌBBÍÌBBš™CBš™CBš™CBš™CBš™CBš™CBš™CBÍÌDBÍÌDBÍÌDBÍÌDBÍÌDBÍÌDB33EB33EBš™EB  FB  FB  FB33GBš™GBš™GBš™GBš™GBš™GBš™GBš™GBffHBÍÌHBÍÌHBÍÌHBÍÌHB33IBš™IB  JB  JB  JB  JBffJB33KB33KB33KB33KB33KB33KBš™KB  LBffLB33MB33MB33MB33MB33MBš™MBš™MBš™MB  NBffNBÍÌNBÍÌNB33OB33OB33OB33OBš™OBffPBffPBffPBÍÌPBÍÌPBš™QBš™QBš™QB  RB  RB  RB  RB  RBffRBffRBffRBffRB33SBš™SBš™SB  TBffTBÍÌTBÍÌTBÍÌTB33UBš™UBš™UB  VB  VBffVBffVBffVBffVBffVBffVBffVBÍÌVB33WB33WB33WB  XB  XBffXBÍÌXBÍÌXBÍÌXB33YB33YB  ZB  ZB  ZBffZBffZBÍÌZBÍÌZBÍÌZB33[B33[Bš™[Bš™[Bš™[B  \Bff\B33]B33]Bš™]Bš™]Bš™]B  ^B  ^Bff^Bff^BÍÌ^BÍÌ^BÍÌ^B33_B33_B33_B33_B33_B33_Bš™_Bš™_B  `BÍÌ`BÍÌ`BÍÌ`Bš™aBš™aB  bBÍÌbBÍÌbBÍÌbBÍÌbBÍÌbBÍÌbBÍÌbBÍÌbBÍÌbB33cBš™cB  dBffdBÍÌdBÍÌdBÍÌdBÍÌdBÍÌdBÍÌdBÍÌdBÍÌdBš™eB  fB  fB  fBfffBfffBÍÌfB33gBš™gB  hBffhBÍÌhBÍÌhBÍÌhBÍÌhBÍÌhBÍÌhBÍÌhBÍÌhBÍÌhB33iBš™iBš™iBš™iBš™iB  jB  jB  jB33kBš™kBš™kBš™kB  lB  lB  lBfflBÍÌlBÍÌlBÍÌlBÍÌlB33mB33mBš™mBš™mBš™mBš™mBš™mB  nBÍÌnB33oB33oBš™oB  pB  pB  pB  pBffpBffpBÍÌpB33qBš™qBš™qBš™qBš™qBš™qBš™qBš™qB  rBffrBÍÌrBÍÌrB33sB33sB33sB33sB33sB  tB  tBfftBÍÌtB33uB33uB33uBš™uBš™uB  vBffvBffvBÍÌvBÍÌvBÍÌvBÍÌvBÍÌvBÍÌvBÍÌvBÍÌvB33wBš™wBš™wB33yB33yBš™yBš™yBš™yBš™yBš™yBš™yBš™yB  zB  zBffzBffzBÍÌzBÍÌzB33{Bš™{Bš™{Bš™{Bš™{Bff|Bff|B33}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}B  ~Bff~Bff~BÍÌ~B33B33B33B33Bš™Bš™Bff€Bff€Bš™€Bš™€Bš™€Bš™€Bš™€BÍÌ€B  �B33�B33�B33�B33�B33�Bš™�Bš™�BÍÌ�B  ‚B  ‚B33‚Bff‚Bff‚Bff‚Bš™‚Bš™‚BÍÌ‚BÍÌ‚BÍÌ‚BÍÌ‚BÍÌ‚BÍÌ‚BÍÌ‚BÍÌ‚B  ƒB33ƒB33ƒBffƒBffƒBš™ƒBÍÌƒB  „B  „B33„B33„B33„Bš™„Bš™„Bš™„Bš™„BÍÌ„BÍÌ„BÍÌ„BÍÌ„BÍÌ„B  …B  …B33…Bš™…Bš™…BÍÌ…BÍÌ…BÍÌ…B  †B  †B  †B  †B33†Bff†Bš™†Bš™†Bš™†BÍÌ†BÍÌ†BÍÌ†B  ‡Bff‡Bff‡Bff‡BÍÌ‡BÍÌ‡B  ˆB  ˆB33ˆB33ˆB33ˆBffˆBffˆBš™ˆBš™ˆBš™ˆBÍÌˆB  ‰B33‰B33‰B33‰B33‰B33‰B33‰Bff‰Bff‰Bš™‰BÍÌ‰B  ŠB  ŠB33ŠB33ŠB33ŠB33ŠBš™ŠBš™ŠBš™ŠBš™ŠBÍÌŠB  ‹B33‹B33‹Bff‹Bff‹Bš™‹Bš™‹Bš™‹Bš™‹Bš™‹BÍÌ‹B33ŒBffŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBÍÌŒB  �B  �B33�B33�B33�B33�B33�B33�Bff�Bff�Bff�Bff�Bff�Bff�BÍÌ�BÍÌ�B  ŽB33ŽBffŽBš™ŽBÍÌŽBÍÌŽB  �B  �B33�B33�B33�B33�Bff�Bff�Bff�Bff�Bš™�BÍÌ�B  �Bff�Bff�Bš™�Bš™�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�B  ‘B33‘B33‘B33‘Bff‘Bff‘Bff‘Bš™‘BÍÌ‘B33’B33’Bff’Bff’Bff’Bff’Bš™’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’B  “B33“Bš™“BÍÌ“B  ”B  ”B  ”B  ”B  ”B33”Bff”Bff”Bff”Bff”Bš™”Bš™”Bš™”BÍÌ”B  •B33•Bff•Bff•Bš™•Bš™•Bš™•BÍÌ•B  –Bff–Bff–Bff–Bff–Bff–Bff–Bff–Bff–Bš™–BÍÌ–BÍÌ–BÍÌ–B  —Bff—Bff—Bff—Bff—Bff—Bff—BÍÌ—BÍÌ—BÍÌ—B33˜Bff˜Bff˜Bff˜Bff˜Bš™˜Bš™˜B  ™B  ™B  ™Bff™Bff™Bff™Bff™Bff™Bš™™Bš™™BÍÌ™BÍÌ™B33šBffšBffšBffšBffšBffšBš™šBš™šBš™šBš™šB33›B33›B33›B33›Bff›Bff›Bš™›Bš™›B  œB  œB  œB  œB  œBffœBffœBffœBffœBš™œBš™œBš™œB  �B  �Bff�Bff�Bff�Bš™�Bš™�Bš™�Bš™�Bš™�BÍÌ�B  žB33žB33žB33žB33žB33žB33žBš™žB  ŸB  ŸB  ŸB33ŸB33ŸB33ŸB33ŸB33ŸB33ŸB   B   B   B   B   B33 B33 Bff Bff Bš™ BÍÌ BÍÌ BÍÌ BÍÌ B  ¡B  ¡B  ¡B  ¡Bš™¡BÍÌ¡BÍÌ¡BÍÌ¡BÍÌ¡BÍÌ¡B  ¢B33¢B33¢Bff¢Bš™¢Bš™¢B  £B  £B  £B  £B  £B  £B33£B33£B33£Bff£B  ¤B  ¤B  ¤B  ¤B33¤Bff¤Bš™¤Bš™¤Bš™¤BÍÌ¤B  ¥B  ¥B  ¥B  ¥B33¥B33¥B33¥B33¥B33¥B33¥Bš™¥Bš™¥BÍÌ¥BÍÌ¥B  ¦B33¦B33¦Bff¦Bff¦BÍÌ¦B  §B  §B33§B33§B33§B33§B33§B33§B33§B33§Bff§Bff§Bš™§BÍÌ§B  ¨B33¨B33¨Bff¨Bff¨Bff¨Bff¨BÍÌ¨BÍÌ¨BÍÌ¨BÍÌ¨B  ©B  ©B33©B33©Bff©Bff©Bš™©BÍÌ©BÍÌ©BÍÌ©B33ªB33ªBffªBffªBffªBš™ªBš™ªBš™ªBš™ªBš™ªBš™ªBš™ªBÍÌªBÍÌªBÍÌªBff«Bff«Bš™«Bš™«BÍÌ«B  ¬B33¬B33¬Bff¬Bff¬Bff¬Bff¬Bff¬Bff¬Bš™¬BÍÌ¬BÍÌ¬BÍÌ¬BÍÌ¬BÍÌ¬B33­B33­Bš™­Bš™­BÍÌ­B33®B33®B33®Bff®Bff®Bff®Bff®Bff®Bš™®Bš™®BÍÌ®BÍÌ®BÍÌ®BÍÌ®BÍÌ®Bff¯Bff¯BÍÌ¯B  °B  °B33°B33°B33°Bff°Bš™°Bš™°BÍÌ°BÍÌ°BÍÌ°BÍÌ°BÍÌ°BÍÌ°BÍÌ°B  ±B  ±B33±B33±B33±Bff±BÍÌ±B  ²B  ²Bff²Bff²Bš™²Bš™²Bš™²BÍÌ²BÍÌ²B  ³B  ³B  ³B  ³B33³B33³B33³Bff³Bff³Bš™³Bš™³Bš™³BÍÌ³BÍÌ³B33´Bff´BÍÌ´B  µB  µB  µB  µB  µB  µB  µB33µB33µB33µBffµBš™µBš™µBš™µBÍÌµB  ¶B33¶Bff¶Bš™¶BÍÌ¶BÍÌ¶BÍÌ¶BÍÌ¶B  ·B  ·B  ·B  ·B  ·B  ·B  ·B33·B33·Bff·Bff·BÍÌ·B  ¸B  ¸B  ¸Bš™¸Bš™¸Bš™¸Bš™¸BÍÌ¸B  ¹B  ¹B  ¹B  ¹B  ¹B  ¹B  ¹B  ¹Bff¹Bš™¹Bš™¹BÍÌ¹BÍÌ¹B  ºBffºBffºBffºBš™ºBÍÌºBÍÌºBÍÌºBÍÌºB  »B  »B  »B  »B  »B  »B  »B33»Bff»Bff»Bff»B  ¼B33¼Bff¼Bff¼Bff¼Bš™¼BÍÌ¼BÍÌ¼BÍÌ¼BÍÌ¼BÍÌ¼BÍÌ¼B  ½B  ½B33½B33½B33½Bff½Bš™½Bš™½BÍÌ½B33¾B33¾B33¾Bš™¾Bš™¾BÍÌ¾BÍÌ¾BÍÌ¾BÍÌ¾B  ¿B  ¿B  ¿B  ¿B  ¿B  ¿B  ¿B33¿Bš™¿Bš™¿BÍÌ¿BÍÌ¿B  ÀB33ÀB33ÀBffÀBffÀBÍÌÀBÍÌÀB  ÁB  ÁB  ÁB  ÁB  ÁB  ÁB33ÁB33ÁBffÁBffÁBš™ÁBÍÌÁBÍÌÁB  ÂB33ÂBffÂBffÂBš™ÂBÍÌÂBÍÌÂBÍÌÂBÍÌÂB  ÃB  ÃB  ÃB33ÃB33ÃBffÃBffÃBffÃBš™ÃBÍÌÃBÍÌÃBÍÌÃB33ÄB33ÄBš™ÄBÍÌÄB  ÅB  ÅB  ÅB  ÅB  ÅB33ÅB33ÅB33ÅB33ÅBffÅBffÅBffÅBffÅBš™ÅBš™ÅBÍÌÅBÍÌÅBÍÌÅB  ÆB33ÆBffÆBffÆBš™ÆBš™ÆBÍÌÆB  ÇB  ÇB  ÇB  ÇB33ÇB33ÇB33ÇB33ÇB33ÇB33ÇB33ÇB33ÈB33ÈBffÈBš™ÈBÍÌÈBÍÌÈBÍÌÈBÍÌÈB  ÉB  ÉB  ÉB  ÉB  ÉB33ÉB33ÉB33ÉB33ÉBš™ÉBš™ÉBš™ÉBÍÌÉBÍÌÉBÍÌÉB  ÊBffÊBš™ÊB  ËB  ËB  ËB  ËB  ËB  ËB  ËB33ËB33ËB33ËB33ËBš™ËBš™ËBš™ËBš™ËBš™ËBÍÌËB  ÌB  ÌB  ÌB33ÌB33ÌBffÌBÍÌÌBÍÌÌB  ÍB  ÍB33ÍB33ÍB33ÍB33ÍB33ÍB33ÍB33ÍB33ÍB33ÍBffÍBffÍBÍÌÍB33ÎBffÎBffÎBffÎBš™ÎBÍÌÎBÍÌÎB  ÏB33ÏB33ÏB33ÏB33ÏB33ÏBffÏBffÏBffÏBš™ÏBš™ÏBš™ÏBš™ÏB  ÐB  ÐBffÐBffÐBš™ÐB  ÑB  ÑB  ÑB  ÑB33ÑBffÑBffÑBffÑBffÑBffÑBffÑBš™ÑBš™ÑB  ÒB  ÒB  ÒB  ÒBffÒBffÒBffÒBš™ÒB33ÓB33ÓB33ÓBffÓBffÓBffÓBffÓBš™ÓBÍÌÓBÍÌÓBÍÌÓBÍÌÓB  ÔB  ÔB  ÔB  ÔB33ÔBffÔBš™ÔBÍÌÔBÍÌÔB  ÕB33ÕB33ÕB33ÕBffÕBffÕBffÕBffÕBffÕBÍÌÕBÍÌÕBÍÌÕB  ÖB33ÖBš™ÖBš™ÖBÍÌÖBÍÌÖBÍÌÖBÍÌÖBÍÌÖBÍÌÖBÍÌÖB33×Bff×Bff×Bff×Bš™×B  ØB  ØB33ØBffØBffØBš™ØBÍÌØBÍÌØBÍÌØBÍÌØBÍÌØBÍÌØB  ÙB  ÙB  ÙB33ÙBffÙBffÙBš™ÙB  ÚB  ÚB33ÚB33ÚB33ÚBffÚBffÚBš™ÚBš™ÚBš™ÚBš™ÚBš™ÚBš™ÚBš™ÚB  ÛBffÛBffÛBffÛBffÛBffÛBÍÌÛBÍÌÛBÍÌÛBÍÌÛBÍÌÛB  ÜB  ÜBffÜBffÜBffÜBš™ÜBš™ÜB33ÝB33ÝB33ÝB33ÝB33ÝB33ÝBffÝBffÝBffÝBffÝBffÝBffÝBffÝBš™ÝBÍÌÝBÍÌÝB  ÞB33ÞB33ÞBš™ÞBš™ÞBÍÌÞBÍÌÞB33ßB33ßBffßBffßBffßBffßBffßBffßBš™ßB  àB33àB33àB33àB33àB33àB33àBffàBffàBš™àB  áB33áB33áBffáBffáBffáBš™áB  âB  âB  âB33âB33âB33âB33âB33âB33âBš™âBš™âBš™âBš™âB  ãB  ãB  ãBffãBÍÌãBÍÌãBÍÌãBÍÌãB33äB33äB33äB33äB33äB33äBffäBffäBš™äBš™äBš™äBš™äB  åB  åBffåBffåBš™åBš™åB33æB33æB33æB33æB33æB33æB33æB33æBffæBš™æBš™æBš™æBš™æBÍÌæBÍÌæBÍÌæB33çBffçBš™çBš™çBÍÌçB  èB  èB33èB33èB33èBffèBffèBš™èBÍÌèBÍÌèBÍÌèBÍÌèBÍÌèB  éB  éB  éB  éB  éB33éBfféBš™éB  êB  êB  êB  êB  êBš™êBš™êBš™êBÍÌêB  ëB  ëB  ëB  ëB33ëB33ëB33ëBffëBffëBffëBffëBš™ëBÍÌëBÍÌëBÍÌëB  ìB33ìB33ìBš™ìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìB33íB33íB33íBÍÌíB33îB33îBš™îBš™îBš™îBš™îBš™îBš™îBš™îBš™îBÍÌîBÍÌîB  ïB  ïB  ïB33ïBš™ïBš™ïB  ðB33ðB33ðB33ðB33ðBffðBffðBffðBš™ðBš™ðBš™ðBš™ðBÍÌðBÍÌðBÍÌðB  ñB33ñB33ñB33ñBffñBš™ñBš™ñBš™ñBÍÌñBÍÌñB33òBš™òBš™òBš™òBš™òBš™òBÍÌòBÍÌòB33óB33óB33óB33óB33óBffóBffóBffóBffóBš™óBš™óBÍÌóB  ôB  ôB  ôB33ôB33ôBš™ôBÍÌôB33õB33õB33õB33õBffõBffõBffõBffõBffõBffõBÍÌõBÍÌõB  öB  öB  öBfföBfföBš™öBš™öBÍÌöB  ÷B  ÷B  ÷Bff÷Bff÷Bff÷Bff÷Bff÷Bff÷Bš™÷BÍÌ÷BÍÌ÷B  øB  øB  øB33øBfføBÍÌøBÍÌøBÍÌøBÍÌøBÍÌøBÍÌøB  ùB33ùB33ùBffùBffùBffùBffùBffùBÍÌùB  úB  úB  úBffúBÍÌúBÍÌúBÍÌúBÍÌúBÍÌúBÍÌúB  ûB  ûB33ûB33ûB33ûB33ûBffûBffûBš™ûBš™ûBš™ûBÍÌûB  üBffüBffüBffüBffüBffüBÍÌüB  ýB  ýB  ýB  ýB33ýB33ýB33ýB33ýB33ýBffýB  þB33þB33þB33þB33þB33þBffþBÍÌþBÍÌþB  ÿB  ÿB  ÿB33ÿB33ÿB33ÿB33ÿB33ÿBš™ÿBš™ÿBÍÌÿB   Cš Cš Cš C33 C33 C33 CÍL CÍL Cff Cff Cff C € C € Cš™ Cš™ Cš™ C3³ CÍÌ CÍÌ C  C  CšCšCšC33C33C33CÍLCffCffC €C €Cš™Cš™CÍÌCÍÌCfæCfæCšCšCšC33C33C33CÍLCÍLCÍLCffCffC €C €CÍÌCfæCfæCfæCfæC  C  C  C  C  C  C  C  CšC33CÍLCš™Cš™Cš™CÍÌCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæC  CšC33CffCffCš™Cš™Cš™Cš™C3³C3³CÍÌCfæCfæCfæCfæCfæC  CšCšCšCšCšC33C33C €C €C €C €Cš™CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCfæC  CšCšCšCšCšC33C33C33CÍLC €C3³C3³C3³C3³C3³C3³C3³CÍÌCÍÌCfæC  C  C  C  CšC33CffCffCš™C3³C3³C3³C3³C3³C3³C3³C3³CÍÌCfæC  C  C  C  C  CšC33CÍLCffC €C €C €Cš™Cš™Cš™Cš™Cš™C3³C3³CÍÌCfæCfæCfæC  	C  	Cš	CÍL	Cff	Cff	C €	Cš™	Cš™	Cš™	Cš™	Cš™	C3³	C3³	C3³	C3³	CÍÌ	CÍÌ	CÍÌ	CÍÌ	CÍÌ	CÍÌ	C  
C  
CÍL
Cff
Cff
C €
C €
C €
Cš™
Cš™
C3³
CÍÌ
CÍÌ
CÍÌ
CÍÌ
CÍÌ
CÍÌ
CÍÌ
Cfæ
Cfæ
C33C33C33CffCffC €C €C €C €C €C3³C3³C3³CÍÌCÍÌCÍÌC  C  C  C  C  C  C33CÍLCffCffCffCš™Cš™Cš™C3³C3³C3³C3³C3³C3³CfæCfæC  C  CšCšCšCšCšCšCÍLCffC €C €C3³C3³C3³C3³C3³C3³C  CšCšCšCšCšCšCšCÍLCÍLCÍLCÍLCÍLCffCš™C3³CÍÌCfæCfæCfæCfæCfæCfæCfæCfæC  CšC33C33CÍLCÍLCÍLCffC €Cš™Cš™C3³C3³C3³C3³C3³C3³C3³CfæCfæCfæCfæC33CÍLCffCffC €C €C €Cš™Cš™Cš™C3³C3³C3³C3³C3³CÍÌC  C  C  CšCšCšCšC33CffCffC €C €C €Cš™Cš™Cš™C3³CÍÌCÍÌCfæC  CšCšCšCšCšCÍLCÍLCÍLCÍLC €C €C €C €C €C €C €CÍÌCfæC  C  C  CšCšCšCšC33C33C33CffCffC €C €C €C €Cš™CÍÌCÍÌCÍÌCfæC  C  C  CšCšCšCšCffCffCffCffCffCffCš™C3³C3³C3³CÍÌCfæC  CšCšCšC33C33CÍLCÍLCffCffCffCffC €C €Cš™Cš™CfæCfæCfæCfæCfæCfæCfæCfæCšC33CÍLCÍLCffCffCffCffC €Cš™C3³C3³CfæCfæCfæCfæCfæCfæCšC33C33C33CÍLCÍLCÍLCÍLCffCffCffCffCš™C3³C3³CÍÌCÍÌCfæCfæC  C  C  C  CšCšCšC33CÍLCffCffC €Cš™Cš™Cš™C3³CÍÌCÍÌCÍÌCÍÌCfæC  C  C  C  C33C33CÍLCÍLC €C €Cš™Cš™C3³C3³CÍÌCÍÌCfæCfæCfæC  C  CšCšCšC33C33C33C33C33CffCš™Cš™C3³C3³C3³C3³C3³CÍÌCfæC  CšCšC33C33C33C33C33C33CÍLCÍLCffC €Cš™C3³CÍÌCÍÌCfæCfæCfæCfæCfæCfæCšC33C33C33C33C33CÍLCffCffC €C €C3³C3³C3³CÍÌCÍÌCÍÌCfæC  CšCšCšCšC33C33C33C33CÍLC €Cš™C3³C3³C3³C3³C3³CÍÌCfæCfæC  C  C  CšC33CÍLCÍLCÍLCÍLC €Cš™Cš™Cš™Cš™Cš™Cš™Cš™CÍÌCÍÌCfæCfæCfæC  C  C  CÍLCÍLC €Cš™Cš™Cš™Cš™Cš™C3³C3³CÍÌCÍÌCÍÌCfæCfæC   C   C   Cš Cš C33 C33 Cff C € C € C € C3³ C3³ C3³ C3³ C3³ CÍÌ CÍÌ CÍÌ C  !C  !C  !C  !C  !Cš!C33!Cff!Cff!C €!C €!C €!C €!Cš™!Cš™!C3³!C3³!CÍÌ!CÍÌ!CÍÌ!CÍÌ!CÍÌ!CÍÌ!CÍÌ!CÍÌ!CÍÌ!C  "CÍL"Cff"Cff"Cff"Cff"C €"C3³"C3³"C3³"C3³"CÍÌ"CÍÌ"CÍÌ"CÍÌ"CÍÌ"CÍÌ"Cfæ"C  #C33#C33#Cff#Cff#Cff#Cff#C €#C €#C €#Cš™#Cš™#C3³#C3³#C3³#C3³#CÍÌ#CÍÌ#CÍÌ#C  $Cš$C33$C33$C33$CÍL$CÍL$CÍL$CÍL$Cff$Cff$Cš™$Cš™$Cš™$Cš™$C3³$CÍÌ$CÍÌ$Cfæ$Cfæ$C  %C  %Cš%Cš%Cš%Cš%CÍL%Cff%C €%Cš™%Cš™%Cš™%Cš™%Cš™%Cš™%Cš™%C3³%Cfæ%Cfæ%Cfæ%C  &C  &C  &C  &Cš&Cš&CÍL&CÍL&CÍL&Cff&Cš™&Cš™&Cš™&Cš™&Cš™&Cš™&Cš™&C3³&CÍÌ&Cfæ&Cfæ&Cfæ&Cš'C33'C33'C33'C33'CÍL'CÍL'CÍL'Cff'Cff'Cš™'Cš™'C3³'C3³'C3³'C3³'CÍÌ'Cfæ'C  (C  (C  (C  (Cš(Cš(C33(C33(CÍL(Cff(C €(C €(C €(Cš™(Cš™(Cš™(Cš™(Cš™(Cš™(C3³(CÍÌ(CÍÌ(Cfæ(Cfæ(Cfæ(C  )C33)CÍL)Cff)Cff)Cff)Cff)C €)C €)C €)C €)C €)C €)C €)C €)C3³)CÍÌ)C  *Cš*Cš*Cš*Cš*C33*C33*CÍL*Cff*C €*C €*C €*C €*C €*C €*C €*C3³*C3³*CÍÌ*CÍÌ*CÍÌ*Cfæ*Cš+Cš+C33+C33+CÍL+CÍL+CÍL+CÍL+CÍL+CÍL+C €+C €+Cš™+Cš™+Cš™+Cš™+Cš™+C3³+CÍÌ+Cfæ+Cš,C33,C33,C33,CÍL,CÍL,CÍL,Cff,Cff,Cff,Cff,Cff,Cš™,Cš™,Cš™,C3³,C3³,Cfæ,Cfæ,C  -C  -C33-CÍL-CÍL-CÍL-CÍL-CÍL-Cff-Cff-Cff-Cff-C €-Cš™-Cš™-Cš™-C3³-C3³-C3³-C3³-Cfæ-C  .C33.C33.C33.C33.Cff.Cff.Cff.Cff.Cff.Cff.C €.C €.C €.Cš™.C3³.C3³.CÍÌ.Cfæ.C  /Cš/Cš/Cš/CÍL/CÍL/CÍL/Cff/Cff/Cff/Cff/Cff/Cff/Cff/Cff/Cš™/Cš™/Cš™/C3³/Cfæ/Cfæ/Cfæ/Cfæ/C  0C  0CÍL0CÍL0Cff0Cff0Cff0Cff0Cff0Cff0Cff0Cff0Cff0Cff0C €0Cš™0C3³0C3³0Cfæ0C  1Cš1C331CÍL1Cff1Cff1Cff1Cff1Cff1Cff1Cff1Cff1Cff1Cff1Cff1C €1Cš™1C3³1C3³1CÍÌ1Cfæ1C  2C332CÍL2CÍL2Cff2Cff2Cff2Cff2Cff2Cff2Cff2Cff2Cff2Cff2C €2Cš™2Cš™2C3³2C3³2C  3Cš3C333C333C333C333C333Cff3Cff3Cff3Cff3Cff3Cff3C €3C €3C €3Cš™3Cš™3C3³3CÍÌ3CÍÌ3Cfæ3C  4Cš4C334C334C334CÍL4CÍL4Cff4Cff4Cff4Cff4C €4C €4C €4C €4Cš™4CÍÌ4CÍÌ4CÍÌ4CÍÌ4CÍÌ4C  5C  5Cš5Cš5Cš5Cš5CÍL5Cff5Cff5Cff5Cff5Cff5C €5C €5Cš™5Cš™5C3³5C3³5CÍÌ5CÍÌ5Cfæ5C  6C  6C  6C  6C  6C336C336CÍL6Cff6Cff6C €6C €6C €6Cš™6Cš™6C3³6C3³6C3³6C3³6C3³6CÍÌ6CÍÌ6Cš7Cš7Cš7Cš7CÍL7Cff7Cff7Cff7C €7Cš™7Cš™7C3³7C3³7C3³7C3³7C3³7C3³7CÍÌ7Cfæ7Cfæ7C  8C  8C  8Cš8C338C338C338C338Cff8Cff8Cff8C3³8C3³8C3³8C3³8C3³8C3³8C3³8C3³8C3³8C3³8C3³8CÍÌ8Cfæ8C  9C339C339CÍL9Cff9C €9C €9Cš™9Cš™9C3³9C3³9C3³9C3³9C3³9C3³9C3³9C3³9C3³9C3³9CÍÌ9CÍÌ9Cfæ9C33:C33:C33:CÍL:Cff:Cš™:Cš™:Cš™:Cš™:Cš™:Cš™:Cš™:Cš™:C3³:C3³:C3³:C3³:C3³:Cfæ:Cfæ:C  ;Cš;C33;CÍL;Cff;Cff;Cff;Cff;C €;C €;C €;C €;Cš™;Cš™;Cš™;Cš™;Cš™;Cš™;C3³;Cfæ;Cfæ;C  <C  <Cš<CÍL<Cff<Cff<Cff<Cff<Cš™<Cš™<Cš™<Cš™<Cš™<Cš™<Cš™<CÍÌ<CÍÌ<CÍÌ<Cfæ<Cfæ<Cfæ<C  =Cš=C33=C33=C33=C33=CÍL=Cš™=Cš™=Cš™=Cš™=Cš™=Cš™=Cš™=Cš™=C3³=C  >C  >Cš>Cš>Cš>Cš>Cš>Cš>CÍL>CÍL>CÍL>Cff>Cff>C €>C €>C €>CÍÌ>CÍÌ>CÍÌ>CÍÌ>C  ?C  ?C  ?C  ?Cš?Cš?Cš?CÍL?CÍL?CÍL?CÍL?Cff?Cff?Cff?C €?C3³?CÍÌ?Cfæ?Cfæ?Cfæ?Cfæ?Cfæ?C  @C  @C33@C33@C33@C33@C33@C33@C33@C33@C33@Cff@Cš™@Cš™@CÍÌ@CÍÌ@CÍÌ@Cfæ@Cfæ@Cfæ@Cfæ@CšACšACšACšAC33AC33ACÍLACÍLACÍLACffACffACš™ACš™AC3³ACÍÌACfæAC  BC  BC  BC  BC  BC  BC  BCšBC33BC33BC33BCÍLBCffBCffBCffBC €BCš™BCÍÌBCÍÌBCÍÌBCfæBCfæBC  CC  CCšCCšCCšCCšCC33CC33CCÍLCCÍLCCÍLCCffCCffCC €CC3³CC3³CCÍÌCCÍÌCCÍÌCCfæCC  DC  DC  DC  DC  DC  DC  DCšDCšDC33DCÍLDCffDC €DC3³DC3³DC3³DC3³DC3³DCfæDCfæDCfæDCfæDCfæDC  EC  EC  ECšECšEC33ECÍLECÍLECffECffEC €ECš™ECš™EC3³ECÍÌECÍÌECÍÌECÍÌECÍÌECÍÌEC  FC  FC  FC  FCšFCšFCÍLFCÍLFCÍLFCÍLFCffFC €FCš™FCš™FC3³FC3³FC3³FC3³FC3³FC3³FCÍÌFCÍÌFCfæFC  GCšGCšGC33GC33GC33GC33GC33GC33GCffGCš™GCš™GCš™GCš™GCš™GC3³GC3³GC3³GC3³GC3³GCÍÌGCÍÌGC  HCšHCšHC33HC33HCÍLHC €HCš™HCš™HCš™HCš™HCš™HC3³HC3³HC3³HC3³HCfæHCfæHCfæHC  ICšIC33ICffICffICffIC €IC €IC €IC €IC €ICš™ICš™ICš™IC3³ICfæICfæIC  JCšJCšJC33JCÍLJCÍLJCffJC €JC €JC €JC €JC €JC €JC €JCš™JCš™JCš™JC3³JCÍÌJCÍÌJCÍÌJCšKC33KC33KC33KC33KCÍLKCÍLKCffKCffKCš™KCš™KCš™KCš™KCš™KCš™KCš™KC3³KCÍÌKCfæKCšLC33LC33LC33LCÍLLCÍLLCÍLLCÍLLC €LC €LCš™LCš™LCš™LCš™LCš™LCÍÌLCfæLC  MCšMCšMCšMCšMCšMC33MC33MCÍLMCffMCffMC €MCš™MCš™MCš™MCš™MCš™MCš™MCš™MC  NC  NC  NC  NC  NCšNCÍLNCÍLNCffNCffNCffNCffNCffNC €NC €NC €NC €NCÍÌNCfæNCfæNCfæNC  OC  OCšOCšOCšOCÍLOCÍLOCÍLOCÍLOCffOCffOCffOC €OCš™OC3³OCÍÌOCfæOCfæOCfæOC  PCšPCšPC33PC33PC33PC33PC33PCÍLPCÍLPCffPC €PCš™PCÍÌPCÍÌPCÍÌPCÍÌPCfæPC  QC  QCšQCšQCšQCšQCšQC33QCÍLQCÍLQCÍLQC €QC €QC €QC €QC €QCš™QC3³QC3³QCÍÌQCÍÌQCfæQC  RCšRCšRCšRCšRCšRC33RCÍLRCÍLRCÍLRCÍLRC €RC €RC €RCš™RCš™RC3³RC3³RC3³RC3³RCÍÌRCfæRC  SCšSCšSCšSC33SC33SC33SCÍLSCÍLSCffSC €SC €SC €SC3³SC3³SCÍÌSCÍÌSC  TC  TC  TC  TC  TCšTCšTCšTCšTCšTC33TCÍLTCffTCffTC €TC €TC €TC3³TC3³TCfæTCfæTCfæTCfæTCfæTCfæTC  UC  UC  UCšUC33UC33UCffUCffUC €UCš™UCš™UCš™UCš™UCš™UC3³UCfæUCfæUCfæUCfæUCfæUC  VCšVC33VCÍLVCÍLVC €VCš™VCš™VCš™VCš™VCš™VCš™VCš™VCš™VCÍÌVCfæVCfæVCfæVCšWC33WCÍLWCffWCffWCffWC €WC €WC €WC €WC €WCš™WC3³WC3³WCÍÌWCÍÌWCÍÌWCfæWC  XC  XCšXCšXC33XCÍLXCÍLXCffXCffXC €XC €XC €XCš™XC3³XCÍÌXCÍÌXCÍÌXCfæXCfæXCfæXCfæXC  YC33YCÍLYCÍLYCffYCffYCffYCffYCffYCffYCš™YCš™YCš™YCš™YCš™YCš™YCš™YC3³YCfæYCfæYC  ZC33ZC33ZCÍLZCÍLZCÍLZCÍLZCffZC €ZC €ZCš™ZCš™ZCš™ZCš™ZCš™ZCÍÌZCÍÌZCÍÌZCš[Cš[Cš[C33[CÍL[CÍL[CÍL[Cff[Cff[Cff[Cff[Cff[C €[C €[Cš™[C3³[CÍÌ[CÍÌ[Cfæ[Cš\C33\C33\CÍL\CÍL\CÍL\CÍL\CÍL\CÍL\CÍL\CÍL\Cff\C €\Cš™\Cš™\Cš™\C3³\C3³\CÍÌ\C  ]C33]CÍL]CÍL]CÍL]CÍL]CÍL]CÍL]CÍL]CÍL]CÍL]CÍL]C €]Cš™]Cš™]C3³]C3³]C3³]C3³]C3³]Cfæ]Cfæ]Cš^Cš^Cš^Cš^CÍL^CÍL^CÍL^Cff^C €^Cš™^Cš™^Cš™^Cš™^Cš™^C3³^CÍÌ^CÍÌ^Cfæ^C  _Cš_Cš_C33_C33_CÍL_CÍL_Cff_Cff_Cff_Cff_C €_C €_C €_C €_C3³_C3³_CÍÌ_Cfæ_Cfæ_Cfæ_Cfæ_C  `C  `CÍL`CÍL`Cff`Cff`Cff`Cff`C €`C €`C €`C €`Cš™`C3³`C3³`CÍÌ`Cfæ`Cfæ`Cfæ`Cfæ`Cfæ`C  aC  aCšaC33aCÍLaCÍLaCffaCffaC €aC €aC €aCš™aCÍÌaCÍÌaCfæaCfæaCfæaCfæaC  bC  bCšbCšbC33bC33bC33bC33bC33bCÍLbCffbCffbCš™bCš™bCÍÌbCÍÌbCfæbCfæbC  cC  cC  cCšcCšcCšcC33cC33cC33cCÍLcCÍLcCÍLcCÍLcCffcC €cC €cC3³cC3³cC  dCšdCšdCšdCšdCšdCšdCšdCšdCšdC33dCÍLdCÍLdCÍLdCffdCffdCffdC €dC €dCÍÌdCÍÌdCÍÌdCÍÌdC  eC  eC  eCšeCšeC33eC33eC33eC33eC33eCÍLeCÍLeCÍLeCffeC €eCš™eC3³eC3³eCÍÌeC  fC  fC  fC  fC  fCšfC33fCÍLfCÍLfCÍLfCÍLfCÍLfCfffCfffCfffC €fC €fCš™fCš™fCš™fC3³fC3³fCÍÌfCÍÌfCÍÌfCfæfC  gCšgCšgCšgC33gC33gC33gCÍLgCffgCffgCš™gC3³gCÍÌgCÍÌgCÍÌgCÍÌgCÍÌgCÍÌgCÍÌgCfægC  hC  hCšhCšhC33hC33hCÍLhCffhC €hC €hC €hC €hC €hCš™hCš™hC3³hC3³hCfæhCfæhC  iCšiCšiCšiCšiC33iC33iC33iC33iC33iCÍLiCÍLiCÍLiCffiCš™iCš™iCÍÌiCfæiC  jC  jC  jC  jC  jC  jCšjCšjC33jC33jC33jCÍLjCÍLjCÍLjCffjCffjCffjCffjC €jCš™jCÍÌjC  kC  kC  kCškCškCškCškCškCškCÍLkCÍLkCffkCffkCffkCffkCffkCffkCffkC €kC3³kCÍÌkCfækCfækC  lC  lCšlCšlC33lC33lCÍLlCÍLlCÍLlCÍLlCÍLlCÍLlCÍLlCfflC €lC €lCš™lC3³lC3³lCÍÌlCÍÌlCfælCfælC  mCšmC33mC33mC33mC33mC33mCÍLmCÍLmCÍLmC €mC €mCš™mCš™mCš™mC3³mCÍÌmCÍÌmCfæmC  nCšnC33nC33nC33nC33nC33nC33nC33nCÍLnCÍLnCffnCš™nCš™nCš™nCÍÌnCfænCfænCfænCfænCfænC  oC  oC  oCšoCšoCšoCšoCÍLoCÍLoCÍLoCš™oCš™oC3³oC3³oCÍÌoCfæoCfæoCfæoCfæoCfæoC  pCšpCšpCšpCšpCšpCšpCšpC33pC33pC33pC33pC €pC3³pC3³pC3³pCfæpCfæpCšqCšqCšqCšqCšqCšqCšqC33qC33qC33qC33qCÍLqCffqC €qCš™qCš™qC3³qC3³qCÍÌqCÍÌqCÍÌqCÍÌqCfæqCfæqC33rC33rC33rC33rC33rC33rCffrC €rC €rC €rC €rC €rC3³rC3³rCÍÌrCÍÌrCÍÌrCfærCfærCšsCšsCšsCšsCšsCšsC33sC33sCÍLsC €sC €sCš™sCš™sC3³sCÍÌsCfæsC  tC  tC  tCštCštCštCštCštCštCštCÍLtCfftC €tC €tCš™tCš™tC3³tC3³tCfætCfætC  uC  uC  uC  uCšuCšuCšuCšuC33uCÍLuCÍLuCÍLuCffuCffuCffuC3³uC3³uCÍÌuCfæuC  vC  vC  vCšvCšvCšvCšvCšvCšvC33vC33vC33vC33vCÍLvC €vC €vC3³vCÍÌvCÍÌvCÍÌvC  wC  wC  wC  wC  wCšwCšwCšwCšwCšwC33wCÍLwCffwC €wC €wC €wC €wC €wC €wCš™wC3³wCÍÌwCfæwCfæwCfæwC  xC  xCšxC33xCffxCffxCffxCffxCffxC €xC €xC €xC €xC €xCš™xCÍÌxCÍÌxCÍÌxCÍÌxCfæxCfæxCfæxCfæxC33yC33yCffyCffyCffyCffyCffyCffyC €yCš™yCš™yCš™yCš™yC3³yCÍÌyCÍÌyCÍÌyCÍÌyCÍÌyCšzCÍLzCffzCffzCffzCffzCffzCffzC €zCš™zCš™zCš™zCš™zC3³zCÍÌzCÍÌzCÍÌzCÍÌzCÍÌzCÍÌzC  {Cš{C33{C33{C33{C33{C €{C €{C €{C €{C €{C €{Cš™{C3³{C3³{CÍÌ{CÍÌ{CÍÌ{CÍÌ{CÍÌ{C  |C  |Cš|C33|Cff|Cff|C €|C €|Cš™|Cš™|Cš™|Cš™|Cš™|Cš™|C3³|CÍÌ|CÍÌ|Cfæ|Cfæ|C  }C  }Cš}Cš}Cš}C33}C33}CÍL}Cff}Cff}Cff}Cff}Cff}C €}C €}C3³}C3³}C3³}C3³}CÍÌ}Cfæ}Cfæ}C  ~C  ~C  ~Cš~Cš~C33~C33~Cff~Cff~Cff~Cff~Cff~C €~C €~C3³~C3³~C3³~Cfæ~Cfæ~C  C  C  CšCšC33C33C33C33CÍLCffCffC €C €C €C3³CÍÌCÍÌCÍÌCÍÌCfæCfæC  €C  €C  €CÍ€CÍ€Cš€Cf&€Cf&€Cf&€CÍL€CšY€CšY€CšY€Cff€Cff€Cff€Cff€Cff€C3s€C3s€C3s€CÍŒ€CÍŒ€Cš™€Cš™€Cš™€C3³€C3³€C À€C À€C À€C À€C À€C À€C À€C À€C À€CšÙ€CšÙ€C3ó€C  �C  �C  �Cš�Cš�Cš�Cf&�Cf&�Cf&�Cf&�Cf&�Cf&�Cf&�C33�C33�C33�C33�CÍL�CšY�Cff�Cff�C3s�C3s�C €�C €�C €�CÍŒ�CÍŒ�CÍŒ�Cš™�Cš™�Cš™�Cš™�C3³�C3³�C À�CÍÌ�CÍÌ�CšÙ�Cfæ�Cfæ�Cfæ�C3ó�C3ó�C3ó�C3ó�C  ‚CÍ‚Cš‚Cš‚Cš‚Cf&‚Cf&‚Cf&‚C33‚CšY‚CšY‚CšY‚Cff‚Cff‚Cff‚Cff‚C3s‚C €‚CÍŒ‚CÍŒ‚Cš™‚Cš™‚Cš™‚Cf¦‚Cf¦‚Cf¦‚C3³‚C À‚CÍÌ‚CšÙ‚CšÙ‚CšÙ‚Cfæ‚C3ó‚C  ƒC  ƒCÍƒCšƒCšƒCf&ƒCf&ƒCf&ƒC33ƒC33ƒC33ƒC33ƒC33ƒC @ƒC @ƒC @ƒCšYƒCšYƒCšYƒC3sƒC €ƒCš™ƒCš™ƒCf¦ƒCf¦ƒC3³ƒC3³ƒC3³ƒC3³ƒC3³ƒC3³ƒC3³ƒC3³ƒC ÀƒC ÀƒCÍÌƒCfæƒC3óƒC3óƒCÍ„CÍ„Cš„Cš„Cš„Cš„Cš„Cf&„Cf&„Cf&„Cf&„C33„C @„C @„CÍL„CÍL„CÍL„CÍL„CšY„Cff„C €„C €„C €„C €„Cš™„Cš™„Cš™„Cš™„Cf¦„Cf¦„Cf¦„Cf¦„C3³„C3³„C3³„C3³„C3³„C3³„C3³„CÍÌ„C3ó„C3ó„C  …C  …C  …CÍ…CÍ…C¤type§scatter¤name¦Dyna-Q¡xÈ]À  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;E �;E  ;E °;E À;E Ð;E à;E ð;E  <E <E  <E 0<E @<E P<E `<E p<E €<E �<E  <E °<E À<E Ð<E à<E ð<E  =E =E  =E 0=E @=E P=E `=E p=E €=E �=E  =E °=E À=E Ð=E à=E ð=E  >E >E  >E 0>E @>E P>E `>E p>E €>E �>E  >E °>E À>E Ð>E à>E ð>E  ?E ?E  ?E 0?E @?E P?E `?E p?E €?E �?E  ?E °?E À?E Ð?E à?E ð?E  @E @E  @E 0@E @@E P@E `@E p@E €@E �@E  @E °@E À@E Ð@E à@E ð@E  AE AE  AE 0AE @AE PAE `AE pAE €AE �AE  AE °AE ÀAE ÐAE àAE ðAE  BE BE  BE 0BE @BE PBE `BE pBE €BE �BE  BE °BE ÀBE ÐBE àBE ðBE  CE CE  CE 0CE @CE PCE `CE pCE €CE �CE  CE °CE ÀCE ÐCE àCE ðCE  DE DE  DE 0DE @DE PDE `DE pDE €DE �DE  DE °DE ÀDE ÐDE àDE ðDE  EE EE  EE 0EE @EE PEE `EE pEE €EE �EE  EE °EE ÀEE ÐEE àEE ðEE  FE FE  FE 0FE @FE PFE `FE pFE €FE �FE  FE °FE ÀFE ÐFE àFE ðFE  GE GE  GE 0GE @GE PGE `GE pGE €GE �GE  GE °GE ÀGE ÐGE àGE ðGE  HE HE  HE 0HE @HE PHE `HE pHE €HE �HE  HE °HE ÀHE ÐHE àHE ðHE  IE IE  IE 0IE @IE PIE `IE pIE €IE �IE  IE °IE ÀIE ÐIE àIE ðIE  JE JE  JE 0JE @JE PJE `JE pJE €JE �JE  JE °JE ÀJE ÐJE àJE ðJE  KE KE  KE 0KE @KE PKE `KE pKE €KE �KE  KE °KE ÀKE ÐKE àKE ðKE  LE LE  LE 0LE @LE PLE `LE pLE €LE �LE  LE °LE ÀLE ÐLE àLE ðLE  ME ME  ME 0ME @ME PME `ME pME €ME �ME  ME °ME ÀME ÐME àME ðME  NE NE  NE 0NE @NE PNE `NE pNE €NE �NE  NE °NE ÀNE ÐNE àNE ðNE  OE OE  OE 0OE @OE POE `OE pOE €OE �OE  OE °OE ÀOE ÐOE àOE ðOE  PE PE  PE 0PE @PE PPE `PE pPE €PE �PE  PE °PE ÀPE ÐPE àPE ðPE  QE QE  QE 0QE @QE PQE `QE pQE €QE �QE  QE °QE ÀQE ÐQE àQE ðQE  RE RE  RE 0RE @RE PRE `RE pRE €RE �RE  RE °RE ÀRE ÐRE àRE ðRE  SE SE  SE 0SE @SE PSE `SE pSE €SE �SE  SE °SE ÀSE ÐSE àSE ðSE  TE TE  TE 0TE @TE PTE `TE pTE €TE �TE  TE °TE ÀTE ÐTE àTE ðTE  UE UE  UE 0UE @UE PUE `UE pUE €UE �UE  UE °UE ÀUE ÐUE àUE ðUE  VE VE  VE 0VE @VE PVE `VE pVE €VE �VE  VE °VE ÀVE ÐVE àVE ðVE  WE WE  WE 0WE @WE PWE `WE pWE €WE �WE  WE °WE ÀWE ÐWE àWE ðWE  XE XE  XE 0XE @XE PXE `XE pXE €XE �XE  XE °XE ÀXE ÐXE àXE ðXE  YE YE  YE 0YE @YE PYE `YE pYE €YE �YE  YE °YE ÀYE ÐYE àYE ðYE  ZE ZE  ZE 0ZE @ZE PZE `ZE pZE €ZE �ZE  ZE °ZE ÀZE ÐZE àZE ðZE  [E [E  [E 0[E @[E P[E `[E p[E €[E �[E  [E °[E À[E Ð[E à[E ð[E  \E \E  \E 0\E @\E P\E `\E p\E €\E �\E  \E °\E À\E Ð\E à\E ð\E  ]E ]E  ]E 0]E @]E P]E `]E p]E €]E �]E  ]E °]E À]E Ð]E à]E ð]E  ^E ^E  ^E 0^E @^E P^E `^E p^E €^E �^E  ^E °^E À^E Ð^E à^E ð^E  _E _E  _E 0_E @_E P_E `_E p_E €_E �_E  _E °_E À_E Ð_E à_E ð_E  `E `E  `E 0`E @`E P`E ``E p`E €`E �`E  `E °`E À`E Ð`E à`E ð`E  aE aE  aE 0aE @aE PaE `aE paE €aE �aE  aE °aE ÀaE ÐaE àaE ðaE  bE bE  bE 0bE @bE PbE `bE pbE €bE �bE  bE °bE ÀbE ÐbE àbE ðbE  cE cE  cE 0cE @cE PcE `cE pcE €cE �cE  cE °cE ÀcE ÐcE àcE ðcE  dE dE  dE 0dE @dE PdE `dE pdE €dE �dE  dE °dE ÀdE ÐdE àdE ðdE  eE eE  eE 0eE @eE PeE `eE peE €eE �eE  eE °eE ÀeE ÐeE àeE ðeE  fE fE  fE 0fE @fE PfE `fE pfE €fE �fE  fE °fE ÀfE ÐfE àfE ðfE  gE gE  gE 0gE @gE PgE `gE pgE €gE �gE  gE °gE ÀgE ÐgE àgE ðgE  hE hE  hE 0hE @hE PhE `hE phE €hE �hE  hE °hE ÀhE ÐhE àhE ðhE  iE iE  iE 0iE @iE PiE `iE piE €iE �iE  iE °iE ÀiE ÐiE àiE ðiE  jE jE  jE 0jE @jE PjE `jE pjE €jE �jE  jE °jE ÀjE ÐjE àjE ðjE  kE kE  kE 0kE @kE PkE `kE pkE €kE �kE  kE °kE ÀkE ÐkE àkE ðkE  lE lE  lE 0lE @lE PlE `lE plE €lE �lE  lE °lE ÀlE ÐlE àlE ðlE  mE mE  mE 0mE @mE PmE `mE pmE €mE �mE  mE °mE ÀmE ÐmE àmE ðmE  nE nE  nE 0nE @nE PnE `nE pnE €nE �nE  nE °nE ÀnE ÐnE ànE ðnE  oE oE  oE 0oE @oE PoE `oE poE €oE �oE  oE °oE ÀoE ÐoE àoE ðoE  pE pE  pE 0pE @pE PpE `pE ppE €pE �pE  pE °pE ÀpE ÐpE àpE ðpE  qE qE  qE 0qE @qE PqE `qE pqE €qE �qE  qE °qE ÀqE ÐqE àqE ðqE  rE rE  rE 0rE @rE PrE `rE prE €rE �rE  rE °rE ÀrE ÐrE àrE ðrE  sE sE  sE 0sE @sE PsE `sE psE €sE �sE  sE °sE ÀsE ÐsE àsE ðsE  tE tE  tE 0tE @tE PtE `tE ptE €tE �tE  tE °tE ÀtE ÐtE àtE ðtE  uE uE  uE 0uE @uE PuE `uE puE €uE �uE  uE °uE ÀuE ÐuE àuE ðuE  vE vE  vE 0vE @vE PvE `vE pvE €vE �vE  vE °vE ÀvE ÐvE àvE ðvE  wE wE  wE 0wE @wE PwE `wE pwE €wE �wE  wE °wE ÀwE ÐwE àwE ðwE  xE xE  xE 0xE @xE PxE `xE pxE €xE �xE  xE °xE ÀxE ÐxE àxE ðxE  yE yE  yE 0yE @yE PyE `yE pyE €yE �yE  yE °yE ÀyE ÐyE àyE ðyE  zE zE  zE 0zE @zE PzE `zE pzE €zE �zE  zE °zE ÀzE ÐzE àzE ðzE  {E {E  {E 0{E @{E P{E `{E p{E €{E �{E  {E °{E À{E Ð{E à{E ð{E  |E |E  |E 0|E @|E P|E `|E p|E €|E �|E  |E °|E À|E Ð|E à|E ð|E  }E }E  }E 0}E @}E P}E `}E p}E €}E �}E  }E °}E À}E Ð}E à}E ð}E  ~E ~E  ~E 0~E @~E P~E `~E p~E €~E �~E  ~E °~E À~E Ð~E à~E ð~E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  €E €E €E €E  €E (€E 0€E 8€E @€E H€E P€E X€E `€E h€E p€E x€E €€E ˆ€E �€E ˜€E  €E ¨€E °€E ¸€E À€E È€E Ð€E Ø€E à€E è€E ð€E ø€E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‚E ‚E ‚E ‚E  ‚E (‚E 0‚E 8‚E @‚E H‚E P‚E X‚E `‚E h‚E p‚E x‚E €‚E ˆ‚E �‚E ˜‚E  ‚E ¨‚E °‚E ¸‚E À‚E È‚E Ð‚E Ø‚E à‚E è‚E ð‚E ø‚E  ƒE ƒE ƒE ƒE  ƒE (ƒE 0ƒE 8ƒE @ƒE HƒE PƒE XƒE `ƒE hƒE pƒE xƒE €ƒE ˆƒE �ƒE ˜ƒE  ƒE ¨ƒE °ƒE ¸ƒE ÀƒE ÈƒE ÐƒE ØƒE àƒE èƒE ðƒE øƒE  „E „E „E „E  „E („E 0„E 8„E @„E H„E P„E X„E `„E h„E p„E x„E €„E ˆ„E �„E ˜„E  „E ¨„E °„E ¸„E À„E È„E Ð„E Ø„E à„E è„E ð„E ø„E  …E …E …E …E  …E (…E 0…E 8…E @…E H…E P…E X…E `…E h…E p…E x…E €…E ˆ…E �…E ˜…E  …E ¨…E °…E ¸…E À…E È…E Ð…E Ø…E à…E è…E ð…E ø…E  †E †E †E †E  †E (†E 0†E 8†E @†E H†E P†E X†E `†E h†E p†E x†E €†E ˆ†E �†E ˜†E  †E ¨†E °†E ¸†E À†E È†E Ð†E Ø†E à†E è†E ð†E ø†E  ‡E ‡E ‡E ‡E  ‡E (‡E 0‡E 8‡E @‡E H‡E P‡E X‡E `‡E h‡E p‡E x‡E €‡E ˆ‡E �‡E ˜‡E  ‡E ¨‡E °‡E ¸‡E À‡E È‡E Ð‡E Ø‡E à‡E è‡E ð‡E ø‡E  ˆE ˆE ˆE ˆE  ˆE (ˆE 0ˆE 8ˆE @ˆE HˆE PˆE XˆE `ˆE hˆE pˆE xˆE €ˆE ˆˆE �ˆE ˜ˆE  ˆE ¨ˆE °ˆE ¸ˆE ÀˆE ÈˆE ÐˆE ØˆE àˆE èˆE ðˆE øˆE  ‰E ‰E ‰E ‰E  ‰E (‰E 0‰E 8‰E @‰E H‰E P‰E X‰E `‰E h‰E p‰E x‰E €‰E ˆ‰E �‰E ˜‰E  ‰E ¨‰E °‰E ¸‰E À‰E È‰E Ð‰E Ø‰E à‰E è‰E ð‰E ø‰E  ŠE ŠE ŠE ŠE  ŠE (ŠE 0ŠE 8ŠE @ŠE HŠE PŠE XŠE `ŠE hŠE pŠE xŠE €ŠE ˆŠE �ŠE ˜ŠE  ŠE ¨ŠE °ŠE ¸ŠE ÀŠE ÈŠE ÐŠE ØŠE àŠE èŠE ðŠE øŠE  ‹E ‹E ‹E ‹E  ‹E (‹E 0‹E 8‹E @‹E H‹E P‹E X‹E `‹E h‹E p‹E x‹E €‹E ˆ‹E �‹E ˜‹E  ‹E ¨‹E °‹E ¸‹E À‹E È‹E Ð‹E Ø‹E à‹E è‹E ð‹E ø‹E  ŒE ŒE ŒE ŒE  ŒE (ŒE 0ŒE 8ŒE @ŒE HŒE PŒE XŒE `ŒE hŒE pŒE xŒE €ŒE ˆŒE �ŒE ˜ŒE  ŒE ¨ŒE °ŒE ¸ŒE ÀŒE ÈŒE ÐŒE ØŒE àŒE èŒE ðŒE øŒE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ŽE ŽE ŽE ŽE  ŽE (ŽE 0ŽE 8ŽE @ŽE HŽE PŽE XŽE `ŽE hŽE pŽE xŽE €ŽE ˆŽE �ŽE ˜ŽE  ŽE ¨ŽE °ŽE ¸ŽE ÀŽE ÈŽE ÐŽE ØŽE àŽE èŽE ðŽE øŽE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‘E ‘E ‘E ‘E  ‘E (‘E 0‘E 8‘E @‘E H‘E P‘E X‘E `‘E h‘E p‘E x‘E €‘E ˆ‘E �‘E ˜‘E  ‘E ¨‘E °‘E ¸‘E À‘E È‘E Ð‘E Ø‘E à‘E è‘E ð‘E ø‘E  ’E ’E ’E ’E  ’E (’E 0’E 8’E @’E H’E P’E X’E `’E h’E p’E x’E €’E ˆ’E �’E ˜’E  ’E ¨’E °’E ¸’E À’E È’E Ð’E Ø’E à’E è’E ð’E ø’E  “E “E “E “E  “E (“E 0“E 8“E @“E H“E P“E X“E `“E h“E p“E x“E €“E ˆ“E �“E ˜“E  “E ¨“E °“E ¸“E À“E È“E Ð“E Ø“E à“E è“E ð“E ø“E  ”E ”E ”E ”E  ”E (”E 0”E 8”E @”E H”E P”E X”E `”E h”E p”E x”E €”E ˆ”E �”E ˜”E  ”E ¨”E °”E ¸”E À”E È”E Ð”E Ø”E à”E è”E ð”E ø”E  •E •E •E •E  •E (•E 0•E 8•E @•E H•E P•E X•E `•E h•E p•E x•E €•E ˆ•E �•E ˜•E  •E ¨•E °•E ¸•E À•E È•E Ð•E Ø•E à•E è•E ð•E ø•E  –E –E –E –E  –E (–E 0–E 8–E @–E H–E P–E X–E `–E h–E p–E x–E €–E ˆ–E �–E ˜–E  –E ¨–E °–E ¸–E À–E È–E Ð–E Ø–E à–E è–E ð–E ø–E  —E —E —E —E  —E (—E 0—E 8—E @—E H—E P—E X—E `—E h—E p—E x—E €—E ˆ—E �—E ˜—E  —E ¨—E °—E ¸—E À—E È—E Ð—E Ø—E à—E è—E ð—E ø—E  ˜E ˜E ˜E ˜E  ˜E (˜E 0˜E 8˜E @˜E H˜E P˜E X˜E `˜E h˜E p˜E x˜E €˜E ˆ˜E �˜E ˜˜E  ˜E ¨˜E °˜E ¸˜E À˜E È˜E Ð˜E Ø˜E à˜E è˜E ð˜E ø˜E  ™E ™E ™E ™E  ™E (™E 0™E 8™E @™E H™E P™E X™E `™E h™E p™E x™E €™E ˆ™E �™E ˜™E  ™E ¨™E °™E ¸™E À™E È™E Ð™E Ø™E à™E è™E ð™E ø™E  šE šE šE šE  šE (šE 0šE 8šE @šE HšE PšE XšE `šE hšE pšE xšE €šE ˆšE �šE ˜šE  šE ¨šE °šE ¸šE ÀšE ÈšE ÐšE ØšE àšE èšE ðšE øšE  ›E ›E ›E ›E  ›E (›E 0›E 8›E @›E H›E P›E X›E `›E h›E p›E x›E €›E ˆ›E �›E ˜›E  ›E ¨›E °›E ¸›E À›E È›E Ð›E Ø›E à›E è›E ð›E ø›E  œE œE œE œE  œE (œE 0œE 8œE @œE HœE PœE XœE `œE hœE pœE xœE €œE ˆœE �œE ˜œE  œE ¨œE °œE ¸œE ÀœE ÈœE ÐœE ØœE àœE èœE ðœE øœE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  žE žE žE žE  žE (žE 0žE 8žE @žE HžE PžE XžE `žE hžE pžE xžE €žE ˆžE �žE ˜žE  žE ¨žE °žE ¸žE ÀžE ÈžE ÐžE ØžE àžE èžE ðžE øžE  ŸE ŸE ŸE ŸE  ŸE (ŸE 0ŸE 8ŸE @ŸE HŸE PŸE XŸE `ŸE hŸE pŸE xŸE €ŸE ˆŸE �ŸE ˜ŸE  ŸE ¨ŸE °ŸE ¸ŸE ÀŸE ÈŸE ÐŸE ØŸE àŸE èŸE ðŸE øŸE   E  E  E  E   E ( E 0 E 8 E @ E H E P E X E ` E h E p E x E € E ˆ E � E ˜ E   E ¨ E ° E ¸ E À E È E Ð E Ø E à E è E ð E ø E  ¡E ¡E ¡E ¡E  ¡E (¡E 0¡E 8¡E @¡E H¡E P¡E X¡E `¡E h¡E p¡E x¡E €¡E ˆ¡E �¡E ˜¡E  ¡E ¨¡E °¡E ¸¡E À¡E È¡E Ð¡E Ø¡E à¡E è¡E ð¡E ø¡E  ¢E ¢E ¢E ¢E  ¢E (¢E 0¢E 8¢E @¢E H¢E P¢E X¢E `¢E h¢E p¢E x¢E €¢E ˆ¢E �¢E ˜¢E  ¢E ¨¢E °¢E ¸¢E À¢E È¢E Ð¢E Ø¢E à¢E è¢E ð¢E ø¢E  £E £E £E £E  £E (£E 0£E 8£E @£E H£E P£E X£E `£E h£E p£E x£E €£E ˆ£E �£E ˜£E  £E ¨£E °£E ¸£E À£E È£E Ð£E Ø£E à£E è£E ð£E ø£E  ¤E ¤E ¤E ¤E  ¤E (¤E 0¤E 8¤E @¤E H¤E P¤E X¤E `¤E h¤E p¤E x¤E €¤E ˆ¤E �¤E ˜¤E  ¤E ¨¤E °¤E ¸¤E À¤E È¤E Ð¤E Ø¤E à¤E è¤E ð¤E ø¤E  ¥E ¥E ¥E ¥E  ¥E (¥E 0¥E 8¥E @¥E H¥E P¥E X¥E `¥E h¥E p¥E x¥E €¥E ˆ¥E �¥E ˜¥E  ¥E ¨¥E °¥E ¸¥E À¥E È¥E Ð¥E Ø¥E à¥E è¥E ð¥E ø¥E  ¦E ¦E ¦E ¦E  ¦E (¦E 0¦E 8¦E @¦E H¦E P¦E X¦E `¦E h¦E p¦E x¦E €¦E ˆ¦E �¦E ˜¦E  ¦E ¨¦E °¦E ¸¦E À¦E È¦E Ð¦E Ø¦E à¦E è¦E ð¦E ø¦E  §E §E §E §E  §E (§E 0§E 8§E @§E H§E P§E X§E `§E h§E p§E x§E €§E ˆ§E �§E ˜§E  §E ¨§E °§E ¸§E À§E È§E Ð§E Ø§E à§E è§E ð§E ø§E  ¨E ¨E ¨E ¨E  ¨E (¨E 0¨E 8¨E @¨E H¨E P¨E X¨E `¨E h¨E p¨E x¨E €¨E ˆ¨E �¨E ˜¨E  ¨E ¨¨E °¨E ¸¨E À¨E È¨E Ð¨E Ø¨E à¨E è¨E ð¨E ø¨E  ©E ©E ©E ©E  ©E (©E 0©E 8©E @©E H©E P©E X©E `©E h©E p©E x©E €©E ˆ©E �©E ˜©E  ©E ¨©E °©E ¸©E À©E È©E Ð©E Ø©E à©E è©E ð©E ø©E  ªE ªE ªE ªE  ªE (ªE 0ªE 8ªE @ªE HªE PªE XªE `ªE hªE pªE xªE €ªE ˆªE �ªE ˜ªE  ªE ¨ªE °ªE ¸ªE ÀªE ÈªE ÐªE ØªE àªE èªE ðªE øªE  «E «E «E «E  «E («E 0«E 8«E @«E H«E P«E X«E `«E h«E p«E x«E €«E ˆ«E �«E ˜«E  «E ¨«E °«E ¸«E À«E È«E Ð«E Ø«E à«E è«E ð«E ø«E  ¬E ¬E ¬E ¬E  ¬E (¬E 0¬E 8¬E @¬E H¬E P¬E X¬E `¬E h¬E p¬E x¬E €¬E ˆ¬E �¬E ˜¬E  ¬E ¨¬E °¬E ¸¬E À¬E È¬E Ð¬E Ø¬E à¬E è¬E ð¬E ø¬E  ­E ­E ­E ­E  ­E (­E 0­E 8­E @­E H­E P­E X­E `­E h­E p­E x­E €­E ˆ­E �­E ˜­E  ­E ¨­E °­E ¸­E À­E È­E Ð­E Ø­E à­E è­E ð­E ø­E  ®E ®E ®E ®E  ®E (®E 0®E 8®E @®E H®E P®E X®E `®E h®E p®E x®E €®E ˆ®E �®E ˜®E  ®E ¨®E °®E ¸®E À®E È®E Ð®E Ø®E à®E è®E ð®E ø®E  ¯E ¯E ¯E ¯E  ¯E (¯E 0¯E 8¯E @¯E H¯E P¯E X¯E `¯E h¯E p¯E x¯E €¯E ˆ¯E �¯E ˜¯E  ¯E ¨¯E °¯E ¸¯E À¯E È¯E Ð¯E Ø¯E à¯E è¯E ð¯E ø¯E  °E °E °E °E  °E (°E 0°E 8°E @°E H°E P°E X°E `°E h°E p°E x°E €°E ˆ°E �°E ˜°E  °E ¨°E °°E ¸°E À°E È°E Ð°E Ø°E à°E è°E ð°E ø°E  ±E ±E ±E ±E  ±E (±E 0±E 8±E @±E H±E P±E X±E `±E h±E p±E x±E €±E ˆ±E �±E ˜±E  ±E ¨±E °±E ¸±E À±E È±E Ð±E Ø±E à±E è±E ð±E ø±E  ²E ²E ²E ²E  ²E (²E 0²E 8²E @²E H²E P²E X²E `²E h²E p²E x²E €²E ˆ²E �²E ˜²E  ²E ¨²E °²E ¸²E À²E È²E Ð²E Ø²E à²E è²E ð²E ø²E  ³E ³E ³E ³E  ³E (³E 0³E 8³E @³E H³E P³E X³E `³E h³E p³E x³E €³E ˆ³E �³E ˜³E  ³E ¨³E °³E ¸³E À³E È³E Ð³E Ø³E à³E è³E ð³E ø³E  ´E ´E ´E ´E  ´E (´E 0´E 8´E @´E H´E P´E X´E `´E h´E p´E x´E €´E ˆ´E �´E ˜´E  ´E ¨´E °´E ¸´E À´E È´E Ð´E Ø´E à´E è´E ð´E ø´E  µE µE µE µE  µE (µE 0µE 8µE @µE HµE PµE XµE `µE hµE pµE xµE €µE ˆµE �µE ˜µE  µE ¨µE °µE ¸µE ÀµE ÈµE ÐµE ØµE àµE èµE ðµE øµE  ¶E ¶E ¶E ¶E  ¶E (¶E 0¶E 8¶E @¶E H¶E P¶E X¶E `¶E h¶E p¶E x¶E €¶E ˆ¶E �¶E ˜¶E  ¶E ¨¶E °¶E ¸¶E À¶E È¶E Ð¶E Ø¶E à¶E è¶E ð¶E ø¶E  ·E ·E ·E ·E  ·E (·E 0·E 8·E @·E H·E P·E X·E `·E h·E p·E x·E €·E ˆ·E �·E ˜·E  ·E ¨·E °·E ¸·E À·E È·E Ð·E Ø·E à·E è·E ð·E ø·E  ¸E ¸E ¸E ¸E  ¸E (¸E 0¸E 8¸E @¸E H¸E P¸E X¸E `¸E h¸E p¸E x¸E €¸E ˆ¸E �¸E ˜¸E  ¸E ¨¸E °¸E ¸¸E À¸E È¸E Ð¸E Ø¸E à¸E è¸E ð¸E ø¸E  ¹E ¹E ¹E ¹E  ¹E (¹E 0¹E 8¹E @¹E H¹E P¹E X¹E `¹E h¹E p¹E x¹E €¹E ˆ¹E �¹E ˜¹E  ¹E ¨¹E °¹E ¸¹E À¹E È¹E Ð¹E Ø¹E à¹E è¹E ð¹E ø¹E  ºE ºE ºE ºE  ºE (ºE 0ºE 8ºE @ºE HºE PºE XºE `ºE hºE pºE xºE €ºE ˆºE �ºE ˜ºE  ºE ¨ºE °ºE ¸ºE ÀºE ÈºE ÐºE ØºE àºE èºE ðºE øºE  »E »E »E »E  »E (»E 0»E 8»E @»E H»E P»E X»E `»E h»E p»E x»E €»E„¡yÈ]À                                                                                                                                                                                                                                                                                                                    ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?333?333?333?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?fff?fff?fff?fff?fff?fff?fff?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?ÍÌŒ?ÍÌŒ?ÍÌŒ?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?ff¦?ff¦?ff¦?  À?  À?  À?  À?š™Ù?š™Ù?š™Ù?š™Ù?š™Ù?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?33ó?33ó?33ó?33ó?33ó?   @   @   @   @ff@ÍÌ@ÍÌ@ÍÌ@33@33@33@33@33@š™@š™@   @   @   @   @   @   @   @ff&@ÍÌ,@333@333@333@š™9@š™9@š™9@š™9@š™9@  @@  @@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@33S@33S@33S@š™Y@  `@  `@fff@fff@33s@33s@33s@33s@š™y@š™y@  €@  €@  €@  €@  €@  €@  €@  €@ff†@ff†@ÍÌŒ@ÍÌŒ@  �@  �@33“@33“@ff–@ff–@ff–@š™™@š™™@š™™@š™™@š™™@š™™@š™™@š™™@š™™@ÍÌœ@   @   @   @   @   @33£@ÍÌ¬@ÍÌ¬@  °@  °@  °@  °@  °@  °@  °@  °@  °@33³@33³@ff¶@ff¶@ff¶@š™¹@š™¹@š™¹@ÍÌ¼@33Ã@33Ã@33Ã@33Ã@33Ã@š™É@š™É@š™É@ÍÌÌ@ÍÌÌ@ÍÌÌ@ÍÌÌ@  Ð@  Ð@33Ó@33Ó@33Ó@33Ó@33Ó@ÍÌÜ@  à@  à@33ã@ffæ@ffæ@ffæ@š™é@ÍÌì@ÍÌì@ÍÌì@  ð@33ó@33ó@33ó@33ó@33ó@ffö@š™ù@š™ù@š™ù@š™ù@š™ù@ÍÌü@   A33A33A33A33AÍÌAÍÌAÍÌA  Aš™	Aš™	Aš™	A33A33A33A33A33AÍÌAÍÌAÍÌAÍÌAffA  A  A  A33A33A33A33AÍÌAÍÌA  A  A  A  Aš™A33A33A33A33AÍÌAffAffAš™!Aš™!Aš™!Aš™!Aš™!Aš™!A33#AÍÌ$AÍÌ$Aff&Aff&Aff&A  (A33+A33+A33+A33+A33+AÍÌ,Aff.A  0Aš™1Aš™1A333A333A333A333A333AÍÌ4Aff6A  8A  8Aš™9Aš™9Aš™9Aš™9A33;A33;Aff>Aš™AAš™AA33CA33CA33CAÍÌDAÍÌDAÍÌDAÍÌDAÍÌDAÍÌDAffFAffFA  HA  HA  HAš™IA33KAffNAffNAffNA  PAš™QAš™QAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAffVA  XA  XA  XAš™YA33[A33[A33[AÍÌ\Aff^A  `A  `Aš™aA33cA33cA33cA33cAÍÌdAÍÌdAÍÌdAÍÌdAÍÌdA  hA  hA33kAÍÌlAÍÌlAÍÌlAffnA  pAš™qAš™qAš™qAš™qAš™qAš™qA33sA33sA33sA33sA33sAÍÌtAffvAffvAffvA  xAÍÌ|Aff~Aff~Aff~A  €AÍÌ€AÍÌ€AÍÌ€AÍÌ€AÍÌ€AÍÌ€Aš™�Aš™�Aff‚Aff‚Aff‚A33ƒA33ƒA33ƒA  „A  „Aš™…Aš™…Aff†Aff†Aff†Aff†Aff†A33‡A33‡A  ˆAÍÌˆAÍÌˆAÍÌˆAÍÌˆAffŠAffŠAffŠAffŠA33‹A33‹A33‹A  ŒAÍÌŒAffŽAffŽA33�A33�A  �A  �A  �A  �A  �AÍÌ�Aš™‘Aš™‘Aš™‘Aš™‘A33“A33“A33“A33“A33“A33“AÍÌ”Aš™•Aff–Aff–A  ˜A  ˜A  ˜A  ˜A  ˜A  ˜AÍÌ˜AÍÌ˜AÍÌ˜AÍÌ˜AffšAffšA  œA  œA  œAÍÌœAš™�Aš™�Aš™�Aš™�Aš™�A33ŸA33ŸA33ŸAÍÌ AÍÌ AÍÌ AÍÌ AÍÌ AÍÌ Aff¢A33£A33£A33£A33£AÍÌ¤Aš™¥Aš™¥Aš™¥Aš™¥Aš™¥A33§A33§A  ¨A  ¨AÍÌ¨AÍÌ¨AÍÌ¨Aš™©Aš™©AffªAffªAffªA33«A33«A  ¬AÍÌ¬AÍÌ¬AÍÌ¬AÍÌ¬AÍÌ¬AÍÌ¬Aš™­Aš™­Aff®A  °A  °A  °A  °A  °A  °AÍÌ°Aff²Aff²A33³A33³A  ´A  ´A  ´A  ´A  ´A  ´A  ´A  ´AÍÌ´Aff¶Aff¶A33·A33·A33·A  ¸AÍÌ¸AffºAffºA33»A33»A33»A33»A33»A  ¼A  ¼A  ¼A  ¼A  ¼AÍÌ¼AÍÌ¼AÍÌ¼Aff¾A33¿A33¿A33¿A33¿AÍÌÀAÍÌÀAš™ÁAš™ÁAffÂA  ÄA  ÄA  ÄA  ÄAÍÌÄAÍÌÄAÍÌÄAÍÌÄAš™ÅAš™ÅAš™ÅAffÆA33ÇA  ÈA  ÈAÍÌÈAš™ÉAffÊAffÊA33ËA  ÌA  ÌA  ÌA  ÌAÍÌÌAÍÌÌAÍÌÌAÍÌÌAš™ÍAš™ÍAš™ÍAš™ÍAš™ÍAš™ÍAš™ÍA33ÏA  ÐAš™ÑAš™ÑAš™ÑAffÒA  ÔA  ÔA  ÔA  ÔAÍÌÔAÍÌÔAš™ÕAš™ÕAš™ÕAš™ÕAffÖAffÖA33×A33×A33×A33×A33×A  ØA  ØAÍÌØAš™ÙAffÚA33ÛA  ÜA  ÜA  ÜA  ÜAÍÌÜAš™ÝAš™ÝA33ßA33ßA33ßA33ßA33ßA33ßA  àA  àAš™áAš™áAš™áAffâAffâAffâAffâAÍÌäAš™åAš™åAš™åAffæAffæAffæAffæAffæA  èAÍÌèAÍÌèAš™éAš™éAš™éAffêAffêAffêAffêA33ëA  ìAÍÌìAÍÌìAffîAffîA33ïA33ïA33ïA33ïA  ðA  ðAÍÌðAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñAš™ñA33óA33óA33óAÍÌôAš™õA33÷A33÷A33÷A33÷A33÷A33÷A33÷A33÷AÍÌøAÍÌøAÍÌøAÍÌøAÍÌøAÍÌøAš™ùAffúAffúA33ûA  üAš™ýAš™ýAffþAffþAffþAffþAffþA33ÿA33ÿA33ÿAff Bff Bff Bff Bff Bff B33B  B  BffB33B33B33B33B33B33B33B33Bš™Bš™Bš™Bš™Bš™B  BÍÌBš™Bš™Bš™BffBÍÌBÍÌBÍÌBÍÌB33B33B33B33B33B33Bš™Bš™BffBffBffB33	B33	Bš™	B  
B  
Bff
Bff
Bff
Bff
BÍÌ
B33B33Bš™Bš™Bš™Bš™Bš™Bš™B  B  B  BffBÍÌBÍÌB33BffBffBffBÍÌB33Bš™Bš™Bš™Bš™Bš™Bš™B  B  B  B  B  BffBffBffB33Bš™B  BÍÌBÍÌBÍÌBÍÌB33B33B33B33B33B  B  B  BffBffBffB33Bš™Bš™Bš™B  BffB33B33B33B33B33B33Bš™Bš™Bš™Bš™Bš™B  BÍÌBÍÌB33Bš™Bš™Bš™B  B  BffBffB33B33B33B33B33B33Bš™Bš™BffBffBÍÌBÍÌB33Bš™B  B  B  B  BffBffBffBffBÍÌB33B33B33Bš™Bš™Bš™Bš™B   BÍÌ B33!B33!Bš™!B  "B  "B  "Bff"BÍÌ"B33#B33#B33#B33#B33#B33#Bš™#Bš™#Bš™#Bš™#B  $BÍÌ$Bš™%Bš™%Bš™%Bš™%Bš™%B  &Bff&Bff&BÍÌ&BÍÌ&B33'B33'Bš™'Bš™'Bš™'Bš™'Bš™'B  (Bff(Bff(BÍÌ(B33)Bš™)Bff*Bff*Bff*Bff*BÍÌ*BÍÌ*BÍÌ*B33+B33+B33+B33+Bš™+Bš™+Bš™+Bff,Bff,Bff,Bff,BÍÌ,B33-Bff.Bff.Bff.BÍÌ.B33/B33/B33/B33/B33/B33/B33/Bš™/B  0B  0B  0B  0B  0B  0Bff0B331B331B  2Bff2Bff2Bff2BÍÌ2BÍÌ2BÍÌ2B333B333B333Bš™3Bš™3B  4B  4BÍÌ4BÍÌ4Bš™5Bš™5Bš™5Bš™5Bš™5B  6Bff6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6B337Bš™7B  8Bff8B339B339B339B339Bš™9Bff:Bff:BÍÌ:BÍÌ:BÍÌ:BÍÌ:BÍÌ:BÍÌ:BÍÌ:BÍÌ:BÍÌ:B33;Bš™;Bš™;B  <Bff<Bff<Bff<B33=B33=Bš™=Bff>Bff>Bff>Bff>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>B33?Bš™?Bš™?Bš™?Bš™?B  @B  @BÍÌ@B33ABš™ABš™ABš™ABš™ABffBBffBBÍÌBBÍÌBBÍÌBB33CB33CB33CB33CB33CBš™CBš™CBš™CB  DB  DBffDBÍÌDBš™EBš™EB  FB  FB  FB  FBÍÌFBÍÌFBÍÌFB33GB33GB33GB33GB33GB33GB33GBš™GB  HBÍÌHBÍÌHB33IB33IB33IB33IB  JB  JBffJBffJBÍÌJBÍÌJBÍÌJBÍÌJBÍÌJB33KB33KBš™KB  LB  LBÍÌLBÍÌLBÍÌLB33MB33MB33MBš™MB  NBffNBffNBÍÌNBÍÌNBÍÌNBš™OB  PB  PB  PB  PB  PB  PB  PB  PBffPBffPBffPBffPBÍÌPBš™QB  RBffRBÍÌRBÍÌRB33SBš™SB  TB  TB  TB  TB  TB  TB  TB  TBffTBffTBÍÌTBÍÌTBÍÌTBÍÌTB33UB33UB33UBffVBÍÌVB33WBš™WBš™WBš™WBš™WBš™WB  XB  XB  XB  XB  XBffXBÍÌXBÍÌXBÍÌXBÍÌXB33YB33YB33YBffZBffZBÍÌZBÍÌZB33[B33[B33[Bš™[Bš™[Bš™[Bš™[Bš™[Bš™[B  \B  \Bff\B33]Bš™]Bš™]Bš™]Bš™]B  ^B  ^Bff^Bff^Bff^BÍÌ^BÍÌ^BÍÌ^B33_B33_B33_Bš™_Bff`Bff`Bff`Bff`B33aBš™aB  bB  bB  bB  bB  bB  bB  bBffbBÍÌbB33cB33cB33cBš™cBš™cB  dB  dB  dB  dB  dBffdB33eB33eB33eB33eB33eBš™eBfffBÍÌfBÍÌfB33gB33gBš™gBš™gB  hB  hB  hB  hBffhBÍÌhBÍÌhBÍÌhBÍÌhBÍÌhBÍÌhBš™iBš™iBš™iBš™iB  jBffjBffjBÍÌjBš™kBš™kB  lB  lB  lB  lBÍÌlBÍÌlB33mB33mB33mB33mBš™mBffnBffnBffnBffnBffnBffnBÍÌnB33oBš™oBš™oBš™oBffpBffpBÍÌpBÍÌpBÍÌpBÍÌpBÍÌpBÍÌpB33qB  rB  rBffrBffrBÍÌrBÍÌrBÍÌrBÍÌrBÍÌrBÍÌrBš™sB  tBfftBfftBfftBfftBfftBÍÌtBÍÌtB33uBš™uBš™uBffvBffvBffvBÍÌvB33wB33wBš™wBš™wBš™wBš™wBš™wB  xB  xB  xB  xBffxB33yB33yBš™yBš™yBš™yB  zBffzBffzBÍÌzB33{B33{B33{Bš™{Bš™{Bš™{Bš™{Bš™{B  |BÍÌ|BÍÌ|BÍÌ|B33}B33}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bff~Bff~BÍÌ~B33B33Bš™Bš™B33€Bff€Bff€Bff€Bš™€Bš™€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€B33�B33�Bš™�BÍÌ�B  ‚Bff‚Bff‚Bff‚Bff‚Bff‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚BÍÌ‚B  ƒB33ƒB33ƒB33ƒB33ƒBffƒBš™ƒBÍÌƒBÍÌƒBÍÌƒBÍÌƒBÍÌƒB  „Bff„Bff„Bff„Bš™„BÍÌ„B33…B33…B33…B33…B33…Bff…Bff…Bš™…Bš™…Bš™…Bš™…BÍÌ…BÍÌ…B  †B33†Bff†BÍÌ†BÍÌ†B  ‡B  ‡B33‡B33‡B33‡B33‡B33‡B33‡Bff‡Bff‡Bš™‡BÍÌ‡BÍÌ‡BÍÌ‡B  ˆB33ˆB33ˆB33ˆBffˆBffˆBffˆBš™ˆBš™ˆB  ‰B  ‰B33‰B33‰Bff‰Bš™‰Bš™‰BÍÌ‰BÍÌ‰B  ŠB  ŠBffŠBffŠBffŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠB  ‹B  ‹B33‹B33‹B33‹Bff‹Bff‹Bff‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹B33ŒB33ŒB33ŒBffŒBffŒBš™ŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒB  �B33�Bff�Bff�Bff�Bff�Bff�BÍÌ�B  ŽB  ŽB  ŽB33ŽB33ŽBffŽBffŽBš™ŽBš™ŽBš™ŽBš™ŽBÍÌŽBÍÌŽB  �B33�Bff�Bff�Bš™�BÍÌ�BÍÌ�B  �B  �B  �Bff�Bff�Bff�Bff�Bff�Bff�Bš™�Bš™�BÍÌ�BÍÌ�B  ‘B  ‘B  ‘B  ‘B  ‘B  ‘B  ‘Bš™‘BÍÌ‘BÍÌ‘B  ’B  ’B33’Bff’Bff’Bff’Bff’Bš™’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’B  “B  “B  “Bff“Bš™“B  ”B  ”B33”B33”B33”B33”B33”Bff”Bff”Bff”Bš™”BÍÌ”B  •B  •Bff•Bff•Bff•Bff•BÍÌ•BÍÌ•BÍÌ•BÍÌ•BÍÌ•BÍÌ•B  –B33–B33–Bff–Bff–Bš™–B  —B  —B  —B  —Bff—Bš™—Bš™—Bš™—Bš™—BÍÌ—BÍÌ—BÍÌ—B  ˜B33˜B33˜B33˜B33˜Bff˜Bff˜Bš™˜Bš™˜Bš™˜BÍÌ˜Bff™Bš™™Bš™™Bš™™Bš™™Bš™™BÍÌ™B  šB  šB33šB33šB33šB33šB33šB33šB33šBffšBš™šBš™šBš™šB  ›B33›Bff›Bff›Bff›BÍÌ›BÍÌ›B33œB33œB33œB33œB33œB33œB33œB33œB33œBffœBffœBš™œBÍÌœB  �B33�B33�Bff�Bš™�Bš™�BÍÌ�B  žB  žB  žB  žB  žB33žB33žB33žB33žBš™žBš™žBÍÌžB33ŸB33ŸB33ŸB33ŸB33ŸB33ŸBš™ŸBÍÌŸB   B   B   B   B   B33 B33 Bff Bff Bff Bš™ Bš™ B  ¡B33¡B33¡B33¡B33¡B33¡Bff¡Bš™¡BÍÌ¡B  ¢B33¢B33¢B33¢Bff¢Bš™¢Bš™¢BÍÌ¢B  £B  £B  £B  £B33£B33£B33£B33£B33£Bff£Bš™£Bš™£BÍÌ£B  ¤B  ¤B  ¤B  ¤Bff¤BÍÌ¤BÍÌ¤BÍÌ¤B  ¥B33¥B33¥B33¥B33¥B33¥Bff¥Bff¥Bff¥Bš™¥BÍÌ¥BÍÌ¥BÍÌ¥B33¦B33¦Bš™¦Bš™¦Bš™¦BÍÌ¦B  §B  §B33§B33§B33§Bff§Bff§Bff§Bff§Bff§Bš™§BÍÌ§BÍÌ§BÍÌ§BÍÌ§B  ¨B33¨Bff¨Bff¨Bff¨BÍÌ¨B  ©B  ©B  ©B33©Bff©Bff©Bff©Bš™©Bš™©Bš™©Bš™©Bš™©BÍÌ©BÍÌ©B  ªB33ªBffªBš™ªBÍÌªB33«B33«B33«Bff«Bff«Bff«Bš™«Bš™«Bš™«Bš™«Bš™«BÍÌ«BÍÌ«B  ¬B  ¬Bš™¬BÍÌ¬BÍÌ¬BÍÌ¬BÍÌ¬B  ­B  ­B33­B33­B33­B33­B33­Bff­Bff­Bš™­Bš™­BÍÌ­B  ®B  ®B33®B33®B33®B33®Bff®B  ¯B  ¯B  ¯B  ¯B  ¯B  ¯B33¯B33¯Bff¯Bš™¯BÍÌ¯BÍÌ¯B  °B  °B  °B  °B  °B33°Bff°Bff°Bš™°Bš™°Bš™°Bš™°BÍÌ°BÍÌ°B  ±B  ±B  ±Bff±Bff±Bff±Bš™±Bš™±Bš™±Bš™±BÍÌ±B  ²B33²Bff²Bff²Bš™²Bš™²Bš™²Bš™²Bš™²Bš™²BÍÌ²B33³Bff³Bff³Bš™³Bš™³Bš™³Bš™³Bš™³Bš™³BÍÌ³B  ´B33´B33´B33´Bff´Bff´Bff´Bš™´Bš™´B  µB  µB  µB  µB33µB33µB33µBffµBš™µBÍÌµB  ¶B  ¶B  ¶B  ¶Bff¶Bff¶Bff¶Bš™¶Bš™¶BÍÌ¶BÍÌ¶BÍÌ¶BÍÌ¶B  ·B  ·B  ·B33·B33·B33·B33·Bš™·Bš™·Bš™·BÍÌ·B33¸Bff¸Bff¸Bff¸BÍÌ¸BÍÌ¸BÍÌ¸B  ¹B  ¹B  ¹B  ¹B33¹B33¹Bff¹Bff¹Bff¹Bff¹Bš™¹B  ºB  ºB33ºB33ºB33ºBš™ºBš™ºBÍÌºBÍÌºB  »B  »B  »B  »B  »B33»Bff»Bff»Bff»Bš™»Bš™»BÍÌ»B  ¼B33¼Bff¼Bff¼Bff¼Bff¼Bff¼Bff¼Bš™¼BÍÌ¼B  ½B  ½B  ½B  ½Bff½Bš™½Bš™½BÍÌ½BÍÌ½B33¾B33¾B33¾Bff¾Bff¾Bš™¾BÍÌ¾BÍÌ¾BÍÌ¾B  ¿B  ¿B  ¿B33¿B33¿Bš™¿Bš™¿Bš™¿B  ÀB33ÀB33ÀB33ÀB33ÀB33ÀB33ÀB33ÀBš™ÀBš™ÀBš™ÀBš™ÀB  ÁB33ÁB33ÁB33ÁBš™ÁBš™ÁBš™ÁB  ÂB33ÂB33ÂB33ÂB33ÂB33ÂB33ÂB33ÂBffÂBffÂBš™ÂBš™ÂB  ÃB  ÃB33ÃBffÃBš™ÃBš™ÃBš™ÃBÍÌÃBÍÌÃB  ÄB  ÄB  ÄB  ÄB  ÄB  ÄB  ÄB33ÄB33ÄB33ÄB33ÄB33ÄBffÄBš™ÄBÍÌÄBÍÌÄB33ÅBffÅBš™ÅBš™ÅBš™ÅBš™ÅBš™ÅBÍÌÅBÍÌÅBÍÌÅBÍÌÅBÍÌÅBÍÌÅBÍÌÅBÍÌÅBÍÌÅBÍÌÅB33ÆBffÆBffÆBš™ÆBÍÌÆBÍÌÆB  ÇB  ÇB33ÇBš™ÇBš™ÇBš™ÇBš™ÇBš™ÇBš™ÇBš™ÇB  ÈB  ÈB  ÈB  ÈBffÈBš™ÈBš™ÈBÍÌÈB  ÉB  ÉB33ÉB33ÉB33ÉBffÉBffÉBffÉBffÉBš™ÉBÍÌÉBÍÌÉBÍÌÉB  ÊB  ÊB  ÊB33ÊB33ÊBÍÌÊB  ËB33ËB33ËB33ËBffËBffËBffËBffËBÍÌËBÍÌËBÍÌËBÍÌËBÍÌËBÍÌËBÍÌËBÍÌËB  ÌB33ÌBÍÌÌBÍÌÌBÍÌÌBÍÌÌB  ÍB  ÍB  ÍB33ÍBffÍBffÍBš™ÍBš™ÍBš™ÍBš™ÍBš™ÍBš™ÍBÍÌÍB  ÎBffÎBffÎBš™ÎBÍÌÎBÍÌÎB  ÏB  ÏB  ÏB  ÏB  ÏB33ÏB33ÏB33ÏB33ÏBffÏBš™ÏBÍÌÏB33ÐB33ÐB33ÐB33ÐBffÐBš™ÐBš™ÐB  ÑB  ÑB  ÑB  ÑB33ÑB33ÑB33ÑB33ÑB33ÑBffÑBffÑBš™ÑBš™ÑBÍÌÑB  ÒB  ÒB33ÒBffÒBffÒBÍÌÒBÍÌÒBÍÌÒBÍÌÒB  ÓB33ÓB33ÓB33ÓBffÓBffÓBffÓBffÓBš™ÓBš™ÓBš™ÓBÍÌÓBÍÌÓB  ÔB33ÔB33ÔB33ÔB33ÔB33ÔBffÔBš™ÔBš™ÔBÍÌÔBÍÌÔBÍÌÔB  ÕB  ÕB33ÕB33ÕBffÕBš™ÕB  ÖB  ÖB  ÖB33ÖB33ÖB33ÖB33ÖB33ÖB33ÖB33ÖBffÖBffÖBffÖBš™ÖB  ×B33×B33×B33×B33×Bff×Bff×B  ØB33ØB33ØB33ØB33ØB33ØB33ØB33ØB33ØB33ØB33ØB33ØBš™ØBÍÌØB  ÙB33ÙBffÙBffÙBffÙBffÙBffÙBÍÌÙBÍÌÙB  ÚB  ÚB  ÚB  ÚB  ÚBffÚBš™ÚBš™ÚBš™ÚBÍÌÚB  ÛB33ÛB33ÛBffÛBffÛBffÛBš™ÛBš™ÛBš™ÛBš™ÛBš™ÛBÍÌÛB  ÜB33ÜB33ÜB33ÜBffÜBffÜBffÜBÍÌÜBÍÌÜBÍÌÜBÍÌÜB33ÝB33ÝB33ÝB33ÝB33ÝB33ÝB33ÝBš™ÝBš™ÝBÍÌÝBÍÌÝBÍÌÝB33ÞB33ÞB33ÞBš™ÞBš™ÞBÍÌÞBÍÌÞBÍÌÞB  ßB  ßB  ßB  ßB33ßB33ßBffßBš™ßB  àB  àB33àB33àB33àB33àB33àBffàBffàBš™àBÍÌàBÍÌàBÍÌàBÍÌàB  áB  áB  áB33áB33áBffáBš™áBÍÌáBÍÌáB  âB33âBffâBš™âBš™âBÍÌâBÍÌâBÍÌâBÍÌâB  ãB  ãB  ãB33ãB33ãB33ãB33ãBš™ãBÍÌãB33äB33äBffäBffäBffäBš™äBÍÌäBÍÌäBÍÌäBÍÌäBÍÌäBÍÌäBÍÌäBÍÌäB  åB  åB  åBš™åB  æB  æB  æB  æBffæBš™æBš™æBÍÌæBÍÌæBÍÌæBÍÌæBÍÌæBÍÌæBÍÌæBÍÌæB33çB33çBffçBš™çBš™çBš™çBÍÌçB  èB  èB  èB  èB  èB  èB33èB33èBffèBffèBš™èB  éB33éB33éB33éB33éBfféBfféBfféBš™éBÍÌéBÍÌéBÍÌéBÍÌéBÍÌéBÍÌéBÍÌéB33êB33êB33êBffêBš™êBÍÌêBÍÌêBÍÌêB33ëB33ëB33ëBš™ëBš™ëBš™ëBš™ëBš™ëBš™ëBš™ëBÍÌëB  ìB  ìB  ìB  ìB  ìB  ìB33ìBffìBš™ìB  íB  íB33íBffíBffíBš™íBš™íBš™íBš™íBš™íBš™íBš™íB  îB  îB  îB  îB33îBffîBffîBš™îB  ïB  ïB  ïBffïBffïBffïBffïBffïBš™ïBš™ïB  ðB  ðB  ðB  ðB  ðB  ðB33ðBffðBffðBÍÌðBÍÌðBÍÌðBÍÌðBÍÌðB  ñB33ñB33ñB33ñBš™ñBš™ñBš™ñBš™ñB  òB33òB33òBffòBffòBffòBffòBš™òBš™òBš™òBÍÌòB  óB  óB  óB  óB33óBffóBffóBš™óBÍÌóB  ôB  ôB33ôB33ôB33ôB33ôB33ôB33ôBffôBffôBš™ôBÍÌôBÍÌôBÍÌôB  õB33õBffõBš™õB  öB  öB  öB  öB  öB  öB  öB  öB  öB33öB33öB33öB33öBfföBfföBš™öBš™öBÍÌöB  ÷B33÷B33÷B33÷Bš™÷BÍÌ÷BÍÌ÷BÍÌ÷BÍÌ÷B  øB  øB  øB  øB  øB33øBfføBfføBfføBÍÌøBÍÌøBÍÌøB  ùB33ùBš™ùBÍÌùBÍÌùBÍÌùBÍÌùBÍÌùBÍÌùBÍÌùB  úB  úB  úB33úB33úB33úBffúBffúBš™úBÍÌúBffûBffûBffûBffûBffûBš™ûBÍÌûBÍÌûBÍÌûBÍÌûBÍÌûBÍÌûBÍÌûBÍÌûB  üB33üB33üB33üBš™üB  ýB33ýBffýBffýBffýBffýBffýBš™ýBš™ýBš™ýBš™ýBš™ýBš™ýBÍÌýBÍÌýB  þB  þB33þBš™þBÍÌþB  ÿB  ÿB33ÿBffÿBffÿBš™ÿBš™ÿBš™ÿBš™ÿBš™ÿBš™ÿBÍÌÿBÍÌÿBš Cš Cš C33 CÍL CÍL Cff C € C € C € C € C € C € Cš™ Cš™ Cš™ Cš™ C3³ CÍÌ C  C33C33C33C33CÍLCÍLCÍLCÍLCÍLCffC €C €C €C €C €Cš™C3³CÍÌCÍÌCfæCfæCšC33C33C33C33C33C33CÍLCÍLCÍLC €C €C €Cš™C3³CÍÌCÍÌCÍÌC  C33C33C33C33C33C33C33C33CÍLC €C €C €C €C €C €C €Cš™Cš™CÍÌCÍÌC  CšCšCšCšCšCšCšC33CffCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffC €C €C €C €C €C €C €C €C €C €C €Cš™Cš™Cš™Cš™Cš™Cš™C3³C3³C3³CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCfæCfæCfæC  CšCšC33C33C33C33CÍLCÍLCÍLCffCffC €Cš™Cš™Cš™Cš™Cš™Cš™Cš™Cš™Cš™Cš™C3³C3³CfæCfæCfæCfæCfæCfæCfæCfæCfæC  CšCšC33C33C33C33C33C33C33C33C33C €C €C €C €Cš™C3³C3³C3³C3³C3³C3³CfæCšCšCšCšCšCšCÍLCÍLCÍLCffCffCffC €Cš™Cš™CÍÌCÍÌCfæCfæC  C  CšC33C33C33CÍLCÍLC €C €C €C €Cš™C3³C3³C3³CÍÌCÍÌCÍÌCfæCfæC  	C  	C33	C33	Cff	Cff	C €	Cš™	C3³	Cfæ	Cfæ	Cfæ	Cfæ	Cfæ	C  
Cš
Cš
Cš
C33
C33
CÍL
CÍL
Cff
Cff
Cff
C €
Cš™
CÍÌ
C  C  C  C  C  CšCšC33CÍLCffCš™Cš™Cš™Cš™Cš™Cš™Cš™Cš™Cš™C3³CfæCfæC33CÍLCffCffC €C €C €C €Cš™C3³CfæCfæCšCšC33C33C33CÍLCÍLCffCš™Cš™C3³C3³CÍÌCfæCšCšCšCšC33CÍLCÍLC €C €C €C €C €C3³CÍÌCÍÌCfæC  C  CšCÍLCffCffCš™Cš™C3³C3³C3³C3³CfæCfæCšCšC33CÍLCffCffC €C €Cš™Cš™CÍÌC  CšCšCšCšC33CÍLCffC €Cš™Cš™C3³CÍÌCÍÌCÍÌCfæC  C33C33CÍLCÍLCÍLCÍLCffC3³C3³CÍÌCÍÌCfæC  C  CšCšC33C33C €Cš™C3³C3³C3³CfæC  C  C  C  C33C33CffCffCffCš™Cš™C3³C3³C3³CfæC  CšC33C33C33C33CffC €Cš™Cš™Cš™CfæCfæCfæCfæC  CšCšCšC33CÍLCÍLCÍLCÍLCš™CÍÌCÍÌCÍÌCÍÌCfæC  C  C  CšCÍLCffCffC €C €C €CfæCfæC  C  CšC33CÍLCÍLCÍLCffC €C €C3³CÍÌCÍÌCÍÌC  CšCšC33C33C33C33C33CÍLCÍLCš™C3³CÍÌC  C  C  C  C  C  CšCÍLCÍLC €C €C €Cš™CÍÌCÍÌCfæC  CšC33CffCffCffCš™Cš™Cš™C3³C3³C3³C3³CÍÌC  CšCšCšCÍLCffCffCffC €C €CÍÌCfæCfæCfæCšCšC33C33C33CÍLCffCffC €Cš™CÍÌCÍÌCfæCfæC  C  CšCšC33C33CÍLC €CÍÌCÍÌCÍÌCÍÌCfæCfæCfæCfæC  C  CÍLCÍLCš™Cš™C3³CÍÌCÍÌCÍÌCÍÌCÍÌC   Cš Cš Cš Cš Cš CÍL Cff Cff C3³ CÍÌ CÍÌ CÍÌ Cfæ C  !C  !C  !C  !Cš!C33!C33!CÍL!Cff!Cš™!C3³!C3³!CÍÌ!CÍÌ!CÍÌ!CÍÌ!CÍÌ!Cfæ!C  "Cš"C33"CÍL"C €"Cš™"C3³"C3³"C3³"Cfæ"Cfæ"C  #Cš#Cš#C33#Cff#Cff#Cff#Cff#Cš™#Cš™#Cš™#Cš™#C3³#C3³#Cfæ#C  $C33$C33$CÍL$Cff$Cff$Cff$C €$Cš™$Cš™$C3³$Cš%Cš%Cš%Cš%Cš%Cš%C33%C33%CÍL%CÍL%CÍL%C3³%CÍÌ%Cfæ%C  &C  &C  &C  &Cš&C33&CÍL&CÍL&Cff&Cff&Cš™&Cš™&Cš™&CÍÌ&Cfæ&Cfæ&Cš'Cš'Cš'Cš'C €'C €'C €'C €'C3³'C3³'CÍÌ'CÍÌ'Cfæ'C  (C  (Cš(C33(C33(CÍL(Cff(Cff(Cff(C €(C3³(CÍÌ(CÍÌ(C  )C  )C  )C  )Cš)Cš)C33)CÍL)CÍL)CÍL)Cff)C €)Cš™)C3³)CÍÌ)Cfæ)Cfæ)Cfæ)C  *C  *C  *C  *C33*CÍL*CÍL*Cff*C3³*C3³*CÍÌ*CÍÌ*CÍÌ*CÍÌ*Cfæ*C  +Cš+C33+CÍL+CÍL+CÍL+Cff+C €+C €+C €+C €+Cš™+C3³+C  ,Cš,Cš,C33,CÍL,CÍL,Cff,Cff,C €,Cš™,C3³,CÍÌ,Cfæ,C  -Cš-Cš-Cš-C33-C33-C33-CÍL-Cff-Cff-Cš™-Cfæ-Cfæ-C  .Cš.Cš.Cš.Cš.Cš.C33.C33.C33.CÍL.Cff.Cš™.C3³.C3³.Cfæ.Cfæ.C  /Cš/Cš/Cš/CÍL/CÍL/C €/C €/Cš™/Cš™/C3³/CÍÌ/CÍÌ/CÍÌ/CÍÌ/CÍÌ/Cš0C €0Cš™0Cš™0Cš™0Cš™0Cš™0C3³0CÍÌ0CÍÌ0CÍÌ0Cfæ0Cfæ0C  1Cš1C331C331Cff1C €1C €1C €1C €1Cš™1Cfæ1C  2Cš2C332CÍL2CÍL2CÍL2CÍL2CÍL2Cff2C €2C €2C €2C3³2C3³2CÍÌ2Cš3Cš3C333C333C333CÍL3C €3C €3C €3C €3Cš™3C3³3C3³3CÍÌ3CÍÌ3Cfæ3Cfæ3C334CÍL4CÍL4C €4Cš™4Cš™4Cš™4CÍÌ4CÍÌ4CÍÌ4CÍÌ4C  5Cš5C335C335Cff5Cff5Cff5Cš™5Cš™5Cš™5C3³5C3³5C3³5Cfæ5Cš6C336CÍL6CÍL6CÍL6CÍL6Cff6Cff6Cff6C3³6CÍÌ6C  7C  7C  7C  7Cš7Cš7C337C337Cff7Cš™7CÍÌ7CÍÌ7CÍÌ7CÍÌ7CÍÌ7CÍÌ7Cfæ7Cfæ7Cš8C338CÍL8CÍL8C €8C €8Cš™8CÍÌ8CÍÌ8CÍÌ8CÍÌ8C  9C  9C  9Cš9C339CÍL9CÍL9CÍL9Cff9Cš™9Cš™9Cš™9C3³9CÍÌ9CÍÌ9CÍÌ9Cfæ9Cfæ9Cš:CÍL:CÍL:Cff:C €:C €:C €:C €:Cš™:C3³:CÍÌ:Cfæ:C  ;C  ;C  ;C  ;C  ;C33;CÍL;C €;C €;Cš™;C3³;C3³;Cfæ;Cfæ;Cfæ;C  <C  <Cš<Cš<CÍL<Cff<Cff<Cš™<Cš™<CÍÌ<CÍÌ<CÍÌ<CÍÌ<CÍÌ<CÍÌ<Cfæ<Cfæ<C33=CÍL=CÍL=CÍL=C €=C €=C3³=C3³=C3³=C3³=CÍÌ=Cfæ=Cš>Cš>Cš>CÍL>CÍL>Cff>Cff>Cff>C €>C €>Cš™>Cš™>CÍÌ>Cfæ>Cfæ>Cš?CÍL?CÍL?CÍL?Cff?C €?C €?Cš™?C3³?C3³?CÍÌ?CÍÌ?C  @C  @C  @C  @Cš@CÍL@Cff@Cff@C3³@C3³@CÍÌ@CÍÌ@CÍÌ@C  AC  AC  ACšACšACšAC33ACÍLACffAC €AC €ACš™ACÍÌACÍÌAC  BC  BCšBCšBC33BC33BCÍLBCÍLBCffBC €BC3³BC3³BC3³BC3³BCÍÌBCfæBCfæBCfæBC  CC  CCšCCšCC33CC33CCÍLCCš™CCÍÌCCÍÌCCÍÌCCÍÌCCfæCCfæCC  DC  DC33DCÍLDCÍLDCffDCffDCffDCffDCffDC €DCš™DCš™DC3³DCÍÌDC  EC  ECšEC33EC33ECffEC €EC €EC €ECš™EC3³ECÍÌECÍÌECÍÌECÍÌECÍÌEC  FC  FC  FC  FCšFCÍLFCffFCffFCš™FC3³FCfæFCfæFCfæFCfæFCfæFCfæFCšGCÍLGC €GCš™GCš™GCš™GC3³GC3³GCÍÌGCÍÌGCÍÌGCÍÌGC  HCšHC33HCffHCffHCffHCffHCffHCffHC €HC €HC €HC €HCfæHC33IC33ICÍLICÍLICÍLIC €IC €IC €IC €IC3³IC3³ICÍÌICÍÌICfæICšJCšJCšJC33JC33JCffJCffJCffJC €JCš™JC3³JCÍÌJCfæJC  KC  KCšKC33KC33KCÍLKCÍLKCÍLKCÍLKC €KCš™KC3³KCÍÌKCfæKC  LC  LCšLCšLCšLCšLC33LCÍLLCš™LCš™LCÍÌLCÍÌLCfæLCfæLCfæLC  MCšMC33MCÍLMCÍLMCffMC €MCš™MCš™MCÍÌMCÍÌMC  NC  NC  NC  NC33NCÍLNCÍLNCffNC €NC €NCÍÌNCÍÌNCÍÌNCÍÌNCÍÌNCfæNC  OCšOCšOCÍLOCÍLOC €OCš™OCš™OCš™OC3³OC3³OCÍÌOC  PC  PC  PCšPCÍLPCffPCffPCffPC €PC €PC €PCš™PCÍÌPC  QCšQC33QC33QCÍLQCÍLQCffQCffQCffQC €QC3³QCÍÌQCÍÌQCÍÌQCÍÌQCÍÌQC  RCšRC33RC33RC €RC €RCš™RCš™RC3³RCÍÌRCÍÌRCÍÌRCfæRCfæRCÍLSCÍLSCÍLSCffSC €SC €SC €SC €SC €SC €SC3³SCfæSCfæSC  TC33TC33TCÍLTCffTCffTC €TC €TCš™TCš™TCš™TC3³TCÍÌTCfæTC  UCšUC33UCÍLUCffUCffUCš™UC3³UC3³UC3³UCÍÌUCÍÌUCÍÌUC  VC  VCšVC33VCffVCffVCffVC €VCš™VCš™VC3³VCfæVCšWC33WC33WCÍLWCÍLWCÍLWCffWC €WC €WCš™WCÍÌWCÍÌWCÍÌWCfæWCfæWC  XCšXCšXCšXCffXC €XC €XCš™XCÍÌXCÍÌXCÍÌXCÍÌXCÍÌXCÍÌXCšYCšYC33YC33YCffYCffYC €YC3³YC3³YCÍÌYCÍÌYCfæYCšZCšZCÍLZCÍLZCffZCffZCffZCffZC €ZC €ZCÍÌZCÍÌZCÍÌZCfæZC  [Cš[C33[C33[C33[Cff[C €[C €[Cš™[C3³[C3³[CÍÌ[CÍÌ[CÍÌ[C  \C  \Cš\Cš\C33\C33\CÍL\C3³\CÍÌ\CÍÌ\Cfæ\Cfæ\C  ]C  ]Cš]Cš]Cš]Cš]C33]CÍL]Cff]C €]Cš™]C3³]CÍÌ]Cfæ]Cfæ]Cfæ]C  ^Cš^C33^C33^C33^C33^CÍL^C €^Cš™^C3³^C3³^C3³^Cfæ^Cfæ^Cfæ^Cš_Cš_Cš_C33_C33_C €_C €_C €_Cš™_Cš™_C3³_CÍÌ_CÍÌ_Cfæ_Cfæ_Cš`C33`C33`CÍL`CÍL`Cff`C €`C3³`C3³`C3³`C3³`C3³`CÍÌ`CÍÌ`CšaC33aCÍLaCÍLaCffaCffaCffaCffaC €aCš™aCš™aC3³aCÍÌaCšbC33bC33bCÍLbCffbCffbCffbC €bC €bC3³bCÍÌbCÍÌbCÍÌbCfæbC  cCšcC33cCÍLcCÍLcC €cC €cC3³cCÍÌcCÍÌcC  dC  dC  dC  dC33dC33dC33dCÍLdC €dCš™dCš™dC3³dCfædCfædC33eC33eC33eC33eC33eC33eCffeC €eCš™eCš™eC3³eCÍÌeCÍÌeCfæeCfæeCfæeCfæeCšfCÍLfCÍLfC €fC €fCš™fCš™fCÍÌfCÍÌfCfæfCfæfC  gC  gC33gC33gC33gC33gCffgC €gC3³gC3³gCÍÌgCfægC  hCšhC33hC33hCÍLhCÍLhCffhC €hC3³hC3³hCÍÌhCfæhCfæhCfæhC  iCšiCšiC33iC33iC33iCÍLiCffiC €iC3³iC3³iCÍÌiCfæiC  jC  jCšjCšjC33jCÍLjCffjCffjCš™jC3³jC3³jCÍÌjC  kC  kC  kCškCškCškC33kCÍLkCÍLkC €kC €kC €kC €kCÍÌkCÍÌkC  lC  lC  lC33lC33lCÍLlC €lC €lCš™lC3³lCÍÌlCÍÌlCÍÌlCÍÌlCfælC  mC  mC  mC33mCffmCffmC €mC3³mCÍÌmCÍÌmCÍÌmCfæmCfæmC  nCšnCÍLnCffnC €nC €nC €nCš™nCš™nC3³nC3³nCÍÌnCfænCfænC  oC  oC33oCÍLoCffoCffoC €oCš™oC3³oC3³oC3³oCÍÌoCfæoCfæoC  pCšpC33pCÍLpCffpC €pCš™pC3³pC3³pC3³pC3³pCÍÌpCfæpCfæpC  qC33qCffqC €qC €qCš™qCš™qCš™qCš™qC3³qCÍÌqCÍÌqCÍÌqCšrC33rCÍLrCÍLrCffrC €rCš™rCÍÌrCÍÌrCÍÌrCÍÌrCÍÌrCfærCfærC33sC33sC33sCÍLsCÍLsCffsCffsCš™sC3³sC3³sCÍÌsCÍÌsCfæsC  tCštCÍLtCÍLtCfftCfftC €tCš™tCš™tC3³tC3³tC3³tCfætCfætC33uCÍLuCÍLuCÍLuCffuCffuCffuCffuCffuCš™uCÍÌuCfæuCfæuCfæuCšvC33vCÍLvCÍLvCÍLvC €vC €vCš™vCš™vCš™vC3³vC3³vCÍÌvCfævC  wCšwCšwCÍLwCffwC €wC €wCš™wCš™wC3³wC3³wCfæwCfæwCfæwC  xCšxCšxCÍLxCffxC €xC €xCš™xCÍÌxCÍÌxCÍÌxCfæxCfæxCfæxCšyCÍLyCffyC €yCš™yCš™yC3³yC3³yC3³yCÍÌyCÍÌyCfæyC  zCšzCÍLzCÍLzCÍLzC €zC €zC €zCš™zCš™zCš™zCš™zC3³zCÍÌzCfæzCš{C33{C33{CÍL{Cff{Cš™{Cš™{Cš™{C3³{C3³{C3³{C3³{Cfæ{Cfæ{C  |Cš|C33|C33|CÍL|Cff|C €|C €|C €|C3³|Cfæ|Cfæ|C  }Cš}C33}C33}C33}CÍL}Cff}Cš™}C3³}C3³}C3³}C3³}Cfæ}Cš~Cš~Cš~C33~CÍL~CÍL~CÍL~C €~C €~Cš™~Cš™~CÍÌ~Cfæ~Cfæ~Cfæ~Cfæ~Cfæ~Cfæ~C  CÍLCffCš™CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCfæCfæC  €Cš€Cš€Cš€Cf&€Cf&€CÍL€CÍL€CÍL€CšY€CšY€C3s€C3s€CÍŒ€CÍŒ€Cš™€Cf¦€Cf¦€C3³€C3³€C3³€C À€CÍÌ€C3ó€C  �CÍ�Cš�Cš�Cš�Cš�Cf&�Cf&�Cf&�C @�CÍL�Cff�Cff�CÍŒ�CÍŒ�CÍŒ�Cš™�Cš™�Cš™�Cš™�Cf¦�C3³�C3³�CÍÌ�Cfæ�C  ‚C  ‚C  ‚C  ‚CÍ‚CÍ‚Cš‚Cš‚Cf&‚Cf&‚C @‚C @‚CÍL‚CÍL‚Cff‚Cff‚Cff‚Cff‚C3s‚C €‚CÍŒ‚Cš™‚Cf¦‚Cf¦‚C3³‚C3³‚CÍÌ‚CÍÌ‚CšÙ‚Cfæ‚Cfæ‚C3ó‚CÍƒCÍƒCf&ƒCf&ƒC33ƒC @ƒCÍLƒCÍLƒCÍLƒCÍLƒCÍLƒCÍLƒCffƒC €ƒCÍŒƒCš™ƒCf¦ƒC ÀƒC ÀƒC ÀƒC ÀƒC ÀƒC ÀƒC ÀƒC ÀƒCfæƒC3óƒC3óƒC3óƒCÍ„Cš„Cš„Cš„Cf&„C @„CšY„CšY„CšY„CšY„C3s„C3s„C3s„C3s„C €„CÍŒ„Cf¦„Cf¦„C3³„C À„C À„C À„CšÙ„CšÙ„CšÙ„CšÙ„C  …C  …CÍ…Cš…Cš…Cf&…Cf&…C33…C @…C @…CÍL…Cff…C3s…C3s…CÍŒ…Cš™…Cš™…Cf¦…Cf¦…C3³…C3³…C À…CšÙ…Cfæ…Cfæ…Cfæ…C3ó…C3ó…C  †C  †Cš†Cš†Cf&†Cf&†Cf&†C33†CÍL†CšY†C3s†C3s†C3s†C €†C €†Cš™†Cš™†Cf¦†Cf¦†Cf¦†C3³†CÍÌ†CÍÌ†CÍÌ†Cfæ†C  ‡CÍ‡CÍ‡CÍ‡CÍ‡Cš‡C33‡C33‡CÍL‡CÍL‡CÍL‡CÍL‡CšY‡Cff‡Cff‡C3s‡C3s‡CÍŒ‡Cš™‡Cš™‡Cš™‡Cš™‡Cf¦‡C3³‡C À‡CÍÌ‡CÍÌ‡Cfæ‡C3ó‡C  ˆC  ˆC  ˆCšˆCf&ˆCf&ˆCf&ˆCf&ˆC33ˆC33ˆC33ˆCšYˆCšYˆCffˆC3sˆC3sˆC €ˆC €ˆCÍŒˆCš™ˆCf¦ˆC3³ˆC3³ˆC ÀˆCšÙˆCšÙˆCšÙˆCšÙˆCšÙˆC  ‰CÍ‰Cš‰Cš‰Cf&‰Cf&‰C33‰C33‰C33‰C @‰CÍL‰CÍL‰CÍL‰CÍL‰C3s‰C €‰Cš™‰Cš™‰Cf¦‰C3³‰C3³‰C3³‰CÍÌ‰CÍÌ‰CšÙ‰CšÙ‰CšÙ‰Cfæ‰C3ó‰C  ŠC  ŠC  ŠCÍŠCšŠC @ŠC @ŠCÍLŠCÍLŠCšYŠCffŠC3sŠC3sŠC3sŠC3sŠC €ŠCÍŒŠCÍŒŠCf¦ŠCf¦ŠCf¦ŠC3³ŠC ÀŠC ÀŠCÍÌŠCfæŠCÍ‹CÍ‹CÍ‹CÍ‹Cš‹Cš‹Cf&‹C33‹C @‹CšY‹C3s‹C3s‹C3s‹C3s‹C €‹C €‹C €‹C €‹C €‹C3³‹C À‹C À‹CÍÌ‹CÍÌ‹CšÙ‹Cfæ‹C  ŒC  ŒC  ŒCÍŒCšŒCf&ŒCf&ŒCf&ŒCf&ŒCf&ŒC33ŒCÍLŒCffŒC3sŒC €ŒCš™ŒCš™ŒCf¦ŒCf¦ŒCf¦ŒCf¦ŒCf¦ŒC3³ŒCÍÌŒCšÙŒCšÙŒCfæŒC3óŒC3óŒCÍ�CÍ�CÍ�CÍ�Cf&�C33�C33�C @�CÍL�Cff�C3s�C €�CÍŒ�CÍŒ�CÍŒ�Cš™�Cš™�Cš™�C3³�C3³�CÍÌ�CšÙ�CšÙ�Cfæ�Cfæ�C3ó�C3ó�C  ŽC  ŽC  ŽCšŽC @ŽCÍLŽCšYŽCšYŽCffŽC3sŽC3sŽC3sŽC3sŽC3sŽCÍŒŽCÍŒŽCf¦ŽCf¦ŽC3³ŽCÍÌŽCšÙŽCšÙŽCšÙŽCšÙŽCšÙŽCšÙŽC  �CÍ�CÍ�Cf&�Cf&�C @�CÍL�CÍL�CÍL�CÍL�CšY�CšY�Cff�Cff�C3s�C €�CÍŒ�Cf¦�C3³�C3³�C À�CÍÌ�CšÙ�Cfæ�Cfæ�Cfæ�C  �CÍ�Cš�Cš�Cš�Cš�Cf&�Cf&�Cf&�Cf&�C33�CšY�C3s�C3s�C3s�C €�CÍŒ�Cf¦�Cf¦�Cf¦�Cf¦�C3³�C3³�CÍÌ�CÍÌ�CÍÌ�CÍÌ�C3ó�C  ‘C  ‘Cš‘Cf&‘Cf&‘Cf&‘C33‘C33‘C @‘CÍL‘CšY‘CšY‘C3s‘Cš™‘Cš™‘Cš™‘Cš™‘Cf¦‘C3³‘C À‘C À‘C À‘CÍÌ‘CÍÌ‘Cfæ‘Cfæ‘C3ó‘C  ’Cš’Cš’Cš’C33’C33’C33’C @’C @’C @’CšY’C3s’C €’CÍŒ’Cš™’Cš™’Cf¦’Cf¦’Cf¦’C3³’C3³’C À’Cfæ’Cfæ’Cfæ’C3ó’C  “C  “C  “Cš“Cš“Cf&“Cf&“C33“CÍL“CšY“Cff“Cff“Cff“C3s“C3s“C3s“C €“Cš™“Cf¦“C3³“C3³“CÍÌ“CšÙ“CšÙ“CšÙ“Cfæ“Cfæ“C3ó“CÍ”Cf&”Cf&”Cf&”Cf&”C33”CÍL”CÍL”CÍL”Cff”C3s”CÍŒ”CÍŒ”Cš™”Cš™”Cš™”Cf¦”Cf¦”Cf¦”Cf¦”Cf¦”CÍÌ”CšÙ”C3ó”C  •C  •CÍ•Cš•Cš•Cf&•Cf&•C33•C33•C33•C33•C @•CÍL•Cff•C3s•C3s•CÍŒ•Cf¦•Cf¦•Cf¦•Cf¦•C3³•C3³•CÍÌ•CšÙ•CšÙ•Cfæ•Cfæ•C3ó•C3ó•C  –C  –C  –CÍ–CÍ–Cf&–CÍL–CšY–Cff–Cff–Cff–Cff–Cff–C3s–C €–C €–CÍŒ–Cš™–Cf¦–C À–C À–C À–C À–CÍÌ–Cfæ–C3ó–C  —C  —CÍ—Cš—Cš—Cf&—C33—C @—C @—C @—CÍL—CšY—Cff—Cff—C3s—C3s—C €—CÍŒ—CÍŒ—Cš™—C3³—CÍÌ—CÍÌ—CÍÌ—CÍÌ—CÍÌ—Cfæ—Cfæ—C  ˜C  ˜CÍ˜Cf&˜Cf&˜C33˜C33˜C33˜C @˜C @˜CÍL˜CšY˜Cff˜Cff˜CÍŒ˜C3³˜C3³˜C3³˜C À˜C À˜C À˜CÍÌ˜CšÙ˜CšÙ˜CšÙ˜CšÙ˜CšÙ˜CšÙ˜Cfæ˜CÍ™Cf&™C33™C33™C @™C @™C @™CÍL™CÍL™CšY™Cff™Cff™Cff™Cš™™Cš™™Cf¦™Cf¦™Cf¦™C À™C À™C À™CÍÌ™CÍÌ™CÍÌ™CšÙ™C3ó™CÍšCÍšCÍšCÍšCššCššCššCf&šCf&šCšYšCšYšCffšC3sšC €šC €šC €šCš™šCš™šCš™šCf¦šC3³šC ÀšC ÀšCšÙšCšÙšCfæšCfæšC  ›C  ›CÍ›Cš›Cf&›Cf&›C @›CšY›CšY›CšY›Cff›Cff›C3s›C €›Cš™›Cš™›Cf¦›C3³›C3³›C3³›C3³›C À›CÍÌ›CÍÌ›Cfæ›C3ó›C3ó›C3ó›CšœC33œC33œC33œC33œC @œC @œC @œC @œC @œCšYœCšYœCffœC3sœC €œCÍŒœCš™œC3³œC3³œC3³œC3³œCšÙœCšÙœCfæœCfæœC3óœCÍ�CÍ�CÍ�Cš�Cš�C33�C33�C33�C @�C @�CšY�Cff�Cff�C €�CÍŒ�CÍŒ�CÍŒ�Cf¦�C3³�C3³�C À�CÍÌ�CÍÌ�CÍÌ�CšÙ�CšÙ�Cfæ�C3ó�C  žC  žC  žC  žCšžCšžC33žC33žCÍLžCšYžCšYžCšYžCšYžCffžC3sžC €žCÍŒžCÍŒžCf¦žCf¦žCf¦žC ÀžCÍÌžCÍÌžCÍÌžCšÙžC3óžC  ŸCšŸCšŸCšŸCšŸCšŸCšŸCšŸCf&ŸC33ŸCÍLŸCšYŸCffŸCÍŒŸCÍŒŸCÍŒŸCÍŒŸCÍŒŸCÍŒŸCÍŒŸCš™ŸCf¦ŸC ÀŸCšÙŸCšÙŸCfæŸCfæŸC3óŸC3óŸC3óŸC   C   CÍ CÍ CÍ Cš Cf& C @ C @ C @ CšY Cff Cff Cff C3s C € CÍŒ C3³ C3³ C3³ C À C À CÍÌ CšÙ CšÙ Cfæ Cfæ C  ¡CÍ¡Cf&¡C33¡C33¡C33¡C @¡C @¡C @¡C @¡CÍL¡CÍL¡CÍL¡CšY¡Cff¡C €¡CÍŒ¡Cf¦¡Cf¦¡C3³¡C À¡CÍÌ¡CÍÌ¡CšÙ¡CšÙ¡Cfæ¡Cfæ¡C  ¢C  ¢C  ¢CÍ¢CÍ¢Cš¢C33¢C @¢CÍL¢CÍL¢Cff¢Cff¢C3s¢CÍŒ¢CÍŒ¢CÍŒ¢CÍŒ¢CÍŒ¢Cš™¢Cš™¢Cf¦¢C3³¢C3³¢Cfæ¢Cfæ¢C3ó¢C3ó¢C3ó¢C3ó¢CÍ£CÍ£Cš£Cš£C33£C33£C33£C @£CÍL£CÍL£C3s£C €£C €£C €£CÍŒ£CÍŒ£CÍŒ£Cš™£Cf¦£Cf¦£CšÙ£CšÙ£C3ó£C3ó£C3ó£C3ó£C3ó£C3ó£C  ¤C  ¤C  ¤C  ¤Cf&¤C33¤CÍL¤Cff¤Cff¤C3s¤C3s¤C3s¤C3s¤C €¤C €¤C €¤C €¤CÍŒ¤CÍŒ¤Cf¦¤C3³¤C3³¤CÍÌ¤CšÙ¤Cfæ¤Cfæ¤Cfæ¤Cfæ¤C3ó¤CÍ¥CÍ¥Cf&¥C33¥C @¥C @¥C @¥C @¥C @¥CÍL¥CšY¥CšY¥Cff¥C3s¥C3s¥Cf¦¥Cf¦¥Cf¦¥Cf¦¥Cf¦¥C3³¥C3³¥C3³¥CšÙ¥Cfæ¥Cfæ¥C3ó¥C3ó¥C3ó¥CÍ¦Cš¦Cš¦C33¦C @¦C @¦CÍL¦CšY¦CšY¦CšY¦CšY¦C €¦C €¦CÍŒ¦CÍŒ¦Cf¦¦C3³¦CÍÌ¦CÍÌ¦CÍÌ¦CÍÌ¦CÍÌ¦CšÙ¦C3ó¦C3ó¦C3ó¦C3ó¦CÍ§Cš§Cf&§C33§C @§C @§CÍL§CÍL§CÍL§CÍL§CšY§CšY§C3s§CÍŒ§Cš™§Cš™§Cf¦§C3³§CÍÌ§CÍÌ§CÍÌ§CÍÌ§CÍÌ§CÍÌ§CšÙ§CšÙ§C3ó§C3ó§Cš¨Cš¨Cš¨C33¨C33¨C33¨C @¨C @¨CÍL¨CÍL¨Cff¨C €¨C €¨Cš™¨Cš™¨Cf¦¨Cf¦¨Cf¦¨C3³¨C À¨CÍÌ¨Cfæ¨Cfæ¨C3ó¨C  ©C  ©C  ©CÍ©Cf&©Cf&©C33©C @©C @©CÍL©Cff©Cff©Cff©C3s©C3s©Cš™©Cš™©Cf¦©C3³©C3³©C À©CÍÌ©CÍÌ©CšÙ©Cfæ©Cfæ©Cfæ©Cfæ©C3ó©C3ó©CšªCf&ªC33ªC33ªC33ªCÍLªCÍLªCÍLªCšYªCffªC3sªCÍŒªCf¦ªCf¦ªCf¦ªCf¦ªCf¦ªC3³ªC ÀªCÍÌªCÍÌªCÍÌªC¤type§scatter¤name§Dyna-Q+¡xÈ]À  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;E �;E  ;E °;E À;E Ð;E à;E ð;E  <E <E  <E 0<E @<E P<E `<E p<E €<E �<E  <E °<E À<E Ð<E à<E ð<E  =E =E  =E 0=E @=E P=E `=E p=E €=E �=E  =E °=E À=E Ð=E à=E ð=E  >E >E  >E 0>E @>E P>E `>E p>E €>E �>E  >E °>E À>E Ð>E à>E ð>E  ?E ?E  ?E 0?E @?E P?E `?E p?E €?E �?E  ?E °?E À?E Ð?E à?E ð?E  @E @E  @E 0@E @@E P@E `@E p@E €@E �@E  @E °@E À@E Ð@E à@E ð@E  AE AE  AE 0AE @AE PAE `AE pAE €AE �AE  AE °AE ÀAE ÐAE àAE ðAE  BE BE  BE 0BE @BE PBE `BE pBE €BE �BE  BE °BE ÀBE ÐBE àBE ðBE  CE CE  CE 0CE @CE PCE `CE pCE €CE �CE  CE °CE ÀCE ÐCE àCE ðCE  DE DE  DE 0DE @DE PDE `DE pDE €DE �DE  DE °DE ÀDE ÐDE àDE ðDE  EE EE  EE 0EE @EE PEE `EE pEE €EE �EE  EE °EE ÀEE ÐEE àEE ðEE  FE FE  FE 0FE @FE PFE `FE pFE €FE �FE  FE °FE ÀFE ÐFE àFE ðFE  GE GE  GE 0GE @GE PGE `GE pGE €GE �GE  GE °GE ÀGE ÐGE àGE ðGE  HE HE  HE 0HE @HE PHE `HE pHE €HE �HE  HE °HE ÀHE ÐHE àHE ðHE  IE IE  IE 0IE @IE PIE `IE pIE €IE �IE  IE °IE ÀIE ÐIE àIE ðIE  JE JE  JE 0JE @JE PJE `JE pJE €JE �JE  JE °JE ÀJE ÐJE àJE ðJE  KE KE  KE 0KE @KE PKE `KE pKE €KE �KE  KE °KE ÀKE ÐKE àKE ðKE  LE LE  LE 0LE @LE PLE `LE pLE €LE �LE  LE °LE ÀLE ÐLE àLE ðLE  ME ME  ME 0ME @ME PME `ME pME €ME �ME  ME °ME ÀME ÐME àME ðME  NE NE  NE 0NE @NE PNE `NE pNE €NE �NE  NE °NE ÀNE ÐNE àNE ðNE  OE OE  OE 0OE @OE POE `OE pOE €OE �OE  OE °OE ÀOE ÐOE àOE ðOE  PE PE  PE 0PE @PE PPE `PE pPE €PE �PE  PE °PE ÀPE ÐPE àPE ðPE  QE QE  QE 0QE @QE PQE `QE pQE €QE �QE  QE °QE ÀQE ÐQE àQE ðQE  RE RE  RE 0RE @RE PRE `RE pRE €RE �RE  RE °RE ÀRE ÐRE àRE ðRE  SE SE  SE 0SE @SE PSE `SE pSE €SE �SE  SE °SE ÀSE ÐSE àSE ðSE  TE TE  TE 0TE @TE PTE `TE pTE €TE �TE  TE °TE ÀTE ÐTE àTE ðTE  UE UE  UE 0UE @UE PUE `UE pUE €UE �UE  UE °UE ÀUE ÐUE àUE ðUE  VE VE  VE 0VE @VE PVE `VE pVE €VE �VE  VE °VE ÀVE ÐVE àVE ðVE  WE WE  WE 0WE @WE PWE `WE pWE €WE �WE  WE °WE ÀWE ÐWE àWE ðWE  XE XE  XE 0XE @XE PXE `XE pXE €XE �XE  XE °XE ÀXE ÐXE àXE ðXE  YE YE  YE 0YE @YE PYE `YE pYE €YE �YE  YE °YE ÀYE ÐYE àYE ðYE  ZE ZE  ZE 0ZE @ZE PZE `ZE pZE €ZE �ZE  ZE °ZE ÀZE ÐZE àZE ðZE  [E [E  [E 0[E @[E P[E `[E p[E €[E �[E  [E °[E À[E Ð[E à[E ð[E  \E \E  \E 0\E @\E P\E `\E p\E €\E �\E  \E °\E À\E Ð\E à\E ð\E  ]E ]E  ]E 0]E @]E P]E `]E p]E €]E �]E  ]E °]E À]E Ð]E à]E ð]E  ^E ^E  ^E 0^E @^E P^E `^E p^E €^E �^E  ^E °^E À^E Ð^E à^E ð^E  _E _E  _E 0_E @_E P_E `_E p_E €_E �_E  _E °_E À_E Ð_E à_E ð_E  `E `E  `E 0`E @`E P`E ``E p`E €`E �`E  `E °`E À`E Ð`E à`E ð`E  aE aE  aE 0aE @aE PaE `aE paE €aE �aE  aE °aE ÀaE ÐaE àaE ðaE  bE bE  bE 0bE @bE PbE `bE pbE €bE �bE  bE °bE ÀbE ÐbE àbE ðbE  cE cE  cE 0cE @cE PcE `cE pcE €cE �cE  cE °cE ÀcE ÐcE àcE ðcE  dE dE  dE 0dE @dE PdE `dE pdE €dE �dE  dE °dE ÀdE ÐdE àdE ðdE  eE eE  eE 0eE @eE PeE `eE peE €eE �eE  eE °eE ÀeE ÐeE àeE ðeE  fE fE  fE 0fE @fE PfE `fE pfE €fE �fE  fE °fE ÀfE ÐfE àfE ðfE  gE gE  gE 0gE @gE PgE `gE pgE €gE �gE  gE °gE ÀgE ÐgE àgE ðgE  hE hE  hE 0hE @hE PhE `hE phE €hE �hE  hE °hE ÀhE ÐhE àhE ðhE  iE iE  iE 0iE @iE PiE `iE piE €iE �iE  iE °iE ÀiE ÐiE àiE ðiE  jE jE  jE 0jE @jE PjE `jE pjE €jE �jE  jE °jE ÀjE ÐjE àjE ðjE  kE kE  kE 0kE @kE PkE `kE pkE €kE �kE  kE °kE ÀkE ÐkE àkE ðkE  lE lE  lE 0lE @lE PlE `lE plE €lE �lE  lE °lE ÀlE ÐlE àlE ðlE  mE mE  mE 0mE @mE PmE `mE pmE €mE �mE  mE °mE ÀmE ÐmE àmE ðmE  nE nE  nE 0nE @nE PnE `nE pnE €nE �nE  nE °nE ÀnE ÐnE ànE ðnE  oE oE  oE 0oE @oE PoE `oE poE €oE �oE  oE °oE ÀoE ÐoE àoE ðoE  pE pE  pE 0pE @pE PpE `pE ppE €pE �pE  pE °pE ÀpE ÐpE àpE ðpE  qE qE  qE 0qE @qE PqE `qE pqE €qE �qE  qE °qE ÀqE ÐqE àqE ðqE  rE rE  rE 0rE @rE PrE `rE prE €rE �rE  rE °rE ÀrE ÐrE àrE ðrE  sE sE  sE 0sE @sE PsE `sE psE €sE �sE  sE °sE ÀsE ÐsE àsE ðsE  tE tE  tE 0tE @tE PtE `tE ptE €tE �tE  tE °tE ÀtE ÐtE àtE ðtE  uE uE  uE 0uE @uE PuE `uE puE €uE �uE  uE °uE ÀuE ÐuE àuE ðuE  vE vE  vE 0vE @vE PvE `vE pvE €vE �vE  vE °vE ÀvE ÐvE àvE ðvE  wE wE  wE 0wE @wE PwE `wE pwE €wE �wE  wE °wE ÀwE ÐwE àwE ðwE  xE xE  xE 0xE @xE PxE `xE pxE €xE �xE  xE °xE ÀxE ÐxE àxE ðxE  yE yE  yE 0yE @yE PyE `yE pyE €yE �yE  yE °yE ÀyE ÐyE àyE ðyE  zE zE  zE 0zE @zE PzE `zE pzE €zE �zE  zE °zE ÀzE ÐzE àzE ðzE  {E {E  {E 0{E @{E P{E `{E p{E €{E �{E  {E °{E À{E Ð{E à{E ð{E  |E |E  |E 0|E @|E P|E `|E p|E €|E �|E  |E °|E À|E Ð|E à|E ð|E  }E }E  }E 0}E @}E P}E `}E p}E €}E �}E  }E °}E À}E Ð}E à}E ð}E  ~E ~E  ~E 0~E @~E P~E `~E p~E €~E �~E  ~E °~E À~E Ð~E à~E ð~E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  €E €E €E €E  €E (€E 0€E 8€E @€E H€E P€E X€E `€E h€E p€E x€E €€E ˆ€E �€E ˜€E  €E ¨€E °€E ¸€E À€E È€E Ð€E Ø€E à€E è€E ð€E ø€E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‚E ‚E ‚E ‚E  ‚E (‚E 0‚E 8‚E @‚E H‚E P‚E X‚E `‚E h‚E p‚E x‚E €‚E ˆ‚E �‚E ˜‚E  ‚E ¨‚E °‚E ¸‚E À‚E È‚E Ð‚E Ø‚E à‚E è‚E ð‚E ø‚E  ƒE ƒE ƒE ƒE  ƒE (ƒE 0ƒE 8ƒE @ƒE HƒE PƒE XƒE `ƒE hƒE pƒE xƒE €ƒE ˆƒE �ƒE ˜ƒE  ƒE ¨ƒE °ƒE ¸ƒE ÀƒE ÈƒE ÐƒE ØƒE àƒE èƒE ðƒE øƒE  „E „E „E „E  „E („E 0„E 8„E @„E H„E P„E X„E `„E h„E p„E x„E €„E ˆ„E �„E ˜„E  „E ¨„E °„E ¸„E À„E È„E Ð„E Ø„E à„E è„E ð„E ø„E  …E …E …E …E  …E (…E 0…E 8…E @…E H…E P…E X…E `…E h…E p…E x…E €…E ˆ…E �…E ˜…E  …E ¨…E °…E ¸…E À…E È…E Ð…E Ø…E à…E è…E ð…E ø…E  †E †E †E †E  †E (†E 0†E 8†E @†E H†E P†E X†E `†E h†E p†E x†E €†E ˆ†E �†E ˜†E  †E ¨†E °†E ¸†E À†E È†E Ð†E Ø†E à†E è†E ð†E ø†E  ‡E ‡E ‡E ‡E  ‡E (‡E 0‡E 8‡E @‡E H‡E P‡E X‡E `‡E h‡E p‡E x‡E €‡E ˆ‡E �‡E ˜‡E  ‡E ¨‡E °‡E ¸‡E À‡E È‡E Ð‡E Ø‡E à‡E è‡E ð‡E ø‡E  ˆE ˆE ˆE ˆE  ˆE (ˆE 0ˆE 8ˆE @ˆE HˆE PˆE XˆE `ˆE hˆE pˆE xˆE €ˆE ˆˆE �ˆE ˜ˆE  ˆE ¨ˆE °ˆE ¸ˆE ÀˆE ÈˆE ÐˆE ØˆE àˆE èˆE ðˆE øˆE  ‰E ‰E ‰E ‰E  ‰E (‰E 0‰E 8‰E @‰E H‰E P‰E X‰E `‰E h‰E p‰E x‰E €‰E ˆ‰E �‰E ˜‰E  ‰E ¨‰E °‰E ¸‰E À‰E È‰E Ð‰E Ø‰E à‰E è‰E ð‰E ø‰E  ŠE ŠE ŠE ŠE  ŠE (ŠE 0ŠE 8ŠE @ŠE HŠE PŠE XŠE `ŠE hŠE pŠE xŠE €ŠE ˆŠE �ŠE ˜ŠE  ŠE ¨ŠE °ŠE ¸ŠE ÀŠE ÈŠE ÐŠE ØŠE àŠE èŠE ðŠE øŠE  ‹E ‹E ‹E ‹E  ‹E (‹E 0‹E 8‹E @‹E H‹E P‹E X‹E `‹E h‹E p‹E x‹E €‹E ˆ‹E �‹E ˜‹E  ‹E ¨‹E °‹E ¸‹E À‹E È‹E Ð‹E Ø‹E à‹E è‹E ð‹E ø‹E  ŒE ŒE ŒE ŒE  ŒE (ŒE 0ŒE 8ŒE @ŒE HŒE PŒE XŒE `ŒE hŒE pŒE xŒE €ŒE ˆŒE �ŒE ˜ŒE  ŒE ¨ŒE °ŒE ¸ŒE ÀŒE ÈŒE ÐŒE ØŒE àŒE èŒE ðŒE øŒE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ŽE ŽE ŽE ŽE  ŽE (ŽE 0ŽE 8ŽE @ŽE HŽE PŽE XŽE `ŽE hŽE pŽE xŽE €ŽE ˆŽE �ŽE ˜ŽE  ŽE ¨ŽE °ŽE ¸ŽE ÀŽE ÈŽE ÐŽE ØŽE àŽE èŽE ðŽE øŽE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‘E ‘E ‘E ‘E  ‘E (‘E 0‘E 8‘E @‘E H‘E P‘E X‘E `‘E h‘E p‘E x‘E €‘E ˆ‘E �‘E ˜‘E  ‘E ¨‘E °‘E ¸‘E À‘E È‘E Ð‘E Ø‘E à‘E è‘E ð‘E ø‘E  ’E ’E ’E ’E  ’E (’E 0’E 8’E @’E H’E P’E X’E `’E h’E p’E x’E €’E ˆ’E �’E ˜’E  ’E ¨’E °’E ¸’E À’E È’E Ð’E Ø’E à’E è’E ð’E ø’E  “E “E “E “E  “E (“E 0“E 8“E @“E H“E P“E X“E `“E h“E p“E x“E €“E ˆ“E �“E ˜“E  “E ¨“E °“E ¸“E À“E È“E Ð“E Ø“E à“E è“E ð“E ø“E  ”E ”E ”E ”E  ”E (”E 0”E 8”E @”E H”E P”E X”E `”E h”E p”E x”E €”E ˆ”E �”E ˜”E  ”E ¨”E °”E ¸”E À”E È”E Ð”E Ø”E à”E è”E ð”E ø”E  •E •E •E •E  •E (•E 0•E 8•E @•E H•E P•E X•E `•E h•E p•E x•E €•E ˆ•E �•E ˜•E  •E ¨•E °•E ¸•E À•E È•E Ð•E Ø•E à•E è•E ð•E ø•E  –E –E –E –E  –E (–E 0–E 8–E @–E H–E P–E X–E `–E h–E p–E x–E €–E ˆ–E �–E ˜–E  –E ¨–E °–E ¸–E À–E È–E Ð–E Ø–E à–E è–E ð–E ø–E  —E —E —E —E  —E (—E 0—E 8—E @—E H—E P—E X—E `—E h—E p—E x—E €—E ˆ—E �—E ˜—E  —E ¨—E °—E ¸—E À—E È—E Ð—E Ø—E à—E è—E ð—E ø—E  ˜E ˜E ˜E ˜E  ˜E (˜E 0˜E 8˜E @˜E H˜E P˜E X˜E `˜E h˜E p˜E x˜E €˜E ˆ˜E �˜E ˜˜E  ˜E ¨˜E °˜E ¸˜E À˜E È˜E Ð˜E Ø˜E à˜E è˜E ð˜E ø˜E  ™E ™E ™E ™E  ™E (™E 0™E 8™E @™E H™E P™E X™E `™E h™E p™E x™E €™E ˆ™E �™E ˜™E  ™E ¨™E °™E ¸™E À™E È™E Ð™E Ø™E à™E è™E ð™E ø™E  šE šE šE šE  šE (šE 0šE 8šE @šE HšE PšE XšE `šE hšE pšE xšE €šE ˆšE �šE ˜šE  šE ¨šE °šE ¸šE ÀšE ÈšE ÐšE ØšE àšE èšE ðšE øšE  ›E ›E ›E ›E  ›E (›E 0›E 8›E @›E H›E P›E X›E `›E h›E p›E x›E €›E ˆ›E �›E ˜›E  ›E ¨›E °›E ¸›E À›E È›E Ð›E Ø›E à›E è›E ð›E ø›E  œE œE œE œE  œE (œE 0œE 8œE @œE HœE PœE XœE `œE hœE pœE xœE €œE ˆœE �œE ˜œE  œE ¨œE °œE ¸œE ÀœE ÈœE ÐœE ØœE àœE èœE ðœE øœE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  žE žE žE žE  žE (žE 0žE 8žE @žE HžE PžE XžE `žE hžE pžE xžE €žE ˆžE �žE ˜žE  žE ¨žE °žE ¸žE ÀžE ÈžE ÐžE ØžE àžE èžE ðžE øžE  ŸE ŸE ŸE ŸE  ŸE (ŸE 0ŸE 8ŸE @ŸE HŸE PŸE XŸE `ŸE hŸE pŸE xŸE €ŸE ˆŸE �ŸE ˜ŸE  ŸE ¨ŸE °ŸE ¸ŸE ÀŸE ÈŸE ÐŸE ØŸE àŸE èŸE ðŸE øŸE   E  E  E  E   E ( E 0 E 8 E @ E H E P E X E ` E h E p E x E € E ˆ E � E ˜ E   E ¨ E ° E ¸ E À E È E Ð E Ø E à E è E ð E ø E  ¡E ¡E ¡E ¡E  ¡E (¡E 0¡E 8¡E @¡E H¡E P¡E X¡E `¡E h¡E p¡E x¡E €¡E ˆ¡E �¡E ˜¡E  ¡E ¨¡E °¡E ¸¡E À¡E È¡E Ð¡E Ø¡E à¡E è¡E ð¡E ø¡E  ¢E ¢E ¢E ¢E  ¢E (¢E 0¢E 8¢E @¢E H¢E P¢E X¢E `¢E h¢E p¢E x¢E €¢E ˆ¢E �¢E ˜¢E  ¢E ¨¢E °¢E ¸¢E À¢E È¢E Ð¢E Ø¢E à¢E è¢E ð¢E ø¢E  £E £E £E £E  £E (£E 0£E 8£E @£E H£E P£E X£E `£E h£E p£E x£E €£E ˆ£E �£E ˜£E  £E ¨£E °£E ¸£E À£E È£E Ð£E Ø£E à£E è£E ð£E ø£E  ¤E ¤E ¤E ¤E  ¤E (¤E 0¤E 8¤E @¤E H¤E P¤E X¤E `¤E h¤E p¤E x¤E €¤E ˆ¤E �¤E ˜¤E  ¤E ¨¤E °¤E ¸¤E À¤E È¤E Ð¤E Ø¤E à¤E è¤E ð¤E ø¤E  ¥E ¥E ¥E ¥E  ¥E (¥E 0¥E 8¥E @¥E H¥E P¥E X¥E `¥E h¥E p¥E x¥E €¥E ˆ¥E �¥E ˜¥E  ¥E ¨¥E °¥E ¸¥E À¥E È¥E Ð¥E Ø¥E à¥E è¥E ð¥E ø¥E  ¦E ¦E ¦E ¦E  ¦E (¦E 0¦E 8¦E @¦E H¦E P¦E X¦E `¦E h¦E p¦E x¦E €¦E ˆ¦E �¦E ˜¦E  ¦E ¨¦E °¦E ¸¦E À¦E È¦E Ð¦E Ø¦E à¦E è¦E ð¦E ø¦E  §E §E §E §E  §E (§E 0§E 8§E @§E H§E P§E X§E `§E h§E p§E x§E €§E ˆ§E �§E ˜§E  §E ¨§E °§E ¸§E À§E È§E Ð§E Ø§E à§E è§E ð§E ø§E  ¨E ¨E ¨E ¨E  ¨E (¨E 0¨E 8¨E @¨E H¨E P¨E X¨E `¨E h¨E p¨E x¨E €¨E ˆ¨E �¨E ˜¨E  ¨E ¨¨E °¨E ¸¨E À¨E È¨E Ð¨E Ø¨E à¨E è¨E ð¨E ø¨E  ©E ©E ©E ©E  ©E (©E 0©E 8©E @©E H©E P©E X©E `©E h©E p©E x©E €©E ˆ©E �©E ˜©E  ©E ¨©E °©E ¸©E À©E È©E Ð©E Ø©E à©E è©E ð©E ø©E  ªE ªE ªE ªE  ªE (ªE 0ªE 8ªE @ªE HªE PªE XªE `ªE hªE pªE xªE €ªE ˆªE �ªE ˜ªE  ªE ¨ªE °ªE ¸ªE ÀªE ÈªE ÐªE ØªE àªE èªE ðªE øªE  «E «E «E «E  «E («E 0«E 8«E @«E H«E P«E X«E `«E h«E p«E x«E €«E ˆ«E �«E ˜«E  «E ¨«E °«E ¸«E À«E È«E Ð«E Ø«E à«E è«E ð«E ø«E  ¬E ¬E ¬E ¬E  ¬E (¬E 0¬E 8¬E @¬E H¬E P¬E X¬E `¬E h¬E p¬E x¬E €¬E ˆ¬E �¬E ˜¬E  ¬E ¨¬E °¬E ¸¬E À¬E È¬E Ð¬E Ø¬E à¬E è¬E ð¬E ø¬E  ­E ­E ­E ­E  ­E (­E 0­E 8­E @­E H­E P­E X­E `­E h­E p­E x­E €­E ˆ­E �­E ˜­E  ­E ¨­E °­E ¸­E À­E È­E Ð­E Ø­E à­E è­E ð­E ø­E  ®E ®E ®E ®E  ®E (®E 0®E 8®E @®E H®E P®E X®E `®E h®E p®E x®E €®E ˆ®E �®E ˜®E  ®E ¨®E °®E ¸®E À®E È®E Ð®E Ø®E à®E è®E ð®E ø®E  ¯E ¯E ¯E ¯E  ¯E (¯E 0¯E 8¯E @¯E H¯E P¯E X¯E `¯E h¯E p¯E x¯E €¯E ˆ¯E �¯E ˜¯E  ¯E ¨¯E °¯E ¸¯E À¯E È¯E Ð¯E Ø¯E à¯E è¯E ð¯E ø¯E  °E °E °E °E  °E (°E 0°E 8°E @°E H°E P°E X°E `°E h°E p°E x°E €°E ˆ°E �°E ˜°E  °E ¨°E °°E ¸°E À°E È°E Ð°E Ø°E à°E è°E ð°E ø°E  ±E ±E ±E ±E  ±E (±E 0±E 8±E @±E H±E P±E X±E `±E h±E p±E x±E €±E ˆ±E �±E ˜±E  ±E ¨±E °±E ¸±E À±E È±E Ð±E Ø±E à±E è±E ð±E ø±E  ²E ²E ²E ²E  ²E (²E 0²E 8²E @²E H²E P²E X²E `²E h²E p²E x²E €²E ˆ²E �²E ˜²E  ²E ¨²E °²E ¸²E À²E È²E Ð²E Ø²E à²E è²E ð²E ø²E  ³E ³E ³E ³E  ³E (³E 0³E 8³E @³E H³E P³E X³E `³E h³E p³E x³E €³E ˆ³E �³E ˜³E  ³E ¨³E °³E ¸³E À³E È³E Ð³E Ø³E à³E è³E ð³E ø³E  ´E ´E ´E ´E  ´E (´E 0´E 8´E @´E H´E P´E X´E `´E h´E p´E x´E €´E ˆ´E �´E ˜´E  ´E ¨´E °´E ¸´E À´E È´E Ð´E Ø´E à´E è´E ð´E ø´E  µE µE µE µE  µE (µE 0µE 8µE @µE HµE PµE XµE `µE hµE pµE xµE €µE ˆµE �µE ˜µE  µE ¨µE °µE ¸µE ÀµE ÈµE ÐµE ØµE àµE èµE ðµE øµE  ¶E ¶E ¶E ¶E  ¶E (¶E 0¶E 8¶E @¶E H¶E P¶E X¶E `¶E h¶E p¶E x¶E €¶E ˆ¶E �¶E ˜¶E  ¶E ¨¶E °¶E ¸¶E À¶E È¶E Ð¶E Ø¶E à¶E è¶E ð¶E ø¶E  ·E ·E ·E ·E  ·E (·E 0·E 8·E @·E H·E P·E X·E `·E h·E p·E x·E €·E ˆ·E �·E ˜·E  ·E ¨·E °·E ¸·E À·E È·E Ð·E Ø·E à·E è·E ð·E ø·E  ¸E ¸E ¸E ¸E  ¸E (¸E 0¸E 8¸E @¸E H¸E P¸E X¸E `¸E h¸E p¸E x¸E €¸E ˆ¸E �¸E ˜¸E  ¸E ¨¸E °¸E ¸¸E À¸E È¸E Ð¸E Ø¸E à¸E è¸E ð¸E ø¸E  ¹E ¹E ¹E ¹E  ¹E (¹E 0¹E 8¹E @¹E H¹E P¹E X¹E `¹E h¹E p¹E x¹E €¹E ˆ¹E �¹E ˜¹E  ¹E ¨¹E °¹E ¸¹E À¹E È¹E Ð¹E Ø¹E à¹E è¹E ð¹E ø¹E  ºE ºE ºE ºE  ºE (ºE 0ºE 8ºE @ºE HºE PºE XºE `ºE hºE pºE xºE €ºE ˆºE �ºE ˜ºE  ºE ¨ºE °ºE ¸ºE ÀºE ÈºE ÐºE ØºE àºE èºE ðºE øºE  »E »E »E »E  »E (»E 0»E 8»E @»E H»E P»E X»E `»E h»E p»E x»E €»EÙ53ee53c46-38f7-11f0-16c9-2b093684d981/dc5f2c047336b14a„¦layout‚¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data’„¡yÈ.à                                                                                                                                                                                                                                                                                                                                                                                                                    ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?š™?š™?š™?333?333?333?333?333?333?333?333?333?333?ÍÌL?ÍÌL?ÍÌL?ÍÌL?fff?  €?ÍÌŒ?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?33³?33³?33³?33³?33³?33³?33³?  À?š™Ù?š™Ù?š™Ù?ffæ?ffæ?33ó?33ó?33ó?33ó?   @   @ff@ff@ff@ÍÌ@ÍÌ@ÍÌ@33@   @   @   @   @   @ff&@ÍÌ,@ÍÌ,@333@  @@  @@ffF@ÍÌL@ÍÌL@33S@33S@š™Y@š™Y@š™Y@fff@ÍÌl@33s@š™y@  €@ff†@ff†@š™‰@š™‰@š™‰@š™‰@ÍÌŒ@ff–@ff–@ff–@ff–@   @33£@33£@33£@33£@ff¦@ÍÌ¬@ÍÌ¬@  °@  °@š™¹@š™¹@ÍÌ¼@ÍÌ¼@ÍÌ¼@  À@š™É@š™É@ÍÌÌ@ÍÌÌ@  Ð@ffÖ@š™Ù@š™Ù@ÍÌÜ@ÍÌÜ@33ã@33ã@ffæ@š™é@š™é@ÍÌì@  ð@  ð@33ó@ffö@ffö@š™ù@š™ù@   A   A   A33AÍÌAffAffA  A  A  Aš™	AÍÌA  A  Aš™Aš™A33A33AÍÌAÍÌA  Aš™A33AÍÌAffAffA33#A33#A33#A33#Aff&A  (Aš™)Aš™)Aš™)Aš™)Aš™1Aš™1A333A333A333AÍÌ4A  8A  8A  8A  8A33;A33;AÍÌ<Aff>Aš™AAš™AAffFAffFAffFA  HAš™IAš™IA33KA33KAÍÌLAÍÌLA33SAÍÌTAffVA  XAš™YAš™YA33[A33[A33[A33[Aff^Aff^Aš™aAÍÌdA  hA  hAš™iAš™iAš™iAš™iA33kAÍÌlAÍÌlA  pA  pA  pAÍÌtAÍÌtAffvA  xA33{A33{A33{Aff~Aff~A  €A  €A  €Aš™�A33ƒAÍÌ„AÍÌ„AÍÌ„AÍÌ„AÍÌ„Aš™…Aff†A33‡A33‡A  ˆAš™‰AffŠA  ŒA  ŒAÍÌŒAÍÌŒAÍÌŒAffŽAffŽA33�A33�A  �Aš™‘Aff’A33“AÍÌ”AÍÌ”Aff–Aff–Aff–Aff–A  ˜A  ˜AÍÌ˜AÍÌ˜Aš™™AffšA  œAÍÌœAš™�Aš™�A33ŸA33ŸAÍÌ AÍÌ Aš™¡Aš™¡Aš™¡Aš™¡Aff¢A33£AÍÌ¤Aff¦A33§A33§AÍÌ¨AÍÌ¨Aš™©Aš™©AffªAffªA33«A33«A  ¬AÍÌ¬Aff®Aff®Aff®A33¯AÍÌ°Aš™±Aff²Aff²A  ´AÍÌ´Aš™µAš™µAš™µAff¶Aff¶Aff¶A33·AÍÌ¸A33»A  ¼AÍÌ¼AÍÌ¼AÍÌ¼AÍÌ¼Aš™½Aff¾A33¿A  ÀAffÂAffÂAffÂAffÂAffÂA  ÄA  ÄAÍÌÄAÍÌÄAffÆAÍÌÈAš™ÉAš™ÉAš™ÉAš™ÉAš™ÉAš™ÉAffÊAffÊAÍÌÌAffÎAffÎA33ÏAÍÌÐAš™ÑAš™ÑAš™ÑAš™ÑAš™ÑA  ÔAffÖAffÖAffÖA33×A33×A  ØAÍÌØAÍÌØAÍÌØAš™ÙAÍÌÜAš™ÝAš™ÝAffÞAffÞAffÞA33ßA33ßA33ßA  àAÍÌàAš™áA  äA  äA  äA  äAš™åAš™åAffæA33çA  èAÍÌèAš™éAš™éA  ìA  ìA  ìA  ìAÍÌìAffîAffîAffîA  ðAÍÌðAš™ñAffòA33óA  ôA  ôAÍÌôAš™õAš™õA33÷A  øAš™ùAffúAffúAffúAffúA  üA  üAÍÌüAffþA33ÿA   Bff Bff BÍÌ BÍÌ B33B33B  BffB33B33B  B  BffBffBÍÌBÍÌBš™B  BffBÍÌBÍÌB33B  B  BffBffB33	B  
B  
Bff
Bff
B33B33B33Bš™B  BÍÌB33Bš™B  BffBÍÌB33B33B33Bš™Bš™Bš™BffBÍÌBš™Bš™BffBÍÌBÍÌB33B33B33Bš™Bš™B33Bš™Bš™B  BffBffBÍÌB33Bš™Bš™B  BffBffB33Bš™Bš™Bš™Bš™BÍÌB33Bš™B  BffB33Bš™Bš™Bš™Bš™B  B  B33B   Bff B33!B33!B33!B33!B33!Bš™!Bš™!Bff"Bš™#Bff$Bff$Bff$B33%B33%B33%B33%Bš™%B  &BÍÌ&B33'Bš™'Bff(Bff(B33)B33)B33)B33)B33)B33)Bff*Bff*Bš™+Bš™+B  ,Bff,B33-B33-B33-B33-Bš™-B  .Bff.Bff.BÍÌ.B33/Bff0BÍÌ0BÍÌ0B331B331B331B  2B  2Bff2BÍÌ2Bš™3Bš™3Bš™3B  4BÍÌ4B335B  6B  6B  6BÍÌ6B337B337B337Bš™7Bff8Bff8BÍÌ8B339Bš™9BÍÌ:BÍÌ:B33;B33;B33;B  <B  <Bff<BÍÌ<BÍÌ<B33=B  >Bff>BÍÌ>B33?B  @B  @B  @Bff@BÍÌ@BÍÌ@B33ABš™AB  BBÍÌBBš™CB  DB  DB  DBÍÌDBÍÌDB33EBš™EB  FBffFBffFBÍÌFB33GB  HBffHBffHBffHBÍÌHB  JB  JB  JB  JB  JBÍÌJBš™KBš™KBš™KBffLB33MB33MB33MBš™MB  NB  NBffNBÍÌNB33OB  PBffPBÍÌPBÍÌPBš™QBš™QBš™QBš™QB  RBffRB33SBš™SB  TBffTBÍÌTBÍÌTB33UBš™UBš™UBš™UBffVBÍÌVBÍÌVBš™WBš™WBÍÌXB33YB33YBš™YBš™YBš™YBš™YB  ZB  ZBÍÌZB  \Bff\BÍÌ\B33]Bš™]Bš™]Bš™]B  ^B  ^B  ^Bff^Bš™_B  `Bff`B33aB33aBš™aB  bB  bB  bBffbBÍÌbB33cB  dBffdBffdBÍÌdBš™eBš™eBš™eB  fB  fBfffBÍÌfBš™gBffhBffhBÍÌhBÍÌhB33iB33iB33iB33iB  jB33kB33kB  lBfflBfflBÍÌlBÍÌlBÍÌlBÍÌlBš™mBffnBffnB33oBš™oB  pBÍÌpBÍÌpBÍÌpBÍÌpB33qB  rB  rB  rBÍÌrB33sB  tBfftBfftBÍÌtB33uBš™uB  vB  vB  vB  vBÍÌvBš™wB  xB  xBffxB33yBš™yB  zB  zB  zBffzB33{B33{Bš™{Bff|BÍÌ|B33}B33}Bš™}B  ~Bff~B33B33Bš™B  €B33€B33€B33€Bff€Bff€B  �Bff�Bš™�BÍÌ�BÍÌ�BÍÌ�B33‚B33‚Bff‚Bff‚Bš™‚B  ƒB33ƒB33ƒBffƒBÍÌƒB  „B  „Bff„Bff„Bff„Bš™„BÍÌ„B  …B33…B33…BÍÌ…B  †B33†B33†Bff†Bš™†BÍÌ†B  ‡B33‡B33‡B33‡Bš™‡BÍÌ‡BÍÌ‡B  ˆB  ˆBffˆBffˆBš™ˆBš™ˆB  ‰Bff‰Bš™‰Bš™‰BÍÌ‰B  ŠBffŠBffŠBffŠBffŠBš™ŠB  ‹B33‹B33‹Bš™‹BÍÌ‹BÍÌ‹B  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒB33ŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒB  �B  �B  �B  �B  �B  �B  �B33�B33�B33�B33�B33�B33�B33�B33�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bš™�Bš™�Bš™�Bš™�Bš™�BÍÌ�B  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB33ŽB33ŽB33ŽB33ŽB33ŽB33ŽBffŽBš™ŽBš™ŽBš™ŽBš™ŽBš™ŽBš™ŽBš™ŽBš™ŽBš™ŽBš™ŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽB  �B  �B  �Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bš™�Bš™�BÍÌ�B  �B  �B  �B  �B  �B  �B  �B  �B  �B33�B33�B33�B33�Bff�Bff�Bff�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ‘B33‘B33‘B33‘B33‘B33‘B33‘B33‘B33‘B33‘B33‘B33‘B33‘B33‘Bff‘Bff‘Bff‘Bff‘BÍÌ‘BÍÌ‘BÍÌ‘B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B33’B33’B33’Bff’Bff’Bff’Bš™’Bš™’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’B  “B  “B  “B33“B33“Bff“Bš™“Bš™“Bš™“Bš™“Bš™“Bš™“BÍÌ“BÍÌ“BÍÌ“BÍÌ“BÍÌ“BÍÌ“BÍÌ“B  ”B  ”B  ”B33”Bff”Bff”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”BÍÌ”BÍÌ”BÍÌ”B  •B  •B  •B33•B33•B33•B33•B33•Bff•Bff•Bff•Bff•Bff•Bff•Bff•Bff•Bš™•Bš™•BÍÌ•BÍÌ•BÍÌ•B  –B  –B  –B33–B33–B33–Bff–Bff–Bff–Bff–Bff–Bff–Bff–Bš™–Bš™–Bš™–Bš™–BÍÌ–B  —B33—B33—B33—B33—B33—B33—B33—Bff—Bff—Bš™—BÍÌ—BÍÌ—BÍÌ—BÍÌ—B  ˜B  ˜B  ˜B  ˜B  ˜B  ˜B  ˜B  ˜Bff˜Bff˜Bff˜Bff˜Bš™˜BÍÌ˜BÍÌ˜B  ™B  ™B  ™B  ™B  ™B33™B33™B33™B33™B33™B33™B33™B33™Bff™Bff™Bff™Bš™™Bš™™BÍÌ™BÍÌ™BÍÌ™B  šB  šB33šBffšBffšBffšBffšBffšBffšBš™šBš™šBš™šBš™šBš™šBš™šBÍÌšB  ›B  ›B33›Bff›Bff›Bff›Bff›Bš™›Bš™›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›B  œB  œBffœBffœBffœBffœBffœBffœBffœBÍÌœBÍÌœBÍÌœBÍÌœB  �B  �B  �B  �B  �B  �B  �Bff�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�BÍÌ�B  žB33žB33žB33žB33žB33žB33žBffžBffžBÍÌžBÍÌžBÍÌžBÍÌžBÍÌžBÍÌžBÍÌžB  ŸB33ŸB33ŸB33ŸB33ŸBffŸBffŸBffŸBffŸBš™ŸBÍÌŸB   B   B   B   B33 Bff Bš™ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ B  ¡B  ¡B  ¡B33¡B33¡B33¡Bff¡Bff¡BÍÌ¡BÍÌ¡B33¢B33¢B33¢B33¢B33¢B33¢B33¢Bff¢Bff¢Bff¢Bš™¢Bš™¢BÍÌ¢BÍÌ¢B33£Bff£Bš™£Bš™£BÍÌ£BÍÌ£BÍÌ£B  ¤B  ¤B  ¤B  ¤B  ¤B  ¤B  ¤B  ¤B  ¤Bff¤BÍÌ¤B  ¥B  ¥B33¥B33¥B33¥B33¥B33¥Bff¥Bff¥Bff¥Bš™¥Bš™¥Bš™¥Bš™¥BÍÌ¥BÍÌ¥B33¦B33¦Bš™¦B  §B  §B  §B  §B  §B  §B33§Bff§Bff§Bff§Bff§Bff§Bff§BÍÌ§BÍÌ§B  ¨B33¨Bff¨B  ©B  ©B  ©B  ©B  ©B33©Bff©Bff©Bff©Bff©Bff©Bš™©Bš™©Bš™©BÍÌ©B  ªB33ªBffªBffªBÍÌªBÍÌªB  «B33«B33«B33«B33«Bff«Bff«Bff«Bš™«BÍÌ«BÍÌ«BÍÌ«BÍÌ«B  ¬B  ¬B33¬Bff¬BÍÌ¬B  ­B  ­B  ­B33­B33­B33­B33­Bff­Bš™­Bš™­Bš™­BÍÌ­B  ®B  ®B33®Bff®Bff®Bš™®Bš™®Bš™®Bš™®Bš™®B33¯B33¯B33¯B33¯Bff¯Bff¯Bš™¯BÍÌ¯BÍÌ¯B33°Bff°Bff°Bff°Bff°Bff°Bff°Bš™°BÍÌ°BÍÌ°BÍÌ°BÍÌ°BÍÌ°B33±B33±Bff±BÍÌ±BÍÌ±BÍÌ±BÍÌ±BÍÌ±Bff²Bff²Bš™²Bš™²Bš™²Bš™²Bš™²BÍÌ²B  ³B  ³B  ³B33³Bff³Bff³Bš™³BÍÌ³BÍÌ³B  ´B33´Bff´Bff´Bff´Bš™´Bš™´BÍÌ´B  µB  µB33µB33µB33µBffµBffµBffµBš™µB  ¶B  ¶B33¶Bff¶Bff¶Bff¶Bš™¶Bš™¶Bš™¶BÍÌ¶B33·B33·B33·B33·B33·B33·Bš™·Bš™·Bš™·Bš™·Bš™·BÍÌ·B  ¸B  ¸B33¸B33¸Bff¸Bš™¸B  ¹B  ¹B  ¹B  ¹B  ¹B  ¹B33¹B33¹Bš™¹Bš™¹Bš™¹Bš™¹BÍÌ¹B  ºB33ºB33ºBffºBffºBš™ºBÍÌºB  »B  »B  »B  »B33»B33»B33»B33»Bff»Bff»Bff»Bff»BÍÌ»B  ¼B  ¼B33¼BÍÌ¼BÍÌ¼BÍÌ¼B  ½B  ½B  ½B33½B33½B33½B33½B33½B33½Bš™½BÍÌ½BÍÌ½BÍÌ½BÍÌ½BÍÌ½Bff¾Bff¾Bš™¾BÍÌ¾BÍÌ¾BÍÌ¾B  ¿B33¿B33¿B33¿Bff¿Bff¿Bš™¿Bš™¿BÍÌ¿BÍÌ¿BÍÌ¿BÍÌ¿B33ÀB33ÀB33ÀB33ÀBš™ÀBÍÌÀBÍÌÀB  ÁB  ÁB  ÁBffÁBš™ÁBš™ÁBš™ÁBÍÌÁBÍÌÁB  ÂB  ÂB  ÂB  ÂB33ÂBffÂBffÂBš™ÂBš™ÂBÍÌÂB  ÃB33ÃB33ÃBffÃBffÃBš™ÃBš™ÃBÍÌÃB  ÄB  ÄB33ÄB33ÄB33ÄBffÄBffÄBÍÌÄBÍÌÄBÍÌÄBÍÌÄB  ÅB  ÅB33ÅBffÅBffÅBffÅBffÅBÍÌÅBÍÌÅB  ÆB33ÆB33ÆB33ÆBffÆBš™ÆBš™ÆBÍÌÆBÍÌÆB  ÇB  ÇB33ÇB33ÇBffÇBffÇBffÇBffÇBffÇBš™ÇB  ÈB  ÈB  ÈB33ÈBffÈBš™ÈBš™ÈBš™ÈBš™ÈBÍÌÈB  ÉB  ÉB33ÉB33ÉBffÉBffÉBš™ÉBš™ÉBÍÌÉBÍÌÉBÍÌÉB  ÊBffÊBffÊBffÊBffÊBffÊBÍÌÊB  ËB  ËB  ËB  ËBš™ËBš™ËBÍÌËBÍÌËBÍÌËBÍÌËB  ÌB  ÌB  ÌB  ÌB  ÌBffÌBffÌBffÌBš™ÌBÍÌÌBffÍBffÍBffÍBffÍBš™ÍBš™ÍBÍÌÍBÍÌÍBÍÌÍBÍÌÍBÍÌÍB  ÎB33ÎBffÎBffÎBffÎBš™ÎBš™ÎB  ÏB  ÏB  ÏB  ÏB33ÏBffÏBffÏBÍÌÏBÍÌÏB  ÐB33ÐB33ÐB33ÐBffÐBffÐBffÐBš™ÐBš™ÐBÍÌÐBÍÌÐB  ÑB  ÑB  ÑB  ÑB  ÑB33ÑBÍÌÑBÍÌÑBÍÌÑB  ÒB  ÒB  ÒB33ÒB33ÒBffÒBÍÌÒBÍÌÒBÍÌÒB  ÓB  ÓB  ÓB  ÓBš™ÓBÍÌÓBÍÌÓB  ÔB  ÔB  ÔB  ÔB  ÔB  ÔB33ÔBffÔBffÔBš™ÔBÍÌÔBÍÌÔBÍÌÔB33ÕBffÕBffÕBÍÌÕBÍÌÕBÍÌÕBÍÌÕBÍÌÕBÍÌÕBÍÌÕB33ÖB33ÖBffÖBš™ÖBš™ÖBš™ÖB  ×B  ×B  ×B  ×Bff×BÍÌ×BÍÌ×BÍÌ×BÍÌ×BÍÌ×B  ØB  ØB33ØB33ØB33ØBffØBš™ØBš™ØB  ÙB  ÙB  ÙB33ÙBffÙBš™ÙBš™ÙBš™ÙBÍÌÙBÍÌÙBÍÌÙBÍÌÙBÍÌÙB  ÚB33ÚB33ÚBš™ÚBš™ÚBÍÌÚBÍÌÚBffÛBffÛBš™ÛBš™ÛBÍÌÛBÍÌÛBÍÌÛBÍÌÛBÍÌÛBÍÌÛB  ÜB  ÜB33ÜB33ÜBš™ÜBÍÌÜB  ÝB33ÝB33ÝB33ÝBš™ÝBš™ÝBš™ÝBš™ÝBÍÌÝBÍÌÝB  ÞB  ÞB  ÞB  ÞB33ÞBffÞBš™ÞBš™ÞBš™ÞB  ßB33ßB33ßBffßBffßBffßBš™ßBÍÌßB  àB  àB  àB  àB33àBffàBffàBffàBš™àBÍÌàB  áB33áB33áB33áBffáBffáBš™áBš™áBÍÌáBÍÌáBÍÌáB  âB  âB  âBffâBffâBÍÌâB  ãB33ãB33ãB33ãB33ãBffãBffãBffãBffãBš™ãBÍÌãBÍÌãBÍÌãB33äBffäBš™äBš™äBš™äBÍÌäBÍÌäB  åB33åBffåBffåBffåBffåBffåBffåBffåBÍÌåB  æB  æB33æB33æBffæBffæBš™æBÍÌæB33çBffçBffçBffçBffçBffçBffçBš™çBš™çBš™çBš™çBÍÌçB33èB33èBffèBffèBffèBš™èBÍÌèB  éB33éB33éBfféBfféBfféBfféBfféBfféBfféBÍÌéBffêBffêBffêBffêBffêB  ëB  ëB  ëB  ëB  ëB33ëB33ëB33ëB33ëB33ëB33ëBffëB  ìB  ìB  ìBffìBffìBffìBffìBš™ìB  íB  íB33íB33íB33íB33íB33íB33íB33íB33íBÍÌíB33îBffîBffîBffîBš™îBÍÌîBÍÌîBÍÌîBÍÌîB  ïB  ïB33ïB33ïB33ïB33ïBffïBš™ïB  ðBffðBffðBš™ðBš™ðBš™ðBš™ðBš™ðBš™ðBš™ðB  ñB  ñB  ñB  ñB  ñB33ñBš™ñBš™ñB  òB  òB33òBš™òBš™òBš™òBš™òBš™òBš™òBš™òB  óB  óB  óB  óB  óB33óBffóBffóBš™óBÍÌóBÍÌóBffôBffôBš™ôBš™ôBš™ôBÍÌôBÍÌôBÍÌôBÍÌôBÍÌôB  õB  õB  õBffõBÍÌõBÍÌõBÍÌõB  öB  öB  öB  öB  öB33öBfföBš™öBš™öB  ÷B  ÷B  ÷B33÷Bff÷Bff÷Bš™÷Bš™÷Bš™÷Bš™÷BÍÌ÷BÍÌ÷B  øBfføBfføBfføBfføBfføBÍÌøB  ùB  ùB33ùB33ùB33ùBffùBffùBš™ùBš™ùBÍÌùB33úBffúBffúBffúBffúBš™úBš™úBš™úBÍÌúB  ûB  ûB  ûB  ûB  ûB  ûB  ûBffûBÍÌûB  üB33üBffüBš™üBš™üBš™üBš™üBš™üBÍÌüBÍÌüBÍÌüBÍÌüBÍÌüBÍÌüB33ýBffýBš™ýBÍÌýBffþBš™þBš™þBš™þBš™þBš™þBš™þBš™þBš™þBš™þBÍÌþBÍÌþBÍÌþBÍÌþBÍÌþBffÿBffÿBÍÌÿB   C   C   C33 C33 C33 CÍL CÍL Cff Cff Cff Cff Cff C € Cš™ C3³ C3³ Cfæ C  CšC33C33C33C33CÍLCffCffCffCffCffCffCffCffC3³CÍÌCfæCfæC  C  C  C33C33CÍLCÍLCÍLCffCffCffCffC €C €C €Cš™C3³C3³CÍÌCfæCfæCfæCfæC  CÍLCffCffCffCffCffCffCffC €Cš™C3³CÍÌCÍÌCÍÌCÍÌCfæC33CÍLCÍLCffCffCffCffCffCffCffCš™C3³C3³C3³C3³CÍÌC  C  CšCÍLCÍLCffCffCffCffCffCffC €C €Cš™C3³C3³C3³CfæCfæC  C  C33CÍLCÍLCÍLCÍLCÍLCffCffCffC €C3³C3³C3³C3³CÍÌCÍÌCÍÌC  CšC33C33CÍLCÍLCÍLCÍLCÍLCš™C3³C3³C3³C3³C3³CÍÌCÍÌCfæC  CšC33C33CÍLCÍLCÍLC €C €Cš™C3³C3³C3³CÍÌCÍÌCfæCfæCfæCš	Cš	Cš	Cš	CÍL	CÍL	CÍL	Cff	Cff	Cš™	Cš™	C3³	C3³	C3³	CÍÌ	CÍÌ	Cfæ	Cfæ	Cfæ	C  
Cš
Cš
Cš
C33
C33
Cff
Cff
C €
C €
C3³
C3³
C3³
C3³
C3³
Cfæ
C  CšCšCšCšCšCffCffCffC €C €C €C €C €Cš™Cš™C3³CfæCfæC  C  C  CšC33C33CÍLCÍLCÍLCffCffC €C €C €Cš™CÍÌCÍÌCÍÌC  C  C  CšC33C33CÍLCÍLCÍLC €C €C €C €Cš™Cš™Cš™CÍÌCÍÌCÍÌCfæC  C  CšCšC33C33CÍLCÍLCffC €C €Cš™C3³C3³C3³CÍÌCÍÌCÍÌCfæC  C  C33C33C33C33CÍLCÍLCffCš™Cš™C3³C3³C3³C3³CÍÌCfæCfæC  CšCšCšCšC33C33C33C33CÍLCffCš™Cš™C3³C3³CfæCfæCfæC  C  C  CšCšCšCšC33CÍLCÍLCÍLCÍLC €C3³C3³CÍÌCÍÌCfæC  CšCšCšCšC33C33CÍLCÍLCÍLCÍLC €C3³C3³C3³C3³CÍÌCfæC  CšCšC33C33C33CÍLCÍLCÍLCÍLCffC €Cš™C3³C3³C3³CÍÌCfæC  CšC33C33C33C33CÍLCÍLCffCffCffCffC €C €C €C3³C3³C  CšC33C33C33C33C33C33C33CffCffCffCffCffC €C €C €Cš™CÍÌCfæC  CšCšCšCšC33C33C33C33C33CÍLCffC €Cš™C3³C3³C3³CÍÌCfæCšCšCšCšC33C33C33C33CÍLCÍLCffC €Cš™C3³C3³C3³CÍÌCfæC  C  CšC33C33C33C33C33C33C33CÍLC €C3³C3³CÍÌCÍÌCfæCfæCfæC  CšCšCšCšC33C33C33C €C3³C3³CÍÌCÍÌCfæCfæCfæCfæCfæC  C  C  CšCšC33CÍLCffC €Cš™C3³CÍÌCÍÌCfæCfæCfæCfæCfæCfæCšCšCšC33CÍLCÍLC €C €C3³CÍÌCfæCfæCfæCfæCfæCfæC  C  C  CšC33CÍLC¤type§scatter¤name§Dyna-Q+¡xÈ.à  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;E„¡yÈ.à                                                                                                                                                                                                                                                        ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?333?333?333?333?333?333?333?333?ÍÌL?ÍÌL?fff?fff?fff?fff?  €?  €?  €?  €?  €?  €?ÍÌŒ?ÍÌŒ?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?33³?33³?33³?33³?33³?33³?33³?33³?33³?33³?  À?  À?  À?  À?  À?  À?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?š™Ù?33ó?33ó?33ó?33ó?33ó?33ó?33ó?   @   @ff@ÍÌ@33@š™@š™@š™@š™@š™@š™@š™@ff&@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@š™9@š™9@š™9@š™9@š™9@  @@ffF@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@33S@33S@33S@  `@fff@fff@fff@ÍÌl@ÍÌl@ÍÌl@ÍÌl@ÍÌl@33s@  €@33ƒ@33ƒ@33ƒ@33ƒ@ff†@š™‰@š™‰@š™‰@š™‰@  �@ff–@ff–@ff–@ff–@š™™@š™™@ÍÌœ@   @   @ff¦@š™©@š™©@ÍÌ¬@ÍÌ¬@  °@  °@  °@  °@33³@ÍÌ¼@  À@  À@  À@  À@ffÆ@ffÆ@ffÆ@ffÆ@š™É@  Ð@ffÖ@š™Ù@š™Ù@š™Ù@ÍÌÜ@ÍÌÜ@  à@  à@  à@ffæ@š™é@ÍÌì@  ð@ffö@š™ù@š™ù@š™ù@š™ù@ÍÌü@š™A33A33A33A33AffA  A  A  A  A33AffAffA  A  Aš™Aš™A33AÍÌAÍÌA  Aš™Aš™AÍÌAÍÌAffAffAffAffA   AÍÌ$Aff&Aff&A  (A  (A33+A33+AÍÌ,AÍÌ,AÍÌ,Aš™1AÍÌ4Aff6A  8A  8Aš™9Aš™9AÍÌ<AÍÌ<AÍÌ<A  @Aš™AAš™AAÍÌDA  HAš™IAš™IA33KA33KAÍÌLA  PAš™QAš™QA33SA33SAffVA  XAš™YA33[A33[Aff^Aš™aAš™aA33cA33cAÍÌdAÍÌdA  hAš™iAš™iAÍÌlAffnA  pA33sA33sAÍÌtAÍÌtAffvAffvA  xAÍÌ|Aff~Aff~A  €A  €Aš™�Aff‚A33ƒA33ƒA33ƒAÍÌ„Aff†A33‡A  ˆA  ˆAÍÌˆAÍÌˆAffŠAffŠAffŠAÍÌŒAš™�Aš™�A33�A  �AÍÌ�AÍÌ�Aš™‘Aš™‘Aff’A  ”AÍÌ”AÍÌ”Aš™•Aff–A  ˜AÍÌ˜Aš™™Aš™™Aš™™A33›AÍÌœAÍÌœAš™�Aš™�AffžAffžA   Aš™¡Aš™¡A33£A  ¤A  ¤Aš™¥Aš™¥Aff¦Aff¦A33§A33§A  ¨AffªA33«A  ¬AÍÌ¬AÍÌ¬Aff®Aff®A33¯A33¯A33¯AÍÌ°Aff²A33³A  ´A  ´AÍÌ´Aš™µA33·A33·A33·AÍÌ¸Aš™¹Aš™¹A33»A  ¼AÍÌ¼AÍÌ¼Aš™½Aš™½Aff¾AÍÌÀAš™ÁAš™ÁAffÂAffÂA  ÄAÍÌÄAš™ÅAš™ÅAš™ÅA33ÇAÍÌÈAÍÌÈAš™ÉAffÊA33ËA33ËAÍÌÌAš™ÍAš™ÍA33ÏA  ÐA  ÐAš™ÑAš™ÑAffÒAffÒA33ÓA  ÔAÍÌÔA33×A  ØA  ØAÍÌØAÍÌØAffÚAffÚA33ÛA33ÛA33ÛAÍÌÜAffÞA  àAÍÌàAÍÌàAš™áAš™áA33ãA33ãA33ãAÍÌäAš™åAš™åA33çA  èAÍÌèAš™éAffêAffêA33ëAÍÌìAš™íAš™íAffîAffîA  ðAÍÌðAš™ñAš™ñAš™ñA  ôAš™õAš™õAfföAfföA33÷A33÷AÍÌøAš™ùAš™ùA33ûA  üA  üAš™ýAffþA33ÿA33ÿA   B   Bff Bš™B  B  BffBffB33B33Bš™B  B  BÍÌBš™B  BffBffBÍÌBÍÌBš™Bš™Bš™BffBÍÌB33	B  
Bff
BÍÌ
BÍÌ
B33B33Bš™BffBÍÌBÍÌB33B33B  BÍÌB33B33B33B  BÍÌBÍÌB33B33Bš™Bš™BffBÍÌBÍÌB  BffBffB33B33Bš™Bš™B  B  BffBš™B  B  BffBÍÌBš™Bš™B  B  B  BÍÌBš™B  BffBffBÍÌBÍÌBš™B  B  BÍÌB33B33B   Bff BÍÌ BÍÌ B33!B33!Bš™!Bff"BÍÌ"B33#Bš™#Bš™#Bff$BÍÌ$B33%B33%B33%B  &BÍÌ&BÍÌ&B33'B33'Bš™'B  (BÍÌ(B33)B33)B  *Bff*Bff*B33+B33+Bš™+Bš™+B  ,B  ,Bff,B  .Bff.Bff.BÍÌ.BÍÌ.Bš™/Bš™/B  0B  0B  0BÍÌ0Bš™1B  2Bff2BÍÌ2B333B333B  4B  4B  4BÍÌ4B335B335B  6Bff6BÍÌ6BÍÌ6B337Bš™7B  8BÍÌ8B339B339Bš™9Bš™9Bff:BÍÌ:B33;B33;B33;B  <BÍÌ<B33=Bš™=Bš™=B  >B  >BÍÌ>B33?B33?B  @Bff@Bff@B33AB33ABš™AB  BBffBBffBBÍÌBB  DBffDBffDBÍÌDBÍÌDBš™EBš™EB  FB  FB  FB33GB  HBffHBÍÌHBÍÌHB33IB33IB  JB  JB  JBÍÌJB33KB33KB  LBÍÌLB33MB33MBš™MBš™MB  NBÍÌNB33OB33OBš™OBš™OBffPBÍÌPB33QBš™QBš™QBffRB33SB33SBš™SBš™SB  TB  TBÍÌTB33UB33UB  VBffVBÍÌVBš™WBš™WB  XB  XBffXBffXBÍÌXB  ZBffZBffZBÍÌZBÍÌZBš™[B  \Bff\Bff\Bff\B33]B  ^Bff^BÍÌ^BÍÌ^B33_B33_B  `B  `B  `B33aBš™aBš™aBffbBÍÌbB33cB33cBš™cBš™cB  dBÍÌdB33eB33eBš™eB  fBÍÌfB33gBš™gBš™gBš™gBffhB33iB33iBš™iBš™iB  jB  jBÍÌjBš™kBš™kBfflBÍÌlBÍÌlBš™mBš™mB  nB  nBffnBffnBÍÌnB  pBffpBÍÌpB33qB33qB  rB  rBffrBffrBffrB33sB  tBfftBÍÌtBÍÌtB33uBš™uBffvBffvBffvB33wBš™wBš™wBffxBÍÌxB33yB33yBš™yBš™yB  zB33{Bš™{Bš™{B  |B  |BÍÌ|B33}Bš™}Bš™}Bš™}Bff~B33B33Bš™B  €B33€B33€Bš™€BÍÌ€BÍÌ€B33�Bff�Bff�BÍÌ�BÍÌ�B  ‚B  ‚B33‚Bff‚Bš™‚B33ƒBffƒBffƒBš™ƒBš™ƒB  „B  „B33„B33„B33„Bš™„B  …Bff…Bš™…Bš™…BÍÌ…BÍÌ…B33†B33†B33†Bš™†BÍÌ†BÍÌ†B33‡Bff‡Bš™‡BÍÌ‡B  ˆB  ˆB33ˆBš™ˆBÍÌˆBÍÌˆB  ‰B  ‰Bff‰Bš™‰BÍÌ‰BÍÌ‰BÍÌ‰BffŠBÍÌŠBÍÌŠB  ‹B  ‹B33‹B33‹Bš™‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹B  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB  ŒB33ŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒB  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B33�B33�B33�B33�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bš™�Bš™�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB  ŽB33ŽB33ŽB33ŽB33ŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBffŽBš™ŽBš™ŽBš™ŽBš™ŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽBÍÌŽB  �B  �B  �B33�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bš™�Bš™�Bš™�BÍÌ�B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B  �B33�B33�B33�Bff�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�B  ‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bff‘Bš™‘Bš™‘Bš™‘BÍÌ‘B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B  ’B33’B33’B33’Bff’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’B33“B33“B33“Bff“Bš™“Bš™“Bš™“Bš™“Bš™“Bš™“Bš™“Bš™“Bš™“Bš™“Bš™“BÍÌ“BÍÌ“BÍÌ“B33”B33”B33”Bff”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”Bš™”BÍÌ”BÍÌ”BÍÌ”BÍÌ”BÍÌ”B33•B33•B33•Bff•Bš™•Bš™•Bš™•Bš™•Bš™•Bš™•Bš™•BÍÌ•BÍÌ•BÍÌ•BÍÌ•BÍÌ•BÍÌ•BÍÌ•B33–B33–B33–Bff–Bš™–Bš™–Bš™–Bš™–Bš™–BÍÌ–BÍÌ–BÍÌ–BÍÌ–BÍÌ–BÍÌ–BÍÌ–BÍÌ–BÍÌ–B33—B33—B33—Bff—Bš™—Bš™—Bš™—BÍÌ—BÍÌ—BÍÌ—BÍÌ—BÍÌ—BÍÌ—BÍÌ—BÍÌ—BÍÌ—BÍÌ—BÍÌ—B33˜B33˜B33˜Bff˜Bš™˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜BÍÌ˜B33™B33™B33™Bš™™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™BÍÌ™B33šBffšBffšBš™šBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšB  ›Bff›Bff›Bff›Bš™›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›B  œB  œB  œBffœBffœBffœBš™œBÍÌœBÍÌœBÍÌœBÍÌœBÍÌœBÍÌœBÍÌœBÍÌœBÍÌœB  �B  �B  �B  �B  �Bff�Bff�Bff�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  žB  žB  žB  žB  žB  žB  žBffžBffžBffžBš™žBÍÌžBÍÌžBÍÌžBÍÌžBÍÌžB33ŸB33ŸB33ŸBffŸBffŸBffŸBffŸBffŸBffŸBÍÌŸBÍÌŸBÍÌŸB   B33 B33 B33 Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff BÍÌ BÍÌ BÍÌ B  ¡B33¡Bff¡Bff¡Bff¡Bff¡Bff¡Bff¡Bff¡Bff¡Bff¡Bff¡Bš™¡Bš™¡Bš™¡B  ¢B  ¢B  ¢Bff¢Bš™¢Bš™¢Bš™¢Bš™¢Bš™¢BÍÌ¢BÍÌ¢BÍÌ¢BÍÌ¢B  £B  £B  £B  £B  £Bff£Bš™£Bš™£BÍÌ£B  ¤B  ¤B  ¤B33¤B33¤B33¤B33¤Bff¤Bff¤Bff¤Bff¤Bff¤Bff¤Bš™¤B  ¥B  ¥B  ¥B33¥Bff¥Bš™¥Bš™¥Bš™¥Bš™¥BÍÌ¥BÍÌ¥BÍÌ¥BÍÌ¥BÍÌ¥BÍÌ¥B  ¦B  ¦B  ¦Bff¦Bff¦Bff¦BÍÌ¦B  §B  §B  §B33§B33§B33§B33§B33§B33§Bff§Bš™§Bš™§Bš™§Bš™§B  ¨B33¨B33¨Bff¨Bš™¨BÍÌ¨BÍÌ¨B  ©B  ©B  ©B  ©B33©B33©B33©B33©B33©B33©Bff©BÍÌ©BÍÌ©BÍÌ©B33ªBffªBffªBffªBffªBffªBš™ªBš™ªBš™ªBš™ªBš™ªBš™ªBÍÌªBÍÌªBÍÌªB33«Bff«Bff«Bš™«BÍÌ«BÍÌ«BÍÌ«B  ¬B  ¬B  ¬B  ¬B  ¬B  ¬B33¬B33¬B33¬B33¬Bš™¬B  ­B  ­B  ­B33­Bff­Bš™­Bš™­Bš™­Bš™­Bš™­Bš™­B  ®B  ®B  ®B  ®B33®B33®B33®Bš™®Bš™®Bš™®B  ¯B33¯Bff¯Bff¯Bff¯Bff¯BÍÌ¯BÍÌ¯BÍÌ¯BÍÌ¯B  °B  °B  °B  °B  °Bff°Bš™°Bš™°B  ±B33±B33±B33±Bš™±Bš™±Bš™±Bš™±BÍÌ±BÍÌ±BÍÌ±BÍÌ±BÍÌ±BÍÌ±B  ²Bff²Bš™²Bš™²BÍÌ²B  ³Bff³Bff³Bff³Bff³Bš™³Bš™³Bš™³Bš™³Bš™³Bš™³BÍÌ³BÍÌ³B  ´Bff´Bff´Bff´B  µB33µB33µB33µBffµBffµBffµBffµBffµBffµBš™µBš™µBÍÌµBÍÌµBÍÌµB33¶Bš™¶Bš™¶BÍÌ¶B  ·B33·B33·B33·B33·B33·B33·Bff·Bff·Bš™·Bš™·Bš™·Bš™·B  ¸Bff¸Bff¸Bff¸BÍÌ¸B  ¹B  ¹B  ¹B  ¹B  ¹B33¹B33¹Bff¹Bff¹Bff¹Bff¹BÍÌ¹BÍÌ¹BÍÌ¹B33ºBffºBffºBš™ºBÍÌºBÍÌºBÍÌºB  »B  »B33»B33»B33»B33»Bš™»Bš™»Bš™»Bš™»BÍÌ»B33¼B33¼B33¼Bff¼Bš™¼BÍÌ¼BÍÌ¼B  ½B  ½B  ½B  ½Bff½Bff½Bff½Bff½Bš™½Bš™½Bš™½B  ¾B  ¾B  ¾Bff¾Bš™¾BÍÌ¾BÍÌ¾BÍÌ¾BÍÌ¾B33¿B33¿B33¿B33¿Bff¿Bff¿Bff¿Bff¿Bff¿BÍÌ¿B  ÀB  ÀBffÀBš™ÀBš™ÀBš™ÀB  ÁB  ÁB  ÁB  ÁB33ÁB33ÁB33ÁB33ÁB33ÁB33ÁBffÁBÍÌÁB  ÂB  ÂB33ÂBffÂBÍÌÂBÍÌÂBÍÌÂBÍÌÂB  ÃB  ÃB  ÃB  ÃB  ÃB  ÃB33ÃB33ÃBffÃBÍÌÃBÍÌÃBÍÌÃBffÄBš™ÄBš™ÄBš™ÄBÍÌÄBÍÌÄBÍÌÄBÍÌÄBÍÌÄBÍÌÄB  ÅB  ÅB33ÅB33ÅB33ÅBš™ÅB  ÆB  ÆB33ÆBffÆBš™ÆBš™ÆBš™ÆBš™ÆBš™ÆBš™ÆBÍÌÆBÍÌÆB  ÇB  ÇB  ÇB  ÇBffÇBÍÌÇBÍÌÇBÍÌÇB33ÈBffÈBffÈBffÈBffÈBffÈBš™ÈBš™ÈBÍÌÈBÍÌÈBÍÌÈBÍÌÈB33ÉB33ÉB33ÉBš™ÉBÍÌÉBÍÌÉB  ÊB33ÊB33ÊBffÊBš™ÊBš™ÊBÍÌÊBÍÌÊBÍÌÊBÍÌÊB33ËB33ËB33ËB33ËBffËBÍÌËBÍÌËBÍÌËB  ÌB33ÌBffÌBffÌBš™ÌBš™ÌBš™ÌBš™ÌB  ÍB  ÍB  ÍB  ÍB33ÍB33ÍB33ÍBš™ÍBš™ÍBš™ÍB  ÎB33ÎBffÎBffÎBffÎBffÎBÍÌÎBÍÌÎBÍÌÎBÍÌÎB  ÏB  ÏB  ÏB  ÏB  ÏBffÏBš™ÏBš™ÏB  ÐB33ÐB33ÐB33ÐBš™ÐBš™ÐBš™ÐBš™ÐBÍÌÐBÍÌÐBÍÌÐBÍÌÐBÍÌÐBÍÌÐB  ÑBffÑBš™ÑBš™ÑBÍÌÑB  ÒBffÒBffÒBffÒBffÒBš™ÒBš™ÒBš™ÒBš™ÒBš™ÒBš™ÒBÍÌÒBÍÌÒB  ÓBffÓBffÓBffÓB  ÔB33ÔB33ÔB33ÔBffÔBffÔBffÔBffÔBffÔBš™ÔBÍÌÔBÍÌÔB  ÕB  ÕB  ÕBffÕBÍÌÕBÍÌÕB  ÖB33ÖBffÖBffÖBffÖBffÖBffÖBffÖBš™ÖBÍÌÖB  ×B  ×B  ×B  ×Bff×BÍÌ×BÍÌ×BÍÌ×B33ØBffØBffØBffØBffØBffØBš™ØBš™ØBÍÌØB  ÙB  ÙB  ÙBffÙBffÙBffÙBÍÌÙB  ÚB  ÚB33ÚBffÚBffÚBffÚBš™ÚBš™ÚBÍÌÚBÍÌÚBÍÌÚB  ÛBffÛBffÛBffÛBffÛBš™ÛB  ÜB  ÜB  ÜB33ÜBffÜBš™ÜBš™ÜBÍÌÜBÍÌÜBÍÌÜBÍÌÜB33ÝBffÝBffÝBffÝBš™ÝBš™ÝBš™ÝB  ÞB  ÞB  ÞBffÞBš™ÞBÍÌÞBÍÌÞBÍÌÞBÍÌÞB33ßB33ßB33ßBffßBš™ßBš™ßBš™ßBš™ßBš™ßB  àB33àB33àBš™àBÍÌàBÍÌàBÍÌàB33áB33áB33áB33áBffáBš™áBš™áBš™áBš™áBš™áBÍÌáB33âBffâBffâBš™âBÍÌâB33ãB33ãB33ãB33ãBffãBffãBffãBš™ãBš™ãBš™ãBÍÌãBÍÌãB  äBffäBffäBffäB  åB33åB33åB33åBffåBffåBffåBffåBffåBš™åBÍÌåBÍÌåB  æB  æB  æBffæBÍÌæBÍÌæB  çB33çBffçBffçBffçBffçBffçBffçBš™çBÍÌçB  èB  èB  èB  èBffèBÍÌèBÍÌèBÍÌèB33éBfféBfféBfféBfféBfféBš™éBš™éBÍÌéB  êB  êB  êBffêBffêBffêBÍÌêB  ëB  ëB33ëBffëBffëBffëBš™ëBš™ëBÍÌëBÍÌëBÍÌëB  ìBffìBffìBffìBffìBš™ìB  íB  íB  íB33íBffíBš™íBš™íBÍÌíBÍÌíBÍÌíBÍÌíB33îBffîBffîBffîBš™îBš™îBš™îB  ïB  ïB  ïBffïBš™ïBÍÌïBÍÌïBÍÌïBÍÌïB33ðB33ðB33ðBffðBš™ðBš™ðBš™ðBš™ðBš™ðB  ñB33ñB33ñBš™ñBÍÌñBÍÌñBÍÌñB33òB33òB33òB33òBffòBš™òBš™òBš™òBš™òBš™òBÍÌòB33óBffóBffóBš™óBÍÌóB33ôB33ôB33ôB33ôBffôBffôBffôBš™ôBš™ôBš™ôBÍÌôBÍÌôB  õBffõBffõBffõB  öB33öB33öB33öBfföBfföBfföBfföBfföBš™öBÍÌöBÍÌöB  ÷B  ÷B  ÷Bff÷BÍÌ÷BÍÌ÷B  øB33øBfføBfføBfføBfføBfføBfføBš™øBÍÌøB  ùB  ùB  ùB  ùBffùBÍÌùBÍÌùBÍÌùB33úBffúBffúBffúBffúBffúBš™úBš™úBÍÌúB  ûB  ûB  ûBffûBffûBffûBÍÌûB  üB  üB33üBffüBffüBffüBš™üBš™üBÍÌüBÍÌüBÍÌüB  ýBffýBffýBffýBffýBš™ýB  þB  þB  þB33þBffþBš™þBš™þBÍÌþBÍÌþBÍÌþBÍÌþB33ÿBffÿBffÿBffÿBš™ÿBš™ÿBš™ÿB   C   C   C33 CÍL Cff Cff Cff Cff Cš™ Cš™ Cš™ C3³ CÍÌ CÍÌ CÍÌ CÍÌ CÍÌ C  CšCšCÍLCffCffCffCš™Cš™Cš™Cš™C3³CÍÌCÍÌCÍÌCÍÌCÍÌCfæCšC33C33CÍLCffCš™Cš™Cš™Cš™C3³C3³C3³CÍÌCÍÌCÍÌCfæCfæC  C33C33C33C €Cš™Cš™Cš™C3³C3³C3³C3³C3³CÍÌCfæCfæC  C  C  C33CffCffC €Cš™C3³C3³C3³C3³C3³C3³CÍÌCfæC  C  C  C  C33CffCffCffCš™C3³C3³C3³C3³C3³CÍÌCÍÌCfæC  C  C  C33C33C33CffC €C €Cš™C3³C3³C3³CÍÌCÍÌCfæCfæCfæC  C33C33C33C33CÍLC €C €C €Cš™C3³CÍÌCÍÌCfæCfæCfæCfæCšC33C33C33CÍLCÍLCÍLC €C €C €C3³CÍÌCfæCfæCfæCfæCš	Cš	Cš	C33	CÍL	CÍL	CÍL	CÍL	CÍL	C €	Cš™	Cš™	CÍÌ	Cfæ	Cfæ	Cfæ	Cš
Cš
Cš
Cš
C33
CÍL
CÍL
CÍL
CÍL
CÍL
Cff
Cš™
C3³
C3³
CÍÌ
Cfæ
CšCšCšCšC33C33C33CÍLCÍLCÍLCffCffC €C3³C3³C3³C  CšCšCšC33C33C33C33C33CÍLCffCffC €C €C €C3³CfæCfæC  CšC33C33C33C33C33C33CÍLCffC €C €C €C €C3³CfæCfæCfæCšC33C33C33C33C33CÍLCÍLCffC €C €C €C3³C3³C3³CfæC  C  CšC33C33C33CÍLCÍLCffCffCffC €C3³C3³C3³C3³CÍÌC  C  C  CšC33CÍLCÍLCffCffCffCffCš™C3³C3³C3³CÍÌCÍÌCÍÌC  C  C  C33CÍLCffCffCffCffCš™Cš™Cš™C3³CÍÌCÍÌCÍÌCÍÌCÍÌC  CšCšCÍLCffCffCffCš™Cš™Cš™Cš™C3³CÍÌCÍÌCÍÌCÍÌCÍÌCfæCšC33C33CÍLCffCš™Cš™Cš™Cš™C3³C3³C3³CÍÌCÍÌCÍÌCfæCfæC  C33C33C33C €Cš™Cš™Cš™C3³C3³C3³C3³C3³CÍÌCfæCfæC  C  C  C33CffCffC €Cš™C3³C3³C3³C¤type§scatter¤nameªDyna-Q+â€²¡xÈ.à  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;EÙ53ee53c46-38f7-11f0-16c9-2b093684d981/8abe7fb8cc2fd548„¦layout‚¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data’„¡yÈ]À                                                                                                                                                                                                                                                                                                                                                                                                                                                            ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?333?333?333?333?333?333?333?333?333?333?333?333?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?fff?fff?  €?  €?  €?  €?  €?ÍÌŒ?š™™?š™™?š™™?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?33³?33³?33³?33³?33³?33³?33³?33³?33³?  À?  À?  À?  À?  À?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?š™Ù?š™Ù?š™Ù?ffæ?ffæ?ffæ?ffæ?   @   @ff@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@33@š™@š™@š™@š™@š™@   @   @ff&@ff&@ff&@ff&@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@333@š™9@š™9@  @@  @@ffF@ffF@ffF@ffF@ÍÌL@33S@33S@33S@33S@33S@33S@33S@33S@  `@fff@fff@33s@š™y@š™y@š™y@š™y@š™y@  €@  €@ff†@ff†@ff†@ff†@š™‰@ÍÌŒ@  �@33“@ff–@ff–@ff–@ff–@š™™@š™™@ÍÌœ@ÍÌœ@33£@33£@ff¦@ff¦@š™©@ÍÌ¬@  °@  °@33³@ff¶@ff¶@ff¶@ff¶@ff¶@ff¶@ff¶@ÍÌ¼@  À@  À@  À@š™É@ÍÌÌ@  Ð@  Ð@33Ó@33Ó@33Ó@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@š™Ù@ÍÌÜ@ÍÌÜ@ÍÌÜ@33ã@ffæ@ÍÌì@ÍÌì@33ó@33ó@33ó@33ó@33ó@ffö@ffö@ffö@š™ù@ÍÌü@ÍÌü@ÍÌü@   Aš™Aš™Aš™A  A  Aš™	Aš™	Aš™	Aš™	Aš™	A33AÍÌAffAffAffA  Aš™Aš™Aš™AÍÌAÍÌAffAffAš™Aš™Aš™Aš™A33AffAffAffA   Aš™!Aš™!Aš™!AÍÌ$AÍÌ$AÍÌ$AÍÌ$Aff&Aff&A  (A  (Aš™)AÍÌ,AÍÌ,Aff.A  0A  0A  0Aš™1AÍÌ4AÍÌ4AÍÌ4AÍÌ4AÍÌ4AÍÌ4Aff6Aff6Aš™9A33;A33;A33;A33;Aff>A  @Aš™AA33CA33CAÍÌDAÍÌDAÍÌDAÍÌDAÍÌDAÍÌDAffFA  HA33KA33KA33KA33KA33KAffNAš™QA33SAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAffVA  XA  XA  XA33[A33[A33[AÍÌ\A  `Aš™aA33cA33cA33cAÍÌdAÍÌdAÍÌdAfffA  hA  hA  hA  hA  hA33kAÍÌlAffnA  pAš™qA33sA33sA33sA33sA33sAÍÌtA  xA  xA  xA  xA  xA  xAš™yAff~A  €AÍÌ€AÍÌ€AÍÌ€Aš™�Aš™�Aš™�Aff‚A33ƒA33ƒA33ƒA33ƒA  „A  „AÍÌ„Aš™…Aff†A  ˆA  ˆAÍÌˆAÍÌˆAÍÌˆAÍÌˆAš™‰A33‹A33‹A33‹A33‹A33‹A33‹A  ŒAÍÌŒAffŽA33�A33�A  �A  �AÍÌ�AÍÌ�Aš™‘Aff’Aff’A33“A33“A33“A33“A  ”AÍÌ”Aš™•Aff–Aff–Aff–A33—A  ˜A  ˜Aš™™AffšAffšAffšAffšA33›A33›A  œAÍÌœAš™�AffžAffžAffžAffžAffžAffžA   AÍÌ Aš™¡Aff¢Aff¢Aff¢Aff¢A33£A  ¤Aš™¥Aš™¥Aš™¥Aff¦Aff¦Aff¦Aff¦A33§A33§A  ¨AÍÌ¨Aš™©AffªAffªAffªA  ¬AÍÌ¬AÍÌ¬Aš™­Aff®Aff®Aff®Aff®A33¯A33¯A33¯A  °AÍÌ°AÍÌ°Aš™±Aš™±A33³AÍÌ´AÍÌ´AÍÌ´Aš™µAff¶Aff¶Aff¶A33·A33·A33·A  ¸A  ¸A  ¸AÍÌ¸AÍÌ¸A33»A  ¼A  ¼A  ¼AÍÌ¼AÍÌ¼AÍÌ¼Aff¾Aff¾A33¿A33¿A  ÀA  ÀA  ÀA  ÀA  ÀAffÂA33ÃA33ÃA33ÃAÍÌÄAÍÌÄAÍÌÄAÍÌÄAÍÌÄAffÆAffÆA  ÈA  ÈA  ÈA  ÈA  ÈAš™ÉAffÊA33ËA33ËA  ÌA  ÌAÍÌÌAÍÌÌAÍÌÌAÍÌÌAÍÌÌA33ÏA33ÏA33ÏA33ÏA  ÐAÍÌÐAš™ÑAš™ÑAš™ÑA33ÓA  ÔA  ÔA  ÔAÍÌÔAÍÌÔAÍÌÔAffÖAffÖA33×A33×A33×A  ØAÍÌØAÍÌØAÍÌØAš™ÙAffÚA33ÛA  ÜA  ÜA  ÜAÍÌÜAffÞAffÞAffÞAffÞA33ßA  àAÍÌàAÍÌàAÍÌàAš™áAš™áAš™áAš™áAffâA  äA  äAš™åAffæAffæAffæAffæA33çAÍÌèAÍÌèAÍÌèAš™éAš™éAš™éAš™éAffêAffêAffêAÍÌìAÍÌìAš™íAffîAffîA33ïA  ðA  ðAÍÌðAš™ñAš™ñAš™ñAš™ñAffòAffòAffòA  ôA  ôAÍÌôAÍÌôAÍÌôAfföA33÷A33÷A  øAÍÌøAš™ùAš™ùAš™ùAffúAffúAffúA  üA  üA  üA  üAÍÌüAš™ýAš™ýAš™ýAffþA   Bff Bff BÍÌ B33B33B33B  B  B  B  B  B  BffBffB33Bš™Bš™B  B  BffB33B33Bš™Bš™B  B  B  B  B  B  B33Bš™Bš™Bš™Bš™BffBffBffB33	B33	B  
B  
B  
B  
B  
B  
BÍÌ
B33B33B33Bš™B  B  BffBÍÌBÍÌB33B33Bš™Bš™Bš™Bš™B  BÍÌB33B33Bš™B  B  B  BffBÍÌBÍÌBÍÌB33B33Bš™Bš™B  B  B  BffBÍÌB33Bš™Bš™BffBffBffBÍÌB33B33B33B33B  B  B  B  BffB33B33B33B33Bš™BffBffBÍÌB33B33B33Bš™Bš™B  B  BffB33B33B33B33Bš™B  B  BffBffBÍÌB33Bš™Bš™Bš™Bš™B  B33B33B33B33Bš™B   B   Bff Bff Bff Bff BÍÌ BÍÌ B33!Bš™!Bš™!Bff"Bff"BÍÌ"B33#B33#Bš™#B  $Bff$Bff$Bff$Bff$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$Bš™%Bš™%Bff&Bff&Bff&B33'B  (Bff(Bff(Bff(Bff(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(B33)Bš™)B  *B  *Bff*BÍÌ*B33+Bš™+Bš™+B  ,Bff,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,B33-Bš™-B  .B  .B  .Bff.B33/B33/B33/B  0B  0Bff0Bff0Bff0BÍÌ0BÍÌ0B331Bš™1Bš™1Bš™1B  2Bff2BÍÌ2BÍÌ2B333Bš™3Bš™3Bff4Bff4Bff4Bff4Bff4Bff4B335B335B335Bš™5B  6BÍÌ6BÍÌ6BÍÌ6B337Bš™7B  8B  8B  8B  8Bff8Bff8B339B339B339B339Bš™9B  :B  :Bff:B33;B33;Bš™;B  <B  <B  <B  <B  <B33=B33=B33=B33=Bš™=B  >B  >Bff>BÍÌ>BÍÌ>B33?B33?Bš™?B  @B  @B  @BÍÌ@BÍÌ@B33AB33ABš™AB  BB  BBffBBffBBffBB33CB33CB33CB33CB33CBš™CB  DBÍÌDBÍÌDBÍÌDB33EBš™EB  FBffFBffFBffFBÍÌFBÍÌFB33GB33GB33GB33GBš™GBffHBffHBffHBÍÌHB33IB33IB  JBffJBffJBÍÌJBÍÌJB33KB33KB33KB33KBš™KB  LB  LBffLBÍÌLB33MB33MBš™MBš™MBš™MB  NBffNB33OB33OB33OB33OBš™OBš™OBš™OB  PB  PBffPBÍÌPBš™QBš™QBš™QB  RB  RBffRBffRBÍÌRB33SB33SB33SBš™SB  TB  TBffTBÍÌTB33UB33UBš™UB  VB  VBffVBffVBffVBffVBÍÌVBÍÌVBÍÌVBš™WB  XBffXBffXBÍÌXB33YB33YBš™YB  ZBffZBffZBffZBffZBffZBffZBÍÌZBÍÌZB33[Bš™[Bš™[BÍÌ\B33]B33]Bš™]Bš™]Bš™]B  ^B  ^Bff^Bff^Bff^Bff^Bff^B33_Bš™_Bš™_Bš™_B  `BÍÌ`BÍÌ`Bš™aBš™aB  bB  bB  bB  bBffbBffbBffbBÍÌbB33cBš™cBš™cBš™cBffdBffdB33eB33eBš™eBš™eB  fB  fB  fB  fBfffBÍÌfB33gB33gB33gBš™gB  hB  hB33iB33iBš™iBš™iBš™iBš™iBš™iBš™iB  jBffjB33kB33kB33kB33kBš™kB  lB33mB33mB33mB33mB33mB33mBš™mBš™mBš™mB  nB  nB  nB33oB33oBš™oBš™oBÍÌpB33qB33qB33qB33qB33qBš™qBš™qBš™qB  rB  rB  rBffrBffrB33sB33sBfftBfftBÍÌtB33uB33uB33uBš™uBš™uBš™uBš™uBš™uBš™uBffvBffvBÍÌvBÍÌvBš™wBš™wBffxBffxBffxB33yBš™yBš™yBš™yBš™yBš™yBš™yBffzBffzBffzBffzBš™{Bš™{B  |B  |Bff|Bff|Bff|BÍÌ|B33}Bš™}Bš™}Bš™}B  ~B  ~Bff~Bff~Bš™Bš™B  €B  €B  €B  €B33€B33€Bff€Bš™€Bš™€Bš™€BÍÌ€B  �B33�B33�BÍÌ�BÍÌ�B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚Bff‚Bff‚Bff‚Bš™‚BÍÌ‚BÍÌ‚B  ƒB  ƒBš™ƒBÍÌƒB  „B  „B  „B  „B  „B  „B33„B33„Bff„Bff„Bš™„BÍÌ„B  …B  …Bš™…Bš™…BÍÌ…BÍÌ…BÍÌ…BÍÌ…BÍÌ…BÍÌ…B  †B  †B  †B  †B33†B33†Bš™†BÍÌ†Bff‡Bff‡Bš™‡Bš™‡Bš™‡Bš™‡BÍÌ‡BÍÌ‡B  ˆB  ˆB  ˆB  ˆB33ˆB33ˆBffˆBffˆB33‰Bff‰Bš™‰Bš™‰Bš™‰Bš™‰Bš™‰Bš™‰Bš™‰BÍÌ‰B  ŠB  ŠB33ŠB33ŠBffŠBffŠB  ‹B  ‹Bff‹Bš™‹Bš™‹Bš™‹Bš™‹Bš™‹Bš™‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BÍÌ‹BffŒBffŒB  �B  �B33�B33�B33�Bš™�Bš™�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ŽB  ŽBÍÌŽBÍÌŽB  �B  �B33�B33�B33�Bff�Bff�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  �B  �BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ‘B  ‘B33‘B33‘B33‘Bff‘Bš™‘BÍÌ‘BÍÌ‘BÍÌ‘B  ’B  ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’B  “B  “B  “B  “B  “B  “B33“Bff“Bš™“Bš™“BÍÌ“B  ”BÍÌ”BÍÌ”BÍÌ”BÍÌ”B  •B  •B  •B  •B  •B  •B  •B  •B33•Bff•BÍÌ•BÍÌ•Bš™–BÍÌ–BÍÌ–BÍÌ–B  —B  —B  —B  —B  —B  —B  —B  —B33—B33—Bff—Bš™—B  ˜B33˜Bff˜Bš™˜B  ™B  ™B  ™B  ™B  ™B  ™B  ™B  ™B33™B33™Bff™Bff™BÍÌ™B33šBffšBffšBš™šBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšBÍÌšB33›B33›Bff›Bff›BÍÌ›B  œB33œBffœBš™œBš™œBš™œBÍÌœBÍÌœBÍÌœBÍÌœBÍÌœB  �B  �B33�B33�Bš™�BÍÌ�B33žB33žBffžBš™žBš™žBš™žBš™žBÍÌžBÍÌžBÍÌžB  ŸB  ŸB33ŸB33ŸBffŸBš™ŸB   B   Bff Bff Bff Bff Bff Bš™ Bš™ Bš™ BÍÌ BÍÌ B  ¡B  ¡Bff¡Bš™¡B  ¢B  ¢B33¢B33¢B33¢B33¢Bff¢Bff¢Bff¢Bš™¢BÍÌ¢BÍÌ¢B  £B  £B33£Bff£B  ¤B  ¤B33¤B33¤B33¤B33¤B33¤B33¤B33¤B33¤Bš™¤BÍÌ¤B  ¥B  ¥B33¥Bff¥BÍÌ¥BÍÌ¥B  ¦B33¦B33¦B33¦B33¦B33¦B33¦B33¦Bff¦Bff¦Bš™¦Bš™¦B  §B33§Bš™§Bš™§B  ¨B  ¨B  ¨B33¨B33¨B33¨B33¨B33¨B33¨B33¨Bš™¨Bš™¨BÍÌ¨B  ©Bff©Bff©BÍÌ©BÍÌ©B  ªB  ªB  ªB33ªB33ªB33ªB33ªB33ªBš™ªBš™ªBÍÌªB  «B33«B33«Bff«Bff«Bš™«Bš™«BÍÌ«BÍÌ«BÍÌ«BÍÌ«BÍÌ«BÍÌ«B33¬Bff¬Bš™¬BÍÌ¬B  ­B  ­B33­B33­Bff­Bff­Bff­Bff­Bš™­Bš™­Bš™­Bš™­B  ®B  ®B33®Bff®Bš™®BÍÌ®B  ¯B  ¯B  ¯B  ¯B33¯B33¯B33¯B33¯B33¯Bff¯B  °B  °B33°Bff°Bš™°Bš™°BÍÌ°B  ±B  ±B  ±B33±B33±B33±B33±B33±B33±Bš™±BÍÌ±B  ²B33²Bš™²Bš™²BÍÌ²BÍÌ²BÍÌ²B  ³B33³B33³B33³B33³B33³B33³Bš™³Bš™³BÍÌ³B33´B33´Bff´Bš™´Bš™´BÍÌ´BÍÌ´BÍÌ´B33µB33µB33µB33µB33µBš™µBš™µBÍÌµBÍÌµBÍÌµB33¶Bš™¶Bš™¶Bš™¶Bš™¶Bš™¶BÍÌ¶B  ·B33·B33·B33·Bš™·Bš™·Bš™·Bš™·BÍÌ·BÍÌ·B33¸Bff¸Bš™¸Bš™¸Bš™¸BÍÌ¸BÍÌ¸BÍÌ¸BÍÌ¸BÍÌ¸B33¹B33¹Bš™¹Bš™¹BÍÌ¹BÍÌ¹B  ºB  ºBffºBš™ºBš™ºBÍÌºBÍÌºBÍÌºBÍÌºBÍÌºB  »B  »B33»B33»B33»Bff»BÍÌ»BÍÌ»B33¼Bff¼Bff¼Bš™¼Bš™¼BÍÌ¼BÍÌ¼BÍÌ¼B  ½B  ½B33½B33½B33½B33½Bš™½BÍÌ½B  ¾B  ¾B33¾Bff¾Bff¾Bš™¾Bš™¾BÍÌ¾B  ¿B  ¿B  ¿B33¿B33¿B33¿Bš™¿Bš™¿BÍÌ¿B  ÀB33ÀB33ÀBffÀBffÀBffÀBffÀBš™ÀBÍÌÀB  ÁB33ÁB33ÁB33ÁBš™ÁBš™ÁBÍÌÁBÍÌÁB  ÂB33ÂBffÂBffÂBffÂBffÂBš™ÂBš™ÂBš™ÂB  ÃB  ÃB  ÃBffÃBš™ÃBÍÌÃBÍÌÃB  ÄB  ÄB33ÄB33ÄB33ÄBffÄBš™ÄBš™ÄBš™ÄBÍÌÄBÍÌÄB  ÅBffÅBffÅBš™ÅBš™ÅBš™ÅBÍÌÅB  ÆB33ÆB33ÆB33ÆBffÆBš™ÆBš™ÆBÍÌÆBÍÌÆBÍÌÆB33ÇB33ÇBš™ÇBš™ÇBš™ÇBÍÌÇB  ÈB  ÈB  ÈB  ÈB33ÈBffÈBffÈBÍÌÈBÍÌÈBÍÌÈB  ÉB  ÉB33ÉB33ÉBffÉBÍÌÉB  ÊB  ÊB  ÊB  ÊB33ÊB33ÊB33ÊBffÊBffÊBÍÌÊBÍÌÊB  ËB33ËB33ËBffËBš™ËBÍÌËBÍÌËB  ÌB  ÌB33ÌB33ÌB33ÌBffÌBffÌBffÌBffÌBÍÌÌB  ÍB33ÍBffÍBš™ÍBÍÌÍBÍÌÍBÍÌÍBÍÌÍB33ÎB33ÎB33ÎBffÎBffÎBffÎBffÎBš™ÎBš™ÎBÍÌÎB33ÏBffÏBš™ÏBÍÌÏBÍÌÏBÍÌÏB  ÐB  ÐB33ÐBffÐBffÐBffÐBffÐBš™ÐBš™ÐBš™ÐBÍÌÐB33ÑBffÑBffÑBš™ÑBš™ÑBš™ÑB  ÒB  ÒB33ÒB33ÒBffÒBffÒBš™ÒBš™ÒBš™ÒBÍÌÒB  ÓB33ÓB33ÓBffÓBffÓBffÓBš™ÓBš™ÓBš™ÓBÍÌÓB  ÔB  ÔBffÔBffÔBffÔBš™ÔBÍÌÔB  ÕB33ÕBffÕBffÕBffÕBš™ÕBš™ÕBš™ÕBÍÌÕBÍÌÕBÍÌÕB  ÖB  ÖB33ÖB33ÖBffÖBÍÌÖBÍÌÖBÍÌÖB33×B33×Bff×Bff×Bff×Bš™×Bš™×Bš™×BÍÌ×BÍÌ×BÍÌ×BÍÌ×B  ØB33ØBffØBš™ØBš™ØBš™ØB  ÙB33ÙB33ÙBffÙBffÙBffÙBffÙBffÙBš™ÙBš™ÙBÍÌÙB33ÚB33ÚBffÚBffÚBffÚBÍÌÚBÍÌÚB  ÛBffÛBffÛBffÛBffÛBffÛBš™ÛBš™ÛBÍÌÛBÍÌÛBÍÌÛB33ÜB33ÜBffÜBÍÌÜBÍÌÜBÍÌÜB  ÝB  ÝB  ÝBffÝBffÝBš™ÝBš™ÝBÍÌÝBÍÌÝBÍÌÝB  ÞB  ÞBffÞBš™ÞBš™ÞBÍÌÞB  ßB  ßB  ßB  ßB  ßBffßBffßBÍÌßBÍÌßBÍÌßB  àB  àB  àB33àBffàBÍÌàB  áB  áB  áB  áB  áB33áB33áBš™áBš™áBš™áBš™áBÍÌáB  âB  âB  âBffâBÍÌâBÍÌâBÍÌâB  ãB  ãB33ãB33ãBffãBffãBffãBffãBš™ãBÍÌãBÍÌãBÍÌãB33äBffäBš™äBÍÌäB  åB  åB33åB33åB33åBffåBffåBffåBffåBš™åBÍÌåBÍÌåBÍÌåB  æBffæBffæBÍÌæBÍÌæB  çB  çB  çBffçBffçBffçBffçBš™çBš™çBš™çBÍÌçB  èBffèBffèBš™èBš™èBÍÌèBÍÌèB  éB33éB33éBfféBfféBfféBš™éBš™éBš™éBÍÌéB33êB33êBš™êBš™êBš™êBš™êBÍÌêB  ëB  ëB  ëB33ëB33ëBffëBffëBš™ëBÍÌëB33ìB33ìBffìBffìBffìBffìBÍÌìB  íB  íB  íB  íB  íB33íB33íBffíBš™íB  îB  îB33îBffîBffîBffîBš™îBÍÌîB  ïB  ïB  ïB  ïB  ïB  ïB  ïB33ïBš™ïBš™ïB33ðBffðBffðBffðBffðBš™ðBš™ðBš™ðB  ñB  ñB  ñB  ñB  ñB33ñBffñBš™ñBš™ñB  òB33òB33òB33òBš™òBš™òBš™òBÍÌòBÍÌòB  óB  óB  óB33óBffóBffóBffóB  ôB  ôB  ôB  ôB33ôB33ôBffôBš™ôBš™ôBÍÌôBÍÌôBÍÌôB33õBffõBffõBffõB  öB  öB  öB  öB33öB33öB33öBfföBš™öBš™öBš™öBš™öBÍÌöB  ÷B33÷Bff÷B  øB  øB  øB  øB33øB33øB33øB33øB33øBfføBš™øBš™øBÍÌøB  ùB  ùB  ùBffùBffùBÍÌùB  úB33úB33úB33úB33úB33úBffúBffúBffúBÍÌúB  ûB  ûB  ûB  ûB33ûBÍÌûBÍÌûB  üB  üB  üB33üB33üBffüBffüBffüBš™üBÍÌüB  ýB  ýB  ýB33ýBffýBš™ýBÍÌýBÍÌýB  þB  þB  þB33þB33þBffþBffþBÍÌþBÍÌþBÍÌþB  ÿB33ÿBffÿBš™ÿBš™ÿBš™ÿBš™ÿBš™ÿB   Cš Cš Cš Cš CÍL CÍL CÍL CÍL C € C3³ CÍÌ CÍÌ CÍÌ CÍÌ CÍÌ Cfæ C  CšCšCšCÍLCÍLCÍLCÍLCÍLCffC €Cš™C3³C3³C3³CÍÌCÍÌCfæCfæCfæC  C  C  C  C  CšC33C33C33C33C33CÍLCÍLCffCffCffCffCš™Cš™C3³C3³CÍÌCfæCfæCfæCfæCfæC  C  CšCšCšC33CÍLCÍLC €C €C3³CÍÌCÍÌCfæCfæCfæC  C  CšCšCšCšC33CÍLC €C €Cš™C3³C3³C3³CÍÌCfæC  C  C  C  CšCšC33C33CffC €C €Cš™Cš™Cš™Cš™Cš™C3³CÍÌCfæCfæC  C  CšCšCÍLCÍLCÍLC €C €C €C €C €C €Cš™Cš™Cš™C3³CÍÌC  C  CšC33C33CÍLCÍLCÍLCffCffCffC €C €C €Cš™Cš™Cš™CÍÌCfæCfæC  C33C33C33C33C33CÍLCffCffCffC €C €Cš™C3³CÍÌCfæCfæCš	Cš	Cš	C33	C33	C33	CÍL	Cff	Cff	C €	C €	Cš™	C3³	CÍÌ	CÍÌ	CÍÌ	Cš
Cš
Cš
Cš
Cš
Cš
C33
CÍL
CÍL
Cff
C €
Cš™
C3³
CÍÌ
CÍÌ
CÍÌ
Cfæ
Cfæ
C  C  C  CšCšC33C33C33CÍLCš™C3³CÍÌCÍÌCÍÌCfæCfæCfæC  C  C  C  C33C33C33CÍLCffC €C3³C3³C3³CfæCfæCfæCfæCfæC  C  CšCšC33CÍLCffC €Cš™Cš™C3³C3³CÍÌCÍÌCÍÌCfæCfæCfæCšCšCšC33CffC €Cš™Cš™Cš™Cš™CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCfæCfæC  C  CšCÍLCffCffCffC €C €C3³C3³C3³C3³C3³CÍÌCÍÌCÍÌCÍÌCfæC  CšCÍLCÍLCffCffC €C €Cš™Cš™Cš™Cš™C3³C3³C3³CÍÌCÍÌCšCšCšCÍLCÍLC €C €C €C €Cš™Cš™C3³C3³C3³CÍÌCÍÌC  C  CšC33C33CffCffCffCffC €C €Cš™C3³C3³C3³C3³CfæCfæC  CšCšC33C33C33C33CÍLCÍLCffC €Cš™C3³C3³CfæCfæC  CšCšC33C33C33C33C33C33CÍLC €C €C €Cš™CÍÌCÍÌCfæC  CšC33C33C33C33C33C33CÍLCffCffC €C €Cš™Cš™C3³CfæC  CšCšCšC33C33C33CÍLCÍLCÍLCffCffCš™Cš™C3³C3³CÍÌC  C  CšCšCšCšC33CÍLCÍLCffCffC €C €Cš™Cš™C3³C3³CfæC  C  CšCšC33C33C33C33C33CffCffC €C €Cš™Cš™C3³CÍÌCfæCfæCfæCšCšCšCšCšC33C33CÍLCÍLCffCffC €Cš™C3³C3³CÍÌC  C  CšCšCšC33C33CÍLCÍLCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffCffC €C €C €C €C €C €C €C €C €C €Cš™Cš™Cš™Cš™Cš™Cš™Cš™Cš™Cš™C3³C3³C3³CÍÌCÍÌCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæCfæC  C  CšCšCšCšCšCšCšCšCšC33CÍLCÍLC €C €C €C €C €C €C €C €Cš™Cš™C3³C3³C3³C3³C3³C3³C3³C3³C3³CÍÌCfæCfæC  C  C  CšCšCÍLCffCffCffCffCffCffC €C €C €C €Cš™Cš™Cš™Cš™Cš™Cš™C3³C3³C3³CÍÌCfæC  C  C  C  C  CšCšCšCšC33CÍLCffC €C €C €C €C €C €C €Cš™Cš™Cš™C3³C3³C3³CÍÌC  C  CÍLCffCffCffCffCffCffCffC €C €C €C €Cš™CÍÌCÍÌCfæCfæCfæCfæCfæCfæC  C  CšCÍLCffCffCffC €Cš™C3³C3³CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCfæCfæC   C33 C33 C33 C33 CÍL Cff Cff C € C € C € Cš™ CÍÌ CÍÌ CÍÌ CÍÌ CÍÌ Cfæ Cfæ Cfæ C  !Cš!Cš!Cš!C33!C33!C33!C33!Cff!C €!C €!C €!C €!Cš™!Cš™!C3³!Cfæ!Cfæ!Cfæ!Cfæ!Cfæ!C  "C  "C  "Cš"C33"CÍL"CÍL"C €"C €"C €"Cš™"C3³"C3³"C3³"C3³"C3³"C3³"CÍÌ"CÍÌ"C  #Cš#C33#C33#C33#CÍL#CÍL#Cff#C €#C €#C €#C €#Cš™#Cš™#C3³#CÍÌ#C  $C  $Cš$C33$C33$CÍL$CÍL$Cff$Cš™$Cš™$Cš™$Cš™$C3³$C3³$CÍÌ$C  %C33%C33%C33%C33%Cff%Cff%C €%Cš™%C3³%CÍÌ%CÍÌ%CÍÌ%CÍÌ%CÍÌ%Cfæ%C  &CÍL&CÍL&Cff&C €&Cš™&Cš™&Cš™&C3³&CÍÌ&CÍÌ&CÍÌ&CÍÌ&C  'Cš'C33'CÍL'C €'C €'C €'C €'Cš™'Cš™'C3³'Cfæ'Cš(Cš(Cš(Cš(Cš(Cš(C33(CÍL(Cš™(C3³(C3³(C3³(Cfæ(Cfæ(Cfæ(C  )Cš)Cš)C33)CÍL)CÍL)CÍL)Cff)Cff)C3³)CÍÌ)CÍÌ)CÍÌ)C  *Cš*Cš*C33*C33*C33*CÍL*CÍL*Cff*Cff*Cš™*C3³*Cfæ*C  +C  +C  +Cš+Cš+Cš+Cš+Cff+C €+C3³+C3³+C3³+C3³+C3³+C3³+Cfæ+C  ,Cš,C33,Cff,Cff,C €,C €,Cš™,Cš™,C3³,C3³,CÍÌ,Cfæ,Cfæ,Cfæ,C33-CÍL-Cff-Cff-C €-C €-Cš™-C3³-CÍÌ-CÍÌ-Cfæ-Cfæ-C  .C  .Cš.Cš.Cff.Cš™.Cš™.Cš™.C3³.C3³.C3³.C3³.CÍÌ.CÍÌ.Cš/C33/CÍL/CÍL/CÍL/CÍL/C €/Cš™/Cš™/Cš™/Cfæ/C  0Cš0Cš0Cš0Cš0C330C330CÍL0CÍL0Cff0C €0CÍÌ0Cfæ0C  1C  1Cš1Cš1Cš1Cš1C331CÍL1Cff1Cff1C €1C €1C3³1C3³1Cfæ1C  2Cš2C332CÍL2CÍL2CÍL2CÍL2Cff2Cff2Cš™2Cš™2C3³2CÍÌ2Cfæ2Cfæ2Cš3C333C333C333Cff3Cff3Cš™3C3³3C3³3C3³3CÍÌ3CÍÌ3CÍÌ3CÍÌ3Cfæ3Cfæ3CÍL4C €4Cš™4Cš™4C3³4C3³4C3³4C3³4C3³4C3³4Cfæ4C  5Cš5Cš5C335C335C €5Cš™5Cš™5Cš™5CÍÌ5Cfæ5Cfæ5Cfæ5C  6C  6C336C336C336C336CÍL6Cff6C3³6CÍÌ6CÍÌ6CÍÌ6C  7C  7Cš7Cš7C337CÍL7Cff7Cff7Cff7Cff7Cff7Cff7CÍÌ7Cfæ7Cš8C338CÍL8CÍL8CÍL8CÍL8CÍL8CÍL8Cff8Cff8Cš™8C3³8CÍÌ8CÍÌ8Cfæ8C  9Cš9C339CÍL9CÍL9Cff9C €9Cš™9Cš™9CÍÌ9CÍÌ9CÍÌ9CÍÌ9CÍÌ9CÍÌ9C  :C33:CÍL:Cff:Cš™:Cš™:C3³:C3³:C3³:C3³:Cfæ:C  ;C  ;C  ;C  ;C  ;C33;CÍL;Cff;C €;C3³;Cfæ;Cfæ;Cfæ;Cfæ;Cfæ;Cš<Cš<Cš<Cš<Cš<CÍL<Cff<Cš™<C3³<CÍÌ<C  =C  =C  =C  =C  =C33=CÍL=CÍL=Cff=Cff=C €=C €=C €=C3³=CÍÌ=Cfæ=Cš>C33>C33>C33>Cff>Cff>C €>C €>C €>Cš™>Cš™>C3³>C3³>C3³>C  ?Cš?CÍL?Cff?Cff?C €?C €?Cš™?C3³?C3³?CÍÌ?CÍÌ?CÍÌ?CÍÌ?CÍÌ?C  @C33@Cff@Cš™@Cš™@C3³@C3³@C3³@C3³@CÍÌ@Cfæ@Cfæ@CšACšACšAC33AC33ACÍLAC €AC3³ACÍÌACÍÌACfæACfæAC  BC33BC33BC33BC33BC33BCÍLBCÍLBCffBC €BC3³BC  CCšCCšCCšCCšCC33CCÍLCCffCCffCCffCC €CC €CC €CCš™CC3³CC  DC33DCÍLDCÍLDCÍLDCffDCffDC €DC €DC €DC3³DC3³DCÍÌDCÍÌDCÍÌDCfæDCšECffECffECffEC €EC €EC3³ECÍÌECÍÌECÍÌECÍÌECfæECfæECfæEC  FCšFCffFCš™FC3³FC3³FC3³FCÍÌFCÍÌFCfæFC  GC  GCšGCšGCšGCšGC33GCffGCš™GCÍÌGCfæGCfæGC  HC  HC  HCšHCšHC33HCÍLHCÍLHCffHCffHC €HCš™HCš™HCfæHC  ICšICšICšICÍLICffIC €IC €IC €IC €IC €ICš™ICš™IC3³ICÍÌICšJCÍLJCÍLJCffJCffJCffJC €JC €JCš™JC3³JC3³JCÍÌJCÍÌJCÍÌJCfæJC  KCÍLKCffKC €KCš™KCš™KC3³KCÍÌKCÍÌKCÍÌKCÍÌKCÍÌKCfæKC  LCšLC33LCÍLLCš™LC3³LC3³LC3³LC3³LC3³LCfæLCšMCšMC33MC33MC33MC33MC33MCÍLMCÍLMC3³MCfæMCfæMCšNCšNCšNCšNCšNC33NC33NCÍLNCffNCffNC €NCš™NC3³NCfæNCšOCšOCšOCšOC33OCÍLOCffOC €OC €OC €OCš™OCš™OCš™OC3³OCÍÌOCšPCffPCffPCffPCffPCffPCffPC €PC €PCš™PCÍÌPC  QC  QC  QC  QC  QC33QCffQCffQCš™QC3³QCÍÌQCÍÌQCÍÌQCÍÌQCÍÌQCfæQC  RC  RCšRCšRCÍLRCš™RC3³RC3³RCÍÌRCÍÌRCÍÌRCÍÌRCfæRCfæRC  SC33SCÍLSCÍLSCÍLSCÍLSCffSCš™SCÍÌSCÍÌSC  TCšTC33TC33TC33TC33TC33TCÍLTC €TC €TCš™TC3³TC3³TC  UCšUCšUC33UC33UCÍLUCÍLUC €UCš™UCš™UC3³UCÍÌUCÍÌUCÍÌUCÍÌUCfæUCšVCÍLVCffVCš™VC3³VC3³VC3³VC3³VC3³VCÍÌVCÍÌVC  WCšWCšWC33WCÍLWC €WCš™WCš™WCÍÌWCÍÌWCfæWC  XC  XCšXCšXCšXC33XC33XCffXCffXC €XC3³XCÍÌXC  YCšYCšYCšYCšYCÍLYCÍLYCffYC €YC €YCš™YCš™YCš™YC3³YCÍÌYC  ZCšZCffZC €ZC €ZCš™ZCš™ZCš™ZCš™ZCš™ZC3³ZC3³ZCÍÌZCfæZCš[CÍL[Cff[C €[Cš™[Cš™[C3³[C3³[CÍÌ[CÍÌ[CÍÌ[C  \Cš\Cš\Cš\Cš\CÍL\CÍL\C €\C3³\CÍÌ\C  ]C  ]C  ]Cš]Cš]C33]C33]CÍL]CÍL]CÍL]C €]C €]C €]C €]CÍÌ]C33^C33^CÍL^CÍL^CÍL^C €^C €^C €^C €^C €^Cš™^Cš™^CÍÌ^CÍÌ^CÍÌ^CÍL_C €_C €_C €_C €_C €_C €_C3³_C3³_CÍÌ_C  `C  `C  `C  `C  `C  `C33`Cš™`C3³`C3³`CÍÌ`C  aC  aC  aC  aC  aC  aC33aC33aC33aCÍLaCffaCš™aCfæaC  bC  bC  bC33bC33bC33bCÍLbCffbCffbCffbCffbC €bC €bC3³bCÍÌbC  cCÍLcCffcCffcCffcCffcCffcCffcC3³cC3³cC3³cCÍÌcCfæcCfæcCfæcCfæcCšdCffdCš™dCš™dC3³dCÍÌdCfædCfædCfædCfædCfædCfædCšeCšeCšeC33eCš™eCfæeCfæeCfæeCfæeCfæeCšfCšfCšfC33fCÍLfCÍLfCfffCfffCfffCfffCÍÌfCšgCšgC33gCÍLgCÍLgCÍLgCÍLgCffgCffgCš™gCš™gCš™gCš™gC3³gCÍÌgC  hCÍLhCÍLhCÍLhC €hC €hCš™hCš™hC3³hCÍÌhCÍÌhCÍÌhCÍÌhCÍÌhCfæhCfæhCÍLiCffiCš™iCÍÌiCÍÌiCÍÌiCÍÌiCÍÌiCfæiCfæiC  jC  jC33jCÍLjCÍLjCÍLjC €jCš™jCÍÌjCfæjC  kC  kCškC33kCÍLkCÍLkCÍLkCÍLkCffkCffkC €kC €kCÍÌkC  lC  lCšlCÍLlCÍLlCfflCfflC €lC €lCš™lC3³lC3³lC3³lC3³lC3³lC  mCšmC33mCÍLmC €mC3³mC3³mC3³mC3³mC3³mCÍÌmCÍÌmCfæmCfæmC  nCšnCÍLnCffnCffnCš™nC3³nC3³nCfænCfænC  oCšoCšoCšoCšoC33oC33oC33oC €oCš™oC3³oC  pC  pC  pCšpCšpCšpC33pCÍLpCÍLpCÍLpC €pCš™pCš™pCÍÌpCÍÌpCÍÌpCfæpC  qC33qCÍLqC €qCš™qCš™qCš™qCš™qCš™qCš™qCš™qC3³qCfæqCšrCÍLrCffrC €rC €rCš™rCš™rCš™rC3³rC3³rCÍÌrC  sCšsCšsCšsCÍLsCÍLsCÍLsC €sCš™sC3³sC  tC  tC  tCštCštCštCštC33tC33tC33tCš™tC3³tC3³tCÍÌtCÍÌtCfætCšuC33uC33uC33uCffuC €uC €uC €uC €uC €uC3³uCfæuCfæuCfæuCšvCÍLvC €vC €vC €vC €vC €vCš™vCš™vC3³vCÍÌvCfævCšwC33wC33wC33wC33wCffwCffwCffwC3³wCfæwC  xC  xC  xC  xC  xCšxC33xCÍLxCffxC €xCš™xCÍÌxCÍÌxCÍÌxC  yCšyCšyCšyC33yCÍLyCffyCffyC €yCš™yC3³yCÍÌyCÍÌyCfæyC  zCšzCffzCffzCffzCffzCffzCffzCš™zCš™zC3³zC  {Cš{Cš{Cš{Cš{Cš{C33{C €{C €{C3³{CÍÌ{Cfæ{Cfæ{Cfæ{Cfæ{Cfæ{Cš|C33|C33|CÍL|Cff|C €|C3³|Cfæ|Cfæ|Cfæ|Cfæ|C  }C  }Cš}C33}C33}C €}Cš™}Cš™}Cš™}Cš™}C3³}CÍÌ}Cš~C33~C33~CÍL~CÍL~CÍL~Cff~Cff~Cff~Cš™~C3³~CÍÌ~CÍÌ~Cfæ~C  CšCÍLCÍLCffCffC €Cš™Cš™C3³CÍÌC  €C  €C  €C  €C  €Cš€C33€CÍL€CÍL€Cff€Cff€Cff€Cff€Cff€Cff€C3s€CÍŒ€Cf¦€Cf¦€C À€C À€C À€CÍÌ€Cfæ€Cfæ€C3ó€C  �C  �C  �Cf&�Cf&�Cf&�Cf&�C33�C @�CÍL�CšY�CšY�Cff�Cš™�Cš™�Cf¦�Cf¦�Cf¦�Cf¦�C3³�C À�C À�C À�CšÙ�Cfæ�C3ó�C3ó�C  ‚CÍ‚C33‚C @‚C @‚C @‚CšY‚CšY‚CšY‚CšY‚CšY‚CšY‚C3s‚CÍŒ‚Cš™‚Cš™‚C3³‚C3³‚CÍÌ‚CšÙ‚CšÙ‚CšÙ‚CšÙ‚Cfæ‚C3ó‚C3ó‚CÍƒCÍƒCšƒCf&ƒC33ƒC33ƒC33ƒC @ƒCšYƒCffƒCÍŒƒCÍŒƒCÍŒƒCÍŒƒCš™ƒCš™ƒCš™ƒCš™ƒC3³ƒC ÀƒCfæƒCfæƒCfæƒCfæƒCfæƒC3óƒCÍ„CÍ„C33„C33„CÍL„CÍL„CÍL„CÍL„CÍL„CšY„Cff„Cff„C3s„C3s„Cf¦„C3³„CÍÌ„CÍÌ„CÍÌ„CÍÌ„CÍÌ„CÍÌ„CšÙ„CšÙ„C  …CÍ…Cf&…Cf&…Cf&…Cf&…Cf&…C33…CšY…CšY…C3s…C3s…C3s…C3s…C €…C €…CÍŒ…Cš™…C3³…C3³…CÍÌ…CÍÌ…CÍÌ…CšÙ…C3ó…C3ó…CÍ†CÍ†Cš†Cš†C33†C33†C33†C33†C @†CÍL†CšY†CšY†C3s†C €†C3³†C3³†C3³†C3³†C3³†C3³†C À†C À†CÍÌ†CÍÌ†C  ‡CÍ‡CÍ‡CÍ‡CÍ‡Cš‡C33‡C @‡CÍL‡CÍL‡Cff‡Cff‡C3s‡C3s‡C3s‡C3s‡C €‡CÍŒ‡Cf¦‡Cf¦‡C À‡CÍÌ‡CšÙ‡Cfæ‡C3ó‡C3ó‡C3ó‡C3ó‡CÍˆCÍˆCšˆCšˆC33ˆC @ˆC @ˆC @ˆCÍLˆCšYˆC €ˆCÍŒˆCš™ˆCš™ˆCf¦ˆCf¦ˆCf¦ˆCf¦ˆCf¦ˆCf¦ˆCšÙˆCfæˆC3óˆC3óˆC3óˆC  ‰Cš‰Cf&‰Cf&‰Cf&‰C @‰C @‰CšY‰CšY‰CšY‰CšY‰C3s‰C €‰C €‰C €‰Cš™‰Cf¦‰C À‰CÍÌ‰CšÙ‰CšÙ‰Cfæ‰Cfæ‰Cfæ‰Cfæ‰C  ŠC  ŠCšŠCf&ŠCf&ŠCf&ŠC @ŠC @ŠCÍLŠCffŠC €ŠC €ŠCÍŒŠCÍŒŠCÍŒŠCÍŒŠCš™ŠCš™ŠCf¦ŠC3³ŠCÍÌŠCÍÌŠCšÙŠCšÙŠCfæŠC  ‹Cš‹Cš‹Cš‹Cš‹C33‹C33‹C @‹C @‹C @‹CÍL‹Cff‹C3s‹C3s‹C3s‹CÍŒ‹Cš™‹Cf¦‹C3³‹C3³‹C3³‹CÍÌ‹CšÙ‹CšÙ‹CšÙ‹Cfæ‹Cfæ‹C  ŒCÍŒCÍŒCÍŒCf&ŒC @ŒCÍLŒCšYŒCffŒCffŒCffŒC3sŒC3sŒC3sŒC €ŒCÍŒŒCš™ŒCf¦ŒC ÀŒC ÀŒCÍÌŒCfæŒCfæŒC3óŒC  �C  �C  �CÍ�Cš�Cš�Cf&�C33�C @�CÍL�CšY�CšY�Cff�C €�CÍŒ�Cš™�Cš™�Cf¦�C3³�C3³�C À�C À�C À�CÍÌ�Cfæ�C3ó�C3ó�C  ŽCÍŽCšŽC33ŽC @ŽC @ŽCÍLŽCšYŽCšYŽCšYŽCffŽCffŽCffŽC3sŽC €ŽCš™ŽCf¦ŽC ÀŽCÍÌŽCÍÌŽCfæŽCfæŽCfæŽC3óŽC3óŽC3óŽC  �Cš�Cš�Cš�C33�C33�C @�CšY�Cff�Cff�C €�CÍŒ�CÍŒ�Cš™�Cf¦�Cf¦�Cf¦�C3³�C3³�C3³�C À�C À�CšÙ�C3ó�C  �CÍ�Cf&�C33�C33�C33�C @�C @�C @�CÍL�CÍL�CÍL�CšY�C3s�CÍŒ�Cš™�C3³�C3³�C3³�C À�CÍÌ�CÍÌ�CÍÌ�Cfæ�Cfæ�C3ó�C  ‘C  ‘C  ‘CÍ‘Cf&‘C33‘C @‘CšY‘CšY‘CšY‘C3s‘C €‘C €‘CÍŒ‘CÍŒ‘CÍŒ‘CÍŒ‘Cf¦‘Cf¦‘Cf¦‘CÍÌ‘CšÙ‘Cfæ‘C  ’C  ’C  ’CÍ’Cf&’Cf&’Cf&’C33’C33’C33’C @’C @’CÍL’Cff’C €’Cš™’Cš™’Cf¦’Cf¦’C3³’C À’C À’C À’C À’Cfæ’Cfæ’Cfæ’C3ó’C3ó’CÍ“Cš“C33“C33“C33“CÍL“CšY“Cff“C3s“C3s“C3s“C €“C €“C €“C €“Cš™“Cf¦“Cf¦“CÍÌ“CšÙ“CšÙ“C3ó“C  ”C  ”C  ”Cš”Cš”Cš”Cš”Cf&”Cf&”C33”C @”CÍL”Cff”CÍŒ”CÍŒ”CÍŒ”Cš™”Cf¦”Cf¦”C3³”C3³”C3³”C3³”CšÙ”CšÙ”CšÙ”Cfæ”C3ó”CÍ•Cf&•Cf&•Cf&•C33•CÍL•CÍL•CšY•CšY•Cff•Cff•C3s•C3s•C3s•C €•Cš™•C3³•C À•C À•CšÙ•Cfæ•C3ó•C3ó•C3ó•C3ó•CÍ–CÍ–CÍ–CÍ–Cš–Cš–C33–CÍL–CšY–CšY–C €–CÍŒ–CÍŒ–CÍŒ–Cš™–Cš™–Cf¦–Cf¦–Cf¦–Cf¦–C À–C À–CšÙ–C3ó–CÍ—CÍ—Cš—Cf&—Cf&—Cf&—C @—C @—C @—C @—CšY—CšY—Cff—Cff—C3s—CÍŒ—C3³—C3³—C3³—C À—CÍÌ—CÍÌ—Cfæ—Cfæ—Cfæ—Cfæ—C  ˜C  ˜C  ˜C  ˜Cš˜C33˜CÍL˜CÍL˜CšY˜CšY˜C3s˜C €˜C €˜C €˜CÍŒ˜CÍŒ˜CÍŒ˜CÍŒ˜Cš™˜Cš™˜CÍÌ˜Cfæ˜C3ó˜C3ó˜C  ™C  ™C  ™CÍ™Cš™Cš™C33™C33™C @™C @™CÍL™CÍL™CšY™C3s™CÍŒ™CÍŒ™Cf¦™Cf¦™Cf¦™Cf¦™C À™CÍÌ™CÍÌ™CÍÌ™CšÙ™CšÙ™Cfæ™Cfæ™C3ó™CÍšCf&šCf&šC33šC33šC @šC @šCšYšCffšCffšCffšC3sšC3sšC €šC €šCš™šC3³šCÍÌšCÍÌšCšÙšCšÙšCfæšCfæšC3óšC  ›CÍ›CÍ›Cš›Cš›Cš›Cš›C @›CšY›C3s›C3s›C €›C €›CÍŒ›CÍŒ›CÍŒ›CÍŒ›Cš™›Cš™›C3³›C3³›C À›C À›CšÙ›C3ó›C  œC  œC  œC  œCšœCšœC33œC33œC @œC @œC @œC @œC @œC @œCšYœC €œCš™œCf¦œC ÀœC ÀœC ÀœC ÀœC ÀœC ÀœCšÙœCšÙœCšÙœCšÙœC3óœC3óœC  �Cf&�C33�C @�CšY�CšY�CšY�CšY�C3s�C3s�C3s�C3s�C €�C €�Cš™�Cš™�Cš™�C À�CšÙ�Cfæ�Cfæ�Cfæ�Cfæ�Cfæ�CšžCšžCšžCšžCf&žCf&žCf&žCf&žCf&žCÍLžC €žCÍŒžCÍŒžCš™žCf¦žCf¦žCf¦žCf¦žCf¦žCf¦žCÍÌžCÍÌžCÍÌžCÍÌžCšÙžC  ŸCÍŸCf&ŸCf&ŸCf&ŸCÍLŸCÍLŸCÍLŸCÍLŸCšYŸCšYŸCšYŸCffŸCffŸCffŸC €ŸCf¦ŸC3³ŸCÍÌŸCšÙŸCšÙŸCšÙŸCšÙŸCšÙŸCfæŸC   CÍ CÍ CÍ Cš Cš Cš Cf& C33 CÍL Cff C € C € C € CÍŒ CÍŒ CÍŒ CÍŒ CÍŒ CÍŒ Cf¦ C3³ C3³ CÍÌ Cfæ C  ¡C  ¡C  ¡C  ¡C  ¡Cš¡Cf&¡Cf&¡Cf&¡C33¡C @¡C @¡CÍL¡CÍL¡CšY¡C €¡Cš™¡Cf¦¡Cf¦¡Cf¦¡Cf¦¡Cf¦¡C3³¡C3³¡C3³¡CšÙ¡CšÙ¡Cfæ¡C3ó¡C3ó¡C  ¢C  ¢Cf&¢Cf&¢C33¢CšY¢CšY¢Cff¢Cff¢Cff¢Cff¢Cff¢Cff¢Cff¢Cff¢C €¢Cf¦¢C3³¢CÍÌ¢CÍÌ¢CšÙ¢CšÙ¢CšÙ¢Cfæ¢Cfæ¢C  £CÍ£CÍ£CÍ£Cš£Cš£Cš£Cf&£C33£CšY£Cff£C €£CÍŒ£CÍŒ£CÍŒ£CÍŒ£Cš™£Cš™£Cf¦£Cf¦£C3³£C À£CÍÌ£CšÙ£CšÙ£C3ó£C3ó£CÍ¤Cf&¤Cf&¤C33¤C @¤CÍL¤CÍL¤CÍL¤CÍL¤CÍL¤CÍL¤CšY¤Cff¤C3s¤Cf¦¤C3³¤CÍÌ¤CÍÌ¤CÍÌ¤CÍÌ¤CÍÌ¤CšÙ¤CšÙ¤CšÙ¤C3ó¤C  ¥C  ¥C  ¥CÍ¥Cš¥C33¥C33¥CÍL¥CšY¥C3s¥C3s¥C €¥C €¥C €¥C €¥C €¥CÍŒ¥CÍŒ¥Cš™¥C3³¥C3³¥Cfæ¥Cfæ¥C  ¦C  ¦C  ¦C  ¦C  ¦Cš¦Cf&¦Cf&¦C @¦C @¦C @¦C @¦CÍL¦CÍL¦Cff¦C3s¦Cš™¦Cf¦¦Cf¦¦Cf¦¦C À¦C À¦C À¦C À¦C À¦CÍÌ¦CšÙ¦CšÙ¦Cfæ¦C3ó¦Cf&§Cf&§C @§C @§C @§CÍL§CšY§CšY§CšY§CšY§C3s§C €§C €§C €§CÍŒ§Cš™§C À§C À§CšÙ§CšÙ§C3ó§C3ó§C3ó§C  ¨C  ¨CÍ¨Cš¨Cš¨Cš¨Cš¨C @¨C @¨CšY¨CšY¨C3s¨CÍŒ¨Cš™¨Cš™¨Cš™¨Cš™¨C3³¨C3³¨C3³¨C3³¨C3³¨C À¨CšÙ¨Cfæ¨C  ©C  ©C33©C33©C33©C33©C33©C @©C @©C @©CÍL©CšY©Cff©C3s©C €©C €©CÍŒ©Cf¦©C À©C À©CÍÌ©CÍÌ©CÍÌ©CšÙ©Cfæ©Cfæ©Cfæ©C3ó©C  ªC  ªCšªCšªCf&ªC33ªCšYªCffªCffªC3sªC3sªC3sªC €ªC €ªCÍŒªCš™ªCf¦ªCf¦ªC3³ªC ÀªCÍÌªCÍÌªC3óªC  «C  «CÍ«Cf&«Cf&«Cf&«C33«C33«C33«C @«C @«CÍL«CšY«Cff«C3s«CÍŒ«Cš™«Cf¦«C3³«C À«C À«C À«CÍÌ«CšÙ«CšÙ«CšÙ«CšÙ«C  ¬C  ¬CÍ¬Cš¬Cf&¬C33¬CÍL¬CÍL¬CšY¬CšY¬Cff¬Cff¬C €¬C €¬C €¬CÍŒ¬Cf¦¬Cf¦¬Cf¦¬C3³¬CÍÌ¬CÍÌ¬CšÙ¬Cfæ¬C  ­CÍ­Cš­Cš­Cš­Cš­Cf&­Cf&­C @­C @­C @­CšY­C €­C €­C €­CÍŒ­Cš™­Cš™­C3³­C3³­C3³­C3³­C À­C À­Cfæ­Cfæ­Cfæ­C3ó­Cš®Cš®Cš®Cf&®C33®C33®CÍL®CÍL®CšY®CšY®C3s®C3s®C €®C €®CÍŒ®Cš™®C3³®C3³®C3³®C3³®Cfæ®Cfæ®C3ó®C3ó®C  ¯C  ¯CÍ¯CÍ¯Cš¯Cš¯C33¯C @¯CšY¯CšY¯Cff¯Cff¯C €¯C €¯C €¯C €¯Cf¦¯Cf¦¯Cf¦¯Cf¦¯CÍÌ¯CÍÌ¯CšÙ¯Cfæ¯C3ó¯C3ó¯C  °C  °Cš°Cš°Cf&°Cf&°CÍL°CÍL°CÍL°CÍL°Cff°Cff°C3s°C €°Cš™°Cš™°Cf¦°Cf¦°C À°C À°CÍÌ°CÍÌ°Cfæ°Cfæ°C3ó°C3ó°C3ó°CÍ±CÍ±Cš±C @±C @±CÍL±CÍL±Cff±Cff±Cff±C3s±C €±C €±CÍŒ±CÍŒ±Cf¦±C3³±C À±CÍÌ±CšÙ±Cfæ±Cfæ±Cfæ±C  ²C  ²CÍ²CÍ²C33²C33²C33²C @²C @²CÍL²CšY²Cff²C €²C €²CÍŒ²CÍŒ²Cf¦²C3³²C3³²C3³²CÍÌ²CÍÌ²CšÙ²CšÙ²Cfæ²C3ó²C3ó²CÍ³Cf&³Cf&³C33³C33³C @³C @³CÍL³CÍL³CÍL³CšY³Cff³Cff³CÍŒ³Cš™³Cš™³Cf¦³C À³C À³C À³CÍÌ³CšÙ³CšÙ³C3ó³C3ó³C  ´C  ´CÍ´Cš´Cš´C33´C33´C33´CšY´Cff´Cff´Cff´C €´CÍŒ´CÍŒ´Cš™´Cš™´Cš™´C À´C À´C À´CÍÌ´CÍÌ´CšÙ´C3ó´CÍµCÍµCÍµCf&µC33µC33µC33µC33µC @µCÍLµCšYµCffµC3sµC €µCÍŒµCš™µCf¦µCf¦µC3³µC3³µCÍÌµCÍÌµCÍÌµCfæµC3óµC  ¶C  ¶C  ¶Cš¶Cš¶Cf&¶C33¶C @¶CÍL¶CšY¶Cff¶C3s¶C3s¶C €¶C €¶CÍŒ¶Cš™¶Cš™¶Cf¦¶C À¶C À¶C À¶CšÙ¶Cfæ¶C3ó¶C  ·C  ·C  ·CÍ·Cf&·Cf&·Cf&·C33·C33·CÍL·Cff·Cff·Cff·C €·Cš™·Cš™·Cš™·Cš™·Cš™·Cš™·C3³·C À·C À·CšÙ·Cfæ·C3ó·C  ¸C  ¸C  ¸CÍ¸Cf&¸Cf&¸Cf&¸C @¸C @¸CÍL¸Cff¸Cff¸Cff¸C3s¸C €¸C €¸CÍŒ¸Cš™¸Cš™¸C À¸CÍÌ¸CÍÌ¸CÍÌ¸CÍÌ¸CšÙ¸CšÙ¸CšÙ¸Cfæ¸C3ó¸CÍ¹Cš¹Cf&¹C33¹C33¹C @¹CÍL¹CšY¹Cff¹Cff¹C3s¹C €¹C €¹C €¹CÍŒ¹Cf¦¹C3³¹C3³¹C3³¹CÍÌ¹CšÙ¹Cfæ¹C3ó¹C  ºC  ºCÍºCšºCšºCšºCf&ºC33ºCÍLºCšYºCšYºCšYºC3sºC3sºC3sºC €ºCÍŒºC3³ºC ÀºC ÀºC ÀºC ÀºCÍÌºCÍÌºCšÙºCšÙºCfæºC3óºCš»Cf&»Cf&»C33»C33»C33»C33»C @»CÍL»C¤type§scatter¤name§Dyna-Q+¡xÈ]À  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;E �;E  ;E °;E À;E Ð;E à;E ð;E  <E <E  <E 0<E @<E P<E `<E p<E €<E �<E  <E °<E À<E Ð<E à<E ð<E  =E =E  =E 0=E @=E P=E `=E p=E €=E �=E  =E °=E À=E Ð=E à=E ð=E  >E >E  >E 0>E @>E P>E `>E p>E €>E �>E  >E °>E À>E Ð>E à>E ð>E  ?E ?E  ?E 0?E @?E P?E `?E p?E €?E �?E  ?E °?E À?E Ð?E à?E ð?E  @E @E  @E 0@E @@E P@E `@E p@E €@E �@E  @E °@E À@E Ð@E à@E ð@E  AE AE  AE 0AE @AE PAE `AE pAE €AE �AE  AE °AE ÀAE ÐAE àAE ðAE  BE BE  BE 0BE @BE PBE `BE pBE €BE �BE  BE °BE ÀBE ÐBE àBE ðBE  CE CE  CE 0CE @CE PCE `CE pCE €CE �CE  CE °CE ÀCE ÐCE àCE ðCE  DE DE  DE 0DE @DE PDE `DE pDE €DE �DE  DE °DE ÀDE ÐDE àDE ðDE  EE EE  EE 0EE @EE PEE `EE pEE €EE �EE  EE °EE ÀEE ÐEE àEE ðEE  FE FE  FE 0FE @FE PFE `FE pFE €FE �FE  FE °FE ÀFE ÐFE àFE ðFE  GE GE  GE 0GE @GE PGE `GE pGE €GE �GE  GE °GE ÀGE ÐGE àGE ðGE  HE HE  HE 0HE @HE PHE `HE pHE €HE �HE  HE °HE ÀHE ÐHE àHE ðHE  IE IE  IE 0IE @IE PIE `IE pIE €IE �IE  IE °IE ÀIE ÐIE àIE ðIE  JE JE  JE 0JE @JE PJE `JE pJE €JE �JE  JE °JE ÀJE ÐJE àJE ðJE  KE KE  KE 0KE @KE PKE `KE pKE €KE �KE  KE °KE ÀKE ÐKE àKE ðKE  LE LE  LE 0LE @LE PLE `LE pLE €LE �LE  LE °LE ÀLE ÐLE àLE ðLE  ME ME  ME 0ME @ME PME `ME pME €ME �ME  ME °ME ÀME ÐME àME ðME  NE NE  NE 0NE @NE PNE `NE pNE €NE �NE  NE °NE ÀNE ÐNE àNE ðNE  OE OE  OE 0OE @OE POE `OE pOE €OE �OE  OE °OE ÀOE ÐOE àOE ðOE  PE PE  PE 0PE @PE PPE `PE pPE €PE �PE  PE °PE ÀPE ÐPE àPE ðPE  QE QE  QE 0QE @QE PQE `QE pQE €QE �QE  QE °QE ÀQE ÐQE àQE ðQE  RE RE  RE 0RE @RE PRE `RE pRE €RE �RE  RE °RE ÀRE ÐRE àRE ðRE  SE SE  SE 0SE @SE PSE `SE pSE €SE �SE  SE °SE ÀSE ÐSE àSE ðSE  TE TE  TE 0TE @TE PTE `TE pTE €TE �TE  TE °TE ÀTE ÐTE àTE ðTE  UE UE  UE 0UE @UE PUE `UE pUE €UE �UE  UE °UE ÀUE ÐUE àUE ðUE  VE VE  VE 0VE @VE PVE `VE pVE €VE �VE  VE °VE ÀVE ÐVE àVE ðVE  WE WE  WE 0WE @WE PWE `WE pWE €WE �WE  WE °WE ÀWE ÐWE àWE ðWE  XE XE  XE 0XE @XE PXE `XE pXE €XE �XE  XE °XE ÀXE ÐXE àXE ðXE  YE YE  YE 0YE @YE PYE `YE pYE €YE �YE  YE °YE ÀYE ÐYE àYE ðYE  ZE ZE  ZE 0ZE @ZE PZE `ZE pZE €ZE �ZE  ZE °ZE ÀZE ÐZE àZE ðZE  [E [E  [E 0[E @[E P[E `[E p[E €[E �[E  [E °[E À[E Ð[E à[E ð[E  \E \E  \E 0\E @\E P\E `\E p\E €\E �\E  \E °\E À\E Ð\E à\E ð\E  ]E ]E  ]E 0]E @]E P]E `]E p]E €]E �]E  ]E °]E À]E Ð]E à]E ð]E  ^E ^E  ^E 0^E @^E P^E `^E p^E €^E �^E  ^E °^E À^E Ð^E à^E ð^E  _E _E  _E 0_E @_E P_E `_E p_E €_E �_E  _E °_E À_E Ð_E à_E ð_E  `E `E  `E 0`E @`E P`E ``E p`E €`E �`E  `E °`E À`E Ð`E à`E ð`E  aE aE  aE 0aE @aE PaE `aE paE €aE �aE  aE °aE ÀaE ÐaE àaE ðaE  bE bE  bE 0bE @bE PbE `bE pbE €bE �bE  bE °bE ÀbE ÐbE àbE ðbE  cE cE  cE 0cE @cE PcE `cE pcE €cE �cE  cE °cE ÀcE ÐcE àcE ðcE  dE dE  dE 0dE @dE PdE `dE pdE €dE �dE  dE °dE ÀdE ÐdE àdE ðdE  eE eE  eE 0eE @eE PeE `eE peE €eE �eE  eE °eE ÀeE ÐeE àeE ðeE  fE fE  fE 0fE @fE PfE `fE pfE €fE �fE  fE °fE ÀfE ÐfE àfE ðfE  gE gE  gE 0gE @gE PgE `gE pgE €gE �gE  gE °gE ÀgE ÐgE àgE ðgE  hE hE  hE 0hE @hE PhE `hE phE €hE �hE  hE °hE ÀhE ÐhE àhE ðhE  iE iE  iE 0iE @iE PiE `iE piE €iE �iE  iE °iE ÀiE ÐiE àiE ðiE  jE jE  jE 0jE @jE PjE `jE pjE €jE �jE  jE °jE ÀjE ÐjE àjE ðjE  kE kE  kE 0kE @kE PkE `kE pkE €kE �kE  kE °kE ÀkE ÐkE àkE ðkE  lE lE  lE 0lE @lE PlE `lE plE €lE �lE  lE °lE ÀlE ÐlE àlE ðlE  mE mE  mE 0mE @mE PmE `mE pmE €mE �mE  mE °mE ÀmE ÐmE àmE ðmE  nE nE  nE 0nE @nE PnE `nE pnE €nE �nE  nE °nE ÀnE ÐnE ànE ðnE  oE oE  oE 0oE @oE PoE `oE poE €oE �oE  oE °oE ÀoE ÐoE àoE ðoE  pE pE  pE 0pE @pE PpE `pE ppE €pE �pE  pE °pE ÀpE ÐpE àpE ðpE  qE qE  qE 0qE @qE PqE `qE pqE €qE �qE  qE °qE ÀqE ÐqE àqE ðqE  rE rE  rE 0rE @rE PrE `rE prE €rE �rE  rE °rE ÀrE ÐrE àrE ðrE  sE sE  sE 0sE @sE PsE `sE psE €sE �sE  sE °sE ÀsE ÐsE àsE ðsE  tE tE  tE 0tE @tE PtE `tE ptE €tE �tE  tE °tE ÀtE ÐtE àtE ðtE  uE uE  uE 0uE @uE PuE `uE puE €uE �uE  uE °uE ÀuE ÐuE àuE ðuE  vE vE  vE 0vE @vE PvE `vE pvE €vE �vE  vE °vE ÀvE ÐvE àvE ðvE  wE wE  wE 0wE @wE PwE `wE pwE €wE �wE  wE °wE ÀwE ÐwE àwE ðwE  xE xE  xE 0xE @xE PxE `xE pxE €xE �xE  xE °xE ÀxE ÐxE àxE ðxE  yE yE  yE 0yE @yE PyE `yE pyE €yE �yE  yE °yE ÀyE ÐyE àyE ðyE  zE zE  zE 0zE @zE PzE `zE pzE €zE �zE  zE °zE ÀzE ÐzE àzE ðzE  {E {E  {E 0{E @{E P{E `{E p{E €{E �{E  {E °{E À{E Ð{E à{E ð{E  |E |E  |E 0|E @|E P|E `|E p|E €|E �|E  |E °|E À|E Ð|E à|E ð|E  }E }E  }E 0}E @}E P}E `}E p}E €}E �}E  }E °}E À}E Ð}E à}E ð}E  ~E ~E  ~E 0~E @~E P~E `~E p~E €~E �~E  ~E °~E À~E Ð~E à~E ð~E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  €E €E €E €E  €E (€E 0€E 8€E @€E H€E P€E X€E `€E h€E p€E x€E €€E ˆ€E �€E ˜€E  €E ¨€E °€E ¸€E À€E È€E Ð€E Ø€E à€E è€E ð€E ø€E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‚E ‚E ‚E ‚E  ‚E (‚E 0‚E 8‚E @‚E H‚E P‚E X‚E `‚E h‚E p‚E x‚E €‚E ˆ‚E �‚E ˜‚E  ‚E ¨‚E °‚E ¸‚E À‚E È‚E Ð‚E Ø‚E à‚E è‚E ð‚E ø‚E  ƒE ƒE ƒE ƒE  ƒE (ƒE 0ƒE 8ƒE @ƒE HƒE PƒE XƒE `ƒE hƒE pƒE xƒE €ƒE ˆƒE �ƒE ˜ƒE  ƒE ¨ƒE °ƒE ¸ƒE ÀƒE ÈƒE ÐƒE ØƒE àƒE èƒE ðƒE øƒE  „E „E „E „E  „E („E 0„E 8„E @„E H„E P„E X„E `„E h„E p„E x„E €„E ˆ„E �„E ˜„E  „E ¨„E °„E ¸„E À„E È„E Ð„E Ø„E à„E è„E ð„E ø„E  …E …E …E …E  …E (…E 0…E 8…E @…E H…E P…E X…E `…E h…E p…E x…E €…E ˆ…E �…E ˜…E  …E ¨…E °…E ¸…E À…E È…E Ð…E Ø…E à…E è…E ð…E ø…E  †E †E †E †E  †E (†E 0†E 8†E @†E H†E P†E X†E `†E h†E p†E x†E €†E ˆ†E �†E ˜†E  †E ¨†E °†E ¸†E À†E È†E Ð†E Ø†E à†E è†E ð†E ø†E  ‡E ‡E ‡E ‡E  ‡E (‡E 0‡E 8‡E @‡E H‡E P‡E X‡E `‡E h‡E p‡E x‡E €‡E ˆ‡E �‡E ˜‡E  ‡E ¨‡E °‡E ¸‡E À‡E È‡E Ð‡E Ø‡E à‡E è‡E ð‡E ø‡E  ˆE ˆE ˆE ˆE  ˆE (ˆE 0ˆE 8ˆE @ˆE HˆE PˆE XˆE `ˆE hˆE pˆE xˆE €ˆE ˆˆE �ˆE ˜ˆE  ˆE ¨ˆE °ˆE ¸ˆE ÀˆE ÈˆE ÐˆE ØˆE àˆE èˆE ðˆE øˆE  ‰E ‰E ‰E ‰E  ‰E (‰E 0‰E 8‰E @‰E H‰E P‰E X‰E `‰E h‰E p‰E x‰E €‰E ˆ‰E �‰E ˜‰E  ‰E ¨‰E °‰E ¸‰E À‰E È‰E Ð‰E Ø‰E à‰E è‰E ð‰E ø‰E  ŠE ŠE ŠE ŠE  ŠE (ŠE 0ŠE 8ŠE @ŠE HŠE PŠE XŠE `ŠE hŠE pŠE xŠE €ŠE ˆŠE �ŠE ˜ŠE  ŠE ¨ŠE °ŠE ¸ŠE ÀŠE ÈŠE ÐŠE ØŠE àŠE èŠE ðŠE øŠE  ‹E ‹E ‹E ‹E  ‹E (‹E 0‹E 8‹E @‹E H‹E P‹E X‹E `‹E h‹E p‹E x‹E €‹E ˆ‹E �‹E ˜‹E  ‹E ¨‹E °‹E ¸‹E À‹E È‹E Ð‹E Ø‹E à‹E è‹E ð‹E ø‹E  ŒE ŒE ŒE ŒE  ŒE (ŒE 0ŒE 8ŒE @ŒE HŒE PŒE XŒE `ŒE hŒE pŒE xŒE €ŒE ˆŒE �ŒE ˜ŒE  ŒE ¨ŒE °ŒE ¸ŒE ÀŒE ÈŒE ÐŒE ØŒE àŒE èŒE ðŒE øŒE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ŽE ŽE ŽE ŽE  ŽE (ŽE 0ŽE 8ŽE @ŽE HŽE PŽE XŽE `ŽE hŽE pŽE xŽE €ŽE ˆŽE �ŽE ˜ŽE  ŽE ¨ŽE °ŽE ¸ŽE ÀŽE ÈŽE ÐŽE ØŽE àŽE èŽE ðŽE øŽE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‘E ‘E ‘E ‘E  ‘E (‘E 0‘E 8‘E @‘E H‘E P‘E X‘E `‘E h‘E p‘E x‘E €‘E ˆ‘E �‘E ˜‘E  ‘E ¨‘E °‘E ¸‘E À‘E È‘E Ð‘E Ø‘E à‘E è‘E ð‘E ø‘E  ’E ’E ’E ’E  ’E (’E 0’E 8’E @’E H’E P’E X’E `’E h’E p’E x’E €’E ˆ’E �’E ˜’E  ’E ¨’E °’E ¸’E À’E È’E Ð’E Ø’E à’E è’E ð’E ø’E  “E “E “E “E  “E (“E 0“E 8“E @“E H“E P“E X“E `“E h“E p“E x“E €“E ˆ“E �“E ˜“E  “E ¨“E °“E ¸“E À“E È“E Ð“E Ø“E à“E è“E ð“E ø“E  ”E ”E ”E ”E  ”E (”E 0”E 8”E @”E H”E P”E X”E `”E h”E p”E x”E €”E ˆ”E �”E ˜”E  ”E ¨”E °”E ¸”E À”E È”E Ð”E Ø”E à”E è”E ð”E ø”E  •E •E •E •E  •E (•E 0•E 8•E @•E H•E P•E X•E `•E h•E p•E x•E €•E ˆ•E �•E ˜•E  •E ¨•E °•E ¸•E À•E È•E Ð•E Ø•E à•E è•E ð•E ø•E  –E –E –E –E  –E (–E 0–E 8–E @–E H–E P–E X–E `–E h–E p–E x–E €–E ˆ–E �–E ˜–E  –E ¨–E °–E ¸–E À–E È–E Ð–E Ø–E à–E è–E ð–E ø–E  —E —E —E —E  —E (—E 0—E 8—E @—E H—E P—E X—E `—E h—E p—E x—E €—E ˆ—E �—E ˜—E  —E ¨—E °—E ¸—E À—E È—E Ð—E Ø—E à—E è—E ð—E ø—E  ˜E ˜E ˜E ˜E  ˜E (˜E 0˜E 8˜E @˜E H˜E P˜E X˜E `˜E h˜E p˜E x˜E €˜E ˆ˜E �˜E ˜˜E  ˜E ¨˜E °˜E ¸˜E À˜E È˜E Ð˜E Ø˜E à˜E è˜E ð˜E ø˜E  ™E ™E ™E ™E  ™E (™E 0™E 8™E @™E H™E P™E X™E `™E h™E p™E x™E €™E ˆ™E �™E ˜™E  ™E ¨™E °™E ¸™E À™E È™E Ð™E Ø™E à™E è™E ð™E ø™E  šE šE šE šE  šE (šE 0šE 8šE @šE HšE PšE XšE `šE hšE pšE xšE €šE ˆšE �šE ˜šE  šE ¨šE °šE ¸šE ÀšE ÈšE ÐšE ØšE àšE èšE ðšE øšE  ›E ›E ›E ›E  ›E (›E 0›E 8›E @›E H›E P›E X›E `›E h›E p›E x›E €›E ˆ›E �›E ˜›E  ›E ¨›E °›E ¸›E À›E È›E Ð›E Ø›E à›E è›E ð›E ø›E  œE œE œE œE  œE (œE 0œE 8œE @œE HœE PœE XœE `œE hœE pœE xœE €œE ˆœE �œE ˜œE  œE ¨œE °œE ¸œE ÀœE ÈœE ÐœE ØœE àœE èœE ðœE øœE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  žE žE žE žE  žE (žE 0žE 8žE @žE HžE PžE XžE `žE hžE pžE xžE €žE ˆžE �žE ˜žE  žE ¨žE °žE ¸žE ÀžE ÈžE ÐžE ØžE àžE èžE ðžE øžE  ŸE ŸE ŸE ŸE  ŸE (ŸE 0ŸE 8ŸE @ŸE HŸE PŸE XŸE `ŸE hŸE pŸE xŸE €ŸE ˆŸE �ŸE ˜ŸE  ŸE ¨ŸE °ŸE ¸ŸE ÀŸE ÈŸE ÐŸE ØŸE àŸE èŸE ðŸE øŸE   E  E  E  E   E ( E 0 E 8 E @ E H E P E X E ` E h E p E x E € E ˆ E � E ˜ E   E ¨ E ° E ¸ E À E È E Ð E Ø E à E è E ð E ø E  ¡E ¡E ¡E ¡E  ¡E (¡E 0¡E 8¡E @¡E H¡E P¡E X¡E `¡E h¡E p¡E x¡E €¡E ˆ¡E �¡E ˜¡E  ¡E ¨¡E °¡E ¸¡E À¡E È¡E Ð¡E Ø¡E à¡E è¡E ð¡E ø¡E  ¢E ¢E ¢E ¢E  ¢E (¢E 0¢E 8¢E @¢E H¢E P¢E X¢E `¢E h¢E p¢E x¢E €¢E ˆ¢E �¢E ˜¢E  ¢E ¨¢E °¢E ¸¢E À¢E È¢E Ð¢E Ø¢E à¢E è¢E ð¢E ø¢E  £E £E £E £E  £E (£E 0£E 8£E @£E H£E P£E X£E `£E h£E p£E x£E €£E ˆ£E �£E ˜£E  £E ¨£E °£E ¸£E À£E È£E Ð£E Ø£E à£E è£E ð£E ø£E  ¤E ¤E ¤E ¤E  ¤E (¤E 0¤E 8¤E @¤E H¤E P¤E X¤E `¤E h¤E p¤E x¤E €¤E ˆ¤E �¤E ˜¤E  ¤E ¨¤E °¤E ¸¤E À¤E È¤E Ð¤E Ø¤E à¤E è¤E ð¤E ø¤E  ¥E ¥E ¥E ¥E  ¥E (¥E 0¥E 8¥E @¥E H¥E P¥E X¥E `¥E h¥E p¥E x¥E €¥E ˆ¥E �¥E ˜¥E  ¥E ¨¥E °¥E ¸¥E À¥E È¥E Ð¥E Ø¥E à¥E è¥E ð¥E ø¥E  ¦E ¦E ¦E ¦E  ¦E (¦E 0¦E 8¦E @¦E H¦E P¦E X¦E `¦E h¦E p¦E x¦E €¦E ˆ¦E �¦E ˜¦E  ¦E ¨¦E °¦E ¸¦E À¦E È¦E Ð¦E Ø¦E à¦E è¦E ð¦E ø¦E  §E §E §E §E  §E (§E 0§E 8§E @§E H§E P§E X§E `§E h§E p§E x§E €§E ˆ§E �§E ˜§E  §E ¨§E °§E ¸§E À§E È§E Ð§E Ø§E à§E è§E ð§E ø§E  ¨E ¨E ¨E ¨E  ¨E (¨E 0¨E 8¨E @¨E H¨E P¨E X¨E `¨E h¨E p¨E x¨E €¨E ˆ¨E �¨E ˜¨E  ¨E ¨¨E °¨E ¸¨E À¨E È¨E Ð¨E Ø¨E à¨E è¨E ð¨E ø¨E  ©E ©E ©E ©E  ©E (©E 0©E 8©E @©E H©E P©E X©E `©E h©E p©E x©E €©E ˆ©E �©E ˜©E  ©E ¨©E °©E ¸©E À©E È©E Ð©E Ø©E à©E è©E ð©E ø©E  ªE ªE ªE ªE  ªE (ªE 0ªE 8ªE @ªE HªE PªE XªE `ªE hªE pªE xªE €ªE ˆªE �ªE ˜ªE  ªE ¨ªE °ªE ¸ªE ÀªE ÈªE ÐªE ØªE àªE èªE ðªE øªE  «E «E «E «E  «E («E 0«E 8«E @«E H«E P«E X«E `«E h«E p«E x«E €«E ˆ«E �«E ˜«E  «E ¨«E °«E ¸«E À«E È«E Ð«E Ø«E à«E è«E ð«E ø«E  ¬E ¬E ¬E ¬E  ¬E (¬E 0¬E 8¬E @¬E H¬E P¬E X¬E `¬E h¬E p¬E x¬E €¬E ˆ¬E �¬E ˜¬E  ¬E ¨¬E °¬E ¸¬E À¬E È¬E Ð¬E Ø¬E à¬E è¬E ð¬E ø¬E  ­E ­E ­E ­E  ­E (­E 0­E 8­E @­E H­E P­E X­E `­E h­E p­E x­E €­E ˆ­E �­E ˜­E  ­E ¨­E °­E ¸­E À­E È­E Ð­E Ø­E à­E è­E ð­E ø­E  ®E ®E ®E ®E  ®E (®E 0®E 8®E @®E H®E P®E X®E `®E h®E p®E x®E €®E ˆ®E �®E ˜®E  ®E ¨®E °®E ¸®E À®E È®E Ð®E Ø®E à®E è®E ð®E ø®E  ¯E ¯E ¯E ¯E  ¯E (¯E 0¯E 8¯E @¯E H¯E P¯E X¯E `¯E h¯E p¯E x¯E €¯E ˆ¯E �¯E ˜¯E  ¯E ¨¯E °¯E ¸¯E À¯E È¯E Ð¯E Ø¯E à¯E è¯E ð¯E ø¯E  °E °E °E °E  °E (°E 0°E 8°E @°E H°E P°E X°E `°E h°E p°E x°E €°E ˆ°E �°E ˜°E  °E ¨°E °°E ¸°E À°E È°E Ð°E Ø°E à°E è°E ð°E ø°E  ±E ±E ±E ±E  ±E (±E 0±E 8±E @±E H±E P±E X±E `±E h±E p±E x±E €±E ˆ±E �±E ˜±E  ±E ¨±E °±E ¸±E À±E È±E Ð±E Ø±E à±E è±E ð±E ø±E  ²E ²E ²E ²E  ²E (²E 0²E 8²E @²E H²E P²E X²E `²E h²E p²E x²E €²E ˆ²E �²E ˜²E  ²E ¨²E °²E ¸²E À²E È²E Ð²E Ø²E à²E è²E ð²E ø²E  ³E ³E ³E ³E  ³E (³E 0³E 8³E @³E H³E P³E X³E `³E h³E p³E x³E €³E ˆ³E �³E ˜³E  ³E ¨³E °³E ¸³E À³E È³E Ð³E Ø³E à³E è³E ð³E ø³E  ´E ´E ´E ´E  ´E (´E 0´E 8´E @´E H´E P´E X´E `´E h´E p´E x´E €´E ˆ´E �´E ˜´E  ´E ¨´E °´E ¸´E À´E È´E Ð´E Ø´E à´E è´E ð´E ø´E  µE µE µE µE  µE (µE 0µE 8µE @µE HµE PµE XµE `µE hµE pµE xµE €µE ˆµE �µE ˜µE  µE ¨µE °µE ¸µE ÀµE ÈµE ÐµE ØµE àµE èµE ðµE øµE  ¶E ¶E ¶E ¶E  ¶E (¶E 0¶E 8¶E @¶E H¶E P¶E X¶E `¶E h¶E p¶E x¶E €¶E ˆ¶E �¶E ˜¶E  ¶E ¨¶E °¶E ¸¶E À¶E È¶E Ð¶E Ø¶E à¶E è¶E ð¶E ø¶E  ·E ·E ·E ·E  ·E (·E 0·E 8·E @·E H·E P·E X·E `·E h·E p·E x·E €·E ˆ·E �·E ˜·E  ·E ¨·E °·E ¸·E À·E È·E Ð·E Ø·E à·E è·E ð·E ø·E  ¸E ¸E ¸E ¸E  ¸E (¸E 0¸E 8¸E @¸E H¸E P¸E X¸E `¸E h¸E p¸E x¸E €¸E ˆ¸E �¸E ˜¸E  ¸E ¨¸E °¸E ¸¸E À¸E È¸E Ð¸E Ø¸E à¸E è¸E ð¸E ø¸E  ¹E ¹E ¹E ¹E  ¹E (¹E 0¹E 8¹E @¹E H¹E P¹E X¹E `¹E h¹E p¹E x¹E €¹E ˆ¹E �¹E ˜¹E  ¹E ¨¹E °¹E ¸¹E À¹E È¹E Ð¹E Ø¹E à¹E è¹E ð¹E ø¹E  ºE ºE ºE ºE  ºE (ºE 0ºE 8ºE @ºE HºE PºE XºE `ºE hºE pºE xºE €ºE ˆºE �ºE ˜ºE  ºE ¨ºE °ºE ¸ºE ÀºE ÈºE ÐºE ØºE àºE èºE ðºE øºE  »E »E »E »E  »E (»E 0»E 8»E @»E H»E P»E X»E `»E h»E p»E x»E €»E„¡yÈ]À                                                                                                                                                                                                                                                                                        ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?333?333?333?333?333?333?333?333?333?333?333?333?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?š™™?š™™?ff¦?ff¦?33³?33³?33³?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?  À?ÍÌÌ?ÍÌÌ?š™Ù?š™Ù?š™Ù?š™Ù?š™Ù?33ó?33ó?33ó?   @   @   @   @   @   @   @   @ff@ff@ff@ff@ff@ÍÌ@ÍÌ@33@š™@š™@š™@š™@š™@š™@š™@š™@š™@š™@   @   @   @   @   @   @ff&@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@333@333@333@333@š™9@š™9@  @@ffF@ffF@ffF@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@33S@33S@š™Y@š™Y@  `@  `@  `@fff@ÍÌl@ÍÌl@ÍÌl@33s@33s@33s@33s@33s@33s@33s@  €@  €@33ƒ@ff†@ff†@ff†@š™‰@ÍÌŒ@ÍÌŒ@  �@  �@  �@  �@  �@  �@  �@33“@33“@š™™@ÍÌœ@ÍÌœ@ÍÌœ@   @   @   @ff¦@ff¦@ff¦@ff¦@š™©@š™©@š™©@ÍÌ¬@ÍÌ¬@  °@33³@ff¶@ff¶@š™¹@š™¹@š™¹@ÍÌ¼@ÍÌ¼@  À@  À@  À@  À@  À@33Ã@33Ã@ffÆ@š™É@š™É@š™É@  Ð@  Ð@  Ð@33Ó@33Ó@33Ó@33Ó@ffÖ@ffÖ@ffÖ@š™Ù@š™Ù@ÍÌÜ@  à@  à@  à@33ã@33ã@ffæ@š™é@š™é@š™é@š™é@š™é@š™é@ÍÌì@  ð@  ð@33ó@ffö@ffö@ffö@š™ù@š™ù@š™ù@ÍÌü@   A   A   A   A   Aš™A33AÍÌA  Aš™	Aš™	Aš™	A33A33A33AÍÌAÍÌAÍÌAffAffAffAffA  A  A33AffA  A  Aš™Aš™Aš™A33A33A33A33A33AÍÌAÍÌAffAffAš™!A33#A33#AÍÌ$Aff&Aff&Aff&A  (A  (A  (A  (A  (A  (A  (A33+A33+Aff.A  0A  0A  0Aš™1AÍÌ4AÍÌ4Aff6Aff6Aff6Aff6Aff6Aff6Aff6A  8A  8AÍÌ<Aff>Aff>Aff>A  @A  @Aš™AAÍÌDAÍÌDAÍÌDAÍÌDAÍÌDAÍÌDAÍÌDAffFAffFAš™IA33KAÍÌLAÍÌLAffNAffNA  PA33SA33SAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAffVAffVAš™YA33[A33[A33[Aff^Aff^A  `A33cA33cA33cA33cAÍÌdAÍÌdAÍÌdAfffAfffAš™iA33kA33kA33kAÍÌlAÍÌlA  pA33sA33sA33sA33sA33sA33sAÍÌtAffvAffvAš™yA33{A33{A33{AÍÌ|AÍÌ|Aff~AÍÌ€Aš™�Aš™�Aš™�Aš™�Aš™�Aš™�Aff‚A33ƒAÍÌ„Aš™…Aš™…Aš™…Aff†Aff†A33‡AÍÌˆAÍÌˆAÍÌˆAš™‰Aš™‰Aš™‰Aš™‰AffŠAffŠA  ŒAš™�Aš™�Aš™�AffŽAffŽA33�AÍÌ�AÍÌ�AÍÌ�AÍÌ�AÍÌ�Aš™‘Aš™‘Aff’Aff’A  ”AÍÌ”AÍÌ”Aš™•Aff–Aff–A33—AÍÌ˜AÍÌ˜AÍÌ˜AÍÌ˜AÍÌ˜AÍÌ˜AÍÌ˜AffšAffšA  œAÍÌœAÍÌœAÍÌœAš™�AffžA33ŸAÍÌ AÍÌ AÍÌ AÍÌ AÍÌ AÍÌ AÍÌ Aš™¡Aš™¡A  ¤AÍÌ¤AÍÌ¤AÍÌ¤Aš™¥Aš™¥Aff¦AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨AÍÌ¨Aš™©Aš™©A33«A  ¬AÍÌ¬AÍÌ¬Aš™­Aš™­Aff®A  °A  °AÍÌ°AÍÌ°AÍÌ°AÍÌ°AÍÌ°Aš™±Aš™±A33³A  ´A  ´A  ´Aš™µAš™µAff¶A  ¸A  ¸A  ¸A  ¸AÍÌ¸AÍÌ¸AÍÌ¸Aš™¹Aš™¹A33»A  ¼A  ¼A  ¼AÍÌ¼AÍÌ¼Aff¾A  ÀA  ÀA  ÀA  ÀA  ÀA  ÀAÍÌÀAš™ÁAš™ÁA33ÃA  ÄA  ÄA  ÄAÍÌÄAÍÌÄAš™ÅA33ÇA  ÈA  ÈA  ÈA  ÈA  ÈA  ÈAÍÌÈAš™ÉA33ËA  ÌA  ÌA  ÌAÍÌÌAÍÌÌAš™ÍA33ÏA33ÏA33ÏA  ÐA  ÐA  ÐA  ÐAÍÌÐAÍÌÐAffÒA  ÔA  ÔA  ÔAÍÌÔAÍÌÔAš™ÕA33×A33×A33×A33×A33×A33×A  ØAÍÌØAÍÌØAffÚA33ÛA33ÛA  ÜAÍÌÜAÍÌÜAš™ÝA33ßA33ßA33ßA33ßA33ßA33ßA33ßA  àAÍÌàAffâA33ãA33ãA33ãA  äAÍÌäAš™åA33çA33çA33çA33çA33çA33çA33çA  èA  èAš™éAffêA33ëA33ëA  ìA  ìAÍÌìA33ïA33ïA33ïA33ïA33ïA33ïA33ïA  ðA  ðAš™ñAffòAffòAffòA  ôA  ôAÍÌôAfföAfföA33÷A33÷A33÷A33÷A33÷A  øA  øAš™ùAffúAffúAffúA33ûA33ûA  üAffþAffþAffþAffþA33ÿA33ÿA33ÿA   B   BÍÌ B33B33B33Bš™Bš™B  BÍÌBÍÌB33B33B33B33Bš™B  B  BÍÌB33B33B33Bš™Bš™B  BÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33Bš™BffB33	B33	B33	Bš™	Bš™	B  
BÍÌ
BÍÌ
BÍÌ
BÍÌ
BÍÌ
BÍÌ
BÍÌ
B33B33B  BÍÌBÍÌBÍÌBš™Bš™B  BÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B  BffBffBÍÌB33B33B  BÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B  BffBffBffBÍÌBÍÌBš™BffBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B  BffBffBffBÍÌBÍÌB33B  BffBffBffBffBffBÍÌB33B33B  BffBffBffBÍÌBÍÌB33B  B  B  B  BffBffBffBÍÌBÍÌB   Bff Bff Bff BÍÌ BÍÌ B33!B  "B  "B  "B  "B  "B  "B  "BÍÌ"BÍÌ"Bš™#B  $B  $Bff$BÍÌ$BÍÌ$B33%B  &B  &B  &B  &B  &B  &B  &Bff&Bff&B33'B  (B  (B  (Bff(BÍÌ(B33)B  *B  *B  *B  *B  *B  *B  *Bff*Bff*B33+Bš™+Bš™+B  ,Bff,Bff,BÍÌ,B  .B  .B  .B  .B  .B  .B  .B  .Bff.B33/Bš™/Bš™/Bš™/B  0Bff0BÍÌ0Bš™1Bš™1B  2B  2B  2B  2B  2B  2Bff2B333Bš™3Bš™3Bš™3B  4B  4Bff4B335Bš™5Bš™5Bš™5B  6B  6B  6B  6Bff6B337Bš™7Bš™7Bš™7B  8B  8Bff8B339B339B339B339B339Bš™9B  :B  :Bff:BÍÌ:Bš™;Bš™;Bš™;B  <B  <Bff<B33=B33=B33=B33=B33=B33=B33=Bš™=B  >BÍÌ>Bš™?Bš™?Bš™?Bš™?B  @Bff@B33AB33AB33AB33AB33AB33AB33AB33AB33AB  BBÍÌBBš™CBš™CBš™CBš™CBffDB33EB33EB33EB33EB33EB33EB33EB33EB33EBš™EBffFBÍÌFBÍÌFBÍÌFBÍÌFB  HBÍÌHB33IB33IB33IB33IB33IB33IB33IB33IBš™IB  JBÍÌJBÍÌJBÍÌJBÍÌJBš™KB  LBÍÌLB33MB33MB33MB33MB33MB33MB33MBš™MB  NBÍÌNBÍÌNBÍÌNBÍÌNB33OB  PBffPBffPBÍÌPB33QB33QB33QB33QB33QBš™QBš™QBffRBÍÌRBÍÌRBÍÌRB33SB  TB  TBffTBffTBffTBÍÌTB33UB33UB33UBš™UBš™UBš™UBÍÌVBÍÌVBÍÌVB33WB  XB  XB  XBffXBffXBffXBffXBffXB33YBš™YBš™YBš™YB  ZBffZBÍÌZB33[Bš™[B  \B  \Bff\Bff\Bff\Bff\Bff\Bff\BÍÌ\Bš™]Bš™]B  ^B  ^Bff^B33_Bš™_B  `B  `B  `Bff`Bff`Bff`Bff`Bff`Bff`BÍÌ`BÍÌ`B33aB33aB33aBffbBš™cB  dB  dB  dBffdBffdBffdBffdBffdBffdBÍÌdBÍÌdB33eB33eB33eBfffBÍÌfBÍÌfB33gBš™gBffhBffhBffhBffhBffhBffhBffhBÍÌhB33iB33iB33iB  jBÍÌjBÍÌjBÍÌjB33kBš™kBš™kB  lB  lBfflBfflBfflBÍÌlB33mB33mB33mB  nBÍÌnBÍÌnBÍÌnBÍÌnB33oBš™oBš™oBš™oB  pB  pBffpBÍÌpBÍÌpB33qB33qBš™qBÍÌrBÍÌrBÍÌrBÍÌrB33sBš™sBš™sBš™sBš™sBš™sB  tB  tBÍÌtBÍÌtB33uBš™uB  vBÍÌvBÍÌvBÍÌvBÍÌvBš™wBš™wBš™wBš™wBš™wBš™wBš™wBffxBffxB33yB33yBš™yBffzBÍÌzBÍÌzBÍÌzB33{Bš™{Bš™{Bš™{Bš™{Bš™{Bš™{B  |B  |Bff|Bff|B33}Bš™}Bff~Bff~BÍÌ~B33B33Bš™Bš™Bš™Bš™Bš™Bš™B  €B33€B33€B33€Bš™€B  �B  �B  �B33�Bff�Bff�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ‚B  ‚B33‚B33‚Bff‚BÍÌ‚B  ƒB  ƒB33ƒB33ƒB33ƒBffƒBš™ƒBÍÌƒBÍÌƒBÍÌƒB  „B  „B33„B33„Bff„BÍÌ„B  …B  …B33…B33…B33…Bff…Bff…Bff…Bš™…Bš™…B  †B  †B33†B33†Bff†BÍÌ†B  ‡B  ‡B33‡B33‡B33‡Bff‡Bff‡Bff‡Bff‡Bff‡BÍÌ‡BÍÌ‡B33ˆB33ˆBffˆBš™ˆB  ‰B  ‰B33‰B33‰B33‰Bff‰Bff‰Bff‰Bff‰Bff‰Bš™‰Bš™‰BÍÌ‰BÍÌ‰BffŠBš™ŠBÍÌŠB  ‹B33‹B33‹B33‹Bff‹Bff‹Bff‹Bff‹Bff‹Bff‹Bš™‹Bš™‹Bš™‹B  ŒB33ŒBffŒBÍÌŒB33�B33�B33�Bff�Bff�Bff�Bff�Bff�Bff�Bff�Bš™�Bš™�BÍÌ�B  ŽB  ŽBffŽBš™ŽB  �B  �B33�B33�B33�Bff�Bff�Bff�Bff�Bš™�Bš™�BÍÌ�B  �B  �B33�Bff�Bš™�BÍÌ�B33‘B33‘B33‘B33‘B33‘B33‘B33‘Bff‘Bff‘BÍÌ‘B  ’B  ’B33’Bff’Bff’BÍÌ’B  “B  “B  “B33“B33“B33“B33“B33“B33“BÍÌ“B  ”B  ”B33”Bff”Bff”BÍÌ”BÍÌ”B  •B  •B  •B  •B33•B33•B33•B33•Bš™•BÍÌ•B  –B33–Bff–Bff–BÍÌ–BÍÌ–B  —B  —B  —B  —B  —B  —B  —B33—Bš™—BÍÌ—BÍÌ—B  ˜Bff˜Bff˜BÍÌ˜BÍÌ˜B  ™B  ™B  ™B  ™B  ™B  ™B  ™B  ™Bff™BÍÌ™BÍÌ™B  šB  šB33šBš™šBÍÌšB  ›B  ›B  ›B  ›B  ›B  ›B  ›B  ›Bff›Bff›Bš™›BÍÌ›BÍÌ›BÍÌ›B33œBffœBÍÌœBÍÌœB  �B  �B  �B  �B  �B  �Bff�Bff�Bš™�Bš™�Bš™�Bš™�B33žBffžBš™žBš™žBÍÌžBÍÌžBÍÌžBÍÌžB  ŸB  ŸBffŸBffŸBffŸBš™ŸBš™ŸBš™ŸB   B33 Bff Bff Bš™ Bš™ BÍÌ BÍÌ B  ¡B  ¡B  ¡B33¡Bff¡Bš™¡Bš™¡Bš™¡B  ¢B33¢Bff¢Bff¢Bff¢Bff¢Bff¢Bš™¢BÍÌ¢B  £B  £B33£Bff£Bš™£Bš™£Bš™£BÍÌ£B33¤B33¤Bff¤Bff¤Bff¤Bff¤Bff¤Bš™¤BÍÌ¤BÍÌ¤B  ¥B  ¥Bš™¥Bš™¥Bš™¥BÍÌ¥B33¦B33¦Bff¦Bff¦Bff¦Bff¦Bff¦Bš™¦Bš™¦Bš™¦B  §B  §B33§B33§Bš™§BÍÌ§B33¨B33¨Bff¨Bff¨Bff¨Bff¨Bff¨Bff¨Bš™¨Bš™¨BÍÌ¨BÍÌ¨B  ©B33©Bff©Bff©B  ªB33ªBffªBffªBffªBffªBffªBffªBš™ªBš™ªBÍÌªBÍÌªB  «B  «B33«Bff«BÍÌ«B  ¬B33¬Bff¬Bff¬Bff¬Bff¬Bff¬Bš™¬Bš™¬BÍÌ¬BÍÌ¬B  ­B  ­B33­B33­Bš™­B  ®B  ®B33®B33®Bff®Bff®Bff®Bš™®Bš™®Bš™®BÍÌ®B  ¯B  ¯B33¯B33¯Bš™¯BÍÌ¯BÍÌ¯B33°B33°B33°B33°B33°Bff°Bff°Bff°BÍÌ°BÍÌ°BÍÌ°B  ±B  ±Bff±Bff±Bff±BÍÌ±BÍÌ±B  ²B33²B33²B33²B33²Bff²Bš™²BÍÌ²BÍÌ²B  ³B  ³Bff³Bff³Bff³Bš™³Bš™³BÍÌ³BÍÌ³B  ´B  ´B33´B33´Bff´Bš™´Bš™´B  µB  µB33µBffµBffµBš™µBš™µBÍÌµBÍÌµB  ¶B  ¶B  ¶B  ¶B  ¶B  ¶B  ¶Bff¶Bš™¶Bš™¶B33·Bff·Bš™·Bš™·BÍÌ·BÍÌ·B  ¸B  ¸B  ¸B  ¸B  ¸B  ¸B  ¸B33¸B33¸Bff¸B  ¹B33¹Bš™¹Bš™¹BÍÌ¹BÍÌ¹B  ºB  ºB  ºB  ºB  ºB  ºB  ºB33ºB33ºBffºBÍÌºB  »B33»Bff»BÍÌ»BÍÌ»BÍÌ»B  ¼B  ¼B  ¼B  ¼B  ¼B  ¼B33¼B33¼Bff¼Bš™¼B  ½B33½B33½B33½Bš™½BÍÌ½B  ¾B  ¾B  ¾B  ¾B  ¾B  ¾B33¾B33¾Bff¾Bš™¾B  ¿B33¿B33¿B33¿Bff¿Bff¿BÍÌ¿B  ÀB  ÀB  ÀB  ÀB  ÀB33ÀB33ÀBffÀBš™ÀB  ÁB33ÁB33ÁB33ÁBffÁBffÁBš™ÁBš™ÁBš™ÁB  ÂB  ÂB  ÂB  ÂB33ÂBffÂBš™ÂB  ÃB33ÃB33ÃB33ÃBffÃBffÃBffÃBš™ÃBš™ÃBš™ÃBš™ÃB  ÄB  ÄB  ÄBffÄBš™ÄBÍÌÄB  ÅB  ÅB  ÅB33ÅBffÅBffÅBffÅBš™ÅBš™ÅBš™ÅBš™ÅBš™ÅBÍÌÅB33ÆB33ÆBffÆBš™ÆB  ÇB  ÇB33ÇBffÇBffÇBffÇBffÇBffÇBffÇBffÇBffÇBš™ÇB  ÈB  ÈB  ÈBffÈBÍÌÈBÍÌÈB  ÉBffÉBffÉBffÉBffÉBffÉBffÉBffÉBffÉBš™ÉBš™ÉBÍÌÉB  ÊB33ÊBÍÌÊBÍÌÊBÍÌÊB33ËB33ËB33ËBffËBffËBffËBffËBffËBffËBš™ËBš™ËB  ÌB33ÌBffÌBÍÌÌBÍÌÌB  ÍB33ÍB33ÍB33ÍB33ÍB33ÍB33ÍB33ÍB33ÍBš™ÍBš™ÍBÍÌÍB33ÎB33ÎBÍÌÎBÍÌÎB  ÏB  ÏB33ÏB33ÏB33ÏB33ÏB33ÏB33ÏB33ÏBffÏBffÏBš™ÏB33ÐB33ÐBš™ÐBÍÌÐB  ÑB  ÑB33ÑB33ÑB33ÑB33ÑB33ÑB33ÑB33ÑBffÑBffÑBffÑBÍÌÑB33ÒBš™ÒBš™ÒB  ÓB  ÓB33ÓB33ÓB33ÓB33ÓB33ÓB33ÓB33ÓBffÓBffÓBffÓBš™ÓBÍÌÓBffÔBš™ÔB  ÕB  ÕB33ÕB33ÕB33ÕB33ÕB33ÕB33ÕB33ÕBffÕBffÕBffÕBffÕBÍÌÕBffÖBffÖBš™ÖBÍÌÖB33×B33×B33×B33×B33×B33×B33×Bff×Bff×Bff×Bff×BÍÌ×BffØBffØBš™ØBš™ØB  ÙB  ÙB33ÙB33ÙB33ÙB33ÙB33ÙBffÙBffÙBffÙBffÙBš™ÙB  ÚBffÚBš™ÚBš™ÚB  ÛB  ÛB  ÛB  ÛB33ÛB33ÛB33ÛBffÛBffÛBffÛBffÛBš™ÛBÍÌÛB  ÜBš™ÜBš™ÜBÍÌÜBÍÌÜBÍÌÜBÍÌÜBÍÌÜBÍÌÜB33ÝB33ÝB33ÝBffÝBffÝBffÝBffÝB  ÞB33ÞBš™ÞBÍÌÞBÍÌÞBÍÌÞBÍÌÞBÍÌÞBÍÌÞBÍÌÞB  ßB  ßB  ßB33ßBffßBffßBÍÌßB  àB33àBš™àBÍÌàBÍÌàBÍÌàBÍÌàBÍÌàBÍÌàB  áB  áB  áB  áB33áB33áB33áBš™áBÍÌáB33âB33âBÍÌâBÍÌâBÍÌâBÍÌâBÍÌâBÍÌâB  ãB  ãB  ãB  ãB33ãB33ãBš™ãBš™ãB33äB33äBffäBš™äBÍÌäBÍÌäBÍÌäBÍÌäB  åB  åB  åB  åB  åB33åBš™åBš™åB  æB33æBffæBš™æBš™æBš™æBš™æBš™æBÍÌæBÍÌæBÍÌæBÍÌæBÍÌæBÍÌæBffçBš™çBÍÌçB33èBffèBš™èBš™èBš™èBš™èBš™èBš™èBÍÌèBÍÌèBÍÌèBÍÌèBÍÌèB33éBfféBš™éB  êB  êBffêBš™êBš™êBš™êBš™êBš™êBÍÌêBÍÌêBÍÌêBÍÌêBÍÌêB33ëB33ëBffëBš™ëB  ìBffìBš™ìBš™ìBš™ìBš™ìBš™ìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìB  íB33íBffíBš™íBÍÌíB33îBffîBffîBffîBš™îBš™îBÍÌîBÍÌîBÍÌîBÍÌîBÍÌîB  ïB33ïBffïBš™ïBÍÌïB  ðBffðBffðBffðBffðBffðBffðBš™ðBš™ðBš™ðBš™ðBÍÌðBÍÌðBffñBš™ñBš™ñBÍÌñBffòBffòBffòBffòBffòBffòBš™òBš™òBš™òBš™òBÍÌòBÍÌòBÍÌòBffóBffóBÍÌóBffôBffôBffôBffôBffôBffôBš™ôBš™ôBš™ôBš™ôBÍÌôBÍÌôBÍÌôBffõBffõBš™õB  öB33öBfföBfföBfföBfföBfföBš™öBš™öBš™öBš™öBš™öBÍÌöB33÷Bff÷Bff÷Bff÷B  øB  øBfføBfføBfføBfføBš™øBš™øBš™øBš™øBš™øBš™øB  ùB33ùB33ùB33ùBš™ùBš™ùBš™ùB33úB33úB33úBš™úBš™úBš™úBš™úBš™úBš™úBÍÌúB33ûB33ûB33ûBffûBffûBš™ûB33üB33üB33üBffüBffüBffüBffüBffüBffüBš™üB  ýB33ýB33ýBffýBffýBš™ýB  þB33þB33þBffþBffþBffþBffþBffþBffþBš™þBš™þB  ÿB  ÿB33ÿBffÿBš™ÿBÍÌÿBš Cš C33 C33 C33 C33 C33 C33 C33 CÍL Cff C € Cš™ Cš™ C3³ CÍÌ C  C  C33C33C33C33C33C33C33C33CffC €C €C €Cš™C3³C  C  CšCšCšCšCšCšC33C33CffCffC €C €Cš™C3³C  C  C  CšCšCšCšCšCšCšCÍLCÍLCÍLCffCš™Cš™CfæC  C  CšCšCšCšCšCšCšCÍLCÍLCÍLCffC €C €C3³C  C  CšCšCšCšCšCšCšCÍLCÍLCÍLCffC €C €Cš™CfæCfæC  C  CšCšCšCšCšC33C33CÍLCffCffC €C €CÍÌCfæCfæCfæC  C  C  CšCšC33C33C33CffCffCffC €CÍÌCfæCfæCfæCfæCfæCfæCfæC  CšCšCšCÍLCÍLCffC €CÍÌCfæCfæCfæCfæCfæCfæCfæCfæC  	Cš	Cš	C33	CÍL	CÍL	Cff	C €	C €	CÍÌ	CÍÌ	CÍÌ	Cfæ	Cfæ	Cfæ	Cfæ	C  
C  
C  
Cš
C33
C33
CÍL
Cff
Cff
Cš™
Cš™
Cš™
Cš™
CÍÌ
Cfæ
Cfæ
C  C  C  C  C  CšCšCÍLCffCffCffCš™Cš™C3³CÍÌCÍÌCfæC  C  C  C  CšCšCÍLCÍLCÍLCÍLCffC €Cš™Cš™C3³CfæC  C  C  C  CšCšCÍLCÍLCÍLCÍLCÍLCffC €Cš™C3³CÍÌCfæC  C  C  C  CšC33CÍLCÍLCÍLCÍLCffC €Cš™C3³CÍÌCfæCfæCfæCfæCfæCfæCšCÍLCÍLCÍLCÍLCÍLC €Cš™C3³CÍÌCfæCfæCfæCfæCfæCfæCšC33C33CÍLCÍLCÍLC €Cš™C3³CÍÌCfæCfæCfæCfæCfæCfæCšC33C33C33C33CÍLCffCš™C3³CÍÌCfæCfæCfæCfæCfæCfæCšCšC33C33C33C33CÍLCš™C3³CÍÌCfæCfæCfæCfæCfæCfæCšCšC33C33C33C33CÍLC €Cš™C3³CÍÌCfæCfæCfæCfæCfæCšCšC33C33C33C33CÍLC €Cš™C3³C3³CÍÌCÍÌCfæCfæCfæCšCšC33C33C33C33C33CffCš™Cš™C3³C3³CÍÌCÍÌCÍÌCfæCšCšC33C33C33C33C33CffC €Cš™C3³C3³CÍÌCÍÌCÍÌCÍÌCfæCšC33C33C33C33C33C33CffC €C3³C3³C3³CÍÌCÍÌCÍÌCfæC  C  C33C33C33C33C33CffC €C3³C3³C3³C3³C3³C3³CfæC  C  CšCšCšC33C33C33CÍLC €Cš™C3³C3³C3³C3³C3³C3³CfæC  CšCšCšCšC33CÍLCÍLCffC €Cš™Cš™Cš™Cš™C3³CfæC  C  C  C  CšCšCšC33CÍLC €C €C €C €C €C €C3³CfæC  C  C  CšCšCšC33CÍLCffCffCffC €C €C €Cš™CfæC  C  C  C  C  CšC33CÍLCÍLCffCffCffCffCffCffC3³CfæC  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C €CÍÌCÍÌCfæCfæC  C  C  C  C  C  C  C  C  C  C  CÍLC €C €C3³C3³C   C   C   C   C   C   C   C   C   C   C   C33 C € C € C3³ C3³ Cfæ Cfæ C  !C  !C  !C  !C  !C  !C  !C  !C  !C33!C €!C €!C3³!C3³!Cfæ!Cfæ!Cfæ!Cfæ!C  "C  "C  "C  "C  "C  "C  "Cš"C33"C €"C3³"C3³"CÍÌ"CÍÌ"Cfæ"Cfæ"Cfæ"Cfæ"Cfæ"C  #C  #C  #C  #C  #C33#CÍL#Cš™#C3³#CÍÌ#CÍÌ#Cfæ#Cfæ#Cfæ#Cfæ#Cfæ#Cfæ#Cfæ#C  $C  $C  $C33$CÍL$Cš™$C3³$C3³$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$Cfæ$Cš%C €%Cš™%C3³%C3³%C3³%CÍÌ%CÍÌ%CÍÌ%CÍÌ%CÍÌ%CÍÌ%CÍÌ%CÍÌ%CÍÌ%Cfæ%Cfæ%CÍL&C €&Cš™&Cš™&Cš™&C3³&C3³&C3³&C3³&CÍÌ&CÍÌ&CÍÌ&CÍÌ&CÍÌ&Cfæ&Cfæ&Cš'CÍL'Cff'Cff'C €'C €'Cš™'Cš™'C3³'CÍÌ'CÍÌ'CÍÌ'CÍÌ'CÍÌ'CÍÌ'Cfæ'Cfæ'C33(C33(C33(CÍL(CÍL(C €(Cš™(C3³(C3³(C3³(C3³(CÍÌ(CÍÌ(CÍÌ(Cfæ(Cfæ(C33)C33)C33)CÍL)CÍL)CÍL)CÍL)Cff)C €)Cš™)C3³)CÍÌ)CÍÌ)CÍÌ)Cfæ)Cfæ)C  *Cš*C33*C33*C33*C33*C33*CÍL*CÍL*Cš™*Cš™*Cš™*CÍÌ*CÍÌ*CÍÌ*CÍÌ*CÍÌ*Cš+Cš+C33+C33+C33+C33+C33+C33+Cff+C €+Cš™+C3³+CÍÌ+CÍÌ+CÍÌ+CÍÌ+C  ,C  ,Cš,Cš,C33,C33,C33,C33,CÍL,C €,C €,Cš™,C3³,C3³,CÍÌ,CÍÌ,C  -C  -C  -C  -C  -C33-C33-C33-C33-C €-C €-C €-C €-Cš™-CÍÌ-CÍÌ-Cfæ-C  .C  .C  .C  .C33.C33.C33.C33.Cff.Cff.C €.C €.Cš™.C3³.C3³.Cfæ.Cfæ.Cfæ.Cfæ.Cfæ.C33/C33/C33/C33/Cff/Cff/C €/C €/C €/Cš™/C3³/C3³/CÍÌ/CÍÌ/CÍÌ/Cfæ/Cš0Cš0C330C330CÍL0Cff0C €0C €0C €0Cš™0C3³0C3³0C3³0C3³0CÍÌ0CÍÌ0Cfæ0C  1C  1C  1C331CÍL1C €1C €1C €1C €1Cš™1Cš™1C3³1C3³1C3³1C3³1C3³1C3³1Cfæ1C  2Cš2CÍL2CÍL2CÍL2C €2C €2Cš™2Cš™2Cš™2C3³2C3³2C3³2C3³2C3³2CÍÌ2CÍÌ2Cfæ2Cš3Cš3CÍL3CÍL3Cff3Cš™3Cš™3Cš™3Cš™3C3³3C3³3C3³3C3³3CÍÌ3CÍÌ3CÍÌ3CÍÌ3Cfæ3C334C334CÍL4C €4Cš™4Cš™4Cš™4C3³4C3³4C3³4C3³4C3³4C3³4CÍÌ4CÍÌ4Cfæ4Cš5Cš5CÍL5Cff5C €5C €5Cš™5Cš™5Cš™5Cš™5Cš™5C3³5C3³5C3³5C3³5CÍÌ5CÍÌ5Cfæ5Cš6Cff6C €6C €6C €6C €6Cš™6Cš™6Cš™6C3³6C3³6C3³6C3³6C3³6C3³6Cfæ6Cš7C337C €7C €7C €7C €7C €7C €7Cš™7C3³7C3³7C3³7C3³7C3³7C3³7CÍÌ7C  8C  8C338Cff8C €8C €8C €8C €8C €8Cš™8C3³8C3³8C3³8C3³8C3³8CÍÌ8C  9C  9C339CÍL9Cff9C €9C €9C €9C €9Cš™9Cš™9Cš™9C3³9C3³9C3³9CÍÌ9C  :C  :C33:CÍL:CÍL:Cff:C €:C €:C €:Cš™:Cš™:Cš™:Cš™:Cš™:C3³:CÍÌ:CÍÌ:Cfæ:C33;CÍL;CÍL;Cff;Cff;Cff;C €;C €;Cš™;Cš™;Cš™;Cš™;Cš™;C3³;CÍÌ;Cfæ;C  <C33<CÍL<CÍL<Cff<Cff<C €<C €<Cš™<Cš™<Cš™<Cš™<Cš™<C3³<C3³<CÍÌ<C  =C33=CÍL=CÍL=Cff=Cff=C €=C €=Cš™=Cš™=Cš™=Cš™=Cš™=Cš™=C3³=C3³=CÍÌ=Cš>CÍL>CÍL>CÍL>CÍL>C €>C €>Cš™>Cš™>Cš™>Cš™>Cš™>Cš™>C3³>C3³>CÍÌ>Cš?Cš?C33?CÍL?CÍL?C €?C €?Cš™?Cš™?Cš™?Cš™?Cš™?Cš™?Cš™?C3³?CÍÌ?Cš@Cš@C33@C33@C33@C €@C €@Cš™@Cš™@Cš™@Cš™@Cš™@Cš™@Cš™@Cš™@C3³@C  ACšAC33AC33AC33ACffACffACš™ACš™ACš™ACš™ACš™ACš™ACš™ACš™AC3³AC  BCšBC33BC33BC33BCffBCffBCffBC €BC €BC €BCš™BCš™BCš™BCš™BC3³BCfæBCšCC33CC33CC33CCffCCffCCffCC €CC €CC €CC €CC €CCš™CCš™CC3³CC3³CCfæCC33DC33DC33DCÍLDCffDCffDCffDCffDCffDCffDC €DC €DC €DCš™DC3³DC3³DC33EC33EC33EC33ECffECffECffECffECffECffECffEC €EC €EC €EC €EC3³EC3³EC  FCšFCšFC33FCÍLFCffFCffFCffFCffFCffFCffFC €FC €FC €FCš™FCš™FCÍÌFC  GCšGC33GC33GCÍLGCÍLGCÍLGCffGCffGCffGC €GC €GC €GC €GC €GCš™GCÍÌGC  HCšHC33HCÍLHCÍLHCÍLHCffHCffHCffHC €HC €HC €HC €HC €HC €HC3³HCÍÌHC  IC  IC  ICšICšICÍLICÍLICÍLIC €IC €IC €IC €IC €IC €ICš™ICš™ICfæICfæICfæICfæICfæIC33JC33JCÍLJC €JC €JC €JC €JC €JC €JC €JC €JCÍÌJCfæJCfæJCfæJCfæJCšKC33KC33KCffKC €KC €KC €KC €KC €KC €KC €KCÍÌKCÍÌKCÍÌKCfæKCfæKCšLC33LC33LCÍLLCffLCffLCffLCffLC €LC €LC €LCš™LC3³LCÍÌLCÍÌLCÍÌLC  MC33MC33MC33MCÍLMCffMCffMCffMCffMCffMC €MCš™MCš™MCÍÌMCÍÌMCÍÌMCfæMC  NC33NC33NCÍLNCffNCffNCffNCffNCffNCffNCffNCš™NC3³NCÍÌNCÍÌNCfæNC  OC33OC33OCÍLOCffOCffOCffOCffOCffOCffOCffOCffOCš™OCÍÌOCÍÌOCÍÌOCfæOC33PC33PCÍLPCffPCffPCffPCffPCffPCffPCffPCffPCš™PC3³PC3³PC3³PCÍÌPC  QCšQCÍLQCffQCffQCffQCffQCffQCffQCffQCffQCš™QCš™QC3³QC3³QCÍÌQC  RC  RCšRCÍLRCÍLRCffRCffRCffRCffRCffRCffRC €RCš™RCš™RC3³RCÍÌRCfæRC  SCšSC33SCÍLSCÍLSCÍLSCÍLSCffSCffSCffSCffSCffSC €SCš™SC3³SCfæSC  TC  TCšTCÍLTCÍLTCÍLTCÍLTCÍLTCÍLTCÍLTCÍLTCffTCffTCš™TC3³TCÍÌTC  UC  UC  UC33UCÍLUCÍLUCÍLUCÍLUCÍLUCÍLUCÍLUCÍLUCÍLUCš™UC3³UC3³UCfæUC  VC  VCšVC33VC33VCÍLVCÍLVCÍLVCÍLVCÍLVCÍLVCÍLVCffVC €VC3³VCfæVCfæVC  WCšWC33WC33WCÍLWCÍLWCÍLWCÍLWCÍLWCÍLWCÍLWCffWCffWC €WCÍÌWCfæWC  XCšXC33XC33XCÍLXCÍLXCÍLXCÍLXCÍLXCÍLXCÍLXCÍLXCÍLXC €XCÍÌXCÍÌXCfæXCfæXCšYC33YC33YC33YCÍLYCÍLYCÍLYCÍLYCÍLYCÍLYCÍLYCÍLYCš™YC3³YCÍÌYCÍÌYCfæYCšZC33ZC33ZCÍLZCÍLZCÍLZCÍLZCÍLZCÍLZCÍLZCÍLZC €ZCš™ZCÍÌZCÍÌZCfæZC  [C  [Cš[CÍL[CÍL[CÍL[CÍL[CÍL[CÍL[CÍL[CÍL[Cff[Cš™[C3³[CÍÌ[Cfæ[Cfæ[Cfæ[Cš\C33\C33\CÍL\CÍL\CÍL\CÍL\CÍL\CÍL\Cff\Cš™\Cš™\CÍÌ\Cfæ\Cfæ\Cfæ\C  ]C33]C33]C33]C33]CÍL]CÍL]CÍL]CÍL]CÍL]Cff]Cff]CÍÌ]Cfæ]Cfæ]Cfæ]C  ^C33^C33^C33^C33^C33^C33^C33^C33^CÍL^Cff^Cff^Cš™^C3³^CÍÌ^Cfæ^Cfæ^Cš_C33_C33_C33_C33_C33_C33_C33_C33_CÍL_Cff_C €_C3³_CÍÌ_CÍÌ_Cfæ_C  `C33`C33`C33`C33`C33`C33`C33`C33`CÍL`CÍL`Cff`Cš™`C3³`C3³`Cfæ`Cfæ`C33aC33aC33aC33aC33aC33aC33aC33aCÍLaCÍLaCÍLaC €aCš™aCš™aCfæaCfæaC33bC33bC33bC33bC33bC33bC33bC33bCÍLbCÍLbCÍLbCffbCš™bCš™bC3³bCÍÌbCšcCšcC33cC33cC33cC33cC33cC33cC33cCÍLcCÍLcCffcCš™cCš™cC3³cCÍÌcC  dC  dCšdC33dC33dC33dC33dC33dC33dCÍLdCÍLdCffdCš™dCš™dC3³dCÍÌdC  eC  eCšeCšeCšeC33eC33eC33eC33eCÍLeCÍLeCffeC €eCš™eCš™eCÍÌeC  fC  fCšfCšfCšfCšfCšfCšfC33fCÍLfCÍLfCfffCfffC €fCš™fCÍÌfC  gC  gC  gCšgCšgCšgCšgCšgCšgC33gCÍLgCffgCffgC €gC €gCÍÌgCfægCfægC  hC  hCšhCšhCšhCšhCšhCšhC33hCÍLhCÍLhCffhC €hCÍÌhCÍÌhCfæhC  iC  iCšiCšiCšiCšiCšiCšiC33iCÍLiCÍLiCffiCffiC3³iC3³iCÍÌiCfæiC  jCšjCšjCšjCšjCšjCšjC33jCÍLjCÍLjCffjCffjC3³jC3³jC3³jCÍÌjCfæjC  kCškCškCškCškCškC33kC33kCÍLkCffkCffkC3³kC3³kC3³kCÍÌkCÍÌkCfækCšlCšlCšlCšlCšlC33lC33lCÍLlCfflCfflCš™lCš™lC3³lCÍÌlCÍÌlCfælCfælC  mCšmCšmCšmC33mC33mCÍLmCffmCffmCš™mCš™mCš™mCš™mCÍÌmCfæmCfæmC  nC  nC  nCšnC33nC33nCÍLnCffnCffnCš™nCš™nCš™nCš™nC3³nCfænCfænC  oC  oC  oC  oC  oC33oCÍLoCffoCffoCš™oCš™oCš™oCš™oC3³oCfæoCfæoC  pC  pC  pC  pC  pC  pC33pCÍLpCffpCš™pCš™pCš™pCš™pC3³pCfæpCfæpC  qC  qC  qC  qC  qC  qCšqCšqCÍLqC €qCš™qCš™qCš™qC3³qCfæqCfæqC  rC  rC  rC  rC  rC  rCšrCšrC33rC33rCffrCš™rCš™rC3³rCfærCfærC  sC  sC  sC  sC  sC  sC  sCšsC33sC33sCffsC €sC €sC €sCÍÌsCÍÌsC  tC  tC  tC  tC  tC  tC  tC  tC33tC33tCÍLtCfftC €tC €tC3³tC3³tCfætC  uC  uC  uC  uC  uC  uC  uC33uC33uC33uCffuC €uC €uCš™uC3³uCÍÌuCfæuC  vC  vC  vC  vC  vC  vC33vC33vC33vCÍLvCffvCffvCffvCš™vCÍÌvCfævCfævCfævC  wC  wC  wC  wCšwC33wC33wC33wCÍLwCffwCffwCš™wCÍÌwCfæwCfæwCfæwCfæwCfæwC  xC  xCšxC33xC33xC33xCÍLxCffxCffxCš™xCÍÌxCfæxCfæxCfæxCfæxCfæxCfæxCfæxC  yCšyC33yC33yCÍLyCÍLyCffyCš™yC3³yCÍÌyCfæyCfæyCfæyCfæyCfæyCfæyC  zCšzCšzCšzC33zC33zCÍLzCš™zC3³zC3³zCfæzCfæzCfæzCfæzCfæzCfæzCfæzC  {Cš{Cš{Cš{Cš{C33{C €{Cš™{C3³{Cfæ{Cfæ{Cfæ{Cfæ{Cfæ{Cfæ{Cfæ{C  |Cš|Cš|Cš|Cš|Cš|C €|C €|Cš™|CÍÌ|Cfæ|Cfæ|Cfæ|Cfæ|Cfæ|Cfæ|Cfæ|Cš}Cš}Cš}Cš}Cš}C €}C €}Cš™}Cš™}CÍÌ}CÍÌ}Cfæ}Cfæ}Cfæ}Cfæ}Cfæ}C  ~Cš~Cš~Cš~Cš~Cff~C €~Cš™~Cš™~C3³~C3³~CÍÌ~CÍÌ~Cfæ~Cfæ~Cfæ~Cfæ~Cfæ~CšCšCšCffC €C €C €C €C3³CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCfæCÍ€CÍ€CÍ€C33€C @€C @€C @€C @€CšY€Cff€Cff€Cff€Cff€Cff€Cff€Cff€C3s€CÍŒ€CÍŒ€Cš™€C3³€C3³€C3³€C3³€CšÙ€Cfæ€Cfæ€Cfæ€Cfæ€Cfæ€Cfæ€Cfæ€C3ó€C  �C  �CÍ�Cf&�C33�C33�C33�CšY�Cff�Cff�Cff�Cff�Cff�Cff�Cff�C3s�C €�C €�C €�C €�CÍŒ�Cš™�Cf¦�CÍÌ�CšÙ�CšÙ�Cfæ�Cfæ�Cfæ�Cfæ�Cfæ�C3ó�C  ‚C  ‚C  ‚C  ‚CÍ‚CÍ‚Cš‚C @‚CÍL‚CšY‚Cff‚Cff‚Cff‚Cff‚Cff‚Cff‚C €‚C €‚C €‚C €‚CÍŒ‚CÍŒ‚Cš™‚Cš™‚C3³‚CšÙ‚Cfæ‚Cfæ‚Cfæ‚Cfæ‚Cfæ‚Cfæ‚C3ó‚C3ó‚C3ó‚C3ó‚CÍƒCÍƒCšƒCšƒCf&ƒCÍLƒCšYƒCffƒCffƒCffƒCffƒCffƒC3sƒC3sƒC3sƒC3sƒCÍŒƒCÍŒƒCš™ƒCš™ƒCf¦ƒCf¦ƒCšÙƒCšÙƒCšÙƒCfæƒCfæƒCfæƒC3óƒC3óƒC3óƒC3óƒC  „CÍ„Cš„Cš„Cš„Cf&„CÍL„CšY„CšY„CšY„CšY„CšY„CšY„Cff„Cff„Cff„C €„CÍŒ„Cš™„Cš™„Cš™„Cf¦„CÍÌ„CšÙ„CšÙ„CšÙ„CšÙ„CšÙ„CšÙ„Cfæ„Cfæ„Cfæ„C3ó„C3ó„CÍ…Cš…Cš…Cš…C @…CšY…CšY…CšY…CšY…CšY…CšY…Cff…Cff…Cff…C3s…C3s…C €…CÍŒ…CÍŒ…Cš™…C3³…CÍÌ…CšÙ…CšÙ…CšÙ…CšÙ…CšÙ…CšÙ…Cfæ…Cfæ…Cfæ…Cfæ…C  †C  †CÍ†CÍ†Cf&†CÍL†CšY†CšY†CšY†CšY†CšY†CšY†CšY†Cff†Cff†Cff†C €†C €†C €†C €†Cš™†C À†C À†C À†CšÙ†CšÙ†CšÙ†CšÙ†CšÙ†Cfæ†Cfæ†Cfæ†C3ó†C  ‡C  ‡C  ‡Cš‡C @‡C @‡C @‡CÍL‡CÍL‡CšY‡CšY‡CšY‡CšY‡CšY‡Cff‡C3s‡C3s‡C €‡C €‡CÍŒ‡Cf¦‡C3³‡C3³‡CÍÌ‡CÍÌ‡CÍÌ‡CÍÌ‡CšÙ‡CšÙ‡CšÙ‡Cfæ‡C3ó‡C3ó‡C  ˆC  ˆC  ˆCšˆC33ˆC33ˆC @ˆCÍLˆCÍLˆCÍLˆCÍLˆCÍLˆCÍLˆCšYˆC3sˆC3sˆC €ˆC €ˆC €ˆCš™ˆC3³ˆC3³ˆC ÀˆCÍÌˆCÍÌˆCÍÌˆCÍÌˆCÍÌˆCÍÌˆCÍÌˆCfæˆCfæˆC3óˆC  ‰C  ‰CÍ‰Cš‰Cš‰C33‰CÍL‰CÍL‰CÍL‰CÍL‰CÍL‰CÍL‰CÍL‰Cff‰Cff‰C3s‰C3s‰C3s‰C €‰CÍŒ‰CÍŒ‰Cš™‰C À‰C À‰CÍÌ‰CÍÌ‰CÍÌ‰CÍÌ‰CÍÌ‰Cfæ‰Cfæ‰C3ó‰C3ó‰C3ó‰C  ŠCÍŠCÍŠCšŠC33ŠC33ŠC @ŠC @ŠCÍLŠCÍLŠCÍLŠCffŠCffŠC3sŠC3sŠC3sŠC €ŠC €ŠCÍŒŠCÍŒŠCf¦ŠC3³ŠC ÀŠC ÀŠC ÀŠC ÀŠCÍÌŠCfæŠCfæŠC3óŠC3óŠC3óŠC  ‹C  ‹C  ‹C  ‹Cf&‹C33‹C @‹C @‹C @‹C @‹C @‹CšY‹CšY‹CšY‹C3s‹C3s‹C €‹C €‹C €‹C €‹CÍŒ‹Cf¦‹C À‹C À‹C À‹C À‹C À‹CšÙ‹CšÙ‹CšÙ‹Cfæ‹Cfæ‹C3ó‹C3ó‹C  ŒC  ŒC  ŒCÍŒC33ŒC33ŒC @ŒC @ŒC @ŒCšYŒCšYŒCšYŒCffŒCffŒC3sŒC3sŒC3sŒC3sŒC €ŒCÍŒŒC3³ŒC3³ŒC3³ŒC ÀŒC ÀŒC ÀŒCšÙŒCšÙŒCfæŒCfæŒC3óŒC3óŒC3óŒC3óŒC3óŒC  �Cš�C33�C33�C @�C @�C @�CšY�CšY�Cff�Cff�C3s�C3s�C3s�C3s�C3s�C €�Cš™�Cf¦�Cf¦�C3³�C À�C À�CÍÌ�CšÙ�Cfæ�Cfæ�C3ó�C3ó�C3ó�C3ó�C3ó�C  ŽCšŽCf&ŽCf&ŽCf&ŽC33ŽC33ŽC @ŽCšYŽCffŽCffŽC3sŽC3sŽC3sŽC3sŽC3sŽC3sŽCš™ŽCf¦ŽCf¦ŽCf¦ŽC3³ŽC3³ŽC ÀŽCÍÌŽCšÙŽCšÙŽCšÙŽCfæŽC3óŽC3óŽC3óŽC3óŽCÍ�Cf&�Cf&�Cf&�C33�C33�C @�CÍL�CšY�CšY�CšY�CšY�CšY�C3s�C3s�C3s�CÍŒ�Cš™�Cf¦�Cf¦�C3³�C3³�C À�CÍÌ�CÍÌ�CÍÌ�CšÙ�CšÙ�CšÙ�Cfæ�Cfæ�C3ó�C  �CÍ�Cf&�Cf&�C33�C33�C33�C @�CÍL�CÍL�CšY�CšY�CšY�CšY�Cff�Cff�Cff�C €�Cf¦�Cf¦�C3³�C3³�C3³�C À�CÍÌ�CÍÌ�CÍÌ�CÍÌ�CÍÌ�CšÙ�CšÙ�CšÙ�Cfæ�C  ‘CÍ‘Cš‘Cf&‘Cf&‘C33‘C @‘C @‘CÍL‘CÍL‘CÍL‘CÍL‘CšY‘CšY‘CšY‘Cff‘C3s‘CÍŒ‘CÍŒ‘Cš™‘Cš™‘Cf¦‘C3³‘C À‘C À‘C À‘CÍÌ‘CÍÌ‘CšÙ‘CšÙ‘CšÙ‘Cfæ‘C3ó‘CÍ’CÍ’Cš’Cš’Cf&’Cf&’C33’C33’C @’CÍL’CÍL’CšY’CšY’CšY’Cff’C3s’CÍŒ’CÍŒ’Cš™’Cš™’Cf¦’Cf¦’C3³’C3³’C3³’C À’CÍÌ’CšÙ’CšÙ’CšÙ’Cfæ’C3ó’CÍ“CÍ“Cš“Cš“Cš“Cš“C33“C33“C33“C @“C @“CÍL“CšY“CšY“Cff“C3s“CÍŒ“CÍŒ“CÍŒ“Cš™“Cš™“Cš™“C3³“C3³“C3³“C À“C À“CÍÌ“CÍÌ“CÍÌ“CšÙ“Cfæ“CÍ”CÍ”CÍ”Cš”Cš”Cš”Cf&”Cf&”C33”C33”C33”C @”C @”C @”CšY”Cff”C3s”C €”CÍŒ”Cš™”Cš™”Cš™”Cf¦”Cf¦”Cf¦”Cf¦”C3³”C À”C À”C À”CšÙ”Cfæ”C3ó”C  •C  •CÍ•CÍ•Cš•Cf&•Cf&•Cf&•Cf&•Cf&•C @•C @•C @•CšY•Cff•Cff•C €•C €•CÍŒ•CÍŒ•CÍŒ•CÍŒ•Cf¦•Cf¦•Cf¦•Cf¦•C À•C À•C À•C À•CÍÌ•CšÙ•C3ó•C  –C  –C  –C  –CÍ–CÍ–Cš–Cš–Cf&–C @–C @–C @–C @–CÍL–CÍL–C3s–C €–C €–C €–C €–C €–CÍŒ–Cš™–Cš™–Cš™–Cf¦–C3³–C À–C À–CÍÌ–CÍÌ–C3ó–C3ó–C  —C  —C  —C  —CÍ—Cš—Cš—Cš—Cf&—Cf&—C33—C @—CÍL—CÍL—Cff—C3s—C3s—C3s—C3s—C3s—CÍŒ—Cš™—Cš™—Cš™—Cf¦—Cf¦—Cf¦—Cf¦—Cf¦—C3³—CšÙ—C3ó—C3ó—C3ó—C3ó—C3ó—CÍ˜CÍ˜CÍ˜Cš˜Cf&˜Cf&˜Cf&˜Cf&˜Cf&˜Cf&˜C33˜CšY˜Cff˜Cff˜C3s˜C3s˜C €˜C €˜CÍŒ˜CÍŒ˜Cf¦˜Cf¦˜Cf¦˜Cf¦˜Cf¦˜Cf¦˜C3³˜CÍÌ˜Cfæ˜Cfæ˜Cfæ˜Cfæ˜C3ó˜C3ó˜CÍ™CÍ™Cf&™Cf&™Cf&™Cf&™Cf&™Cf&™Cf&™C33™CšY™CšY™Cff™Cff™C3s™C3s™C €™C €™Cš™™Cf¦™Cf¦™Cf¦™Cf¦™Cf¦™Cf¦™Cf¦™C À™C À™CšÙ™CšÙ™Cfæ™C3ó™C3ó™C  šC  šCššCššCf&šCf&šCf&šCf&šCf&šCf&šC33šCÍLšCšYšCšYšCffšC3sšC €šC €šCš™šCš™šCš™šCš™šCf¦šCf¦šCf¦šCf¦šCf¦šCÍÌšCšÙšCšÙšCfæšC3óšC  ›C  ›Cš›Cš›Cš›Cš›Cš›Cš›Cš›Cf&›Cf&›C @›CšY›CšY›Cff›C3s›C €›C €›Cš™›Cš™›Cš™›Cš™›Cš™›Cš™›Cš™›Cš™›Cš™›C3³›C À›CšÙ›Cfæ›Cfæ›C  œC  œC  œCšœCšœCšœCšœCšœCšœCšœCšœCšœC33œCÍLœCffœCffœC3sœC €œC €œCš™œCš™œCš™œCš™œCš™œCš™œCš™œCš™œCš™œC3³œC ÀœCÍÌœCšÙœCšÙœC3óœC3óœC  �Cš�Cš�Cš�Cš�Cš�Cš�Cš�Cš�Cf&�Cf&�C @�CÍL�CÍL�Cff�Cff�C €�CÍŒ�CÍŒ�CÍŒ�Cš™�Cš™�Cš™�Cš™�Cš™�Cf¦�Cf¦�C À�CÍÌ�CÍÌ�Cfæ�Cfæ�C3ó�C3ó�CÍžCÍžCšžCšžCšžCšžCšžCšžCšžC @žC @žCÍLžCffžCffžCffžC3sžC3sžC3sžCš™žCš™žCš™žCš™žCš™žCš™žCš™žC3³žC ÀžCÍÌžCfæžCfæžCfæžC3óžC3óžC3óžC3óžC3óžCšŸCšŸCšŸCšŸCšŸC33ŸC @ŸCÍLŸCšYŸCffŸCffŸC3sŸC3sŸC3sŸC3sŸC3sŸCÍŒŸCÍŒŸCÍŒŸCš™ŸCš™ŸCš™ŸC ÀŸCÍÌŸCšÙŸCfæŸCfæŸC3óŸC3óŸC3óŸC3óŸC3óŸCÍ CÍ CÍ CÍ CÍ Cš C33 C33 CÍL CšY CšY C3s C3s C3s C3s C3s C3s C € CÍŒ CÍŒ CÍŒ CÍŒ Cš™ C3³ CÍÌ CšÙ CšÙ C3ó C3ó C3ó C3ó C3ó C3ó C3ó CÍ¡CÍ¡CÍ¡CÍ¡Cš¡Cf&¡C33¡C @¡CšY¡C3s¡C3s¡C3s¡C3s¡C3s¡C3s¡C3s¡C €¡CÍŒ¡CÍŒ¡CÍŒ¡Cš™¡Cš™¡C3³¡C À¡C À¡CšÙ¡C3ó¡C3ó¡C3ó¡C3ó¡C3ó¡C3ó¡C3ó¡C  ¢C  ¢CÍ¢Cš¢Cš¢Cf&¢C @¢C @¢CšY¢Cff¢Cff¢C3s¢C3s¢C3s¢C3s¢C3s¢C3s¢C €¢CÍŒ¢Cš™¢Cš™¢Cf¦¢Cf¦¢C À¢CÍÌ¢CšÙ¢Cfæ¢Cfæ¢Cfæ¢Cfæ¢C3ó¢C3ó¢C3ó¢C  £CÍ£Cš£Cš£Cš£Cf&£C @£C @£C @£Cff£Cff£Cff£Cff£Cff£Cff£C3s£C €£CÍŒ£Cš™£Cš™£Cš™£Cf¦£C3³£C À£C À£CÍÌ£Cfæ£Cfæ£Cfæ£Cfæ£Cfæ£Cfæ£Cfæ£C3ó£C  ¤CÍ¤Cš¤Cš¤Cš¤C33¤C @¤C @¤CšY¤Cff¤Cff¤Cff¤Cff¤Cff¤Cff¤Cff¤C3s¤C €¤CÍŒ¤Cš™¤Cš™¤C3³¤C3³¤C3³¤CšÙ¤Cfæ¤Cfæ¤Cfæ¤Cfæ¤Cfæ¤Cfæ¤Cfæ¤C3ó¤C  ¥CÍ¥CÍ¥CÍ¥C33¥C33¥C33¥C @¥CšY¥CšY¥CšY¥Cff¥Cff¥Cff¥Cff¥Cff¥C €¥C €¥CÍŒ¥CÍŒ¥Cš™¥Cš™¥C3³¥C À¥CÍÌ¥CšÙ¥CšÙ¥CšÙ¥CšÙ¥Cfæ¥Cfæ¥Cfæ¥C3ó¥C  ¦CÍ¦CÍ¦CÍ¦CÍ¦Cš¦Cš¦C33¦CšY¦CšY¦CšY¦CšY¦CšY¦CšY¦Cff¦C3s¦C €¦CÍŒ¦CÍŒ¦CÍŒ¦CÍŒ¦Cš™¦Cš™¦Cf¦¦C À¦CÍÌ¦CÍÌ¦CšÙ¦CšÙ¦CšÙ¦Cfæ¦C3ó¦C  §C  §C  §C  §C  §C  §Cš§Cš§Cf&§C @§CÍL§CÍL§CÍL§CšY§Cff§C3s§C €§C €§C €§C €§C €§C €§CÍŒ§CÍŒ§Cf¦§C3³§C À§CÍÌ§CÍÌ§CÍÌ§CšÙ§CšÙ§Cfæ§C  ¨C  ¨C  ¨C  ¨C  ¨CÍ¨CÍ¨Cf&¨C33¨C @¨CÍL¨CÍL¨CÍL¨CšY¨CšY¨CšY¨Cff¨Cff¨C3s¨C €¨C €¨C €¨CÍŒ¨Cš™¨Cš™¨Cf¦¨C¤type§scatter¤nameªDyna-Q+â€²¡xÈ]À  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;E �;E  ;E °;E À;E Ð;E à;E ð;E  <E <E  <E 0<E @<E P<E `<E p<E €<E �<E  <E °<E À<E Ð<E à<E ð<E  =E =E  =E 0=E @=E P=E `=E p=E €=E �=E  =E °=E À=E Ð=E à=E ð=E  >E >E  >E 0>E @>E P>E `>E p>E €>E �>E  >E °>E À>E Ð>E à>E ð>E  ?E ?E  ?E 0?E @?E P?E `?E p?E €?E �?E  ?E °?E À?E Ð?E à?E ð?E  @E @E  @E 0@E @@E P@E `@E p@E €@E �@E  @E °@E À@E Ð@E à@E ð@E  AE AE  AE 0AE @AE PAE `AE pAE €AE �AE  AE °AE ÀAE ÐAE àAE ðAE  BE BE  BE 0BE @BE PBE `BE pBE €BE �BE  BE °BE ÀBE ÐBE àBE ðBE  CE CE  CE 0CE @CE PCE `CE pCE €CE �CE  CE °CE ÀCE ÐCE àCE ðCE  DE DE  DE 0DE @DE PDE `DE pDE €DE �DE  DE °DE ÀDE ÐDE àDE ðDE  EE EE  EE 0EE @EE PEE `EE pEE €EE �EE  EE °EE ÀEE ÐEE àEE ðEE  FE FE  FE 0FE @FE PFE `FE pFE €FE �FE  FE °FE ÀFE ÐFE àFE ðFE  GE GE  GE 0GE @GE PGE `GE pGE €GE �GE  GE °GE ÀGE ÐGE àGE ðGE  HE HE  HE 0HE @HE PHE `HE pHE €HE �HE  HE °HE ÀHE ÐHE àHE ðHE  IE IE  IE 0IE @IE PIE `IE pIE €IE �IE  IE °IE ÀIE ÐIE àIE ðIE  JE JE  JE 0JE @JE PJE `JE pJE €JE �JE  JE °JE ÀJE ÐJE àJE ðJE  KE KE  KE 0KE @KE PKE `KE pKE €KE �KE  KE °KE ÀKE ÐKE àKE ðKE  LE LE  LE 0LE @LE PLE `LE pLE €LE �LE  LE °LE ÀLE ÐLE àLE ðLE  ME ME  ME 0ME @ME PME `ME pME €ME �ME  ME °ME ÀME ÐME àME ðME  NE NE  NE 0NE @NE PNE `NE pNE €NE �NE  NE °NE ÀNE ÐNE àNE ðNE  OE OE  OE 0OE @OE POE `OE pOE €OE �OE  OE °OE ÀOE ÐOE àOE ðOE  PE PE  PE 0PE @PE PPE `PE pPE €PE �PE  PE °PE ÀPE ÐPE àPE ðPE  QE QE  QE 0QE @QE PQE `QE pQE €QE �QE  QE °QE ÀQE ÐQE àQE ðQE  RE RE  RE 0RE @RE PRE `RE pRE €RE �RE  RE °RE ÀRE ÐRE àRE ðRE  SE SE  SE 0SE @SE PSE `SE pSE €SE �SE  SE °SE ÀSE ÐSE àSE ðSE  TE TE  TE 0TE @TE PTE `TE pTE €TE �TE  TE °TE ÀTE ÐTE àTE ðTE  UE UE  UE 0UE @UE PUE `UE pUE €UE �UE  UE °UE ÀUE ÐUE àUE ðUE  VE VE  VE 0VE @VE PVE `VE pVE €VE �VE  VE °VE ÀVE ÐVE àVE ðVE  WE WE  WE 0WE @WE PWE `WE pWE €WE �WE  WE °WE ÀWE ÐWE àWE ðWE  XE XE  XE 0XE @XE PXE `XE pXE €XE �XE  XE °XE ÀXE ÐXE àXE ðXE  YE YE  YE 0YE @YE PYE `YE pYE €YE �YE  YE °YE ÀYE ÐYE àYE ðYE  ZE ZE  ZE 0ZE @ZE PZE `ZE pZE €ZE �ZE  ZE °ZE ÀZE ÐZE àZE ðZE  [E [E  [E 0[E @[E P[E `[E p[E €[E �[E  [E °[E À[E Ð[E à[E ð[E  \E \E  \E 0\E @\E P\E `\E p\E €\E �\E  \E °\E À\E Ð\E à\E ð\E  ]E ]E  ]E 0]E @]E P]E `]E p]E €]E �]E  ]E °]E À]E Ð]E à]E ð]E  ^E ^E  ^E 0^E @^E P^E `^E p^E €^E �^E  ^E °^E À^E Ð^E à^E ð^E  _E _E  _E 0_E @_E P_E `_E p_E €_E �_E  _E °_E À_E Ð_E à_E ð_E  `E `E  `E 0`E @`E P`E ``E p`E €`E �`E  `E °`E À`E Ð`E à`E ð`E  aE aE  aE 0aE @aE PaE `aE paE €aE �aE  aE °aE ÀaE ÐaE àaE ðaE  bE bE  bE 0bE @bE PbE `bE pbE €bE �bE  bE °bE ÀbE ÐbE àbE ðbE  cE cE  cE 0cE @cE PcE `cE pcE €cE �cE  cE °cE ÀcE ÐcE àcE ðcE  dE dE  dE 0dE @dE PdE `dE pdE €dE �dE  dE °dE ÀdE ÐdE àdE ðdE  eE eE  eE 0eE @eE PeE `eE peE €eE �eE  eE °eE ÀeE ÐeE àeE ðeE  fE fE  fE 0fE @fE PfE `fE pfE €fE �fE  fE °fE ÀfE ÐfE àfE ðfE  gE gE  gE 0gE @gE PgE `gE pgE €gE �gE  gE °gE ÀgE ÐgE àgE ðgE  hE hE  hE 0hE @hE PhE `hE phE €hE �hE  hE °hE ÀhE ÐhE àhE ðhE  iE iE  iE 0iE @iE PiE `iE piE €iE �iE  iE °iE ÀiE ÐiE àiE ðiE  jE jE  jE 0jE @jE PjE `jE pjE €jE �jE  jE °jE ÀjE ÐjE àjE ðjE  kE kE  kE 0kE @kE PkE `kE pkE €kE �kE  kE °kE ÀkE ÐkE àkE ðkE  lE lE  lE 0lE @lE PlE `lE plE €lE �lE  lE °lE ÀlE ÐlE àlE ðlE  mE mE  mE 0mE @mE PmE `mE pmE €mE �mE  mE °mE ÀmE ÐmE àmE ðmE  nE nE  nE 0nE @nE PnE `nE pnE €nE �nE  nE °nE ÀnE ÐnE ànE ðnE  oE oE  oE 0oE @oE PoE `oE poE €oE �oE  oE °oE ÀoE ÐoE àoE ðoE  pE pE  pE 0pE @pE PpE `pE ppE €pE �pE  pE °pE ÀpE ÐpE àpE ðpE  qE qE  qE 0qE @qE PqE `qE pqE €qE �qE  qE °qE ÀqE ÐqE àqE ðqE  rE rE  rE 0rE @rE PrE `rE prE €rE �rE  rE °rE ÀrE ÐrE àrE ðrE  sE sE  sE 0sE @sE PsE `sE psE €sE �sE  sE °sE ÀsE ÐsE àsE ðsE  tE tE  tE 0tE @tE PtE `tE ptE €tE �tE  tE °tE ÀtE ÐtE àtE ðtE  uE uE  uE 0uE @uE PuE `uE puE €uE �uE  uE °uE ÀuE ÐuE àuE ðuE  vE vE  vE 0vE @vE PvE `vE pvE €vE �vE  vE °vE ÀvE ÐvE àvE ðvE  wE wE  wE 0wE @wE PwE `wE pwE €wE �wE  wE °wE ÀwE ÐwE àwE ðwE  xE xE  xE 0xE @xE PxE `xE pxE €xE �xE  xE °xE ÀxE ÐxE àxE ðxE  yE yE  yE 0yE @yE PyE `yE pyE €yE �yE  yE °yE ÀyE ÐyE àyE ðyE  zE zE  zE 0zE @zE PzE `zE pzE €zE �zE  zE °zE ÀzE ÐzE àzE ðzE  {E {E  {E 0{E @{E P{E `{E p{E €{E �{E  {E °{E À{E Ð{E à{E ð{E  |E |E  |E 0|E @|E P|E `|E p|E €|E �|E  |E °|E À|E Ð|E à|E ð|E  }E }E  }E 0}E @}E P}E `}E p}E €}E �}E  }E °}E À}E Ð}E à}E ð}E  ~E ~E  ~E 0~E @~E P~E `~E p~E €~E �~E  ~E °~E À~E Ð~E à~E ð~E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  €E €E €E €E  €E (€E 0€E 8€E @€E H€E P€E X€E `€E h€E p€E x€E €€E ˆ€E �€E ˜€E  €E ¨€E °€E ¸€E À€E È€E Ð€E Ø€E à€E è€E ð€E ø€E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‚E ‚E ‚E ‚E  ‚E (‚E 0‚E 8‚E @‚E H‚E P‚E X‚E `‚E h‚E p‚E x‚E €‚E ˆ‚E �‚E ˜‚E  ‚E ¨‚E °‚E ¸‚E À‚E È‚E Ð‚E Ø‚E à‚E è‚E ð‚E ø‚E  ƒE ƒE ƒE ƒE  ƒE (ƒE 0ƒE 8ƒE @ƒE HƒE PƒE XƒE `ƒE hƒE pƒE xƒE €ƒE ˆƒE �ƒE ˜ƒE  ƒE ¨ƒE °ƒE ¸ƒE ÀƒE ÈƒE ÐƒE ØƒE àƒE èƒE ðƒE øƒE  „E „E „E „E  „E („E 0„E 8„E @„E H„E P„E X„E `„E h„E p„E x„E €„E ˆ„E �„E ˜„E  „E ¨„E °„E ¸„E À„E È„E Ð„E Ø„E à„E è„E ð„E ø„E  …E …E …E …E  …E (…E 0…E 8…E @…E H…E P…E X…E `…E h…E p…E x…E €…E ˆ…E �…E ˜…E  …E ¨…E °…E ¸…E À…E È…E Ð…E Ø…E à…E è…E ð…E ø…E  †E †E †E †E  †E (†E 0†E 8†E @†E H†E P†E X†E `†E h†E p†E x†E €†E ˆ†E �†E ˜†E  †E ¨†E °†E ¸†E À†E È†E Ð†E Ø†E à†E è†E ð†E ø†E  ‡E ‡E ‡E ‡E  ‡E (‡E 0‡E 8‡E @‡E H‡E P‡E X‡E `‡E h‡E p‡E x‡E €‡E ˆ‡E �‡E ˜‡E  ‡E ¨‡E °‡E ¸‡E À‡E È‡E Ð‡E Ø‡E à‡E è‡E ð‡E ø‡E  ˆE ˆE ˆE ˆE  ˆE (ˆE 0ˆE 8ˆE @ˆE HˆE PˆE XˆE `ˆE hˆE pˆE xˆE €ˆE ˆˆE �ˆE ˜ˆE  ˆE ¨ˆE °ˆE ¸ˆE ÀˆE ÈˆE ÐˆE ØˆE àˆE èˆE ðˆE øˆE  ‰E ‰E ‰E ‰E  ‰E (‰E 0‰E 8‰E @‰E H‰E P‰E X‰E `‰E h‰E p‰E x‰E €‰E ˆ‰E �‰E ˜‰E  ‰E ¨‰E °‰E ¸‰E À‰E È‰E Ð‰E Ø‰E à‰E è‰E ð‰E ø‰E  ŠE ŠE ŠE ŠE  ŠE (ŠE 0ŠE 8ŠE @ŠE HŠE PŠE XŠE `ŠE hŠE pŠE xŠE €ŠE ˆŠE �ŠE ˜ŠE  ŠE ¨ŠE °ŠE ¸ŠE ÀŠE ÈŠE ÐŠE ØŠE àŠE èŠE ðŠE øŠE  ‹E ‹E ‹E ‹E  ‹E (‹E 0‹E 8‹E @‹E H‹E P‹E X‹E `‹E h‹E p‹E x‹E €‹E ˆ‹E �‹E ˜‹E  ‹E ¨‹E °‹E ¸‹E À‹E È‹E Ð‹E Ø‹E à‹E è‹E ð‹E ø‹E  ŒE ŒE ŒE ŒE  ŒE (ŒE 0ŒE 8ŒE @ŒE HŒE PŒE XŒE `ŒE hŒE pŒE xŒE €ŒE ˆŒE �ŒE ˜ŒE  ŒE ¨ŒE °ŒE ¸ŒE ÀŒE ÈŒE ÐŒE ØŒE àŒE èŒE ðŒE øŒE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ŽE ŽE ŽE ŽE  ŽE (ŽE 0ŽE 8ŽE @ŽE HŽE PŽE XŽE `ŽE hŽE pŽE xŽE €ŽE ˆŽE �ŽE ˜ŽE  ŽE ¨ŽE °ŽE ¸ŽE ÀŽE ÈŽE ÐŽE ØŽE àŽE èŽE ðŽE øŽE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‘E ‘E ‘E ‘E  ‘E (‘E 0‘E 8‘E @‘E H‘E P‘E X‘E `‘E h‘E p‘E x‘E €‘E ˆ‘E �‘E ˜‘E  ‘E ¨‘E °‘E ¸‘E À‘E È‘E Ð‘E Ø‘E à‘E è‘E ð‘E ø‘E  ’E ’E ’E ’E  ’E (’E 0’E 8’E @’E H’E P’E X’E `’E h’E p’E x’E €’E ˆ’E �’E ˜’E  ’E ¨’E °’E ¸’E À’E È’E Ð’E Ø’E à’E è’E ð’E ø’E  “E “E “E “E  “E (“E 0“E 8“E @“E H“E P“E X“E `“E h“E p“E x“E €“E ˆ“E �“E ˜“E  “E ¨“E °“E ¸“E À“E È“E Ð“E Ø“E à“E è“E ð“E ø“E  ”E ”E ”E ”E  ”E (”E 0”E 8”E @”E H”E P”E X”E `”E h”E p”E x”E €”E ˆ”E �”E ˜”E  ”E ¨”E °”E ¸”E À”E È”E Ð”E Ø”E à”E è”E ð”E ø”E  •E •E •E •E  •E (•E 0•E 8•E @•E H•E P•E X•E `•E h•E p•E x•E €•E ˆ•E �•E ˜•E  •E ¨•E °•E ¸•E À•E È•E Ð•E Ø•E à•E è•E ð•E ø•E  –E –E –E –E  –E (–E 0–E 8–E @–E H–E P–E X–E `–E h–E p–E x–E €–E ˆ–E �–E ˜–E  –E ¨–E °–E ¸–E À–E È–E Ð–E Ø–E à–E è–E ð–E ø–E  —E —E —E —E  —E (—E 0—E 8—E @—E H—E P—E X—E `—E h—E p—E x—E €—E ˆ—E �—E ˜—E  —E ¨—E °—E ¸—E À—E È—E Ð—E Ø—E à—E è—E ð—E ø—E  ˜E ˜E ˜E ˜E  ˜E (˜E 0˜E 8˜E @˜E H˜E P˜E X˜E `˜E h˜E p˜E x˜E €˜E ˆ˜E �˜E ˜˜E  ˜E ¨˜E °˜E ¸˜E À˜E È˜E Ð˜E Ø˜E à˜E è˜E ð˜E ø˜E  ™E ™E ™E ™E  ™E (™E 0™E 8™E @™E H™E P™E X™E `™E h™E p™E x™E €™E ˆ™E �™E ˜™E  ™E ¨™E °™E ¸™E À™E È™E Ð™E Ø™E à™E è™E ð™E ø™E  šE šE šE šE  šE (šE 0šE 8šE @šE HšE PšE XšE `šE hšE pšE xšE €šE ˆšE �šE ˜šE  šE ¨šE °šE ¸šE ÀšE ÈšE ÐšE ØšE àšE èšE ðšE øšE  ›E ›E ›E ›E  ›E (›E 0›E 8›E @›E H›E P›E X›E `›E h›E p›E x›E €›E ˆ›E �›E ˜›E  ›E ¨›E °›E ¸›E À›E È›E Ð›E Ø›E à›E è›E ð›E ø›E  œE œE œE œE  œE (œE 0œE 8œE @œE HœE PœE XœE `œE hœE pœE xœE €œE ˆœE �œE ˜œE  œE ¨œE °œE ¸œE ÀœE ÈœE ÐœE ØœE àœE èœE ðœE øœE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  žE žE žE žE  žE (žE 0žE 8žE @žE HžE PžE XžE `žE hžE pžE xžE €žE ˆžE �žE ˜žE  žE ¨žE °žE ¸žE ÀžE ÈžE ÐžE ØžE àžE èžE ðžE øžE  ŸE ŸE ŸE ŸE  ŸE (ŸE 0ŸE 8ŸE @ŸE HŸE PŸE XŸE `ŸE hŸE pŸE xŸE €ŸE ˆŸE �ŸE ˜ŸE  ŸE ¨ŸE °ŸE ¸ŸE ÀŸE ÈŸE ÐŸE ØŸE àŸE èŸE ðŸE øŸE   E  E  E  E   E ( E 0 E 8 E @ E H E P E X E ` E h E p E x E € E ˆ E � E ˜ E   E ¨ E ° E ¸ E À E È E Ð E Ø E à E è E ð E ø E  ¡E ¡E ¡E ¡E  ¡E (¡E 0¡E 8¡E @¡E H¡E P¡E X¡E `¡E h¡E p¡E x¡E €¡E ˆ¡E �¡E ˜¡E  ¡E ¨¡E °¡E ¸¡E À¡E È¡E Ð¡E Ø¡E à¡E è¡E ð¡E ø¡E  ¢E ¢E ¢E ¢E  ¢E (¢E 0¢E 8¢E @¢E H¢E P¢E X¢E `¢E h¢E p¢E x¢E €¢E ˆ¢E �¢E ˜¢E  ¢E ¨¢E °¢E ¸¢E À¢E È¢E Ð¢E Ø¢E à¢E è¢E ð¢E ø¢E  £E £E £E £E  £E (£E 0£E 8£E @£E H£E P£E X£E `£E h£E p£E x£E €£E ˆ£E �£E ˜£E  £E ¨£E °£E ¸£E À£E È£E Ð£E Ø£E à£E è£E ð£E ø£E  ¤E ¤E ¤E ¤E  ¤E (¤E 0¤E 8¤E @¤E H¤E P¤E X¤E `¤E h¤E p¤E x¤E €¤E ˆ¤E �¤E ˜¤E  ¤E ¨¤E °¤E ¸¤E À¤E È¤E Ð¤E Ø¤E à¤E è¤E ð¤E ø¤E  ¥E ¥E ¥E ¥E  ¥E (¥E 0¥E 8¥E @¥E H¥E P¥E X¥E `¥E h¥E p¥E x¥E €¥E ˆ¥E �¥E ˜¥E  ¥E ¨¥E °¥E ¸¥E À¥E È¥E Ð¥E Ø¥E à¥E è¥E ð¥E ø¥E  ¦E ¦E ¦E ¦E  ¦E (¦E 0¦E 8¦E @¦E H¦E P¦E X¦E `¦E h¦E p¦E x¦E €¦E ˆ¦E �¦E ˜¦E  ¦E ¨¦E °¦E ¸¦E À¦E È¦E Ð¦E Ø¦E à¦E è¦E ð¦E ø¦E  §E §E §E §E  §E (§E 0§E 8§E @§E H§E P§E X§E `§E h§E p§E x§E €§E ˆ§E �§E ˜§E  §E ¨§E °§E ¸§E À§E È§E Ð§E Ø§E à§E è§E ð§E ø§E  ¨E ¨E ¨E ¨E  ¨E (¨E 0¨E 8¨E @¨E H¨E P¨E X¨E `¨E h¨E p¨E x¨E €¨E ˆ¨E �¨E ˜¨E  ¨E ¨¨E °¨E ¸¨E À¨E È¨E Ð¨E Ø¨E à¨E è¨E ð¨E ø¨E  ©E ©E ©E ©E  ©E (©E 0©E 8©E @©E H©E P©E X©E `©E h©E p©E x©E €©E ˆ©E �©E ˜©E  ©E ¨©E °©E ¸©E À©E È©E Ð©E Ø©E à©E è©E ð©E ø©E  ªE ªE ªE ªE  ªE (ªE 0ªE 8ªE @ªE HªE PªE XªE `ªE hªE pªE xªE €ªE ˆªE �ªE ˜ªE  ªE ¨ªE °ªE ¸ªE ÀªE ÈªE ÐªE ØªE àªE èªE ðªE øªE  «E «E «E «E  «E («E 0«E 8«E @«E H«E P«E X«E `«E h«E p«E x«E €«E ˆ«E �«E ˜«E  «E ¨«E °«E ¸«E À«E È«E Ð«E Ø«E à«E è«E ð«E ø«E  ¬E ¬E ¬E ¬E  ¬E (¬E 0¬E 8¬E @¬E H¬E P¬E X¬E `¬E h¬E p¬E x¬E €¬E ˆ¬E �¬E ˜¬E  ¬E ¨¬E °¬E ¸¬E À¬E È¬E Ð¬E Ø¬E à¬E è¬E ð¬E ø¬E  ­E ­E ­E ­E  ­E (­E 0­E 8­E @­E H­E P­E X­E `­E h­E p­E x­E €­E ˆ­E �­E ˜­E  ­E ¨­E °­E ¸­E À­E È­E Ð­E Ø­E à­E è­E ð­E ø­E  ®E ®E ®E ®E  ®E (®E 0®E 8®E @®E H®E P®E X®E `®E h®E p®E x®E €®E ˆ®E �®E ˜®E  ®E ¨®E °®E ¸®E À®E È®E Ð®E Ø®E à®E è®E ð®E ø®E  ¯E ¯E ¯E ¯E  ¯E (¯E 0¯E 8¯E @¯E H¯E P¯E X¯E `¯E h¯E p¯E x¯E €¯E ˆ¯E �¯E ˜¯E  ¯E ¨¯E °¯E ¸¯E À¯E È¯E Ð¯E Ø¯E à¯E è¯E ð¯E ø¯E  °E °E °E °E  °E (°E 0°E 8°E @°E H°E P°E X°E `°E h°E p°E x°E €°E ˆ°E �°E ˜°E  °E ¨°E °°E ¸°E À°E È°E Ð°E Ø°E à°E è°E ð°E ø°E  ±E ±E ±E ±E  ±E (±E 0±E 8±E @±E H±E P±E X±E `±E h±E p±E x±E €±E ˆ±E �±E ˜±E  ±E ¨±E °±E ¸±E À±E È±E Ð±E Ø±E à±E è±E ð±E ø±E  ²E ²E ²E ²E  ²E (²E 0²E 8²E @²E H²E P²E X²E `²E h²E p²E x²E €²E ˆ²E �²E ˜²E  ²E ¨²E °²E ¸²E À²E È²E Ð²E Ø²E à²E è²E ð²E ø²E  ³E ³E ³E ³E  ³E (³E 0³E 8³E @³E H³E P³E X³E `³E h³E p³E x³E €³E ˆ³E �³E ˜³E  ³E ¨³E °³E ¸³E À³E È³E Ð³E Ø³E à³E è³E ð³E ø³E  ´E ´E ´E ´E  ´E (´E 0´E 8´E @´E H´E P´E X´E `´E h´E p´E x´E €´E ˆ´E �´E ˜´E  ´E ¨´E °´E ¸´E À´E È´E Ð´E Ø´E à´E è´E ð´E ø´E  µE µE µE µE  µE (µE 0µE 8µE @µE HµE PµE XµE `µE hµE pµE xµE €µE ˆµE �µE ˜µE  µE ¨µE °µE ¸µE ÀµE ÈµE ÐµE ØµE àµE èµE ðµE øµE  ¶E ¶E ¶E ¶E  ¶E (¶E 0¶E 8¶E @¶E H¶E P¶E X¶E `¶E h¶E p¶E x¶E €¶E ˆ¶E �¶E ˜¶E  ¶E ¨¶E °¶E ¸¶E À¶E È¶E Ð¶E Ø¶E à¶E è¶E ð¶E ø¶E  ·E ·E ·E ·E  ·E (·E 0·E 8·E @·E H·E P·E X·E `·E h·E p·E x·E €·E ˆ·E �·E ˜·E  ·E ¨·E °·E ¸·E À·E È·E Ð·E Ø·E à·E è·E ð·E ø·E  ¸E ¸E ¸E ¸E  ¸E (¸E 0¸E 8¸E @¸E H¸E P¸E X¸E `¸E h¸E p¸E x¸E €¸E ˆ¸E �¸E ˜¸E  ¸E ¨¸E °¸E ¸¸E À¸E È¸E Ð¸E Ø¸E à¸E è¸E ð¸E ø¸E  ¹E ¹E ¹E ¹E  ¹E (¹E 0¹E 8¹E @¹E H¹E P¹E X¹E `¹E h¹E p¹E x¹E €¹E ˆ¹E �¹E ˜¹E  ¹E ¨¹E °¹E ¸¹E À¹E È¹E Ð¹E Ø¹E à¹E è¹E ð¹E ø¹E  ºE ºE ºE ºE  ºE (ºE 0ºE 8ºE @ºE HºE PºE XºE `ºE hºE pºE xºE €ºE ˆºE �ºE ˜ºE  ºE ¨ºE °ºE ¸ºE ÀºE ÈºE ÐºE ØºE àºE èºE ðºE øºE  »E »E »E »E  »E (»E 0»E 8»E @»E H»E P»E X»E `»E h»E p»E x»E €»EÙ53ee53c46-38f7-11f0-16c9-2b093684d981/195acae2fa071a1a„¦layout„¥xaxis�¥title�¤text¨Episodes¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¥yaxis�¥title�¤text±Steps per episode¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data“„¡yÇÄšÙšD À
D  #C  TC €æC33?C  +CÍÌºBš™�Bš™ïB  ¸Bš™çBš™ Cš™—Bš™£B33‡BÍÌLBš™BffBffB  „BÍÌäA33³Aš™ùAš™ÉA33»A  °A33ƒAš™™A33“A  ˜Aš™¡AÍÌ”A33sA  ¨Aš™�AffŽAÍÌ”Aš™™Aff¦AÍÌ|Aff†AffžA33“A  ˆA33›AÍÌ„A33‹A  ˆA¤type§scatter¤name°0 planning steps¡xÇÄ   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB„¡yÇÄffC  PB33Bš™éAš™™A  ˜Aš™‰Aš™yAš™yAš™iA  ˆAš™�AÍÌŒAš™yAš™�Aš™yA  €AÍÌ|Aš™�A  €AÍÌ|A  pA  €AÍÌlA33ƒAš™‘AÍÌ|AÍÌ|Aš™yAffvA33sAš™yA  pA  ˆAš™�A33ƒA  pAÍÌ„AffvAš™iA  ˆAÍÌ|AÍÌ„A33sAš™‰AÍÌ„AffvAš™yAš™yA¤type§scatter¤name°5 planning steps¡xÇÄ   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB„¡yÇÄ33Bš™�Aš™yAÍÌ„AÍÌŒA33ƒA  €Aš™yAš™�A33‹A33ƒAÍÌŒAš™™A  ˆAÍÌ|A33ƒAš™�Aš™‘Aš™yAffvAÍÌŒA  pA  €Aš™�A  €A  €AÍÌ„A  ˆA33‹A  �AÍÌ|Aš™�Aff†A  €A33ƒAff†AffvAš™‘AÍÌ„A33ƒAÍÌ„AÍÌ„A33ƒAÍÌŒAš™�A  ˆA  ˆAÍÌŒAÍÌ„A¤type§scatter¤name±50 planning steps¡xÇÄ   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HBÙ53ee53c46-38f7-11f0-16c9-2b093684d981/f514ba9bca5ec68d„¦layoutŠ¨autosizeÂ§paddingÊ    ¥xaxisŠ¨showgridÃ¨showlineÃ¨gridwithÊ?€  ©gridcolor¥black¨zerolineÃ¨tickvalsÇ$  €?   @  @@  €@   @  À@  à@   A  A¥range×  €?   A¦mirrorÃ¨ticktextš          ©linecolor¥black­paper_bgcolor°rgba(0, 0, 0, 0)¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦heightÊCH  ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¥yaxis‰¨showgridÃ¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ  €?   @  @@  €@   @  À@¥range×  €?  à@¦mirrorÃ¨ticktext–      ©linecolor¥black¥titleƒ¤font�¤sizeÊA`  ¤textÙ Optimal policy <br> path example¡xÊ?   ¥widthÊC‡  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤dataÜ ‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡S¡xÖ  À?‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡G¡xÖ  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  `@¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@   @¤type§scatter¤name¬Optimal Path¡x×  À?  À?‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  À?   @‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×   @  `@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  `@  �@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @   @¤type§scatter¤name¬Optimal Path¡x×  �@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  À?¤type§scatter¤name¬Optimal Path¡x×  °@  °@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  °@  Ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  Ð@  ð@‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  ð@  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?  À?¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  À?   @¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×   @  `@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  `@  �@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  �@  °@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¡x×  A  A‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¡xÖ33s@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡W¡xÖ33s@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  °@¤type§scatter¤text‘¡W¡xÖ33s@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ   @¤type§scatter¤text‘¡W¡xÖš™Ù@‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡W¡xÖÍÌA‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  °@¤type§scatter¤text‘¡W¡xÖÍÌA‡ªshowlegendÂ¤mode¤text¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡W¡xÖÍÌAÙ53ee53c46-38f7-11f0-16c9-2b093684d981/95a7829c5a22024f„¦layout„¥xaxis�¥title�¤textÙ%Computation time, in expected updates¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¥yaxis�¥title�¤textÙ(Value of start state under greedy policy¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data”„¡yÇ,    e�w=£íø?¿êJ@’Ï‰@k¸¥@-”¹@<¡Ê@iòØ@^â@è@¤type§scatter¤name®b = 1, uniform¡xÇ,     DœF DG fjG DœG UÃG fêG€»H DH€Ì/H UCH„¡yÇ,    �ëM»$>¶> ‚D?jÏŠ?7­©?æ Ã?Fp×?‚ùç?½aõ?6  @¤type§scatter¤name®b = 3, uniform¡xÇ,     DœF DG fjG DœG UÃG fêG€»H DH€Ì/H UCH„¡yÇ,    8�›>ùÚË@r§Ò@²«Ù@€Þ@¶_à@bá@*Ïâ@Çã@‡ä@¤type§scatter¤name°b = 1, on-policy¡xÇ,      €? BœF AG ajG€@œG€PÃG€`êG@¸H@@H@È/H„¡yÇ,    Ü^>cðÉ?¥÷ß?‘Tï?#Jü?Ñ‰@§i@GŒ@uQ@f¯@¤type§scatter¤name°b = 3, on-policy¡xÇ,      €? BœF AG ajG€@œG€PÃG€`êG@¸H@@H@È/HÙ53ee53c46-38f7-11f0-16c9-2b093684d981/d28007b66490ffa3„¦layout‡¦xaxis1Œ¨showlineÃ©gridcolor¥black¨tickvalsÇ$  €?   @  @@  €@   @  À@  à@   A  A¥range×  €?   A¦domain×    ffæ>¨ticktextš          ©linecolor¥black¨showgridÃ¨gridwithÊ?€  ¨zerolineÃ¦mirrorÃ¦anchor¢y1¦yaxis1‹¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ  €?   @  @@  €@   @  À@¥range×  €?  à@¦domain×      €?¨ticktext–      ©linecolor¥black¨showgridÃ¦mirrorÃ¦anchor¢x1¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦xaxis2Œ¨showlineÃ©gridcolor¥black¨tickvalsÇ$  €?   @  @@  €@   @  À@  à@   A  A¥range×  €?   A¦domain×ÍÌ?  €?¨ticktextš          ©linecolor¥black¨showgridÃ¨gridwithÊ?€  ¨zerolineÃ¦mirrorÃ¦anchor¢y2¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦yaxis2‹¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ  €?   @  @@  €@   @  À@¥range×  €?  à@¦domain×      €?¨ticktext–      ©linecolor¥black¨showgridÃ¦mirrorÃ¦anchor¢x2«annotations’‰§yanchor¦bottom§xanchor¦center¡yÊ?€  ¤font�¤sizeÊA€  ©showarrowÂ¤yref¥paper¤text»Blocking Maze Steps <= 1000¤xref¥paper¡xÊ>fff‰§yanchor¦bottom§xanchor¦center¡yÊ?€  ¤font�¤sizeÊA€  ©showarrowÂ¤yref¥paper¤textºBlocking Maze Steps > 1000¤xref¥paper¡xÊ?Fff¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤dataÜm‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  À?¤type§scatter¤text‘¡S¥yaxis¢y1¡xÖ  �@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡G¥yaxis¢y1¡xÖ  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖffæ?‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖ333@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖ33s@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™™@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™¹@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  À?¤type§scatter¤text‘¡S¥yaxis¢y2¡xÖ  �@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡G¥yaxis¢y2¡xÖ  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖ333@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖ33s@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™™@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™¹@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖÍÌAÙ53ee53c46-38f7-11f0-16c9-2b093684d981/e3f0ea7a069278b6„¦layout„¥xaxis‚¤type£log¥title�¤text«Maze States¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¥yaxis‚¤type£log¥title�¤text¾Updates until optimal solution¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data’„¡yØ  4C  ÆC àD  hD¤type§scatter¤name´prioritized sweeping¡xØ  XB  ÀB  üB  XC„¡yØ 8…E G ÎñF `jG¤type§scatter¤name¦Dyna-Q¡xØ  XB  ÀB  üB  XCÙ53ee53c46-38f7-11f0-16c9-2b093684d981/69fe4d8c476440b4„¦layout‡¦xaxis1Œ¨showlineÃ©gridcolor¥black¨tickvalsÇ$  €?   @  @@  €@   @  À@  à@   A  A¥range×  €?   A¦domain×    ffæ>¨ticktextš          ©linecolor¥black¨showgridÃ¨gridwithÊ?€  ¨zerolineÃ¦mirrorÃ¦anchor¢y1¦yaxis1‹¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ  €?   @  @@  €@   @  À@¥range×  €?  à@¦domain×      €?¨ticktext–      ©linecolor¥black¨showgridÃ¦mirrorÃ¦anchor¢x1¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦xaxis2Œ¨showlineÃ©gridcolor¥black¨tickvalsÇ$  €?   @  @@  €@   @  À@  à@   A  A¥range×  €?   A¦domain×ÍÌ?  €?¨ticktextš          ©linecolor¥black¨showgridÃ¨gridwithÊ?€  ¨zerolineÃ¦mirrorÃ¦anchor¢y2¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦yaxis2‹¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ  €?   @  @@  €@   @  À@¥range×  €?  à@¦domain×      €?¨ticktext–      ©linecolor¥black¨showgridÃ¦mirrorÃ¦anchor¢x2«annotations’‰§yanchor¦bottom§xanchor¦center¡yÊ?€  ¤font�¤sizeÊA€  ©showarrowÂ¤yref¥paper¤text»Shortcut Maze Steps <= 3000¤xref¥paper¡xÊ>fff‰§yanchor¦bottom§xanchor¦center¡yÊ?€  ¤font�¤sizeÊA€  ©showarrowÂ¤yref¥paper¤textºShortcut Maze Steps > 3000¤xref¥paper¡xÊ?Fff¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤dataÜ‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  À?¤type§scatter¤text‘¡S¥yaxis¢y1¡xÖ  �@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡G¥yaxis¢y1¡xÖ  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  A  A‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖ333@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖ33s@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™™@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™¹@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  À?¤type§scatter¤text‘¡S¥yaxis¢y2¡xÖ  �@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡G¥yaxis¢y2¡xÖ  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  Ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  Ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  ð@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  ð@  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  A  A‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖ333@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖ33s@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™™@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™¹@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖÍÌAÙ53ee53c46-38f7-11f0-16c9-2b093684d981/8b0fca3c029bef9b„¦layout‚¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data’„¡yÈ.à                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?š™?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?fff?fff?fff?  €?  €?  €?  €?  €?  €?  €?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?š™™?š™™?š™™?š™™?š™™?š™™?š™™?ff¦?33³?33³?33³?33³?  À?  À?  À?  À?  À?  À?  À?  À?  À?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?š™Ù?š™Ù?š™Ù?ffæ?ffæ?ffæ?ffæ?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?33ó?   @   @   @   @   @   @ff@ff@ÍÌ@ÍÌ@ÍÌ@ÍÌ@33@33@33@33@33@33@33@33@33@33@š™@   @   @   @   @ff&@ff&@ff&@ff&@ff&@ff&@ff&@ÍÌ,@ÍÌ,@ÍÌ,@333@333@333@333@333@333@333@333@333@333@333@š™9@š™9@  @@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@33S@33S@33S@33S@33S@33S@33S@33S@33S@  `@fff@fff@fff@fff@fff@fff@fff@fff@fff@fff@fff@fff@fff@ÍÌl@33s@33s@š™y@š™y@  €@  €@  €@  €@  €@  €@  €@  €@33ƒ@33ƒ@ff†@š™‰@š™‰@š™‰@ÍÌŒ@ÍÌŒ@ÍÌŒ@ÍÌŒ@ÍÌŒ@  �@  �@  �@ff–@š™™@š™™@š™™@š™™@š™™@š™™@š™™@š™™@š™™@ÍÌœ@ÍÌœ@   @33£@33£@33£@33£@33£@ff¦@š™©@š™©@š™©@ÍÌ¬@ÍÌ¬@  °@  °@33³@33³@ff¶@š™¹@š™¹@š™¹@š™¹@š™¹@ÍÌ¼@  À@33Ã@33Ã@ffÆ@ffÆ@ffÆ@ffÆ@ffÆ@ffÆ@š™É@š™É@ÍÌÌ@  Ð@33Ó@ffÖ@ffÖ@ffÖ@ÍÌÜ@ÍÌÜ@ÍÌÜ@ÍÌÜ@ÍÌÜ@  à@  à@33ã@33ã@33ã@ffæ@ffæ@š™é@ÍÌì@ÍÌì@ÍÌì@  ð@33ó@ffö@ffö@š™ù@š™ù@š™ù@š™ù@ÍÌü@ÍÌü@ÍÌü@   Aš™Aš™AffAffAffA  A  A  A  Aš™	A33A33AÍÌAÍÌAffAffAffAš™Aš™AÍÌAÍÌAffA  A  A  A  A  Aš™Aš™Aš™Aš™A   A   A   A   A   A   A   Aš™!Aš™!Aš™!AÍÌ$Aff&Aš™)Aš™)Aš™)A33+A33+A33+A33+AÍÌ,Aff.Aff.A  0Aš™1A333AÍÌ4AÍÌ4AÍÌ4Aff6Aff6A  8Aš™9Aš™9A33;A33;AÍÌ<Aff>A  @A  @A  @A  @A  @A  @Aš™AA33CA33CAffFAš™IA33KA33KA33KA33KA33KAÍÌLAffNAffNAffNAffNA33SAffVAffVAffVAffVAffVAffVA  XA  XA  XA  XAš™YAff^Aš™aAš™aAš™aAš™aAš™aAš™aAš™aAš™aA33cAÍÌdA  hAš™iAš™iAš™iAš™iAš™iA33kAÍÌlAffnAffnA  pA  pAš™qAš™qA33sA33sAÍÌtAÍÌtAffvA  xA  xA  xA33{AÍÌ|AÍÌ|Aff~Aff~Aff~A  €A  €A  €A  €Aš™�Aff‚A33ƒA  „A  „A  „A  „A  „AÍÌ„AÍÌ„Aš™…Aš™…Aff†A  ˆAÍÌˆAš™‰Aš™‰Aš™‰Aš™‰Aš™‰Aš™‰Aš™‰A33‹A33‹Aš™�Aš™�Aš™�A33�A33�A33�A33�A33�A33�A33�A33�AÍÌ�Aš™‘A33“A  ”A  ”A  ”A  ”A  ”AÍÌ”AÍÌ”AÍÌ”Aš™•Aff–A33—A  ˜AÍÌ˜Aš™™AffšAffšAffšAffšAffšA  œAÍÌœAš™�AffžAffžAffžA33ŸA33ŸA   A   A   AÍÌ Aš™¡Aff¢A33£A33£A  ¤A  ¤A  ¤AÍÌ¤Aff¦Aff¦A33§A33§AÍÌ¨Aš™©AffªA33«A33«A33«A33«A  ¬Aš™­Aš™­Aff®A  °A  °A  °AÍÌ°AÍÌ°Aš™±Aff²A33³A  ´Aš™µAš™µAff¶A33·A33·A33·A33·Aš™¹AffºAffºA33»A33»A  ¼Aš™½Aff¾Aff¾Aff¾A33¿A  ÀAÍÌÀAš™ÁAffÂAffÂA  ÄA  ÄA  ÄAÍÌÄAš™ÅAffÆAffÆA  ÈAÍÌÈAÍÌÈAÍÌÈAš™ÉA33ËA33ËAÍÌÌAÍÌÌAÍÌÌAÍÌÌAffÎAffÎA  ÐA  ÐAš™ÑA33ÓA33ÓA33ÓA  ÔA  ÔA  ÔAš™ÕAffÖAffÖA33×A  ØAÍÌØAÍÌØAš™ÙA33ÛA33ÛAš™ÝAš™ÝAš™ÝAš™ÝAffÞA33ßA  àAÍÌàAÍÌàAš™áAffâA33ãA33ãA  äAÍÌäAÍÌäAÍÌäAffæA  èA  èA  èA  èAš™éAš™éAffêAffêAffêAÍÌìAÍÌìAš™íA33ïA  ðAÍÌðAÍÌðAš™ñAš™ñAš™ñAffòAffòA33óAÍÌôAÍÌôAš™õA33÷AÍÌøAÍÌøAÍÌøAÍÌøAÍÌøAš™ùAš™ùAffúA33ûA  üA  üAš™ýA33ÿA33ÿA   Bff BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BffBÍÌB33Bš™BffBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBš™B  BffB33B  B  B  BffBffBffBffBÍÌBš™	B  
B  
Bff
BÍÌ
Bš™B  BffBffBÍÌBÍÌBÍÌB33Bš™BffBÍÌBÍÌB33Bš™Bš™Bš™Bš™Bš™Bš™B33B  BffBÍÌBš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™BÍÌB33B  BÍÌB33Bš™Bš™Bš™Bš™Bš™B  B  Bš™Bš™Bš™BffBÍÌBš™Bš™Bš™B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  BffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  BffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   B   Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff Bff BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!B33!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "B  "Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#B33#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $B  $Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$Bff$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$BÍÌ$B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%B33%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%Bš™%B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &B  &Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&Bff&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'B33'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(Bff(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)B33)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *B  *Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*Bff*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+B33+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+Bš™+B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,Bff,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,BÍÌ,B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .B  .Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.BÍÌ.B33/B33/B33/B33/B33/B33/B33/B33/B33/B33/B33/B33/B33/B33/B33/B33/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0B  0Bff0Bff0Bff0Bff0Bff0Bff0Bff0Bff0Bff0Bff0Bff0Bff0Bff0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0B331B331B331B331B331B331B331B331B331B331B331B331B331B331B331B331B331B331Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1B  2B  2B  2B  2B  2B  2B  2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2Bff2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2BÍÌ2B333B333B333B333B333B333B333B333B333B333B333Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3Bš™3B  4B  4B  4B  4B  4B  4B  4B  4B  4B  4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4BÍÌ4B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335B335Bš™5Bš™5B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6Bff6Bff6Bff6Bff6Bff6Bff6Bff6Bff6Bff6Bff6Bff6Bff6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6BÍÌ6B337B337B337B337B337B337B337B337B337B337B337Bš™7B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8B  8Bff8Bff8Bff8Bff8Bff8Bff8Bff8Bff8Bff8Bff8BÍÌ8BÍÌ8BÍÌ8BÍÌ8BÍÌ8BÍÌ8BÍÌ8BÍÌ8BÍÌ8BÍÌ8Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9Bš™9B  :B  :B  :Bff:Bff:Bff:Bff:Bff:Bff:Bff:Bff:Bff:Bff:Bff:Bff:Bff:BÍÌ:BÍÌ:BÍÌ:BÍÌ:B33;B33;B33;B33;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;B  <B  <B  <B  <B  <B  <B  <BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<BÍÌ<B33=B33=B33=Bš™=Bš™=Bš™=Bš™=Bš™=Bš™=Bš™=Bš™=Bš™=Bš™=Bš™=B  >B  >B  >B  >B  >B  >B  >BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>BÍÌ>B33?B33?B33?B33?B33?B33?B33?Bš™?Bš™?Bš™?Bš™?Bš™?Bš™?B  @B  @B  @B  @B  @B  @B  @B  @B  @B  @Bff@Bff@BÍÌ@BÍÌ@BÍÌ@BÍÌ@BÍÌ@BÍÌ@BÍÌ@BÍÌ@B33AB33AB33AB33AB33AB33AB33AB33AB33AB33AB33AB33ABš™ABš™AB  BB  BB  BB  BB  BBffBBffBBffBBffBBffBBffBBffBBffBBffBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBB33CB33CB33CB33CBš™CBš™CBš™CBš™CBš™CBš™CBš™CBš™CBš™CBš™CB  DB  DB  DB  DB  DB  DBffDBffDBffDBffDBffDBffDBffDBffDBffDBffDBÍÌDBÍÌDBÍÌDBÍÌDB33EB33EB33EB33EB33EB33EB33EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EBš™EB  FB  FBffFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBš™GBš™GBš™GB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HBffHBffHBÍÌHBÍÌHBÍÌHB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB33IB  JB  JB  JBffJBffJBffJBffJBffJBffJBffJBÍÌJBÍÌJBÍÌJBÍÌJBÍÌJBÍÌJBÍÌJBÍÌJBÍÌJBÍÌJBš™KBš™KBš™KBš™KBš™KB  LB  LB  LB  LB  LB  LB  LB  LB  LB  LB  LB  LB  LBffLBffLB¤type§scatter¤name¦Dyna-Q¡xÈ.à  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;E„¡yÈ.à                                                                                                                                                                                                                            ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?333?333?333?333?333?333?333?333?333?333?333?333?333?ÍÌL?ÍÌL?ÍÌL?fff?fff?  €?  €?  €?  €?  €?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?š™™?š™™?š™™?š™™?š™™?ff¦?ff¦?ff¦?ff¦?33³?  À?  À?  À?  À?  À?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?š™Ù?ffæ?ffæ?ffæ?   @   @   @   @   @   @   @   @   @   @   @ff@ÍÌ@ÍÌ@š™@š™@   @   @   @   @   @ff&@ff&@ff&@ff&@ff&@ÍÌ,@ÍÌ,@333@š™9@  @@ffF@ffF@ffF@ffF@ffF@33S@š™Y@š™Y@š™Y@š™Y@š™Y@fff@ÍÌl@33s@  €@  €@  €@  €@  €@  €@33ƒ@ff†@ff†@š™‰@š™‰@  �@33“@ff–@ff–@š™™@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@   @33£@33£@ff¦@ÍÌ¬@  °@  °@  °@33³@33³@ff¶@ff¶@ff¶@š™¹@  À@33Ã@š™É@š™É@š™É@š™É@ÍÌÌ@  Ð@  Ð@  Ð@  Ð@  Ð@ffÖ@ÍÌÜ@  à@33ã@ffæ@ffæ@ffæ@š™é@š™é@š™é@š™é@š™é@ÍÌì@ÍÌì@33ó@ffö@š™ù@š™ù@   Aš™Aš™Aš™A33AÍÌAÍÌAffA  A33A33AÍÌAffA  A  A  A  Aš™Aš™A33AÍÌAffA  A  Aš™AÍÌAffA   A   A   Aš™!Aš™!Aš™!Aš™!A33#A33#AÍÌ$Aff&A  (Aš™)AÍÌ,AÍÌ,Aff.Aff.A  0Aš™1Aš™1A333AÍÌ4AÍÌ4AÍÌ4AÍÌ4Aff6Aff6A  8Aš™9A33;A  @Aš™AAš™AAÍÌDAÍÌDAÍÌDAffFAffFAffFA  HA  HA  HAš™IAš™IAffNA  PA  PA  PAš™QA33SAÍÌTAffVA  XAš™YA33[A33[AÍÌ\AÍÌ\Aff^Aff^A  `A  `A  `Aš™aA  hA  hA  hA33kA33kA33kAÍÌlAÍÌlAÍÌlAÍÌlA33sA33sAÍÌtAffvAffvA  xAš™yAš™yA33{AÍÌ|AÍÌ|AÍÌ|A  €Aš™�A33ƒA  „A  „A  „A  „AÍÌ„Aš™…Aš™…Aš™…Aff†A  ˆA  ˆA33‹A33‹A33‹A  ŒA  ŒA  ŒA  ŒAÍÌŒAÍÌŒAš™�AffŽA33�A  �Aš™‘Aff’A  ”A  ”A  ”A  ”A  ”A  ”AÍÌ”AÍÌ”A33—Aš™™A  œA  œA  œA  œA  œA  œA  œA  œAš™�Aš™�A33ŸA33ŸAš™¡Aš™¡Aš™¡A33£A33£A33£A33£A33£A33£AÍÌ¤Aš™¥Aš™¥Aff¦A33§A  ¨AÍÌ¨AÍÌ¨Aš™©AffªA33«A33«A  ¬AÍÌ¬AÍÌ¬AÍÌ¬Aff®A33¯A  °AÍÌ°Aff²Aff²Aff²A33³A  ´AÍÌ´AÍÌ´Aff¶A33·A  ¸A  ¸A  ¸AÍÌ¸Aš™¹A33»A33»A33»AÍÌ¼Aš™½Aff¾Aff¾A33¿A33¿A33¿A  ÀA  ÀAÍÌÀAš™ÁA  ÄAÍÌÄAš™ÅAš™ÅAffÆAffÆAffÆAffÆA33ÇA33ÇA  ÈAš™ÉAffÊA  ÌAš™ÍAš™ÍAffÎAffÎA33ÏA33ÏA33ÏA33ÏA  ÐAÍÌÐA33ÓA33ÓA33ÓAÍÌÔAÍÌÔAš™ÕA33×A33×A33×A33×AÍÌØAÍÌØAÍÌØAffÚA33ÛA  ÜA  ÜAffÞA33ßA33ßA  àA  àA  àAÍÌàAÍÌàAÍÌàAš™áA33ãAÍÌäAš™åAš™åAffæA33çA33çA  èA  èA  èAš™éAffêA33ëA  ìAÍÌìAÍÌìAš™íAffîAffîA33ïA  ðAš™ñAš™ñAš™ñA33óA33óA33óA  ôAfföAfföAfföAfföAfföA33÷A  øAÍÌøA33ûA33ûA33ûA33ûA  üAš™ýAffþAffþAffþAffþAffþAff Bff Bff Bff Bff Bff BffBffBffBffB33B33Bš™Bš™Bš™Bš™Bš™B  BÍÌBš™BffBffBffBÍÌB33Bš™Bš™Bš™B  BffB33	B33	Bš™	B  
Bff
Bff
Bff
BÍÌ
B33Bš™B  B  BffBffB33B33Bš™Bš™BffBffB33B33B  B  BffB33B33B33Bš™Bš™Bš™B  B  BÍÌBš™B  BffBÍÌBÍÌBÍÌB33B33B33B33B33B  BÍÌBÍÌBÍÌBÍÌBš™Bš™B  B  B  B  Bš™B  B  B  BffBÍÌB33Bš™Bš™Bš™BffB33B33B33Bš™B  B  B  BÍÌBš™B   B   Bff Bff Bff BÍÌ B33!B33!B33!B  "B  "Bff"BÍÌ"B33#B  $BÍÌ$BÍÌ$B33%B33%Bš™%Bš™%B  &B  &B  &B  &BÍÌ&BÍÌ&BÍÌ&B33'BÍÌ(B33)Bš™)Bš™)Bš™)B  *Bff*BÍÌ*BÍÌ*BÍÌ*BÍÌ*B33+Bš™+B33-Bš™-Bš™-Bš™-Bš™-B  .Bff.Bff.B33/B33/B33/B  0Bff0BÍÌ0B331Bš™1Bš™1Bš™1Bff2Bff2Bff2BÍÌ2BÍÌ2BÍÌ2BÍÌ2B  4BÍÌ4BÍÌ4Bš™5Bš™5B  6BÍÌ6BÍÌ6BÍÌ6BÍÌ6B337Bš™7Bš™7B  8B  8Bff8BÍÌ8Bš™9Bff:Bff:BÍÌ:B33;B33;B33;B33;B33;Bš™;B  <BÍÌ<B33=B  >B  >Bff>BÍÌ>B33?B33?Bš™?Bš™?B  @B  @BÍÌ@B33AB33ABš™AB  BBffBBÍÌBBÍÌBBš™CBš™CBš™CBffDBÍÌDBÍÌDBÍÌDB33EB  FBffFBÍÌFBÍÌFB33GBš™GBš™GBš™GBffHBffHBÍÌHB33IB  JBÍÌJBÍÌJBÍÌJB33KB33KB33KB33KB  LBÍÌLBÍÌLB  NB  NB  NBffNBÍÌNB33OB33OBš™OBš™OBffPBÍÌPBÍÌPB33QB33QB  RBffRBÍÌRBÍÌRB33SB  TBffTBffTBÍÌTB33UBš™UB  VB  VB  VB  VBÍÌVB33WB33WB  XBffXBÍÌXB33YBš™YB  ZB  ZB  ZBffZBÍÌZBÍÌZB33[B33[B  \BÍÌ\BÍÌ\B33]B33]Bš™]Bff^Bff^Bff^Bff^BÍÌ^Bš™_B  `Bff`Bff`Bff`BÍÌ`B33aB33aB  bB  bBÍÌbB33cB  dBffdBffdBÍÌdBÍÌdB33eB33eB33eBš™eBš™eB  fBš™gB  hBffhBffhBffhBÍÌhB33iB33iB33iBš™iBffjBffjB33kBš™kBš™kB  lBfflB33mB33mB33mB33mBš™mBffnBffnBffnBffnBÍÌnB33oB  pBffpB33qB33qB33qB  rB  rBffrBffrBffrBffrBÍÌrBÍÌrBš™sBfftBfftB33uB33uBš™uB  vB  vB  vB  vBÍÌvB33wBš™wB  xB  xBÍÌxB33yB33yBš™yB  zBffzBÍÌzB33{B33{B33{Bš™{B  |Bff|Bff|B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}Bš™}B  ~B  ~B  ~B  ~B  ~B  ~B  ~B  ~B  ~B  ~B  ~Bff~Bff~Bff~Bff~Bff~Bff~Bff~Bff~Bff~BÍÌ~BÍÌ~BÍÌ~BÍÌ~BÍÌ~BÍÌ~BÍÌ~BÍÌ~BÍÌ~BÍÌ~BÍÌ~B33B33B33B33B33Bš™Bš™B  €B  €B  €B  €B  €B  €B  €B  €B  €B  €B  €B  €B33€B33€B33€B33€B33€B33€B33€Bff€Bff€Bff€Bff€Bff€Bš™€Bš™€Bš™€Bš™€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€BÍÌ€B  �B33�B33�B33�B33�B33�Bff�Bff�Bff�Bff�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚B  ‚B33‚B33‚B33‚B33‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚BÍÌ‚BÍÌ‚BÍÌ‚B  ƒB33ƒB33ƒB33ƒB33ƒBffƒBffƒBffƒBffƒBffƒBffƒBffƒBffƒBffƒBffƒBš™ƒBš™ƒBš™ƒB  „B  „B  „B  „B  „B33„B33„B33„B33„B33„B33„B33„B33„B33„B33„B33„B33„Bff„Bff„Bš™„BÍÌ„BÍÌ„BÍÌ„B  …B  …B  …B  …B  …B  …B  …Bff…Bff…Bff…Bš™…BÍÌ…BÍÌ…B  †B  †B  †B  †B33†B33†B33†B33†B33†B33†B33†Bff†Bff†Bff†Bš™†Bš™†BÍÌ†BÍÌ†B  ‡B  ‡B  ‡B33‡B33‡B33‡B33‡Bff‡Bff‡Bš™‡Bš™‡Bš™‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡B  ˆB  ˆB  ˆB  ˆB33ˆBš™ˆBÍÌˆB  ‰B  ‰B  ‰B  ‰B  ‰B  ‰B33‰B33‰B33‰B33‰B33‰Bff‰Bff‰Bff‰Bff‰Bff‰Bš™‰Bš™‰BÍÌ‰B  ŠB  ŠBffŠBffŠBffŠBffŠBffŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠBš™ŠBÍÌŠBÍÌŠB  ‹B  ‹B  ‹B33‹Bff‹Bff‹Bff‹Bff‹BÍÌ‹BÍÌ‹BÍÌ‹B  ŒB  ŒB  ŒB  ŒB  ŒB33ŒBffŒBffŒBffŒBffŒBffŒBš™ŒBš™ŒBš™ŒBš™ŒBš™ŒB  �B  �B  �B33�B33�B33�B33�Bff�Bff�Bff�Bff�Bff�Bff�BÍÌ�B  ŽB  ŽB  ŽB  ŽB  ŽB33ŽB33ŽBffŽBffŽBš™ŽBÍÌŽB  �B  �B  �B  �B  �B  �B  �B  �B  �B  �Bff�Bff�Bš™�BÍÌ�B  �B  �Bff�Bff�Bff�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ‘Bff‘Bff‘Bš™‘BÍÌ‘BÍÌ‘B  ’B  ’Bff’Bff’Bff’Bff’Bff’Bff’Bff’Bff’Bff’Bš™’Bš™’Bš™’BÍÌ’B  “B33“B33“B33“B33“B33“Bš™“BÍÌ“B  ”B  ”B  ”B33”B33”B33”B33”B33”Bff”Bff”Bff”Bff”Bff”BÍÌ”B  •B  •B33•Bff•Bff•Bš™•Bš™•BÍÌ•B  –B  –B  –B  –B  –B  –B  –B33–Bff–BÍÌ–B33—B33—B33—Bff—Bff—Bš™—Bš™—Bš™—Bš™—BÍÌ—BÍÌ—BÍÌ—B  ˜B  ˜B  ˜B  ˜B  ˜B  ˜B33˜Bš™˜BÍÌ˜Bff™Bff™Bff™Bff™Bff™Bff™Bff™Bff™Bff™Bš™™Bš™™BÍÌ™BÍÌ™BÍÌ™B  šB  šB33šBš™šBÍÌšB  ›B33›B33›B33›B33›Bff›Bff›Bff›Bff›Bff›Bff›Bff›BÍÌ›BÍÌ›BÍÌ›BÍÌ›BÍÌ›B  œB  œB  œB33œBffœBÍÌœBÍÌœB  �B  �B33�B33�B33�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  žBš™žBš™žBÍÌžBÍÌžB  ŸB33ŸB33ŸB33ŸB33ŸB33ŸB33ŸB33ŸB33ŸBffŸBffŸBffŸBffŸBÍÌŸB   B33 Bff Bš™ BÍÌ B  ¡B  ¡B33¡B33¡B33¡B33¡B33¡B33¡B33¡B33¡B33¡B33¡Bš™¡Bš™¡Bš™¡B  ¢B33¢B33¢Bff¢Bš™¢Bš™¢BÍÌ¢B  £B33£B33£B33£B33£B33£B33£B33£Bff£Bff£Bff£Bš™£BÍÌ£B  ¤B33¤B33¤B33¤Bff¤Bff¤Bff¤Bš™¤Bš™¤B  ¥B33¥B33¥B33¥B33¥B33¥B33¥B33¥B33¥B33¥B33¥B33¥Bš™¥B  ¦B  ¦B  ¦B33¦B33¦BÍÌ¦B  §B  §B33§B33§B33§B33§B33§B33§B33§B33§Bff§Bff§Bff§BÍÌ§BÍÌ§BÍÌ§B  ¨B  ¨B  ¨B  ¨Bff¨BÍÌ¨B  ©B33©B33©B33©B33©B33©B33©B33©Bff©Bš™©B  ªB  ªB  ªB  ªB  ªB  ªB33ªBffªBš™ªBÍÌªBÍÌªB  «B  «B  «B33«Bff«Bff«Bš™«Bš™«Bš™«BÍÌ«BÍÌ«BÍÌ«B  ¬B  ¬B  ¬B  ¬B33¬B33¬Bff¬BÍÌ¬B  ­B  ­B33­B33­B33­Bš™­Bš™­Bš™­Bš™­Bš™­Bš™­BÍÌ­BÍÌ­B  ®B33®B33®B33®B33®Bš™®Bš™®Bš™®Bš™®Bff¯Bff¯Bff¯Bff¯Bš™¯Bš™¯Bš™¯Bš™¯BÍÌ¯BÍÌ¯B  °B  °B  °Bff°Bš™°Bš™°Bš™°Bš™°B  ±B33±B33±Bff±Bff±Bff±Bff±BÍÌ±BÍÌ±BÍÌ±BÍÌ±B  ²B  ²B33²B33²B33²B33²Bff²Bš™²BÍÌ²BÍÌ²BÍÌ²BÍÌ²BÍÌ²B33³B33³B33³B33³B33³B33³Bff³Bff³Bff³Bš™³BÍÌ³B  ´B33´B33´Bff´BÍÌ´BÍÌ´BÍÌ´BÍÌ´B  µB  µB  µB  µB  µB33µB33µBffµBffµBš™µBš™µBš™µBÍÌµB33¶Bff¶Bff¶Bff¶Bš™¶Bš™¶Bš™¶Bš™¶Bš™¶Bš™¶Bš™¶BÍÌ¶B  ·B  ·B33·B33·B33·Bff·Bš™·BÍÌ·B  ¸B  ¸B  ¸B  ¸B  ¸B  ¸B33¸Bff¸Bff¸Bff¸Bff¸Bff¸Bff¸Bš™¸BÍÌ¸B  ¹B  ¹Bš™¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹B  ºB33ºB33ºBffºBffºBÍÌºB  »B  »B  »BÍÌ»BÍÌ»BÍÌ»BÍÌ»BÍÌ»BÍÌ»BÍÌ»BÍÌ»B  ¼B  ¼B  ¼B  ¼Bš™¼BÍÌ¼B  ½B  ½B  ½B  ½B33½B33½Bff½Bš™½BÍÌ½BÍÌ½BÍÌ½BÍÌ½BÍÌ½BÍÌ½B33¾Bff¾Bš™¾Bš™¾BÍÌ¾BÍÌ¾BÍÌ¾B  ¿B  ¿B33¿B33¿B33¿Bff¿Bš™¿BÍÌ¿BÍÌ¿BÍÌ¿BÍÌ¿BÍÌ¿B33ÀB33ÀB33ÀB33ÀB33ÀBffÀBffÀBš™ÀBš™ÀBÍÌÀB33ÁBffÁBš™ÁBÍÌÁBÍÌÁBÍÌÁB  ÂB  ÂB33ÂB33ÂB33ÂB33ÂBffÂBffÂBffÂBffÂBÍÌÂB  ÃB  ÃB33ÃB33ÃB33ÃBš™ÃBš™ÃBÍÌÃBÍÌÃB  ÄB  ÄB  ÄB  ÄB  ÄB  ÄB  ÄB  ÄB33ÄBš™ÄBš™ÄB  ÅB  ÅB  ÅB33ÅB33ÅBffÅBš™ÅBÍÌÅBÍÌÅBÍÌÅB  ÆB  ÆB  ÆB  ÆB  ÆB33ÆBffÆBš™ÆBÍÌÆBÍÌÆBÍÌÆB33ÇBffÇBš™ÇBš™ÇBš™ÇBš™ÇBš™ÇBÍÌÇBÍÌÇBÍÌÇB  ÈB  ÈB  ÈB  ÈB33ÈBffÈBš™ÈBš™ÈBš™ÈBÍÌÈB  ÉB33ÉBffÉBffÉBffÉBffÉBš™ÉBš™ÉBÍÌÉB  ÊB  ÊB  ÊB33ÊB33ÊB33ÊBffÊBš™ÊBš™ÊBš™ÊBš™ÊBš™ÊBš™ÊB  ËB  ËB33ËB33ËBffËBÍÌËB  ÌB  ÌB  ÌB33ÌB33ÌB33ÌB33ÌB33ÌB33ÌB33ÌBffÌBš™ÌBš™ÌBÍÌÌBÍÌÌB  ÍB  ÍB33ÍB33ÍBffÍBš™ÍBš™ÍBÍÌÍBÍÌÍB  ÎB  ÎB33ÎB33ÎB33ÎB33ÎB33ÎB33ÎBffÎBffÎBffÎBš™ÎB  ÏB  ÏB  ÏB33ÏBffÏBš™ÏBš™ÏBÍÌÏBÍÌÏB  ÐB  ÐB  ÐB  ÐB  ÐB33ÐB33ÐBffÐBffÐBÍÌÐB  ÑB  ÑB  ÑB  ÑB33ÑBffÑBffÑBÍÌÑB  ÒB  ÒB  ÒB  ÒB  ÒB  ÒB  ÒB  ÒB33ÒBš™ÒBÍÌÒBÍÌÒB  ÓB  ÓB33ÓBffÓBš™ÓBš™ÓBš™ÓBÍÌÓBÍÌÓBÍÌÓBÍÌÓB  ÔB  ÔB  ÔB  ÔB  ÔB  ÔB  ÔBffÔB  ÕB33ÕB33ÕB33ÕB33ÕBffÕBš™ÕBš™ÕBš™ÕBš™ÕBÍÌÕBÍÌÕBÍÌÕBÍÌÕBÍÌÕB  ÖB33ÖBffÖBffÖBffÖBÍÌÖBÍÌÖB33×B33×B33×B33×Bff×Bš™×Bš™×Bš™×BÍÌ×BÍÌ×BÍÌ×B  ØB  ØB  ØB  ØB33ØB33ØB  ÙB  ÙB  ÙB  ÙB  ÙB33ÙB33ÙBš™ÙBš™ÙBš™ÙBš™ÙBš™ÙBš™ÙBÍÌÙBÍÌÙBÍÌÙBÍÌÙB33ÚBffÚBffÚBš™ÚBÍÌÚBÍÌÚB33ÛB33ÛBffÛBš™ÛBš™ÛBš™ÛBš™ÛBš™ÛBš™ÛBš™ÛBÍÌÛBÍÌÛBÍÌÛBÍÌÛB  ÜBffÜBffÜBš™ÜBÍÌÜB33ÝB33ÝB33ÝBš™ÝBš™ÝBš™ÝBš™ÝBÍÌÝBÍÌÝBÍÌÝBÍÌÝBÍÌÝBÍÌÝBÍÌÝBÍÌÝB33ÞB33ÞB33ÞB33ÞBffÞBffÞBffÞB  ßB33ßB33ßBš™ßBš™ßBš™ßBš™ßBš™ßBš™ßBš™ßBš™ßBÍÌßB33àB33àB33àB33àB33àBffàBffàBš™àB33áB33áB33áBffáBffáBffáBffáBffáBÍÌáBÍÌáB  âB  âB  âB33âB33âB33âB33âBš™âBš™âBÍÌâB  ãB  ãB  ãBffãBffãBffãBffãBffãBffãBÍÌãB  äB  äB  äB33äB33äB33äB33äB33äBš™äBÍÌäBÍÌäBÍÌäB  åB33åB33åB33åB33åBffåBffåBš™åBš™åBš™åBÍÌåBÍÌåBÍÌåBÍÌåB33æB33æB33æBffæBffæBffæBffæB  çB33çB33çBffçBffçBffçBffçBffçBffçBffçBffçBš™çBÍÌçB  èB33èB33èBffèBffèBš™èBš™èB  éB33éB33éB33éB33éB33éB33éB33éBÍÌéBÍÌéBÍÌéB  êB33êB33êB33êB33êB33êB33êBš™êBš™êBÍÌêBÍÌêB33ëB33ëBffëBffëBš™ëBš™ëBš™ëBš™ëBš™ëB  ìB  ìB  ìB  ìB33ìB33ìB33ìBš™ìBš™ìBÍÌìBÍÌìBÍÌìBÍÌìBÍÌìB  íB33íB33íBffíBš™íBš™íBÍÌíBÍÌíB  îB  îB  îB  îB  îB33îB33îBš™îBš™îBš™îBš™îBÍÌîB  ïB33ïBffïBš™ïBš™ïBš™ïBš™ïBÍÌïBÍÌïBÍÌïB  ðB33ðB33ðB33ðB33ðBffðBffðBš™ðBš™ðBÍÌðB  ñB  ñB33ñBffñBffñBÍÌñBÍÌñBÍÌñBÍÌñBÍÌñB  òB  òB33òB33òBš™òBÍÌòBÍÌòBÍÌòB  óB  óB  óB  óB  óB33óBffóBš™óBš™óBš™óB  ôB  ôB33ôBffôBffôBÍÌôBÍÌôBÍÌôBÍÌôBÍÌôBÍÌôB33õB33õB33õB33õB33õB33õBffõBš™õBš™õBÍÌõB  öB  öB33öBfföBfföBš™öBš™öBš™öBš™öBš™öBš™öBÍÌöBÍÌöB33÷Bff÷Bš™÷BÍÌ÷BÍÌ÷BÍÌ÷BÍÌ÷BÍÌ÷BÍÌ÷BÍÌ÷B  øB33øB33øB33øB33øB33øBfføBÍÌøBÍÌøB  ùB  ùBffùBffùBffùBffùBš™ùBš™ùBš™ùBÍÌùBÍÌùB  úB  úB33úBš™úBš™úBš™úBš™úBš™úBÍÌúBÍÌúBÍÌúB  ûB33ûB33ûBš™ûBš™ûBš™ûBš™ûBš™ûB33üB33üB33üBffüBffüBffüBffüBš™üBÍÌüBÍÌüB  ýB  ýB  ýB  ýB  ýB  ýBffýBffýBš™ýBÍÌýB  þB  þB  þBffþBffþBffþBffþBffþBš™þBš™þBš™þBš™þBÍÌþBÍÌþBÍÌþB33ÿB33ÿBš™ÿBš™ÿBš™ÿBš™ÿBÍÌÿB   C   Cš CÍL CÍL CÍL CÍL CÍL CÍL CÍL CÍL CÍL Cff C € Cš™ C3³ C3³ CÍÌ CÍÌ Cfæ Cfæ Cfæ Cfæ C  C  CšC33C33C33CÍLCÍLCÍLCÍLC €Cš™Cš™C3³CÍÌCfæCfæCfæC  C  C  CšCšCšCÍLCÍLCÍLCÍLCÍLCÍLCffCffC €C €C €C3³CÍÌCfæCfæCšCšCšCšCšCšCšC33C33CÍLCÍLCÍLCffCffCffC €Cš™CÍÌC  CšCšCšCšCšCšC33C33C33C33C33CÍLCÍLCÍLC €Cš™Cš™Cš™Cš™Cš™CÍÌCšCšC33C33C33C33C33C33C33C33C33CÍLCÍLC €C €C €Cš™CÍÌCfæC  C  CšC33C33C33C33C33C33C33C33C33CÍLCÍLC €C €Cš™Cš™Cš™C3³CfæCfæC  C  CšCšCšCšCšCšCšC33CÍLCÍLCÍLCffC €C €C €Cš™C3³CÍÌCÍÌCfæCfæC  C  C  C  CšCšCšCšC33CÍLCÍLC €Cš™Cš™Cš™Cš™CÍÌCÍÌCÍÌCfæCfæCfæCfæC  	C  	C  	Cš	C33	CÍL	Cff	Cff	Cff	C €	C €	Cš™	C3³	C3³	C3³	C3³	CÍÌ	CÍÌ	CÍÌ	Cfæ	C  
C  
C  
Cš
Cš
Cš
Cš
CÍL
Cff
C €
Cš™
Cš™
Cš™
Cš™
Cš™
C3³
C3³
C3³
C  C  C  C  C  CšCffCffC €C €C €C €C €Cš™Cš™Cš™C3³C3³CÍÌCÍÌCfæCfæCfæCšC33CÍLCÍLCÍLCÍLCffCffCffC €C €C €C €C3³C3³CfæC  C  C  C  C  C  C  C  CšCÍLCÍLCffCffCffCffC €C €C €C €Cš™Cš™Cš™CÍÌC  C  C  C  C  C  C  CšC33C33CÍLCffCffCffCffCffCffCffCÍÌCÍÌC  C  C  C  CšCšCšC33C33CÍLCÍLCÍLCÍLCÍLC¤type§scatter¤name§Dyna-Q+¡xÈ.à  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;EÙ53ee53c46-38f7-11f0-16c9-2b093684d981/cb4cbc067ea31403„¦layout„¥xaxisƒ¨tickvalsÇ      €?   @¥title¼Number of max Q computations¨ticktext“Ê    ¢1b¢2b¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¥yaxis�¥title�¤text¼RMS error in value estimates¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data–„¡yÇ  €?ó5?   ?ìÑ>óµ>¤type§scatter¤name¥b = 2¡xÇ       ?  €?  À?   @„¡yÇT  €?éÜr?ãº+?Œ7?éÜò>$9Ù>øKÆ>M–·>ãº«>›è¡>š™™>­s’>Œ7Œ>S·†>ÑÐ�>çÓz>éÜr>•œk>.ùd>ÆÝ^>$9Y>¤type§scatter¤name¦b = 10¡xÇT    ÍÌÌ=ÍÌL>š™™>ÍÌÌ>   ?š™?333?ÍÌL?fff?  €?ÍÌŒ?š™™?ff¦?33³?  À?ÍÌÌ?š™Ù?ffæ?33ó?   @„¡yÈ$  €?·~?ª4?‘?·þ>\Óã>³ùÏ><ŒÀ>ª´>ªÏ©>Ø¡>š™™>‘“>œJ�>à&ˆ>‰ƒ>·~>�w>8&p>�¾i>\Óc>ÅU^>$9Y>ÐrT>³ùO>ÿÅK>øÐG>ÁD><Œ@>ê2=>Ó:>sþ6>ª4>¬\1>ù».>Q8,>ªÏ)>0€'>6H%>9&#>Ø!>Í>ñ6>3`>š™>=â>I9>÷�>‘>m�>î>�«>œJ>Áó>w¦
>Ob	>à&>Çó>¨È>,¥>‰>Üs>qe>}] >·þ=õ¿ü=çÓú=éòø=�÷={Põ=KŽó=¦Õñ=8&ð=¯î=½áì=Lë=�¾é=¬8è=\ºæ=UCå=\Óã=8jâ=µá=Ÿ«ß=ÅUÞ=øÝ=¼Û=ÒwÚ=$9Ù=Ùÿ×=ÊËÖ=ÓœÕ=ÐrÔ=ŸMÓ=-Ò=/Ñ=³ùÏ=ŒæÎ=�×Í=ÍÌÌ=ÿÅË=ÃÊ=	ÄÉ=¯ÈÈ=øÐÇ=ÍÜÆ=ìÅ=ÆþÄ=ÁÄ=÷-Ã=TJÂ=ÆiÁ=<ŒÀ=¤±¿=ïÙ¾=¾=ê2½={c¼=±–»=~Ìº=Óº=¢?¹=à|¸=¼·=sþ¶=°B¶=*‰µ=ÖÑ´=ª´=ši³=›¸²=¥	²=¬\±=¨±°=�°=Xa¯=ù»®=k®=¥v­=ŸÖ¬=Q8¬=²›«=¼ «=fgª=ªÏ©=�9©=ã¤¨=Ê¨=0€§=ð¦=\a¦=Ô¥=6H¥=¶½¤=�4¤=½¬£=9&£= ¡¢=
¢=Tš¡=Ø¡=‘˜ =z =�›Ÿ=ÍŸ=-£ž=«(ž=C¯�=ñ6�=±¿œ=~Iœ=VÔ›=3`›=íš=ñzš=Ê	š=š™™=]*™=¼˜=²N˜==â—=®v—=—=7¢–=I9–=4Ñ•=÷i•=Ž•=÷�”=.9”=1Õ“=þq“=‘“=è­’=M’=Ùì‘=m�‘=¼.‘=ÃÐ�=s�=î�=¤type§scatter¤name§b = 100¡xÈ$    
×#<
×£<�Âõ<
×#=ÍÌL=�Âu=)\�=
×£=ìQ¸=ÍÌÌ=®Gá=�Âõ=¸>)\>š™>
×#>{.>ìQ8>\�B>ÍÌL>=
W>®Ga>…k>�Âu>  €>¸…>q=Š>)\�>áz”>š™™>R¸ž>
×£>Ãõ¨>{®>33³>ìQ¸>¤p½>\�Â>®Ç>ÍÌÌ>…ëÑ>=
×>ö(Ü>®Gá>ffæ>…ë>×£ð>�Âõ>Háú>   ?\�?¸?®?q=
?ÍÌ?)\?…ë?áz?=
?š™?ö(?R¸?®G!?
×#?ff&?Ãõ(?…+?{.?×£0?333?�Â5?ìQ8?Há:?¤p=?  @?\�B?¸E?®G?q=J?ÍÌL?)\O?…ëQ?ázT?=
W?š™Y?ö(\?R¸^?®Ga?
×c?fff?Ãõh?…k?{n?×£p?33s?�Âu?ìQx?Ház?¤p}?  €?®G�?\�‚?
×ƒ?¸…?ff†?®‡?Ãõˆ?q=Š?…‹?ÍÌŒ?{Ž?)\�?×£�?…ë‘?33“?áz”?�Â•?=
—?ìQ˜?š™™?Háš?ö(œ?¤p�?R¸ž?   ?®G¡?\�¢?
×£?¸¥?ff¦?®§?Ãõ¨?q=ª?…«?ÍÌ¬?{®?)\¯?×£°?…ë±?33³?áz´?�Âµ?=
·?ìQ¸?š™¹?Háº?ö(¼?¤p½?R¸¾?  À?®GÁ?\�Â?
×Ã?¸Å?ffÆ?®Ç?ÃõÈ?q=Ê?…Ë?ÍÌÌ?{Î?)\Ï?×£Ð?…ëÑ?33Ó?ázÔ?�ÂÕ?=
×?ìQØ?š™Ù?HáÚ?ö(Ü?¤pÝ?R¸Þ?  à?®Gá?\�â?
×ã?¸å?ffæ?®ç?Ãõè?q=ê?…ë?ÍÌì?{î?)\ï?×£ð?…ëñ?33ó?ázô?�Âõ?=
÷?ìQø?š™ù?Háú?ö(ü?¤pý?R¸þ?   @„¡yÈD  €?9ß?Æí4?Nº?9ßÿ>ÝÛä>)ëÐ>ÈkÁ>Æí´>Ñ”ª>àÓ¡>îKš>Nº“>§î�>òÄˆ>¸!„>9ß>v;x>=q>áÍj>ÝÛd>çW_>V5Z>wiU>)ëP>”²L>õ¸H>høD>ÈkA>“>>ËÜ:>èÒ7>Æí4>—*2>×†/>C ->Ñ”*>¨B(>&>¤ã#>àÓ!>Š×>xí>˜>îK>”’>²ç>‚J>Nº>j6>8¾>%Q>§î>=–>pG>Ð
>òÄ>u�>ûc>,?>¸!>P>¬û>†ò >9ßÿ=fåý=÷û=ñú=v;ø=Kmö=©ô=kîò==ñ=””ï=Ãôí=I]ì=áÍê=HFé==Æç=‚Mæ=ÝÛä=qã=øâ=N¯à=çWß=”Þ='»Ü=vuÛ=V5Ú=ŸúØ=+Å×=Ô”Ö=wiÕ=ñBÔ="!Ó=éÒ=)ëÐ=ÂÖÏ=™ÆÎ=“ºÍ=”²Ì=„®Ë=I®Ê=Ì±É=õ¸È=®ÃÇ=âÑÆ=|ãÅ=høÄ=‘Ä=æ+Ã=TJÂ=ÈkÁ=3�À=ƒ·¿=¨á¾=“¾=4>½=|p¼=^¥»=ËÜº=µº=S¹=Ð‘¸=èÒ·=K·=î[¶=Å£µ=Æí´=æ9´=ˆ³=YØ²=—*²=Ì~±=ïÔ°=ö,°=×†¯=‹â®=
@®=JŸ­=C ­=ïb¬=DÇ«==-«=Ñ”ª=ùý©=¯h©=ëÔ¨=¨B¨=Þ±§=‡"§=�”¦=¦=ù|¥=4ó¤=Äj¤=¤ã£=Ð]£=AÙ¢=óU¢=àÓ¡=S¡=[Ó =ÞT =Š×Ÿ=Z[Ÿ=Jàž=Ufž=xí�=­u�=òþœ=A‰œ=˜œ=ñ ›=K.›= ¼š=îKš=1Ü™=em™=‡ÿ˜=”’˜=ˆ&˜=`»—=Q—=²ç–=$–=o–=�°•=‚J•=Då”=Ô€”=-”=Nº“=4X“=Üö’=D–’=j6’=K×‘=äx‘=4‘=8¾�=îa�=S�=f«�=%Q�=Œ÷Ž=›žŽ=OFŽ=§î�=Ÿ—�=7A�=lëŒ==–Œ=¨AŒ=ªí‹=Cš‹=pG‹=0õŠ=�£Š=bRŠ=ÐŠ=Ê±‰=Ob‰=]‰=òÄˆ=wˆ=­)ˆ=ÐÜ‡=u�‡=™D‡==ù†=^®†=ûc†=†=£Ð…=¬‡…=,?…="÷„=Œ¯„=ih„=¸!„=xÛƒ=§•ƒ=EPƒ=Pƒ=ÈÆ‚=ª‚‚=ö>‚=¬û�=É¸�=Mv�=74�=†ò€=8±€=Mp€=Å/€=9ß=©_=×à~=Âb~=få}=Äh}=Øì|=¡q|=÷{=L}{=*{=·‹z=ñz=Õœy=c&y=™°x=v;x=øÆw=Sw=ãßv=Kmv=Qûu=õ‰u=5u=©t=„9t=�Ês=3\s=kîr=8�r=—r=‡¨q==q=Òp=µgp=ßýo=””o=Ô+o=œÃn=ì[n=Ãôm=Žm=ÿ'm=cÂl=I]l=°øk=—”k=ý0k=áÍj=Bkj=	j=w§i=HFi=’åh=T…h=Ž%h==Æg=agg=ùg=«f=‚Mf=qðe=Ð“e= 7e=ÝÛd=‰€d=¢%d=&Ëc=qc=qc=5¾b=ceb=øb=ô´a=W]a= a=N¯`=ßX`=Õ`=-­_=çW_=_=~®^=YZ^=”^=-³]=$`]=w]='»\=3i\=š\=[Æ[=vu[=ê$[=·ÔZ=Û„Z=V5Z=(æY=P—Y=ÍHY=ŸúX=Æ¬X=?_X=X=+ÅW=œxW=^,W=qàV=Ô”V=‡IV=‰þU=Ù³U=wiU=cU=›ÕT= ŒT=ñBT=úS=u±S='iS="!S=gÙR=õ‘R=ËJR=éR=O½Q=üvQ=ï0Q=)ëP=¨¥P=l`P=uP=ÂÖO=S’O=(NO=?
O=™ÆN=5ƒN=@N=3ýM=“ºM=3xM=6M=5ôL=”²L=3qL=0L=+ïK=„®K=nK=í-K=ýíJ=I®J=ÑnJ=”/J=’ðI=Ì±I=?sI=í4I=ÔöH=õ¸H=O{H=á=H=¬ H=®ÃG=é†G=ZJG=G=âÑF=ø•F=DZF=ÅF=|ãE=h¨E=‰mE=Þ2E=høD=%¾D=„D=:JD=‘D=×C=×�C=ÆdC=æ+C=8óB=»ºB=o‚B=TJB=iB=®ÚA=$£A=ÈkA=�4A= ý@=ÒÆ@=3�@=ÂY@=#@=jí?=ƒ·?=É�?=<L?=Ü?=¨á>=¡¬>=Æw>=C>=“>=:Ú==¦==r==4>==‡
==×<=«£<=|p<=w=<=š
<=è×;=^¥;=ür;=Ã@;=³;=ËÜ:=
«:=qy:= H:=µ:=’å9=–´9=Àƒ9=S9=ˆ"9=%ò8=èÁ8=Ð‘8=ßa8=28=j8=èÒ7=Š£7=Pt7=;E7=K7=~ç6=Õ¸6=OŠ6=î[6=¯-6=“ÿ5=›Ñ5=Å£5=v5=�H5=5=Æí4=œÀ4=““4=¬f4=æ94=A4=¾à3=\´3=ˆ3=ù[3=ù/3=3=YØ2=¹¬2=8�2=ØU2=—*2=vÿ1=tÔ1=‘©1=Ì~1='T1=¡)1=9ÿ0=ïÔ0=Äª0=¶€0=ÇV0=ö,0=B0=¬Ù/=3°/=×†/=™]/=x4/=s/=‹â.=À¹.=‘.=€h.=
@.=°.=rï-=PÇ-=JŸ-=_w-=�O-=Ü'-=C -=ÆØ,=c±,=Š,=ïb,=Ý;,=å,=î+=DÇ+=œ +=z+=˜S+==-+=ü+=Ôà*=Æº*=Ñ”*=õn*=3I*=Š#*=ùý)=‚Ø)=#³)=Ý�)=¯h)=šC)=�)=¸ù(=ëÔ(=7°(=š‹(=g(=¨B(=R(=ú'=íÕ'=Þ±'=å�'=j'=:F'=‡"'=êþ&=eÛ&=ö·&=�”&=[q&=/N&=+&=&=1å%=^Â%=¡Ÿ%=ù|%=hZ%=ë7%=…%=4ó$=øÐ$=Ñ®$=ÀŒ$=Äj$=ÜH$=
'$=M$=¤ã#=Â#=‘ #=&#=Ð]#=Ž<#=`#=Fú"=AÙ"=P¸"=r—"=©v"=óU"=Q5"=Â"=Hô!=àÓ!=Œ³!=L“!=s!=S!=þ2!=
!=)ó =[Ó = ³ =÷“ =at =ÞT =m5 = =Äö=Š×=c¸=N™=Kz=Z[={<=®=óþ=Jà=²Á=-£=¸„=Uf=H=Ä)=•=xí=kÏ=p±=†“=­u=åW=.:=‡=òþ=má=øÃ=”¦=A‰=þk=ÌN=©1=˜=–÷=¤Ú=Ã½=ñ =0„=~g=ÝJ=K.=É=Võ=ôØ= ¼=] =(„=h=îK=è/=ñ=	ø=1Ü=gÀ=­¤=‰=em=×Q=X6=è=‡ÿ=4ä=ðÈ=»­=”’={w=q\=uA=ˆ&=©=Øð=Ö=`»=º =!†=—k=Q=«6=J=÷=²ç=zÍ=P³=3™=$=#e=/K=I1=o=¤ý=åã=4Ê=�°=ù–=o}=òc=‚J=1=Ê=�þ=Då=Ì=ó²=Ý™=Ô€=×g=çN=6=-=c=¥ë=óÒ=Nº=µ¡=(‰=¨p=4X=Ì?=p'= =Üö=¤Þ=xÆ=X®=D–=<~=?f=ON=j6=‘=Ã=ï=K×= ¿= ¨=m�=äx=ga=õI=�2=4=ä= ì=fÕ=8¾=§=ý�=ðx=îa=÷J=4=*=S=ˆï=ÇØ=Â=f«=Æ”=0~=¥g=%Q=¯:=D$=ã=Œ÷=Aá=ÿÊ=È´=›ž=yˆ=ar=S\=OF=V0=g=‚=§î=ÖØ=Ã=R­=Ÿ—=ö�=Wl=ÂV=7A=¶+=>=Ð =lë=Ö=ÁÀ=z«==–=
�=ßk=¿V=¨A=š,=–=œ=ªí=ÃØ=äÃ=¯=Cš=�…=Çp=\=pG=Ó2=>=³	=0õ
=·à
=GÌ
=à·
=�£
=,�
=àz
=œf
=bR
=0>
=*
=ç
=Ð
=Áí	=»Ù	=¾Å	=Ê±	=Þ�	=û‰	=!v	=Ob	=†N	=Å:	='	=]	=µÿ=ì=€Ø=òÄ=l±=ï�=zŠ=w=©c=MP=ù<=­)=j=.=ûï=ÐÜ=­É=’¶=£=u�=r}=wj=„W=™D=¶1=Û===ù=yæ=¾Ó=
Á=^®=¹›=‰=ˆv=ûc=uQ=÷>=�,==«=Lõ=ôâ=£Ð=Z¾=¬=ß™=¬‡=�u=^c=AQ=,?=-==	="÷=2å=IÓ=gÁ=Œ¯=¹�=ì‹='z=ih=²V=E=Z3=¸!==Šþ=ýì=xÛ=ùÉ=‚¸=§=§•=D„=ér=“a=EP=þ>=½-=ƒ=P=$ú=þè=à×=ÈÆ=¶µ=«¤=§“=ª‚=³q=Ã`=ÙO=ö>=.=D=u=¬û=éê=-Ú=xÉ=É¸= ¨=~—=â†=Mv=¾e=5U=³D=74=Á#=R=é=†ò =)â =ÒÑ =‚Á =8± =ô  =¶� =€ =Mp ="` =ýO =Þ? =Å/ =² =¥ =;ÿÿ<9ßÿ<C¿ÿ<YŸÿ<{ÿ<©_ÿ<ã?ÿ<) ÿ<z ÿ<×àþ<@Áþ<µ¡þ<6‚þ<Âbþ<YCþ<ý#þ<¬þ<fåý<,Æý<þ¦ý<Û‡ý<Ähý<¸Iý<·*ý<Âý<Øìü<ùÍü<&¯ü<^�ü<¡qü<ïRü<I4ü<®ü<÷û<™Øû<ºû<°›û<L}û<ó^û<¥@û<b"û<*û<ýåú<ÛÇú<Ä©ú<·‹ú<µmú<¾Oú<Ò1ú<ñú<öù<NØù<Œºù<Õœù<)ù<‡aù<ðCù<c&ù<áù<jëø<üÍø<™°ø<A“ø<óuø<¯Xø<v;ø<Gø<"ø<ä÷<øÆ÷<ò©÷<öŒ÷<p÷<S÷<?6÷<l÷<£üö<ãßö<.Ãö<ƒ¦ö<â‰ö<Kmö<½Pö<:4ö<Áö<Qûõ<ëÞõ<�Âõ<=¦õ<õ‰õ<¶mõ<‚Qõ<V5õ<5õ<ýô<áô<Åô<©ô<�ô<7qô<YUô<„9ô<¹ô<÷ô<?æó<�Êó<ë®ó<O“ó<¼wó<3\ó<³@ó<=%ó<Ï	ó<kîò<Óò<¿·ò<wœò<8�ò<fò<ÕJò<±/ò<—ò<…ùñ<}Þñ<~Ãñ<‡¨ñ<š�ñ<¶rñ<ÚWñ<=ñ<?"ñ<~ñ<Çìð<Òð<r·ð<Õœð<A‚ð<µgð<3Mð<¹2ð<Hð<ßýï<ãï<(Éï<Ú®ï<””ï<Wzï<#`ï<÷Eï<Ô+ï<¹ï<§÷î<�Ýî<œÃî<£©î<³�î<Ëuî<ì[î<Bî<G(î<�î<Ãôí<Ûí<`Áí<»§í<Ží<‹tí<ÿZí<{Aí<ÿ'í<Œí<!õì<¾Ûì<cÂì<©ì<Æ�ì<„vì<I]ì<Dì<í*ì<Ëì<°øë<žßë<”Æë<’­ë<—”ë<¥{ë<»bë<ØIë<ý0ë<+ë<`ÿê<�æê<áÍê<.µê<‚œê<Þƒê<Bkê<®Rê<!:ê<œ!ê<	ê<©ðé<;Øé<Õ¿é<w§é< �é<Ðvé<ˆ^é<HFé<.é<Þé<´ýè<’åè<xÍè<dµè<Y�è<T…è<Xmè<bUè<t=è<Ž%è<®è<Öõç<Þç<=Æç<{®ç<À–ç<ç<agç<¼Oç<8ç<ˆ ç<ùç<qñæ<ðÙæ<wÂæ<«æ<™“æ<5|æ<Ødæ<‚Mæ<36æ<ëæ<«æ<qðå<>Ùå<Âå<îªå<Ð“å<º|å<ªeå<¡Nå< 7å<¥ å<±	å<Äòä<ÝÛä<þÄä<%®ä<T—ä<‰€ä<Åiä<Sä<Q<ä<¢%ä<ùä<Wøã<»áã<&Ëã<˜´ã<žã<�‡ã<qã<£Zã<7Dã<Ð-ã<qã<ã<Æêâ<zÔâ<5¾â<÷§â<¿‘â<�{â<ceâ<>Oâ< 9â<	#â<øâ<íöá<éàá<ëÊá<ô´á<Ÿá<‰á<5sá<W]á<€Gá<¯1á<äá< á<bðà<ªÚà<ùÄà<N¯à<©™à<
„à<rnà<ßXà<SCà<Î-à<Nà<Õà<bíß<ô×ß<ŽÂß<-­ß<Ò—ß<~‚ß</mß<çWß<¤Bß<h-ß<2ß<ß<ØíÞ<´ØÞ<–ÃÞ<~®Þ<l™Þ<_„Þ<YoÞ<YZÞ<_EÞ<k0Þ<|Þ<”Þ<±ñÝ<ÕÜÝ<þÇÝ<-³Ý<bžÝ<�‰Ý<ÝtÝ<$`Ý<pKÝ<Â6Ý<"Ý<wÝ<ÛøÜ<DäÜ<³ÏÜ<'»Ü<¢¦Ü<"’Ü<¨}Ü<3iÜ<ÄTÜ<[@Ü<ø+Ü<šÜ<BÜ<ïîÛ<£ÚÛ<[ÆÛ<²Û<Þ�Û<§‰Û<vuÛ<KaÛ<%MÛ<9Û<ê$Û<ÕÛ<ÅüÚ<»èÚ<·ÔÚ<·ÀÚ<¾¬Ú<Ê˜Ú<Û„Ú<òpÚ<]Ú</IÚ<V5Ú<ƒ!Ú<´Ú<ìùÙ<(æÙ<jÒÙ<±¾Ù<þªÙ<P—Ù<§ƒÙ<pÙ<f\Ù<ÍHÙ<:5Ù<¬!Ù<#Ù<ŸúØ<!çØ<¨ÓØ<4ÀØ<Æ¬Ø<\™Ø<ø…Ø<™rØ<?_Ø<ëKØ<›8Ø<Q%Ø<Ø<Ìþ×<‘ë×<\Ø×<+Å×< ²×<Ùž×<¸‹×<œx×<…e×<sR×<f?×<^,×<[×<^×<eóÖ<qàÖ<‚ÍÖ<™ºÖ<´§Ö<Ô”Ö<ù�Ö<$oÖ<S\Ö<‡IÖ<À6Ö<þ#Ö<AÖ<‰þÕ<ÕëÕ<'ÙÕ<}ÆÕ<Ù³Õ<9¡Õ<žŽÕ<|Õ<wiÕ<ëVÕ<cDÕ<á1Õ<cÕ<êÕ<vúÔ<èÔ<›ÕÔ<6ÃÔ<Ô°Ô<xžÔ< ŒÔ<ÎyÔ<€gÔ<6UÔ<ñBÔ<±0Ô<vÔ<@Ô<úÓ<áçÓ<¸ÕÓ<”ÃÓ<u±Ó<ZŸÓ<E�Ó<3{Ó<'iÓ<WÓ<EÓ<3Ó<"!Ó<-Ó<;ýÒ<OëÒ<gÙÒ<„ÇÒ<¥µÒ<Ë£Ò<õ‘Ò<$€Ò<WnÒ<�\Ò<ËJÒ<9Ò<Q'Ò<›Ò<éÒ<<òÑ<“àÑ<ïÎÑ<O½Ñ<´«Ñ<šÑ<ŠˆÑ<üvÑ<reÑ<íSÑ<lBÑ<ï0Ñ<wÑ<Ñ<”üÐ<)ëÐ<ÂÙÐ<_ÈÐ<·Ð<¨¥Ð<R”Ð<ƒÐ<´qÐ<l`Ð<(OÐ<è=Ð<¬,Ð<uÐ<B
Ð<ùÏ<èçÏ<ÂÖÏ< ÅÏ<‚´Ï<h£Ï<S’Ï<B�Ï<5pÏ<,_Ï<(NÏ<'=Ï<+,Ï<3Ï<?
Ï<OùÎ<dèÎ<|×Î<™ÆÎ<ºµÎ<ß¤Î<”Î<5ƒÎ<grÎ<œaÎ<ÖPÎ<@Î<U/Î<›Î<åÎ<3ýÍ<…ìÍ<ÛÛÍ<5ËÍ<“ºÍ<õ©Í<[™Í<ÅˆÍ<3xÍ<¦gÍ<WÍ<–FÍ<6Í<–%Í<Í<§Í<5ôÌ<ÇãÌ<]ÓÌ<öÂÌ<”²Ì<6¢Ì<Ü‘Ì<…�Ì<3qÌ<ä`Ì<šPÌ<S@Ì<0Ì<ÑÌ<–Ì<^ÿË<+ïË<ûÞË<ÐÎË<¨¾Ë<„®Ë<džË<GŽË</~Ë<nË<	^Ë<üMË<ó=Ë<í-Ë<ëË<îË<óýÊ<ýíÊ<
ÞÊ<ÎÊ<0¾Ê<I®Ê<ežÊ<…ŽÊ<©~Ê<ÑnÊ<ü^Ê<+OÊ<^?Ê<”/Ê<ÎÊ<Ê<M Ê<’ðÉ<ÛàÉ<(ÑÉ<xÁÉ<Ì±É<#¢É<~’É<Ý‚É<?sÉ<¥cÉ<TÉ<|DÉ<í4É<a%É<ÙÉ<UÉ<ÔöÈ<WçÈ<Ý×È<gÈÈ<õ¸È<†©È<šÈ<³ŠÈ<O{È<îkÈ<‘\È<7MÈ<á=È<Ž.È<?È<ôÈ<¬ È<gñÇ<&âÇ<èÒÇ<®ÃÇ<x´Ç<D¥Ç<–Ç<é†Ç<ÀwÇ<›hÇ<yYÇ<ZJÇ<?;Ç<(,Ç<Ç<Ç<öþÆ<ìïÆ<åàÆ<âÑÆ<ãÂÆ<æ³Æ<î¤Æ<ø•Æ<‡Æ<xÆ<,iÆ<DZÆ<_KÆ<~<Æ< -Æ<ÅÆ<îÆ<Æ<JòÅ<|ãÅ<²ÔÅ<ìÅÅ<(·Å<h¨Å<«™Å<òŠÅ<<|Å<‰mÅ<Ù^Å<-PÅ<„AÅ<Þ2Å<<$Å<�Å< Å<høÄ<ÒéÄ<@ÛÄ<±ÌÄ<%¾Ä<œ¯Ä<¡Ä<•’Ä<„Ä<šuÄ<"gÄ<¬XÄ<:JÄ<Ë;Ä<_-Ä<÷Ä<‘Ä</Ä<ÐóÃ<tåÃ<×Ã<ÆÈÃ<sºÃ<$¬Ã<×�Ã<Ž�Ã<H�Ã<sÃ<ÆdÃ<‰VÃ<PHÃ<:Ã<æ+Ã<¶Ã<‰Ã<_Ã<8óÂ<åÂ<óÖÂ<ÖÈÂ<»ºÂ<£¬Â<�žÂ<}�Â<o‚Â<dtÂ<[fÂ<VXÂ<TJÂ<T<Â<X.Â<_ Â<iÂ<vÂ<†öÁ<˜èÁ<®ÚÁ<ÇÌÁ<ã¾Á<±Á<$£Á<H•Á<p‡Á<›yÁ<ÈkÁ<ù]Á<-PÁ<cBÁ<�4Á<Ù&Á<Á<[Á< ýÀ<èïÀ<3âÀ<�ÔÀ<ÒÆÀ<&¹À<}«À<×�À<3�À<“‚À<õtÀ<ZgÀ<ÂYÀ<-LÀ<›>À<1À<#À<öÀ<oÀ<ëú¿<jí¿<ìß¿<qÒ¿<ùÄ¿<ƒ·¿<ª¿< œ¿<3�¿<É�¿<bt¿<ýf¿<›Y¿<<L¿<à>¿<†1¿<0$¿<Ü¿<‹	¿<<ü¾<ñî¾<¨á¾<bÔ¾<Ç¾<ß¹¾<¡¬¾<fŸ¾<.’¾<ø„¾<Æw¾<–j¾<i]¾<>P¾<C¾<ñ5¾<Ï(¾<°¾<“¾<y¾<aô½<Lç½<:Ú½<+Í½<À½<³½<¦½<	™½<Œ½<½<r½<e½<X½<%K½<4>½<D1½<X$½<n½<‡
½<¢ý¼<Àð¼<àã¼<×¼<*Ê¼<R½¼<}°¼<«£¼<Û–¼<Š¼<D}¼<|p¼<·c¼<ôV¼<4J¼<w=¼<¼0¼<$¼<N¼<š
¼<êý»<<ñ»<�ä»<è×»<AË»<�¾»<ü±»<^¥»<Á˜»<(Œ»<‘»<ür»<jf»<ÛY»<NM»<Ã@»<<4»<¶'»<3»<³»<5»<ºõº<Aéº<ËÜº<WÐº<åÃº<v·º<
«º< žº<9’º<Ô…º<qyº<mº<³`º<XTº< Hº<©;º<V/º<#º<µº<i
º<þ¹<×ñ¹<’å¹<OÙ¹<Í¹<ÑÀ¹<–´¹<]¨¹<&œ¹<ò�¹<Àƒ¹<‘w¹<dk¹<9_¹<S¹<ëF¹<È:¹<§.¹<ˆ"¹<l¹<R
¹<:þ¸<%ò¸<æ¸<Ú¸<ôÍ¸<èÁ¸<Þµ¸<×©¸<Ó�¸<Ð‘¸<Ð…¸<Óy¸<Øm¸<ßa¸<èU¸<ôI¸<>¸<2¸<%&¸<9¸<Q¸<j¸<†ö·<¤ê·<ÅÞ·<èÒ·<Ç·<4»·<^¯·<Š£·<¸—·<é‹·<€·<Pt·<ˆh·<Á\·<ýP·<;E·<|9·<¿-·<"·<K·<¤type§scatter¤name¨b = 1000¡xÈD    oƒ:o;¦›D;oƒ;
×£;¦›Ä;B`å;o<¼t<
×#<X94<¦›D<ôýT<B`e<�Âu<oƒ<–C‹<¼t“<ã¥›<
×£<1¬<X9´<j¼<¦›Ä<ÍÌÌ<ôýÔ</Ý<B`å<h‘í<�Âõ<¶óý<o=+=–C=)\=¼t=P�=ã¥=w¾=
×#=žï'=1,=Å 0=X94=ìQ8=j<=ƒ@=¦›D=9´H=ÍÌL=`åP=ôýT=‡Y=/]=®Ga=B`e=Õxi=h‘m=ü©q=�Âu=#Ûy=¶ó}=%�=oƒ=¸…=+‡=L7‰=–C‹=ßO�=)\�=sh‘=¼t“=�•=P�—=š™™=ã¥›=-²�=w¾Ÿ=ÁÊ¡=
×£=Tã¥=žï§=çû©=1¬={®=Å °=-²=X9´=¢E¶=ìQ¸=5^º=j¼=Év¾=ƒÀ=\�Â=¦›Ä=ð§Æ=9´È=ƒÀÊ=ÍÌÌ=ÙÎ=`åÐ=ªñÒ=ôýÔ==
×=‡Ù=Ñ"Û=/Ý=d;ß=®Gá=øSã=B`å=‹lç=Õxé=…ë=h‘í=²�ï=ü©ñ=F¶ó=�Âõ=ÙÎ÷=#Ûù=mçû=¶óý=   >%>J>o>“>¸>Ý$>+>'1>L7	>q=
>–C>ºI>ßO>V>)\>Nb>sh>˜n>¼t>áz>�>+‡>P�>u“>š™>¾Ÿ>ã¥>¬>-²>R¸>w¾>œÄ >ÁÊ!>åÐ">
×#>/Ý$>Tã%>yé&>žï'>Ãõ(>çû)>+>1,>V->{.> />Å 0>é&1>-2>333>X94>}?5>¢E6>ÇK7>ìQ8>X9>5^:>Zd;>j<>¤p=>Év>>î|?>ƒ@>7‰A>\�B>�•C>¦›D>Ë¡E>ð§F>®G>9´H>^ºI>ƒÀJ>¨ÆK>ÍÌL>òÒM>ÙN>;ßO>`åP>…ëQ>ªñR>Ï÷S>ôýT>V>=
W>bX>‡Y>¬Z>Ñ"[>ö(\>/]>?5^>d;_>‰A`>®Ga>ÓMb>øSc>Zd>B`e>fff>‹lg>°rh>Õxi>ú~j>…k>D‹l>h‘m>�—n>²�o>×£p>ü©q>!°r>F¶s>j¼t>�Âu>´Èv>ÙÎw>þÔx>#Ûy>Ház>mç{>‘í|>¶ó}>Ûù~>  €>ƒ€>%�>7‰�>J‚>\�‚>oƒ>�•ƒ>“„>¦›„>¸…>Ë¡…>Ý$†>ð§†>+‡>®‡>'1ˆ>9´ˆ>L7‰>^º‰>q=Š>ƒÀŠ>–C‹>¨Æ‹>ºIŒ>ÍÌŒ>ßO�>òÒ�>VŽ>ÙŽ>)\�>;ß�>Nb�>`å�>sh‘>…ë‘>˜n’>ªñ’>¼t“>Ï÷“>áz”>ôý”>�•>–>+‡–>=
—>P�—>b˜>u“˜>‡™>š™™>¬š>¾Ÿš>Ñ"›>ã¥›>ö(œ>¬œ>/�>-²�>?5ž>R¸ž>d;Ÿ>w¾Ÿ>‰A >œÄ >®G¡>ÁÊ¡>ÓM¢>åÐ¢>øS£>
×£>Z¤>/Ý¤>B`¥>Tã¥>ff¦>yé¦>‹l§>žï§>°r¨>Ãõ¨>Õx©>çû©>ú~ª>«>…«>1¬>D‹¬>V­>h‘­>{®>�—®> ¯>²�¯>Å °>×£°>é&±>ü©±>-²>!°²>33³>F¶³>X9´>j¼´>}?µ>�Âµ>¢E¶>´È¶>ÇK·>ÙÎ·>ìQ¸>þÔ¸>X¹>#Û¹>5^º>Háº>Zd»>mç»>j¼>‘í¼>¤p½>¶ó½>Év¾>Ûù¾>î|¿>  À>ƒÀ>%Á>7‰Á>JÂ>\�Â>oÃ>�•Ã>“Ä>¦›Ä>¸Å>Ë¡Å>Ý$Æ>ð§Æ>+Ç>®Ç>'1È>9´È>L7É>^ºÉ>q=Ê>ƒÀÊ>–CË>¨ÆË>ºIÌ>ÍÌÌ>ßOÍ>òÒÍ>VÎ>ÙÎ>)\Ï>;ßÏ>NbÐ>`åÐ>shÑ>…ëÑ>˜nÒ>ªñÒ>¼tÓ>Ï÷Ó>ázÔ>ôýÔ>�Õ>Ö>+‡Ö>=
×>P�×>bØ>u“Ø>‡Ù>š™Ù>¬Ú>¾ŸÚ>Ñ"Û>ã¥Û>ö(Ü>¬Ü>/Ý>-²Ý>?5Þ>R¸Þ>d;ß>w¾ß>‰Aà>œÄà>®Gá>ÁÊá>ÓMâ>åÐâ>øSã>
×ã>Zä>/Ýä>B`å>Tãå>ffæ>yéæ>‹lç>žïç>°rè>Ãõè>Õxé>çûé>ú~ê>ë>…ë>1ì>D‹ì>Ví>h‘í>{î>�—î> ï>²�ï>Å ð>×£ð>é&ñ>ü©ñ>-ò>!°ò>33ó>F¶ó>X9ô>j¼ô>}?õ>�Âõ>¢Eö>´Èö>ÇK÷>ÙÎ÷>ìQø>þÔø>Xù>#Ûù>5^ú>Háú>Zdû>mçû>jü>‘íü>¤pý>¶óý>Évþ>Ûùþ>î|ÿ>   ?‰A ?ƒ ?œÄ ?%?®G?7‰?ÁÊ?J?ÓM?\�?åÐ?o?øS?�•?
×?“?Z?¦›?/Ý?¸?B`?Ë¡?Tã?Ý$?ff?ð§?yé?+?‹l?®?žï?'1?°r?9´?Ãõ?L7	?Õx	?^º	?çû	?q=
?ú~
?ƒÀ
??–C?…?¨Æ?1?ºI?D‹?ÍÌ?V?ßO?h‘?òÒ?{?V?�—?Ù? ?)\?²�?;ß?Å ?Nb?×£?`å?é&?sh?ü©?…ë?-?˜n?!°?ªñ?33?¼t?F¶?Ï÷?X9?áz?j¼?ôý?}??�?�Â??¢E?+‡?´È?=
?ÇK?P�?ÙÎ?b?ìQ?u“?þÔ?‡?X?š™?#Û?¬?5^?¾Ÿ?Há?Ñ"?Zd?ã¥?mç?ö(?j?¬?‘í?/?¤p?-²?¶ó??5?Év?R¸?Ûù?d;?î|?w¾?   ?‰A ?ƒ ?œÄ ?%!?®G!?7‰!?ÁÊ!?J"?ÓM"?\�"?åÐ"?o#?øS#?�•#?
×#?“$?Z$?¦›$?/Ý$?¸%?B`%?Ë¡%?Tã%?Ý$&?ff&?ð§&?yé&?+'?‹l'?®'?žï'?'1(?°r(?9´(?Ãõ(?L7)?Õx)?^º)?çû)?q=*?ú~*?ƒÀ*?+?–C+?…+?¨Æ+?1,?ºI,?D‹,?ÍÌ,?V-?ßO-?h‘-?òÒ-?{.?V.?�—.?Ù.? /?)\/?²�/?;ß/?Å 0?Nb0?×£0?`å0?é&1?sh1?ü©1?…ë1?-2?˜n2?!°2?ªñ2?333?¼t3?F¶3?Ï÷3?X94?áz4?j¼4?ôý4?}?5?�5?�Â5?6?¢E6?+‡6?´È6?=
7?ÇK7?P�7?ÙÎ7?b8?ìQ8?u“8?þÔ8?‡9?X9?š™9?#Û9?¬:?5^:?¾Ÿ:?Há:?Ñ";?Zd;?ã¥;?mç;?ö(<?j<?¬<?‘í<?/=?¤p=?-²=?¶ó=??5>?Év>?R¸>?Ûù>?d;??î|??w¾??  @?‰A@?ƒ@?œÄ@?%A?®GA?7‰A?ÁÊA?JB?ÓMB?\�B?åÐB?oC?øSC?�•C?
×C?“D?ZD?¦›D?/ÝD?¸E?B`E?Ë¡E?TãE?Ý$F?ffF?ð§F?yéF?+G?‹lG?®G?žïG?'1H?°rH?9´H?ÃõH?L7I?ÕxI?^ºI?çûI?q=J?ú~J?ƒÀJ?K?–CK?…K?¨ÆK?1L?ºIL?D‹L?ÍÌL?VM?ßOM?h‘M?òÒM?{N?VN?�—N?ÙN? O?)\O?²�O?;ßO?Å P?NbP?×£P?`åP?é&Q?shQ?ü©Q?…ëQ?-R?˜nR?!°R?ªñR?33S?¼tS?F¶S?Ï÷S?X9T?ázT?j¼T?ôýT?}?U?�U?�ÂU?V?¢EV?+‡V?´ÈV?=
W?ÇKW?P�W?ÙÎW?bX?ìQX?u“X?þÔX?‡Y?XY?š™Y?#ÛY?¬Z?5^Z?¾ŸZ?HáZ?Ñ"[?Zd[?ã¥[?mç[?ö(\?j\?¬\?‘í\?/]?¤p]?-²]?¶ó]??5^?Év^?R¸^?Ûù^?d;_?î|_?w¾_?  `?‰A`?ƒ`?œÄ`?%a?®Ga?7‰a?ÁÊa?Jb?ÓMb?\�b?åÐb?oc?øSc?�•c?
×c?“d?Zd?¦›d?/Ýd?¸e?B`e?Ë¡e?Tãe?Ý$f?fff?ð§f?yéf?+g?‹lg?®g?žïg?'1h?°rh?9´h?Ãõh?L7i?Õxi?^ºi?çûi?q=j?ú~j?ƒÀj?k?–Ck?…k?¨Æk?1l?ºIl?D‹l?ÍÌl?Vm?ßOm?h‘m?òÒm?{n?Vn?�—n?Ùn? o?)\o?²�o?;ßo?Å p?Nbp?×£p?`åp?é&q?shq?ü©q?…ëq?-r?˜nr?!°r?ªñr?33s?¼ts?F¶s?Ï÷s?X9t?ázt?j¼t?ôýt?}?u?�u?�Âu?v?¢Ev?+‡v?´Èv?=
w?ÇKw?P�w?ÙÎw?bx?ìQx?u“x?þÔx?‡y?Xy?š™y?#Ûy?¬z?5^z?¾Ÿz?Ház?Ñ"{?Zd{?ã¥{?mç{?ö(|?j|?¬|?‘í|?/}?¤p}?-²}?¶ó}??5~?Év~?R¸~?Ûù~?d;?î|?w¾?  €?Å €?‰A€?Nb€?ƒ€?×£€?œÄ€?`å€?%�?é&�?®G�?sh�?7‰�?ü©�?ÁÊ�?…ë�?J‚?-‚?ÓM‚?˜n‚?\�‚?!°‚?åÐ‚?ªñ‚?oƒ?33ƒ?øSƒ?¼tƒ?�•ƒ?F¶ƒ?
×ƒ?Ï÷ƒ?“„?X9„?Z„?áz„?¦›„?j¼„?/Ý„?ôý„?¸…?}?…?B`…?�…?Ë¡…?�Â…?Tã…?†?Ý$†?¢E†?ff†?+‡†?ð§†?´È†?yé†?=
‡?+‡?ÇK‡?‹l‡?P�‡?®‡?ÙÎ‡?žï‡?bˆ?'1ˆ?ìQˆ?°rˆ?u“ˆ?9´ˆ?þÔˆ?Ãõˆ?‡‰?L7‰?X‰?Õx‰?š™‰?^º‰?#Û‰?çû‰?¬Š?q=Š?5^Š?ú~Š?¾ŸŠ?ƒÀŠ?HáŠ?‹?Ñ"‹?–C‹?Zd‹?…‹?ã¥‹?¨Æ‹?mç‹?1Œ?ö(Œ?ºIŒ?jŒ?D‹Œ?¬Œ?ÍÌŒ?‘íŒ?V�?/�?ßO�?¤p�?h‘�?-²�?òÒ�?¶ó�?{Ž??5Ž?VŽ?ÉvŽ?�—Ž?R¸Ž?ÙŽ?ÛùŽ? �?d;�?)\�?î|�?²��?w¾�?;ß�?  �?Å �?‰A�?Nb�?ƒ�?×£�?œÄ�?`å�?%‘?é&‘?®G‘?sh‘?7‰‘?ü©‘?ÁÊ‘?…ë‘?J’?-’?ÓM’?˜n’?\�’?!°’?åÐ’?ªñ’?o“?33“?øS“?¼t“?�•“?F¶“?
×“?Ï÷“?“”?X9”?Z”?áz”?¦›”?j¼”?/Ý”?ôý”?¸•?}?•?B`•?�•?Ë¡•?�Â•?Tã•?–?Ý$–?¢E–?ff–?+‡–?ð§–?´È–?yé–?=
—?+—?ÇK—?‹l—?P�—?®—?ÙÎ—?žï—?b˜?'1˜?ìQ˜?°r˜?u“˜?9´˜?þÔ˜?Ãõ˜?‡™?L7™?X™?Õx™?š™™?^º™?#Û™?çû™?¬š?q=š?5^š?ú~š?¾Ÿš?ƒÀš?Háš?›?Ñ"›?–C›?Zd›?…›?ã¥›?¨Æ›?mç›?1œ?ö(œ?ºIœ?jœ?D‹œ?¬œ?ÍÌœ?‘íœ?V�?/�?ßO�?¤p�?h‘�?-²�?òÒ�?¶ó�?{ž??5ž?Vž?Évž?�—ž?R¸ž?Ùž?Ûùž? Ÿ?d;Ÿ?)\Ÿ?î|Ÿ?²�Ÿ?w¾Ÿ?;ßŸ?   ?Å  ?‰A ?Nb ?ƒ ?×£ ?œÄ ?`å ?%¡?é&¡?®G¡?sh¡?7‰¡?ü©¡?ÁÊ¡?…ë¡?J¢?-¢?ÓM¢?˜n¢?\�¢?!°¢?åÐ¢?ªñ¢?o£?33£?øS£?¼t£?�•£?F¶£?
×£?Ï÷£?“¤?X9¤?Z¤?áz¤?¦›¤?j¼¤?/Ý¤?ôý¤?¸¥?}?¥?B`¥?�¥?Ë¡¥?�Â¥?Tã¥?¦?Ý$¦?¢E¦?ff¦?+‡¦?ð§¦?´È¦?yé¦?=
§?+§?ÇK§?‹l§?P�§?®§?ÙÎ§?žï§?b¨?'1¨?ìQ¨?°r¨?u“¨?9´¨?þÔ¨?Ãõ¨?‡©?L7©?X©?Õx©?š™©?^º©?#Û©?çû©?¬ª?q=ª?5^ª?ú~ª?¾Ÿª?ƒÀª?Háª?«?Ñ"«?–C«?Zd«?…«?ã¥«?¨Æ«?mç«?1¬?ö(¬?ºI¬?j¬?D‹¬?¬¬?ÍÌ¬?‘í¬?V­?/­?ßO­?¤p­?h‘­?-²­?òÒ­?¶ó­?{®??5®?V®?Év®?�—®?R¸®?Ù®?Ûù®? ¯?d;¯?)\¯?î|¯?²�¯?w¾¯?;ß¯?  °?Å °?‰A°?Nb°?ƒ°?×£°?œÄ°?`å°?%±?é&±?®G±?sh±?7‰±?ü©±?ÁÊ±?…ë±?J²?-²?ÓM²?˜n²?\�²?!°²?åÐ²?ªñ²?o³?33³?øS³?¼t³?�•³?F¶³?
×³?Ï÷³?“´?X9´?Z´?áz´?¦›´?j¼´?/Ý´?ôý´?¸µ?}?µ?B`µ?�µ?Ë¡µ?�Âµ?Tãµ?¶?Ý$¶?¢E¶?ff¶?+‡¶?ð§¶?´È¶?yé¶?=
·?+·?ÇK·?‹l·?P�·?®·?ÙÎ·?žï·?b¸?'1¸?ìQ¸?°r¸?u“¸?9´¸?þÔ¸?Ãõ¸?‡¹?L7¹?X¹?Õx¹?š™¹?^º¹?#Û¹?çû¹?¬º?q=º?5^º?ú~º?¾Ÿº?ƒÀº?Háº?»?Ñ"»?–C»?Zd»?…»?ã¥»?¨Æ»?mç»?1¼?ö(¼?ºI¼?j¼?D‹¼?¬¼?ÍÌ¼?‘í¼?V½?/½?ßO½?¤p½?h‘½?-²½?òÒ½?¶ó½?{¾??5¾?V¾?Év¾?�—¾?R¸¾?Ù¾?Ûù¾? ¿?d;¿?)\¿?î|¿?²�¿?w¾¿?;ß¿?  À?Å À?‰AÀ?NbÀ?ƒÀ?×£À?œÄÀ?`åÀ?%Á?é&Á?®GÁ?shÁ?7‰Á?ü©Á?ÁÊÁ?…ëÁ?JÂ?-Â?ÓMÂ?˜nÂ?\�Â?!°Â?åÐÂ?ªñÂ?oÃ?33Ã?øSÃ?¼tÃ?�•Ã?F¶Ã?
×Ã?Ï÷Ã?“Ä?X9Ä?ZÄ?ázÄ?¦›Ä?j¼Ä?/ÝÄ?ôýÄ?¸Å?}?Å?B`Å?�Å?Ë¡Å?�ÂÅ?TãÅ?Æ?Ý$Æ?¢EÆ?ffÆ?+‡Æ?ð§Æ?´ÈÆ?yéÆ?=
Ç?+Ç?ÇKÇ?‹lÇ?P�Ç?®Ç?ÙÎÇ?žïÇ?bÈ?'1È?ìQÈ?°rÈ?u“È?9´È?þÔÈ?ÃõÈ?‡É?L7É?XÉ?ÕxÉ?š™É?^ºÉ?#ÛÉ?çûÉ?¬Ê?q=Ê?5^Ê?ú~Ê?¾ŸÊ?ƒÀÊ?HáÊ?Ë?Ñ"Ë?–CË?ZdË?…Ë?ã¥Ë?¨ÆË?mçË?1Ì?ö(Ì?ºIÌ?jÌ?D‹Ì?¬Ì?ÍÌÌ?‘íÌ?VÍ?/Í?ßOÍ?¤pÍ?h‘Í?-²Í?òÒÍ?¶óÍ?{Î??5Î?VÎ?ÉvÎ?�—Î?R¸Î?ÙÎ?ÛùÎ? Ï?d;Ï?)\Ï?î|Ï?²�Ï?w¾Ï?;ßÏ?  Ð?Å Ð?‰AÐ?NbÐ?ƒÐ?×£Ð?œÄÐ?`åÐ?%Ñ?é&Ñ?®GÑ?shÑ?7‰Ñ?ü©Ñ?ÁÊÑ?…ëÑ?JÒ?-Ò?ÓMÒ?˜nÒ?\�Ò?!°Ò?åÐÒ?ªñÒ?oÓ?33Ó?øSÓ?¼tÓ?�•Ó?F¶Ó?
×Ó?Ï÷Ó?“Ô?X9Ô?ZÔ?ázÔ?¦›Ô?j¼Ô?/ÝÔ?ôýÔ?¸Õ?}?Õ?B`Õ?�Õ?Ë¡Õ?�ÂÕ?TãÕ?Ö?Ý$Ö?¢EÖ?ffÖ?+‡Ö?ð§Ö?´ÈÖ?yéÖ?=
×?+×?ÇK×?‹l×?P�×?®×?ÙÎ×?žï×?bØ?'1Ø?ìQØ?°rØ?u“Ø?9´Ø?þÔØ?ÃõØ?‡Ù?L7Ù?XÙ?ÕxÙ?š™Ù?^ºÙ?#ÛÙ?çûÙ?¬Ú?q=Ú?5^Ú?ú~Ú?¾ŸÚ?ƒÀÚ?HáÚ?Û?Ñ"Û?–CÛ?ZdÛ?…Û?ã¥Û?¨ÆÛ?mçÛ?1Ü?ö(Ü?ºIÜ?jÜ?D‹Ü?¬Ü?ÍÌÜ?‘íÜ?VÝ?/Ý?ßOÝ?¤pÝ?h‘Ý?-²Ý?òÒÝ?¶óÝ?{Þ??5Þ?VÞ?ÉvÞ?�—Þ?R¸Þ?ÙÞ?ÛùÞ? ß?d;ß?)\ß?î|ß?²�ß?w¾ß?;ßß?  à?Å à?‰Aà?Nbà?ƒà?×£à?œÄà?`åà?%á?é&á?®Gá?shá?7‰á?ü©á?ÁÊá?…ëá?Jâ?-â?ÓMâ?˜nâ?\�â?!°â?åÐâ?ªñâ?oã?33ã?øSã?¼tã?�•ã?F¶ã?
×ã?Ï÷ã?“ä?X9ä?Zä?ázä?¦›ä?j¼ä?/Ýä?ôýä?¸å?}?å?B`å?�å?Ë¡å?�Âå?Tãå?æ?Ý$æ?¢Eæ?ffæ?+‡æ?ð§æ?´Èæ?yéæ?=
ç?+ç?ÇKç?‹lç?P�ç?®ç?ÙÎç?žïç?bè?'1è?ìQè?°rè?u“è?9´è?þÔè?Ãõè?‡é?L7é?Xé?Õxé?š™é?^ºé?#Ûé?çûé?¬ê?q=ê?5^ê?ú~ê?¾Ÿê?ƒÀê?Háê?ë?Ñ"ë?–Cë?Zdë?…ë?ã¥ë?¨Æë?mçë?1ì?ö(ì?ºIì?jì?D‹ì?¬ì?ÍÌì?‘íì?Ví?/í?ßOí?¤pí?h‘í?-²í?òÒí?¶óí?{î??5î?Vî?Évî?�—î?R¸î?Ùî?Ûùî? ï?d;ï?)\ï?î|ï?²�ï?w¾ï?;ßï?  ð?Å ð?‰Að?Nbð?ƒð?×£ð?œÄð?`åð?%ñ?é&ñ?®Gñ?shñ?7‰ñ?ü©ñ?ÁÊñ?…ëñ?Jò?-ò?ÓMò?˜nò?\�ò?!°ò?åÐò?ªñò?oó?33ó?øSó?¼tó?�•ó?F¶ó?
×ó?Ï÷ó?“ô?X9ô?Zô?ázô?¦›ô?j¼ô?/Ýô?ôýô?¸õ?}?õ?B`õ?�õ?Ë¡õ?�Âõ?Tãõ?ö?Ý$ö?¢Eö?ffö?+‡ö?ð§ö?´Èö?yéö?=
÷?+÷?ÇK÷?‹l÷?P�÷?®÷?ÙÎ÷?žï÷?bø?'1ø?ìQø?°rø?u“ø?9´ø?þÔø?Ãõø?‡ù?L7ù?Xù?Õxù?š™ù?^ºù?#Ûù?çûù?¬ú?q=ú?5^ú?ú~ú?¾Ÿú?ƒÀú?Háú?û?Ñ"û?–Cû?Zdû?…û?ã¥û?¨Æû?mçû?1ü?ö(ü?ºIü?jü?D‹ü?¬ü?ÍÌü?‘íü?Vý?/ý?ßOý?¤pý?h‘ý?-²ý?òÒý?¶óý?{þ??5þ?Vþ?Évþ?�—þ?R¸þ?Ùþ?Ûùþ? ÿ?d;ÿ?)\ÿ?î|ÿ?²�ÿ?w¾ÿ?;ßÿ?   @„¡yÉ 8„  €?¹ü?¢5?VË?¹üÿ>@öä>?Ñ>‚Á>¢µ>{¨ª>‰æ¡>¸]š>VË“>ÿ�>·Ôˆ>ô0„>¹ü>Xx>ØXq>óèj>@öd>¦q_>~NZ>‚U>?Q>.ÊL>ÐH>E>‚A>|$>>Vò:>è7>¢5>"?2>›/>5->{¨*>V(>?&>‰ö#>‰æ!>øé>­ÿ>–&>¸]>+¤>ù>¸[>VË>EG>èÎ>«a>ÿ>r¦>W>¹
>·Ô> >ys>‰N>ô0>l>¨
>c>¹üÿ=¬þ=*ü=Å0ú=Xø=´‰ö=EÅô=m
ó=ØXñ=3°ï=2î=‰xì=óèê=-aé=õàç=hæ=@öä=O‹ã='â=5Éà=¦qß=- Þ=šÔÜ=ÃŽÛ=~NÚ=£Ù=Þ×=‘­Ö=‚Õ=j[Ô=y9Ó= Ò=?Ñ=¸îÏ=pÞÎ=KÒÍ=.ÊÌ=ÿÅË=§ÅÊ=ÉÉ=ÐÈ=¶ÚÇ=ÎèÆ=MúÅ=Å=,'Ä=fBÃ=º`Â=‚Á=f¦À=�Í¿=ª÷¾=|$¾=T½=6†¼= »»=Vòº=*,º=oh¹=§¸=è·=f+·=ôp¶=¶¸µ=¢µ=­N´=Íœ³=÷ì²="?²=C“±=Ré°=EA°=›¯=µö®= T®=N³­=5­=Ïv¬=Û«=ù@«={¨ª=’ª=7|©=bè¨=V¨=3Å§=Ì5§=Ò§¦=?¦=�¥=8¥=¸}¤=‰ö£=¥p£=ì¢=ªh¢=‰æ¡=že¡=åå =Zg =øéŸ=¹mŸ=›òž=˜xž=­ÿ�=Ô‡�=�=M›œ=–&œ=ã²›=/@›=wÎš=¸]š=îí™=™=*™=+¤˜=8˜=ÞÌ—=Œb—=ù–=~�–=½(–=ÒÁ•=¸[•=oö”=ó‘”=@.”=VË“=0i“=Í“=+§’=EG’=è‘=ª‰‘=ï+‘=èÎ�=“r�=î�=÷»�=«a�=�=¯Ž=·VŽ=ÿ�=ò§�=€Q�=«ûŒ=r¦Œ=ÓQŒ=Ìý‹=[ª‹=W‹=5‹=}³Š=TbŠ=¹Š=ªÁ‰=&r‰=*#‰=·Ôˆ=É†ˆ=`9ˆ=zì‡= ‡=2T‡=Ì‡=å½†=ys†=ˆ)†=à…=—…=‰N…=v…=Ø¾„=­w„=ô0„=¬êƒ=Ó¤ƒ=i_ƒ=lƒ=ÛÕ‚=¶‘‚=ûM‚=¨
‚=¾Ç�=:…�=C�=c�=À€=€=Œ>€=¹ü=}=:þ~=€~=¬~=û…}=
}=¼Ž|=*|=Jš{=!{=š¨z=Å0z=œ¹y=Cy=EÍx=Xx=‰ãw= ow=Züv=´‰v=­v=D¦u=w5u=EÅt=¬Ut=¬æs=Bxs=m
s=-�r=€0r=dÄq=ØXq=Ûíp=mƒp=Šp=3°o=gGo=#ßn=gwn=2n=‚©m=WCm=¯Ýl=‰xl=ål=À¯k=Lk=óèj=I†j=$j=gÂi=-ai=l i=# h=Q@h=õàg=‚g=œ#g=œÅf=hf=ó
f=H®e=Re=@öd=ášd=ï?d=iåc=O‹c=Ÿ1c=YØb=|b='b=úÎa=Swa= a=5É`=½r`=¨`=öÆ_=¦q_=¸_=*È^=üs^=- ^=¼Ì]=©y]=ô&]=šÔ\=�‚\=ú0\=²ß[=ÃŽ[=.>[=ñíZ=žZ=~NZ=GÿY=f°Y=ÚaY=£Y=ÁÅX=1xX=õ*X=ÞW=s‘W=-EW=7ùV=‘­V=;bV=4V=|ÌU=‚U=õ7U=%îT=¢¤T=j[T=~T=ÝÉS=†�S=y9S=¶ñR=<ªR=
cR= R=}ÕQ="�Q=IQ=?Q=¶½P=rxP=s3P=¸îO=AªO=fO="O=pÞN=›N=ÛWN=òN=KÒM=ä�M=½MM=ÖM=.ÊL=ÅˆL=šGL=®L=ÿÅK=Ž…K=ZEK=bK=§ÅJ='†J=ãFJ=ÛJ=ÉI=yŠI=LI=ÿI=ÐH=l’H=÷TH=ºH=¶ÚG=é�G=TaG=ö$G=ÎèF=Ý¬F="qF=�5F=MúE=2¿E=L„E=šIE=E=ÔÔD=¾šD=Û`D=,'D=¯íC=e´C=M{C=fBC=²	C=.ÑB=Ü˜B=º`B=É(B=ñA=w¹A=‚A=ãJA=àA=Ý@=f¦@=ïo@=¦9@=‹@=�Í?=Ý—?=Jb?=ä,?=ª÷>=œÂ>=»�>=Y>=|$>=ð==ë»==â‡==T==R ==Éì<=j¹<=6†<=*S<=H <=�í;= »;=™ˆ;=ZV;=D$;=Vò:=�À:=ñŽ:=y]:=*,:=û9=ÿÉ9=#™9=oh9=à79=w9=5×8=§8= w8=NG8=¡8=è7=¶¸7=w‰7=]Z7=f+7=”ü6=æÍ6=[Ÿ6=ôp6=°B6=�6=‘æ5=¶¸5=ýŠ5=g]5=ô/5=¢5=rÕ4=d¨4=x{4=­N4="4={õ3=É3=Íœ3=§p3=¡D3=¼3=÷ì2=RÁ2=Í•2=gj2="?2=û2=ôè1=¾1=C“1=™h1=>1=¡1=Ré0="¿0=•0=k0=EA0=�0=òí/=tÄ/=›/=Ñq/=«H/=¡/=µö.=åÍ.=2¥.=›|.= T.=Â+.=.=YÛ-=N³-=_‹-=‹c-=Ò;-=5-=³ì,=LÅ,= ž,=Ïv,=¸O,=¼(,=Ú,=Û+=e´+=Ò�+=Yg+=ù@+=³+=‡ô*=uÎ*={¨*=›‚*=Õ\*='7*=’*=ì)=³Æ)=i¡)=7|)=W)=2)=3)=bè(=©Ã(=Ÿ(=z(=V(=´1(=q(=Gé'=3Å'=7¡'=Q}'=ƒY'=Ì5'=+'=¡î&=.Ë&=Ò§&=Œ„&=\a&=B>&=?&=Rø%=zÕ%=¹²%=�%=xm%=øJ%=�(%=8%=øã$=ÎÁ$=¸Ÿ$=¸}$=Í[$=÷9$=6$=‰ö#=ñÔ#=n³#=ÿ‘#=¥p#=_O#=..#=#=ì"=Ë"=1ª"=c‰"=ªh"=H"=r'"=ô"=‰æ!=1Æ!=í¥!=¼…!=že!=“E!=œ%!=·!=åå =&Æ =z¦ =á† =Zg =æG =„( =5	 =øé=ÍÊ=´«=®Œ=¹m=×N=0=H=›ò= Ô=wµ=ÿ–=˜x=CZ= <=Î=­ÿ=�á=žÃ=±¥=Ô‡=	j=NL=¤.==ƒó=Ö=¤¸=M›=~=Ñ`=«C=–&=‘	=œì=·Ï=ã²=–=iy=Ä\=/@=ª#=4=Îê=wÎ=0²=ù•=Ñy=¸]=¯A=µ%=Ê	=îí=!Ò=c¶=µš==„c=H=�,=*=Õõ=�Ú=U¿=+¤=‰=n=S=8=0=\=–ç=ÞÌ=5²=™—=}=Œb=H=¶-=`=ù=ÝÞ=°Ä=�ª=~�=zv=ƒ\=™B=½(=î=-õ=yÛ=ÒÁ=8¨=«Ž=+u=¸[=SB=ú(=®=oö==Ý=Ä=ÿª=ó‘=óx= `=G=@.=s=²ü=þã=VË=º²=+š=§�=0i=ÆP=g8= =Í=“ï=d×=A¿=+§= �= w=-_=EG=i/=™=Ôÿ=è=mÐ=Ë¸=5¡=ª‰=*r=¶Z=LC=ï+=œ=Uý=æ=èÎ=Â·=¨ =˜‰=“r=š[=«D=Ç-=î=  =]é=¤Ò=÷»=T¥=»Ž=.x=«a=2K=Ä4=a==ºñ=vÛ=<Å=¯=è˜=Í‚=½l=·V=»@=É*=á=ÿ=0é=gÓ=¨½=ò§=G’=¥|=g=€Q=ü;=‚&==«û=Oæ=üÐ=²»=r¦=<‘=|=íf=ÓQ=Ã<=½'=À=Ìý=âè=Ô=*¿=[ª=–•=Û€=(l=W=ßB=H.=º=5=ºð
=GÜ
=ÞÇ
=}³
=%Ÿ
=×Š
=‘v
=Tb
= N
=õ9
=Ò%
=¹
=¨ý	= é	=¡Õ	=ªÁ	=¼­	=×™	=ú…	=&r	=Z^	=—J	=Ü6	=*#	=�	=àû=Gè=·Ô=/Á=¯­=8š=É†=bs=`=®L=`9=&=Ý=§ÿ=zì=UÙ=8Æ=#³= =�=z=g=2T=LA=o.=š=Ì=ö=Iã=“Ð=å½=>«=Ÿ˜=†=ys=ñ`=qN=ù;=ˆ)==½=cò=à=ÆÍ=‚»=F©=—=ä„=¾r= `=‰N=y<=q*=p=v=„ô=™â=µÐ=Ø¾=­=4›=m‰=­w=ôe=BT=˜B=ô0=W=Â=3ü=¬ê=+Ù=±Ç=?¶=Ó¤=n“=‚=¹p=i_=N=Ý<=¡+=l=>	=ø=õæ=ÛÕ=ÈÄ=»³=µ¢=¶‘=½€=Ëo=ß^=ûM===D,=s=¨
=äù=&é=oØ=¾Ç=·=o¦=Ñ•=:…=©t=d=šS=C=¥2=3"=È=c=ñ =¬à =ZÐ =À =É¯ =‰Ÿ =O� = =ïn =È^ =§N =Œ> =w. =h =_ =¹üÿ<ÀÜÿ<Ò¼ÿ<ðœÿ<}ÿ<Q]ÿ<“=ÿ<àÿ<:þþ<ŸÞþ<¿þ<�Ÿþ<€þ<ª`þ<JAþ<õ!þ<¬þ<nãý<<Äý<¥ý<û…ý<ëfý<çGý<î(ý<
ý<ëü<HÌü<|­ü<¼Žü<pü<]Qü<¾2ü<*ü<¢õû<$×û<²¸û<Jšû<î{û<�]û<V?û<!û<êû<Åäú<ªÆú<š¨ú<”Šú<šlú<ªNú<Å0ú<ëú<õù<W×ù<œ¹ù<í›ù<G~ù<­`ù<Cù<—%ù<ù<¬êø<EÍø<ê¯ø<˜’ø<Quø<Xø<â:ø<ºø<œ ø<‰ã÷<Æ÷<€©÷<‹Œ÷< o÷<¿R÷<é5÷<÷<Züö<¡ßö<óÂö<N¦ö<´‰ö<#mö<�Pö< 4ö<­ö<Dûõ<åÞõ<�Âõ<D¦õ<Šõ<Êmõ<›Qõ<w5õ<\õ<Kýô<Cáô<EÅô<P©ô<e�ô<„qô<¬Uô<Þ9ô<ô<]ô<¬æó<Ëó<d¯ó<Î“ó<Bxó<¿\ó<EAó<Ô%ó<m
ó<ïò<»Óò<o¸ò<-�ò<ô�ò<Äfò<�Kò<€0ò<kò<`úñ<]ßñ<dÄñ<s©ñ<ŒŽñ<­sñ<ØXñ<>ñ<H#ñ<�ñ<Ûíð<2Óð<’¸ð<û�ð<mƒð<çhð<jNð<ö3ð<Šð<(ÿï<Íäï<|Êï<3°ï<ó•ï<¼{ï<�aï<gGï<I-ï<4ï<'ùî<#ßî<'Åî<4«î<I‘î<gwî<�]î<¼Cî<ó)î<2î<yöí<ÉÜí<"Ãí<‚©í<ë�í<\ví<Õ\í<WCí<á)í<sí<÷ì<¯Ýì<YÄì<«ì<Ç‘ì<‰xì<T_ì<'Fì<-ì<åì<Ðúë<Ãáë<¾Èë<À¯ë<Ë–ë<Þ}ë<ødë<Lë<E3ë<xë<²ë<óèê<=Ðê<�·ê<èžê<I†ê<²mê<"Uê<š<ê<$ê<¢ê<1óé<ÈÚé<gÂé<ªé<»‘é<pyé<-aé<ñHé<½0é<‘é<l é<Oèè<9Ðè<*¸è<# è<#ˆè<+pè<;Xè<Q@è<o(è<”è<Áøç<õàç<1Éç<s±ç<½™ç<‚ç<gjç<ÇRç<.;ç<œ#ç<ç<Žôæ<Ýæ<œÅæ<.®æ<Ç–æ<hæ<hæ<¾Pæ<s9æ<0"æ<ó
æ<¾óå<�Üå<iÅå<H®å</—å<€å<iå<Rå<;å<$å<)å<@öä<^ßä<ƒÈä<®±ä<ášä<„ä<Zmä<¡Vä<ï?ä<D)ä<Ÿä<üã<iåã<ÙÎã<O¸ã<Ì¡ã<O‹ã<Ùtã<j^ã<Hã<Ÿ1ã<Dã<ïã<¡îâ<YØâ<Ââ<Þ«â<ª•â<|â<Uiâ<5Sâ<=â<'â<úâ<ôúá<ôäá<úÎá<¹á<£á<3�á<Swá<yaá<¥Ká<Ø5á< á<Q
á<—ôà<ãÞà<5Éà<Ž³à<ì�à<Rˆà<½rà<.]à<¦Gà<$2à<¨à<3à<Ãñß<ZÜß<öÆß<™±ß<Bœß<ñ†ß<¦qß<b\ß<#Gß<ê1ß<¸ß<‹ß<eòÞ<DÝÞ<*ÈÞ<³Þ<žÞ<þˆÞ<üsÞ<ÿ^Þ<JÞ<5Þ<- Þ<HÞ<iöÝ<�áÝ<¼ÌÝ<ï·Ý<'£Ý<eŽÝ<©yÝ<ódÝ<CPÝ<˜;Ý<ô&Ý<UÝ<»ýÜ<(éÜ<šÔÜ<ÀÜ<�«Ü<—Ü<�‚Ü<+nÜ<ÀYÜ<ZEÜ<ú0Ü<ŸÜ<KÜ<ûóÛ<²ßÛ<nËÛ</·Û<÷¢Û<ÃŽÛ<–zÛ<nfÛ<KRÛ<.>Û<*Û<Û<øÛ<ñíÚ<ðÙÚ<ôÅÚ<ý±Ú<žÚ<!ŠÚ<:vÚ<ZbÚ<~NÚ<©:Ú<Ø&Ú<Ú<GÿÙ<‡ëÙ<Ì×Ù<ÄÙ<f°Ù<»œÙ<‰Ù<uuÙ<ÚaÙ<ENÙ<´:Ù<)'Ù<£Ù<# Ù<§ìØ<1ÙØ<ÁÅØ<U²Ø<ïžØ<�‹Ø<1xØ<ÚdØ<‰QØ<<>Ø<õ*Ø<³Ø<vØ<>ñ×<Þ×<ÞÊ×<µ·×<’¤×<s‘×<Z~×<Fk×<7X×<-E×<(2×<(×<-×<7ùÖ<FæÖ<ZÓÖ<sÀÖ<‘­Ö<´šÖ<Ü‡Ö<	uÖ<;bÖ<rOÖ<®<Ö<ï)Ö<4Ö<Ö<ÏñÕ<#ßÕ<|ÌÕ<Ú¹Õ<=§Õ<¥”Õ<‚Õ<ƒoÕ<ú\Õ<uJÕ<õ7Õ<z%Õ<Õ<’ Õ<%îÔ<½ÛÔ<ZÉÔ<û¶Ô<¢¤Ô<M’Ô<üÔ<±mÔ<j[Ô<(IÔ<ë6Ô<²$Ô<~Ô<O Ô<$îÓ<þÛÓ<ÝÉÓ<À·Ó<¨¥Ó<•“Ó<†�Ó<|oÓ<w]Ó<vKÓ<y9Ó<‚'Ó<�Ó< Ó<¶ñÒ<ÑßÒ<ðÍÒ<¼Ò<<ªÒ<h˜Ò<š†Ò<ÏtÒ<
cÒ<IQÒ<Œ?Ò<Ô-Ò< Ò<q
Ò<ÆøÑ<çÑ<}ÕÑ<àÃÑ<G²Ñ<² Ñ<"�Ñ<–}Ñ<lÑ<ŒZÑ<IÑ<“7Ñ<&Ñ<¬Ñ<?Ñ<ÖñÐ<qàÐ<ÏÐ<¶½Ð<^¬Ð<›Ð<¼‰Ð<rxÐ<,gÐ<êUÐ<¬DÐ<s3Ð<>"Ð<Ð<àÿÏ<¸îÏ<”ÝÏ<tÌÏ<Y»Ï<AªÏ<.™Ï<ˆÏ<wÏ<fÏ<UÏ<DÏ<3Ï<"Ï<,Ï<? Ï<UïÎ<pÞÎ<�ÍÎ<²¼Î<Ù«Î<›Î<4ŠÎ<gyÎ<ŸhÎ<ÛWÎ<GÎ<^6Î<¦%Î<òÎ<BÎ<–óÍ<ïâÍ<KÒÍ<«ÁÍ<±Í<w Í<ä�Í<TÍ<ÈnÍ<A^Í<½MÍ<==Í<Á,Í<IÍ<ÖÍ<fûÌ<úêÌ<’ÚÌ<.ÊÌ<Î¹Ì<q©Ì<™Ì<ÅˆÌ<txÌ<(hÌ<ßWÌ<šGÌ<Y7Ì<'Ì<ãÌ<®Ì<|öË<OæË<%ÖË<ÿÅË<ÝµË<¿¥Ë<¥•Ë<Ž…Ë<{uË<leË<aUË<ZEË<V5Ë<W%Ë<ZË<bË<nõÊ<}åÊ<�ÕÊ<§ÅÊ<ÁµÊ<à¥Ê<–Ê<'†Ê<QvÊ<~fÊ<¯VÊ<ãFÊ<7Ê<X'Ê<—Ê<ÛÊ<!øÉ<lèÉ<ºØÉ<ÉÉ<b¹É<»©É<šÉ<yŠÉ<ÝzÉ<EkÉ<°[É<LÉ<’<É<-É<‚É<ÿÉ<€þÈ<ïÈ<�ßÈ<ÐÈ<¨ÀÈ<;±È<Ò¡È<l’È<	ƒÈ<ªsÈ<OdÈ<÷TÈ<¢EÈ<R6È<'È<ºÈ<tÈ<1ùÇ<òéÇ<¶ÚÇ<~ËÇ<I¼Ç<­Ç<é�Ç<¿ŽÇ<˜Ç<tpÇ<TaÇ<7RÇ<CÇ<4Ç<ö$Ç<çÇ<ÛÇ<Ó÷Æ<ÎèÆ<ÍÙÆ<ÏÊÆ<Ô»Æ<Ý¬Æ<é�Æ<ùŽÆ<€Æ<"qÆ<<bÆ<YSÆ<yDÆ<�5Æ<Ä&Æ<îÆ<	Æ<MúÅ<�ëÅ<¹ÜÅ<ôÍÅ<2¿Å<s°Å<¸¡Å< “Å<L„Å<›uÅ<ífÅ<BXÅ<šIÅ<ö:Å<U,Å<¸Å<Å<† Å<òñÄ<aãÄ<ÔÔÄ<IÆÄ<Â·Ä<?©Ä<¾šÄ<AŒÄ<Æ}Ä<OoÄ<Û`Ä<kRÄ<ýCÄ<“5Ä<,'Ä<ÈÄ<g
Ä<
üÃ<¯íÃ<XßÃ<ÑÃ<³ÂÃ<e´Ã<¦Ã<Ó—Ã<Ž‰Ã<M{Ã<mÃ<Ó^Ã<›PÃ<fBÃ<54Ã<&Ã<ÚÃ<²	Ã<ŒûÂ<jíÂ<JßÂ<.ÑÂ<ÃÂ<ÿ´Â<ì¦Â<Ü˜Â<ÏŠÂ<Å|Â<¾nÂ<º`Â<¹RÂ<»DÂ<Á6Â<É(Â<ÔÂ<âÂ<óþÁ<ñÁ<ãÁ<9ÕÁ<VÇÁ<w¹Á<š«Á<À�Á<é�Á<‚Á<DtÁ<vfÁ<«XÁ<ãJÁ<=Á<\/Á<œ!Á<àÁ<'Á<pøÀ<½êÀ<ÝÀ<^ÏÀ<³ÁÀ<´À<f¦À<Ä˜À<%‹À<‰}À<ïoÀ<YbÀ<ÅTÀ<4GÀ<¦9À<,À<“À<À<‹À<ö¿<�è¿<Û¿<�Í¿<)À¿<¸²¿<I¥¿<Ý—¿<tŠ¿<}¿<«o¿<Jb¿<ìT¿<‘G¿<9:¿<ä,¿<‘¿<A¿<ô¿<ª÷¾<bê¾<Ý¾<ÜÏ¾<œÂ¾<`µ¾<&¨¾<ïš¾<»�¾<Š€¾<[s¾</f¾<Y¾<ßK¾<¼>¾<š1¾<|$¾<`¾<H
¾<1ý½<ð½<ã½<ÿÕ½<óÈ½<ë»½<å®½<á¡½<à”½<â‡½<çz½<îm½<ø`½<T½<G½<&:½<;-½<R ½<l½<ˆ½<§ù¼<Éì¼<îß¼<Ó¼<>Æ¼<j¹¼<™¬¼<ËŸ¼<ÿ’¼<6†¼<oy¼<«l¼<é_¼<*S¼<nF¼<´9¼<ý,¼<H ¼<–¼<ç¼<:ú»<�í»<èà»<CÔ»< Ç»< »»<b®»<Ç¡»</•»<™ˆ»<|»<to»<æb»<ZV»<ÑI»<J=»<Æ0»<D$»<Ä»<H»<Íþº<Vòº<àåº<mÙº<ýÌº<�Àº<$´º<»§º<U›º<ñŽº<�‚º<0vº<Ôiº<y]º<"Qº<ÍDº<z8º<*,º<Üº<�º<Gº<û¹<½î¹<{â¹<<Ö¹<ÿÉ¹<Ä½¹<Œ±¹<W¥¹<#™¹<óŒ¹<Ä€¹<˜t¹<oh¹<G\¹<"P¹< D¹<à7¹<Â+¹<§¹<Ž¹<w¹<cû¸<Qï¸<Bã¸<5×¸<*Ë¸<"¿¸<³¸<§¸<›¸<�¸<ƒ¸< w¸<(k¸<3_¸<?S¸<NG¸<`;¸<s/¸<‰#¸<¡¸<¼¸<Ùÿ·<øó·<è·<=Ü·<cÐ·<‹Ä·<¶¸·<ã¬·<¡·<C•·<w‰·<­}·<åq·< f·<]Z·<œN·<ÝB·< 7·<f+·<®·<ù·<E·<”ü¶<åð¶<8å¶<ŽÙ¶<æÍ¶<@Â¶<œ¶¶<úª¶<[Ÿ¶<¾“¶<#ˆ¶<Š|¶<ôp¶<_e¶<ÍY¶<=N¶<°B¶<$7¶<›+¶< ¶<�¶<	¶<Œýµ<òµ<‘æµ<Ûµ<ŸÏµ<)Äµ<¶¸µ<E­µ<Õ¡µ<h–µ<ýŠµ<•µ<.tµ<Êhµ<g]µ<Rµ<©Fµ<M;µ<ô/µ<œ$µ<Gµ<óµ<¢µ<S÷´<ì´<»à´<rÕ´<,Ê´<ç¾´<¥³´<d¨´<&�´<ê‘´<°†´<x{´<Bp´<e´<ÝY´<­N´<€C´<T8´<+-´<"´<Þ´<»´<š ´<{õ³<^ê³<Cß³<*Ô³<É³<ÿ½³<ì²³<Û§³<Íœ³<À‘³<¶†³<­{³<§p³<¢e³< Z³< O³<¡D³<¥9³<«.³<²#³<¼³<È³<Ö³<å÷²<÷ì²<â²< ×²<8Ì²<RÁ²<n¶²<‹«²<« ²<Í•²<ñŠ²<€²<>u²<gj²<“_²<ÁT²<ðI²<"?²<U4²<Š)²<Â²<û²<7	²<tþ±<³ó±<ôè±<7Þ±<|Ó±<ÃÈ±<¾±<W³±<¤¨±<ò�±<C“±<–ˆ±<ê}±<As±<™h±<ó]±<OS±<­H±<>±<o3±<Ó(±<9±<¡±<
	±<uþ°<ãó°<Ré°<ÃÞ°<6Ô°<«É°<"¿°<š´°<ª°<‘Ÿ°<•°<�Š°<€°<–u°<k°<£`°<-V°<¸K°<EA°<Ô6°<e,°<ø!°<�°<#°<»°<Vø¯<òí¯<�ã¯</Ù¯<ÑÎ¯<tÄ¯<º¯<À¯¯<i¥¯<›¯<À�¯<o†¯<|¯<Ñq¯<„g¯<:]¯<ñR¯<«H¯<f>¯<"4¯<á)¯<¡¯<d¯<(¯<í ¯<µö®<~ì®<Jâ®<Ø®<åÍ®<¶Ã®<ˆ¹®<\¯®<2¥®<
›®<ã�®<¾†®<›|®<zr®<Zh®<<^®< T®<J®<î?®<×5®<Â+®<¯!®<�®<�®<®<sù­<iï­<`å­<YÛ­<SÑ­<PÇ­<N½­<N³­<O©­<SŸ­<X•­<_‹­<g�­<qw­<}m­<‹c­<šY­<«O­<¾E­<Ò;­<é1­< (­<­<5­<R
­<q ­<‘ö¬<³ì¬<×â¬<üØ¬<#Ï¬<LÅ¬<w»¬<£±¬<Ð§¬< ž¬<1”¬<dŠ¬<˜€¬<Ïv¬<m¬<@c¬<{Y¬<¸O¬<öE¬<6<¬<x2¬<¼(¬<¬<G¬<�¬<Ú¬<&ø«<sî«<Âä«<Û«<eÑ«<¸Ç«<¾«<e´«<¾ª«<¡«<t—«<Ò�«<1„«<’z«<ôp«<Yg«<¾]«<&T«<�J«<ù@«<e7«<Ó-«<B$«<³«<&«<š«<þª<‡ôª< ëª<{áª<÷×ª<uÎª<ôÄª<u»ª<÷±ª<{¨ª<Ÿª<ˆ•ª<Œª<›‚ª<'yª<µoª<Dfª<Õ\ª<gSª<ûIª<�@ª<'7ª<À-ª<Z$ª<õª<’ª<1ª<Ñþ©<sõ©<ì©<»â©<bÙ©<
Ð©<³Æ©<^½©<´©<¹ª©<i¡©<˜©<ÍŽ©<�…©<7|©<îr©<§i©<a`©<W©<ÛM©<šD©<Z;©<2©<ß(©<¤©<k©<3©<ý©<Èú¨<”ñ¨<bè¨<2ß¨<Ö¨<ÕÌ¨<©Ã¨<º¨<V±¨<.¨¨<Ÿ¨<ä•¨<ÁŒ¨<Ÿƒ¨<z¨<aq¨<Ch¨<(_¨<V¨<õL¨<ÞC¨<È:¨<´1¨<¡(¨<�¨<€¨<q¨<e¨<Yû§<Oò§<Gé§<?à§<:×§<6Î§<3Å§<2¼§<2³§<3ª§<7¡§<;˜§<A�§<H†§<Q}§<\t§<gk§<tb§<ƒY§<“P§<¤G§<·>§<Ì5§<á,§<ù#§<§<+§<G	§<c §<‚÷¦<¡î¦<Âå¦<åÜ¦<	Ô¦<.Ë¦<UÂ¦<}¹¦<§°¦<Ò§¦<þž¦<,–¦<[�¦<Œ„¦<¾{¦<ñr¦<&j¦<\a¦<“X¦<ÌO¦<G¦<B>¦<5¦<¾,¦<þ#¦<?¦<‚¦<Æ	¦<¦<Rø¥<šï¥<ãæ¥<.Þ¥<zÕ¥<ÈÌ¥<Ä¥<g»¥<¹²¥<ª¥<a¡¥<¶˜¥<�¥<f‡¥<À~¥<v¥<xm¥<Öd¥<5\¥<–S¥<øJ¥<[B¥<À9¥<&1¥<�(¥<ö¥<`¥<Ë¥<8¥<¦ý¤<õ¤<†ì¤<øã¤<lÛ¤<àÒ¤<VÊ¤<ÎÁ¤<F¹¤<À°¤<<¨¤<¸Ÿ¤<6—¤<¶Ž¤<6†¤<¸}¤<<u¤<Àl¤<Fd¤<Í[¤<VS¤<ßJ¤<kB¤<÷9¤<…1¤<)¤<¤ ¤<6¤<É¤<]¤<òþ£<‰ö£<!î£<»å£<UÝ£<ñÔ£<�Ì£<-Ä£<Í»£<n³£<«£<´¢£<Yš£<ÿ‘£<§‰£<P�£<úx£<¥p£<Rh£< `£<¯W£<_O£<G£<Ä>£<x6£<..£<å%£<�£<V£<£<Ì£<‰ü¢<Hô¢<ì¢<Èã¢<ŠÛ¢<MÓ¢<Ë¢<ØÂ¢<Ÿº¢<g²¢<1ª¢<ü¡¢<È™¢<•‘¢<c‰¢<3�¢<y¢<×p¢<ªh¢<`¢<UX¢<,P¢<H¢<Þ?¢<¹7¢<•/¢<r'¢<Q¢<0¢<¢<ô¢<×þ¡<¼ö¡<¡î¡<‰æ¡<qÞ¡<ZÖ¡<EÎ¡<1Æ¡<¾¡<¶¡<ü­¡<í¥¡<ß�¡<Ò•¡<Æ�¡<¼…¡<²}¡<ªu¡<¤m¡<že¡<™]¡<–U¡<”M¡<“E¡<”=¡<•5¡<˜-¡<œ%¡<¡¡<§¡<®¡<·¡<Áý <Ìõ <Øí <åå <ôÝ <Ö <Î <&Æ <:¾ <N¶ <d® <z¦ <’ž <«– <ÆŽ <á† <þ~ <w <:o <Zg <{_ <žW <ÁO <æG <@ <38 <[0 <„( <¯  <Ú < <5	 <d <”ùŸ<ÅñŸ<øéŸ<+âŸ<`ÚŸ<–ÒŸ<ÍÊŸ<ÃŸ<>»Ÿ<y³Ÿ<´«Ÿ<ñ£Ÿ</œŸ<n”Ÿ<®ŒŸ<ï„Ÿ<1}Ÿ<uuŸ<¹mŸ<ÿeŸ<F^Ÿ<ŽVŸ<×NŸ<!GŸ<m?Ÿ<¹7Ÿ<0Ÿ<U(Ÿ<¥ Ÿ<öŸ<HŸ<›	Ÿ<ïŸ<Eúž<›òž<óêž<Kãž<¥Ûž< Ôž<\Ìž<¹Äž<½ž<wµž<×­ž<8¦ž<›žž<ÿ–ž<c�ž<É‡ž<0€ž<˜xž<qž<liž<×až<CZž<±Rž<Kž<�Cž< <ž<r4ž<å,ž<Y%ž<Îž<Dž<»ž<3ž<­ÿ�<'ø�<£ð�<é�<�á�<Ú�<œÒ�<Ë�<žÃ�<!¼�<¦´�<+­�<±¥�<8ž�<Á–�<J��<Ô‡�<`€�<ìx�<zq�<	j�<™b�<)[�<»S�<NL�<âD�<w=�<6�<¤.�<<'�<Ö�<p�<�<§	�<E�<ãúœ<ƒóœ<#ìœ<Åäœ<gÝœ<Öœ<°Îœ<UÇœ<ü¿œ<¤¸œ<L±œ<ö©œ<¡¢œ<M›œ<ú“œ<¨Œœ<W…œ<~œ<¸vœ<joœ<hœ<Ñ`œ<†Yœ<<Rœ<óJœ<«Cœ<e<œ<5œ<Ú-œ<–&œ<Sœ<œ<Ñœ<‘	œ<Rœ<û›<Øó›<œì›<aå›<(Þ›<ïÖ›<·Ï›<�È›<KÁ›<º›<ã²›<°«›<~¤›<N�›<–›<ïŽ›<Â‡›<•€›<iy›<>r›<k›<ìc›<Ä\›<�U›<xN›<SG›</@›<9›<ê1›<É*›<ª#›<‹›<m›<P›<4›< ›<ÿøš<æñš<Îêš<·ãš<¡Üš<‹Õš<wÎš<dÇš<RÀš<A¹š<0²š<!«š<¤š<�š<ù•š<íŽš<ã‡š<Ù€š<Ñyš<Érš<Âkš<½dš<¸]š<´Vš<±Oš<°Hš<¯Aš<¯:š<°3š<²,š<µ%š<¸š<½š<Ãš<Ê	š<Ñš<Úû™<ãô™<îí™<ùæ™<à™<Ù™<!Ò™<0Ë™<@Ä™<Q½™<c¶™<v¯™<Š¨™<Ÿ¡™<µš™<Ë“™<ãŒ™<ü…™<™</x™<Kq™<gj™<„c™<¢\™<ÁU™<áN™<H™<$A™<G:™<j3™<�,™<´%™<Û™<™<*™<T
™<~™<©ü˜<Õõ˜<ï˜</è˜<^á˜<�Ú˜<¾Ó˜<ïÌ˜<!Æ˜<U¿˜<‰¸˜<¾±˜<ôª˜<+¤˜<b�˜<›–˜<Ô�˜<‰˜<J‚˜<‡{˜<Ät˜<n˜<Ag˜<€`˜<ÁY˜<S˜<EL˜<‰E˜<Í>˜<8˜<X1˜<Ÿ*˜<ç#˜<0˜<z˜<Ä˜<	˜<\˜<©û—<÷ô—<Fî—<–ç—<çà—<9Ú—<‹Ó—<ÞÌ—<3Æ—<ˆ¿—<Þ¸—<5²—<�«—<å¤—<?ž—<™——<ô�—<QŠ—<®ƒ—<}—<jv—<Êo—<*i—<Œb—<î[—<QU—<µN—<H—<€A—<æ:—<N4—<¶-—<'—<‰ —<ô—<`—<Ì—<:—<¨ÿ–<ù–<‡ò–<øë–<jå–<ÝÞ–<PØ–<ÄÑ–<:Ë–<°Ä–<&¾–<ž·–<±–<�ª–<
¤–<…�–<—–<~�–<ü‰–<zƒ–<ú|–<zv–<ûo–<}i–<ÿb–<ƒ\–<V–<ŒO–<I–<™B–<!<–<ª5–<3/–<½(–<H"–<Ô–<a–<î–<}–<–<œû•<-õ•<¿î•<Qè•<äá•<yÛ•<Õ•<£Î•<:È•<ÒÁ•<j»•<µ•<�®•<8¨•<Ó¡•<p›•<••<«Ž•<Jˆ•<é�•<Š{•<+u•<Ín•<ph•<b•<¸[•<^U•<O•<«H•<SB•<û;•<¥5•<O/•<ú(•<¦"•<R•< •<®•<]	•<•<¾ü”<oö”<!ð”<Ôé”<ˆã”<=Ý”<òÖ”<¨Ð”<_Ê”<Ä”<Ð½”<‰·”<D±”<ÿª”<º¤”<wž”<4˜”<ó‘”<±‹”<q…”<2”<óx”<µr”<xl”<<f”< `”<ÆY”<ŒS”<RM”<G”<â@”<¬:”<v4”<@.”<(”<Ø!”<¥”<s”<B”<	”<á”<²ü“<„ö“<Wð“<*ê“<þã“<ÓÝ“<¨×“<Ñ“<VË“<.Å“<¿“<à¸“<º²“<•¬“<q¦“<M “<+š“<	”“<è�“<Ç‡“<§�“<‰{“<ju“<Mo“<0i“<c“<ù\“<ßV“<ÆP“<­J“<•D“<}>“<g8“<Q2“<<,“<(&“< “<“<ï“<Þ“<Í“<¾“<¯û’< õ’<“ï’<†é’<zã’<oÝ’<d×’<ZÑ’<QË’<IÅ’<A¿’<;¹’<4³’</­’<+§’<'¡’<$›’<!•’< �’<‰’<ƒ’<}’< w’<"q’<%k’<)e’<-_’<2Y’<8S’<>M’<EG’<MA’<V;’<_5’<i/’<t)’<€#’<Œ’<™’<§’<µ’<Ä’<Ôÿ‘<åù‘<öó‘<î‘<è‘</â‘<CÜ‘<XÖ‘<mÐ‘<„Ê‘<›Ä‘<³¾‘<Ë¸‘<å²‘<ÿ¬‘<§‘<5¡‘<Q›‘<n•‘<‹�‘<ª‰‘<Éƒ‘<è}‘<	x‘<*r‘<Ll‘<nf‘<’`‘<¶Z‘<ÚT‘< O‘<&I‘<LC‘<t=‘<œ7‘<Å1‘<ï+‘<&‘<D ‘<p‘<œ‘<É‘<÷‘<&‘<Uý�<…÷�<¶ñ�<çë�<æ�<Là�<Ú�<³Ô�<èÎ�<É�<TÃ�<‹½�<Â·�<û±�<3¬�<m¦�<¨ �<ãš�<•�<[��<˜‰�<Öƒ�<~�<Sx�<“r�<Ôl�<g�<Wa�<š[�<ÝU�<!P�<fJ�<«D�<ñ>�<89�<3�<Ç-�<(�<Y"�<£�<î�<:�<†�<Ó�<  �<nú�<½ô�<ï�<]é�<®ã�<ÿÝ�<RØ�<¤Ò�<øÌ�<LÇ�<¡Á�<÷»�<M¶�<¤°�<ûª�<T¥�<­Ÿ�<š�<`”�<»Ž�<‰�<sƒ�<Ð}�<.x�<Œr�<ël�<Jg�<«a�<\�<mV�<ÏP�<2K�<–E�<ú?�<_:�<Ä4�<*/�<‘)�<ù#�<a�<Ê�<3�<��<�<s�<ßüŽ<L÷Ž<ºñŽ<(ìŽ<–æŽ<áŽ<vÛŽ<æÕŽ<WÐŽ<ÉÊŽ<<ÅŽ<¯¿Ž<#ºŽ<—´Ž<¯Ž<‚©Ž<ù£Ž<pžŽ<è˜Ž<`“Ž<Ù�Ž<SˆŽ<Í‚Ž<H}Ž<ÄwŽ<@rŽ<½lŽ<:gŽ<¸aŽ<7\Ž<·VŽ<7QŽ<·KŽ<9FŽ<»@Ž<=;Ž<À5Ž<D0Ž<É*Ž<N%Ž<ÔŽ<ZŽ<áŽ<iŽ<ñ	Ž<zŽ<ÿ�<Žù�<ô�<¤î�<0é�<½ã�<JÞ�<ØØ�<gÓ�<öÍ�<†È�<Ã�<¨½�<9¸�<Ì²�<_­�<ò§�<†¢�<��<±—�<G’�<ÝŒ�<u‡�<‚�<¥|�<>w�<Øq�<sl�<g�<©a�<F\�<ãV�<€Q�<L�<½F�<\A�<ü;�<�6�<>1�<à+�<‚&�<%!�<É�<m�<�<·�<]�<�<«ûŒ<SöŒ<üðŒ<¥ëŒ<OæŒ<ùàŒ<¤ÛŒ<OÖŒ<üÐŒ<¨ËŒ<VÆŒ<ÁŒ<²»Œ<a¶Œ<±Œ<Â«Œ<r¦Œ<$¡Œ<Ö›Œ<‰–Œ<<‘Œ<ð‹Œ<¥†Œ<Z�Œ<|Œ<ÆvŒ<}qŒ<5lŒ<ífŒ<¦aŒ<_\Œ<WŒ<ÓQŒ<ŽLŒ<JGŒ<BŒ<Ã<Œ<�7Œ<?2Œ<þ,Œ<½'Œ<}"Œ<=Œ<þŒ<ÀŒ<‚Œ<EŒ<Œ<Ìý‹<‘ø‹<Vó‹<î‹<âè‹<©ã‹<pÞ‹<8Ù‹<Ô‹<ÊÎ‹<”É‹<_Ä‹<*¿‹<õ¹‹<Á´‹<Ž¯‹<[ª‹<)¥‹<øŸ‹<Çš‹<–•‹<g�‹<7‹‹<	†‹<Û€‹<­{‹<€v‹<Tq‹<(l‹<ýf‹<Óa‹<¨\‹<W‹<VR‹<.M‹<H‹<ßB‹<¸=‹<’8‹<m3‹<H.‹<$)‹< $‹<Ý‹<º‹<˜‹<w‹<V
‹<5‹< ‹<÷úŠ<ØõŠ<ºðŠ<œëŠ<æŠ<cáŠ<GÜŠ<,×Š<ÒŠ<÷ÌŠ<ÞÇŠ<ÅÂŠ<¬½Š<”¸Š<}³Š<f®Š<P©Š<:¤Š<%ŸŠ<šŠ<ý”Š<ê�Š<×ŠŠ<Ä…Š<³€Š<¢{Š<‘vŠ<�qŠ<qlŠ<bgŠ<TbŠ<F]Š<9XŠ<,SŠ< NŠ<IŠ<	DŠ<ÿ>Š<õ9Š<ë4Š<ã/Š<Ú*Š<Ò%Š<Ë Š<ÅŠ<¾Š<¹Š<´Š<¯Š<«Š<¨ý‰<¥ø‰<£ó‰<¡î‰< é‰<Ÿä‰<Ÿß‰< Ú‰<¡Õ‰<¢Ð‰<¤Ë‰<§Æ‰<ªÁ‰<®¼‰<²·‰<·²‰<¼­‰<Â¨‰<È£‰<Ïž‰<×™‰<ß”‰<ç�‰<ðŠ‰<ú…‰<�‰<|‰<w‰<&r‰<2m‰<?h‰<Lc‰<Z^‰<iY‰<wT‰<‡O‰<—J‰<¨E‰<¹@‰<Ê;‰<Ü6‰<ï1‰<-‰<(‰<*#‰<?‰<U‰<j‰<�‰<˜
‰<¯‰<Ç ‰<àûˆ<ùöˆ<òˆ<,íˆ<Gèˆ<bãˆ<~Þˆ<šÙˆ<·Ôˆ<ÔÏˆ<òÊˆ<Æˆ</Áˆ<N¼ˆ<n·ˆ<Ž²ˆ<¯­ˆ<Ñ¨ˆ<ó£ˆ<Ÿˆ<8šˆ<\•ˆ<€�ˆ<¤‹ˆ<É†ˆ<ï�ˆ<}ˆ<;xˆ<bsˆ<Šnˆ<²iˆ<Ûdˆ<`ˆ<.[ˆ<XVˆ<ƒQˆ<®Lˆ<ÚGˆ<Cˆ<3>ˆ<`9ˆ<Ž4ˆ<¼/ˆ<ë*ˆ<&ˆ<J!ˆ<{ˆ<«ˆ<Ýˆ<ˆ<A	ˆ<tˆ<§ÿ‡<Ûú‡<ö‡<Eñ‡<zì‡<°ç‡<æâ‡<Þ‡<UÙ‡<�Ô‡<ÅÏ‡<þÊ‡<8Æ‡<rÁ‡<¬¼‡<ç·‡<#³‡<_®‡<›©‡<Ø¤‡< ‡<T›‡<’–‡<Ñ‘‡<�‡<Qˆ‡<‘ƒ‡<Ò~‡<z‡<Vu‡<˜p‡<Ûk‡<g‡<cb‡<§]‡<ìX‡<2T‡<xO‡<¾J‡<F‡<LA‡<”<‡<Ý7‡<&3‡<o.‡<¹)‡<%‡<N ‡<š‡<æ‡<2‡<‡<Ì‡<‡<iÿ†<·ú†<ö†<Wñ†<§ì†<øç†<Iã†<›Þ†<íÙ†<@Õ†<“Ð†<çË†<;Ç†<�Â†<å½†<:¹†<�´†<ç¯†<>«†<–¦†<î¡†<F�†<Ÿ˜†<ù“†<S�†<­Š†<††<d�†<À|†<x†<ys†<Ön†<4j†<’e†<ñ`†<Q\†<°W†<S†<qN†<ÒI†<4E†<–@†<ù;†<\7†<À2†<$.†<ˆ)†<í$†<S †<¸†<†<††<í†<U	†<½†<& †<�û…<ùö…<cò…<Îí…<9é…<¥ä…<à…<}Û…<êÖ…<XÒ…<ÆÍ…<4É…<£Ä…<À…<‚»…<ò¶…<c²…<Ô­…<F©…<¸¤…<+ …<ž›…<—…<…’…<ú�…<o‰…<ä„…<Z€…<Ð{…<Gw…<¾r…<6n…<®i…<'e…< `…<\…<”W…<S…<‰N…<J…<€E…<ý@…<y<…<÷7…<t3…<ò.…<q*…<ð%…<p!…<ð…<p…<ñ…<r…<ô
…<v…<ù…<|ý„< ù„<„ô„<ð„<�ë„<ç„<™â„<Þ„<¦Ù„<-Õ„<µÐ„<=Ì„<ÆÇ„<OÃ„<Ø¾„<bº„<ìµ„<w±„<­„<Ž¨„<¤„<§Ÿ„<4›„<Â–„<P’„<Þ�„<m‰„<ü„„<Œ€„<|„<­w„<>s„<Ðn„<bj„<ôe„<‡a„<]„<®X„<BT„<×O„<lK„<G„<˜B„<.>„<Å9„<\5„<ô0„<Œ,„<%(„<¾#„<W„<ñ„<Œ„<&„<Â„<]	„<ú„<– „<3üƒ<Ñ÷ƒ<nóƒ<ïƒ<¬êƒ<Kæƒ<êáƒ<ŠÝƒ<+Ùƒ<ÌÔƒ<mÐƒ<Ìƒ<±Çƒ<TÃƒ<÷¾ƒ<›ºƒ<?¶ƒ<ã±ƒ<ˆ­ƒ<-©ƒ<Ó¤ƒ<y ƒ< œƒ<Ç—ƒ<n“ƒ<�ƒ<¾Šƒ<g†ƒ<‚ƒ<º}ƒ<dyƒ<uƒ<¹pƒ<dlƒ<hƒ<¼cƒ<i_ƒ<[ƒ<ÃVƒ<qRƒ<Nƒ<ÎIƒ<}Eƒ<-Aƒ<Ý<ƒ<�8ƒ<>4ƒ<ï/ƒ<¡+ƒ<S'ƒ<#ƒ<¹ƒ<lƒ< ƒ<Ôƒ<‰ƒ<>	ƒ<óƒ<© ƒ<_ü‚<ø‚<Íó‚<…ï‚<=ë‚<õæ‚<®â‚<hÞ‚<!Ú‚<ÛÕ‚<–Ñ‚<QÍ‚<É‚<ÈÄ‚<„À‚<A¼‚<þ·‚<»³‚<y¯‚<7«‚<ö¦‚<µ¢‚<už‚<5š‚<õ•‚<¶‘‚<w�‚<9‰‚<û„‚<½€‚<€|‚<Cx‚<t‚<Ëo‚<�k‚<Tg‚<c‚<ß^‚<¦Z‚<lV‚<3R‚<ûM‚<ÂI‚<ŠE‚<SA‚<=‚<æ8‚<¯4‚<z0‚<D,‚<(‚<Û#‚<§‚<s‚<@‚<‚<Ú‚<¨
‚<v‚<E‚<þ�<äù�<´õ�<„ñ�<Uí�<&é�<÷ä�<Éà�<œÜ�<oØ�<BÔ�<Ð�<éË�<¾Ç�<’Ã�<h¿�<=»�<·�<é²�<À®�<—ª�<o¦�<G¢�<ž�<ø™�<Ñ•�<«‘�<…��<_‰�<:…�<��<ñ|�<Íx�<©t�<†p�<cl�<Ah�<d�<ý_�<Ü[�<»W�<šS�<zO�<ZK�<;G�<C�<þ>�<à:�<Â6�<¥2�<ˆ.�<k*�<O&�<3"�<�<ý�<â�<È�<®�<•	�<|�<c�<Ký€<3ù€<õ€<ñ€<îì€<Øè€<Âä€<¬à€<—Ü€<ƒØ€<nÔ€<ZÐ€<GÌ€<4È€<!Ä€<À€<ü»€<ë·€<Ù³€<É¯€<¸«€<¨§€<˜£€<‰Ÿ€<z›€<k—€<]“€<O�€<B‹€<5‡€<(ƒ€<€<{€<w€<úr€<ïn€<åj€<Ûf€<Ñb€<È^€<¿Z€<·V€<¯R€<§N€< J€<™F€<’B€<Œ>€<†:€<�6€<|2€<w.€<s*€<o&€<k"€<h€<e€<c€<a€<_€<^
€<]€<]€<¹ü<ºô<»ì<½ä<ÀÜ<ÃÔ<ÇÌ<ÌÄ<Ò¼<Ø´<à¬<è¤<ðœ<ú”<�<…<}<'u<4m<Be<Q]<`U<pM<�E<“=<¥5<¸-<Ì%<à<ö<<"<:þ~<Rö~<kî~<…æ~<ŸÞ~<ºÖ~<ÖÎ~<óÆ~<¿~<.·~<M¯~<m§~<�Ÿ~<®—~<Ð�~<ò‡~<€~<:x~<^p~<„h~<ª`~<ÑX~<øP~<!I~<JA~<s9~<ž1~<É)~<õ!~<"~<O~<}
~<¬~<Ûú}<ó}<=ë}<nã}<¡Û}<ÔÓ}<Ì}<<Ä}<r¼}<¨´}<Þ¬}<¥}<N�}<‡•}<À�}<û…}<6~}<rv}<®n}<ëf}<)_}<hW}<§O}<çG}<(@}<i8}<«0}<î(}<2!}<v}<»}<
}<G}<Žú|<Öò|<ë|<hã|<²Û|<üÓ|<HÌ|<”Ä|<à¼|<.µ|<|­|<Ë¥|<ž|<k–|<¼Ž|<‡|<`|<³w|<p|<[h|<°`|<Y|<]Q|<´I|<B|<d:|<¾2|<+|<s#|<Î|<*|<‡|<å|<Cý{<¢õ{<î{<bæ{<ÃÞ{<$×{<‡Ï{<êÇ{<MÀ{<²¸{<±{<}©{<ã¡{<Jš{<²’{<‹{<„ƒ{<î{{<Yt{<Äl{<0e{<�]{<
V{<xN{<çF{<V?{<Æ7{<70{<©({<!{<Ž{<{<u
{<ê{<`ûz<Öóz<Mìz<Åäz<=Ýz<¶Õz</Îz<ªÆz<%¿z< ·z<°z<š¨z<¡z<–™z<’z<”Šz<ƒz<–{z<tz<šlz<ez<¡]z<%Vz<ªNz<0Gz<·?z<>8z<Å0z<N)z<×!z<az<ëz<vz<z<Žüy<õy<©íy<8æy<ÇÞy<W×y<çÏy<xÈy<
Áy<œ¹y</²y<Ãªy<W£y<í›y<‚”y<�y<°…y<G~y<àvy<yoy<hy<­`y<HYy<ãQy<€Jy<Cy<º;y<Y4y<ø,y<—%y<7y<Øy<zy<y<¿ y<cùx<òx<¬êx<Qãx<÷Ûx<žÔx<EÍx<íÅx<–¾x<@·x<ê¯x<”¨x<@¡x<ì™x<˜’x<E‹x<óƒx<¢|x<Qux<nx<±fx<c_x<Xx<ÇPx<zIx<.Bx<â:x<—3x<M,x<%x<ºx<rx<*x<ãx<œ x<Vùw<òw<Ìêw<‰ãw<EÜw<Õw<ÁÍw<Æw<>¿w<þ·w<¿°w<€©w<B¢w<›w<Ç“w<‹Œw<O…w<~w<Úvw< ow<ghw<.aw<÷Yw<¿Rw<‰Kw<SDw<=w<é5w<µ.w<�'w<N w<w<ëw<º
w<‰w<Züv<+õv<üív<Îæv<¡ßv<uØv<IÑv<Êv<óÂv<É»v<Ÿ´v<v­v<N¦v<'Ÿv< ˜v<Ù�v<´‰v<�‚v<j{v<Ftv<#mv<fv<ß^v<½Wv<�Pv<|Iv<]Bv<>;v< 4v<-v<å%v<Év<­v<’v<w	v<]v<Dûu<+ôu<íu<üåu<åÞu<Î×u<¹Ðu<¤Éu<�Âu<|»u<h´u<V­u<D¦u<2Ÿu<"˜u<‘u<Šu<ó‚u<å{u<×tu<Êmu<½fu<±_u<¦Xu<›Qu<‘Ju<ˆCu<<u<w5u<o.u<h'u<b u<\u<Wu<Ru<Nu<Kýt<Höt<Eït<Dèt<Cát<BÚt<CÓt<CÌt<EÅt<G¾t<I·t<L°t<P©t<U¢t<Z›t<_”t<e�t<l†t<st<{xt<„qt<�jt<—ct<¡\t<¬Ut<¸Nt<ÄGt<Ð@t<Þ9t<ì2t<ú+t<	%t<t<)t<:t<K	t<]t<pûs<ƒôs<—ís<¬æs<Àßs<ÖØs<ìÑs<Ës<Äs<2½s<K¶s<d¯s<~¨s<˜¡s<³šs<Î“s<êŒs<†s<$s<Bxs<`qs<js<Ÿcs<¿\s<ßUs<Os<"Hs<EAs<h:s<Œ3s<°,s<Ô%s<ús< s<Fs<m
s<•s<½ür<æõr<ïr<9èr<dár<�Úr<»Ór<çÌr<Ær<A¿r<o¸r<ž±r<Íªr<ý£r<-�r<^–r<��r<Áˆr<ô�r<'{r<[tr<�mr<Äfr<ú_r<0Yr<fRr<�Kr<ÕDr<>r<F7r<€0r<º)r<ô"r</r<kr<§r<är<"r<`úq<žóq<Ýìq<æq<]ßq<žØq<ßÑq<!Ëq<dÄq<§½q<ê¶q</°q<s©q<¹¢q<þ›q<E•q<ŒŽq<Ó‡q<�q<dzq<­sq<÷lq<Bfq<�_q<ØXq<$Rq<qKq<¾Dq<>q<Z7q<©0q<ø)q<H#q<˜q<éq<;q<�q<àq<3ûp<‡ôp<Ûíp<0çp<†àp<ÜÙp<2Óp<ŠÌp<áÅp<:¿p<’¸p<ì±p<F«p< ¤p<û�p<W—p<³�p<Šp<mƒp<Ê|p<)vp<‡op<çhp<Gbp<§[p<Up<jNp<ÌGp</Ap<’:p<ö3p<Z-p<¿&p<$ p<Šp<ñp<Xp<¿p<(ÿo<�øo<ùño<cëo<Íäo<8Þo<¤×o<Ño<|Êo<éÃo<W½o<Å¶o<3°o<£©o<£o<ƒœo<ó•o<e�o<Öˆo<I‚o<¼{o</uo<£no<ho<�ao<[o<yTo<ïMo<gGo<Þ@o<W:o<Ð3o<I-o<Ã&o<= o<¸o<4o<°o<,o<©ÿn<'ùn<¥òn<$ìn<£ån<#ßn<£Øn<$Òn<¥Ën<'Ån<ª¾n<-¸n<°±n<4«n<¹¤n<>žn<Ã—n<I‘n<ÐŠn<W„n<ß}n<gwn<ðpn<yjn<dn<�]n<Wn<£Pn</Jn<¼Cn<I=n<Ö6n<d0n<ó)n<‚#n<n<¡n<2n<Ã	n<Un<çüm<yöm<ðm< ém<5ãm<ÉÜm<_Öm<ôÏm<‹Ém<"Ãm<¹¼m<Q¶m<é¯m<‚©m<£m<¶œm<P–m<ë�m<†‰m<"ƒm<¿|m<\vm<úom<˜im<6cm<Õ\m<uVm<Pm<¶Im<WCm<ù<m<›6m<=0m<á)m<„#m<)m<Ím<sm<
m<¿m<eýl<÷l<µðl<]êl<äl<¯Ýl<Y×l<Ñl<®Êl<YÄl<¾l<²·l<_±l<«l<º¤l<hžl<˜l<Ç‘l<w‹l<'…l<Ø~l<‰xl<;rl<îkl<¡el<T_l<Yl<½Rl<rLl<'Fl<Ý?l<“9l<J3l<-l<º&l<r l<+l<ål<Ÿl<Yl<l<Ðúk<Œôk<Hîk<èk<Ãák<�Ûk<?Õk<þÎk<¾Èk<}Âk<>¼k<ÿµk<À¯k<‚©k<E£k<�k<Ë–k<��k<TŠk<„k<Þ}k<¤wk<jqk<1kk<ødk<À^k<‰Xk<RRk<Lk<åEk<¯?k<z9k<E3k<-k<Ý&k<ª k<xk<Ek<k<âk<²k<�ûj<Rõj<"ïj<óèj<Åâj<—Üj<jÖj<=Ðj<Êj<åÃj<º½j<�·j<d±j<:«j<¥j<èžj<¿˜j<—’j<pŒj<I†j<"€j<üyj<×sj<²mj<�gj<iaj<E[j<"Uj< Oj<ÝHj<¼Bj<š<j<z6j<Y0j<:*j<$j<üj<Ýj<¿j<¢j<…j<iÿi<Mùi<1ói<íi<üæi<âài<ÈÚi<¯Ôi<–Îi<~Èi<gÂi<O¼i<9¶i<#°i<ªi<ø£i<ã�i<Î—i<»‘i<§‹i<”…i<‚i<pyi<^si<Mmi<=gi<-ai<[i<Ui< Oi<ñHi<äBi<Ö<i<Ê6i<½0i<²*i<¦$i<›i<‘i<‡i<~i<ui<l i<dúh<\ôh<Uîh<Oèh<Hâh<CÜh<=Öh<9Ðh<4Êh<0Äh<-¾h<*¸h<(²h<&¬h<$¦h<# h<"šh<"”h<#Žh<#ˆh<%‚h<&|h<)vh<+ph<.jh<2dh<6^h<;Xh<?Rh<ELh<KFh<Q@h<X:h<_4h<g.h<o(h<x"h<�h<Šh<”h<Ÿ
h<ªh<µþg<Áøg<Îòg<Úìg<èæg<õàg<Ûg<Õg<!Ïg<1Ég<AÃg<Q½g<b·g<s±g<…«g<—¥g<ªŸg<½™g<Ñ“g<å�g<ù‡g<‚g<$|g<:vg<Ppg<gjg<~dg<–^g<®Xg<ÇRg<àLg<ùFg<Ag<.;g<H5g<d/g<)g<œ#g<¸g<Ög<óg<g<0g<N g<núf<Žôf<®îf<Ïèf<ðâf<Ýf<3×f<VÑf<yËf<œÅf<À¿f<ä¹f<	´f<.®f<T¨f<z¢f<¡œf<Ç–f<ï�f<‹f<?…f<hf<‘yf<»sf<åmf<hf<:bf<e\f<‘Vf<¾Pf<êJf<Ef<E?f<s9f<¢3f<Ñ-f< (f<0"f<`f<‘f<Âf<ó
f<%f<Xÿe<‹ùe<¾óe<òíe<&èe<[âe<�Üe<ÅÖe<ûÐe<2Ëe<iÅe< ¿e<×¹e<´e<H®e<�¨e<»¢e<õœe</—e<j‘e<¥‹e<à…e<€e<Yze<–te<Óne<ie<Oce<Ž]e<ÍWe<Re<MLe<�Fe<Î@e<;e<Q5e<“/e<Õ)e<$e<\e< e<äe<)e<ne<³e<ùûd<@öd<‡ðd<Îêd<åd<^ßd<¦Ùd<ïÓd<9Îd<ƒÈd<ÍÂd<½d<c·d<®±d<ú«d<G¦d<” d<ášd</•d<}�d<Ë‰d<„d<j~d<ºxd<
sd<Zmd<¬gd<ýad<O\d<¡Vd<ôPd<GKd<›Ed<ï?d<D:d<™4d<î.d<D)d<š#d<ðd<Gd<Ÿd<÷d<Od<¨d<üc<Zöc<´ðc<ëc<iåc<Åßc< Úc<|Ôc<ÙÎc<6Éc<“Ãc<ñ½c<O¸c<®²c<­c<l§c<Ì¡c<,œc<�–c<î�c<O‹c<±…c<€c<vzc<Ùtc<=oc<¡ic<dc<j^c<ÏXc<5Sc<›Mc<Hc<hBc<Ð<c<77c<Ÿ1c<,c<q&c<Ú c<Dc<®c<c<„
c<ïc<[ÿb<Çùb<4ôb<¡îb<éb<|ãb<ëÝb<YØb<ÉÒb<8Íb<¨Çb<Âb<‰¼b<ú¶b<l±b<Þ«b<P¦b<Ã b<6›b<ª•b<�b<’Šb<…b<|b<òyb<htb<ßnb<Uib<Ícb<D^b<¼Xb<5Sb<®Mb<'Hb<¡Bb<=b<•7b<2b<Œ,b<'b<„!b< b<}b<úb<xb<öb<u b<ôúa<sõa<óïa<sêa<ôäa<tßa<öÙa<xÔa<úÎa<|Éa<ÿÃa<ƒ¾a<¹a<‹³a<®a<”¨a<£a<Ÿ�a<%˜a<¬’a<3�a<º‡a<B‚a<Ê|a<Swa<Üqa<ela<ïfa<yaa<\a<ŽVa<Qa<¥Ka<1Fa<¾@a<K;a<Ø5a<f0a<ô*a<‚%a< a<¡a<0a<Àa<Q
a<âa<sÿ`<ú`<—ô`<)ï`<¼é`<Oä`<ãÞ`<wÙ`<Ô`< Î`<5É`<ËÃ`<`¾`<÷¸`<Ž³`<%®`<¼¨`<T£`<ì�`<…˜`<“`<¸�`<Rˆ`<ì‚`<†}`<!x`<½r`<Ym`<õg`<‘b`<.]`<ÌW`<iR`<M`<¦G`<EB`<ä<`<„7`<$2`<Å,`<e'`<"`<¨`<J`<í`<�`<3`<Ö`<zü_<÷_<Ãñ_<hì_<ç_<³á_<ZÜ_< ×_<§Ñ_<OÌ_<öÆ_<žÁ_<G¼_<ð¶_<™±_<C¬_<í¦_<—¡_<Bœ_<í–_<™‘_<EŒ_<ñ†_<ž�_<K|_<ùv_<¦q_<Ul_<g_<²a_<b\_<W_<ÂQ_<rL_<#G_<ÔA_<†<_<87_<ê1_<�,_<P'_<"_<¸_<l_<!_<Ö_<‹_<A_<÷ü^<®÷^<eò^<í^<Ôç^<Œâ^<DÝ^<ý×^<¶Ò^<pÍ^<*È^<äÂ^<Ÿ½^<Z¸^<³^<Ñ­^<�¨^<J£^<ž^<Ä˜^<‚“^<@Ž^<þˆ^<½ƒ^<|~^<<y^<üs^<¼n^<}i^<>d^<ÿ^^<ÁY^<ƒT^<EO^<J^<ÌD^<�?^<S:^<5^<Ü/^<¡*^<g%^<- ^<ó^<¹^<€^<H^<^<× ^< û]<iö]<2ñ]<ûë]<Åæ]<�á]<ZÜ]<%×]<ðÑ]<¼Ì]<ˆÇ]<UÂ]<!½]<ï·]<¼²]<Š­]<X¨]<'£]<ö�]<Å˜]<•“]<eŽ]<6‰]<„]<Ø~]<©y]<{t]<Mo]< j]<ód]<Ç_]<šZ]<nU]<CP]<K]<íE]<Â@]<˜;]<o6]<E1]<,]<ô&]<Ë!]<£]<|]<U]<.]<]<á]<»ý\<–ø\<qó\<Lî\<(é\<ä\<àÞ\<½Ù\<šÔ\<xÏ\<UÊ\<4Å\<À\<ñº\<Ðµ\<°°\<�«\<p¦\<Q¡\<2œ\<—\<õ‘\<×Œ\<º‡\<�‚\<€}\<cx\<Gs\<+n\<i\<õc\<Ú^\<ÀY\<¦T\<ŒO\<sJ\<ZE\<B@\<);\<6\<ú0\<ã+\<Ì&\<¶!\<Ÿ\<Š\<t\<_\<K\<6\<"þ[<ù[<ûó[<èî[<Öé[<Ää[<²ß[< Ú[<�Õ[<~Ð[<nË[<^Æ[<NÁ[<>¼[</·[<!²[<­[<¨[<÷¢[<é�[<Ü˜[<Ð“[<ÃŽ[<·‰[<¬„[<¡[<–z[<‹u[<�p[<wk[<nf[<da[<\\[<SW[<KR[<CM[<<H[<5C[<.>[<(9[<"4[</[<*[<%[< [<	[<[<[<þ[<û[<ø[<öüZ<ô÷Z<òòZ<ñíZ<ðèZ<ðãZ<ðÞZ<ðÙZ<ðÔZ<ñÏZ<òÊZ<ôÅZ<öÀZ<ø»Z<ú¶Z<ý±Z<­Z<¨Z<£Z<žZ<™Z<”Z<�Z<!ŠZ<'…Z<-€Z<4{Z<:vZ<BqZ<IlZ<QgZ<ZbZ<b]Z<kXZ<uSZ<~NZ<ˆIZ<“DZ<ž?Z<©:Z<´5Z<À0Z<Ì+Z<Ø&Z<å!Z<òZ<ÿZ<Z<Z<)	Z<8Z<GÿY<WúY<fõY<wðY<‡ëY<˜æY<©áY<ºÜY<Ì×Y<ÞÒY<ñÍY<ÉY<ÄY<*¿Y<>ºY<RµY<f°Y<{«Y<�¦Y<¥¡Y<»œY<Ñ—Y<è’Y<ÿ�Y<‰Y<-„Y<EY<]zY<uuY<ŽpY<§kY<ÁfY<ÚaY<ô\Y<XY<*SY<ENY<`IY<|DY<˜?Y<´:Y<Ñ5Y<î0Y<,Y<)'Y<G"Y<fY<„Y<£Y<ÃY<â	Y<Y<# Y<CûX<döX<†ñX<§ìX<ÉçX<ìâX<ÞX<1ÙX<UÔX<xÏX<œÊX<ÁÅX<åÀX<
¼X</·X<U²X<{­X<¡¨X<È£X<ïžX<šX<=•X<e�X<�‹X<¶†X<ß�X<}X<1xX<[sX<…nX<°iX<ÚdX<`X<1[X<]VX<‰QX<µLX<âGX<CX<<>X<j9X<˜4X<Æ/X<õ*X<$&X<S!X<ƒX<³X<ãX<X<E	X<vX<¨ÿW<ÙúW<öW<>ñW<qìW<¤çW<ØâW<ÞW<?ÙW<tÔW<©ÏW<ÞÊW<ÆW<IÁW<¼W<µ·W<ì²W<#®W<Z©W<’¤W<ÊŸW<›W<;–W<s‘W<­ŒW<æ‡W< ƒW<Z~W<•yW<ÐtW<pW<FkW<‚fW<¾aW<ú\W<7XW<tSW<±NW<ïIW<-EW<k@W<ª;W<é6W<(2W<g-W<§(W<ç#W<(W<iW<ªW<ëW<-W<oW<±W<ôýV<7ùV<zôV<¾ïV<ëV<FæV<‹áV<ÐÜV<ØV<ZÓV< ÎV<æÉV<-ÅV<sÀV<º»V<·V<I²V<‘­V<Ú¨V<"¤V<kŸV<´šV<þ•V<H‘V<’ŒV<Ü‡V<'ƒV<r~V<¾yV<	uV<UpV<¢kV<îfV<;bV<‰]V<ÖXV<$TV<rOV<ÁJV<FV<_AV<®<V<þ7V<N3V<ž.V<ï)V<@%V<‘ V<ãV<4V<‡V<ÙV<,	V<V<ÒÿU<&ûU<zöU<ÏñU<#íU<xèU<ÍãU<#ßU<yÚU<ÏÕU<%ÑU<|ÌU<ÓÇU<+ÃU<‚¾U<Ú¹U<3µU<‹°U<ä«U<=§U<—¢U<ñ�U<K™U<¥”U< �U<[‹U<¶†U<‚U<n}U<ÊxU<&tU<ƒoU<àjU<>fU<œaU<ú\U<XXU<·SU<OU<uJU<ÔEU<4AU<”<U<õ7U<V3U<·.U<*U<z%U<Ü U<>U<¡U<U<gU<Ê	U<.U<’ U<öûT<[÷T<ÀòT<%îT<‹éT<ðäT<WàT<½ÛT<$×T<‹ÒT<òÍT<ZÉT<ÂÄT<*ÀT<“»T<û¶T<d²T<Î­T<8©T<¢¤T< T<w›T<á–T<M’T<¸�T<$‰T<�„T<üT<i{T<ÖvT<CrT<±mT<iT<�dT<û_T<j[T<ÙVT<IRT<¸MT<(IT<˜DT<	@T<z;T<ë6T<\2T<Î-T<@)T<²$T<% T<—T<T<~T<òT<f	T<ÚT<O T<ÄûS<9÷S<®òS<$îS<šéS<åS<‡àS<þÛS<u×S<íÒS<eÎS<ÝÉS<UÅS<ÎÀS<G¼S<À·S<:³S<´®S<.ªS<¨¥S<#¡S<žœS<˜S<•“S<�S<�ŠS<	†S<†�S<}S<�xS<þsS<|oS<újS<yfS<øaS<w]S<öXS<vTS<öOS<vKS<öFS<wBS<ø=S<y9S<û4S<}0S<ÿ+S<‚'S<#S<ˆS<S<�S<S<—S<S< S<%ÿR<«úR<0öR<¶ñR<<íR<ÃèR<JäR<ÑßR<XÛR<àÖR<hÒR<ðÍR<xÉR<ÅR<ŠÀR<¼R<�·R<'³R<±®R<<ªR<Æ¥R<Q¡R<ÝœR<h˜R<ô“R<€�R<‹R<š†R<'‚R<´}R<ByR<ÏtR<^pR<ìkR<{gR<
cR<™^R<)ZR<¸UR<IQR<ÙLR<jHR<ûCR<Œ?R<;R<¯6R<A2R<Ô-R<f)R<ù$R<Œ R< R<´R<HR<ÜR<q
R<R<›R<0ýQ<ÆøQ<\ôQ<òïQ<ˆëQ<çQ<¶âQ<NÞQ<åÙQ<}ÕQ<ÑQ<®ÌQ<GÈQ<àÃQ<y¿Q<»Q<­¶Q<G²Q<á­Q<|©Q<¥Q<² Q<NœQ<ê—Q<†“Q<"�Q<¿ŠQ<\†Q<ù�Q<–}Q<4yQ<ÒtQ<ppQ<lQ<®gQ<McQ<ì^Q<ŒZQ<,VQ<ÌQQ<lMQ<IQ<®DQ<P@Q<ñ;Q<“7Q<53Q<Ø.Q<z*Q<&Q<À!Q<dQ<Q<¬Q<PQ<õQ<™Q<?Q<äþP<ŠúP<0öP<ÖñP<|íP<#éP<ÊäP<qàP<ÜP<Á×P<iÓP<ÏP<ºÊP<cÆP<ÂP<¶½P<_¹P<	µP<´°P<^¬P<	¨P<´£P<_ŸP<›P<·–P<c’P<ŽP<¼‰P<i…P<�P<Ä|P<rxP< tP<ÎoP<}kP<,gP<ÛbP<Š^P<:ZP<êUP<šQP<JMP<ûHP<¬DP<]@P<<P<Á7P<s3P<%/P<Ø*P<‹&P<>"P<ñP<¥P<YP<P<ÁP<vP<+P<àÿO<–ûO<L÷O<óO<¸îO<oêO<&æO<ÝáO<”ÝO<LÙO<ÕO<¼ÐO<tÌO<-ÈO<æÃO<Ÿ¿O<Y»O<·O<Í²O<‡®O<AªO<ü¥O<·¡O<s�O<.™O<ê”O<¦�O<cŒO<ˆO<ÜƒO<™O<W{O<wO<ÓrO<‘nO<OjO<fO<ÍaO<Œ]O<LYO<UO<ÌPO<ŒLO<MHO<DO<Ï?O<�;O<R7O<3O<Ö.O<˜*O<[&O<"O<áO<¤O<hO<,O<ðO<µO<zO<? O<üN<É÷N<�óN<UïN<ëN<âæN<©âN<pÞN<7ÚN<ÿÕN<ÇÑN<�ÍN<WÉN< ÅN<éÀN<²¼N<{¸N<E´N<°N<Ù«N<¤§N<n£N<9ŸN<›N<Ð–N<œ’N<hŽN<4ŠN< †N<Í�N<š}N<gyN<5uN<qN<ÑlN<ŸhN<ndN<<`N<\N<ÛWN<ªSN<zON<JKN<GN<ëBN<¼>N<�:N<^6N<02N<.N<Ô)N<¦%N<y!N<LN<N<òN<ÆN<šN<nN<BN< N<ìûM<Á÷M<–óM<lïM<BëM<çM<ïâM<ÅÞM<œÚM<sÖM<KÒM<"ÎM<úÉM<ÓÅM<«ÁM<„½M<]¹M<6µM<±M<é¬M<Ã¨M<�¤M<w M<RœM<-˜M<”M<ä�M<¿‹M<›‡M<xƒM<TM<1{M<wM<ërM<ÈnM<¦jM<„fM<bbM<A^M<ZM<þUM<ÝQM<½MM<œIM<|EM<]AM<==M<9M<ÿ4M<à0M<Á,M<£(M<…$M<g M<IM<,M<M<òM<ÖM<¹M<�M<�ÿL<fûL<J÷L</óL<ïL<úêL<ßæL<ÅâL<«ÞL<’ÚL<xÖL<_ÒL<FÎL<.ÊL<ÆL<ýÁL<å½L<Î¹L<¶µL<Ÿ±L<ˆ­L<q©L<[¥L<E¡L</�L<™L<•L<î�L<ÙŒL<ÅˆL<°„L<œ€L<ˆ|L<txL<atL<MpL<:lL<(hL<dL<`L<ñ[L<ßWL<ÍSL<¼OL<«KL<šGL<ŠCL<y?L<i;L<Y7L<J3L<:/L<++L<'L<#L<ÿL<ñL<ãL<ÖL<ÈL<»
L<®L<¡L<•þK<ˆúK<|öK<qòK<eîK<ZêK<OæK<DâK<:ÞK</ÚK<%ÖK<ÒK<ÎK<ÊK<ÿÅK<öÁK<î½K<å¹K<ÝµK<Õ±K<Î­K<Æ©K<¿¥K<¸¡K<±�K<«™K<¥•K<Ÿ‘K<™�K<“‰K<Ž…K<‰�K<„}K<€yK<{uK<wqK<smK<piK<leK<iaK<f]K<dYK<aUK<_QK<]MK<[IK<ZEK<YAK<X=K<W9K<V5K<V1K<V-K<V)K<W%K<W!K<XK<YK<ZK<\K<^K<`	K<bK<eK<hýJ<kùJ<nõJ<qñJ<uíJ<yéJ<}åJ<�áJ<†ÝJ<‹ÙJ<�ÕJ<•ÑJ<›ÍJ<¡ÉJ<§ÅJ<­ÁJ<´½J<º¹J<ÁµJ<É±J<Ð­J<Ø©J<à¥J<è¡J<ð�J<ù™J<–J<’J<ŽJ<ŠJ<'†J<1‚J<<~J<FzJ<QvJ<\rJ<gnJ<rjJ<~fJ<ŠbJ<–^J<¢ZJ<¯VJ<¼RJ<ÉNJ<ÖJJ<ãFJ<ñBJ<ÿ>J<;J<7J<*3J<9/J<H+J<X'J<g#J<wJ<‡J<—J<¨J<¸J<ÉJ<ÛJ<ìJ<þÿI<üI<!øI<4ôI<FðI<YìI<lèI<äI<“àI<§ÜI<ºØI<ÏÔI<ãÐI<øÌI<ÉI<"ÅI<7ÁI<L½I<b¹I<xµI<Ž±I<¥­I<»©I<Ò¥I<é¡I<žI<šI<0–I<H’I<`ŽI<yŠI<’†I<ª‚I<Ä~I<ÝzI<÷vI<sI<+oI<EkI<_gI<zcI<•_I<°[I<ÌWI<çSI<PI<LI<<HI<XDI<u@I<’<I<¯8I<Í4I<ê0I<-I<&)I<E%I<c!I<‚I<¡I<ÀI<àI<ÿI<
I<?I<`I<€þH<¡úH<ÂöH<äòH<ïH<'ëH<IçH<kãH<�ßH<°ÛH<Ó×H<öÓH<ÐH<<ÌH<`ÈH<„ÄH<¨ÀH<Í¼H<ñ¸H<µH<;±H<`­H<†©H<¬¥H<Ò¡H<ø�H<šH<E–H<l’H<“ŽH<ºŠH<á†H<	ƒH<1H<Y{H<‚wH<ªsH<ÓoH<ükH<%hH<OdH<x`H<¢\H<ÌXH<÷TH<!QH<LMH<wIH<¢EH<ÎAH<ú=H<&:H<R6H<~2H<«.H<×*H<'H<2#H<_H<�H<ºH<éH<H<EH<tH<£H<Ò H<ýG<1ùG<aõG<‘ñG<ÁíG<òéG<#æG<TâG<…ÞG<¶ÚG<èÖG<ÓG<LÏG<~ËG<°ÇG<ãÃG<ÀG<I¼G<|¸G<°´G<ã°G<­G<L©G<€¥G<µ¡G<é�G<šG<T–G<‰’G<¿ŽG<õŠG<+‡G<aƒG<˜G<Ï{G<xG<=tG<tpG<¬lG<ähG<eG<TaG<�]G<ÅYG<þUG<7RG<qNG<ªJG<äFG<CG<X?G<“;G<Í7G<4G<C0G<,G<º(G<ö$G<2!G<nG<ªG<çG<$G<aG<ž
G<ÛG<G<WÿF<•ûF<Ó÷F<ôF<PðF<�ìF<ÎèF<åF<MáF<�ÝF<ÍÙF<ÖF<NÒF<ŽÎF<ÏÊF<ÇF<QÃF<“¿F<Ô»F<¸F<X´F<›°F<Ý¬F< ©F<c¥F<¦¡F<é�F<-šF<q–F<µ’F<ùŽF<=‹F<‚‡F<ÇƒF<€F<Q|F<–xF<ÜtF<"qF<hmF<®iF<õeF<<bF<ƒ^F<ÊZF<WF<YSF< OF<èKF<1HF<yDF<Â@F<
=F<S9F<�5F<æ1F<0.F<z*F<Ä&F<#F<XF<£F<îF<9F<„F<ÐF<	F<hF<´F< þE<MúE<šöE<æòE<4ïE<�ëE<ÏçE<äE<jàE<¹ÜE<ÙE<VÕE<¥ÑE<ôÍE<CÊE<’ÆE<âÂE<2¿E<‚»E<Ò·E<#´E<s°E<Ä¬E<©E<g¥E<¸¡E<
žE<\šE<®–E< “E<S�E<¦‹E<ù‡E<L„E<Ÿ€E<ó|E<GyE<›uE<ïqE<CnE<˜jE<ífE<BcE<—_E<ì[E<BXE<˜TE<îPE<DME<šIE<ñEE<HBE<Ÿ>E<ö:E<N7E<¥3E<ý/E<U,E<®(E<%E<_!E<¸E<E<jE<ÃE<E<wE<ÑE<+E<† E<áüD<<ùD<—õD<òñD<MîD<©êD<çD<aãD<¾ßD<ÜD<wØD<ÔÔD<1ÑD<ŽÍD<ìÉD<IÆD<§ÂD<¿D<d»D<Â·D<!´D<€°D<ß¬D<?©D<ž¥D<þ¡D<^žD<¾šD<—D<“D<à�D<AŒD<¢ˆD<…D<e�D<Æ}D<(zD<ŠvD<írD<OoD<²kD<hD<xdD<Û`D<?]D<£YD<VD<kRD<ÏND<4KD<˜GD<ýCD<b@D<È<D<-9D<“5D<ù1D<_.D<Å*D<,'D<“#D<úD<aD<ÈD<0D<—D<ÿD<g
D<ÐD<8D<¡ÿC<
üC<søC<ÜôC<FñC<¯íC<êC<ƒæC<íâC<XßC<ÃÛC<-ØC<™ÔC<ÑC<oÍC<ÛÉC<GÆC<³ÂC<¿C<‹»C<ø·C<e´C<Ò°C<?­C<­©C<¦C<ˆ¢C<öžC<d›C<Ó—C<A”C<°�C<�C<Ž‰C<ý…C<m‚C<Ý~C<M{C<½wC<-tC<žpC<mC<iC<ñeC<bbC<Ó^C<E[C<·WC<)TC<›PC<MC<€IC<óEC<fBC<Ú>C<M;C<Á7C<54C<©0C<-C<‘)C<&C<{"C<ðC<eC<ÚC<PC<ÆC<;C<²	C<(C<žC<ÿB<ŒûB<øB<{ôB<òðB<jíB<âéB<ZæB<ÒâB<JßB<ÃÛB<<ØB<µÔB<.ÑB<¨ÍB<!ÊB<›ÆB<ÃB<�¿B<
¼B<„¸B<ÿ´B<z±B<õ­B<pªB<ì¦B<g£B<ãŸB<_œB<Ü˜B<X•B<Õ‘B<RŽB<ÏŠB<L‡B<ÉƒB<G€B<Å|B<CyB<ÁuB<?rB<¾nB<=kB<¼gB<;dB<º`B<9]B<¹YB<9VB<¹RB<9OB<ºKB<:HB<»DB<<AB<¾=B<?:B<Á6B<B3B<Ä/B<F,B<É(B<K%B<Î!B<QB<ÔB<WB<ÛB<^B<âB<f	B<êB<oB<óþA<xûA<ý÷A<‚ôA<ñA<�íA<êA<™æA<ãA<¥ßA<,ÜA<²ØA<9ÕA<ÀÑA<GÎA<ÏÊA<VÇA<ÞÃA<fÀA<î¼A<w¹A<ÿµA<ˆ²A<¯A<š«A<#¨A<¬¤A<6¡A<À�A<JšA<Ô–A<^“A<é�A<tŒA<ÿˆA<Š…A<‚A<¡~A<,{A<¸wA<DtA<ÐpA<]mA<éiA<vfA<cA<�_A<\A<«XA<9UA<ÇQA<UNA<ãJA<qGA< DA<�@A<=A<­9A<<6A<Ì2A<\/A<ì+A<|(A<%A<œ!A<-A<¾A<OA<àA<qA<A<•	A<'A<¹A<Kÿ@<Ýû@<pø@<õ@<–ñ@<)î@<½ê@<Pç@<äã@<xà@<Ý@< Ù@<5Ö@<ÉÒ@<^Ï@<óË@<ˆÈ@<Å@<³Á@<I¾@<ßº@<u·@<´@<¢°@<9­@<Ï©@<f¦@<þ¢@<•Ÿ@<-œ@<Ä˜@<\•@<ô‘@<�Ž@<%‹@<¾‡@<W„@<ð€@<‰}@<"z@<¼v@<Us@<ïo@<‰l@<$i@<¾e@<Yb@<ô^@<�[@<*X@<ÅT@<aQ@<üM@<˜J@<4G@<ÐC@<m@@<	=@<¦9@<C6@<à2@<~/@<,@<¹(@<W%@<õ!@<“@<1@<Ð@<o@<@<­@<L
@<ë@<‹@<+ @<Ëü?<kù?<ö?<¬ò?<Mï?<íë?<�è?<0å?<Ñá?<sÞ?<Û?<·×?<YÔ?<ûÐ?<�Í?<@Ê?<ãÆ?<†Ã?<)À?<Ì¼?<p¹?<¶?<¸²?<\¯?< ¬?<¤¨?<I¥?<î¡?<“ž?<8›?<Ý—?<ƒ”?<(‘?<Î�?<tŠ?<‡?<Áƒ?<g€?<}?<µy?<\v?<s?<«o?<Rl?<úh?<¢e?<Jb?<ò^?<›[?<CX?<ìT?<•Q?<>N?<èJ?<‘G?<;D?<å@?<�=?<9:?<ã6?<Ž3?<90?<ä,?<�)?<:&?<å"?<‘?<=?<é?<•?<A?<î?<š?<G?<ô?<¡?<Oþ><üú><ª÷><Xô><ñ><´í><bê><ç><Àã><oà><Ý><ÍÙ><|Ö><,Ó><ÜÏ><ŒÌ><<É><ìÅ><œÂ><M¿><þ»><¯¸><`µ><²><Ã®><u«><&¨><Ø¤><‹¡><=ž><ïš><¢—><U”><‘><»�><oŠ><"‡><Öƒ><Š€><>}><òy><¦v><[s><p><Ål><zi></f><åb><š_><P\><Y><¼U><rR><)O><ßK><–H><ME><B><¼>><s;><+8><â4><š1><S.><+><Ã'><|$><5!><î><§><`><><Ô><�><H
><><¼><w ><1ý=<ìù=<§ö=<bó=<ð=<Ùì=<•é=<Qæ=<ã=<Éß=<†Ü=<BÙ=<ÿÕ=<¼Ò=<yÏ=<6Ì=<óÈ=<±Å=<oÂ=<-¿=<ë»=<©¸=<gµ=<&²=<å®=<£«=<c¨=<"¥=<á¡=<¡ž=<`›=< ˜=<à”=<¡‘=<aŽ=<"‹=<â‡=<£„=<d�=<&~=<çz=<©w=<jt=<,q=<îm=<±j=<sg=<6d=<ø`=<»]=<~Z=<BW=<T=<ÈP=<ŒM=<PJ=<G=<ØC=<�@=<a==<&:=<ë6=<°3=<u0=<;-=< *=<Æ&=<Œ#=<R =<=<ß=<¥=<l=<3=<ú=<Á	=<ˆ=<P=< =<ßü<<§ù<<pö<<8ó<< ð<<Éì<<’é<<[æ<<$ã<<îß<<·Ü<<�Ù<<KÖ<<Ó<<ßÏ<<©Ì<<tÉ<<>Æ<<	Ã<<Ô¿<<Ÿ¼<<j¹<<6¶<<³<<Í¯<<™¬<<e©<<2¦<<þ¢<<ËŸ<<˜œ<<e™<<2–<<ÿ’<<Ì�<<šŒ<<h‰<<6†<<ƒ<<Ò<< |<<oy<<>v<<s<<Üo<<«l<<zi<<Jf<<c<<é_<<¹\<<‰Y<<ZV<<*S<<ûO<<ÌL<<�I<<nF<<?C<<@<<â<<<´9<<†6<<X3<<+0<<ý,<<Ð)<<¢&<<u#<<H <<<<ï<<Ã<<–<<j<<><<
<<ç<<»<<� <<eý;<:ú;<÷;<äó;<ºð;<�í;<eê;<;ç;<ä;<èà;<¾Ý;<•Ú;<l×;<CÔ;<Ñ;<ñÍ;<ÈÊ;< Ç;<xÄ;<OÁ;<(¾;< »;<Ø·;<±´;<‰±;<b®;<;«;<¨;<î¤;<Ç¡;<¡ž;<{›;<U˜;</•;<	’;<ãŽ;<¾‹;<™ˆ;<t…;<O‚;<*;<|;<áx;<¼u;<˜r;<to;<Pl;<-i;<	f;<æb;<Ã_;< \;<}Y;<ZV;<7S;<P;<óL;<ÑI;<¯F;<�C;<k@;<J=;<):;<7;<æ3;<Æ0;<¥-;<„*;<d';<D$;<$!;<;<ä;<Ä;<¥;<†;<g;<H;<);<
;<ì;<Íþ:<¯û:<‘ø:<sõ:<Vò:<8ï:<ì:<ýè:<àå:<Ãâ:<§ß:<ŠÜ:<mÙ:<QÖ:<5Ó:<Ð:<ýÌ:<áÉ:<ÆÆ:<ªÃ:<�À:<t½:<Yº:<>·:<$´:<	±:<ï­:<Õª:<»§:<¡¤:<‡¡:<nž:<U›:<;˜:<"•:<	’:<ñŽ:<Ø‹:<Àˆ:<§…:<�‚:<w:<_|:<Hy:<0v:<s:<p:<êl:<Ôi:<½f:<¦c:<�`:<y]:<cZ:<MW:<7T:<"Q:<N:<÷J:<âG:<ÍD:<¸A:<£>:<Ž;:<z8:<f5:<Q2:<=/:<*,:<):<&:<ï":<Ü:<É:<¶:<£:<�:<~:<k:<Y
:<G:<5:<$:<þ9<û9<ï÷9<Þô9<Íñ9<½î9<¬ë9<›è9<‹å9<{â9<kß9<[Ü9<KÙ9<<Ö9<,Ó9<Ð9<Í9<ÿÉ9<ðÆ9<áÃ9<ÓÀ9<Ä½9<¶º9<¨·9<š´9<Œ±9<®9<q«9<d¨9<W¥9<J¢9<=Ÿ9<0œ9<#™9<–9<“9<ÿ�9<óŒ9<ç‰9<Û†9<Ðƒ9<Ä€9<¹}9<®z9<£w9<˜t9<Žq9<ƒn9<yk9<oh9<ee9<[b9<Q_9<G\9<>Y9<5V9<+S9<"P9<M9<J9<G9< D9<ø@9<ð=9<è:9<à79<Ø49<Ñ19<É.9<Â+9<»(9<´%9<®"9<§9< 9<š9<”9<Ž9<ˆ9<‚9<}
9<w9<r9<m9<hþ8<cû8<_ø8<Zõ8<Vò8<Qï8<Mì8<Ié8<Fæ8<Bã8<>à8<;Ý8<8Ú8<5×8<2Ô8</Ñ8<-Î8<*Ë8<(È8<&Å8<$Â8<"¿8< ¼8<¹8<¶8<³8<°8<­8<ª8<§8<¤8<¡8<ž8<›8<˜8<•8<’8<�8<Œ8<‰8<†8<ƒ8<€8<}8<z8< w8<"t8<$q8<&n8<(k8<+h8<-e8<0b8<3_8<6\8<9Y8<<V8<?S8<CP8<FM8<JJ8<NG8<RD8<WA8<[>8<`;8<d88<i58<n28<s/8<x,8<~)8<ƒ&8<‰#8<� 8<•8<›8<¡8<¨8<®8<µ8<¼8<Ã8<Ê8<Ñ8<Ùÿ7<àü7<èù7<ðö7<øó7< ñ7<î7<ë7<è7<"å7<+â7<4ß7<=Ü7<FÙ7<PÖ7<YÓ7<cÐ7<mÍ7<wÊ7<�Ç7<‹Ä7<–Á7< ¾7<«»7<¶¸7<Áµ7<Ì²7<×¯7<ã¬7<î©7<ú¦7<¤7<¡7<ž7<*›7<7˜7<C•7<P’7<]�7<jŒ7<w‰7<„†7<’ƒ7<Ÿ€7<­}7<»z7<Éw7<×t7<åq7<ôn7<l7<i7< f7</c7<>`7<M]7<]Z7<lW7<|T7<ŒQ7<œN7<¬K7<¼H7<ÌE7<ÝB7<î?7<þ<7<:7< 77<247<C17<U.7<f+7<x(7<Š%7<œ"7<®7<Á7<Ó7<æ7<ù7<7<7<27<E7<Y7<l7<€ÿ6<”ü6<¨ù6<¼ö6<Ñó6<åð6<úí6<ë6<#è6<8å6<Nâ6<cß6<xÜ6<ŽÙ6<¤Ö6<ºÓ6<ÐÐ6<æÍ6<üÊ6<È6<)Å6<@Â6<W¿6<m¼6<…¹6<œ¶6<³³6<Ë°6<â­6<úª6<¨6<*¥6<C¢6<[Ÿ6<sœ6<Œ™6<¥–6<¾“6<×�6<ð�6<	‹6<#ˆ6<=…6<V‚6<p6<Š|6<¤y6<¿v6<Ùs6<ôp6<n6<)k6<Dh6<_e6<{b6<–_6<²\6<ÍY6<éV6<T6<!Q6<=N6<ZK6<vH6<“E6<°B6<Í?6<ê<6<:6<$76<B46<_16<}.6<›+6<¹(6<×%6<õ"6< 6<26<Q6<p6<�6<®6<Í6<í6<	6<,6<L6<l 6<Œý5<¬ú5<Ì÷5<íô5<ò5<.ï5<Oì5<pé5<‘æ5<²ã5<Ôà5<õÝ5<Û5<9Ø5<[Õ5<}Ò5<ŸÏ5<ÂÌ5<äÉ5<Ç5<)Ä5<LÁ5<o¾5<“»5<¶¸5<Ùµ5<ý²5<!°5<E­5<iª5<�§5<±¤5<Õ¡5<úž5<œ5<C™5<h–5<�“5<³�5<Ø�5<ýŠ5<#ˆ5<I…5<o‚5<•5<»|5<áy5<w5<.t5<Uq5<|n5<£k5<Êh5<ñe5<c5<@`5<g]5<�Z5<·W5<ßT5<R5<0O5<XL5<�I5<©F5<ÒC5<û@5<$>5<M;5<w85< 55<Ê25<ô/5<-5<H*5<r'5<œ$5<Ç!5<ñ5<5<G5<r5<�5<È5<ó5<5<J5<v5<¢5<Îÿ4<úü4<&ú4<S÷4<ô4<¬ñ4<Ùî4<ì4<3é4<`æ4<Žã4<»à4<éÝ4<Û4<DØ4<rÕ4< Ò4<ÏÏ4<ýÌ4<,Ê4<ZÇ4<‰Ä4<¸Á4<ç¾4<¼4<F¹4<u¶4<¥³4<Ô°4<®4<4«4<d¨4<•¥4<Å¢4<õŸ4<&�4<Wš4<ˆ—4<¹”4<ê‘4<�4<MŒ4<~‰4<°†4<âƒ4<�4<F~4<x{4<ªx4<Ýu4<s4<Bp4<um4<¨j4<Ûg4<e4<Bb4<u_4<©\4<ÝY4<W4<ET4<yQ4<­N4<âK4<I4<KF4<€C4<µ@4<ê=4<;4<T84<Š54<¿24<õ/4<+-4<a*4<—'4<Í$4<"4<:4<q4<§4<Þ4<4<M4<„4<»4<ó4<*4<b4<š 4<Òý3<
û3<Cø3<{õ3<´ò3<ìï3<%í3<^ê3<—ç3<Ðä3<
â3<Cß3<}Ü3<·Ù3<ðÖ3<*Ô3<dÑ3<ŸÎ3<ÙË3<É3<NÆ3<‰Ã3<ÄÀ3<ÿ½3<:»3<u¸3<±µ3<ì²3<(°3<d­3<Ÿª3<Û§3<¥3<T¢3<�Ÿ3<Íœ3<
š3<F—3<ƒ”3<À‘3<ýŽ3<;Œ3<x‰3<¶†3<óƒ3<1�3<o~3<­{3<ëx3<*v3<hs3<§p3<æm3<$k3<ch3<¢e3<âb3<!`3<`]3< Z3<àW3< U3<`R3< O3<àL3< J3<aG3<¡D3<âA3<#?3<d<3<¥93<æ63<(43<i13<«.3<ì+3<.)3<p&3<²#3<õ 3<73<y3<¼3<ÿ3<B3<…3<È3<3<N3<’3<Ö3< 3<]ý2<¡ú2<å÷2<)õ2<nò2<²ï2<÷ì2<<ê2<�ç2<Æä2<â2<Pß2<•Ü2<ÛÙ2< ×2<fÔ2<¬Ñ2<òÎ2<8Ì2<~É2<ÅÆ2<Ä2<RÁ2<™¾2<à»2<'¹2<n¶2<µ³2<ü°2<D®2<‹«2<Ó¨2<¦2<c£2<« 2<ó�2<<›2<„˜2<Í•2<“2<^�2<§�2<ñŠ2<:ˆ2<ƒ…2<Í‚2<€2<`}2<ªz2<ôw2<>u2<ˆr2<Òo2<m2<gj2<²g2<ýd2<Hb2<“_2<Þ\2<*Z2<uW2<ÁT2<R2<XO2<¤L2<ðI2<<G2<‰D2<ÕA2<"?2<n<2<»92<72<U42<¢12<ð.2<=,2<Š)2<Ø&2<&$2<t!2<Â2<2<^2<­2<û2<J2<™2<ç2<7	2<†2<Õ2<$2<tþ1<Ãû1<ù1<cö1<³ó1<ñ1<Sî1<¤ë1<ôè1<Eæ1<•ã1<æà1<7Þ1<ˆÛ1<ÙØ1<+Ö1<|Ó1<ÎÐ1<Î1<qË1<ÃÈ1<Æ1<gÃ1<ºÀ1<¾1<_»1<±¸1<¶1<W³1<ª°1<ý­1<P«1<¤¨1<÷¥1<K£1<Ÿ 1<ò�1<F›1<›˜1<ï•1<C“1<˜�1<ì�1<A‹1<–ˆ1<ë…1<@ƒ1<•€1<ê}1<@{1<•x1<ëu1<As1<–p1<ìm1<Ck1<™h1<ïe1<Fc1<œ`1<ó]1<J[1<¡X1<øU1<OS1<§P1<þM1<VK1<­H1<F1<]C1<µ@1<>1<f;1<¾81<61<o31<È01<!.1<z+1<Ó(1<,&1<†#1<ß 1<91<“1<ì1<F1<¡1<û1<U1<¯1<
	1<e1<À1<1<uþ0<Ñû0<,ù0<‡ö0<ãó0<>ñ0<šî0<öë0<Ré0<®æ0<
ä0<gá0<ÃÞ0< Ü0<|Ù0<ÙÖ0<6Ô0<“Ñ0<ðÎ0<NÌ0<«É0<Ç0<fÄ0<ÄÁ0<"¿0<€¼0<Þ¹0<<·0<š´0<ù±0<W¯0<¶¬0<ª0<t§0<Ó¤0<2¢0<‘Ÿ0<ñœ0<Pš0<°—0<•0<o’0<Ï�0<0�0<�Š0<ð‡0<Q…0<±‚0<€0<s}0<Ôz0<5x0<–u0<÷r0<Xp0<ºm0<k0<}h0<ße0<Ac0<£`0<^0<h[0<ÊX0<-V0<�S0<òP0<UN0<¸K0<I0<~F0<âC0<EA0<©>0<<0<p90<Ô60<840<œ10</0<e,0<Ê)0<.'0<“$0<ø!0<]0<Â0<'0<�0<ò0<X0<½0<#0<‰
0<ï0<U0<»0<" 0<ˆý/<ïú/<Vø/<¼õ/<#ó/<Šð/<òí/<Yë/<Àè/<(æ/<�ã/<÷à/<_Þ/<ÇÛ/</Ù/<—Ö/< Ô/<hÑ/<ÑÎ/<9Ì/<¢É/<Ç/<tÄ/<ÝÁ/<F¿/<°¼/<º/<ƒ·/<í´/<V²/<À¯/<*­/<”ª/<ÿ§/<i¥/<Ô¢/<> /<©�/<›/<˜/<ê•/<U“/<À�/<,Ž/<—‹/<‰/<o†/<Úƒ/<F�/<²~/<|/<‹y/<÷v/<dt/<Ñq/<=o/<ªl/<j/<„g/<òd/<_b/<Ì_/<:]/<¨Z/<X/<ƒU/<ñR/<`P/<ÎM/<<K/<«H/<F/<ˆC/<÷@/<f>/<Õ;/<D9/<³6/<"4/<’1/<//<q,/<á)/<Q'/<Á$/<1"/<¡/</<‚/<ó/<d/<Ô/<E/<¶/<(/<™/<
/<|/<í /<_þ.<Ñû.<Cù.<µö.<'ô.<™ñ.<ï.<~ì.<ñé.<dç.<×ä.<Jâ.<½ß.<0Ý.<£Ú.<Ø.<ŠÕ.<þÒ.<qÐ.<åÍ.<YË.<ÍÈ.<AÆ.<¶Ã.<*Á.<Ÿ¾.<¼.<ˆ¹.<ý¶.<r´.<ç±.<\¯.<Ñ¬.<Gª.<¼§.<2¥.<¨¢.< .<”�.<
›.<€˜.<ö•.<l“.<ã�.<ZŽ.<Ð‹.<G‰.<¾†.<5„.<¬�.<$.<›|.<z.<Šw.<u.<zr.<òo.<jm.<âj.<Zh.<Óe.<Kc.<Ä`.<<^.<µ[.<.Y.<§V.< T.<šQ.<O.<�L.<J.<€G.<úD.<tB.<î?.<h=.<â:.<\8.<×5.<R3.<Ì0.<G..<Â+.<=).<¸&.<3$.<¯!.<*.<¦.<!.<�.<.<•.<.<�.<
.<†.<.<.<ü .<yþ-<öû-<sù-<ðö-<nô-<ëñ-<iï-<æì-<dê-<âç-<`å-<Þâ-<\à-<ÚÝ-<YÛ-<×Ø-<VÖ-<ÕÓ-<SÑ-<ÒÎ-<QÌ-<ÑÉ-<PÇ-<ÏÄ-<OÂ-<Î¿-<N½-<Îº-<N¸-<Îµ-<N³-<Î°-<N®-<Ï«-<O©-<Ð¦-<Q¤-<Ò¡-<SŸ-<Ôœ-<Uš-<Ö—-<X•-<Ù’-<[�-<Ý�-<_‹-<áˆ-<c†-<åƒ-<g�-<é~-<l|-<ïy-<qw-<ôt-<wr-<úo-<}m-< k-<„h-<f-<‹c-<a-<’^-<\-<šY-<W-<¢T-<'R-<«O-<0M-<´J-<9H-<¾E-<CC-<È@-<M>-<Ò;-<X9-<Ý6-<c4-<é1-<n/-<ô,-<z*-< (-<‡%-<#-<“ -<-<¡-<'-<®-<5-<¼-<C-<Ë-<R
-<Ú-<a-<é-<q -<ùý,<�û,<	ù,<‘ö,<ô,<¢ñ,<*ï,<³ì,<<ê,<Åç,<Nå,<×â,<`à,<éÝ,<sÛ,<üØ,<†Ö,<Ô,<™Ñ,<#Ï,<­Ì,<8Ê,<ÂÇ,<LÅ,<×Â,<aÀ,<ì½,<w»,<¹,<Œ¶,<´,<£±,<.¯,<¹¬,<Eª,<Ð§,<\¥,<è¢,<t ,< ž,<Œ›,<™,<¥–,<1”,<¾‘,<J�,<×Œ,<dŠ,<ñ‡,<~…,<ƒ,<˜€,<&~,<³{,<Ay,<Ïv,<\t,<êq,<xo,<m,<•j,<#h,<±e,<@c,<Ï`,<]^,<ì[,<{Y,<
W,<™T,<(R,<¸O,<GM,<×J,<gH,<öE,<†C,<A,<¦>,<6<,<Ç9,<W7,<è4,<x2,<	0,<š-,<++,<¼(,<M&,<Þ#,<o!,<,<’,<$,<¶,<G,<Ù,<k,<þ,<�,<"	,<µ,<G,<Ú,<mÿ+<ÿü+<’ú+<&ø+<¹õ+<Ló+<ßð+<sî+<ì+<šé+<.ç+<Âä+<Vâ+<êß+<~Ý+<Û+<§Ø+<;Ö+<ÐÓ+<eÑ+<ùÎ+<ŽÌ+<#Ê+<¸Ç+<NÅ+<ãÂ+<xÀ+<¾+<¤»+<9¹+<Ï¶+<e´+<û±+<‘¯+<'­+<¾ª+<T¨+<ë¥+<�£+<¡+<¯ž+<Fœ+<Ý™+<t—+<•+<£’+<:�+<Ò�+<i‹+<‰+<™†+<1„+<É�+<a+<ú|+<’z+<*x+<Ãu+<\s+<ôp+<�n+<&l+<¿i+<Yg+<òd+<‹b+<%`+<¾]+<X[+<òX+<ŒV+<&T+<ÀQ+<ZO+<ôL+<�J+<)H+<ÄE+<^C+<ù@+<”>+</<+<Ê9+<e7+<5+<œ2+<70+<Ó-+<o++<
)+<¦&+<B$+<Þ!+<{+<+<³+<P+<ì+<‰+<&+<Ã+<`+<ý	+<š+<7+<Õ+<r +<þ*<®û*<Kù*<éö*<‡ô*<%ò*<Äï*<bí*< ë*<Ÿè*<=æ*<Üã*<{á*<ß*<¹Ü*<XÚ*<÷×*<–Õ*<6Ó*<ÕÐ*<uÎ*<Ì*<´É*<TÇ*<ôÄ*<”Â*<4À*<Ô½*<u»*<¹*<¶¶*<W´*<÷±*<˜¯*<9­*<Úª*<{¨*<¦*<¾£*<`¡*<Ÿ*<£œ*<Dš*<æ—*<ˆ•*<*“*<Í�*<oŽ*<Œ*<´‰*<V‡*<ù„*<›‚*<>€*<á}*<„{*<'y*<Ëv*<nt*<r*<µo*<Ym*<üj*< h*<Df*<èc*<Œa*<0_*<Õ\*<yZ*<X*<ÂU*<gS*<Q*<±N*<VL*<ûI*< G*<EE*<ëB*<�@*<6>*<Û;*<�9*<'7*<Í4*<s2*<0*<À-*<f+*<)*<³&*<Z$*< "*<§*<N*<õ*<œ*<D*<ë*<’*<:*<á*<‰
*<1*<Ù*<�*<)*<Ñþ)<zü)<"ú)<Ê÷)<sõ)<ó)<Åð)<mî)<ì)<¿é)<iç)<å)<»â)<eà)<Þ)<¸Û)<bÙ)<×)<¶Ô)<`Ò)<
Ð)<´Í)<^Ë)<	É)<³Æ)<^Ä)<	Â)<³¿)<^½)<	»)<´¸)<`¶)<´)<¶±)<b¯)<­)<¹ª)<e¨)<¦)<½£)<i¡)<Ÿ)<Áœ)<nš)<˜)<Ç•)<s“)< ‘)<ÍŽ)<zŒ)<'Š)<Ô‡)<�…)<.ƒ)<Ü€)<‰~)<7|)<äy)<’w)<@u)<îr)<œp)<Jn)<ùk)<§i)<Ug)<e)<³b)<a`)<^)<¿[)<nY)<W)<ÌT)<|R)<+P)<ÛM)<ŠK)<:I)<êF)<šD)<JB)<ú?)<ª=)<Z;)<
9)<»6)<k4)<2)<Í/)<~-)<.+)<ß()<‘&)<B$)<ó!)<¤)<V)<)<¹)<k)<)<Ï)<�)<3)<å
)<˜)<J)<ý)<¯)<bÿ(<ý(<Èú(<{ø(<.ö(<áó(<”ñ(<Gï(<ûì(<®ê(<bè(<æ(<Êã(<~á(<2ß(<æÜ(<šÚ(<NØ(<Ö(<·Ó(<lÑ(< Ï(<ÕÌ(<ŠÊ(<?È(<ôÅ(<©Ã(<^Á(<¿(<É¼(<º(<4¸(<êµ(< ³(<V±(<¯(<Â¬(<xª(<.¨(<å¥(<›£(<R¡(<Ÿ(<¿œ(<vš(<-˜(<ä•(<›“(<R‘(<	�(<ÁŒ(<xŠ(<0ˆ(<ç…(<Ÿƒ(<W�(<(<Ç|(<z(<7x(<ðu(<¨s(<aq(<o(<Òl(<‹j(<Ch(<üe(<µc(<oa(<(_(<á\(<›Z(<TX(<V(<ÇS(<�Q(<;O(<õL(<¯J(<iH(<#F(<ÞC(<˜A(<S?(<=(<È:(<ƒ8(<>6(<ù3(<´1(<o/(<*-(<æ*(<¡((<]&(<$(<Ô!(<�(<L(<(<Ä(<€(<<(<ø(<µ(<q(<.(<ë(<¨(<e(<"(<ßÿ'<œý'<Yû'<ù'<Ôö'<‘ô'<Oò'<ð'<Ëí'<‰ë'<Gé'<ç'<Ãä'<�â'<?à'<þÝ'<¼Û'<{Ù'<:×'<ùÔ'<¸Ò'<wÐ'<6Î'<õË'<´É'<sÇ'<3Å'<òÂ'<²À'<r¾'<2¼'<ò¹'<²·'<rµ'<2³'<ò°'<²®'<s¬'<3ª'<ô§'<µ¥'<v£'<7¡'<øž'<¹œ'<zš'<;˜'<ü•'<¾“'<‘'<A�'<�'<ÅŠ'<†ˆ'<H†'<
„'<Í�'<�'<Q}'<{'<Öx'<™v'<\t'<r'<áo'<¤m'<gk'<*i'<îf'<±d'<tb'<8`'<ü]'<¿['<ƒY'<GW'<U'<ÏR'<“P'<WN'<L'<àI'<¤G'<iE'<.C'<ò@'<·>'<|<'<A:'<8'<Ì5'<‘3'<V1'</'<á,'<§*'<m('<3&'<ù#'<¿!'<…'<K'<'<Ø'<ž'<e'<+'<ò'<¹'<€'<G	'<'<Õ'<œ'<c '<+þ&<òû&<ºù&<‚÷&<Iõ&<ó&<Ùð&<¡î&<jì&<2ê&<úç&<Âå&<‹ã&<Tá&<ß&<åÜ&<®Ú&<wØ&<@Ö&<	Ô&<ÒÑ&<›Ï&<eÍ&<.Ë&<øÈ&<ÁÆ&<‹Ä&<UÂ&<À&<é½&<³»&<}¹&<G·&<µ&<Ü²&<§°&<q®&<<¬&<ª&<Ò§&<�¥&<h£&<3¡&<þž&<Éœ&<•š&<`˜&<,–&<÷“&<Ã‘&<��&<[�&<'‹&<óˆ&<¿†&<Œ„&<X‚&<$€&<ñ}&<¾{&<Šy&<Ww&<$u&<ñr&<¾p&<‹n&<Xl&<&j&<óg&<Áe&<Žc&<\a&<*_&<÷\&<ÅZ&<“X&<aV&<0T&<þQ&<ÌO&<›M&<iK&<8I&<G&<ÕD&<¤B&<s@&<B>&<<&<á9&<°7&<5&<O3&<1&<î.&<¾,&<Ž*&<^(&<.&&<þ#&<Î!&<ž&<o&<?&<&<à&<±&<‚&<R&<#&<ô&<Æ	&<—&<h&<9&<&<Ýþ%<®ü%<€ú%<Rø%<$ö%<öó%<Èñ%<šï%<lí%<>ë%<é%<ãæ%<¶ä%<‰â%<[à%<.Þ%<Ü%<ÔÙ%<§×%<zÕ%<NÓ%<!Ñ%<õÎ%<ÈÌ%<œÊ%<oÈ%<CÆ%<Ä%<ëÁ%<¿¿%<“½%<g»%<<¹%<·%<å´%<¹²%<Ž°%<c®%<7¬%<ª%<á§%<¶¥%<‹£%<a¡%<6Ÿ%<�%<áš%<¶˜%<Œ–%<b”%<8’%<�%<ä�%<º‹%<�‰%<f‡%<<…%<ƒ%<é€%<À~%<—|%<mz%<Dx%<v%<òs%<Éq%<¡o%<xm%<Ok%<'i%<þf%<Öd%<­b%<…`%<]^%<5\%<Z%<åW%<½U%<–S%<nQ%<GO%<M%<øJ%<ÐH%<©F%<‚D%<[B%<4@%<>%<æ;%<À9%<™7%<s5%<L3%<&1%<ÿ.%<Ù,%<³*%<�(%<g&%<A$%<"%<ö%<Ð%<«%<…%<`%<;%<%<ð%<Ë%<¦%<�
%<]%<8%<%<ï%<Êÿ$<¦ý$<‚û$<^ù$<9÷$<õ$<ñò$<Îð$<ªî$<†ì$<cê$<?è$<æ$<øã$<Õá$<²ß$<�Ý$<lÛ$<IÙ$<&×$<Õ$<àÒ$<¾Ð$<›Î$<yÌ$<VÊ$<4È$<Æ$<ðÃ$<ÎÁ$<¬¿$<Š½$<h»$<F¹$<%·$<µ$<â²$<À°$<Ÿ®$<~¬$<]ª$<<¨$<¦$<ú£$<Ù¡$<¸Ÿ$<˜�$<w›$<W™$<6—$<•$<ö’$<Ö�$<¶Ž$<–Œ$<vŠ$<Vˆ$<6†$<„$<÷�$<Ø$<¸}$<™{$<zy$<[w$<<u$<s$<þp$<ßn$<Àl$<¡j$<ƒh$<df$<Fd$<(b$<	`$<ë]$<Í[$<¯Y$<‘W$<sU$<VS$<8Q$<O$<ýL$<ßJ$<ÂH$<¥F$<ˆD$<kB$<N@$<1>$<<$<÷9$<Ú7$<¾5$<¡3$<…1$<h/$<L-$<0+$<)$<ø&$<Ü$$<À"$<¤ $<ˆ$<m$<Q$<6$<$<ÿ$<ä$<É$<®$<“$<x	$<]$<B$<'$<$<òþ#<Øü#<¾ú#<£ø#<‰ö#<oô#<Uò#<;ð#<!î#<ì#<îé#<Ôç#<»å#<¡ã#<ˆá#<oß#<UÝ#<<Û#<#Ù#<
×#<ñÔ#<ÙÒ#<ÀÐ#<§Î#<�Ì#<vÊ#<^È#<EÆ#<-Ä#<Â#<ý¿#<å½#<Í»#<µ¹#<�·#<†µ#<n³#<W±#<?¯#<(­#<«#<ù¨#<â¦#<Ë¤#<´¢#<� #<‡ž#<pœ#<Yš#<C˜#<,–#<”#<ÿ‘#<é�#<Ó�#<½‹#<§‰#<‘‡#<{…#<eƒ#<P�#<:#<%}#<{#<úx#<åv#<Ït#<ºr#<¥p#<�n#<{l#<gj#<Rh#<=f#<)d#<b#< `#<ë]#<×[#<ÃY#<¯W#<›U#<‡S#<sQ#<_O#<LM#<8K#<%I#<G#<þD#<êB#<×@#<Ä>#<±<#<ž:#<‹8#<x6#<f4#<S2#<@0#<..#<,#<	*#<÷'#<å%#<Ò##<À!#<®#<�#<‹#<y#<g#<V#<D#<3#<"#<#<ÿ
#<î#<Ý#<Ì#<»#<« #<šþ"<‰ü"<yú"<hø"<Xö"<Hô"<7ò"<'ð"<î"<ì"<÷é"<çç"<Øå"<Èã"<¸á"<©ß"<™Ý"<ŠÛ"<{Ù"<l×"<]Õ"<MÓ"<>Ñ"<0Ï"<!Í"<Ë"<É"<õÆ"<æÄ"<ØÂ"<ÊÀ"<»¾"<­¼"<Ÿº"<‘¸"<ƒ¶"<u´"<g²"<Z°"<L®"<>¬"<1ª"<#¨"<¦"<	¤"<ü¡"<ïŸ"<á�"<Õ›"<È™"<»—"<®•"<¢“"<•‘"<ˆ�"<|�"<p‹"<c‰"<W‡"<K…"<?ƒ"<3�"<'"<}"<{"<y"<ùv"<ít"<âr"<×p"<Ën"<Àl"<µj"<ªh"<Ÿf"<”d"<‰b"<`"<t^"<j\"<_Z"<UX"<JV"<@T"<6R"<,P"<"N"<L"<J"<H"<úE"<ñC"<çA"<Þ?"<Ô="<Ë;"<Â9"<¹7"<°5"<§3"<ž1"<•/"<Œ-"<ƒ+"<{)"<r'"<j%"<a#"<Y!"<Q"<H"<@"<8"<0"<)"<!"<"<"<
"<"<û"<ô"<ì"<å"<Þ "<×þ!<Ðü!<Éú!<Âø!<¼ö!<µô!<®ò!<¨ð!<¡î!<›ì!<•ê!<�è!<‰æ!<‚ä!<}â!<wà!<qÞ!<kÜ!<eÚ!<`Ø!<ZÖ!<UÔ!<OÒ!<JÐ!<EÎ!<@Ì!<;Ê!<6È!<1Æ!<,Ä!<'Â!<#À!<¾!<¼!<º!<¸!<¶!<´!<²!< °!<ü­!<ø«!<ô©!<ð§!<í¥!<é£!<å¡!<âŸ!<ß�!<Û›!<Ø™!<Õ—!<Ò•!<Ï“!<Ì‘!<É�!<Æ�!<Ã‹!<Á‰!<¾‡!<¼…!<¹ƒ!<·�!<µ!<²}!<°{!<®y!<¬w!<ªu!<©s!<§q!<¥o!<¤m!<¢k!<¡i!<Ÿg!<že!<�c!<œa!<š_!<™]!<™[!<˜Y!<—W!<–U!<–S!<•Q!<•O!<”M!<”K!<”I!<“G!<“E!<“C!<“A!<“?!<”=!<”;!<”9!<•7!<•5!<–3!<–1!<—/!<˜-!<™+!<š)!<›'!<œ%!<�#!<ž!!<Ÿ!<¡!<¢!<¤!<¥!<§!<©!<«!<¬!<®!<°!<³	!<µ!<·!<¹!<¼!<¾ÿ <Áý <Ãû <Æù <É÷ <Ìõ <Ïó <Òñ <Õï <Øí <Ûë <ßé <âç <åå <éã <ìá <ðß <ôÝ <øÛ <üÙ < Ø <Ö <Ô <Ò <Ð <Î <Ì <Ê <"È <&Æ <+Ä <0Â <5À <:¾ <?¼ <Dº <I¸ <N¶ <S´ <Y² <^° <d® <i¬ <oª <u¨ <z¦ <€¤ <†¢ <Œ  <’ž <˜œ <Ÿš <¥˜ <«– <²” <¸’ <¿� <ÆŽ <ÌŒ <ÓŠ <Úˆ <á† <è„ <ï‚ <ö€ <þ~ <} <{ <y <w <#u <+s <2q <:o <Bm <Jk <Ri <Zg <be <kc <sa <{_ <„] <Œ[ <•Y <žW <¦U <¯S <¸Q <ÁO <ÊM <ÓK <ÝI <æG <ïE <ùC <B <@ <> << <): <38 <=6 <G4 <Q2 <[0 <e. <o, <z* <„( <�& <™$ <¤" <¯  <¹ <Ä <Ï <Ú <å <ð <ü < < < <) <5	 <@ <L <X <d <pÿ<|ý<ˆû<”ù< ÷<¬õ<¹ó<Åñ<Òï<Þí<ëë<øé<è<æ<ä<+â<8à<FÞ<SÜ<`Ú<mØ<{Ö<ˆÔ<–Ò<¤Ð<±Î<¿Ì<ÍÊ<ÛÈ<éÆ<÷Ä<Ã<Á<"¿<0½<>»<M¹<[·<jµ<y³<ˆ±<–¯<¥­<´«<Ã©<Ó§<â¥<ñ£< ¢< <ž</œ<>š<N˜<^–<n”<~’<Ž�<žŽ<®Œ<¾Š<Îˆ<ß†<ï„< ƒ<�<!<1}<B{<Sy<dw<uu<†s<—q<¨o<¹m<Ëk<Üi<îg<ÿe<d<"b<4`<F^<X\<jZ<|X<ŽV< T<²R<ÅP<×N<êL<üJ<I<!G<4E<GC<ZA<m?<€=<“;<¦9<¹7<Ì5<à3<ó1<0<.<.,<B*<U(<i&<}$<‘"<¥ <¹<Í<â<ö<
<<3<H<]<q<†<›	<°<Å<Ú<ï< <þ</ü<Eú<Zø<pö<…ô<›ò<±ð<Çî<Ýì<óê<	é<ç<5å<Kã<bá<xß<�Ý<¥Û<¼Ù<Ò×<éÕ< Ô<Ò<.Ð<EÎ<\Ì<sÊ<ŠÈ<¢Æ<¹Ä<ÑÂ<èÀ< ¿<½</»<G¹<_·<wµ<�³<§±<¿¯<×­<ï«<ª< ¨<8¦<Q¤<j¢<‚ <›ž<´œ<Íš<æ˜<ÿ–<•<1“<J‘<c�<}�<–‹<°‰<É‡<ã…<ýƒ<‚<0€<J~<d|<~z<˜x<²v<Ít<çr<q<o<6m<Qk<li<†g<¡e<¼c<×a<ò_<^<(\<CZ<_X<zV<•T<±R<ÌP<èN<M<K<;I<WG<sE<�C<«A<Ç?<ä=< <<:<98<U6<r4<Ž2<«0<È.<å,<+<)<<'<Y%<v#<“!<°<Î<ë<	<&<D<b<<�<»<Ù<÷
<	<3<R<p<Ž<­ÿ<Ëý<êû<	ú<'ø<Fö<eô<„ò<£ð<Âî<áì< ë<é<?ç<^å<~ã<�á<½ß<ÜÝ<üÛ<Ú<<Ø<\Ö<|Ô<œÒ<¼Ð<ÜÎ<üÌ<Ë<=É<]Ç<~Å<žÃ<¿Á<à¿<¾<!¼<Bº<c¸<„¶<¦´<Ç²<è°<	¯<+­<L«<n©<�§<±¥<Ó£<ô¡< <8ž<Zœ<|š<ž˜<Á–<ã”<“<'‘<J�<l�<�‹<²‰<Ô‡<÷…<„<=‚<`€<ƒ~<¦|<Éz<ìx<w<3u<Ws<zq<žo<Ám<åk<	j<-h<Qf<ud<™b<½`<á^<]<)[<NY<rW<—U<»S<àQ<P<)N<NL<sJ<˜H<½F<âD<C<,A<R?<w=<œ;<Â9<è7<6<34<Y2<~0<¤.<Ê,<ð*<)<<'<c%<‰#<¯!<Ö<ü<#<I<p<—<½<ä<<2<Y<€<§	<Ï<ö<<E<l <”þ<¼ü<ãú<ù<3÷<[õ<ƒó<«ñ<Óï<ûí<#ì<Kê<tè<œæ<Åä<íâ<á<?ß<gÝ<�Û<¹Ù<â×<Ö<4Ô<]Ò<†Ð<°Î<ÙÌ<Ë<,É<UÇ<Å<¨Ã<ÒÁ<ü¿<&¾<P¼<zº<¤¸<Î¶<ø´<"³<L±<w¯<¡­<Ì«<ö©<!¨<L¦<v¤<¡¢<Ì <÷ž<"�<M›<x™<£—<Ï•<ú“<%’<Q�<|Ž<¨Œ<ÓŠ<ÿˆ<+‡<W…<ƒƒ<¯�<Û<~<3|<_z<‹x<¸v<ät<s<=q<jo<–m<Ãk<ði<h<Jf<wd<¤b<Ñ`<þ^<+]<Y[<†Y<³W<áU<T<<R<jP<˜N<ÅL<óJ<!I<OG<}E<«C<ÚA<@<6><e<<“:<Á8<ð6<5<M3<|1<«/<Ú-<	,<8*<g(<–&<Å$<õ"<$!<S<ƒ<²<â<<A<q<¡<Ñ<<1<a<‘	<Á<ò<"<R<ƒ <³þ<äü<û<Eù<v÷<§õ<Øó<	ò<:ð<kî<œì<Íê<ÿè<0ç<aå<“ã<Åá<öß<(Þ<ZÜ<‹Ú<½Ø<ïÖ<!Õ<SÓ<…Ñ<·Ï<êÍ<Ì<NÊ<�È<³Æ<æÄ<Ã<KÁ<~¿<±½<ã»<º<I¸<|¶<¯´<ã²<±<I¯<}­<°«<ã©<¨<K¦<~¤<²¢<æ <Ÿ<N�<‚›<¶™<ê—<–<R”<†’<»�<ïŽ<$�<X‹<�‰<Â‡<ö…<+„<`‚<•€<Ê~<ÿ|<4{<iy<žw<Ôu<	t<>r<tp<©n<ßl<k<Ji<€g<¶e<ìc<"b<X`<Ž^<Ä\<úZ<1Y<gW<�U<ÔS<
R<AP<xN<®L<åJ<I<SG<ŠE<ÁC<øA</@<f><�<<Õ:<9<D7<{5<³3<ê1<"0<Z.<’,<É*<)<9'<q%<ª#<â!< <R<‹<Ã<ü<4<m<¥<Þ<<P<‰<Â
<û<4<m<¦<ß< <Rþ<Œü<Åú<ÿø<8÷<rõ<¬ó<æñ< ð<Zî<”ì<Îê<é<Bç<|å<·ã<ñá<+à<fÞ<¡Ü<ÛÚ<Ù<Q×<‹Õ<ÆÓ<Ò<<Ð<wÎ<²Ì<îÊ<)É<dÇ<ŸÅ<ÛÃ<Â<RÀ<�¾<É¼<»<A¹<|·<¸µ<ô³<0²<l°<©®<å¬<!«<]©<š§<Ö¥<¤<O¢<Œ <Èž<�<B›<™<¼—<ù•<6”<s’<°�<íŽ<+�<h‹<¥‰<ã‡< †<^„<œ‚<Ù€<<U}<“{<Ñy<x<Mv<‹t<Ér<q<Fo<„m<Âk<j<@h<~f<½d<üb<:a<y_<¸]<÷[<6Z<uX<´V<óT<3S<rQ<±O<ñM<0L<pJ<°H<ïF</E<oC<¯A<ï?</><o<<¯:<ï8</7<o5<°3<ð1<10<q.<²,<ò*<3)<t'<µ%<õ#<6"<w <¸<ù<;<|<½<þ<@<�<Ã<<F<ˆ<Ê	<<M<�<Ñ<<Uÿ<˜ý<Úû<ú<^ø<¡ö<ãô<&ó<hñ<«ï<îí<1ì<sê<¶è<ùæ<<å<ã<Âá<à<IÞ<ŒÜ<ÏÚ<Ù<V×<šÕ<ÝÓ<!Ò<eÐ<©Î<ìÌ<0Ë<tÉ<¸Ç<üÅ<@Ä<…Â<ÉÀ<¿<Q½<–»<Ú¹<¸<c¶<¨´<í²<2±<v¯<»­< ¬<Eª<Š¨<Ï¦<¥<Z£<Ÿ¡<äŸ<*ž<oœ<µš<ú˜<@—<†•<Ë“<’<W�<�Ž<ãŒ<)‹<o‰<µ‡<ü…<B„<ˆ‚<Ï€<<\}<¢{<éy</x<vv<½t<s<Kq<’o<Ùm< l<gj<®h<õf<=e<„c<Ìa<`<[^<¢\<êZ<2Y<yW<ÁU<	T<QR<™P<áN<)M<rK<ºI<H<KF<“D<ÛB<$A<m?<µ=<þ;<G:<�8<Ø6<!5<j3<³1<ý/<F.<�,<Ø*<")<k'<´%<þ#<G"<‘ <Û<%<n<¸<<L<–<à<*<u<¿<	<T
<ž<è<3<~<È< <^þ<©ü<ôú<>ù<‰÷<Õõ< ô<kò<¶ð<ï<Mí<˜ë<äé</è<{æ<Æä<ã<^á<ªß<õÝ<AÜ<�Ú<ÙØ<%×<rÕ<¾Ó<
Ò<VÐ<£Î<ïÌ<<Ë<ˆÉ<ÕÇ<!Æ<nÄ<»Â<Á<U¿<¢½<ï»<<º<‰¸<Ö¶<#µ<p³<¾±<°<Y®<¦¬<ôª<A©<�§<Ý¥<+¤<x¢<Æ <Ÿ<b�<°›<ÿ™<M˜<›–<é”<8“<†‘<Ô�<#Ž<rŒ<ÀŠ<‰<^‡<¬…<ûƒ<J‚<™€<è~<7}<‡{<Öy<%x<tv<Ät<s<cq<²o<n<Ql<¡j<ñh<Ag<‘e<àc<0b<€`<Ñ^<!]<q[<ÁY<X<bV<²T<S<SQ<¤O<õM<EL<–J<çH<8G<‰E<ÚC<+B<|@<Í><=<p;<Á9<8<d6<µ4<3<X1<ª/<ü-<N,<Ÿ*<ñ(<C'<•%<ç#<9"<Œ <Þ<0<‚<Õ<'<z<Ì<<r<Ä<<j<½
<	<c<¶<	<\<¯ <ÿ<Vý<©û<ýù<Pø<¤ö<÷ô<Kó<Ÿñ<òï<Fî<šì<îê<Bé<–ç<êå<>ä<“â<çà<;ß<�Ý<äÛ<9Ú<�Ø<âÖ<6Õ<‹Ó<àÑ<5Ð<ŠÎ<ÞÌ<3Ë<ˆÉ<ÞÇ<3Æ<ˆÄ<ÝÂ<3Á<ˆ¿<Ý½<3¼<ˆº<Þ¸<4·<‰µ<ß³<5²<‹°<á®<7­<�«<ã©<9¨<�¦<å¤<<£<’¡<èŸ<?ž<•œ<ìš<C™<™—<ð•<G”<ž’<ô�<K�<¢�<ú‹<QŠ<¨ˆ<ÿ†<V…<®ƒ<‚<\€<´~<}<c{<»y<x<jv<Ât<s<rq<Êo<"n<zl<Òj<*i<ƒg<Ûe<3d<Œb<ä`<=_<•]<î[<GZ< X<øV<QU<ªS<R<\P<µN<M<hK<ÁI<H<sF<ÍD<&C<€A<Ù?<3><�<<æ:<@9<š7<ô5<N4<¨2<1<\/<¶-<,<k*<Å(<'<z%<Ô#</"<‰ <ä<?<™<ô<O<ª<<`<»<<q<Ì<(<ƒ	<Þ<:<•<ñ<M<¨ÿ<þ<`ü<¼ú<ù<s÷<Ïõ<+ô<‡ò<äð<@ï<œí<øë<Uê<±è<ç<jå<Çã<#â<€à<ÝÞ<9Ý<–Û<óÙ<PØ<­Ö<
Õ<gÓ<ÄÑ<"Ð<Î<ÜÌ<:Ë<—É<õÇ<RÆ<°Ä<Ã<kÁ<É¿<&¾<„¼<âº<@¹<ž·<üµ<Z´<¹²<±<u¯<Ó­<2¬<�ª<ï¨<M§<¬¥<
¤<i¢<È <'Ÿ<…�<ä›<Cš<¢˜<—<a•<À“<’<~�<ÞŽ<=�<œ‹<ü‰<[ˆ<»†<…<zƒ<Ú�<:€<š~<ú|<Z{<ºy<x<zv<Út<:s<šq<ûo<[n<¼l<k<}i<Ýg<>f<Ÿd<ÿb<`a<Á_<"^<ƒ\<äZ<EY<¦W<V<hT<ÊR<+Q<ŒO<îM<OL<±J<I<tG<ÖE<8D<™B<û@<]?<¿=<!<<ƒ:<å8<G7<ª5<4<n2<Ñ0<3/<•-<ø+<[*<½(< '<ƒ%<å#<H"<« <<q<Ô<7<š<þ<a<Ä<(<‹<î<R<¶<
<}<á<D<¨<<p <Ôþ<8ý<œû< ú<dø<Éö<-õ<‘ó<öñ<Zð<¿î<#í<ˆë<ìé<Qè<¶æ<å<€ã<äá<Ià<®Þ<Ý<yÛ<ÞÙ<CØ<¨Ö<Õ<sÓ<ØÑ<>Ð<£Î<	Í<oË<ÔÉ<:È< Æ<Å<lÃ<ÒÁ<8À<ž¾<½<j»<Ð¹<6¸<�¶<µ<i³<Ð±<6°<�®<­<j«<Ñ©<8¨<ž¦<¥<l£<Ó¡<: <¡ž<�<p›<×™<>˜<¥–<•<t“<Ü‘<C�<«Ž<�<z‹<â‰<Jˆ<²†<…<�ƒ<é�<Q€<¹~<"}<Š{<òy<Zx<Ãv<+u<”s<üq<ep<Ín<6m<Ÿk<j<ph<Ùf<Be<«c<b<}`<æ^<O]<¸[<"Z<‹X<ôV<^U<ÇS<1R<šP<O<nM<×K<AJ<«H<G<E<éC<SB<½@<'?<‘=<û;<f:<Ð8<:7<¥5<4<z2<ä0<O/<º-<$,<�*<ú(<e'<Ð%<;$<¦"<!<|<ç<R<¾<)<”< <k<×<B<®<<…<ñ
<]	<É<5<¡<<y<åÿ<Qþ<¾ü<*û<–ù<ø<oö<Ûô<Hó<µñ<!ð<Žî<ûì<gë<Ôé<Aè<®æ<å<ˆã<õá<bà<ÐÞ<=Ý<ªÛ<Ú<…Ø<òÖ<`Õ<ÍÓ<;Ò<¨Ð<Ï<„Í<òË<_Ê<ÍÈ<;Ç<©Å<Ä<…Â<ôÀ<b¿<Ð½<>¼<­º<¹<‰·<øµ<f´<Õ²<D±<²¯<!®<�¬<ÿª<m©<Ü§<K¦<º¤<)£<™¡< <wž<æœ<V›<Å™<4˜<¤–<•<ƒ“<ó‘<b�<ÒŽ<B�<±‹<!Š<‘ˆ<‡<q…<áƒ<Q‚<Â€<2<¢}<|<ƒz<óx<dw<Ôu<Et<µr<&q<—o<n<xl<éj<Zi<Ëg<<f<­d<c<�a< `<r^<ã\<T[<ÆY<7X<©V<U<ŒS<ýQ<oP<áN<RM<ÄK<6J<¨H<G<ŒE<þC<pB<â@<U?<Ç=<9<<¬:<9<‘7<6<v4<è2<[1<Î/<@.<³,<&+<™)<(<&<ò$<e#<Ø!<K <¿<2<¥<<Œ< <s<ç<Z<Î<B<¶<)<�
<	<…<ù<m<á<V<Êÿ<>þ<²ü<'û<›ù<ø<„ö<ùô<mó<âñ<Wð<Ëî<@í<µë<*ê<Ÿè<ç<‰å<þã<sâ<èà<]ß<ÓÝ<HÜ<½Ú<3Ù<¨×<Ö<“Ô<	Ó<Ñ<ôÏ<jÎ<àÌ<VË<ÌÉ<BÈ<¸Æ<.Å<¤Ã<Â<�À<¿<}½<ó»<iº<à¸<V·<Íµ<C´<º²<1±<¨¯<®<•¬<«<ƒ©<ú§<q¦<è¤<_£<Ö¡<M <Åž<<�<³›<+š<¢˜<—<‘•<	”<€’<ø�<p�<è�<_Œ<×Š<O‰<Ç‡<?†<·„</ƒ<§�< €<˜~<}<‰{<z<yx<òv<ju<ãs<\r<Ôp<Mo<Æm<?l<·j<0i<©g<"f<›d<c<Ža<`<€^<ù\<s[<ìY<fX<ßV<YU<ÒS<LR<ÆP<?O<¹M<3L<­J<'I<¡G<F<•D<C<‰A<@<}><ø<<r;<ì9<g8<á6<\5<Ö3<Q2<Ì0<F/<Á-<<,<·*<2)<­'<(&<£$<#<™!< <�<<†<<}<ø<t<ï<k<ç<b<Þ<Z<Ö
<R	<Í<I<Å<B<¾<: <¶þ<2ý<¯û<+ú<§ø<$÷< õ<ô<šò<ñ<“ï<î<Œì<	ë<†é<è<€æ<ýä<zã<÷á<tà<ñÞ<oÝ<ìÛ<iÚ<çØ<d×<âÕ<_Ô<ÝÒ<ZÑ<ØÏ<VÎ<ÓÌ<QË<ÏÉ<MÈ<ËÆ<IÅ<ÇÃ<EÂ<ÃÀ<A¿<À½<>¼<¼º<;¹<¹·<7¶<¶´<4³<³±<2°<°®</­<®«<-ª<¬¨<+§<ª¥<)¤<¨¢<'¡<¦Ÿ<%ž<¤œ<$›<£™<"˜<¢–<!•<¡“< ’< �< �<Ÿ�<Œ<ŸŠ<‰<Ÿ‡<†<ž„<ƒ<Ÿ�<€<Ÿ~<}<Ÿ{< z< x< w<¡u<!t<¢r<"q<£o<$n<¤l<%k<¦i<'h<¨f<)e<ªc<+b<¬`<-_<®]</\<±Z<2Y<³W<5V<¶T<8S<¹Q<;P<¼N<>M<ÀK<BJ<ÃH<EG<ÇE<ID<ËB<MA<Ï?<Q><Ô<<V;<Ø9<Z8<Ý6<_5<â3<d2<ç0<i/<ì-<o,<ñ*<t)<÷'<z&<ý$<€#<"<† <	<Œ<<’<<™<< <#<§<*<®<1<µ<9
<½<@<Ä<H<Ì<P<Ôÿ<Xþ<Üü<aû<åù<iø<íö<rõ<öó<{ò<ÿð<„ï<î<�ì<ë<–é<è< æ<%å<ªã</â<´à<9ß<¾Ý<CÜ<ÈÚ<MÙ<Ò×<XÖ<ÝÔ<cÓ<èÑ<mÐ<óÎ<yÍ<þË<„Ê<
É<�Ç<Æ<›Ä<!Ã<§Á<-À<³¾<9½<¿»<Eº<Ë¸<R·<Øµ<^´<å²<k±<ò¯<x®<ÿ¬<…«<ª<“¨<§< ¥<'¤<®¢<5¡<¼Ÿ<Cž<Êœ<Q›<Ø™<_˜<ç–<n•<õ“<|’<‘<‹�<Ž<šŒ<"‹<ª‰<1ˆ<¹†<A…<Éƒ<Q‚<Ø€<`<è}<p|<øz<�y<	x<‘v<u<¢s<*r<²p<;o<Ãm<Ll<Ôj<]i<æg<nf<÷d<€c<	b<’`<_<£]<,\<¶Z<?Y<ÈW<QV<ÚT<cS<íQ<vP< O<‰M<L<œJ<&I<¯G<9F<ÃD<LC<ÖA<`@<ê><t=<þ;<ˆ:<9<œ7<&6<±4<;3<Å1<O0<Ú.<d-<ï+<y*<)<Ž'<&<¤$<.#<¹!<D <Ï<Z<å<p<û<†<<œ<'<³<><É<U<à<l
<÷<ƒ<<š<&<²<= <Éþ<Uý<áû<mú<ùø<…÷<ö<�ô<)ó<¶ñ<Bð<Îî<[í<çë<sê< é<Œç<æ<¦ä<2ã<¿á<Là<ØÞ<eÝ<òÛ<Ú<Ù<™×<&Ö<³Ô<@Ó<ÎÑ<[Ð<èÎ<uÍ<Ì<�Ê<É<«Ç<9Æ<ÆÄ<TÃ<áÁ<oÀ<ý¾<‹½<¼<¦º<4¹<Â·<P¶<Þ´<l³<û±<‰°<¯<¥­<3¬<Âª<P©<ß§<m¦<ü¤<Š£<¢<¨ <6Ÿ<Å�<Tœ<ãš<q™< ˜<�–<•<­“<<’<Ì�<[�<ê�<yŒ<	‹<˜‰<'ˆ<·†<F…<Öƒ<e‚<õ€<„<~<¤|<4{<Äy<Sx<ãv<su<t<“r<#q<³o<Dn<Ôl<dk<ôi<…h<g<¥e<6d<Æb<Wa<è_<x^<	]<š[<*Z<»X<LW<ÝU<nT<ÿR<�Q<!P<²N<CM<ÔK<fJ<÷H<ˆG<F<«D<<C<ÎA<_@<ñ><ƒ=<<<¦:<89<É7<[6<í4<3<2<£0<5/<Ç-<Y,<ë*<~)<(<¢&<4%<Ç#<Y"<ì <~<<£<6<É<[<î<�<<§<:<Í<`<ó<†<
<¬<?<Ó<f<ù<�<  <´þ<Gý<Ûû<nú<ù<–÷<)ö<½ô<Qó<åñ<yð<ï<¡í<5ì<Éê<]é<ñç<…æ<å<®ã<Bâ<Öà<kß<ÿÝ<”Ü<(Û<½Ù<RØ<æÖ<{Õ<Ô<¤Ò<9Ñ<ÎÏ<cÎ<øÌ<�Ë<"Ê<·È<LÇ<áÅ<wÄ<Ã<¡Á<6À<Ì¾<a½<÷»<Œº<"¹<··<M¶<ã´<x³<²<¤°<:¯<Ð­<f¬<ûª<‘©<(¨<¾¦<T¥<ê£<€¢<¡<­Ÿ<Cž<Ùœ<p›<š<�˜<3—<Ê•<`”<÷’<Ž‘<%�<»Ž<R�<é‹<€Š<‰<®‡<E†<Ü„<sƒ<
‚<¢€<9<Ð}<h|<ÿz<–y<.x<Åv<]u<ôs<Œr<$q<»o<Sn<ël<ƒk<j<³h<Jg<âe<{d<c<«a<C`<Û^<s]<\<¤Z<<Y<ÕW<mV<U<žS<7R<ÏP<hO<N<™L<2K<ËI<dH<ýF<–E</D<ÈB<aA<ú?<“><,=<Æ;<_:<ø8<‘7<+6<Ä4<^3<÷1<‘0<*/<Ä-<^,<ø*<‘)<+(<Å&<_%<ù#<“"<-!<Ç<a<û<•</<Ê<d<þ<™<3<Î<h<<�<8<Ó
<m	<<£<><Ù<s<<©ÿ<Dþ<ßü<{û<ú<±ø<L÷<çõ<ƒô<ó<ºñ<Uð<ñî<Œí<(ì<Ãê<_é<ûç<–æ<2å<Îã<jâ<á<¢ß<=Þ<ÙÜ<vÛ<Ú<®Ø<J×<æÕ<‚Ô<Ó<»Ñ<WÐ<ôÎ<�Í<-Ì<ÉÊ<fÉ<È<ŸÆ<<Å<ÙÃ<uÂ<Á<¯¿<L¾<é¼<†»<#º<À¸<]·<úµ<—´<5³<Ò±<o°<¯<ª­<G¬<åª<‚©< ¨<¾¦<[¥<ù£<—¢<4¡<ÒŸ<pž<�<¬›<Jš<è˜<†—<$–<Â”<`“<þ‘<œ�<;�<Ù�<wŒ<‹<´‰<Sˆ<ñ†<�…<.„<Í‚<l�<
€<©~<H}<ç{<†z<%y<Äw<cv<u<¡s<@r<ßp<~o<n<½l<\k<ûi<›h<:g<Úe<yd<c<¸a<X`<ø^<—]<7\<×Z<wY<X<·V<VU<öS<—R<7Q<×O<wN<M<·K<XJ<øH<˜G<9F<ÙD<zC<B<»@<[?<ü=<œ<<=;<Þ9<8< 7<À5<a4<3<£1<D0<å.<†-<(,<É*<j)<(<­&<N%<ï#<‘"<2!<Ô<u<<¸<Z<ü<ž<?<á<ƒ<%<Ç<i<<­<O<ñ	<“<6<Ø<z<<¿<a <ÿ<¦ý<Iü<ëú<Žù<1ø<Óö<võ<ô<¼ò<^ñ<ð<¤î<Gí<êë<�ê<0é<Óç<wæ<å<½ã<`â<á<§ß<JÞ<îÜ<‘Û<5Ú<ØØ<|×<Ö<ÃÔ<gÓ<Ò<®Ð<RÏ<öÍ<šÌ<>Ë<âÉ<†È<*Ç<ÎÅ<rÄ<Ã<»Á<_À<¿<¨½<L¼<ðº<•¹<9¸<Þ¶<‚µ<'´<Ì²<p±<°<º®<_­<¬<¨ª<M©<ò§<—¦<<¥<á£<†¢<,¡<ÑŸ<vž<�<Á›<fš<™<±—<V–<ü”<¡“<G’<ì�<’�<8Ž<ÝŒ<ƒ‹<)Š<Ïˆ<u‡<†<Á„<gƒ<‚<³€<Y<ÿ}<¥|<L{<òy<˜x<>w<åu<‹t<2s<Øq<p<%o<Ìm<sl<k<Ài<gh<g<µe<[d<c<©a<P`<÷^<Ÿ]<F\<íZ<”Y<;X<ãV<ŠU<1T<ÙR<€Q<(P<ÏN<wM<L<ÆJ<mI<H<½F<eE<D<´B<\A<@<¬><T=<ü;<¤:<L9<õ7<�6<E5<í3<–2<>1<æ/<�.<7-<à+<ˆ*<1)<Ú'<‚&<+%<Ô#<|"<%!<Î<w< <É<r<<Ä<m<<¿<i<<»<e<<·<a
<
	<´<]<<±<Z<<®ÿ<Xþ<ý<«û<Uú<ÿø<©÷<Sö<ýô<¨ó<Rò<üð<¦ï<Pî<ûì<¥ë<Oê<úè<¤ç<Oæ<ùä<¤ã<Nâ<ùà<¤ß<NÞ<ùÜ<¤Û<OÚ<úØ<¥×<OÖ<úÔ<¥Ó<QÒ<üÐ<§Ï<RÎ<ýÌ<¨Ë<TÊ<ÿÈ<ªÇ<VÆ<Å<­Ã<XÂ<Á<¯¿<[¾<½<²»<^º<
¹<¶·<a¶<µ<¹³<e²<±<½¯<i®<­<Â«<nª<©<Æ§<r¦<¥<Ë£<x¢<$¡<ÑŸ<}ž<*�<Ö›<ƒš<0™<Ü—<‰–<6•<ã“<�’<<‘<é�<–Ž<C�<ð‹<�Š<K‰<ø‡<¥†<R…<ÿƒ<­‚<Z�<€<µ~<b}<|<½z<ky<x<Æv<tu<"t<Ïr<}q<+p<Ùn<‡m<5l<ãj<‘i<?h<íf<›e<Id<÷b<¦a<T`<_<±]<_\<[<¼Y<jX<W<ÇU<vT<%S<ÓQ<‚P<1O<àM<ŽL<=K<ìI<›H<JG<ùE<¨D<WC<B<¶@<e?<><Ã<<s;<":<Ñ8<�7<06<à4<�3<?2<ï0<ž/<N.<þ,<­+<]*<)<½'<m&<%<Í#<}"<-!<Ý<�<=<í<ž<N<þ<¯<_<<À<p<!<Ñ<‚<3<ã
<”	<E<ö<§<W<<¹<j <ÿ<Ìý<}ü<.û<àù<‘ø<B÷<óõ<¥ô<Vó<ò<¹ð<jï<î<Íì<ë<0ê<âè<”ç<Eæ<÷ä<©ã<[â<á<¾ß<pÞ<"Ý<ÔÛ<†Ú<8Ù<ë×<�Ö<OÕ<Ô<³Ò<fÑ<Ð<ÊÎ<}Í</Ì<âÊ<”É<GÈ<ùÆ<¬Å<_Ä<Ã<ÄÁ<wÀ<*¿<Ü½<�¼<B»<õ¹<¨¸<[·<¶<Á´<t³<(²<Û°<Ž¯<A®<õ¬<¨«<[ª<©<Â§<v¦<)¥<Ý£<�¢<D¡<øŸ<«ž<_�<œ<Çš<{™</˜<â–<–•<J”<þ’<³‘<g�<�<Ï�<ƒŒ<7‹<ì‰< ˆ<T‡<	†<½„<rƒ<&‚<Û€<�<D~<ù|<­{<bz<y<Ìw<€v<5u<ês<Ÿr<Tq<	p<¾n<sm<(l<Ýj<“i<Hh<ýf<²e<hd<c<Óa<ˆ`<=_<ó]<¨\<^[<Z<ÉX<W<5V<ëT< S<VR<Q<ÂO<xN<.M<äK<šJ<PI<H<¼F<rE<)D<ßB<•A<L@<?<¸=<o<<%;<Ü9<’8<I7< 6<¶4<m3<$2<Ú0<‘/<H.<ÿ,<¶+<m*<$)<Û'<’&<I%< $<·"<n!<& <Ý<”<K<<º<r<)<á<˜<P<<¿<w<.<æ<ž<V
<	<Æ<~<5<í<¦<^< <Îþ
<†ý
<>ü
<÷ú
<¯ù
<gø
< ÷
<Øõ
<�ô
<Ió
<ò
<ºð
<rï
<+î
<äì
<œë
<Uê
<é
<Çç
<æ
<8å
<ñã
<ªâ
<cá
<à
<ÕÞ
<ŽÝ
<GÜ
< Û
<ºÙ
<sØ
<,×
<åÕ
<ŸÔ
<XÓ
<Ò
<ËÐ
<„Ï
<>Î
<÷Ì
<±Ë
<jÊ
<$É
<ÞÇ
<—Æ
<QÅ
<Ä
<ÅÂ
<~Á
<8À
<ò¾
<¬½
<f¼
< »
<Ú¹
<”¸
<N·
<	¶
<Ã´
<}³
<7²
<ò°
<¬¯
<f®
<!­
<Û«
<–ª
<P©
<¨
<Å¦
<€¥
<:¤
<õ¢
<°¡
<k 
<%Ÿ
<à�
<›œ
<V›
<š
<Ì˜
<‡—
<B–
<ý”
<¸“
<s’
<.‘
<ê�
<¥Ž
<`�
<Œ
<×Š
<’‰
<Nˆ
<	‡
<Ä…
<€„
<<ƒ
<÷�
<³€
<n
<*~
<æ|
<¢{
<]z
<y
<Õw
<‘v
<Mu
<	t
<År
<�q
<=p
<ùn
<µm
<ql
<.k
<êi
<¦h
<bg
<f
<Ûd
<˜c
<Tb
<a
<Í_
<Š^
<F]
<\
<ÀZ
<|Y
<9X
<öV
<³U
<oT
<,S
<éQ
<¦P
<cO
< N
<ÝL
<šK
<WJ
<I
<ÒG
<�F
<LE
<	D
<ÇB
<„A
<A@
<ÿ>
<¼=
<z<
<7;
<õ9
<²8
<p7
<.6
<ë4
<©3
<g2
<%1
<ã/
< .
<^-
<,
<Ú*
<˜)
<V(
<'
<Ò%
<‘$
<O#
<"
<Ë 
<Š
<H
<
<Å
<ƒ
<A
< 
<¾
<}
<<
<ú
<¹
<x
<6
<õ
<´
<s
<2

<ð
<¯
<n
<-
<ì
<«
<k
<* 
<éþ	<¨ý	<gü	<'û	<æù	<¥ø	<e÷	<$ö	<ãô	<£ó	<bò	<"ñ	<âï	<¡î	<aí	<!ì	<àê	< é	<`è	< ç	<ßå	<Ÿä	<_ã	<â	<ßà	<Ÿß	<_Þ	<Ý	<àÛ	< Ú	<`Ù	< Ø	<àÖ	<¡Õ	<aÔ	<!Ó	<âÑ	<¢Ð	<cÏ	<#Î	<äÌ	<¤Ë	<eÊ	<%É	<æÇ	<§Æ	<hÅ	<(Ä	<éÂ	<ªÁ	<kÀ	<,¿	<í½	<®¼	<o»	<0º	<ñ¸	<²·	<s¶	<4µ	<õ³	<·²	<x±	<9°	<û®	<¼­	<}¬	<?«	< ª	<Â¨	<ƒ§	<E¦	<¥	<È£	<Š¢	<L¡	< 	<Ïž	<‘�	<Sœ	<›	<×™	<™˜	<[—	<–	<ß”	<¡“	<c’	<%‘	<ç�	<©Ž	<l�	<.Œ	<ðŠ	<³‰	<uˆ	<7‡	<ú…	<¼„	<ƒ	<A‚	<�	<Ç	<‰~	<L}	<|	<Ñz	<”y	<Wx	<w	<Ýu	< t	<cs	<&r	<ép	<¬o	<on	<2m	<õk	<¸j	<|i	<?h	<g	<Åe	<‰d	<Lc	<b	<Ó`	<—_	<Z^	<]	<á[	<¥Z	<iY	<,X	<ðV	<´U	<wT	<;S	<ÿQ	<ÃP	<‡O	<KN	<M	<ÓK	<—J	<[I	<H	<ãF	<¨E	<lD	<0C	<ôA	<¹@	<}?	<A>	<=	<Ê;	<�:	<S9	<8	<Ü6	<¡5	<f4	<*3	<ï1	<´0	<y/	<>.	<-	<Ç+	<Œ*	<Q)	<(	<Û&	< %	<e$	<*#	<ð!	<µ 	<z	<?	<	<Ê	<�	<U	<	<ß	<¥	<j	<0	<ö	<»	<�	<G	<	<Ò	<˜
	<^		<#	<é	<¯	<u	<;	<	<Ç 	<�ÿ<Sþ<ý<àû<¦ú<lù<2ø<ùö<¿õ<†ô<Ló<ò<Ùð<Ÿï<fî<,í<óë<ºê<€é<Gè<ç<Õå<›ä<bã<)â<ðà<·ß<~Þ<EÝ<Ü<ÓÚ<šÙ<aØ<(×<ðÕ<·Ô<~Ó<EÒ<Ñ<ÔÏ<›Î<cÍ<*Ì<òÊ<¹É<�È<HÇ<Æ<ØÄ<ŸÃ<gÂ</Á<÷¿<¾¾<†½<N¼<»<Þ¹<¦¸<n·<6¶<þ´<Æ³<Ž²<W±<°<ç®<¯­<x¬<@«<ª<Ñ¨<™§<b¦<*¥<ó£<»¢<„¡<L <Ÿ<Þ�<§œ<o›<8š<™<Ê—<“–<\•<$”<í’<·‘<€�<I�<Ž<ÛŒ<¤‹<mŠ<7‰< ˆ<É†<’…<\„<%ƒ<ï�<¸€<‚<K~<}<Þ{<¨z<ry<;x<w<Ïu<™t<bs<,r<öp<Ào<Šn<Tm<l<èj<²i<|h<Gg<f<Ûd<¥c<ob<:a<`<Î^<™]<c\<.[<øY<ÃX<�W<XV<#U<íS<¸R<ƒQ<MP<O<ãM<®L<yK<DJ<I<ÚG<¥F<pE<;D<C<ÑA<œ@<h?<3><þ<<É;<•:<`9<+8<÷6<Â5<Ž4<Y3<%2<ñ0<¼/<ˆ.<T-<,<ë*<·)<ƒ(<N'<&<æ$<²#<~"<J!< <â<®<{<G<<ß<«<x<D<<Ý<©<v<B<<Û<¨<t
<A	<<Ú<§<t<A<<Ú <§ÿ<tþ<Aý<ü<Ûú<¨ù<uø<C÷<ö<Ýô<ªó<wò<Eñ<ð<ßî<­í<zì<Hë<ê<âè<°ç<~æ<Kå<ä<æâ<´á<‚à<Pß<Þ<ëÜ<¹Û<‡Ú<UÙ<#Ø<ñÖ<¿Õ<�Ô<[Ó<)Ò<÷Ð<ÅÏ<”Î<bÍ<0Ì<þÊ<ÍÉ<›È<iÇ<8Æ<Å<ÕÃ<£Â<rÁ<@À<¿<Þ½<¬¼<{»<Jº<¹<ç·<¶¶<…µ<T´<#³<ò±<Á°<�¯<_®<.­<ý«<Ìª<›©<j¨<:§<	¦<Ø¤<¨£<w¢<F¡< <åž<µ�<„œ<T›<#š<ó˜<Ã—<’–<b•<2”<“<Ñ‘<¡�<q�<AŽ<�<á‹<±Š<�‰<Qˆ<!‡<ñ…<Á„<‘ƒ<a‚<2�<€<Ò~<£}<s|<C{<z<äx<µw<…v<Vu<&t<÷r<Èq<˜p<io<:n<
m<Ûk<¬j<}i<Nh<g<ðe<Ád<’c<cb<4a<`<Ö^<§]<x\<J[<Z<ìX<½W<�V<`U<2T<S<ÕQ<¦P<xO<IN<M<ìK<¾J<�I<aH<3G<F<×D<©C<{B<LA<@<ð><Â=<”<<g;<9:<9<Ý7<¯6<�5<T4<&3<ø1<Ê0<�/<o.<B-<,<ç*<¹)<Œ(<^'<1&<%<Ö#<©"<|!<N <!<ô<Ç<š<m<@<<æ<¹<Œ<_<2<<Ù<¬<<R<&<ù	<Ì< <s<G<<î<Á<• <iÿ<<þ<ý<äû<·ú<‹ù<_ø<3÷<ö<Ûô<¯ó<ƒò<Wñ<+ð<ÿî<Óí<§ì<{ë<Oê<#é<øç<Ìæ< å<uä<Iã<â<òà<Æß<›Þ<oÝ<DÜ<Û<íÙ<ÂØ<–×<kÖ<@Õ<Ô<éÒ<¾Ñ<“Ð<hÏ<=Î<Í<çË<¼Ê<‘É<fÈ<;Ç<Æ<åÄ<ºÃ<�Â<eÁ<:À<¿<å½<º¼<�»<eº<:¹<¸<å¶<»µ<�´<f³<<²<±<ç¯<½®<’­<h¬<>«<ª<ê¨<À§<–¦<l¥<B¤<£<î¡<Ä <šŸ<pž<F�<œ<óš<É™<Ÿ˜<v—<L–<"•<ù“<Ï’<¦‘<|�<S�<)Ž< �<×‹<­Š<„‰<[ˆ<2‡<†<ß„<¶ƒ<�‚<d�<;€<<é}<À|<—{<nz<Ey<x<óv<Êu<¢t<ys<Pr<(q<ÿo<Ön<®m<…l<]k<4j<i<ãg<»f<’e<jd<Bc<b<ñ`<É_<¡^<y]<Q\<([< Z<ØX<°W<ˆV<`U<8T<S<éQ<ÁP<™O<qN<IM<"L<úJ<ÒI<«H<ƒG<\F<4E<D<åB<¾A<–@<o?<G>< =<ù;<Ò:<ª9<ƒ8<\7<56<5<ç3<À2<˜1<q0<J/<$.<ý,<Ö+<¯*<ˆ)<a(<:'<&<í$<Æ#< "<y!<S <,<<ß<¸<’<l<E<<ù<Ò<¬<†<`<9<<í<Ç<¡<{
<U	</<	<ã<½<—<r<L<& < ÿ<Ûý<µü<�û<jú<Dù<ø<ùö<Óõ<®ô<‰ó<cò<>ñ<ð<óî<Îí<©ì<ƒë<^ê<9é<è<ïæ<Êå<¥ä<€ã<[â<6á<à<ìÞ<ÇÝ<¢Ü<}Û<XÚ<4Ù<Ø<êÖ<ÆÕ<¡Ô<|Ó<XÒ<3Ñ<Ð<êÎ<ÆÍ<¡Ì<}Ë<XÊ<4É<È<ëÆ<ÇÅ<£Ä<Ã<[Â<6Á<À<î¾<Ê½<¦¼<‚»<^º<:¹<¸<ò¶<Ïµ<«´<‡³<c²<?±<°<ø®<Ô­<±¬<�«<jª<F©<#¨<ÿ¦<Ü¥<¸¤<•£<q¢<N¡<+ <Ÿ<ä�<Áœ<ž›<{š<X™<4˜<—<î•<Ë”<¨“<…’<b‘<@�<�<ú�<×Œ<´‹<’Š<o‰<Lˆ<)‡<†<ä„<Âƒ<Ÿ‚<}�<Z€<8<~<ó|<Ð{<®z<Œy<ix<Gw<%v<u<ás<¾r<œq<zp<Xo<6n<m<òk<Ðj<®i<Œh<kg<If<'e<d<ãb<Âa< `<~_<]^<;]<\<øZ<×Y<µX<”W<rV<QU</T<S<íQ<ÌP<ªO<‰N<hM<GL<&K<J<ãH<ÂG<¡F<€E<_D<>C<B<ý@<Ü?<»><š=<y<<Y;<8:<9<÷7<Ö6<µ5<•4<t3<T2<31<0<ò.<Ò-<²,<‘+<q*<Q)<1(<'<ð%<Ð$<°#<�"<p!<P <0<<ð<Ð<°<�<p<P<0<<ñ<Ñ<²<’<r<S<3<<ô
<Õ	<µ<–<v<W<8<<ù<Ú <»ÿ<›þ<|ý<]ü<>û<ú< ù<á÷<Âö<£õ<„ô<eó<Fò<'ñ<ð<êî<Ëí<¬ì<�ë<oê<Pé<1è<ç<ôå<Öä<·ã<™â<zá<\à<=ß<Þ<Ý<âÛ<ÄÚ<¦Ù<ˆØ<i×<KÖ<-Õ<Ô<ñÒ<ÓÑ<µÐ<—Ï<yÎ<[Í<=Ì<Ë<Ê<ãÈ<ÆÇ<¨Æ<ŠÅ<lÄ<OÃ<1Â<Á<ö¿<Ø¾<»½<�¼<€»<bº<E¹<'¸<
·<ìµ<Ï´<²³<•²<w±<Z°<=¯< ®<­<å«<Èª<«©<Ž¨<q§<T¦<7¥<¤<þ¢<á¡<Ä <§Ÿ<Šž<n�<Qœ<4›<š<û˜<Þ—<Â–<¥•<‰”<l“<P’<3‘<�<ûŽ<Þ�<ÂŒ<¦‹<‰Š<m‰<Qˆ<5‡<†<ü„<àƒ<Ä‚<¨�<Œ€<p<T~<8}<|< {<åy<Éx<­w<‘v<uu<Zt<>s<"r<q<ëo<Ðn<´m<™l<}k<bj<Fi<+h<g<ôe<Ùd<½c<¢b<‡a<l`<Q_<5^<]<ÿ[<äZ<ÉY<®X<“W<xV<]U<BT<'S<R<òP<×O<¼N<¡M<‡L<lK<QJ<7I<H<G<çE<ÍD<²C<˜B<}A<c@<H?<.><=<ù;<ß:<Å9<«8<�7<v6<\5<B4<(3<2<ô0<Ú/<À.<¦-<Œ,<r+<X*<?)<%(<'<ñ%<×$<¾#<¤"<Š!<q <W<><$<<ñ<Ø<¾<¥<Œ<r<Y<@<&<<ô<Û<Â<©<�<v
<]	<D<+<<ú<á<È<¯<– <}ÿ<eþ<Lý<3ü<û<ú<éø<Ñ÷<¸ö<Ÿõ<‡ô<nó<Vò<>ñ<%ð<ï<ôí<Üì<Äë<¬ê<“é<{è<cç<Kæ<3å<ä<ã<êá<Òà<ºß<¢Þ<ŠÝ<sÜ<[Û<CÚ<+Ù<Ø<ûÖ<äÕ<ÌÔ<´Ó<�Ò<…Ñ<mÐ<VÏ<>Î<'Í<Ì<øÊ<àÉ<ÉÈ<±Ç<šÆ<ƒÅ<kÄ<TÃ<=Â<&Á<À<÷¾<à½<É¼<²»<›º<„¹<m¸<V·<?¶<(µ<´<ú²<ã±<Ì°<µ¯<Ÿ®<ˆ­<q¬<[«<Dª<-©<¨< §<é¥<Ó¤<¼£<¦¢<�¡<y <cŸ<Lž<6�< œ<	›<ó™<Ý˜<Ç—<°–<š•<„”<n“<X’<B‘<,�<�< Ž<êŒ<Ô‹<¾Š<¨‰<“ˆ<}‡<g†<Q…<;„<&ƒ<‚<ú€<å<Ï~<º}<¤|<�{<yz<dy<Nx<9w<#v<u<ùs<är<Îq<¹p<¤o<�n<ym<dl<Ok<:j<%i<h<ûf<æe<Ñd<¼c<§b<’a<~`<i_<T^<?]<*\<[<Z<ìX<ØW<ÃV<¯U<šT<†S<qR<]Q<HP<4O<N<M<÷K<âJ<ÎI<ºH<¦G<‘F<}E<iD<UC<AB<-A<@<?<ñ=<Ý<<É;<µ:<¡9<�8<y7<f6<R5<>4<*3<2<1<ï/<Ü.<È-<´,<¡+<�*<z)<f(<S'<@&<,%<$<#<ò!<ß <Ì<¹<¥<’<<l<Y<F<3< <<ú<ç<Ô<Á<®<›<‰<v<c<P
<>	<+<<<ó<á<Î<¼<© <—ÿ<„þ<rý<_ü<Mû<;ú<(ù<ø<÷<òõ<àô<Íó<»ò<©ñ<—ð<…ï<sî<aí<Oì<=ë<+ê<é<è<õæ<äå<Òä<Àã<®â<�á<‹à<yß<hÞ<VÝ<DÜ<3Û<!Ú<Ù<þ×<íÖ<ÛÕ<ÊÔ<¹Ó<§Ò<–Ñ<…Ð<sÏ<bÎ<QÍ<@Ì<.Ë<Ê<É<ûÇ<êÆ<ÙÅ<ÈÄ<·Ã<¦Â<•Á<„À<s¿<b¾<R½<A¼<0»<º<¹<þ·<í¶<Ýµ<Ì´<»³<«²<š±<Š°<y¯<i®<X­<H¬<7«<'ª<©<¨<ö¦<æ¥<Ö¤<Å£<µ¢<¥¡<• <…Ÿ<už<e�<Uœ<E›<5š<%™<˜<—<õ•<å”<Õ“<Æ’<¶‘<¦�<–�<‡Ž<w�<gŒ<X‹<HŠ<9‰<)ˆ<‡<
†<û„<ëƒ<Ü‚<Í�<½€<®<Ÿ~<�}<€|<q{<bz<Ry<Cx<4w<%v<u<t<ør<éq<Úp<Ëo<¼n<­m<žl<�k<�j<ri<ch<Tg<Ff<7e<(d<c<b<ý`<î_<ß^<Ñ]<Â\<´[<¦Z<—Y<‰X<zW<lV<^U<PT<AS<3R<%Q<P<	O<ûM<ìL<ÞK<ÐJ<ÂI<´H<¦G<˜F<ŠE<}D<oC<aB<SA<E@<8?<*><=<<<;<ó9<æ8<Ø7<Ê6<½5<¯4<¢3<”2<‡1<z0<l/<_.<R-<D,<7+<**<)<(<'<õ%<è$<Û#<Î"<Á!<´ <§<š<�<€<s<f<Y<L<@<3<&<<< <ó<ç<Ú<Î<Á<µ<¨
<œ	<�<ƒ<v<j<^<Q<E<9<- < ÿ<þ<ý<üû<ðú<äù<Øø<Ì÷<Àö<´õ<¨ô<œó<�ò<„ñ<xð<lï<aî<Uí<Iì<=ë<2ê<&é<è<ç<æ<÷ä<ìã<àâ<Õá<Éà<¾ß<³Þ<§Ý<œÜ<�Û<…Ú<zÙ<oØ<c×<XÖ<MÕ<BÔ<7Ó<+Ò< Ñ<Ð<
Ï<ÿÍ<ôÌ<éË<ÞÊ<ÓÉ<ÈÈ<¾Ç<³Æ<¨Å<�Ä<’Ã<ˆÂ<}Á<rÀ<h¿<]¾<R½<H¼<=»<3º<(¹<¸<·<	¶<þ´<ô³<é²<ß±<Õ°<Ë¯<À®<¶­<¬¬<¢«<—ª<�©<ƒ¨<y§<o¦<e¥<[¤<Q£<G¢<=¡<3 <)Ÿ<ž<�<œ<›<ø™<î˜<å—<Û–<Ñ•<È”<¾“<´’<«‘<¡�<˜�<ŽŽ<…�<{Œ<r‹<iŠ<_‰<Vˆ<M‡<C†<:…<1„<(ƒ<‚<�<€<<ú}<ñ|<è{<ßz<Öy<Íx<Äw<»v<²u<©t< s<—r<�q<†p<}o<tn<lm<cl<Zk<Rj<Ii<Ah<8g</f<'e<d<c<b<a<ý_<ô^<ì]<ä\<Ü[<ÓZ<ËY<ÃX<»W<³V<ªU<¢T<šS<’R<ŠQ<‚P<zO<rN<jM<bL<ZK<SJ<KI<CH<;G<3F<,E<$D<C<B<A<@<þ><ö=<ï<<ç;<à:<Ø9<Ñ8<É7<Â6<»5<³4<¬3<¥2<�1<–0<�/<ˆ.<�-<y,<r+<k*<d)<](<V'<O&<H%<A$<:#<3"<,!<& <<<<
<<ý<ö<ð<é<â<Ü<Õ<Ï<È<Â<»<µ<®<¨<¢<›
<•	<�<ˆ<‚<|<v<p<j<c<] <Wÿ <Qþ <Ký <Eü <?û <9ú <3ù <-ø <(÷ <"ö <õ <ô <ó <ò <ñ <ÿï <ùî <ôí <îì <éë <ãê <Ýé <Øè <Òç <Íæ <Çå <Âä <½ã <·â <²á <¬à <§ß <¢Þ <�Ý <—Ü <’Û <�Ú <ˆÙ <ƒØ <}× <xÖ <sÕ <nÔ <iÓ <dÒ <_Ñ <ZÐ <UÏ <PÎ <LÍ <GÌ <BË <=Ê <8É <4È </Ç <*Æ <%Å <!Ä <Ã <Â <Á <À <
¿ <¾ <½ <ü» <øº <ó¹ <ï¸ <ë· <æ¶ <âµ <Þ´ <Ù³ <Õ² <Ñ± <Í° <É¯ <Ä® <À­ <¼¬ <¸« <´ª <°© <¬¨ <¨§ <¤¦ < ¥ <œ¤ <˜£ <”¢ <‘¡ <�  <‰Ÿ <…ž <�� <~œ <z› <vš <s™ <o˜ <k— <h– <d• <a” <]“ <Z’ <V‘ <S� <O� <LŽ <I� <EŒ <B‹ <?Š <<‰ <8ˆ <5‡ <2† </… <,„ <(ƒ <%‚ <"� <€ < <~ <} <| <{ <z <y <x <w <v <ÿt <üs <úr <÷q <ôp <òo <ïn <ìm <êl <çk <åj <âi <àh <Ýg <Ûf <Øe <Öd <Óc <Ñb <Ïa <Ì` <Ê_ <È^ <Æ] <Ã\ <Á[ <¿Z <½Y <»X <¹W <·V <µU <³T <±S <¯R <­Q <«P <©O <§N <¥M <£L <¡K < J <žI <œH <šG <™F <—E <•D <”C <’B <�A <�@ <�? <Œ> <Š= <‰< <ˆ; <†: <…9 <ƒ8 <‚7 <�6 <5 <~4 <}3 <|2 <z1 <y0 <x/ <w. <v- <u, <t+ <s* <r) <q( <p' <o& <n% <m$ <l# <k" <j! <j  <i <h <g <g <f <e <e <d <d <c <b <b <a <a <a <` <` <_ <_ <_ <^ <^
 <^	 <^ <] <] <] <] <] <] <] <]  <¹þÿ;¹üÿ;¹úÿ;¹øÿ;¹öÿ;ºôÿ;ºòÿ;ºðÿ;ºîÿ;»ìÿ;»êÿ;¼èÿ;¼æÿ;½äÿ;½âÿ;¾àÿ;¿Þÿ;ÀÜÿ;ÀÚÿ;ÁØÿ;ÂÖÿ;ÃÔÿ;ÄÒÿ;ÅÐÿ;ÆÎÿ;ÇÌÿ;ÈÊÿ;ÊÈÿ;ËÆÿ;ÌÄÿ;ÎÂÿ;ÏÀÿ;Ð¾ÿ;Ò¼ÿ;Óºÿ;Õ¸ÿ;×¶ÿ;Ø´ÿ;Ú²ÿ;Ü°ÿ;Þ®ÿ;à¬ÿ;áªÿ;ã¨ÿ;å¦ÿ;è¤ÿ;ê¢ÿ;ì ÿ;îžÿ;ðœÿ;óšÿ;õ˜ÿ;÷–ÿ;ú”ÿ;ü’ÿ;ÿ�ÿ;�ÿ;�ÿ;‹ÿ;	‰ÿ;‡ÿ;…ÿ;ƒÿ;�ÿ;ÿ;}ÿ;{ÿ;!yÿ;$wÿ;'uÿ;*sÿ;-qÿ;1oÿ;4mÿ;7kÿ;;iÿ;>gÿ;Beÿ;Fcÿ;Iaÿ;M_ÿ;Q]ÿ;T[ÿ;XYÿ;\Wÿ;`Uÿ;dSÿ;hQÿ;lOÿ;pMÿ;tKÿ;xIÿ;}Gÿ;�Eÿ;…Cÿ;ŠAÿ;Ž?ÿ;“=ÿ;—;ÿ;œ9ÿ; 7ÿ;¥5ÿ;ª3ÿ;®1ÿ;³/ÿ;¸-ÿ;½+ÿ;Â)ÿ;Ç'ÿ;Ì%ÿ;Ñ#ÿ;Ö!ÿ;Ûÿ;àÿ;æÿ;ëÿ;ðÿ;öÿ;ûÿ;ÿ;ÿ;ÿ;ÿ;
ÿ;ÿ;"ÿ;(ÿ;.ÿ;4 ÿ;:þþ;@üþ;Fúþ;Løþ;Röþ;Xôþ;_òþ;eðþ;kîþ;qìþ;xêþ;~èþ;…æþ;‹äþ;’âþ;™àþ;ŸÞþ;¦Üþ;­Úþ;´Øþ;ºÖþ;ÁÔþ;ÈÒþ;ÏÐþ;ÖÎþ;ÝÌþ;åÊþ;ìÈþ;óÆþ;úÄþ;Ãþ;	Áþ;¿þ;½þ;»þ;'¹þ;.·þ;6µþ;>³þ;F±þ;M¯þ;U­þ;]«þ;e©þ;m§þ;u¥þ;}£þ;…¡þ;�Ÿþ;•�þ;ž›þ;¦™þ;®—þ;·•þ;¿“þ;Ç‘þ;Ð�þ;Ø�þ;á‹þ;ê‰þ;ò‡þ;û…þ;„þ;‚þ;€þ;~þ;(|þ;1zþ;:xþ;Cvþ;Ltþ;Urþ;^pþ;hnþ;qlþ;zjþ;„hþ;�fþ;—dþ; bþ;ª`þ;³^þ;½\þ;ÇZþ;ÑXþ;ÚVþ;äTþ;îRþ;øPþ;Oþ;Mþ;Kþ;!Iþ;+Gþ;5Eþ;?Cþ;JAþ;T?þ;^=þ;i;þ;s9þ;~7þ;ˆ5þ;“3þ;ž1þ;©/þ;³-þ;¾+þ;É)þ;Ô'þ;ß%þ;ê#þ;õ!þ;  þ;þ;þ;"þ;-þ;8þ;Dþ;Oþ;Zþ;fþ;qþ;}
þ;‰þ;”þ; þ;¬þ;¸ þ;Äþý;Ïüý;Ûúý;çøý;óöý; õý;óý;ñý;$ïý;0íý;=ëý;Iéý;Uçý;båý;nãý;{áý;‡ßý;”Ýý;¡Ûý;­Ùý;º×ý;ÇÕý;ÔÓý;áÑý;îÏý;ûÍý;Ìý;Êý;"Èý;/Æý;<Äý;JÂý;WÀý;d¾ý;r¼ý;ºý;�¸ý;š¶ý;¨´ý;µ²ý;Ã°ý;Ñ®ý;Þ¬ý;ìªý;ú¨ý;§ý;¥ý;$£ý;2¡ý;@Ÿý;N�ý;\›ý;j™ý;y—ý;‡•ý;•“ý;¤‘ý;²�ý;À�ý;Ï‹ý;Þ‰ý;ì‡ý;û…ý;	„ý;‚ý;'€ý;6~ý;E|ý;Tzý;cxý;rvý;�tý;�rý;Ÿpý;®ný;½lý;Ìjý;Ühý;ëfý;ûdý;
cý;aý;)_ý;9]ý;H[ý;XYý;hWý;wUý;‡Sý;—Qý;§Oý;·Mý;ÇKý;×Iý;çGý;÷Eý;Dý;Bý;(@ý;8>ý;H<ý;Y:ý;i8ý;z6ý;Š4ý;›2ý;«0ý;¼.ý;Í,ý;Ý*ý;î(ý;ÿ&ý;%ý;!#ý;2!ý;Cý;Tý;eý;vý;‡ý;˜ý;ªý;»ý;Ìý;Þý;ïý;
ý;ý;$ý;5ý;Gý;Y ý;jþü;|üü;Žúü; øü;²öü;Äôü;Öòü;èðü;úîü;íü;ëü;1éü;Cçü;Uåü;hãü;záü;�ßü;ŸÝü;²Ûü;ÄÙü;××ü;êÕü;üÓü;Òü;"Ðü;5Îü;HÌü;[Êü;nÈü;�Æü;”Äü;§Âü;ºÀü;Í¾ü;à¼ü;ôºü;¹ü;·ü;.µü;A³ü;U±ü;h¯ü;|­ü;�«ü;£©ü;·§ü;Ë¥ü;ß£ü;ó¡ü; ü;žü;.œü;Bšü;W˜ü;k–ü;”ü;“’ü;§�ü;¼Žü;ÐŒü;äŠü;ùˆü;‡ü;"…ü;6ƒü;K�ü;`ü;t}ü;‰{ü;žyü;³wü;Èuü;Ýsü;òqü;pü;nü;1lü;Fjü;[hü;pfü;†dü;›bü;°`ü;Æ^ü;Û\ü;ñZü;Yü;Wü;1Uü;GSü;]Qü;rOü;ˆMü;žKü;´Iü;ÊGü;àEü;öCü;Bü;"@ü;8>ü;N<ü;d:ü;{8ü;‘6ü;§4ü;¾2ü;Ô0ü;ë.ü;-ü;+ü;.)ü;E'ü;\%ü;s#ü;‰!ü; ü;·ü;Îü;åü;üü;ü;*ü;Aü;Yü;pü;‡ü;ž
ü;¶ü;Íü;åü;üü;ü;+ÿû;Cýû;Zûû;rùû;Š÷û;¢õû;¹óû;Ññû;éïû;îû;ìû;1êû;Ièû;bæû;zäû;’âû;ªàû;ÃÞû;ÛÜû;óÚû;Ùû;$×û;=Õû;UÓû;nÑû;‡Ïû;ŸÍû;¸Ëû;ÑÉû;êÇû;Æû;Äû;4Âû;MÀû;f¾û;€¼û;™ºû;²¸û;Ë¶û;ä´û;þ²û;±û;0¯û;J­û;c«û;}©û;–§û;°¥û;Ê£û;ã¡û;ýŸû;žû;1œû;Jšû;d˜û;~–û;˜”û;²’û;Ì�û;çŽû;�û;‹û;5‰û;O‡û;j…û;„ƒû;Ÿ�û;¹û;Ô}û;î{û;	zû;#xû;>vû;Ytû;trû;Žpû;©nû;Älû;ßjû;úhû;gû;0eû;Kcû;faû;‚_û;�]û;¸[û;ÓYû;ïWû;
Vû;&Tû;ARû;]Pû;xNû;”Lû;¯Jû;ËHû;çFû;Eû;Cû;:Aû;V?û;r=û;Ž;û;ª9û;Æ7û;ã5û;ÿ3û;2û;70û;T.û;p,û;Œ*û;©(û;Å&û;â$û;þ"û;!û;8û;Tû;qû;Žû;«û;Çû;äû;û;û;;û;Xû;u
û;“û;°û;Íû;êû;û;%ÿú;Býú;`ûú;}ùú;›÷ú;¸õú;Öóú;ôñú;ðú;/îú;Mìú;kêú;‰èú;§æú;Åäú;ãâú;áú;ßú;=Ýú;[Ûú;yÙú;—×ú;¶Õú;ÔÓú;óÑú;Ðú;/Îú;NÌú;lÊú;‹Èú;ªÆú;ÈÄú;çÂú;Áú;%¿ú;D½ú;b»ú;�¹ú; ·ú;¿µú;Þ³ú;þ±ú;°ú;<®ú;[¬ú;zªú;š¨ú;¹¦ú;Ø¤ú;ø¢ú;¡ú;7Ÿú;V�ú;v›ú;–™ú;µ—ú;Õ•ú;õ“ú;’ú;5�ú;UŽú;tŒú;”Šú;µˆú;Õ†ú;õ„ú;ƒú;5�ú;Uú;v}ú;–{ú;¶yú;×wú;÷uú;tú;8rú;Ypú;ynú;šlú;»jú;Ûhú;üfú;eú;>cú;_aú;€_ú;¡]ú;Â[ú;ãYú;Xú;%Vú;FTú;hRú;‰Pú;ªNú;ÌLú;íJú;Iú;0Gú;REú;sCú;•Aú;·?ú;Ø=ú;ú;ú;:ú;>8ú;_6ú;�4ú;£2ú;Å0ú;ç.ú;	-ú;,+ú;N)ú;p'ú;’%ú;µ#ú;×!ú;ùú;ú;>ú;aú;ƒú;¦ú;Èú;ëú;ú;1ú;Sú;vú;™	ú;¼ú;ßú;ú;%ú;H ú;kþù;Žüù;²úù;Õøù;øöù;õù;?óù;bñù;†ïù;©íù;Íëù;ðéù;èù;8æù;[äù;âù;£àù;ÇÞù;ëÜù;Ûù;3Ùù;W×ù;{Õù;ŸÓù;ÃÑù;çÏù;Îù;/Ìù;TÊù;xÈù;œÆù;ÁÄù;åÂù;
Áù;.¿ù;S½ù;x»ù;œ¹ù;Á·ù;æµù;
´ù;/²ù;T°ù;y®ù;ž¬ù;Ãªù;è¨ù;§ù;2¥ù;W£ù;}¡ù;¢Ÿù;Ç�ù;í›ù;šù;7˜ù;]–ù;‚”ù;¨’ù;Í�ù;óŽù;�ù;>‹ù;d‰ù;Š‡ù;°…ù;Öƒù;û�ù;!€ù;G~ù;m|ù;”zù;ºxù;àvù;uù;,sù;Rqù;yoù;Ÿmù;Ækù;ìiù;hù;9fù;`dù;†bù;­`ù;Ô^ù;ú\ù;![ù;HYù;oWù;–Uù;½Sù;ãQù;
Pù;2Nù;YLù;€Jù;§Hù;ÎFù;õDù;Cù;DAù;k?ù;“=ù;º;ù;â9ù;	8ù;16ù;Y4ù;€2ù;¨0ù;Ð.ù;ø,ù;+ù;G)ù;o'ù;—%ù;¿#ù;ç!ù; ù;7ù;`ù;ˆù;°ù;Øù;ù;)ù;Qù;zù;¢ù;Ëù;ô	ù;ù;Eù;mù;–ù;¿ ù;èþø;ýø;:ûø;cùø;Œ÷ø;µõø;Þóø;òø;0ðø;Yîø;‚ìø;¬êø;Õèø;þæø;(åø;Qãø;záø;¤ßø;ÎÝø;÷Ûø;!Úø;JØø;tÖø;žÔø;ÈÒø;òÐø;Ïø;EÍø;oËø;™Éø;ÃÇø;íÅø;Äø;BÂø;lÀø;–¾ø;À¼ø;ëºø;¹ø;@·ø;jµø;”³ø;¿±ø;ê¯ø;®ø;?¬ø;jªø;”¨ø;¿¦ø;ê¤ø;£ø;@¡ø;kŸø;•�ø;À›ø;ì™ø;˜ø;B–ø;m”ø;˜’ø;Ã�ø;ïŽø;�ø;E‹ø;q‰ø;œ‡ø;È…ø;óƒø;‚ø;K€ø;v~ø;¢|ø;Îzø;ùxø;%wø;Quø;}sø;©qø;Õoø;nø;-lø;Yjø;…hø;±fø;Þdø;
cø;6aø;c_ø;�]ø;»[ø;èYø;Xø;AVø;nTø;šRø;ÇPø;ôNø; Mø;MKø;zIø;§Gø;ÔEø;Dø;.Bø;[@ø;ˆ>ø;µ<ø;â:ø;9ø;<7ø;j5ø;—3ø;Ä1ø;ò/ø;.ø;M,ø;z*ø;¨(ø;Õ&ø;%ø;1#ø;^!ø;Œø;ºø;èø;ø;Dø;rø; ø;Îø;üø;*ø;Xø;†ø;´	ø;ãø;ø;?ø;nø;œ ø;Ëþ÷;ùü÷;(û÷;Vù÷;…÷÷;´õ÷;âó÷;ò÷;@ð÷;oî÷;žì÷;Ìê÷;ûè÷;*ç÷;Yå÷;‰ã÷;¸á÷;çß÷;Þ÷;EÜ÷;uÚ÷;¤Ø÷;ÓÖ÷;Õ÷;2Ó÷;aÑ÷;‘Ï÷;ÁÍ÷;ðË÷; Ê÷;OÈ÷;Æ÷;¯Ä÷;ßÂ÷;Á÷;>¿÷;n½÷;ž»÷;Î¹÷;þ·÷;.¶÷;^´÷;�²÷;¿°÷;ï®÷;­÷;P«÷;€©÷;°§÷;á¥÷;¤÷;B¢÷;r ÷;£ž÷;Ôœ÷;›÷;5™÷;f—÷;–•÷;Ç“÷;ø‘÷;)�÷;ZŽ÷;‹Œ÷;¼Š÷;íˆ÷;‡÷;O…÷;€ƒ÷;²�÷;ã÷;~÷;F|÷;wz÷;¨x÷;Úv÷;u÷;=s÷;nq÷; o÷;Òm÷;l÷;5j÷;gh÷;™f÷;Ëd÷;ýb÷;.a÷;`_÷;’]÷;Å[÷;÷Y÷;)X÷;[V÷;�T÷;¿R÷;òP÷;$O÷;VM÷;‰K÷;»I÷;îG÷; F÷;SD÷;…B÷;¸@÷;ë>÷;=÷;P;÷;ƒ9÷;¶7÷;é5÷;4÷;O2÷;‚0÷;µ.÷;è,÷;+÷;N)÷;�'÷;´%÷;è#÷;"÷;N ÷;‚÷;µ÷;é÷;÷;P÷;ƒ÷;·÷;ë÷;÷;R÷;†÷;º
÷;î÷;!÷;U÷;‰÷;½÷;ñÿö;&þö;Züö;Žúö;Âøö;ööö;+õö;_óö;“ñö;Èïö;üíö;1ìö;eêö;šèö;Îæö;åö;8ãö;láö;¡ßö;ÖÝö;Üö;@Úö;uØö;ªÖö;ßÔö;Óö;IÑö;~Ïö;³Íö;èËö;Êö;SÈö;ˆÆö;½Äö;óÂö;(Áö;^¿ö;“½ö;É»ö;þ¹ö;4¸ö;j¶ö;Ÿ´ö;Õ²ö;±ö;A¯ö;v­ö;¬«ö;â©ö;¨ö;N¦ö;„¤ö;º¢ö;ñ ö;'Ÿö;]�ö;“›ö;É™ö; ˜ö;6–ö;m”ö;£’ö;Ù�ö;�ö;G�ö;}‹ö;´‰ö;ê‡ö;!†ö;X„ö;�‚ö;Æ€ö;ü~ö;3}ö;j{ö;¡yö;Øwö;vö;Ftö;~rö;µpö;ìnö;#mö;Zkö;’iö;Égö;fö;8dö;pbö;§`ö;ß^ö;]ö;N[ö;†Yö;½Wö;õUö;-Tö;eRö;�Pö;ÔNö;Mö;DKö;|Iö;µGö;íEö;%Dö;]Bö;•@ö;Í>ö;=ö;>;ö;v9ö;¯7ö;ç5ö; 4ö;X2ö;‘0ö;Ê.ö;-ö;;+ö;t)ö;¬'ö;å%ö;$ö;W"ö;� ö;Éö;ö;;ö;tö;­ö;æö;ö;Yö;’ö;Ëö;ö;>ö;w	ö;±ö;êö;$ö;]ö;— ö;Ñþõ;
ýõ;Dûõ;~ùõ;·÷õ;ñõõ;+ôõ;eòõ;Ÿðõ;Ùîõ;íõ;Mëõ;‡éõ;Áçõ;üåõ;6äõ;pâõ;ªàõ;åÞõ;Ýõ;ZÛõ;”Ùõ;Î×õ;	Öõ;DÔõ;~Òõ;¹Ðõ;ôÎõ;.Íõ;iËõ;¤Éõ;ßÇõ;Æõ;TÄõ;�Âõ;ÊÀõ;¿õ;@½õ;|»õ;·¹õ;ò·õ;-¶õ;h´õ;¤²õ;ß°õ;¯õ;V­õ;‘«õ;Í©õ;¨õ;D¦õ;¤õ;»¢õ;÷ õ;2Ÿõ;n�õ;ª›õ;æ™õ;"˜õ;^–õ;™”õ;Õ’õ;‘õ;N�õ;Š�õ;Æ‹õ;Šõ;>ˆõ;z†õ;·„õ;ó‚õ;/�õ;lõ;¨}õ;å{õ;!zõ;^xõ;švõ;×tõ;sõ;Pqõ;�oõ;Êmõ;lõ;Djõ;€hõ;½fõ;údõ;7cõ;taõ;±_õ;ï]õ;,\õ;iZõ;¦Xõ;ãVõ;!Uõ;^Sõ;›Qõ;ÙOõ;Nõ;TLõ;‘Jõ;ÏHõ;Gõ;JEõ;ˆCõ;ÆAõ;@õ;A>õ;<õ;½:õ;û8õ;97õ;w5õ;µ3õ;ó1õ;10õ;o.õ;­,õ;ì*õ;*)õ;h'õ;¦%õ;å#õ;#"õ;b õ; õ;ßõ;õ;\õ;šõ;Ùõ;õ;Wõ;•õ;Ôõ;õ;Rõ;‘	õ;Ðõ;õ;Nõ;�õ;Ì õ;ÿô;Kýô;Šûô;Éùô;øô;Höô;‡ôô;Æòô;ñô;Eïô;…íô;Åëô;êô;Dèô;„æô;Ãäô;ãô;Cáô;ƒßô;ÃÝô;Üô;BÚô;‚Øô;ÂÖô;Õô;CÓô;ƒÑô;ÃÏô;Îô;CÌô;„Êô;ÄÈô;Çô;EÅô;…Ãô;ÆÁô;Àô;G¾ô;‡¼ô;Èºô;	¹ô;I·ô;Šµô;Ë³ô;²ô;L°ô;�®ô;Î¬ô;«ô;P©ô;‘§ô;Ò¥ô;¤ô;U¢ô;– ô;×žô;�ô;Z›ô;›™ô;Ü—ô;–ô;_”ô;¡’ô;â�ô;$�ô;e�ô;§‹ô;é‰ô;*ˆô;l†ô;®„ô;ð‚ô;2�ô;sô;µ}ô;÷{ô;9zô;{xô;½vô; uô;Bsô;„qô;Æoô;nô;Klô;�jô;Ïhô;gô;Teô;—cô;Ùaô;`ô;^^ô;¡\ô;äZô;'Yô;iWô;¬Uô;ïSô;2Rô;uPô;¸Nô;ûLô;>Kô;�Iô;ÄGô;Fô;JDô;�Bô;Ð@ô;?ô;W=ô;š;ô;Þ9ô;!8ô;e6ô;¨4ô;ì2ô;/1ô;s/ô;¶-ô;ú+ô;>*ô;‚(ô;Å&ô;	%ô;M#ô;‘!ô;Õô;ô;]ô;¡ô;åô;)ô;mô;±ô;öô;:ô;~ô;Ãô;ô;K	ô;�ô;Ôô;ô;]ô;¢ ô;çþó;+ýó;pûó;µùó;ú÷ó;>öó;ƒôó;Èòó;ñó;Rïó;—íó;Üëó;!êó;fèó;¬æó;ñäó;6ãó;{áó;Àßó;Þó;KÜó;‘Úó;ÖØó;×ó;aÕó;§Óó;ìÑó;2Ðó;xÎó;½Ìó;Ëó;IÉó;�Çó;ÔÅó;Äó;`Âó;¦Àó;ì¾ó;2½ó;x»ó;¾¹ó;¸ó;K¶ó;‘´ó;×²ó;±ó;d¯ó;ª­ó;ñ«ó;7ªó;~¨ó;Ä¦ó;¥ó;Q£ó;˜¡ó;ÞŸó;%žó;lœó;³šó;ù˜ó;@—ó;‡•ó;Î“ó;’ó;\�ó;£Žó;êŒó;1‹ó;x‰ó;À‡ó;†ó;N„ó;•‚ó;Ý€ó;$ó;k}ó;³{ó;úyó;Bxó;‰vó;Ñtó;só;`qó;¨oó;ïmó;7ló;jó;Çhó;gó;Weó;Ÿcó;çaó;/`ó;w^ó;¿\ó;[ó;OYó;—Wó;ßUó;(Tó;pRó;¸Pó;Oó;IMó;‘Kó;ÚIó;"Hó;kFó;´Dó;üBó;EAó;Ž?ó;Ö=ó;<ó;h:ó;±8ó;ú6ó;C5ó;Œ3ó;Õ1ó;0ó;g.ó;°,ó;ù*ó;B)ó;‹'ó;Ô%ó;$ó;g"ó;° ó;úó;Có;�ó;Öó; ó;ió;³ó;ýó;Fó;�ó;Úó;#ó;m
ó;·ó;ó;Kó;•ó;ßó;) ó;sþò;½üò;ûò;Rùò;œ÷ò;æõò;0ôò;{òò;Åðò;ïò;Zíò;¤ëò;ïéò;9èò;„æò;Ïäò;ãò;dáò;¯ßò;ùÝò;DÜò;�Úò;ÚØò;%×ò;pÕò;»Óò;Òò;QÐò;œÎò;çÌò;2Ëò;}Éò;ÉÇò;Æò;_Äò;«Âò;öÀò;A¿ò;�½ò;Ø»ò;$ºò;o¸ò;»¶ò;µò;R³ò;ž±ò;ê¯ò;5®ò;�¬ò;Íªò;©ò;e§ò;±¥ò;ý£ò;I¢ò;• ò;ážò;-�ò;y›ò;Å™ò;˜ò;^–ò;ª”ò;÷’ò;C‘ò;��ò;Ü�ò;(Œò;uŠò;Áˆò;‡ò;[…ò;§ƒò;ô�ò;A€ò;�~ò;Ú|ò;'{ò;tyò;Áwò;vò;[tò;¨rò;õpò;Boò;�mò;Ükò;*jò;whò;Äfò;eò;_cò;¬aò;ú_ò;G^ò;”\ò;âZò;0Yò;}Wò;ËUò;Tò;fRò;´Pò;Oò;OMò;�Kò;ëIò;9Hò;‡Fò;ÕDò;#Cò;qAò;¿?ò;>ò;[<ò;ª:ò;ø8ò;F7ò;”5ò;ã3ò;12ò;€0ò;Î.ò;-ò;k+ò;º)ò;(ò;W&ò;¥$ò;ô"ò;C!ò;’ò;àò;/ò;~ò;Íò;ò;kò;ºò;	ò;Xò;§ò;öò;Fò;•	ò;äò;3ò;ƒò;Òò;"ò;qÿñ;Àýñ;üñ;`úñ;¯øñ;ÿöñ;Nõñ;žóñ;îññ;>ðñ;�îñ;Ýìñ;-ëñ;}éñ;Íçñ;æñ;mäñ;½âñ;áñ;]ßñ;­Ýñ;ýÛñ;NÚñ;žØñ;îÖñ;?Õñ;�Óñ;ßÑñ;0Ðñ;€Îñ;ÑÌñ;!Ëñ;rÉñ;ÂÇñ;Æñ;dÄñ;´Âñ;Áñ;V¿ñ;§½ñ;ø»ñ;Hºñ;™¸ñ;ê¶ñ;;µñ;Œ³ñ;Ý±ñ;/°ñ;€®ñ;Ñ¬ñ;"«ñ;s©ñ;Å§ñ;¦ñ;g¤ñ;¹¢ñ;
¡ñ;[Ÿñ;­�ñ;þ›ñ;Pšñ;¢˜ñ;ó–ñ;E•ñ;—“ñ;è‘ñ;:�ñ;ŒŽñ;ÞŒñ;0‹ñ;‚‰ñ;Ó‡ñ;%†ñ;w„ñ;É‚ñ;�ñ;nñ;À}ñ;|ñ;dzñ;·xñ;	wñ;[uñ;­sñ; rñ;Rpñ;¥nñ;÷lñ;Jkñ;œiñ;ïgñ;Bfñ;”dñ;çbñ;:añ;�_ñ;ß]ñ;2\ñ;…Zñ;ØXñ;+Wñ;~Uñ;ÑSñ;$Rñ;wPñ;ÊNñ;Mñ;qKñ;ÄIñ;Hñ;jFñ;¾Dñ;Cñ;eAñ;¸?ñ;>ñ;_<ñ;³:ñ;9ñ;Z7ñ;­5ñ;4ñ;U2ñ;©0ñ;ü.ñ;P-ñ;¤+ñ;ø)ñ;L(ñ; &ñ;ô$ñ;H#ñ;œ!ñ;ðñ;Dñ;˜ñ;íñ;Añ;•ñ;éñ;>ñ;’ñ;çñ;;ñ;�ñ;äñ;9
ñ;�ñ;âñ;7ñ;‹ñ;àñ;5 ñ;Šþð;Þüð;3ûð;ˆùð;Ý÷ð;2öð;‡ôð;Üòð;1ñð;†ïð;Ûíð;1ìð;†êð;Ûèð;0çð;†åð;Ûãð;0âð;†àð;ÛÞð;1Ýð;†Ûð;ÜÙð;1Øð;‡Öð;ÝÔð;2Óð;ˆÑð;ÞÏð;4Îð;ŠÌð;ßÊð;5Éð;‹Çð;áÅð;7Äð;�Âð;ãÀð;:¿ð;�½ð;æ»ð;<ºð;’¸ð;é¶ð;?µð;•³ð;ì±ð;B°ð;™®ð;ï¬ð;F«ð;œ©ð;ó§ð;I¦ð; ¤ð;÷¢ð;M¡ð;¤Ÿð;û�ð;Rœð;©šð; ™ð;W—ð;®•ð;”ð;\’ð;³�ð;
�ð;a�ð;¸‹ð;Šð;gˆð;¾†ð;…ð;mƒð;Ä�ð;€ð;s~ð;Ê|ð;"{ð;yyð;Ñwð;)vð;€tð;Ørð;0qð;‡oð;ßmð;7lð;�jð;çhð;?gð;—eð;ïcð;Gbð;Ÿ`ð;÷^ð;O]ð;§[ð; Zð;XXð;°Vð;Uð;aSð;¹Qð;Pð;jNð;ÂLð;Kð;sIð;ÌGð;%Fð;}Dð;ÖBð;/Að;ˆ?ð;à=ð;9<ð;’:ð;ë8ð;D7ð;�5ð;ö3ð;O2ð;¨0ð;/ð;Z-ð;³+ð;*ð;f(ð;¿&ð;%ð;r#ð;Ë!ð;$ ð;~ð;×ð;1ð;Šð;äð;=ð;—ð;ñð;Kð;¤ð;þð;Xð;²
ð;	ð;eð;¿ð;ð;sð;Í ð;(ÿï;‚ýï;Üûï;6úï;�øï;êöï;Eõï;Ÿóï;ùñï;Tðï;®îï;	íï;cëï;¾éï;èï;sæï;Íäï;(ãï;ƒáï;Þßï;8Þï;“Üï;îÚï;IÙï;¤×ï;ÿÕï;ZÔï;µÒï;Ñï;kÏï;ÆÍï;!Ìï;|Êï;×Èï;3Çï;ŽÅï;éÃï;DÂï; Àï;û¾ï;W½ï;²»ï;ºï;i¸ï;Å¶ï; µï;|³ï;Ø±ï;3°ï;�®ï;ë¬ï;G«ï;£©ï;þ§ï;Z¦ï;¶¤ï;£ï;n¡ï;ÊŸï;&žï;ƒœï;ßšï;;™ï;——ï;ó•ï;P”ï;¬’ï;‘ï;e�ï;Á�ï;Œï;zŠï;Öˆï;3‡ï;�…ï;ìƒï;I‚ï;¦€ï;ï;_}ï;¼{ï;zï;uxï;Òvï;/uï;Œsï;éqï;Fpï;£nï; mï;^kï;»iï;hï;ufï;Òdï;0cï;�aï;ê_ï;H^ï;¥\ï;[ï;`Yï;¾Wï;Vï;yTï;ÖRï;4Qï;’Oï;ïMï;MLï;«Jï;	Iï;gGï;ÅEï;"Dï;€Bï;Þ@ï;<?ï;›=ï;ù;ï;W:ï;µ8ï;7ï;q5ï;Ð3ï;.2ï;Œ0ï;ë.ï;I-ï;§+ï;*ï;d(ï;Ã&ï;!%ï;€#ï;ß!ï;= ï;œï;ûï;Yï;¸ï;ï;vï;Õï;4ï;“ï;òï;Qï;°ï;ï;n	ï;Íï;,ï;Œï;ëï;Jï;©ÿî;	þî;hüî;Èúî;'ùî;‡÷î;æõî;Fôî;¥òî;ñî;eïî;Äíî;$ìî;„êî;ãèî;Cçî;£åî;äî;câî;Ãàî;#ßî;ƒÝî;ãÛî;CÚî;£Øî;×î;dÕî;ÄÓî;$Òî;„Ðî;åÎî;EÍî;¥Ëî;Êî;fÈî;ÇÆî;'Åî;ˆÃî;èÁî;IÀî;ª¾î;
½î;k»î;Ì¹î;-¸î;�¶î;î´î;O³î;°±î;°î;r®î;Ó¬î;4«î;•©î;ö§î;W¦î;¹¤î;£î;{¡î;ÜŸî;>žî;Ÿœî; ›î;b™î;Ã—î;%–î;†”î;è’î;I‘î;«�î;Žî;nŒî;ÐŠî;2‰î;“‡î;õ…î;W„î;¹‚î;�î;}î;ß}î;A|î;£zî;yî;gwî;Éuî;+tî;Žrî;ðpî;Roî;´mî;lî;yjî;Ûhî;>gî; eî;dî;ebî;È`î;+_î;�]î;ð[î;RZî;µXî;Wî;{Uî;ÞSî;@Rî;£Pî;Oî;iMî;ÌKî;/Jî;’Hî;õFî;YEî;¼Cî;Bî;‚@î;å>î;I=î;¬;î;:î;s8î;Ö6î;:5î;�3î; 2î;d0î;È.î;+-î;�+î;ó)î;V(î;º&î;%î;‚#î;å!î;I î;­î;î;uî;Ùî;=î;¡î;î;iî;Îî;2î;–î;úî;_î;Ã	î;'î;Œî;ðî;Uî;¹î; î;‚þí;çüí;Kûí;°ùí;øí;yöí;Þôí;Cóí;¨ñí;ðí;rîí;Öìí;;ëí; éí;èí;jæí;Ïäí;5ãí;šáí;ÿßí;dÞí;ÉÜí;/Ûí;”Ùí;ù×í;_Öí;ÄÔí;)Óí;�Ñí;ôÏí;ZÎí;ÀÌí;%Ëí;‹Éí;ðÇí;VÆí;¼Äí;"Ãí;‡Áí;í¿í;S¾í;¹¼í;»í;…¹í;ë·í;Q¶í;·´í;³í;ƒ±í;é¯í;O®í;¶¬í;«í;‚©í;è§í;O¦í;µ¤í;£í;‚¡í;èŸí;Oží;¶œí;›í;ƒ™í;é—í;P–í;·”í;“í;„‘í;ë�í;RŽí;¹Œí; ‹í;†‰í;í‡í;T†í;»„í;"ƒí;Š�í;ñí;X~í;¿|í;&{í;�yí;õwí;\ví;Ãtí;+sí;’qí;úoí;aní;Élí;0kí;˜ií;ÿgí;gfí;Ïdí;6cí;žaí;`í;n^í;Õ\í;=[í;¥Yí;Xí;uVí;ÝTí;ESí;­Qí;Pí;}Ní;åLí;NKí;¶Ií;Hí;†Fí;ïDí;WCí;¿Aí;(@í;�>í;ù<í;a;í;Ê9í;28í;›6í;5í;l3í;Õ1í;=0í;¦.í;-í;x+í;á)í;J(í;²&í;%í;„#í;í!í;V í;Àí;)í;’í;ûí;dí;Íí;7í; í;	í;sí;Üí;Eí;¯í;
í;‚í;ëí;Uí;¿í;(í;’ í;üþì;eýì;Ïûì;9úì;£øì;÷ì;wõì;áóì;Kòì;µðì;ïì;‰íì;óëì;]êì;Çèì;1çì;›åì;äì;pâì;Úàì;Eßì;¯Ýì;Üì;„Úì;îØì;Y×ì;ÃÕì;.Ôì;™Òì;Ñì;nÏì;ÙÍì;CÌì;®Êì;Éì;„Çì;ïÅì;YÄì;ÄÂì;/Áì;š¿ì;¾ì;p¼ì;Ûºì;G¹ì;²·ì;¶ì;ˆ´ì;ó²ì;_±ì;Ê¯ì;5®ì;¡¬ì;«ì;w©ì;ã§ì;N¦ì;º¤ì;%£ì;‘¡ì;ýŸì;hžì;Ôœì;@›ì;«™ì;˜ì;ƒ–ì;ï”ì;[“ì;Ç‘ì;3�ì;ŸŽì;�ì;w‹ì;ã‰ì;Oˆì;»†ì;'…ì;“ƒì;ÿ�ì;l€ì;Ø~ì;D}ì;±{ì;zì;‰xì;övì;buì;Ïsì;;rì;¨pì;oì;�mì;îkì;Zjì;Çhì;4gì;¡eì;dì;zbì;ç`ì;T_ì;Á]ì;.\ì;›Zì;Yì;uWì;âUì;OTì;½Rì;*Qì;—Oì;Nì;rLì;ßJì;LIì;ºGì;'Fì;”Dì;Cì;oAì;Ý?ì;K>ì;¸<ì;&;ì;“9ì;8ì;o6ì;Ý4ì;J3ì;¸1ì;&0ì;”.ì;-ì;p+ì;Þ)ì;L(ì;º&ì;(%ì;–#ì;"ì;r ì;áì;Oì;½ì;+ì;šì;ì;vì;åì;Sì;Âì;0ì;Ÿì;ì;|
ì;ëì;Yì;Èì;7ì;¥ì;ì;ƒÿë;òýë;aüë;Ðúë;?ùë;®÷ë;öë;Œôë;ûòë;jñë;Ùïë;Hîë;·ìë;'ëë;–éë;èë;uæë;ääë;Sãë;Ãáë;2àë;¢Þë;Ýë;�Ûë;ðÙë;`Øë;ÏÖë;?Õë;¯Óë;Òë;ŽÐë;þÎë;nÍë;ÞËë;NÊë;¾Èë;-Çë;�Åë;Äë;}Âë;îÀë;^¿ë;Î½ë;>¼ë;®ºë;¹ë;�·ë;ÿµë;o´ë;à²ë;P±ë;À¯ë;1®ë;¡¬ë;«ë;‚©ë;ó§ë;c¦ë;Ô¤ë;E£ë;µ¡ë;& ë;—žë;�ë;y›ë;é™ë;Z˜ë;Ë–ë;<•ë;­“ë;’ë;��ë; �ë;q�ë;â‹ë;TŠë;Åˆë;6‡ë;§…ë;„ë;Š‚ë;û€ë;lë;Þ}ë;O|ë;Ázë;2yë;¤wë;vë;‡të;ùrë;jqë;Üoë;Nnë;¿lë;1kë;£ië;hë;‡fë;ødë;jcë;Üaë;N`ë;À^ë;2]ë;¤[ë;Zë;‰Xë;ûVë;mUë;ßSë;RRë;ÄPë;6Oë;©Më;Lë;�Jë; Ië;rGë;åEë;WDë;ÊBë;=Aë;¯?ë;">ë;”<ë;;ë;z9ë;í7ë;`6ë;Ò4ë;E3ë;¸1ë;+0ë;ž.ë;-ë;„+ë;÷)ë;j(ë;Ý&ë;Q%ë;Ä#ë;7"ë;ª ë;ë;‘ë;ë;xë;ëë;^ë;Òë;Eë;¹ë;,ë; ë;ë;‡ë;û
ë;o	ë;âë;Vë;Êë;>ë;²ë;% ë;™þê;ýê;�ûê;õùê;iøê;Ýöê;Rõê;Æóê;:òê;®ðê;"ïê;—íê;ìê;êê;óèê;hçê;Üåê;Qäê;Åâê;:áê;®ßê;#Þê;—Üê;Ûê;�Ùê;õ×ê;jÖê;ßÔê;TÓê;ÈÑê;=Ðê;²Îê;'Íê;œËê;Êê;†Èê;ûÆê;pÅê;åÃê;ZÂê;ÏÀê;D¿ê;º½ê;/¼ê;¤ºê;¹ê;�·ê;¶ê;y´ê;ï²ê;d±ê;Ú¯ê;O®ê;Å¬ê;:«ê;°©ê;&¨ê;›¦ê;¥ê;‡£ê;ü¡ê;r ê;èžê;^�ê;Ô›ê;Jšê;¿˜ê;5—ê;«•ê;!”ê;—’ê;‘ê;„�ê;ú�ê;pŒê;æŠê;\‰ê;Ó‡ê;I†ê;¿„ê;6ƒê;¬�ê;"€ê;™~ê;}ê;†{ê;üyê;sxê;êvê;`uê;×sê;Mrê;Äpê;;oê;²mê;)lê;Ÿjê;iê;�gê;fê;{dê;òbê;iaê;à_ê;W^ê;Î\ê;E[ê;½Yê;4Xê;«Vê;"Uê;šSê;Rê;ˆPê; Oê;wMê;îKê;fJê;ÝHê;UGê;ÌEê;DDê;¼Bê;3Aê;«?ê;#>ê;š<ê;;ê;Š9ê;8ê;z6ê;ò4ê;i3ê;á1ê;Y0ê;Ñ.ê;I-ê;Â+ê;:*ê;²(ê;*'ê;¢%ê;$ê;“"ê;!ê;ƒê;üê;tê;ìê;eê;Ýê;Vê;Îê;Gê;¿ê;8ê;±ê;)ê;¢ê;
ê;“ê;ê;…ê;þê;wê;ð ê;iÿé;âýé;[üé;Ôúé;Mùé;Æ÷é;?öé;¸ôé;1óé;ªñé;$ðé;�îé;íé;�ëé;	êé;‚èé;üæé;uåé;ïãé;hâé;âàé;[ßé;ÕÝé;NÜé;ÈÚé;BÙé;¼×é;5Öé;¯Ôé;)Óé;£Ñé;Ðé;–Îé;Íé;ŠËé;Êé;~Èé;øÆé;rÅé;íÃé;gÂé;áÀé;[¿é;Õ½é;O¼é;Êºé;D¹é;¾·é;9¶é;³´é;.³é;¨±é;#°é;�®é;­é;’«é;ªé;‡¨é;§é;}¥é;ø£é;r¢é;í é;hŸé;ã�é;^œé;Ùšé;S™é;Î—é;I–é;Ä”é;?“é;»‘é;6�é;±Žé;,�é;§‹é;"Šé;žˆé;‡é;”…é;„é;‹‚é;�é;‚é;ý}é;y|é;ôzé;pyé;ìwé;gvé;ãté;^sé;Úqé;Vpé;Òné;Mmé;Éké;Ejé;Áhé;=gé;¹eé;5dé;±bé;-aé;©_é;%^é;¡\é;[é;™Yé;Xé;’Vé;Ué;ŠSé;Ré;ƒPé; Oé;|Mé;øKé;uJé;ñHé;nGé;êEé;gDé;äBé;`Aé;Ý?é;Z>é;Ö<é;S;é;Ð9é;M8é;Ê6é;G5é;Ã3é;@2é;½0é;:/é;·-é;4,é;²*é;/)é;¬'é;)&é;¦$é;##é;¡!é; é;›é;é;–é;é;‘é;é;Œé;	é;‡é;é;‚é; é;~é;û
é;y	é;÷é;ué;òé;pé;îé;l é;êþè;hýè;æûè;dúè;âøè;`÷è;Þõè;\ôè;Ûòè;Yñè;×ïè;Uîè;Ôìè;Rëè;Ðéè;Oèè;Íæè;Kåè;Êãè;Hâè;Çàè;Eßè;ÄÝè;CÜè;ÁÚè;@Ùè;¿×è;=Öè;¼Ôè;;Óè;ºÑè;9Ðè;·Îè;6Íè;µËè;4Êè;³Èè;2Çè;±Åè;0Äè;°Âè;/Áè;®¿è;-¾è;¬¼è;,»è;«¹è;*¸è;©¶è;)µè;¨³è;(²è;§°è;'¯è;¦­è;&¬è;¥ªè;%©è;¤§è;$¦è;¤¤è;$£è;£¡è;# è;£žè;#�è;£›è;"šè;¢˜è;"—è;¢•è;"”è;¢’è;"‘è;£�è;#Žè;£Œè;#‹è;£‰è;#ˆè;¤†è;$…è;¤ƒè;%‚è;¥€è;&è;¦}è;&|è;§zè;'yè;¨wè;)vè;©tè;*sè;«qè;+pè;¬nè;-mè;®kè;.jè;¯hè;0gè;±eè;2dè;³bè;4aè;µ_è;6^è;·\è;8[è;¹Yè;;Xè;¼Vè;=Uè;¾Sè;?Rè;ÁPè;BOè;ÄMè;ELè;ÆJè;HIè;ÉGè;KFè;ÌDè;NCè;ÐAè;Q@è;Ó>è;T=è;Ö;è;X:è;Ú8è;\7è;Ý5è;_4è;á2è;c1è;å/è;g.è;é,è;k+è;í)è;o(è;ñ&è;s%è;ö#è;x"è;ú è;|è;ÿè;�è;è;†è;è;Šè;è;�è;è;”è;è;šè;è;Ÿ
è;"	è;¤è;'è;ªè;-è;°è;2 è;µþç;8ýç;»ûç;>úç;Áøç;D÷ç;Çõç;Jôç;Îòç;Qñç;Ôïç;Wîç;Úìç;^ëç;áéç;dèç;èæç;kåç;îãç;râç;õàç;yßç;üÝç;€Üç;Ûç;‡Ùç;Øç;ŽÖç;Õç;–Óç;Òç;�Ðç;!Ïç;¥Íç;)Ìç;­Êç;1Éç;µÇç;9Æç;½Äç;AÃç;ÅÁç;IÀç;Í¾ç;Q½ç;Õ»ç;Yºç;Þ¸ç;b·ç;æµç;j´ç;ï²ç;s±ç;¤type§scatter¤name©b = 10000¡xÉ 8„    ·Ñ8·Q9RI�9·Ñ9o:RI:4€7:·Q:úík:oƒ:à-�:RI�:Ãdª:4€·:¦›Ä:·Ñ:‰ÒÞ:úíë:l	ù:o;' 	;à-;™»;RI;
×#;Ãd*;|ò0;4€7;í>;¦›D;_)K;·Q;ÐDX;‰Ò^;B`e;úík;³{r;l	y;$—;oƒ;KY†;' ‰;çŒ;à-�;¼t“;™»–;uš;RI�;.� ;
×£;ç§;Ãdª;Ÿ«­;|ò°;X9´;4€·;Çº;í¾;ÊTÁ;¦›Ä;‚âÇ;_)Ë;;pÎ;·Ñ;ôýÔ;ÐDØ;¬‹Û;‰ÒÞ;eâ;B`å;§è;úíë;×4ï;³{ò;�Âõ;l	ù;HPü;$—ÿ; o<o<Ýµ<KY<¹ü<' 	<–C<ç<rŠ<à-<NÑ<¼t<+<™»<_<u<ã¥<RI<Àì<.� <œ3"<
×#<xz%<ç'<UÁ(<Ãd*<1,<Ÿ«-<O/<|ò0<ê•2<X94<ÆÜ5<4€7<£#9<Ç:<j<<í><[±?<ÊTA<8øB<¦›D<?F<‚âG<ð…I<_)K<ÍÌL<;pN<©P<·Q<†ZS<ôýT<b¡V<ÐDX<>èY<¬‹[</]<‰Ò^<÷u`<eb<Ó¼c<B`e<°g<§h<ŒJj<úík<h‘m<×4o<EØp<³{r<!t<�Âu<þew<l	y<Ú¬z<HP|<¶ó}<$—<I�€< o�<¸@‚<oƒ<&äƒ<Ýµ„<”‡…<KY†<+‡<¹ü‡<pÎˆ<' ‰<ÞqŠ<–C‹<MŒ<çŒ<»¸�<rŠŽ<)\�<à-�<—ÿ�<NÑ‘<£’<¼t“<tF”<+•<âé•<™»–<P�—<_˜<¾0™<uš<,Ôš<ã¥›<šwœ<RI�<	ž<Àìž<w¾Ÿ<.� <åa¡<œ3¢<S£<
×£<Á¨¤<xz¥<0L¦<ç§<žï§<UÁ¨<“©<Ãdª<z6«<1¬<èÙ¬<Ÿ«­<V}®<O¯<Å °<|ò°<3Ä±<ê•²<¡g³<X9´<µ<ÆÜµ<}®¶<4€·<ìQ¸<£#¹<Zõ¹<Çº<È˜»<j¼<6<½<í¾<¤ß¾<[±¿<ƒÀ<ÊTÁ<�&Â<8øÂ<ïÉÃ<¦›Ä<]mÅ<?Æ<ËÇ<‚âÇ<9´È<ð…É<¨WÊ<_)Ë<ûË<ÍÌÌ<„žÍ<;pÎ<òAÏ<©Ð<`åÐ<·Ñ<ÎˆÒ<†ZÓ<=,Ô<ôýÔ<«ÏÕ<b¡Ö<s×<ÐDØ<‡Ù<>èÙ<õ¹Ú<¬‹Û<d]Ü</Ý<Ò Þ<‰ÒÞ<@¤ß<÷uà<®Gá<eâ<ëâ<Ó¼ã<ŠŽä<B`å<ù1æ<°ç<gÕç<§è<Õxé<ŒJê<Cë<úíë<±¿ì<h‘í< cî<×4ï<Žð<EØð<ü©ñ<³{ò<jMó<!ô<Øðô<�Âõ<F”ö<þe÷<µ7ø<l	ù<#Ûù<Ú¬ú<‘~û<HPü<ÿ!ý<¶óý<mÅþ<$—ÿ<n4 =I� =%= o=Ü×=¸@=“©=o=J{=&ä=M=Ýµ=¸=”‡=oð=KY='Â=+=Þ“=¹ü=•e=pÎ=L7	=' 	=	
=Þq
=ºÚ
=–C=q¬=M=(~=ç=ßO=»¸=–!=rŠ=Mó=)\=Å=à-=¼–=—ÿ=sh=NÑ=*:=£=á=¼t=˜Ý=tF=O¯=+=�=âé=½R=™»=t$=P�=+ö=_=ãÇ=¾0=š™=u=Qk=,Ô===ã¥=¿=šw=và=RI=-²=	=äƒ=Àì=›U=w¾=R' =.� =	ù =åa!=ÁÊ!=œ3"=xœ"=S#=/n#=
×#=æ?$=Á¨$=�%=xz%=Tã%=0L&=µ&=ç'=Â†'=žï'=yX(=UÁ(=0*)=“)=çû)=Ãd*=ŸÍ*=z6+=VŸ+=1,=q,=èÙ,=ÄB-=Ÿ«-={.=V}.=2æ.=O/=é·/=Å 0= ‰0=|ò0=W[1=3Ä1=-2=ê•2=Åþ2=¡g3=}Ð3=X94=4¢4=5=ës5=ÆÜ5=¢E6=}®6=Y7=4€7=é7=ìQ8=Çº8=£#9=~Œ9=Zõ9=5^:=Ç:=ì/;=È˜;=£<=j<=[Ó<=6<==¥==í>=Év>=¤ß>=€H?=[±?=7@=ƒ@=îë@=ÊTA=¥½A=�&B=\�B=8øB=aC=ïÉC=Ê2D=¦›D=�E=]mE=9ÖE=?F=ð§F=ËG=§yG=‚âG=^KH=9´H=I=ð…I=ÌîI=¨WJ=ƒÀJ=_)K=:’K=ûK=ñcL=ÍÌL=¨5M=„žM=_N=;pN=ÙN=òAO=ÎªO=©P=…|P=`åP=<NQ=·Q=óR=ÎˆR=ªñR=†ZS=aÃS==,T=•T=ôýT=ÏfU=«ÏU=†8V=b¡V==
W=sW=õÛW=ÐDX=¬­X=‡Y=cY=>èY=QZ=õ¹Z=Ñ"[=¬‹[=ˆô[=d]\=?Æ\=/]=ö—]=Ò ^=­i^=‰Ò^=d;_=@¤_=`=÷u`=ÓÞ`=®Ga=Š°a=eb=A‚b=ëb=øSc=Ó¼c=¯%d=ŠŽd=f÷d=B`e=Ée=ù1f=Ôšf=°g=‹lg=gÕg=B>h=§h=ùi=Õxi=±ái=ŒJj=h³j=Ck=…k=úík=ÖVl=±¿l=�(m=h‘m=Dúm= cn=ûËn=×4o=²�o=Žp=iop=EØp= Aq=ü©q=×r=³{r=�är=jMs=F¶s=!t=ý‡t=Øðt=´Yu=�Âu=k+v=F”v="ýv=þew=ÙÎw=µ7x=� x=l	y=Gry=#Ûy=þCz=Ú¬z=µ{=‘~{=mç{=HP|=$¹|=ÿ!}=ÛŠ}=¶ó}=’\~=mÅ~=I.=$—=  €=n4€=Üh€=I�€=·Ñ€=%�=“:�= o�=n£�=Ü×�=J‚=¸@‚=%u‚=“©‚=Þ‚=oƒ=ÜFƒ=J{ƒ=¸¯ƒ=&äƒ=“„=M„=o�„=Ýµ„=Kê„=¸…=&S…=”‡…=¼…=oð…=Ý$†=KY†=¹�†='Â†=”ö†=+‡=p_‡=Þ“‡=KÈ‡=¹ü‡='1ˆ=•eˆ=šˆ=pÎˆ=Þ‰=L7‰=ºk‰=' ‰=•Ô‰=	Š=q=Š=ÞqŠ=L¦Š=ºÚŠ=(‹=–C‹=x‹=q¬‹=ßà‹=MŒ=ºIŒ=(~Œ=–²Œ=çŒ=q�=ßO�=M„�=»¸�=)í�=–!Ž=VŽ=rŠŽ=à¾Ž=MóŽ=»'�=)\�=—��=Å�=rù�=à-�=Nb�=¼–�=)Ë�=—ÿ�=4‘=sh‘=àœ‘=NÑ‘=¼’=*:’=˜n’=£’=s×’=á“=O@“=¼t“=*©“=˜Ý“=”=tF”=áz”=O¯”=½ã”=+•=˜L•=�•=tµ•=âé•=O–=½R–=+‡–=™»–=ð–=t$—=âX—=P�—=¾Á—=+ö—=™*˜=_˜=u“˜=ãÇ˜=Pü˜=¾0™=,e™=š™™=Î™=uš=ã6š=Qkš=¾Ÿš=,Ôš=š›==›=vq›=ã¥›=QÚ›=¿œ=-Cœ=šwœ=¬œ=vàœ=ä�=RI�=¿}�=-²�=›æ�=	ž=vOž=äƒž=R¸ž=Àìž=-!Ÿ=›UŸ=	ŠŸ=w¾Ÿ=åòŸ=R' =À[ =.� =œÄ =	ù =w-¡=åa¡=S–¡=ÁÊ¡=.ÿ¡=œ3¢=
h¢=xœ¢=åÐ¢=S£=Á9£=/n£=œ¢£=
×£=x¤=æ?¤=Tt¤=Á¨¤=/Ý¤=�¥=F¥=xz¥=æ®¥=Tã¥=Â¦=0L¦=�€¦=µ¦=yé¦=ç§=TR§=Â†§=0»§=žï§=$¨=yX¨=çŒ¨=UÁ¨=Ãõ¨=0*©=ž^©=“©=zÇ©=çû©=U0ª=Ãdª=1™ª=ŸÍª=«=z6«=èj«=VŸ«=ÃÓ«=1¬=Ÿ<¬=q¬=z¥¬=èÙ¬=V­=ÄB­=2w­=Ÿ«­=à­={®=éH®=V}®=Ä±®=2æ®= ¯=O¯={ƒ¯=é·¯=Wì¯=Å °=2U°= ‰°=¾°=|ò°=é&±=W[±=Å�±=3Ä±=¡ø±=-²=|a²=ê•²=XÊ²=Åþ²=33³=¡g³=œ³=}Ð³=ê´=X9´=Æm´=4¢´=¡Ö´=µ=}?µ=ësµ=X¨µ=ÆÜµ=4¶=¢E¶=z¶=}®¶=ëâ¶=Y·=ÇK·=4€·=¢´·=é·=~¸=ìQ¸=Y†¸=Çº¸=5ï¸=£#¹=X¹=~Œ¹=ìÀ¹=Zõ¹=Ç)º=5^º=£’º=Çº=ûº=ì/»=Zd»=È˜»=6Í»=£¼=6¼=j¼=íž¼=[Ó¼=È½=6<½=¤p½=¥½=Ù½=í¾=[B¾=Év¾=6«¾=¤ß¾=¿=€H¿=î|¿=[±¿=Éå¿=7À=¥NÀ=ƒÀ=€·À=îëÀ=\ Á=ÊTÁ=7‰Á=¥½Á=òÁ=�&Â=îZÂ=\�Â=ÊÃÂ=8øÂ=¥,Ã=aÃ=�•Ã=ïÉÃ=]þÃ=Ê2Ä=8gÄ=¦›Ä=ÐÄ=�Å=ï8Å=]mÅ=Ë¡Å=9ÖÅ=¦
Æ=?Æ=‚sÆ=ð§Æ=]ÜÆ=ËÇ=9EÇ=§yÇ=®Ç=‚âÇ=ðÈ=^KÈ=ÌÈ=9´È=§èÈ=É=ƒQÉ=ð…É=^ºÉ=ÌîÉ=:#Ê=¨WÊ=ŒÊ=ƒÀÊ=ñôÊ=_)Ë=Ì]Ë=:’Ë=¨ÆË=ûË=ƒ/Ì=ñcÌ=_˜Ì=ÍÌÌ=;Í=¨5Í=jÍ=„žÍ=òÒÍ=_Î=Í;Î=;pÎ=©¤Î=ÙÎ=„Ï=òAÏ=`vÏ=ÎªÏ=;ßÏ=©Ð=HÐ=…|Ð=ò°Ð=`åÐ=ÎÑ=<NÑ=ª‚Ñ=·Ñ=…ëÑ=óÒ=aTÒ=ÎˆÒ=<½Ò=ªñÒ=&Ó=†ZÓ=óŽÓ=aÃÓ=Ï÷Ó==,Ô=ª`Ô=•Ô=†ÉÔ=ôýÔ=a2Õ=ÏfÕ==›Õ=«ÏÕ=Ö=†8Ö=ôlÖ=b¡Ö=ÐÕÖ==
×=«>×=s×=‡§×=õÛ×=bØ=ÐDØ=>yØ=¬­Ø=âØ=‡Ù=õJÙ=cÙ=Ð³Ù=>èÙ=¬Ú=QÚ=ˆ…Ú=õ¹Ú=cîÚ=Ñ"Û=?WÛ=¬‹Û=ÀÛ=ˆôÛ=ö(Ü=d]Ü=Ñ‘Ü=?ÆÜ=­úÜ=/Ý=ˆcÝ=ö—Ý=dÌÝ=Ò Þ=?5Þ=­iÞ=žÞ=‰ÒÞ=÷ß=d;ß=Òoß=@¤ß=®Øß=à=‰Aà=÷uà=eªà=ÓÞà=@á=®Gá=|á=Š°á=÷äá=eâ=ÓMâ=A‚â=®¶â=ëâ=Šã=øSã=fˆã=Ó¼ã=Añã=¯%ä=Zä=ŠŽä=øÂä=f÷ä=Ô+å=B`å=¯”å=Éå=‹ýå=ù1æ=ffæ=Ôšæ=BÏæ=°ç=8ç=‹lç=ù ç=gÕç=Õ	è=B>è=°rè=§è=ŒÛè=ùé=gDé=Õxé=C­é=±áé=ê=ŒJê=ú~ê=h³ê=Õçê=Cë=±Pë=…ë=Œ¹ë=úíë=h"ì=ÖVì=D‹ì=±¿ì=ôì=�(í=û\í=h‘í=ÖÅí=Dúí=².î= cî=�—î=ûËî=i ï=×4ï=Diï=²�ï= Òï=Žð=û:ð=ioð=×£ð=EØð=³ñ= Añ=Žuñ=ü©ñ=jÞñ=×ò=EGò=³{ò=!°ò=�äò=üó=jMó=Ø�ó=F¶ó=³êó=!ô=�Sô=ý‡ô=j¼ô=Øðô=F%õ=´Yõ="Žõ=�Âõ=ýöõ=k+ö=Ù_ö=F”ö=´Èö="ýö=�1÷=þe÷=kš÷=ÙÎ÷=Gø=µ7ø="lø=� ø=þÔø=l	ù=Ù=ù=Grù=µ¦ù=#Ûù=‘ú=þCú=lxú=Ú¬ú=Háú=µû=#Jû=‘~û=ÿ²û=mçû=Úü=HPü=¶„ü=$¹ü=‘íü=ÿ!ý=mVý=ÛŠý=H¿ý=¶óý=$(þ=’\þ= ‘þ=mÅþ=Ûùþ=I.ÿ=·bÿ=$—ÿ=’Ëÿ=   >7 >n4 >¥N >Üh >ƒ >I� >€· >·Ñ >îë >%>\ >“:>ÊT> o>7‰>n£>¥½>Ü×>ò>J>�&>¸@>îZ>%u>\�>“©>ÊÃ>Þ>8ø>o>¥,>ÜF>a>J{>�•>¸¯>ïÉ>&ä>]þ>“>Ê2>M>8g>o�>¦›>Ýµ>Ð>Kê>�>¸>ï8>&S>]m>”‡>Ë¡>¼>9Ö>oð>¦
>Ý$>?>KY>‚s>¹�>ð§>'Â>]Ü>”ö>Ë>+>9E>p_>§y>Þ“>®>KÈ>‚â>¹ü>ð>'1>^K>•e>Ì>š>9´>pÎ>§è>Þ	>	>L7	>ƒQ	>ºk	>ð…	>' 	>^º	>•Ô	>Ìî	>	
>:#
>q=
>¨W
>Þq
>Œ
>L¦
>ƒÀ
>ºÚ
>ñô
>(>_)>–C>Ì]>x>:’>q¬>¨Æ>ßà>û>M>ƒ/>ºI>ñc>(~>_˜>–²>ÍÌ>ç>;>q>¨5>ßO>j>M„>„ž>»¸>òÒ>)í>_>–!>Í;>V>;p>rŠ>©¤>à¾>Ù>Mó>„>»'>òA>)\>`v>—�>Îª>Å>;ß>rù>©>à->H>Nb>…|>¼–>ò°>)Ë>`å>—ÿ>Î>4><N>sh>ª‚>àœ>·>NÑ>…ë>¼>ó>*:>aT>˜n>Îˆ>£><½>s×>ªñ>á>&>O@>†Z>¼t>óŽ>*©>aÃ>˜Ý>Ï÷>>=,>tF>ª`>áz>•>O¯>†É>½ã>ôý>+>a2>˜L>Ïf>�>=›>tµ>«Ï>âé>>O>†8>½R>ôl>+‡>b¡>™»>ÐÕ>ð>=
>t$>«>>âX>s>P�>‡§>¾Á>õÛ>+ö>b>™*>ÐD>_>>y>u“>¬­>ãÇ>â>Pü>‡>¾0>õJ>,e>c>š™>Ð³>Î>>è>u>¬>ã6>Q>Qk>ˆ…>¾Ÿ>õ¹>,Ô>cî>š>Ñ">=>?W>vq>¬‹>ã¥>À>QÚ>ˆô>¿>ö(>-C>d]>šw>Ñ‘>¬>?Æ>và>­ú>ä>/>RI>ˆc>¿}>ö—>-²>dÌ>›æ>Ò >	>?5>vO>­i>äƒ>ž>R¸>‰Ò>Àì>÷>-!>d;>›U>Òo>	Š>@¤>w¾>®Ø>åò> >R' >‰A >À[ >÷u >.� >eª >œÄ >ÓÞ >	ù >@!>w-!>®G!>åa!>|!>S–!>Š°!>ÁÊ!>÷ä!>.ÿ!>e">œ3">ÓM">
h">A‚">xœ">®¶">åÐ">ë">S#>Š#>Á9#>øS#>/n#>fˆ#>œ¢#>Ó¼#>
×#>Añ#>x$>¯%$>æ?$>Z$>Tt$>ŠŽ$>Á¨$>øÂ$>/Ý$>f÷$>�%>Ô+%>F%>B`%>xz%>¯”%>æ®%>É%>Tã%>‹ý%>Â&>ù1&>0L&>ff&>�€&>Ôš&>µ&>BÏ&>yé&>°'>ç'>8'>TR'>‹l'>Â†'>ù '>0»'>gÕ'>žï'>Õ	(>$(>B>(>yX(>°r(>çŒ(>§(>UÁ(>ŒÛ(>Ãõ(>ù)>0*)>gD)>ž^)>Õx)>“)>C­)>zÇ)>±á)>çû)>*>U0*>ŒJ*>Ãd*>ú~*>1™*>h³*>ŸÍ*>Õç*>+>C+>z6+>±P+>èj+>…+>VŸ+>Œ¹+>ÃÓ+>úí+>1,>h",>Ÿ<,>ÖV,>q,>D‹,>z¥,>±¿,>èÙ,>ô,>V->�(->ÄB->û\->2w->h‘->Ÿ«->ÖÅ->à->Dú->{.>²..>éH.> c.>V}.>�—.>Ä±.>ûË.>2æ.>i /> />×4/>O/>Di/>{ƒ/>²�/>é·/> Ò/>Wì/>Ž0>Å 0>û:0>2U0>io0> ‰0>×£0>¾0>EØ0>|ò0>³1>é&1> A1>W[1>Žu1>Å�1>ü©1>3Ä1>jÞ1>¡ø1>×2>-2>EG2>|a2>³{2>ê•2>!°2>XÊ2>�ä2>Åþ2>ü3>333>jM3>¡g3>Ø�3>œ3>F¶3>}Ð3>³ê3>ê4>!4>X94>�S4>Æm4>ý‡4>4¢4>j¼4>¡Ö4>Øð4>5>F%5>}?5>´Y5>ës5>"Ž5>X¨5>�Â5>ÆÜ5>ýö5>46>k+6>¢E6>Ù_6>z6>F”6>}®6>´È6>ëâ6>"ý6>Y7>�17>ÇK7>þe7>4€7>kš7>¢´7>ÙÎ7>é7>G8>~8>µ78>ìQ8>"l8>Y†8>� 8>Çº8>þÔ8>5ï8>l	9>£#9>Ù=9>X9>Gr9>~Œ9>µ¦9>ìÀ9>#Û9>Zõ9>‘:>Ç):>þC:>5^:>lx:>£’:>Ú¬:>Ç:>Há:>û:>µ;>ì/;>#J;>Zd;>‘~;>È˜;>ÿ²;>6Í;>mç;>£<>Ú<>6<>HP<>j<>¶„<>íž<>$¹<>[Ó<>‘í<>È=>ÿ!=>6<=>mV=>¤p=>ÛŠ=>¥=>H¿=>Ù=>¶ó=>í>>$(>>[B>>’\>>Év>> ‘>>6«>>mÅ>>¤ß>>Ûù>>?>I.?>€H?>·b?>î|?>$—?>[±?>’Ë?>Éå?>  @>7@>n4@>¥N@>Üh@>ƒ@>I�@>€·@>·Ñ@>îë@>%A>\ A>“:A>ÊTA> oA>7‰A>n£A>¥½A>Ü×A>òA>JB>�&B>¸@B>îZB>%uB>\�B>“©B>ÊÃB>ÞB>8øB>oC>¥,C>ÜFC>aC>J{C>�•C>¸¯C>ïÉC>&äC>]þC>“D>Ê2D>MD>8gD>o�D>¦›D>ÝµD>ÐD>KêD>�E>¸E>ï8E>&SE>]mE>”‡E>Ë¡E>¼E>9ÖE>oðE>¦
F>Ý$F>?F>KYF>‚sF>¹�F>ð§F>'ÂF>]ÜF>”öF>ËG>+G>9EG>p_G>§yG>Þ“G>®G>KÈG>‚âG>¹üG>ðH>'1H>^KH>•eH>ÌH>šH>9´H>pÎH>§èH>ÞI>I>L7I>ƒQI>ºkI>ð…I>' I>^ºI>•ÔI>ÌîI>	J>:#J>q=J>¨WJ>ÞqJ>ŒJ>L¦J>ƒÀJ>ºÚJ>ñôJ>(K>_)K>–CK>Ì]K>xK>:’K>q¬K>¨ÆK>ßàK>ûK>ML>ƒ/L>ºIL>ñcL>(~L>_˜L>–²L>ÍÌL>çL>;M>qM>¨5M>ßOM>jM>M„M>„žM>»¸M>òÒM>)íM>_N>–!N>Í;N>VN>;pN>rŠN>©¤N>à¾N>ÙN>MóN>„O>»'O>òAO>)\O>`vO>—�O>ÎªO>ÅO>;ßO>rùO>©P>à-P>HP>NbP>…|P>¼–P>ò°P>)ËP>`åP>—ÿP>ÎQ>4Q><NQ>shQ>ª‚Q>àœQ>·Q>NÑQ>…ëQ>¼R>óR>*:R>aTR>˜nR>ÎˆR>£R><½R>s×R>ªñR>áS>&S>O@S>†ZS>¼tS>óŽS>*©S>aÃS>˜ÝS>Ï÷S>T>=,T>tFT>ª`T>ázT>•T>O¯T>†ÉT>½ãT>ôýT>+U>a2U>˜LU>ÏfU>�U>=›U>tµU>«ÏU>âéU>V>OV>†8V>½RV>ôlV>+‡V>b¡V>™»V>ÐÕV>ðV>=
W>t$W>«>W>âXW>sW>P�W>‡§W>¾ÁW>õÛW>+öW>bX>™*X>ÐDX>_X>>yX>u“X>¬­X>ãÇX>âX>PüX>‡Y>¾0Y>õJY>,eY>cY>š™Y>Ð³Y>ÎY>>èY>uZ>¬Z>ã6Z>QZ>QkZ>ˆ…Z>¾ŸZ>õ¹Z>,ÔZ>cîZ>š[>Ñ"[>=[>?W[>vq[>¬‹[>ã¥[>À[>QÚ[>ˆô[>¿\>ö(\>-C\>d]\>šw\>Ñ‘\>¬\>?Æ\>và\>­ú\>ä]>/]>RI]>ˆc]>¿}]>ö—]>-²]>dÌ]>›æ]>Ò ^>	^>?5^>vO^>­i^>äƒ^>ž^>R¸^>‰Ò^>Àì^>÷_>-!_>d;_>›U_>Òo_>	Š_>@¤_>w¾_>®Ø_>åò_>`>R'`>‰A`>À[`>÷u`>.�`>eª`>œÄ`>ÓÞ`>	ù`>@a>w-a>®Ga>åaa>|a>S–a>Š°a>ÁÊa>÷äa>.ÿa>eb>œ3b>ÓMb>
hb>A‚b>xœb>®¶b>åÐb>ëb>Sc>Šc>Á9c>øSc>/nc>fˆc>œ¢c>Ó¼c>
×c>Añc>xd>¯%d>æ?d>Zd>Ttd>ŠŽd>Á¨d>øÂd>/Ýd>f÷d>�e>Ô+e>Fe>B`e>xze>¯”e>æ®e>Ée>Tãe>‹ýe>Âf>ù1f>0Lf>fff>�€f>Ôšf>µf>BÏf>yéf>°g>çg>8g>TRg>‹lg>Â†g>ù g>0»g>gÕg>žïg>Õ	h>$h>B>h>yXh>°rh>çŒh>§h>UÁh>ŒÛh>Ãõh>ùi>0*i>gDi>ž^i>Õxi>“i>C­i>zÇi>±ái>çûi>j>U0j>ŒJj>Ãdj>ú~j>1™j>h³j>ŸÍj>Õçj>k>Ck>z6k>±Pk>èjk>…k>VŸk>Œ¹k>ÃÓk>úík>1l>h"l>Ÿ<l>ÖVl>ql>D‹l>z¥l>±¿l>èÙl>ôl>Vm>�(m>ÄBm>û\m>2wm>h‘m>Ÿ«m>ÖÅm>àm>Dúm>{n>².n>éHn> cn>V}n>�—n>Ä±n>ûËn>2æn>i o> o>×4o>Oo>Dio>{ƒo>²�o>é·o> Òo>Wìo>Žp>Å p>û:p>2Up>iop> ‰p>×£p>¾p>EØp>|òp>³q>é&q> Aq>W[q>Žuq>Å�q>ü©q>3Äq>jÞq>¡øq>×r>-r>EGr>|ar>³{r>ê•r>!°r>XÊr>�är>Åþr>üs>33s>jMs>¡gs>Ø�s>œs>F¶s>}Ðs>³ês>êt>!t>X9t>�St>Æmt>ý‡t>4¢t>j¼t>¡Öt>Øðt>u>F%u>}?u>´Yu>ësu>"Žu>X¨u>�Âu>ÆÜu>ýöu>4v>k+v>¢Ev>Ù_v>zv>F”v>}®v>´Èv>ëâv>"ýv>Yw>�1w>ÇKw>þew>4€w>kšw>¢´w>ÙÎw>éw>Gx>~x>µ7x>ìQx>"lx>Y†x>� x>Çºx>þÔx>5ïx>l	y>£#y>Ù=y>Xy>Gry>~Œy>µ¦y>ìÀy>#Ûy>Zõy>‘z>Ç)z>þCz>5^z>lxz>£’z>Ú¬z>Çz>Ház>ûz>µ{>ì/{>#J{>Zd{>‘~{>È˜{>ÿ²{>6Í{>mç{>£|>Ú|>6|>HP|>j|>¶„|>íž|>$¹|>[Ó|>‘í|>È}>ÿ!}>6<}>mV}>¤p}>ÛŠ}>¥}>H¿}>Ù}>¶ó}>í~>$(~>[B~>’\~>Év~> ‘~>6«~>mÅ~>¤ß~>Ûù~>>I.>€H>·b>î|>$—>[±>’Ë>Éå>  €>€>7€>R'€>n4€>‰A€>¥N€>À[€>Üh€>÷u€>ƒ€>.�€>I�€>eª€>€·€>œÄ€>·Ñ€>ÓÞ€>îë€>	ù€>%�>@�>\ �>w-�>“:�>®G�>ÊT�>åa�> o�>|�>7‰�>S–�>n£�>Š°�>¥½�>ÁÊ�>Ü×�>÷ä�>ò�>.ÿ�>J‚>e‚>�&‚>œ3‚>¸@‚>ÓM‚>îZ‚>
h‚>%u‚>A‚‚>\�‚>xœ‚>“©‚>®¶‚>ÊÃ‚>åÐ‚>Þ‚>ë‚>8ø‚>Sƒ>oƒ>Šƒ>¥,ƒ>Á9ƒ>ÜFƒ>øSƒ>aƒ>/nƒ>J{ƒ>fˆƒ>�•ƒ>œ¢ƒ>¸¯ƒ>Ó¼ƒ>ïÉƒ>
×ƒ>&äƒ>Añƒ>]þƒ>x„>“„>¯%„>Ê2„>æ?„>M„>Z„>8g„>Tt„>o�„>ŠŽ„>¦›„>Á¨„>Ýµ„>øÂ„>Ð„>/Ý„>Kê„>f÷„>�…>�…>¸…>Ô+…>ï8…>F…>&S…>B`…>]m…>xz…>”‡…>¯”…>Ë¡…>æ®…>¼…>É…>9Ö…>Tã…>oð…>‹ý…>¦
†>Â†>Ý$†>ù1†>?†>0L†>KY†>ff†>‚s†>�€†>¹�†>Ôš†>ð§†>µ†>'Â†>BÏ†>]Ü†>yé†>”ö†>°‡>Ë‡>ç‡>+‡>8‡>9E‡>TR‡>p_‡>‹l‡>§y‡>Â†‡>Þ“‡>ù ‡>®‡>0»‡>KÈ‡>gÕ‡>‚â‡>žï‡>¹ü‡>Õ	ˆ>ðˆ>$ˆ>'1ˆ>B>ˆ>^Kˆ>yXˆ>•eˆ>°rˆ>Ìˆ>çŒˆ>šˆ>§ˆ>9´ˆ>UÁˆ>pÎˆ>ŒÛˆ>§èˆ>Ãõˆ>Þ‰>ù‰>‰>0*‰>L7‰>gD‰>ƒQ‰>ž^‰>ºk‰>Õx‰>ð…‰>“‰>' ‰>C­‰>^º‰>zÇ‰>•Ô‰>±á‰>Ìî‰>çû‰>	Š>Š>:#Š>U0Š>q=Š>ŒJŠ>¨WŠ>ÃdŠ>ÞqŠ>ú~Š>ŒŠ>1™Š>L¦Š>h³Š>ƒÀŠ>ŸÍŠ>ºÚŠ>ÕçŠ>ñôŠ>‹>(‹>C‹>_)‹>z6‹>–C‹>±P‹>Ì]‹>èj‹>x‹>…‹>:’‹>VŸ‹>q¬‹>Œ¹‹>¨Æ‹>ÃÓ‹>ßà‹>úí‹>û‹>1Œ>MŒ>h"Œ>ƒ/Œ>Ÿ<Œ>ºIŒ>ÖVŒ>ñcŒ>qŒ>(~Œ>D‹Œ>_˜Œ>z¥Œ>–²Œ>±¿Œ>ÍÌŒ>èÙŒ>çŒ>ôŒ>;�>V�>q�>�(�>¨5�>ÄB�>ßO�>û\�>j�>2w�>M„�>h‘�>„ž�>Ÿ«�>»¸�>ÖÅ�>òÒ�>à�>)í�>Dú�>_Ž>{Ž>–!Ž>².Ž>Í;Ž>éHŽ>VŽ> cŽ>;pŽ>V}Ž>rŠŽ>�—Ž>©¤Ž>Ä±Ž>à¾Ž>ûËŽ>ÙŽ>2æŽ>MóŽ>i �>„�> �>»'�>×4�>òA�>O�>)\�>Di�>`v�>{ƒ�>—��>²��>Îª�>é·�>Å�> Ò�>;ß�>Wì�>rù�>Ž�>©�>Å �>à-�>û:�>H�>2U�>Nb�>io�>…|�> ‰�>¼–�>×£�>ò°�>¾�>)Ë�>EØ�>`å�>|ò�>—ÿ�>³‘>Î‘>é&‘>4‘> A‘><N‘>W[‘>sh‘>Žu‘>ª‚‘>Å�‘>àœ‘>ü©‘>·‘>3Ä‘>NÑ‘>jÞ‘>…ë‘>¡ø‘>¼’>×’>ó’>-’>*:’>EG’>aT’>|a’>˜n’>³{’>Îˆ’>ê•’>£’>!°’><½’>XÊ’>s×’>�ä’>ªñ’>Åþ’>á“>ü“>&“>33“>O@“>jM“>†Z“>¡g“>¼t“>Ø�“>óŽ“>œ“>*©“>F¶“>aÃ“>}Ð“>˜Ý“>³ê“>Ï÷“>ê”>”>!”>=,”>X9”>tF”>�S”>ª`”>Æm”>áz”>ý‡”>•”>4¢”>O¯”>j¼”>†É”>¡Ö”>½ã”>Øð”>ôý”>•>+•>F%•>a2•>}?•>˜L•>´Y•>Ïf•>ës•>�•>"Ž•>=›•>X¨•>tµ•>�Â•>«Ï•>ÆÜ•>âé•>ýö•>–>4–>O–>k+–>†8–>¢E–>½R–>Ù_–>ôl–>z–>+‡–>F”–>b¡–>}®–>™»–>´È–>ÐÕ–>ëâ–>ð–>"ý–>=
—>Y—>t$—>�1—>«>—>ÇK—>âX—>þe—>s—>4€—>P�—>kš—>‡§—>¢´—>¾Á—>ÙÎ—>õÛ—>é—>+ö—>G˜>b˜>~˜>™*˜>µ7˜>ÐD˜>ìQ˜>_˜>"l˜>>y˜>Y†˜>u“˜>� ˜>¬­˜>Çº˜>ãÇ˜>þÔ˜>â˜>5ï˜>Pü˜>l	™>‡™>£#™>¾0™>Ù=™>õJ™>X™>,e™>Gr™>c™>~Œ™>š™™>µ¦™>Ð³™>ìÀ™>Î™>#Û™>>è™>Zõ™>uš>‘š>¬š>Ç)š>ã6š>þCš>Qš>5^š>Qkš>lxš>ˆ…š>£’š>¾Ÿš>Ú¬š>õ¹š>Çš>,Ôš>Háš>cîš>ûš>š›>µ›>Ñ"›>ì/›>=›>#J›>?W›>Zd›>vq›>‘~›>¬‹›>È˜›>ã¥›>ÿ²›>À›>6Í›>QÚ›>mç›>ˆô›>£œ>¿œ>Úœ>ö(œ>6œ>-Cœ>HPœ>d]œ>jœ>šwœ>¶„œ>Ñ‘œ>ížœ>¬œ>$¹œ>?Æœ>[Óœ>vàœ>‘íœ>­úœ>È�>ä�>ÿ!�>/�>6<�>RI�>mV�>ˆc�>¤p�>¿}�>ÛŠ�>ö—�>¥�>-²�>H¿�>dÌ�>Ù�>›æ�>¶ó�>Ò ž>íž>	ž>$(ž>?5ž>[Bž>vOž>’\ž>­iž>Évž>äƒž> ‘ž>žž>6«ž>R¸ž>mÅž>‰Òž>¤ßž>Àìž>Ûùž>÷Ÿ>Ÿ>-!Ÿ>I.Ÿ>d;Ÿ>€HŸ>›UŸ>·bŸ>ÒoŸ>î|Ÿ>	ŠŸ>$—Ÿ>@¤Ÿ>[±Ÿ>w¾Ÿ>’ËŸ>®ØŸ>ÉåŸ>åòŸ>   > >7 >R' >n4 >‰A >¥N >À[ >Üh >÷u >ƒ >.� >I� >eª >€· >œÄ >·Ñ >ÓÞ >îë >	ù >%¡>@¡>\ ¡>w-¡>“:¡>®G¡>ÊT¡>åa¡> o¡>|¡>7‰¡>S–¡>n£¡>Š°¡>¥½¡>ÁÊ¡>Ü×¡>÷ä¡>ò¡>.ÿ¡>J¢>e¢>�&¢>œ3¢>¸@¢>ÓM¢>îZ¢>
h¢>%u¢>A‚¢>\�¢>xœ¢>“©¢>®¶¢>ÊÃ¢>åÐ¢>Þ¢>ë¢>8ø¢>S£>o£>Š£>¥,£>Á9£>ÜF£>øS£>a£>/n£>J{£>fˆ£>�•£>œ¢£>¸¯£>Ó¼£>ïÉ£>
×£>&ä£>Añ£>]þ£>x¤>“¤>¯%¤>Ê2¤>æ?¤>M¤>Z¤>8g¤>Tt¤>o�¤>ŠŽ¤>¦›¤>Á¨¤>Ýµ¤>øÂ¤>Ð¤>/Ý¤>Kê¤>f÷¤>�¥>�¥>¸¥>Ô+¥>ï8¥>F¥>&S¥>B`¥>]m¥>xz¥>”‡¥>¯”¥>Ë¡¥>æ®¥>¼¥>É¥>9Ö¥>Tã¥>oð¥>‹ý¥>¦
¦>Â¦>Ý$¦>ù1¦>?¦>0L¦>KY¦>ff¦>‚s¦>�€¦>¹�¦>Ôš¦>ð§¦>µ¦>'Â¦>BÏ¦>]Ü¦>yé¦>”ö¦>°§>Ë§>ç§>+§>8§>9E§>TR§>p_§>‹l§>§y§>Â†§>Þ“§>ù §>®§>0»§>KÈ§>gÕ§>‚â§>žï§>¹ü§>Õ	¨>ð¨>$¨>'1¨>B>¨>^K¨>yX¨>•e¨>°r¨>Ì¨>çŒ¨>š¨>§¨>9´¨>UÁ¨>pÎ¨>ŒÛ¨>§è¨>Ãõ¨>Þ©>ù©>©>0*©>L7©>gD©>ƒQ©>ž^©>ºk©>Õx©>ð…©>“©>' ©>C­©>^º©>zÇ©>•Ô©>±á©>Ìî©>çû©>	ª>ª>:#ª>U0ª>q=ª>ŒJª>¨Wª>Ãdª>Þqª>ú~ª>Œª>1™ª>L¦ª>h³ª>ƒÀª>ŸÍª>ºÚª>Õçª>ñôª>«>(«>C«>_)«>z6«>–C«>±P«>Ì]«>èj«>x«>…«>:’«>VŸ«>q¬«>Œ¹«>¨Æ«>ÃÓ«>ßà«>úí«>û«>1¬>M¬>h"¬>ƒ/¬>Ÿ<¬>ºI¬>ÖV¬>ñc¬>q¬>(~¬>D‹¬>_˜¬>z¥¬>–²¬>±¿¬>ÍÌ¬>èÙ¬>ç¬>ô¬>;­>V­>q­>�(­>¨5­>ÄB­>ßO­>û\­>j­>2w­>M„­>h‘­>„ž­>Ÿ«­>»¸­>ÖÅ­>òÒ­>à­>)í­>Dú­>_®>{®>–!®>².®>Í;®>éH®>V®> c®>;p®>V}®>rŠ®>�—®>©¤®>Ä±®>à¾®>ûË®>Ù®>2æ®>Mó®>i ¯>„¯> ¯>»'¯>×4¯>òA¯>O¯>)\¯>Di¯>`v¯>{ƒ¯>—�¯>²�¯>Îª¯>é·¯>Å¯> Ò¯>;ß¯>Wì¯>rù¯>Ž°>©°>Å °>à-°>û:°>H°>2U°>Nb°>io°>…|°> ‰°>¼–°>×£°>ò°°>¾°>)Ë°>EØ°>`å°>|ò°>—ÿ°>³±>Î±>é&±>4±> A±><N±>W[±>sh±>Žu±>ª‚±>Å�±>àœ±>ü©±>·±>3Ä±>NÑ±>jÞ±>…ë±>¡ø±>¼²>×²>ó²>-²>*:²>EG²>aT²>|a²>˜n²>³{²>Îˆ²>ê•²>£²>!°²><½²>XÊ²>s×²>�ä²>ªñ²>Åþ²>á³>ü³>&³>33³>O@³>jM³>†Z³>¡g³>¼t³>Ø�³>óŽ³>œ³>*©³>F¶³>aÃ³>}Ð³>˜Ý³>³ê³>Ï÷³>ê´>´>!´>=,´>X9´>tF´>�S´>ª`´>Æm´>áz´>ý‡´>•´>4¢´>O¯´>j¼´>†É´>¡Ö´>½ã´>Øð´>ôý´>µ>+µ>F%µ>a2µ>}?µ>˜Lµ>´Yµ>Ïfµ>ësµ>�µ>"Žµ>=›µ>X¨µ>tµµ>�Âµ>«Ïµ>ÆÜµ>âéµ>ýöµ>¶>4¶>O¶>k+¶>†8¶>¢E¶>½R¶>Ù_¶>ôl¶>z¶>+‡¶>F”¶>b¡¶>}®¶>™»¶>´È¶>ÐÕ¶>ëâ¶>ð¶>"ý¶>=
·>Y·>t$·>�1·>«>·>ÇK·>âX·>þe·>s·>4€·>P�·>kš·>‡§·>¢´·>¾Á·>ÙÎ·>õÛ·>é·>+ö·>G¸>b¸>~¸>™*¸>µ7¸>ÐD¸>ìQ¸>_¸>"l¸>>y¸>Y†¸>u“¸>� ¸>¬­¸>Çº¸>ãÇ¸>þÔ¸>â¸>5ï¸>Pü¸>l	¹>‡¹>£#¹>¾0¹>Ù=¹>õJ¹>X¹>,e¹>Gr¹>c¹>~Œ¹>š™¹>µ¦¹>Ð³¹>ìÀ¹>Î¹>#Û¹>>è¹>Zõ¹>uº>‘º>¬º>Ç)º>ã6º>þCº>Qº>5^º>Qkº>lxº>ˆ…º>£’º>¾Ÿº>Ú¬º>õ¹º>Çº>,Ôº>Háº>cîº>ûº>š»>µ»>Ñ"»>ì/»>=»>#J»>?W»>Zd»>vq»>‘~»>¬‹»>È˜»>ã¥»>ÿ²»>À»>6Í»>QÚ»>mç»>ˆô»>£¼>¿¼>Ú¼>ö(¼>6¼>-C¼>HP¼>d]¼>j¼>šw¼>¶„¼>Ñ‘¼>íž¼>¬¼>$¹¼>?Æ¼>[Ó¼>và¼>‘í¼>­ú¼>È½>ä½>ÿ!½>/½>6<½>RI½>mV½>ˆc½>¤p½>¿}½>ÛŠ½>ö—½>¥½>-²½>H¿½>dÌ½>Ù½>›æ½>¶ó½>Ò ¾>í¾>	¾>$(¾>?5¾>[B¾>vO¾>’\¾>­i¾>Év¾>äƒ¾> ‘¾>ž¾>6«¾>R¸¾>mÅ¾>‰Ò¾>¤ß¾>Àì¾>Ûù¾>÷¿>¿>-!¿>I.¿>d;¿>€H¿>›U¿>·b¿>Òo¿>î|¿>	Š¿>$—¿>@¤¿>[±¿>w¾¿>’Ë¿>®Ø¿>Éå¿>åò¿>  À>À>7À>R'À>n4À>‰AÀ>¥NÀ>À[À>ÜhÀ>÷uÀ>ƒÀ>.�À>I�À>eªÀ>€·À>œÄÀ>·ÑÀ>ÓÞÀ>îëÀ>	ùÀ>%Á>@Á>\ Á>w-Á>“:Á>®GÁ>ÊTÁ>åaÁ> oÁ>|Á>7‰Á>S–Á>n£Á>Š°Á>¥½Á>ÁÊÁ>Ü×Á>÷äÁ>òÁ>.ÿÁ>JÂ>eÂ>�&Â>œ3Â>¸@Â>ÓMÂ>îZÂ>
hÂ>%uÂ>A‚Â>\�Â>xœÂ>“©Â>®¶Â>ÊÃÂ>åÐÂ>ÞÂ>ëÂ>8øÂ>SÃ>oÃ>ŠÃ>¥,Ã>Á9Ã>ÜFÃ>øSÃ>aÃ>/nÃ>J{Ã>fˆÃ>�•Ã>œ¢Ã>¸¯Ã>Ó¼Ã>ïÉÃ>
×Ã>&äÃ>AñÃ>]þÃ>xÄ>“Ä>¯%Ä>Ê2Ä>æ?Ä>MÄ>ZÄ>8gÄ>TtÄ>o�Ä>ŠŽÄ>¦›Ä>Á¨Ä>ÝµÄ>øÂÄ>ÐÄ>/ÝÄ>KêÄ>f÷Ä>�Å>�Å>¸Å>Ô+Å>ï8Å>FÅ>&SÅ>B`Å>]mÅ>xzÅ>”‡Å>¯”Å>Ë¡Å>æ®Å>¼Å>ÉÅ>9ÖÅ>TãÅ>oðÅ>‹ýÅ>¦
Æ>ÂÆ>Ý$Æ>ù1Æ>?Æ>0LÆ>KYÆ>ffÆ>‚sÆ>�€Æ>¹�Æ>ÔšÆ>ð§Æ>µÆ>'ÂÆ>BÏÆ>]ÜÆ>yéÆ>”öÆ>°Ç>ËÇ>çÇ>+Ç>8Ç>9EÇ>TRÇ>p_Ç>‹lÇ>§yÇ>Â†Ç>Þ“Ç>ù Ç>®Ç>0»Ç>KÈÇ>gÕÇ>‚âÇ>žïÇ>¹üÇ>Õ	È>ðÈ>$È>'1È>B>È>^KÈ>yXÈ>•eÈ>°rÈ>ÌÈ>çŒÈ>šÈ>§È>9´È>UÁÈ>pÎÈ>ŒÛÈ>§èÈ>ÃõÈ>ÞÉ>ùÉ>É>0*É>L7É>gDÉ>ƒQÉ>ž^É>ºkÉ>ÕxÉ>ð…É>“É>' É>C­É>^ºÉ>zÇÉ>•ÔÉ>±áÉ>ÌîÉ>çûÉ>	Ê>Ê>:#Ê>U0Ê>q=Ê>ŒJÊ>¨WÊ>ÃdÊ>ÞqÊ>ú~Ê>ŒÊ>1™Ê>L¦Ê>h³Ê>ƒÀÊ>ŸÍÊ>ºÚÊ>ÕçÊ>ñôÊ>Ë>(Ë>CË>_)Ë>z6Ë>–CË>±PË>Ì]Ë>èjË>xË>…Ë>:’Ë>VŸË>q¬Ë>Œ¹Ë>¨ÆË>ÃÓË>ßàË>úíË>ûË>1Ì>MÌ>h"Ì>ƒ/Ì>Ÿ<Ì>ºIÌ>ÖVÌ>ñcÌ>qÌ>(~Ì>D‹Ì>_˜Ì>z¥Ì>–²Ì>±¿Ì>ÍÌÌ>èÙÌ>çÌ>ôÌ>;Í>VÍ>qÍ>�(Í>¨5Í>ÄBÍ>ßOÍ>û\Í>jÍ>2wÍ>M„Í>h‘Í>„žÍ>Ÿ«Í>»¸Í>ÖÅÍ>òÒÍ>àÍ>)íÍ>DúÍ>_Î>{Î>–!Î>².Î>Í;Î>éHÎ>VÎ> cÎ>;pÎ>V}Î>rŠÎ>�—Î>©¤Î>Ä±Î>à¾Î>ûËÎ>ÙÎ>2æÎ>MóÎ>i Ï>„Ï> Ï>»'Ï>×4Ï>òAÏ>OÏ>)\Ï>DiÏ>`vÏ>{ƒÏ>—�Ï>²�Ï>ÎªÏ>é·Ï>ÅÏ> ÒÏ>;ßÏ>WìÏ>rùÏ>ŽÐ>©Ð>Å Ð>à-Ð>û:Ð>HÐ>2UÐ>NbÐ>ioÐ>…|Ð> ‰Ð>¼–Ð>×£Ð>ò°Ð>¾Ð>)ËÐ>EØÐ>`åÐ>|òÐ>—ÿÐ>³Ñ>ÎÑ>é&Ñ>4Ñ> AÑ><NÑ>W[Ñ>shÑ>ŽuÑ>ª‚Ñ>Å�Ñ>àœÑ>ü©Ñ>·Ñ>3ÄÑ>NÑÑ>jÞÑ>…ëÑ>¡øÑ>¼Ò>×Ò>óÒ>-Ò>*:Ò>EGÒ>aTÒ>|aÒ>˜nÒ>³{Ò>ÎˆÒ>ê•Ò>£Ò>!°Ò><½Ò>XÊÒ>s×Ò>�äÒ>ªñÒ>ÅþÒ>áÓ>üÓ>&Ó>33Ó>O@Ó>jMÓ>†ZÓ>¡gÓ>¼tÓ>Ø�Ó>óŽÓ>œÓ>*©Ó>F¶Ó>aÃÓ>}ÐÓ>˜ÝÓ>³êÓ>Ï÷Ó>êÔ>Ô>!Ô>=,Ô>X9Ô>tFÔ>�SÔ>ª`Ô>ÆmÔ>ázÔ>ý‡Ô>•Ô>4¢Ô>O¯Ô>j¼Ô>†ÉÔ>¡ÖÔ>½ãÔ>ØðÔ>ôýÔ>Õ>+Õ>F%Õ>a2Õ>}?Õ>˜LÕ>´YÕ>ÏfÕ>ësÕ>�Õ>"ŽÕ>=›Õ>X¨Õ>tµÕ>�ÂÕ>«ÏÕ>ÆÜÕ>âéÕ>ýöÕ>Ö>4Ö>OÖ>k+Ö>†8Ö>¢EÖ>½RÖ>Ù_Ö>ôlÖ>zÖ>+‡Ö>F”Ö>b¡Ö>}®Ö>™»Ö>´ÈÖ>ÐÕÖ>ëâÖ>ðÖ>"ýÖ>=
×>Y×>t$×>�1×>«>×>ÇK×>âX×>þe×>s×>4€×>P�×>kš×>‡§×>¢´×>¾Á×>ÙÎ×>õÛ×>é×>+ö×>GØ>bØ>~Ø>™*Ø>µ7Ø>ÐDØ>ìQØ>_Ø>"lØ>>yØ>Y†Ø>u“Ø>� Ø>¬­Ø>ÇºØ>ãÇØ>þÔØ>âØ>5ïØ>PüØ>l	Ù>‡Ù>£#Ù>¾0Ù>Ù=Ù>õJÙ>XÙ>,eÙ>GrÙ>cÙ>~ŒÙ>š™Ù>µ¦Ù>Ð³Ù>ìÀÙ>ÎÙ>#ÛÙ>>èÙ>ZõÙ>uÚ>‘Ú>¬Ú>Ç)Ú>ã6Ú>þCÚ>QÚ>5^Ú>QkÚ>lxÚ>ˆ…Ú>£’Ú>¾ŸÚ>Ú¬Ú>õ¹Ú>ÇÚ>,ÔÚ>HáÚ>cîÚ>ûÚ>šÛ>µÛ>Ñ"Û>ì/Û>=Û>#JÛ>?WÛ>ZdÛ>vqÛ>‘~Û>¬‹Û>È˜Û>ã¥Û>ÿ²Û>ÀÛ>6ÍÛ>QÚÛ>mçÛ>ˆôÛ>£Ü>¿Ü>ÚÜ>ö(Ü>6Ü>-CÜ>HPÜ>d]Ü>jÜ>šwÜ>¶„Ü>Ñ‘Ü>ížÜ>¬Ü>$¹Ü>?ÆÜ>[ÓÜ>vàÜ>‘íÜ>­úÜ>ÈÝ>äÝ>ÿ!Ý>/Ý>6<Ý>RIÝ>mVÝ>ˆcÝ>¤pÝ>¿}Ý>ÛŠÝ>ö—Ý>¥Ý>-²Ý>H¿Ý>dÌÝ>ÙÝ>›æÝ>¶óÝ>Ò Þ>íÞ>	Þ>$(Þ>?5Þ>[BÞ>vOÞ>’\Þ>­iÞ>ÉvÞ>äƒÞ> ‘Þ>žÞ>6«Þ>R¸Þ>mÅÞ>‰ÒÞ>¤ßÞ>ÀìÞ>ÛùÞ>÷ß>ß>-!ß>I.ß>d;ß>€Hß>›Uß>·bß>Òoß>î|ß>	Šß>$—ß>@¤ß>[±ß>w¾ß>’Ëß>®Øß>Éåß>åòß>  à>à>7à>R'à>n4à>‰Aà>¥Nà>À[à>Ühà>÷uà>ƒà>.�à>I�à>eªà>€·à>œÄà>·Ñà>ÓÞà>îëà>	ùà>%á>@á>\ á>w-á>“:á>®Gá>ÊTá>åaá> oá>|á>7‰á>S–á>n£á>Š°á>¥½á>ÁÊá>Ü×á>÷äá>òá>.ÿá>Jâ>eâ>�&â>œ3â>¸@â>ÓMâ>îZâ>
hâ>%uâ>A‚â>\�â>xœâ>“©â>®¶â>ÊÃâ>åÐâ>Þâ>ëâ>8øâ>Sã>oã>Šã>¥,ã>Á9ã>ÜFã>øSã>aã>/nã>J{ã>fˆã>�•ã>œ¢ã>¸¯ã>Ó¼ã>ïÉã>
×ã>&äã>Añã>]þã>xä>“ä>¯%ä>Ê2ä>æ?ä>Mä>Zä>8gä>Ttä>o�ä>ŠŽä>¦›ä>Á¨ä>Ýµä>øÂä>Ðä>/Ýä>Kêä>f÷ä>�å>�å>¸å>Ô+å>ï8å>Få>&Så>B`å>]må>xzå>”‡å>¯”å>Ë¡å>æ®å>¼å>Éå>9Öå>Tãå>oðå>‹ýå>¦
æ>Âæ>Ý$æ>ù1æ>?æ>0Læ>KYæ>ffæ>‚sæ>�€æ>¹�æ>Ôšæ>ð§æ>µæ>'Âæ>BÏæ>]Üæ>yéæ>”öæ>°ç>Ëç>çç>+ç>8ç>9Eç>TRç>p_ç>‹lç>§yç>Â†ç>Þ“ç>ù ç>®ç>0»ç>KÈç>gÕç>‚âç>žïç>¹üç>Õ	è>ðè>$è>'1è>B>è>^Kè>yXè>•eè>°rè>Ìè>çŒè>šè>§è>9´è>UÁè>pÎè>ŒÛè>§èè>Ãõè>Þé>ùé>é>0*é>L7é>gDé>ƒQé>ž^é>ºké>Õxé>ð…é>“é>' é>C­é>^ºé>zÇé>•Ôé>±áé>Ìîé>çûé>	ê>ê>:#ê>U0ê>q=ê>ŒJê>¨Wê>Ãdê>Þqê>ú~ê>Œê>1™ê>L¦ê>h³ê>ƒÀê>ŸÍê>ºÚê>Õçê>ñôê>ë>(ë>Cë>_)ë>z6ë>–Cë>±Pë>Ì]ë>èjë>xë>…ë>:’ë>VŸë>q¬ë>Œ¹ë>¨Æë>ÃÓë>ßàë>úíë>ûë>1ì>Mì>h"ì>ƒ/ì>Ÿ<ì>ºIì>ÖVì>ñcì>qì>(~ì>D‹ì>_˜ì>z¥ì>–²ì>±¿ì>ÍÌì>èÙì>çì>ôì>;í>Ví>qí>�(í>¨5í>ÄBí>ßOí>û\í>jí>2wí>M„í>h‘í>„ží>Ÿ«í>»¸í>ÖÅí>òÒí>àí>)íí>Dúí>_î>{î>–!î>².î>Í;î>éHî>Vî> cî>;pî>V}î>rŠî>�—î>©¤î>Ä±î>à¾î>ûËî>Ùî>2æî>Móî>i ï>„ï> ï>»'ï>×4ï>òAï>Oï>)\ï>Diï>`vï>{ƒï>—�ï>²�ï>Îªï>é·ï>Åï> Òï>;ßï>Wìï>rùï>Žð>©ð>Å ð>à-ð>û:ð>Hð>2Uð>Nbð>ioð>…|ð> ‰ð>¼–ð>×£ð>ò°ð>¾ð>)Ëð>EØð>`åð>|òð>—ÿð>³ñ>Îñ>é&ñ>4ñ> Añ><Nñ>W[ñ>shñ>Žuñ>ª‚ñ>Å�ñ>àœñ>ü©ñ>·ñ>3Äñ>NÑñ>jÞñ>…ëñ>¡øñ>¼ò>×ò>óò>-ò>*:ò>EGò>aTò>|aò>˜nò>³{ò>Îˆò>ê•ò>£ò>!°ò><½ò>XÊò>s×ò>�äò>ªñò>Åþò>áó>üó>&ó>33ó>O@ó>jMó>†Zó>¡gó>¼tó>Ø�ó>óŽó>œó>*©ó>F¶ó>aÃó>}Ðó>˜Ýó>³êó>Ï÷ó>êô>ô>!ô>=,ô>X9ô>tFô>�Sô>ª`ô>Æmô>ázô>ý‡ô>•ô>4¢ô>O¯ô>j¼ô>†Éô>¡Öô>½ãô>Øðô>ôýô>õ>+õ>F%õ>a2õ>}?õ>˜Lõ>´Yõ>Ïfõ>ësõ>�õ>"Žõ>=›õ>X¨õ>tµõ>�Âõ>«Ïõ>ÆÜõ>âéõ>ýöõ>ö>4ö>Oö>k+ö>†8ö>¢Eö>½Rö>Ù_ö>ôlö>zö>+‡ö>F”ö>b¡ö>}®ö>™»ö>´Èö>ÐÕö>ëâö>ðö>"ýö>=
÷>Y÷>t$÷>�1÷>«>÷>ÇK÷>âX÷>þe÷>s÷>4€÷>P�÷>kš÷>‡§÷>¢´÷>¾Á÷>ÙÎ÷>õÛ÷>é÷>+ö÷>Gø>bø>~ø>™*ø>µ7ø>ÐDø>ìQø>_ø>"lø>>yø>Y†ø>u“ø>� ø>¬­ø>Çºø>ãÇø>þÔø>âø>5ïø>Püø>l	ù>‡ù>£#ù>¾0ù>Ù=ù>õJù>Xù>,eù>Grù>cù>~Œù>š™ù>µ¦ù>Ð³ù>ìÀù>Îù>#Ûù>>èù>Zõù>uú>‘ú>¬ú>Ç)ú>ã6ú>þCú>Qú>5^ú>Qkú>lxú>ˆ…ú>£’ú>¾Ÿú>Ú¬ú>õ¹ú>Çú>,Ôú>Háú>cîú>ûú>šû>µû>Ñ"û>ì/û>=û>#Jû>?Wû>Zdû>vqû>‘~û>¬‹û>È˜û>ã¥û>ÿ²û>Àû>6Íû>QÚû>mçû>ˆôû>£ü>¿ü>Úü>ö(ü>6ü>-Cü>HPü>d]ü>jü>šwü>¶„ü>Ñ‘ü>ížü>¬ü>$¹ü>?Æü>[Óü>vàü>‘íü>­úü>Èý>äý>ÿ!ý>/ý>6<ý>RIý>mVý>ˆcý>¤pý>¿}ý>ÛŠý>ö—ý>¥ý>-²ý>H¿ý>dÌý>Ùý>›æý>¶óý>Ò þ>íþ>	þ>$(þ>?5þ>[Bþ>vOþ>’\þ>­iþ>Évþ>äƒþ> ‘þ>žþ>6«þ>R¸þ>mÅþ>‰Òþ>¤ßþ>Àìþ>Ûùþ>÷ÿ>ÿ>-!ÿ>I.ÿ>d;ÿ>€Hÿ>›Uÿ>·bÿ>Òoÿ>î|ÿ>	Šÿ>$—ÿ>@¤ÿ>[±ÿ>w¾ÿ>’Ëÿ>®Øÿ>Éåÿ>åòÿ>   ?Ž ? ?© ?7 ?Å  ?R' ?à- ?n4 ?û: ?‰A ?H ?¥N ?2U ?À[ ?Nb ?Üh ?io ?÷u ?…| ?ƒ ? ‰ ?.� ?¼– ?I� ?×£ ?eª ?ò° ?€· ?¾ ?œÄ ?)Ë ?·Ñ ?EØ ?ÓÞ ?`å ?îë ?|ò ?	ù ?—ÿ ?%?³?@?Î?\ ?é&?w-?4?“:? A?®G?<N?ÊT?W[?åa?sh? o?Žu?|?ª‚?7‰?Å�?S–?àœ?n£?ü©?Š°?·?¥½?3Ä?ÁÊ?NÑ?Ü×?jÞ?÷ä?…ë?ò?¡ø?.ÿ?¼?J?×?e?ó?�&?-?œ3?*:?¸@?EG?ÓM?aT?îZ?|a?
h?˜n?%u?³{?A‚?Îˆ?\�?ê•?xœ?£?“©?!°?®¶?<½?ÊÃ?XÊ?åÐ?s×?Þ?�ä?ë?ªñ?8ø?Åþ?S?á?o?ü?Š?&?¥,?33?Á9?O@?ÜF?jM?øS?†Z?a?¡g?/n?¼t?J{?Ø�?fˆ?óŽ?�•?œ?œ¢?*©?¸¯?F¶?Ó¼?aÃ?ïÉ?}Ð?
×?˜Ý?&ä?³ê?Añ?Ï÷?]þ?ê?x??“?!?¯%?=,?Ê2?X9?æ??tF?M?�S?Z?ª`?8g?Æm?Tt?áz?o�?ý‡?ŠŽ?•?¦›?4¢?Á¨?O¯?Ýµ?j¼?øÂ?†É?Ð?¡Ö?/Ý?½ã?Kê?Øð?f÷?ôý?�??�?+?¸?F%?Ô+?a2?ï8?}??F?˜L?&S?´Y?B`?Ïf?]m?ës?xz?�?”‡?"Ž?¯”?=›?Ë¡?X¨?æ®?tµ?¼?�Â?É?«Ï?9Ö?ÆÜ?Tã?âé?oð?ýö?‹ý??¦
?4?Â?O?Ý$?k+?ù1?†8???¢E?0L?½R?KY?Ù_?ff?ôl?‚s?z?�€?+‡?¹�?F”?Ôš?b¡?ð§?}®?µ?™»?'Â?´È?BÏ?ÐÕ?]Ü?ëâ?yé?ð?”ö?"ý?°?=
?Ë?Y?ç?t$?+?�1?8?«>?9E?ÇK?TR?âX?p_?þe?‹l?s?§y?4€?Â†?P�?Þ“?kš?ù ?‡§?®?¢´?0»?¾Á?KÈ?ÙÎ?gÕ?õÛ?‚â?é?žï?+ö?¹ü?G?Õ	?b?ð?~?$?™*?'1?µ7?B>?ÐD?^K?ìQ?yX?_?•e?"l?°r?>y?Ì?Y†?çŒ?u“?š?� ?§?¬­?9´?Çº?UÁ?ãÇ?pÎ?þÔ?ŒÛ?â?§è?5ï?Ãõ?Pü?Þ	?l		?ù	?‡	?	?£#	?0*	?¾0	?L7	?Ù=	?gD	?õJ	?ƒQ	?X	?ž^	?,e	?ºk	?Gr	?Õx	?c	?ð…	?~Œ	?“	?š™	?' 	?µ¦	?C­	?Ð³	?^º	?ìÀ	?zÇ	?Î	?•Ô	?#Û	?±á	?>è	?Ìî	?Zõ	?çû	?u
?	
?‘
?
?¬
?:#
?Ç)
?U0
?ã6
?q=
?þC
?ŒJ
?Q
?¨W
?5^
?Ãd
?Qk
?Þq
?lx
?ú~
?ˆ…
?Œ
?£’
?1™
?¾Ÿ
?L¦
?Ú¬
?h³
?õ¹
?ƒÀ
?Ç
?ŸÍ
?,Ô
?ºÚ
?Há
?Õç
?cî
?ñô
?û
??š?(?µ?C?Ñ"?_)?ì/?z6?=?–C?#J?±P??W?Ì]?Zd?èj?vq?x?‘~?…?¬‹?:’?È˜?VŸ?ã¥?q¬?ÿ²?Œ¹?À?¨Æ?6Í?ÃÓ?QÚ?ßà?mç?úí?ˆô?û?£?1?¿?M?Ú?h"?ö(?ƒ/?6?Ÿ<?-C?ºI?HP?ÖV?d]?ñc?j?q?šw?(~?¶„?D‹?Ñ‘?_˜?íž?z¥?¬?–²?$¹?±¿??Æ?ÍÌ?[Ó?èÙ?và?ç?‘í?ô?­ú?;?È?V?ä?q?ÿ!?�(?/?¨5?6<?ÄB?RI?ßO?mV?û\?ˆc?j?¤p?2w?¿}?M„?ÛŠ?h‘?ö—?„ž?¥?Ÿ«?-²?»¸?H¿?ÖÅ?dÌ?òÒ?Ù?à?›æ?)í?¶ó?Dú?Ò ?_?í?{?	?–!?$(?².??5?Í;?[B?éH?vO?V?’\? c?­i?;p?Év?V}?äƒ?rŠ? ‘?�—?ž?©¤?6«?Ä±?R¸?à¾?mÅ?ûË?‰Ò?Ù?¤ß?2æ?Àì?Mó?Ûù?i ?÷?„?? ?-!?»'?I.?×4?d;?òA?€H?O?›U?)\?·b?Di?Òo?`v?î|?{ƒ?	Š?—�?$—?²�?@¤?Îª?[±?é·?w¾?Å?’Ë? Ò?®Ø?;ß?Éå?Wì?åò?rù?  ?Ž??©?7?Å ?R'?à-?n4?û:?‰A?H?¥N?2U?À[?Nb?Üh?io?÷u?…|?ƒ? ‰?.�?¼–?I�?×£?eª?ò°?€·?¾?œÄ?)Ë?·Ñ?EØ?ÓÞ?`å?îë?|ò?	ù?—ÿ?%?³?@?Î?\ ?é&?w-?4?“:? A?®G?<N?ÊT?W[?åa?sh? o?Žu?|?ª‚?7‰?Å�?S–?àœ?n£?ü©?Š°?·?¥½?3Ä?ÁÊ?NÑ?Ü×?jÞ?÷ä?…ë?ò?¡ø?.ÿ?¼?J?×?e?ó?�&?-?œ3?*:?¸@?EG?ÓM?aT?îZ?|a?
h?˜n?%u?³{?A‚?Îˆ?\�?ê•?xœ?£?“©?!°?®¶?<½?ÊÃ?XÊ?åÐ?s×?Þ?�ä?ë?ªñ?8ø?Åþ?S?á?o?ü?Š?&?¥,?33?Á9?O@?ÜF?jM?øS?†Z?a?¡g?/n?¼t?J{?Ø�?fˆ?óŽ?�•?œ?œ¢?*©?¸¯?F¶?Ó¼?aÃ?ïÉ?}Ð?
×?˜Ý?&ä?³ê?Añ?Ï÷?]þ?ê?x??“?!?¯%?=,?Ê2?X9?æ??tF?M?�S?Z?ª`?8g?Æm?Tt?áz?o�?ý‡?ŠŽ?•?¦›?4¢?Á¨?O¯?Ýµ?j¼?øÂ?†É?Ð?¡Ö?/Ý?½ã?Kê?Øð?f÷?ôý?�??�?+?¸?F%?Ô+?a2?ï8?}??F?˜L?&S?´Y?B`?Ïf?]m?ës?xz?�?”‡?"Ž?¯”?=›?Ë¡?X¨?æ®?tµ?¼?�Â?É?«Ï?9Ö?ÆÜ?Tã?âé?oð?ýö?‹ý??¦
?4?Â?O?Ý$?k+?ù1?†8???¢E?0L?½R?KY?Ù_?ff?ôl?‚s?z?�€?+‡?¹�?F”?Ôš?b¡?ð§?}®?µ?™»?'Â?´È?BÏ?ÐÕ?]Ü?ëâ?yé?ð?”ö?"ý?°?=
?Ë?Y?ç?t$?+?�1?8?«>?9E?ÇK?TR?âX?p_?þe?‹l?s?§y?4€?Â†?P�?Þ“?kš?ù ?‡§?®?¢´?0»?¾Á?KÈ?ÙÎ?gÕ?õÛ?‚â?é?žï?+ö?¹ü?G?Õ	?b?ð?~?$?™*?'1?µ7?B>?ÐD?^K?ìQ?yX?_?•e?"l?°r?>y?Ì?Y†?çŒ?u“?š?� ?§?¬­?9´?Çº?UÁ?ãÇ?pÎ?þÔ?ŒÛ?â?§è?5ï?Ãõ?Pü?Þ?l	?ù?‡??£#?0*?¾0?L7?Ù=?gD?õJ?ƒQ?X?ž^?,e?ºk?Gr?Õx?c?ð…?~Œ?“?š™?' ?µ¦?C­?Ð³?^º?ìÀ?zÇ?Î?•Ô?#Û?±á?>è?Ìî?Zõ?çû?u?	?‘??¬?:#?Ç)?U0?ã6?q=?þC?ŒJ?Q?¨W?5^?Ãd?Qk?Þq?lx?ú~?ˆ…?Œ?£’?1™?¾Ÿ?L¦?Ú¬?h³?õ¹?ƒÀ?Ç?ŸÍ?,Ô?ºÚ?Há?Õç?cî?ñô?û??š?(?µ?C?Ñ"?_)?ì/?z6?=?–C?#J?±P??W?Ì]?Zd?èj?vq?x?‘~?…?¬‹?:’?È˜?VŸ?ã¥?q¬?ÿ²?Œ¹?À?¨Æ?6Í?ÃÓ?QÚ?ßà?mç?úí?ˆô?û?£?1?¿?M?Ú?h"?ö(?ƒ/?6?Ÿ<?-C?ºI?HP?ÖV?d]?ñc?j?q?šw?(~?¶„?D‹?Ñ‘?_˜?íž?z¥?¬?–²?$¹?±¿??Æ?ÍÌ?[Ó?èÙ?và?ç?‘í?ô?­ú?;?È?V?ä?q?ÿ!?�(?/?¨5?6<?ÄB?RI?ßO?mV?û\?ˆc?j?¤p?2w?¿}?M„?ÛŠ?h‘?ö—?„ž?¥?Ÿ«?-²?»¸?H¿?ÖÅ?dÌ?òÒ?Ù?à?›æ?)í?¶ó?Dú?Ò ?_?í?{?	?–!?$(?².??5?Í;?[B?éH?vO?V?’\? c?­i?;p?Év?V}?äƒ?rŠ? ‘?�—?ž?©¤?6«?Ä±?R¸?à¾?mÅ?ûË?‰Ò?Ù?¤ß?2æ?Àì?Mó?Ûù?i ?÷?„?? ?-!?»'?I.?×4?d;?òA?€H?O?›U?)\?·b?Di?Òo?`v?î|?{ƒ?	Š?—�?$—?²�?@¤?Îª?[±?é·?w¾?Å?’Ë? Ò?®Ø?;ß?Éå?Wì?åò?rù?   ?Ž ? ?© ?7 ?Å  ?R' ?à- ?n4 ?û: ?‰A ?H ?¥N ?2U ?À[ ?Nb ?Üh ?io ?÷u ?…| ?ƒ ? ‰ ?.� ?¼– ?I� ?×£ ?eª ?ò° ?€· ?¾ ?œÄ ?)Ë ?·Ñ ?EØ ?ÓÞ ?`å ?îë ?|ò ?	ù ?—ÿ ?%!?³!?@!?Î!?\ !?é&!?w-!?4!?“:!? A!?®G!?<N!?ÊT!?W[!?åa!?sh!? o!?Žu!?|!?ª‚!?7‰!?Å�!?S–!?àœ!?n£!?ü©!?Š°!?·!?¥½!?3Ä!?ÁÊ!?NÑ!?Ü×!?jÞ!?÷ä!?…ë!?ò!?¡ø!?.ÿ!?¼"?J"?×"?e"?ó"?�&"?-"?œ3"?*:"?¸@"?EG"?ÓM"?aT"?îZ"?|a"?
h"?˜n"?%u"?³{"?A‚"?Îˆ"?\�"?ê•"?xœ"?£"?“©"?!°"?®¶"?<½"?ÊÃ"?XÊ"?åÐ"?s×"?Þ"?�ä"?ë"?ªñ"?8ø"?Åþ"?S#?á#?o#?ü#?Š#?&#?¥,#?33#?Á9#?O@#?ÜF#?jM#?øS#?†Z#?a#?¡g#?/n#?¼t#?J{#?Ø�#?fˆ#?óŽ#?�•#?œ#?œ¢#?*©#?¸¯#?F¶#?Ó¼#?aÃ#?ïÉ#?}Ð#?
×#?˜Ý#?&ä#?³ê#?Añ#?Ï÷#?]þ#?ê$?x$?$?“$?!$?¯%$?=,$?Ê2$?X9$?æ?$?tF$?M$?�S$?Z$?ª`$?8g$?Æm$?Tt$?áz$?o�$?ý‡$?ŠŽ$?•$?¦›$?4¢$?Á¨$?O¯$?Ýµ$?j¼$?øÂ$?†É$?Ð$?¡Ö$?/Ý$?½ã$?Kê$?Øð$?f÷$?ôý$?�%?%?�%?+%?¸%?F%%?Ô+%?a2%?ï8%?}?%?F%?˜L%?&S%?´Y%?B`%?Ïf%?]m%?ës%?xz%?�%?”‡%?"Ž%?¯”%?=›%?Ë¡%?X¨%?æ®%?tµ%?¼%?�Â%?É%?«Ï%?9Ö%?ÆÜ%?Tã%?âé%?oð%?ýö%?‹ý%?&?¦
&?4&?Â&?O&?Ý$&?k+&?ù1&?†8&??&?¢E&?0L&?½R&?KY&?Ù_&?ff&?ôl&?‚s&?z&?�€&?+‡&?¹�&?F”&?Ôš&?b¡&?ð§&?}®&?µ&?™»&?'Â&?´È&?BÏ&?ÐÕ&?]Ü&?ëâ&?yé&?ð&?”ö&?"ý&?°'?=
'?Ë'?Y'?ç'?t$'?+'?�1'?8'?«>'?9E'?ÇK'?TR'?âX'?p_'?þe'?‹l'?s'?§y'?4€'?Â†'?P�'?Þ“'?kš'?ù '?‡§'?®'?¢´'?0»'?¾Á'?KÈ'?ÙÎ'?gÕ'?õÛ'?‚â'?é'?žï'?+ö'?¹ü'?G(?Õ	(?b(?ð(?~(?$(?™*(?'1(?µ7(?B>(?ÐD(?^K(?ìQ(?yX(?_(?•e(?"l(?°r(?>y(?Ì(?Y†(?çŒ(?u“(?š(?� (?§(?¬­(?9´(?Çº(?UÁ(?ãÇ(?pÎ(?þÔ(?ŒÛ(?â(?§è(?5ï(?Ãõ(?Pü(?Þ)?l	)?ù)?‡)?)?£#)?0*)?¾0)?L7)?Ù=)?gD)?õJ)?ƒQ)?X)?ž^)?,e)?ºk)?Gr)?Õx)?c)?ð…)?~Œ)?“)?š™)?' )?µ¦)?C­)?Ð³)?^º)?ìÀ)?zÇ)?Î)?•Ô)?#Û)?±á)?>è)?Ìî)?Zõ)?çû)?u*?	*?‘*?*?¬*?:#*?Ç)*?U0*?ã6*?q=*?þC*?ŒJ*?Q*?¨W*?5^*?Ãd*?Qk*?Þq*?lx*?ú~*?ˆ…*?Œ*?£’*?1™*?¾Ÿ*?L¦*?Ú¬*?h³*?õ¹*?ƒÀ*?Ç*?ŸÍ*?,Ô*?ºÚ*?Há*?Õç*?cî*?ñô*?û*?+?š+?(+?µ+?C+?Ñ"+?_)+?ì/+?z6+?=+?–C+?#J+?±P+??W+?Ì]+?Zd+?èj+?vq+?x+?‘~+?…+?¬‹+?:’+?È˜+?VŸ+?ã¥+?q¬+?ÿ²+?Œ¹+?À+?¨Æ+?6Í+?ÃÓ+?QÚ+?ßà+?mç+?úí+?ˆô+?û+?£,?1,?¿,?M,?Ú,?h",?ö(,?ƒ/,?6,?Ÿ<,?-C,?ºI,?HP,?ÖV,?d],?ñc,?j,?q,?šw,?(~,?¶„,?D‹,?Ñ‘,?_˜,?íž,?z¥,?¬,?–²,?$¹,?±¿,??Æ,?ÍÌ,?[Ó,?èÙ,?và,?ç,?‘í,?ô,?­ú,?;-?È-?V-?ä-?q-?ÿ!-?�(-?/-?¨5-?6<-?ÄB-?RI-?ßO-?mV-?û\-?ˆc-?j-?¤p-?2w-?¿}-?M„-?ÛŠ-?h‘-?ö—-?„ž-?¥-?Ÿ«-?-²-?»¸-?H¿-?ÖÅ-?dÌ-?òÒ-?Ù-?à-?›æ-?)í-?¶ó-?Dú-?Ò .?_.?í.?{.?	.?–!.?$(.?²..??5.?Í;.?[B.?éH.?vO.?V.?’\.? c.?­i.?;p.?Év.?V}.?äƒ.?rŠ.? ‘.?�—.?ž.?©¤.?6«.?Ä±.?R¸.?à¾.?mÅ.?ûË.?‰Ò.?Ù.?¤ß.?2æ.?Àì.?Mó.?Ûù.?i /?÷/?„/?/? /?-!/?»'/?I./?×4/?d;/?òA/?€H/?O/?›U/?)\/?·b/?Di/?Òo/?`v/?î|/?{ƒ/?	Š/?—�/?$—/?²�/?@¤/?Îª/?[±/?é·/?w¾/?Å/?’Ë/? Ò/?®Ø/?;ß/?Éå/?Wì/?åò/?rù/?  0?Ž0?0?©0?70?Å 0?R'0?à-0?n40?û:0?‰A0?H0?¥N0?2U0?À[0?Nb0?Üh0?io0?÷u0?…|0?ƒ0? ‰0?.�0?¼–0?I�0?×£0?eª0?ò°0?€·0?¾0?œÄ0?)Ë0?·Ñ0?EØ0?ÓÞ0?`å0?îë0?|ò0?	ù0?—ÿ0?%1?³1?@1?Î1?\ 1?é&1?w-1?41?“:1? A1?®G1?<N1?ÊT1?W[1?åa1?sh1? o1?Žu1?|1?ª‚1?7‰1?Å�1?S–1?àœ1?n£1?ü©1?Š°1?·1?¥½1?3Ä1?ÁÊ1?NÑ1?Ü×1?jÞ1?÷ä1?…ë1?ò1?¡ø1?.ÿ1?¼2?J2?×2?e2?ó2?�&2?-2?œ32?*:2?¸@2?EG2?ÓM2?aT2?îZ2?|a2?
h2?˜n2?%u2?³{2?A‚2?Îˆ2?\�2?ê•2?xœ2?£2?“©2?!°2?®¶2?<½2?ÊÃ2?XÊ2?åÐ2?s×2?Þ2?�ä2?ë2?ªñ2?8ø2?Åþ2?S3?á3?o3?ü3?Š3?&3?¥,3?333?Á93?O@3?ÜF3?jM3?øS3?†Z3?a3?¡g3?/n3?¼t3?J{3?Ø�3?fˆ3?óŽ3?�•3?œ3?œ¢3?*©3?¸¯3?F¶3?Ó¼3?aÃ3?ïÉ3?}Ð3?
×3?˜Ý3?&ä3?³ê3?Añ3?Ï÷3?]þ3?ê4?x4?4?“4?!4?¯%4?=,4?Ê24?X94?æ?4?tF4?M4?�S4?Z4?ª`4?8g4?Æm4?Tt4?áz4?o�4?ý‡4?ŠŽ4?•4?¦›4?4¢4?Á¨4?O¯4?Ýµ4?j¼4?øÂ4?†É4?Ð4?¡Ö4?/Ý4?½ã4?Kê4?Øð4?f÷4?ôý4?�5?5?�5?+5?¸5?F%5?Ô+5?a25?ï85?}?5?F5?˜L5?&S5?´Y5?B`5?Ïf5?]m5?ës5?xz5?�5?”‡5?"Ž5?¯”5?=›5?Ë¡5?X¨5?æ®5?tµ5?¼5?�Â5?É5?«Ï5?9Ö5?ÆÜ5?Tã5?âé5?oð5?ýö5?‹ý5?6?¦
6?46?Â6?O6?Ý$6?k+6?ù16?†86??6?¢E6?0L6?½R6?KY6?Ù_6?ff6?ôl6?‚s6?z6?�€6?+‡6?¹�6?F”6?Ôš6?b¡6?ð§6?}®6?µ6?™»6?'Â6?´È6?BÏ6?ÐÕ6?]Ü6?ëâ6?yé6?ð6?”ö6?"ý6?°7?=
7?Ë7?Y7?ç7?t$7?+7?�17?87?«>7?9E7?ÇK7?TR7?âX7?p_7?þe7?‹l7?s7?§y7?4€7?Â†7?P�7?Þ“7?kš7?ù 7?‡§7?®7?¢´7?0»7?¾Á7?KÈ7?ÙÎ7?gÕ7?õÛ7?‚â7?é7?žï7?+ö7?¹ü7?G8?Õ	8?b8?ð8?~8?$8?™*8?'18?µ78?B>8?ÐD8?^K8?ìQ8?yX8?_8?•e8?"l8?°r8?>y8?Ì8?Y†8?çŒ8?u“8?š8?� 8?§8?¬­8?9´8?Çº8?UÁ8?ãÇ8?pÎ8?þÔ8?ŒÛ8?â8?§è8?5ï8?Ãõ8?Pü8?Þ9?l	9?ù9?‡9?9?£#9?0*9?¾09?L79?Ù=9?gD9?õJ9?ƒQ9?X9?ž^9?,e9?ºk9?Gr9?Õx9?c9?ð…9?~Œ9?“9?š™9?' 9?µ¦9?C­9?Ð³9?^º9?ìÀ9?zÇ9?Î9?•Ô9?#Û9?±á9?>è9?Ìî9?Zõ9?çû9?u:?	:?‘:?:?¬:?:#:?Ç):?U0:?ã6:?q=:?þC:?ŒJ:?Q:?¨W:?5^:?Ãd:?Qk:?Þq:?lx:?ú~:?ˆ…:?Œ:?£’:?1™:?¾Ÿ:?L¦:?Ú¬:?h³:?õ¹:?ƒÀ:?Ç:?ŸÍ:?,Ô:?ºÚ:?Há:?Õç:?cî:?ñô:?û:?;?š;?(;?µ;?C;?Ñ";?_);?ì/;?z6;?=;?–C;?#J;?±P;??W;?Ì];?Zd;?èj;?vq;?x;?‘~;?…;?¬‹;?:’;?È˜;?VŸ;?ã¥;?q¬;?ÿ²;?Œ¹;?À;?¨Æ;?6Í;?ÃÓ;?QÚ;?ßà;?mç;?úí;?ˆô;?û;?£<?1<?¿<?M<?Ú<?h"<?ö(<?ƒ/<?6<?Ÿ<<?-C<?ºI<?HP<?ÖV<?d]<?ñc<?j<?q<?šw<?(~<?¶„<?D‹<?Ñ‘<?_˜<?íž<?z¥<?¬<?–²<?$¹<?±¿<??Æ<?ÍÌ<?[Ó<?èÙ<?và<?ç<?‘í<?ô<?­ú<?;=?È=?V=?ä=?q=?ÿ!=?�(=?/=?¨5=?6<=?ÄB=?RI=?ßO=?mV=?û\=?ˆc=?j=?¤p=?2w=?¿}=?M„=?ÛŠ=?h‘=?ö—=?„ž=?¥=?Ÿ«=?-²=?»¸=?H¿=?ÖÅ=?dÌ=?òÒ=?Ù=?à=?›æ=?)í=?¶ó=?Dú=?Ò >?_>?í>?{>?	>?–!>?$(>?².>??5>?Í;>?[B>?éH>?vO>?V>?’\>? c>?­i>?;p>?Év>?V}>?äƒ>?rŠ>? ‘>?�—>?ž>?©¤>?6«>?Ä±>?R¸>?à¾>?mÅ>?ûË>?‰Ò>?Ù>?¤ß>?2æ>?Àì>?Mó>?Ûù>?i ??÷??„???? ??-!??»'??I.??×4??d;??òA??€H??O??›U??)\??·b??Di??Òo??`v??î|??{ƒ??	Š??—�??$—??²�??@¤??Îª??[±??é·??w¾??Å??’Ë?? Ò??®Ø??;ß??Éå??Wì??åò??rù??  @?Ž@?@?©@?7@?Å @?R'@?à-@?n4@?û:@?‰A@?H@?¥N@?2U@?À[@?Nb@?Üh@?io@?÷u@?…|@?ƒ@? ‰@?.�@?¼–@?I�@?×£@?eª@?ò°@?€·@?¾@?œÄ@?)Ë@?·Ñ@?EØ@?ÓÞ@?`å@?îë@?|ò@?	ù@?—ÿ@?%A?³A?@A?ÎA?\ A?é&A?w-A?4A?“:A? AA?®GA?<NA?ÊTA?W[A?åaA?shA? oA?ŽuA?|A?ª‚A?7‰A?Å�A?S–A?àœA?n£A?ü©A?Š°A?·A?¥½A?3ÄA?ÁÊA?NÑA?Ü×A?jÞA?÷äA?…ëA?òA?¡øA?.ÿA?¼B?JB?×B?eB?óB?�&B?-B?œ3B?*:B?¸@B?EGB?ÓMB?aTB?îZB?|aB?
hB?˜nB?%uB?³{B?A‚B?ÎˆB?\�B?ê•B?xœB?£B?“©B?!°B?®¶B?<½B?ÊÃB?XÊB?åÐB?s×B?ÞB?�äB?ëB?ªñB?8øB?ÅþB?SC?áC?oC?üC?ŠC?&C?¥,C?33C?Á9C?O@C?ÜFC?jMC?øSC?†ZC?aC?¡gC?/nC?¼tC?J{C?Ø�C?fˆC?óŽC?�•C?œC?œ¢C?*©C?¸¯C?F¶C?Ó¼C?aÃC?ïÉC?}ÐC?
×C?˜ÝC?&äC?³êC?AñC?Ï÷C?]þC?êD?xD?D?“D?!D?¯%D?=,D?Ê2D?X9D?æ?D?tFD?MD?�SD?ZD?ª`D?8gD?ÆmD?TtD?ázD?o�D?ý‡D?ŠŽD?•D?¦›D?4¢D?Á¨D?O¯D?ÝµD?j¼D?øÂD?†ÉD?ÐD?¡ÖD?/ÝD?½ãD?KêD?ØðD?f÷D?ôýD?�E?E?�E?+E?¸E?F%E?Ô+E?a2E?ï8E?}?E?FE?˜LE?&SE?´YE?B`E?ÏfE?]mE?ësE?xzE?�E?”‡E?"ŽE?¯”E?=›E?Ë¡E?X¨E?æ®E?tµE?¼E?�ÂE?ÉE?«ÏE?9ÖE?ÆÜE?TãE?âéE?oðE?ýöE?‹ýE?F?¦
F?4F?ÂF?OF?Ý$F?k+F?ù1F?†8F??F?¢EF?0LF?½RF?KYF?Ù_F?ffF?ôlF?‚sF?zF?�€F?+‡F?¹�F?F”F?ÔšF?b¡F?ð§F?}®F?µF?™»F?'ÂF?´ÈF?BÏF?ÐÕF?]ÜF?ëâF?yéF?ðF?”öF?"ýF?°G?=
G?ËG?YG?çG?t$G?+G?�1G?8G?«>G?9EG?ÇKG?TRG?âXG?p_G?þeG?‹lG?sG?§yG?4€G?Â†G?P�G?Þ“G?kšG?ù G?‡§G?®G?¢´G?0»G?¾ÁG?KÈG?ÙÎG?gÕG?õÛG?‚âG?éG?žïG?+öG?¹üG?GH?Õ	H?bH?ðH?~H?$H?™*H?'1H?µ7H?B>H?ÐDH?^KH?ìQH?yXH?_H?•eH?"lH?°rH?>yH?ÌH?Y†H?çŒH?u“H?šH?� H?§H?¬­H?9´H?ÇºH?UÁH?ãÇH?pÎH?þÔH?ŒÛH?âH?§èH?5ïH?ÃõH?PüH?ÞI?l	I?ùI?‡I?I?£#I?0*I?¾0I?L7I?Ù=I?gDI?õJI?ƒQI?XI?ž^I?,eI?ºkI?GrI?ÕxI?cI?ð…I?~ŒI?“I?š™I?' I?µ¦I?C­I?Ð³I?^ºI?ìÀI?zÇI?ÎI?•ÔI?#ÛI?±áI?>èI?ÌîI?ZõI?çûI?uJ?	J?‘J?J?¬J?:#J?Ç)J?U0J?ã6J?q=J?þCJ?ŒJJ?QJ?¨WJ?5^J?ÃdJ?QkJ?ÞqJ?lxJ?ú~J?ˆ…J?ŒJ?£’J?1™J?¾ŸJ?L¦J?Ú¬J?h³J?õ¹J?ƒÀJ?ÇJ?ŸÍJ?,ÔJ?ºÚJ?HáJ?ÕçJ?cîJ?ñôJ?ûJ?K?šK?(K?µK?CK?Ñ"K?_)K?ì/K?z6K?=K?–CK?#JK?±PK??WK?Ì]K?ZdK?èjK?vqK?xK?‘~K?…K?¬‹K?:’K?È˜K?VŸK?ã¥K?q¬K?ÿ²K?Œ¹K?ÀK?¨ÆK?6ÍK?ÃÓK?QÚK?ßàK?mçK?úíK?ˆôK?ûK?£L?1L?¿L?ML?ÚL?h"L?ö(L?ƒ/L?6L?Ÿ<L?-CL?ºIL?HPL?ÖVL?d]L?ñcL?jL?qL?šwL?(~L?¶„L?D‹L?Ñ‘L?_˜L?ížL?z¥L?¬L?–²L?$¹L?±¿L??ÆL?ÍÌL?[ÓL?èÙL?vàL?çL?‘íL?ôL?­úL?;M?ÈM?VM?äM?qM?ÿ!M?�(M?/M?¨5M?6<M?ÄBM?RIM?ßOM?mVM?û\M?ˆcM?jM?¤pM?2wM?¿}M?M„M?ÛŠM?h‘M?ö—M?„žM?¥M?Ÿ«M?-²M?»¸M?H¿M?ÖÅM?dÌM?òÒM?ÙM?àM?›æM?)íM?¶óM?DúM?Ò N?_N?íN?{N?	N?–!N?$(N?².N??5N?Í;N?[BN?éHN?vON?VN?’\N? cN?­iN?;pN?ÉvN?V}N?äƒN?rŠN? ‘N?�—N?žN?©¤N?6«N?Ä±N?R¸N?à¾N?mÅN?ûËN?‰ÒN?ÙN?¤ßN?2æN?ÀìN?MóN?ÛùN?i O?÷O?„O?O? O?-!O?»'O?I.O?×4O?d;O?òAO?€HO?OO?›UO?)\O?·bO?DiO?ÒoO?`vO?î|O?{ƒO?	ŠO?—�O?$—O?²�O?@¤O?ÎªO?[±O?é·O?w¾O?ÅO?’ËO? ÒO?®ØO?;ßO?ÉåO?WìO?åòO?rùO?  P?ŽP?P?©P?7P?Å P?R'P?à-P?n4P?û:P?‰AP?HP?¥NP?2UP?À[P?NbP?ÜhP?ioP?÷uP?…|P?ƒP? ‰P?.�P?¼–P?I�P?×£P?eªP?ò°P?€·P?¾P?œÄP?)ËP?·ÑP?EØP?ÓÞP?`åP?îëP?|òP?	ùP?—ÿP?%Q?³Q?@Q?ÎQ?\ Q?é&Q?w-Q?4Q?“:Q? AQ?®GQ?<NQ?ÊTQ?W[Q?åaQ?shQ? oQ?ŽuQ?|Q?ª‚Q?7‰Q?Å�Q?S–Q?àœQ?n£Q?ü©Q?Š°Q?·Q?¥½Q?3ÄQ?ÁÊQ?NÑQ?Ü×Q?jÞQ?÷äQ?…ëQ?òQ?¡øQ?.ÿQ?¼R?JR?×R?eR?óR?�&R?-R?œ3R?*:R?¸@R?EGR?ÓMR?aTR?îZR?|aR?
hR?˜nR?%uR?³{R?A‚R?ÎˆR?\�R?ê•R?xœR?£R?“©R?!°R?®¶R?<½R?ÊÃR?XÊR?åÐR?s×R?ÞR?�äR?ëR?ªñR?8øR?ÅþR?SS?áS?oS?üS?ŠS?&S?¥,S?33S?Á9S?O@S?ÜFS?jMS?øSS?†ZS?aS?¡gS?/nS?¼tS?J{S?Ø�S?fˆS?óŽS?�•S?œS?œ¢S?*©S?¸¯S?F¶S?Ó¼S?aÃS?ïÉS?}ÐS?
×S?˜ÝS?&äS?³êS?AñS?Ï÷S?]þS?êT?xT?T?“T?!T?¯%T?=,T?Ê2T?X9T?æ?T?tFT?MT?�ST?ZT?ª`T?8gT?ÆmT?TtT?ázT?o�T?ý‡T?ŠŽT?•T?¦›T?4¢T?Á¨T?O¯T?ÝµT?j¼T?øÂT?†ÉT?ÐT?¡ÖT?/ÝT?½ãT?KêT?ØðT?f÷T?ôýT?�U?U?�U?+U?¸U?F%U?Ô+U?a2U?ï8U?}?U?FU?˜LU?&SU?´YU?B`U?ÏfU?]mU?ësU?xzU?�U?”‡U?"ŽU?¯”U?=›U?Ë¡U?X¨U?æ®U?tµU?¼U?�ÂU?ÉU?«ÏU?9ÖU?ÆÜU?TãU?âéU?oðU?ýöU?‹ýU?V?¦
V?4V?ÂV?OV?Ý$V?k+V?ù1V?†8V??V?¢EV?0LV?½RV?KYV?Ù_V?ffV?ôlV?‚sV?zV?�€V?+‡V?¹�V?F”V?ÔšV?b¡V?ð§V?}®V?µV?™»V?'ÂV?´ÈV?BÏV?ÐÕV?]ÜV?ëâV?yéV?ðV?”öV?"ýV?°W?=
W?ËW?YW?çW?t$W?+W?�1W?8W?«>W?9EW?ÇKW?TRW?âXW?p_W?þeW?‹lW?sW?§yW?4€W?Â†W?P�W?Þ“W?kšW?ù W?‡§W?®W?¢´W?0»W?¾ÁW?KÈW?ÙÎW?gÕW?õÛW?‚âW?éW?žïW?+öW?¹üW?GX?Õ	X?bX?ðX?~X?$X?™*X?'1X?µ7X?B>X?ÐDX?^KX?ìQX?yXX?_X?•eX?"lX?°rX?>yX?ÌX?Y†X?çŒX?u“X?šX?� X?§X?¬­X?9´X?ÇºX?UÁX?ãÇX?pÎX?þÔX?ŒÛX?âX?§èX?5ïX?ÃõX?PüX?ÞY?l	Y?ùY?‡Y?Y?£#Y?0*Y?¾0Y?L7Y?Ù=Y?gDY?õJY?ƒQY?XY?ž^Y?,eY?ºkY?GrY?ÕxY?cY?ð…Y?~ŒY?“Y?š™Y?' Y?µ¦Y?C­Y?Ð³Y?^ºY?ìÀY?zÇY?ÎY?•ÔY?#ÛY?±áY?>èY?ÌîY?ZõY?çûY?uZ?	Z?‘Z?Z?¬Z?:#Z?Ç)Z?U0Z?ã6Z?q=Z?þCZ?ŒJZ?QZ?¨WZ?5^Z?ÃdZ?QkZ?ÞqZ?lxZ?ú~Z?ˆ…Z?ŒZ?£’Z?1™Z?¾ŸZ?L¦Z?Ú¬Z?h³Z?õ¹Z?ƒÀZ?ÇZ?ŸÍZ?,ÔZ?ºÚZ?HáZ?ÕçZ?cîZ?ñôZ?ûZ?[?š[?([?µ[?C[?Ñ"[?_)[?ì/[?z6[?=[?–C[?#J[?±P[??W[?Ì][?Zd[?èj[?vq[?x[?‘~[?…[?¬‹[?:’[?È˜[?VŸ[?ã¥[?q¬[?ÿ²[?Œ¹[?À[?¨Æ[?6Í[?ÃÓ[?QÚ[?ßà[?mç[?úí[?ˆô[?û[?£\?1\?¿\?M\?Ú\?h"\?ö(\?ƒ/\?6\?Ÿ<\?-C\?ºI\?HP\?ÖV\?d]\?ñc\?j\?q\?šw\?(~\?¶„\?D‹\?Ñ‘\?_˜\?íž\?z¥\?¬\?–²\?$¹\?±¿\??Æ\?ÍÌ\?[Ó\?èÙ\?và\?ç\?‘í\?ô\?­ú\?;]?È]?V]?ä]?q]?ÿ!]?�(]?/]?¨5]?6<]?ÄB]?RI]?ßO]?mV]?û\]?ˆc]?j]?¤p]?2w]?¿}]?M„]?ÛŠ]?h‘]?ö—]?„ž]?¥]?Ÿ«]?-²]?»¸]?H¿]?ÖÅ]?dÌ]?òÒ]?Ù]?à]?›æ]?)í]?¶ó]?Dú]?Ò ^?_^?í^?{^?	^?–!^?$(^?².^??5^?Í;^?[B^?éH^?vO^?V^?’\^? c^?­i^?;p^?Év^?V}^?äƒ^?rŠ^? ‘^?�—^?ž^?©¤^?6«^?Ä±^?R¸^?à¾^?mÅ^?ûË^?‰Ò^?Ù^?¤ß^?2æ^?Àì^?Mó^?Ûù^?i _?÷_?„_?_? _?-!_?»'_?I._?×4_?d;_?òA_?€H_?O_?›U_?)\_?·b_?Di_?Òo_?`v_?î|_?{ƒ_?	Š_?—�_?$—_?²�_?@¤_?Îª_?[±_?é·_?w¾_?Å_?’Ë_? Ò_?®Ø_?;ß_?Éå_?Wì_?åò_?rù_?  `?Ž`?`?©`?7`?Å `?R'`?à-`?n4`?û:`?‰A`?H`?¥N`?2U`?À[`?Nb`?Üh`?io`?÷u`?…|`?ƒ`? ‰`?.�`?¼–`?I�`?×£`?eª`?ò°`?€·`?¾`?œÄ`?)Ë`?·Ñ`?EØ`?ÓÞ`?`å`?îë`?|ò`?	ù`?—ÿ`?%a?³a?@a?Îa?\ a?é&a?w-a?4a?“:a? Aa?®Ga?<Na?ÊTa?W[a?åaa?sha? oa?Žua?|a?ª‚a?7‰a?Å�a?S–a?àœa?n£a?ü©a?Š°a?·a?¥½a?3Äa?ÁÊa?NÑa?Ü×a?jÞa?÷äa?…ëa?òa?¡øa?.ÿa?¼b?Jb?×b?eb?ób?�&b?-b?œ3b?*:b?¸@b?EGb?ÓMb?aTb?îZb?|ab?
hb?˜nb?%ub?³{b?A‚b?Îˆb?\�b?ê•b?xœb?£b?“©b?!°b?®¶b?<½b?ÊÃb?XÊb?åÐb?s×b?Þb?�äb?ëb?ªñb?8øb?Åþb?Sc?ác?oc?üc?Šc?&c?¥,c?33c?Á9c?O@c?ÜFc?jMc?øSc?†Zc?ac?¡gc?/nc?¼tc?J{c?Ø�c?fˆc?óŽc?�•c?œc?œ¢c?*©c?¸¯c?F¶c?Ó¼c?aÃc?ïÉc?}Ðc?
×c?˜Ýc?&äc?³êc?Añc?Ï÷c?]þc?êd?xd?d?“d?!d?¯%d?=,d?Ê2d?X9d?æ?d?tFd?Md?�Sd?Zd?ª`d?8gd?Æmd?Ttd?ázd?o�d?ý‡d?ŠŽd?•d?¦›d?4¢d?Á¨d?O¯d?Ýµd?j¼d?øÂd?†Éd?Ðd?¡Öd?/Ýd?½ãd?Kêd?Øðd?f÷d?ôýd?�e?e?�e?+e?¸e?F%e?Ô+e?a2e?ï8e?}?e?Fe?˜Le?&Se?´Ye?B`e?Ïfe?]me?ëse?xze?�e?”‡e?"Že?¯”e?=›e?Ë¡e?X¨e?æ®e?tµe?¼e?�Âe?Ée?«Ïe?9Öe?ÆÜe?Tãe?âée?oðe?ýöe?‹ýe?f?¦
f?4f?Âf?Of?Ý$f?k+f?ù1f?†8f??f?¢Ef?0Lf?½Rf?KYf?Ù_f?fff?ôlf?‚sf?zf?�€f?+‡f?¹�f?F”f?Ôšf?b¡f?ð§f?}®f?µf?™»f?'Âf?´Èf?BÏf?ÐÕf?]Üf?ëâf?yéf?ðf?”öf?"ýf?°g?=
g?Ëg?Yg?çg?t$g?+g?�1g?8g?«>g?9Eg?ÇKg?TRg?âXg?p_g?þeg?‹lg?sg?§yg?4€g?Â†g?P�g?Þ“g?kšg?ù g?‡§g?®g?¢´g?0»g?¾Ág?KÈg?ÙÎg?gÕg?õÛg?‚âg?ég?žïg?+ög?¹üg?Gh?Õ	h?bh?ðh?~h?$h?™*h?'1h?µ7h?B>h?ÐDh?^Kh?ìQh?yXh?_h?•eh?"lh?°rh?>yh?Ìh?Y†h?çŒh?u“h?šh?� h?§h?¬­h?9´h?Çºh?UÁh?ãÇh?pÎh?þÔh?ŒÛh?âh?§èh?5ïh?Ãõh?Püh?Þi?l	i?ùi?‡i?i?£#i?0*i?¾0i?L7i?Ù=i?gDi?õJi?ƒQi?Xi?ž^i?,ei?ºki?Gri?Õxi?ci?ð…i?~Œi?“i?š™i?' i?µ¦i?C­i?Ð³i?^ºi?ìÀi?zÇi?Îi?•Ôi?#Ûi?±ái?>èi?Ìîi?Zõi?çûi?uj?	j?‘j?j?¬j?:#j?Ç)j?U0j?ã6j?q=j?þCj?ŒJj?Qj?¨Wj?5^j?Ãdj?Qkj?Þqj?lxj?ú~j?ˆ…j?Œj?£’j?1™j?¾Ÿj?L¦j?Ú¬j?h³j?õ¹j?ƒÀj?Çj?ŸÍj?,Ôj?ºÚj?Háj?Õçj?cîj?ñôj?ûj?k?šk?(k?µk?Ck?Ñ"k?_)k?ì/k?z6k?=k?–Ck?#Jk?±Pk??Wk?Ì]k?Zdk?èjk?vqk?xk?‘~k?…k?¬‹k?:’k?È˜k?VŸk?ã¥k?q¬k?ÿ²k?Œ¹k?Àk?¨Æk?6Ík?ÃÓk?QÚk?ßàk?mçk?úík?ˆôk?ûk?£l?1l?¿l?Ml?Úl?h"l?ö(l?ƒ/l?6l?Ÿ<l?-Cl?ºIl?HPl?ÖVl?d]l?ñcl?jl?ql?šwl?(~l?¶„l?D‹l?Ñ‘l?_˜l?ížl?z¥l?¬l?–²l?$¹l?±¿l??Æl?ÍÌl?[Ól?èÙl?vàl?çl?‘íl?ôl?­úl?;m?Èm?Vm?äm?qm?ÿ!m?�(m?/m?¨5m?6<m?ÄBm?RIm?ßOm?mVm?û\m?ˆcm?jm?¤pm?2wm?¿}m?M„m?ÛŠm?h‘m?ö—m?„žm?¥m?Ÿ«m?-²m?»¸m?H¿m?ÖÅm?dÌm?òÒm?Ùm?àm?›æm?)ím?¶óm?Dúm?Ò n?_n?ín?{n?	n?–!n?$(n?².n??5n?Í;n?[Bn?éHn?vOn?Vn?’\n? cn?­in?;pn?Évn?V}n?äƒn?rŠn? ‘n?�—n?žn?©¤n?6«n?Ä±n?R¸n?à¾n?mÅn?ûËn?‰Òn?Ùn?¤ßn?2æn?Àìn?Món?Ûùn?i o?÷o?„o?o? o?-!o?»'o?I.o?×4o?d;o?òAo?€Ho?Oo?›Uo?)\o?·bo?Dio?Òoo?`vo?î|o?{ƒo?	Šo?—�o?$—o?²�o?@¤o?Îªo?[±o?é·o?w¾o?Åo?’Ëo? Òo?®Øo?;ßo?Éåo?Wìo?åòo?rùo?  p?Žp?p?©p?7p?Å p?R'p?à-p?n4p?û:p?‰Ap?Hp?¥Np?2Up?À[p?Nbp?Ühp?iop?÷up?…|p?ƒp? ‰p?.�p?¼–p?I�p?×£p?eªp?ò°p?€·p?¾p?œÄp?)Ëp?·Ñp?EØp?ÓÞp?`åp?îëp?|òp?	ùp?—ÿp?%q?³q?@q?Îq?\ q?é&q?w-q?4q?“:q? Aq?®Gq?<Nq?ÊTq?W[q?åaq?shq? oq?Žuq?|q?ª‚q?7‰q?Å�q?S–q?àœq?n£q?ü©q?Š°q?·q?¥½q?3Äq?ÁÊq?NÑq?Ü×q?jÞq?÷äq?…ëq?òq?¡øq?.ÿq?¼r?Jr?×r?er?ór?�&r?-r?œ3r?*:r?¸@r?EGr?ÓMr?aTr?îZr?|ar?
hr?˜nr?%ur?³{r?A‚r?Îˆr?\�r?ê•r?xœr?£r?“©r?!°r?®¶r?<½r?ÊÃr?XÊr?åÐr?s×r?Þr?�är?ër?ªñr?8ør?Åþr?Ss?ás?os?üs?Šs?&s?¥,s?33s?Á9s?O@s?ÜFs?jMs?øSs?†Zs?as?¡gs?/ns?¼ts?J{s?Ø�s?fˆs?óŽs?�•s?œs?œ¢s?*©s?¸¯s?F¶s?Ó¼s?aÃs?ïÉs?}Ðs?
×s?˜Ýs?&äs?³ês?Añs?Ï÷s?]þs?êt?xt?t?“t?!t?¯%t?=,t?Ê2t?X9t?æ?t?tFt?Mt?�St?Zt?ª`t?8gt?Æmt?Ttt?ázt?o�t?ý‡t?ŠŽt?•t?¦›t?4¢t?Á¨t?O¯t?Ýµt?j¼t?øÂt?†Ét?Ðt?¡Öt?/Ýt?½ãt?Kêt?Øðt?f÷t?ôýt?�u?u?�u?+u?¸u?F%u?Ô+u?a2u?ï8u?}?u?Fu?˜Lu?&Su?´Yu?B`u?Ïfu?]mu?ësu?xzu?�u?”‡u?"Žu?¯”u?=›u?Ë¡u?X¨u?æ®u?tµu?¼u?�Âu?Éu?«Ïu?9Öu?ÆÜu?Tãu?âéu?oðu?ýöu?‹ýu?v?¦
v?4v?Âv?Ov?Ý$v?k+v?ù1v?†8v??v?¢Ev?0Lv?½Rv?KYv?Ù_v?ffv?ôlv?‚sv?zv?�€v?+‡v?¹�v?F”v?Ôšv?b¡v?ð§v?}®v?µv?™»v?'Âv?´Èv?BÏv?ÐÕv?]Üv?ëâv?yév?ðv?”öv?"ýv?°w?=
w?Ëw?Yw?çw?t$w?+w?�1w?8w?«>w?9Ew?ÇKw?TRw?âXw?p_w?þew?‹lw?sw?§yw?4€w?Â†w?P�w?Þ“w?kšw?ù w?‡§w?®w?¢´w?0»w?¾Áw?KÈw?ÙÎw?gÕw?õÛw?‚âw?éw?žïw?+öw?¹üw?Gx?Õ	x?bx?ðx?~x?$x?™*x?'1x?µ7x?B>x?ÐDx?^Kx?ìQx?yXx?_x?•ex?"lx?°rx?>yx?Ìx?Y†x?çŒx?u“x?šx?� x?§x?¬­x?9´x?Çºx?UÁx?ãÇx?pÎx?þÔx?ŒÛx?âx?§èx?5ïx?Ãõx?Püx?Þy?l	y?ùy?‡y?y?£#y?0*y?¾0y?L7y?Ù=y?gDy?õJy?ƒQy?Xy?ž^y?,ey?ºky?Gry?Õxy?cy?ð…y?~Œy?“y?š™y?' y?µ¦y?C­y?Ð³y?^ºy?ìÀy?zÇy?Îy?•Ôy?#Ûy?±áy?>èy?Ìîy?Zõy?çûy?uz?	z?‘z?z?¬z?:#z?Ç)z?U0z?ã6z?q=z?þCz?ŒJz?Qz?¨Wz?5^z?Ãdz?Qkz?Þqz?lxz?ú~z?ˆ…z?Œz?£’z?1™z?¾Ÿz?L¦z?Ú¬z?h³z?õ¹z?ƒÀz?Çz?ŸÍz?,Ôz?ºÚz?Ház?Õçz?cîz?ñôz?ûz?{?š{?({?µ{?C{?Ñ"{?_){?ì/{?z6{?={?–C{?#J{?±P{??W{?Ì]{?Zd{?èj{?vq{?x{?‘~{?…{?¬‹{?:’{?È˜{?VŸ{?ã¥{?q¬{?ÿ²{?Œ¹{?À{?¨Æ{?6Í{?ÃÓ{?QÚ{?ßà{?mç{?úí{?ˆô{?û{?£|?1|?¿|?M|?Ú|?h"|?ö(|?ƒ/|?6|?Ÿ<|?-C|?ºI|?HP|?ÖV|?d]|?ñc|?j|?q|?šw|?(~|?¶„|?D‹|?Ñ‘|?_˜|?íž|?z¥|?¬|?–²|?$¹|?±¿|??Æ|?ÍÌ|?[Ó|?èÙ|?và|?ç|?‘í|?ô|?­ú|?;}?È}?V}?ä}?q}?ÿ!}?�(}?/}?¨5}?6<}?ÄB}?RI}?ßO}?mV}?û\}?ˆc}?j}?¤p}?2w}?¿}}?M„}?ÛŠ}?h‘}?ö—}?„ž}?¥}?Ÿ«}?-²}?»¸}?H¿}?ÖÅ}?dÌ}?òÒ}?Ù}?à}?›æ}?)í}?¶ó}?Dú}?Ò ~?_~?í~?{~?	~?–!~?$(~?².~??5~?Í;~?[B~?éH~?vO~?V~?’\~? c~?­i~?;p~?Év~?V}~?äƒ~?rŠ~? ‘~?�—~?ž~?©¤~?6«~?Ä±~?R¸~?à¾~?mÅ~?ûË~?‰Ò~?Ù~?¤ß~?2æ~?Àì~?Mó~?Ûù~?i ?÷?„?? ?-!?»'?I.?×4?d;?òA?€H?O?›U?)\?·b?Di?Òo?`v?î|?{ƒ?	Š?—�?$—?²�?@¤?Îª?[±?é·?w¾?Å?’Ë? Ò?®Ø?;ß?Éå?Wì?åò?rù?  €?G€?Ž€?Õ	€?€?b€?©€?ð€?7€?~€?Å €?$€?R'€?™*€?à-€?'1€?n4€?µ7€?û:€?B>€?‰A€?ÐD€?H€?^K€?¥N€?ìQ€?2U€?yX€?À[€?_€?Nb€?•e€?Üh€?"l€?io€?°r€?÷u€?>y€?…|€?Ì€?ƒ€?Y†€? ‰€?çŒ€?.�€?u“€?¼–€?š€?I�€?� €?×£€?§€?eª€?¬­€?ò°€?9´€?€·€?Çº€?¾€?UÁ€?œÄ€?ãÇ€?)Ë€?pÎ€?·Ñ€?þÔ€?EØ€?ŒÛ€?ÓÞ€?â€?`å€?§è€?îë€?5ï€?|ò€?Ãõ€?	ù€?Pü€?—ÿ€?Þ�?%�?l	�?³�?ù�?@�?‡�?Î�?�?\ �?£#�?é&�?0*�?w-�?¾0�?4�?L7�?“:�?Ù=�? A�?gD�?®G�?õJ�?<N�?ƒQ�?ÊT�?X�?W[�?ž^�?åa�?,e�?sh�?ºk�? o�?Gr�?Žu�?Õx�?|�?c�?ª‚�?ð…�?7‰�?~Œ�?Å��?“�?S–�?š™�?àœ�?' �?n£�?µ¦�?ü©�?C­�?Š°�?Ð³�?·�?^º�?¥½�?ìÀ�?3Ä�?zÇ�?ÁÊ�?Î�?NÑ�?•Ô�?Ü×�?#Û�?jÞ�?±á�?÷ä�?>è�?…ë�?Ìî�?ò�?Zõ�?¡ø�?çû�?.ÿ�?u‚?¼‚?	‚?J‚?‘‚?×‚?‚?e‚?¬‚?ó‚?:#‚?�&‚?Ç)‚?-‚?U0‚?œ3‚?ã6‚?*:‚?q=‚?¸@‚?þC‚?EG‚?ŒJ‚?ÓM‚?Q‚?aT‚?¨W‚?îZ‚?5^‚?|a‚?Ãd‚?
h‚?Qk‚?˜n‚?Þq‚?%u‚?lx‚?³{‚?ú~‚?A‚‚?ˆ…‚?Îˆ‚?Œ‚?\�‚?£’‚?ê•‚?1™‚?xœ‚?¾Ÿ‚?£‚?L¦‚?“©‚?Ú¬‚?!°‚?h³‚?®¶‚?õ¹‚?<½‚?ƒÀ‚?ÊÃ‚?Ç‚?XÊ‚?ŸÍ‚?åÐ‚?,Ô‚?s×‚?ºÚ‚?Þ‚?Há‚?�ä‚?Õç‚?ë‚?cî‚?ªñ‚?ñô‚?8ø‚?û‚?Åþ‚?ƒ?Sƒ?šƒ?áƒ?(ƒ?oƒ?µƒ?üƒ?Cƒ?Šƒ?Ñ"ƒ?&ƒ?_)ƒ?¥,ƒ?ì/ƒ?33ƒ?z6ƒ?Á9ƒ?=ƒ?O@ƒ?–Cƒ?ÜFƒ?#Jƒ?jMƒ?±Pƒ?øSƒ??Wƒ?†Zƒ?Ì]ƒ?aƒ?Zdƒ?¡gƒ?èjƒ?/nƒ?vqƒ?¼tƒ?xƒ?J{ƒ?‘~ƒ?Ø�ƒ?…ƒ?fˆƒ?¬‹ƒ?óŽƒ?:’ƒ?�•ƒ?È˜ƒ?œƒ?VŸƒ?œ¢ƒ?ã¥ƒ?*©ƒ?q¬ƒ?¸¯ƒ?ÿ²ƒ?F¶ƒ?Œ¹ƒ?Ó¼ƒ?Àƒ?aÃƒ?¨Æƒ?ïÉƒ?6Íƒ?}Ðƒ?ÃÓƒ?
×ƒ?QÚƒ?˜Ýƒ?ßàƒ?&äƒ?mçƒ?³êƒ?úíƒ?Añƒ?ˆôƒ?Ï÷ƒ?ûƒ?]þƒ?£„?ê„?1„?x„?¿„?„?M„?“„?Ú„?!„?h"„?¯%„?ö(„?=,„?ƒ/„?Ê2„?6„?X9„?Ÿ<„?æ?„?-C„?tF„?ºI„?M„?HP„?�S„?ÖV„?Z„?d]„?ª`„?ñc„?8g„?j„?Æm„?q„?Tt„?šw„?áz„?(~„?o�„?¶„„?ý‡„?D‹„?ŠŽ„?Ñ‘„?•„?_˜„?¦›„?íž„?4¢„?z¥„?Á¨„?¬„?O¯„?–²„?Ýµ„?$¹„?j¼„?±¿„?øÂ„??Æ„?†É„?ÍÌ„?Ð„?[Ó„?¡Ö„?èÙ„?/Ý„?và„?½ã„?ç„?Kê„?‘í„?Øð„?ô„?f÷„?­ú„?ôý„?;…?�…?È…?…?V…?�…?ä…?+…?q…?¸…?ÿ!…?F%…?�(…?Ô+…?/…?a2…?¨5…?ï8…?6<…?}?…?ÄB…?F…?RI…?˜L…?ßO…?&S…?mV…?´Y…?û\…?B`…?ˆc…?Ïf…?j…?]m…?¤p…?ës…?2w…?xz…?¿}…?�…?M„…?”‡…?ÛŠ…?"Ž…?h‘…?¯”…?ö—…?=›…?„ž…?Ë¡…?¥…?X¨…?Ÿ«…?æ®…?-²…?tµ…?»¸…?¼…?H¿…?�Â…?ÖÅ…?É…?dÌ…?«Ï…?òÒ…?9Ö…?Ù…?ÆÜ…?à…?Tã…?›æ…?âé…?)í…?oð…?¶ó…?ýö…?Dú…?‹ý…?Ò †?†?_†?¦
†?í†?4†?{†?Â†?	†?O†?–!†?Ý$†?$(†?k+†?².†?ù1†??5†?†8†?Í;†??†?[B†?¢E†?éH†?0L†?vO†?½R†?V†?KY†?’\†?Ù_†? c†?ff†?­i†?ôl†?;p†?‚s†?Év†?z†?V}†?�€†?äƒ†?+‡†?rŠ†?¹�†? ‘†?F”†?�—†?Ôš†?ž†?b¡†?©¤†?ð§†?6«†?}®†?Ä±†?µ†?R¸†?™»†?à¾†?'Â†?mÅ†?´È†?ûË†?BÏ†?‰Ò†?ÐÕ†?Ù†?]Ü†?¤ß†?ëâ†?2æ†?yé†?Àì†?ð†?Mó†?”ö†?Ûù†?"ý†?i ‡?°‡?÷‡?=
‡?„‡?Ë‡?‡?Y‡? ‡?ç‡?-!‡?t$‡?»'‡?+‡?I.‡?�1‡?×4‡?8‡?d;‡?«>‡?òA‡?9E‡?€H‡?ÇK‡?O‡?TR‡?›U‡?âX‡?)\‡?p_‡?·b‡?þe‡?Di‡?‹l‡?Òo‡?s‡?`v‡?§y‡?î|‡?4€‡?{ƒ‡?Â†‡?	Š‡?P�‡?—�‡?Þ“‡?$—‡?kš‡?²�‡?ù ‡?@¤‡?‡§‡?Îª‡?®‡?[±‡?¢´‡?é·‡?0»‡?w¾‡?¾Á‡?Å‡?KÈ‡?’Ë‡?ÙÎ‡? Ò‡?gÕ‡?®Ø‡?õÛ‡?;ß‡?‚â‡?Éå‡?é‡?Wì‡?žï‡?åò‡?+ö‡?rù‡?¹ü‡?  ˆ?Gˆ?Žˆ?Õ	ˆ?ˆ?bˆ?©ˆ?ðˆ?7ˆ?~ˆ?Å ˆ?$ˆ?R'ˆ?™*ˆ?à-ˆ?'1ˆ?n4ˆ?µ7ˆ?û:ˆ?B>ˆ?‰Aˆ?ÐDˆ?Hˆ?^Kˆ?¥Nˆ?ìQˆ?2Uˆ?yXˆ?À[ˆ?_ˆ?Nbˆ?•eˆ?Ühˆ?"lˆ?ioˆ?°rˆ?÷uˆ?>yˆ?…|ˆ?Ìˆ?ƒˆ?Y†ˆ? ‰ˆ?çŒˆ?.�ˆ?u“ˆ?¼–ˆ?šˆ?I�ˆ?� ˆ?×£ˆ?§ˆ?eªˆ?¬­ˆ?ò°ˆ?9´ˆ?€·ˆ?Çºˆ?¾ˆ?UÁˆ?œÄˆ?ãÇˆ?)Ëˆ?pÎˆ?·Ñˆ?þÔˆ?EØˆ?ŒÛˆ?ÓÞˆ?âˆ?`åˆ?§èˆ?îëˆ?5ïˆ?|òˆ?Ãõˆ?	ùˆ?Püˆ?—ÿˆ?Þ‰?%‰?l	‰?³‰?ù‰?@‰?‡‰?Î‰?‰?\ ‰?£#‰?é&‰?0*‰?w-‰?¾0‰?4‰?L7‰?“:‰?Ù=‰? A‰?gD‰?®G‰?õJ‰?<N‰?ƒQ‰?ÊT‰?X‰?W[‰?ž^‰?åa‰?,e‰?sh‰?ºk‰? o‰?Gr‰?Žu‰?Õx‰?|‰?c‰?ª‚‰?ð…‰?7‰‰?~Œ‰?Å�‰?“‰?S–‰?š™‰?àœ‰?' ‰?n£‰?µ¦‰?ü©‰?C­‰?Š°‰?Ð³‰?·‰?^º‰?¥½‰?ìÀ‰?3Ä‰?zÇ‰?ÁÊ‰?Î‰?NÑ‰?•Ô‰?Ü×‰?#Û‰?jÞ‰?±á‰?÷ä‰?>è‰?…ë‰?Ìî‰?ò‰?Zõ‰?¡ø‰?çû‰?.ÿ‰?uŠ?¼Š?	Š?JŠ?‘Š?×Š?Š?eŠ?¬Š?óŠ?:#Š?�&Š?Ç)Š?-Š?U0Š?œ3Š?ã6Š?*:Š?q=Š?¸@Š?þCŠ?EGŠ?ŒJŠ?ÓMŠ?QŠ?aTŠ?¨WŠ?îZŠ?5^Š?|aŠ?ÃdŠ?
hŠ?QkŠ?˜nŠ?ÞqŠ?%uŠ?lxŠ?³{Š?ú~Š?A‚Š?ˆ…Š?ÎˆŠ?ŒŠ?\�Š?£’Š?ê•Š?1™Š?xœŠ?¾ŸŠ?£Š?L¦Š?“©Š?Ú¬Š?!°Š?h³Š?®¶Š?õ¹Š?<½Š?ƒÀŠ?ÊÃŠ?ÇŠ?XÊŠ?ŸÍŠ?åÐŠ?,ÔŠ?s×Š?ºÚŠ?ÞŠ?HáŠ?�äŠ?ÕçŠ?ëŠ?cîŠ?ªñŠ?ñôŠ?8øŠ?ûŠ?ÅþŠ?‹?S‹?š‹?á‹?(‹?o‹?µ‹?ü‹?C‹?Š‹?Ñ"‹?&‹?_)‹?¥,‹?ì/‹?33‹?z6‹?Á9‹?=‹?O@‹?–C‹?ÜF‹?#J‹?jM‹?±P‹?øS‹??W‹?†Z‹?Ì]‹?a‹?Zd‹?¡g‹?èj‹?/n‹?vq‹?¼t‹?x‹?J{‹?‘~‹?Ø�‹?…‹?fˆ‹?¬‹‹?óŽ‹?:’‹?�•‹?È˜‹?œ‹?VŸ‹?œ¢‹?ã¥‹?*©‹?q¬‹?¸¯‹?ÿ²‹?F¶‹?Œ¹‹?Ó¼‹?À‹?aÃ‹?¨Æ‹?ïÉ‹?6Í‹?}Ð‹?ÃÓ‹?
×‹?QÚ‹?˜Ý‹?ßà‹?&ä‹?mç‹?³ê‹?úí‹?Añ‹?ˆô‹?Ï÷‹?û‹?]þ‹?£Œ?êŒ?1Œ?xŒ?¿Œ?Œ?MŒ?“Œ?ÚŒ?!Œ?h"Œ?¯%Œ?ö(Œ?=,Œ?ƒ/Œ?Ê2Œ?6Œ?X9Œ?Ÿ<Œ?æ?Œ?-CŒ?tFŒ?ºIŒ?MŒ?HPŒ?�SŒ?ÖVŒ?ZŒ?d]Œ?ª`Œ?ñcŒ?8gŒ?jŒ?ÆmŒ?qŒ?TtŒ?šwŒ?ázŒ?(~Œ?o�Œ?¶„Œ?ý‡Œ?D‹Œ?ŠŽŒ?Ñ‘Œ?•Œ?_˜Œ?¦›Œ?ížŒ?4¢Œ?z¥Œ?Á¨Œ?¬Œ?O¯Œ?–²Œ?ÝµŒ?$¹Œ?j¼Œ?±¿Œ?øÂŒ??ÆŒ?†ÉŒ?ÍÌŒ?ÐŒ?[ÓŒ?¡ÖŒ?èÙŒ?/ÝŒ?vàŒ?½ãŒ?çŒ?KêŒ?‘íŒ?ØðŒ?ôŒ?f÷Œ?­úŒ?ôýŒ?;�?��?È�?�?V�?��?ä�?+�?q�?¸�?ÿ!�?F%�?�(�?Ô+�?/�?a2�?¨5�?ï8�?6<�?}?�?ÄB�?F�?RI�?˜L�?ßO�?&S�?mV�?´Y�?û\�?B`�?ˆc�?Ïf�?j�?]m�?¤p�?ës�?2w�?xz�?¿}�?��?M„�?”‡�?ÛŠ�?"Ž�?h‘�?¯”�?ö—�?=›�?„ž�?Ë¡�?¥�?X¨�?Ÿ«�?æ®�?-²�?tµ�?»¸�?¼�?H¿�?�Â�?ÖÅ�?É�?dÌ�?«Ï�?òÒ�?9Ö�?Ù�?ÆÜ�?à�?Tã�?›æ�?âé�?)í�?oð�?¶ó�?ýö�?Dú�?‹ý�?Ò Ž?Ž?_Ž?¦
Ž?íŽ?4Ž?{Ž?ÂŽ?	Ž?OŽ?–!Ž?Ý$Ž?$(Ž?k+Ž?².Ž?ù1Ž??5Ž?†8Ž?Í;Ž??Ž?[BŽ?¢EŽ?éHŽ?0LŽ?vOŽ?½RŽ?VŽ?KYŽ?’\Ž?Ù_Ž? cŽ?ffŽ?­iŽ?ôlŽ?;pŽ?‚sŽ?ÉvŽ?zŽ?V}Ž?�€Ž?äƒŽ?+‡Ž?rŠŽ?¹�Ž? ‘Ž?F”Ž?�—Ž?ÔšŽ?žŽ?b¡Ž?©¤Ž?ð§Ž?6«Ž?}®Ž?Ä±Ž?µŽ?R¸Ž?™»Ž?à¾Ž?'ÂŽ?mÅŽ?´ÈŽ?ûËŽ?BÏŽ?‰ÒŽ?ÐÕŽ?ÙŽ?]ÜŽ?¤ßŽ?ëâŽ?2æŽ?yéŽ?ÀìŽ?ðŽ?MóŽ?”öŽ?ÛùŽ?"ýŽ?i �?°�?÷�?=
�?„�?Ë�?�?Y�? �?ç�?-!�?t$�?»'�?+�?I.�?�1�?×4�?8�?d;�?«>�?òA�?9E�?€H�?ÇK�?O�?TR�?›U�?âX�?)\�?p_�?·b�?þe�?Di�?‹l�?Òo�?s�?`v�?§y�?î|�?4€�?{ƒ�?Â†�?	Š�?P��?—��?Þ“�?$—�?kš�?²��?ù �?@¤�?‡§�?Îª�?®�?[±�?¢´�?é·�?0»�?w¾�?¾Á�?Å�?KÈ�?’Ë�?ÙÎ�? Ò�?gÕ�?®Ø�?õÛ�?;ß�?‚â�?Éå�?é�?Wì�?žï�?åò�?+ö�?rù�?¹ü�?  �?G�?Ž�?Õ	�?�?b�?©�?ð�?7�?~�?Å �?$�?R'�?™*�?à-�?'1�?n4�?µ7�?û:�?B>�?‰A�?ÐD�?H�?^K�?¥N�?ìQ�?2U�?yX�?À[�?_�?Nb�?•e�?Üh�?"l�?io�?°r�?÷u�?>y�?…|�?Ì�?ƒ�?Y†�? ‰�?çŒ�?.��?u“�?¼–�?š�?I��?� �?×£�?§�?eª�?¬­�?ò°�?9´�?€·�?Çº�?¾�?UÁ�?œÄ�?ãÇ�?)Ë�?pÎ�?·Ñ�?þÔ�?EØ�?ŒÛ�?ÓÞ�?â�?`å�?§è�?îë�?5ï�?|ò�?Ãõ�?	ù�?Pü�?—ÿ�?Þ‘?%‘?l	‘?³‘?ù‘?@‘?‡‘?Î‘?‘?\ ‘?£#‘?é&‘?0*‘?w-‘?¾0‘?4‘?L7‘?“:‘?Ù=‘? A‘?gD‘?®G‘?õJ‘?<N‘?ƒQ‘?ÊT‘?X‘?W[‘?ž^‘?åa‘?,e‘?sh‘?ºk‘? o‘?Gr‘?Žu‘?Õx‘?|‘?c‘?ª‚‘?ð…‘?7‰‘?~Œ‘?Å�‘?“‘?S–‘?š™‘?àœ‘?' ‘?n£‘?µ¦‘?ü©‘?C­‘?Š°‘?Ð³‘?·‘?^º‘?¥½‘?ìÀ‘?3Ä‘?zÇ‘?ÁÊ‘?Î‘?NÑ‘?•Ô‘?Ü×‘?#Û‘?jÞ‘?±á‘?÷ä‘?>è‘?…ë‘?Ìî‘?ò‘?Zõ‘?¡ø‘?çû‘?.ÿ‘?u’?¼’?	’?J’?‘’?×’?’?e’?¬’?ó’?:#’?�&’?Ç)’?-’?U0’?œ3’?ã6’?*:’?q=’?¸@’?þC’?EG’?ŒJ’?ÓM’?Q’?aT’?¨W’?îZ’?5^’?|a’?Ãd’?
h’?Qk’?˜n’?Þq’?%u’?lx’?³{’?ú~’?A‚’?ˆ…’?Îˆ’?Œ’?\�’?£’’?ê•’?1™’?xœ’?¾Ÿ’?£’?L¦’?“©’?Ú¬’?!°’?h³’?®¶’?õ¹’?<½’?ƒÀ’?ÊÃ’?Ç’?XÊ’?ŸÍ’?åÐ’?,Ô’?s×’?ºÚ’?Þ’?Há’?�ä’?Õç’?ë’?cî’?ªñ’?ñô’?8ø’?û’?Åþ’?“?S“?š“?á“?(“?o“?µ“?ü“?C“?Š“?Ñ"“?&“?_)“?¥,“?ì/“?33“?z6“?Á9“?=“?O@“?–C“?ÜF“?#J“?jM“?±P“?øS“??W“?†Z“?Ì]“?a“?Zd“?¡g“?èj“?/n“?vq“?¼t“?x“?J{“?‘~“?Ø�“?…“?fˆ“?¬‹“?óŽ“?:’“?�•“?È˜“?œ“?VŸ“?œ¢“?ã¥“?*©“?q¬“?¸¯“?ÿ²“?F¶“?Œ¹“?Ó¼“?À“?aÃ“?¨Æ“?ïÉ“?6Í“?}Ð“?ÃÓ“?
×“?QÚ“?˜Ý“?ßà“?&ä“?mç“?³ê“?úí“?Añ“?ˆô“?Ï÷“?û“?]þ“?£”?ê”?1”?x”?¿”?”?M”?“”?Ú”?!”?h"”?¯%”?ö(”?=,”?ƒ/”?Ê2”?6”?X9”?Ÿ<”?æ?”?-C”?tF”?ºI”?M”?HP”?�S”?ÖV”?Z”?d]”?ª`”?ñc”?8g”?j”?Æm”?q”?Tt”?šw”?áz”?(~”?o�”?¶„”?ý‡”?D‹”?ŠŽ”?Ñ‘”?•”?_˜”?¦›”?íž”?4¢”?z¥”?Á¨”?¬”?O¯”?–²”?Ýµ”?$¹”?j¼”?±¿”?øÂ”??Æ”?†É”?ÍÌ”?Ð”?[Ó”?¡Ö”?èÙ”?/Ý”?và”?½ã”?ç”?Kê”?‘í”?Øð”?ô”?f÷”?­ú”?ôý”?;•?�•?È•?•?V•?�•?ä•?+•?q•?¸•?ÿ!•?F%•?�(•?Ô+•?/•?a2•?¨5•?ï8•?6<•?}?•?ÄB•?F•?RI•?˜L•?ßO•?&S•?mV•?´Y•?û\•?B`•?ˆc•?Ïf•?j•?]m•?¤p•?ës•?2w•?xz•?¿}•?�•?M„•?”‡•?ÛŠ•?"Ž•?h‘•?¯”•?ö—•?=›•?„ž•?Ë¡•?¥•?X¨•?Ÿ«•?æ®•?-²•?tµ•?»¸•?¼•?H¿•?�Â•?ÖÅ•?É•?dÌ•?«Ï•?òÒ•?9Ö•?Ù•?ÆÜ•?à•?Tã•?›æ•?âé•?)í•?oð•?¶ó•?ýö•?Dú•?‹ý•?Ò –?–?_–?¦
–?í–?4–?{–?Â–?	–?O–?–!–?Ý$–?$(–?k+–?².–?ù1–??5–?†8–?Í;–??–?[B–?¢E–?éH–?0L–?vO–?½R–?V–?KY–?’\–?Ù_–? c–?ff–?­i–?ôl–?;p–?‚s–?Év–?z–?V}–?�€–?äƒ–?+‡–?rŠ–?¹�–? ‘–?F”–?�—–?Ôš–?ž–?b¡–?©¤–?ð§–?6«–?}®–?Ä±–?µ–?R¸–?™»–?à¾–?'Â–?mÅ–?´È–?ûË–?BÏ–?‰Ò–?ÐÕ–?Ù–?]Ü–?¤ß–?ëâ–?2æ–?yé–?Àì–?ð–?Mó–?”ö–?Ûù–?"ý–?i —?°—?÷—?=
—?„—?Ë—?—?Y—? —?ç—?-!—?t$—?»'—?+—?I.—?�1—?×4—?8—?d;—?«>—?òA—?9E—?€H—?ÇK—?O—?TR—?›U—?âX—?)\—?p_—?·b—?þe—?Di—?‹l—?Òo—?s—?`v—?§y—?î|—?4€—?{ƒ—?Â†—?	Š—?P�—?—�—?Þ“—?$——?kš—?²�—?ù —?@¤—?‡§—?Îª—?®—?[±—?¢´—?é·—?0»—?w¾—?¾Á—?Å—?KÈ—?’Ë—?ÙÎ—? Ò—?gÕ—?®Ø—?õÛ—?;ß—?‚â—?Éå—?é—?Wì—?žï—?åò—?+ö—?rù—?¹ü—?  ˜?G˜?Ž˜?Õ	˜?˜?b˜?©˜?ð˜?7˜?~˜?Å ˜?$˜?R'˜?™*˜?à-˜?'1˜?n4˜?µ7˜?û:˜?B>˜?‰A˜?ÐD˜?H˜?^K˜?¥N˜?ìQ˜?2U˜?yX˜?À[˜?_˜?Nb˜?•e˜?Üh˜?"l˜?io˜?°r˜?÷u˜?>y˜?…|˜?Ì˜?ƒ˜?Y†˜? ‰˜?çŒ˜?.�˜?u“˜?¼–˜?š˜?I�˜?� ˜?×£˜?§˜?eª˜?¬­˜?ò°˜?9´˜?€·˜?Çº˜?¾˜?UÁ˜?œÄ˜?ãÇ˜?)Ë˜?pÎ˜?·Ñ˜?þÔ˜?EØ˜?ŒÛ˜?ÓÞ˜?â˜?`å˜?§è˜?îë˜?5ï˜?|ò˜?Ãõ˜?	ù˜?Pü˜?—ÿ˜?Þ™?%™?l	™?³™?ù™?@™?‡™?Î™?™?\ ™?£#™?é&™?0*™?w-™?¾0™?4™?L7™?“:™?Ù=™? A™?gD™?®G™?õJ™?<N™?ƒQ™?ÊT™?X™?W[™?ž^™?åa™?,e™?sh™?ºk™? o™?Gr™?Žu™?Õx™?|™?c™?ª‚™?ð…™?7‰™?~Œ™?Å�™?“™?S–™?š™™?àœ™?' ™?n£™?µ¦™?ü©™?C­™?Š°™?Ð³™?·™?^º™?¥½™?ìÀ™?3Ä™?zÇ™?ÁÊ™?Î™?NÑ™?•Ô™?Ü×™?#Û™?jÞ™?±á™?÷ä™?>è™?…ë™?Ìî™?ò™?Zõ™?¡ø™?çû™?.ÿ™?uš?¼š?	š?Jš?‘š?×š?š?eš?¬š?óš?:#š?�&š?Ç)š?-š?U0š?œ3š?ã6š?*:š?q=š?¸@š?þCš?EGš?ŒJš?ÓMš?Qš?aTš?¨Wš?îZš?5^š?|aš?Ãdš?
hš?Qkš?˜nš?Þqš?%uš?lxš?³{š?ú~š?A‚š?ˆ…š?Îˆš?Œš?\�š?£’š?ê•š?1™š?xœš?¾Ÿš?£š?L¦š?“©š?Ú¬š?!°š?h³š?®¶š?õ¹š?<½š?ƒÀš?ÊÃš?Çš?XÊš?ŸÍš?åÐš?,Ôš?s×š?ºÚš?Þš?Háš?�äš?Õçš?ëš?cîš?ªñš?ñôš?8øš?ûš?Åþš?›?S›?š›?á›?(›?o›?µ›?ü›?C›?Š›?Ñ"›?&›?_)›?¥,›?ì/›?33›?z6›?Á9›?=›?O@›?–C›?ÜF›?#J›?jM›?±P›?øS›??W›?†Z›?Ì]›?a›?Zd›?¡g›?èj›?/n›?vq›?¼t›?x›?J{›?‘~›?Ø�›?…›?fˆ›?¬‹›?óŽ›?:’›?�•›?È˜›?œ›?VŸ›?œ¢›?ã¥›?*©›?q¬›?¸¯›?ÿ²›?F¶›?Œ¹›?Ó¼›?À›?aÃ›?¨Æ›?ïÉ›?6Í›?}Ð›?ÃÓ›?
×›?QÚ›?˜Ý›?ßà›?&ä›?mç›?³ê›?úí›?Añ›?ˆô›?Ï÷›?û›?]þ›?£œ?êœ?1œ?xœ?¿œ?œ?Mœ?“œ?Úœ?!œ?h"œ?¯%œ?ö(œ?=,œ?ƒ/œ?Ê2œ?6œ?X9œ?Ÿ<œ?æ?œ?-Cœ?tFœ?ºIœ?Mœ?HPœ?�Sœ?ÖVœ?Zœ?d]œ?ª`œ?ñcœ?8gœ?jœ?Æmœ?qœ?Ttœ?šwœ?ázœ?(~œ?o�œ?¶„œ?ý‡œ?D‹œ?ŠŽœ?Ñ‘œ?•œ?_˜œ?¦›œ?ížœ?4¢œ?z¥œ?Á¨œ?¬œ?O¯œ?–²œ?Ýµœ?$¹œ?j¼œ?±¿œ?øÂœ??Æœ?†Éœ?ÍÌœ?Ðœ?[Óœ?¡Öœ?èÙœ?/Ýœ?vàœ?½ãœ?çœ?Kêœ?‘íœ?Øðœ?ôœ?f÷œ?­úœ?ôýœ?;�?��?È�?�?V�?��?ä�?+�?q�?¸�?ÿ!�?F%�?�(�?Ô+�?/�?a2�?¨5�?ï8�?6<�?}?�?ÄB�?F�?RI�?˜L�?ßO�?&S�?mV�?´Y�?û\�?B`�?ˆc�?Ïf�?j�?]m�?¤p�?ës�?2w�?xz�?¿}�?��?M„�?”‡�?ÛŠ�?"Ž�?h‘�?¯”�?ö—�?=›�?„ž�?Ë¡�?¥�?X¨�?Ÿ«�?æ®�?-²�?tµ�?»¸�?¼�?H¿�?�Â�?ÖÅ�?É�?dÌ�?«Ï�?òÒ�?9Ö�?Ù�?ÆÜ�?à�?Tã�?›æ�?âé�?)í�?oð�?¶ó�?ýö�?Dú�?‹ý�?Ò ž?ž?_ž?¦
ž?íž?4ž?{ž?Âž?	ž?Ož?–!ž?Ý$ž?$(ž?k+ž?².ž?ù1ž??5ž?†8ž?Í;ž??ž?[Bž?¢Ež?éHž?0Lž?vOž?½Rž?Vž?KYž?’\ž?Ù_ž? cž?ffž?­iž?ôlž?;pž?‚sž?Évž?zž?V}ž?�€ž?äƒž?+‡ž?rŠž?¹�ž? ‘ž?F”ž?�—ž?Ôšž?žž?b¡ž?©¤ž?ð§ž?6«ž?}®ž?Ä±ž?µž?R¸ž?™»ž?à¾ž?'Âž?mÅž?´Èž?ûËž?BÏž?‰Òž?ÐÕž?Ùž?]Üž?¤ßž?ëâž?2æž?yéž?Àìž?ðž?Móž?”öž?Ûùž?"ýž?i Ÿ?°Ÿ?÷Ÿ?=
Ÿ?„Ÿ?ËŸ?Ÿ?YŸ? Ÿ?çŸ?-!Ÿ?t$Ÿ?»'Ÿ?+Ÿ?I.Ÿ?�1Ÿ?×4Ÿ?8Ÿ?d;Ÿ?«>Ÿ?òAŸ?9EŸ?€HŸ?ÇKŸ?OŸ?TRŸ?›UŸ?âXŸ?)\Ÿ?p_Ÿ?·bŸ?þeŸ?DiŸ?‹lŸ?ÒoŸ?sŸ?`vŸ?§yŸ?î|Ÿ?4€Ÿ?{ƒŸ?Â†Ÿ?	ŠŸ?P�Ÿ?—�Ÿ?Þ“Ÿ?$—Ÿ?kšŸ?²�Ÿ?ù Ÿ?@¤Ÿ?‡§Ÿ?ÎªŸ?®Ÿ?[±Ÿ?¢´Ÿ?é·Ÿ?0»Ÿ?w¾Ÿ?¾ÁŸ?ÅŸ?KÈŸ?’ËŸ?ÙÎŸ? ÒŸ?gÕŸ?®ØŸ?õÛŸ?;ßŸ?‚âŸ?ÉåŸ?éŸ?WìŸ?žïŸ?åòŸ?+öŸ?rùŸ?¹üŸ?   ?G ?Ž ?Õ	 ? ?b ?© ?ð ?7 ?~ ?Å  ?$ ?R' ?™* ?à- ?'1 ?n4 ?µ7 ?û: ?B> ?‰A ?ÐD ?H ?^K ?¥N ?ìQ ?2U ?yX ?À[ ?_ ?Nb ?•e ?Üh ?"l ?io ?°r ?÷u ?>y ?…| ?Ì ?ƒ ?Y† ? ‰ ?çŒ ?.� ?u“ ?¼– ?š ?I� ?�  ?×£ ?§ ?eª ?¬­ ?ò° ?9´ ?€· ?Çº ?¾ ?UÁ ?œÄ ?ãÇ ?)Ë ?pÎ ?·Ñ ?þÔ ?EØ ?ŒÛ ?ÓÞ ?â ?`å ?§è ?îë ?5ï ?|ò ?Ãõ ?	ù ?Pü ?—ÿ ?Þ¡?%¡?l	¡?³¡?ù¡?@¡?‡¡?Î¡?¡?\ ¡?£#¡?é&¡?0*¡?w-¡?¾0¡?4¡?L7¡?“:¡?Ù=¡? A¡?gD¡?®G¡?õJ¡?<N¡?ƒQ¡?ÊT¡?X¡?W[¡?ž^¡?åa¡?,e¡?sh¡?ºk¡? o¡?Gr¡?Žu¡?Õx¡?|¡?c¡?ª‚¡?ð…¡?7‰¡?~Œ¡?Å�¡?“¡?S–¡?š™¡?àœ¡?' ¡?n£¡?µ¦¡?ü©¡?C­¡?Š°¡?Ð³¡?·¡?^º¡?¥½¡?ìÀ¡?3Ä¡?zÇ¡?ÁÊ¡?Î¡?NÑ¡?•Ô¡?Ü×¡?#Û¡?jÞ¡?±á¡?÷ä¡?>è¡?…ë¡?Ìî¡?ò¡?Zõ¡?¡ø¡?çû¡?.ÿ¡?u¢?¼¢?	¢?J¢?‘¢?×¢?¢?e¢?¬¢?ó¢?:#¢?�&¢?Ç)¢?-¢?U0¢?œ3¢?ã6¢?*:¢?q=¢?¸@¢?þC¢?EG¢?ŒJ¢?ÓM¢?Q¢?aT¢?¨W¢?îZ¢?5^¢?|a¢?Ãd¢?
h¢?Qk¢?˜n¢?Þq¢?%u¢?lx¢?³{¢?ú~¢?A‚¢?ˆ…¢?Îˆ¢?Œ¢?\�¢?£’¢?ê•¢?1™¢?xœ¢?¾Ÿ¢?£¢?L¦¢?“©¢?Ú¬¢?!°¢?h³¢?®¶¢?õ¹¢?<½¢?ƒÀ¢?ÊÃ¢?Ç¢?XÊ¢?ŸÍ¢?åÐ¢?,Ô¢?s×¢?ºÚ¢?Þ¢?Há¢?�ä¢?Õç¢?ë¢?cî¢?ªñ¢?ñô¢?8ø¢?û¢?Åþ¢?£?S£?š£?á£?(£?o£?µ£?ü£?C£?Š£?Ñ"£?&£?_)£?¥,£?ì/£?33£?z6£?Á9£?=£?O@£?–C£?ÜF£?#J£?jM£?±P£?øS£??W£?†Z£?Ì]£?a£?Zd£?¡g£?èj£?/n£?vq£?¼t£?x£?J{£?‘~£?Ø�£?…£?fˆ£?¬‹£?óŽ£?:’£?�•£?È˜£?œ£?VŸ£?œ¢£?ã¥£?*©£?q¬£?¸¯£?ÿ²£?F¶£?Œ¹£?Ó¼£?À£?aÃ£?¨Æ£?ïÉ£?6Í£?}Ð£?ÃÓ£?
×£?QÚ£?˜Ý£?ßà£?&ä£?mç£?³ê£?úí£?Añ£?ˆô£?Ï÷£?û£?]þ£?£¤?ê¤?1¤?x¤?¿¤?¤?M¤?“¤?Ú¤?!¤?h"¤?¯%¤?ö(¤?=,¤?ƒ/¤?Ê2¤?6¤?X9¤?Ÿ<¤?æ?¤?-C¤?tF¤?ºI¤?M¤?HP¤?�S¤?ÖV¤?Z¤?d]¤?ª`¤?ñc¤?8g¤?j¤?Æm¤?q¤?Tt¤?šw¤?áz¤?(~¤?o�¤?¶„¤?ý‡¤?D‹¤?ŠŽ¤?Ñ‘¤?•¤?_˜¤?¦›¤?íž¤?4¢¤?z¥¤?Á¨¤?¬¤?O¯¤?–²¤?Ýµ¤?$¹¤?j¼¤?±¿¤?øÂ¤??Æ¤?†É¤?ÍÌ¤?Ð¤?[Ó¤?¡Ö¤?èÙ¤?/Ý¤?và¤?½ã¤?ç¤?Kê¤?‘í¤?Øð¤?ô¤?f÷¤?­ú¤?ôý¤?;¥?�¥?È¥?¥?V¥?�¥?ä¥?+¥?q¥?¸¥?ÿ!¥?F%¥?�(¥?Ô+¥?/¥?a2¥?¨5¥?ï8¥?6<¥?}?¥?ÄB¥?F¥?RI¥?˜L¥?ßO¥?&S¥?mV¥?´Y¥?û\¥?B`¥?ˆc¥?Ïf¥?j¥?]m¥?¤p¥?ës¥?2w¥?xz¥?¿}¥?�¥?M„¥?”‡¥?ÛŠ¥?"Ž¥?h‘¥?¯”¥?ö—¥?=›¥?„ž¥?Ë¡¥?¥¥?X¨¥?Ÿ«¥?æ®¥?-²¥?tµ¥?»¸¥?¼¥?H¿¥?�Â¥?ÖÅ¥?É¥?dÌ¥?«Ï¥?òÒ¥?9Ö¥?Ù¥?ÆÜ¥?à¥?Tã¥?›æ¥?âé¥?)í¥?oð¥?¶ó¥?ýö¥?Dú¥?‹ý¥?Ò ¦?¦?_¦?¦
¦?í¦?4¦?{¦?Â¦?	¦?O¦?–!¦?Ý$¦?$(¦?k+¦?².¦?ù1¦??5¦?†8¦?Í;¦??¦?[B¦?¢E¦?éH¦?0L¦?vO¦?½R¦?V¦?KY¦?’\¦?Ù_¦? c¦?ff¦?­i¦?ôl¦?;p¦?‚s¦?Év¦?z¦?V}¦?�€¦?äƒ¦?+‡¦?rŠ¦?¹�¦? ‘¦?F”¦?�—¦?Ôš¦?ž¦?b¡¦?©¤¦?ð§¦?6«¦?}®¦?Ä±¦?µ¦?R¸¦?™»¦?à¾¦?'Â¦?mÅ¦?´È¦?ûË¦?BÏ¦?‰Ò¦?ÐÕ¦?Ù¦?]Ü¦?¤ß¦?ëâ¦?2æ¦?yé¦?Àì¦?ð¦?Mó¦?”ö¦?Ûù¦?"ý¦?i §?°§?÷§?=
§?„§?Ë§?§?Y§? §?ç§?-!§?t$§?»'§?+§?I.§?�1§?×4§?8§?d;§?«>§?òA§?9E§?€H§?ÇK§?O§?TR§?›U§?âX§?)\§?p_§?·b§?þe§?Di§?‹l§?Òo§?s§?`v§?§y§?î|§?4€§?{ƒ§?Â†§?	Š§?P�§?—�§?Þ“§?$—§?kš§?²�§?ù §?@¤§?‡§§?Îª§?®§?[±§?¢´§?é·§?0»§?w¾§?¾Á§?Å§?KÈ§?’Ë§?ÙÎ§? Ò§?gÕ§?®Ø§?õÛ§?;ß§?‚â§?Éå§?é§?Wì§?žï§?åò§?+ö§?rù§?¹ü§?  ¨?G¨?Ž¨?Õ	¨?¨?b¨?©¨?ð¨?7¨?~¨?Å ¨?$¨?R'¨?™*¨?à-¨?'1¨?n4¨?µ7¨?û:¨?B>¨?‰A¨?ÐD¨?H¨?^K¨?¥N¨?ìQ¨?2U¨?yX¨?À[¨?_¨?Nb¨?•e¨?Üh¨?"l¨?io¨?°r¨?÷u¨?>y¨?…|¨?Ì¨?ƒ¨?Y†¨? ‰¨?çŒ¨?.�¨?u“¨?¼–¨?š¨?I�¨?� ¨?×£¨?§¨?eª¨?¬­¨?ò°¨?9´¨?€·¨?Çº¨?¾¨?UÁ¨?œÄ¨?ãÇ¨?)Ë¨?pÎ¨?·Ñ¨?þÔ¨?EØ¨?ŒÛ¨?ÓÞ¨?â¨?`å¨?§è¨?îë¨?5ï¨?|ò¨?Ãõ¨?	ù¨?Pü¨?—ÿ¨?Þ©?%©?l	©?³©?ù©?@©?‡©?Î©?©?\ ©?£#©?é&©?0*©?w-©?¾0©?4©?L7©?“:©?Ù=©? A©?gD©?®G©?õJ©?<N©?ƒQ©?ÊT©?X©?W[©?ž^©?åa©?,e©?sh©?ºk©? o©?Gr©?Žu©?Õx©?|©?c©?ª‚©?ð…©?7‰©?~Œ©?Å�©?“©?S–©?š™©?àœ©?' ©?n£©?µ¦©?ü©©?C­©?Š°©?Ð³©?·©?^º©?¥½©?ìÀ©?3Ä©?zÇ©?ÁÊ©?Î©?NÑ©?•Ô©?Ü×©?#Û©?jÞ©?±á©?÷ä©?>è©?…ë©?Ìî©?ò©?Zõ©?¡ø©?çû©?.ÿ©?uª?¼ª?	ª?Jª?‘ª?×ª?ª?eª?¬ª?óª?:#ª?�&ª?Ç)ª?-ª?U0ª?œ3ª?ã6ª?*:ª?q=ª?¸@ª?þCª?EGª?ŒJª?ÓMª?Qª?aTª?¨Wª?îZª?5^ª?|aª?Ãdª?
hª?Qkª?˜nª?Þqª?%uª?lxª?³{ª?ú~ª?A‚ª?ˆ…ª?Îˆª?Œª?\�ª?£’ª?ê•ª?1™ª?xœª?¾Ÿª?£ª?L¦ª?“©ª?Ú¬ª?!°ª?h³ª?®¶ª?õ¹ª?<½ª?ƒÀª?ÊÃª?Çª?XÊª?ŸÍª?åÐª?,Ôª?s×ª?ºÚª?Þª?Háª?�äª?Õçª?ëª?cîª?ªñª?ñôª?8øª?ûª?Åþª?«?S«?š«?á«?(«?o«?µ«?ü«?C«?Š«?Ñ"«?&«?_)«?¥,«?ì/«?33«?z6«?Á9«?=«?O@«?–C«?ÜF«?#J«?jM«?±P«?øS«??W«?†Z«?Ì]«?a«?Zd«?¡g«?èj«?/n«?vq«?¼t«?x«?J{«?‘~«?Ø�«?…«?fˆ«?¬‹«?óŽ«?:’«?�•«?È˜«?œ«?VŸ«?œ¢«?ã¥«?*©«?q¬«?¸¯«?ÿ²«?F¶«?Œ¹«?Ó¼«?À«?aÃ«?¨Æ«?ïÉ«?6Í«?}Ð«?ÃÓ«?
×«?QÚ«?˜Ý«?ßà«?&ä«?mç«?³ê«?úí«?Añ«?ˆô«?Ï÷«?û«?]þ«?£¬?ê¬?1¬?x¬?¿¬?¬?M¬?“¬?Ú¬?!¬?h"¬?¯%¬?ö(¬?=,¬?ƒ/¬?Ê2¬?6¬?X9¬?Ÿ<¬?æ?¬?-C¬?tF¬?ºI¬?M¬?HP¬?�S¬?ÖV¬?Z¬?d]¬?ª`¬?ñc¬?8g¬?j¬?Æm¬?q¬?Tt¬?šw¬?áz¬?(~¬?o�¬?¶„¬?ý‡¬?D‹¬?ŠŽ¬?Ñ‘¬?•¬?_˜¬?¦›¬?íž¬?4¢¬?z¥¬?Á¨¬?¬¬?O¯¬?–²¬?Ýµ¬?$¹¬?j¼¬?±¿¬?øÂ¬??Æ¬?†É¬?ÍÌ¬?Ð¬?[Ó¬?¡Ö¬?èÙ¬?/Ý¬?và¬?½ã¬?ç¬?Kê¬?‘í¬?Øð¬?ô¬?f÷¬?­ú¬?ôý¬?;­?�­?È­?­?V­?�­?ä­?+­?q­?¸­?ÿ!­?F%­?�(­?Ô+­?/­?a2­?¨5­?ï8­?6<­?}?­?ÄB­?F­?RI­?˜L­?ßO­?&S­?mV­?´Y­?û\­?B`­?ˆc­?Ïf­?j­?]m­?¤p­?ës­?2w­?xz­?¿}­?�­?M„­?”‡­?ÛŠ­?"Ž­?h‘­?¯”­?ö—­?=›­?„ž­?Ë¡­?¥­?X¨­?Ÿ«­?æ®­?-²­?tµ­?»¸­?¼­?H¿­?�Â­?ÖÅ­?É­?dÌ­?«Ï­?òÒ­?9Ö­?Ù­?ÆÜ­?à­?Tã­?›æ­?âé­?)í­?oð­?¶ó­?ýö­?Dú­?‹ý­?Ò ®?®?_®?¦
®?í®?4®?{®?Â®?	®?O®?–!®?Ý$®?$(®?k+®?².®?ù1®??5®?†8®?Í;®??®?[B®?¢E®?éH®?0L®?vO®?½R®?V®?KY®?’\®?Ù_®? c®?ff®?­i®?ôl®?;p®?‚s®?Év®?z®?V}®?�€®?äƒ®?+‡®?rŠ®?¹�®? ‘®?F”®?�—®?Ôš®?ž®?b¡®?©¤®?ð§®?6«®?}®®?Ä±®?µ®?R¸®?™»®?à¾®?'Â®?mÅ®?´È®?ûË®?BÏ®?‰Ò®?ÐÕ®?Ù®?]Ü®?¤ß®?ëâ®?2æ®?yé®?Àì®?ð®?Mó®?”ö®?Ûù®?"ý®?i ¯?°¯?÷¯?=
¯?„¯?Ë¯?¯?Y¯? ¯?ç¯?-!¯?t$¯?»'¯?+¯?I.¯?�1¯?×4¯?8¯?d;¯?«>¯?òA¯?9E¯?€H¯?ÇK¯?O¯?TR¯?›U¯?âX¯?)\¯?p_¯?·b¯?þe¯?Di¯?‹l¯?Òo¯?s¯?`v¯?§y¯?î|¯?4€¯?{ƒ¯?Â†¯?	Š¯?P�¯?—�¯?Þ“¯?$—¯?kš¯?²�¯?ù ¯?@¤¯?‡§¯?Îª¯?®¯?[±¯?¢´¯?é·¯?0»¯?w¾¯?¾Á¯?Å¯?KÈ¯?’Ë¯?ÙÎ¯? Ò¯?gÕ¯?®Ø¯?õÛ¯?;ß¯?‚â¯?Éå¯?é¯?Wì¯?žï¯?åò¯?+ö¯?rù¯?¹ü¯?  °?G°?Ž°?Õ	°?°?b°?©°?ð°?7°?~°?Å °?$°?R'°?™*°?à-°?'1°?n4°?µ7°?û:°?B>°?‰A°?ÐD°?H°?^K°?¥N°?ìQ°?2U°?yX°?À[°?_°?Nb°?•e°?Üh°?"l°?io°?°r°?÷u°?>y°?…|°?Ì°?ƒ°?Y†°? ‰°?çŒ°?.�°?u“°?¼–°?š°?I�°?� °?×£°?§°?eª°?¬­°?ò°°?9´°?€·°?Çº°?¾°?UÁ°?œÄ°?ãÇ°?)Ë°?pÎ°?·Ñ°?þÔ°?EØ°?ŒÛ°?ÓÞ°?â°?`å°?§è°?îë°?5ï°?|ò°?Ãõ°?	ù°?Pü°?—ÿ°?Þ±?%±?l	±?³±?ù±?@±?‡±?Î±?±?\ ±?£#±?é&±?0*±?w-±?¾0±?4±?L7±?“:±?Ù=±? A±?gD±?®G±?õJ±?<N±?ƒQ±?ÊT±?X±?W[±?ž^±?åa±?,e±?sh±?ºk±? o±?Gr±?Žu±?Õx±?|±?c±?ª‚±?ð…±?7‰±?~Œ±?Å�±?“±?S–±?š™±?àœ±?' ±?n£±?µ¦±?ü©±?C­±?Š°±?Ð³±?·±?^º±?¥½±?ìÀ±?3Ä±?zÇ±?ÁÊ±?Î±?NÑ±?•Ô±?Ü×±?#Û±?jÞ±?±á±?÷ä±?>è±?…ë±?Ìî±?ò±?Zõ±?¡ø±?çû±?.ÿ±?u²?¼²?	²?J²?‘²?×²?²?e²?¬²?ó²?:#²?�&²?Ç)²?-²?U0²?œ3²?ã6²?*:²?q=²?¸@²?þC²?EG²?ŒJ²?ÓM²?Q²?aT²?¨W²?îZ²?5^²?|a²?Ãd²?
h²?Qk²?˜n²?Þq²?%u²?lx²?³{²?ú~²?A‚²?ˆ…²?Îˆ²?Œ²?\�²?£’²?ê•²?1™²?xœ²?¾Ÿ²?£²?L¦²?“©²?Ú¬²?!°²?h³²?®¶²?õ¹²?<½²?ƒÀ²?ÊÃ²?Ç²?XÊ²?ŸÍ²?åÐ²?,Ô²?s×²?ºÚ²?Þ²?Há²?�ä²?Õç²?ë²?cî²?ªñ²?ñô²?8ø²?û²?Åþ²?³?S³?š³?á³?(³?o³?µ³?ü³?C³?Š³?Ñ"³?&³?_)³?¥,³?ì/³?33³?z6³?Á9³?=³?O@³?–C³?ÜF³?#J³?jM³?±P³?øS³??W³?†Z³?Ì]³?a³?Zd³?¡g³?èj³?/n³?vq³?¼t³?x³?J{³?‘~³?Ø�³?…³?fˆ³?¬‹³?óŽ³?:’³?�•³?È˜³?œ³?VŸ³?œ¢³?ã¥³?*©³?q¬³?¸¯³?ÿ²³?F¶³?Œ¹³?Ó¼³?À³?aÃ³?¨Æ³?ïÉ³?6Í³?}Ð³?ÃÓ³?
×³?QÚ³?˜Ý³?ßà³?&ä³?mç³?³ê³?úí³?Añ³?ˆô³?Ï÷³?û³?]þ³?£´?ê´?1´?x´?¿´?´?M´?“´?Ú´?!´?h"´?¯%´?ö(´?=,´?ƒ/´?Ê2´?6´?X9´?Ÿ<´?æ?´?-C´?tF´?ºI´?M´?HP´?�S´?ÖV´?Z´?d]´?ª`´?ñc´?8g´?j´?Æm´?q´?Tt´?šw´?áz´?(~´?o�´?¶„´?ý‡´?D‹´?ŠŽ´?Ñ‘´?•´?_˜´?¦›´?íž´?4¢´?z¥´?Á¨´?¬´?O¯´?–²´?Ýµ´?$¹´?j¼´?±¿´?øÂ´??Æ´?†É´?ÍÌ´?Ð´?[Ó´?¡Ö´?èÙ´?/Ý´?và´?½ã´?ç´?Kê´?‘í´?Øð´?ô´?f÷´?­ú´?ôý´?;µ?�µ?Èµ?µ?Vµ?�µ?äµ?+µ?qµ?¸µ?ÿ!µ?F%µ?�(µ?Ô+µ?/µ?a2µ?¨5µ?ï8µ?6<µ?}?µ?ÄBµ?Fµ?RIµ?˜Lµ?ßOµ?&Sµ?mVµ?´Yµ?û\µ?B`µ?ˆcµ?Ïfµ?jµ?]mµ?¤pµ?ësµ?2wµ?xzµ?¿}µ?�µ?M„µ?”‡µ?ÛŠµ?"Žµ?h‘µ?¯”µ?ö—µ?=›µ?„žµ?Ë¡µ?¥µ?X¨µ?Ÿ«µ?æ®µ?-²µ?tµµ?»¸µ?¼µ?H¿µ?�Âµ?ÖÅµ?Éµ?dÌµ?«Ïµ?òÒµ?9Öµ?Ùµ?ÆÜµ?àµ?Tãµ?›æµ?âéµ?)íµ?oðµ?¶óµ?ýöµ?Dúµ?‹ýµ?Ò ¶?¶?_¶?¦
¶?í¶?4¶?{¶?Â¶?	¶?O¶?–!¶?Ý$¶?$(¶?k+¶?².¶?ù1¶??5¶?†8¶?Í;¶??¶?[B¶?¢E¶?éH¶?0L¶?vO¶?½R¶?V¶?KY¶?’\¶?Ù_¶? c¶?ff¶?­i¶?ôl¶?;p¶?‚s¶?Év¶?z¶?V}¶?�€¶?äƒ¶?+‡¶?rŠ¶?¹�¶? ‘¶?F”¶?�—¶?Ôš¶?ž¶?b¡¶?©¤¶?ð§¶?6«¶?}®¶?Ä±¶?µ¶?R¸¶?™»¶?à¾¶?'Â¶?mÅ¶?´È¶?ûË¶?BÏ¶?‰Ò¶?ÐÕ¶?Ù¶?]Ü¶?¤ß¶?ëâ¶?2æ¶?yé¶?Àì¶?ð¶?Mó¶?”ö¶?Ûù¶?"ý¶?i ·?°·?÷·?=
·?„·?Ë·?·?Y·? ·?ç·?-!·?t$·?»'·?+·?I.·?�1·?×4·?8·?d;·?«>·?òA·?9E·?€H·?ÇK·?O·?TR·?›U·?âX·?)\·?p_·?·b·?þe·?Di·?‹l·?Òo·?s·?`v·?§y·?î|·?4€·?{ƒ·?Â†·?	Š·?P�·?—�·?Þ“·?$—·?kš·?²�·?ù ·?@¤·?‡§·?Îª·?®·?[±·?¢´·?é··?0»·?w¾·?¾Á·?Å·?KÈ·?’Ë·?ÙÎ·? Ò·?gÕ·?®Ø·?õÛ·?;ß·?‚â·?Éå·?é·?Wì·?žï·?åò·?+ö·?rù·?¹ü·?  ¸?G¸?Ž¸?Õ	¸?¸?b¸?©¸?ð¸?7¸?~¸?Å ¸?$¸?R'¸?™*¸?à-¸?'1¸?n4¸?µ7¸?û:¸?B>¸?‰A¸?ÐD¸?H¸?^K¸?¥N¸?ìQ¸?2U¸?yX¸?À[¸?_¸?Nb¸?•e¸?Üh¸?"l¸?io¸?°r¸?÷u¸?>y¸?…|¸?Ì¸?ƒ¸?Y†¸? ‰¸?çŒ¸?.�¸?u“¸?¼–¸?š¸?I�¸?� ¸?×£¸?§¸?eª¸?¬­¸?ò°¸?9´¸?€·¸?Çº¸?¾¸?UÁ¸?œÄ¸?ãÇ¸?)Ë¸?pÎ¸?·Ñ¸?þÔ¸?EØ¸?ŒÛ¸?ÓÞ¸?â¸?`å¸?§è¸?îë¸?5ï¸?|ò¸?Ãõ¸?	ù¸?Pü¸?—ÿ¸?Þ¹?%¹?l	¹?³¹?ù¹?@¹?‡¹?Î¹?¹?\ ¹?£#¹?é&¹?0*¹?w-¹?¾0¹?4¹?L7¹?“:¹?Ù=¹? A¹?gD¹?®G¹?õJ¹?<N¹?ƒQ¹?ÊT¹?X¹?W[¹?ž^¹?åa¹?,e¹?sh¹?ºk¹? o¹?Gr¹?Žu¹?Õx¹?|¹?c¹?ª‚¹?ð…¹?7‰¹?~Œ¹?Å�¹?“¹?S–¹?š™¹?àœ¹?' ¹?n£¹?µ¦¹?ü©¹?C­¹?Š°¹?Ð³¹?·¹?^º¹?¥½¹?ìÀ¹?3Ä¹?zÇ¹?ÁÊ¹?Î¹?NÑ¹?•Ô¹?Ü×¹?#Û¹?jÞ¹?±á¹?÷ä¹?>è¹?…ë¹?Ìî¹?ò¹?Zõ¹?¡ø¹?çû¹?.ÿ¹?uº?¼º?	º?Jº?‘º?×º?º?eº?¬º?óº?:#º?�&º?Ç)º?-º?U0º?œ3º?ã6º?*:º?q=º?¸@º?þCº?EGº?ŒJº?ÓMº?Qº?aTº?¨Wº?îZº?5^º?|aº?Ãdº?
hº?Qkº?˜nº?Þqº?%uº?lxº?³{º?ú~º?A‚º?ˆ…º?Îˆº?Œº?\�º?£’º?ê•º?1™º?xœº?¾Ÿº?£º?L¦º?“©º?Ú¬º?!°º?h³º?®¶º?õ¹º?<½º?ƒÀº?ÊÃº?Çº?XÊº?ŸÍº?åÐº?,Ôº?s×º?ºÚº?Þº?Háº?�äº?Õçº?ëº?cîº?ªñº?ñôº?8øº?ûº?Åþº?»?S»?š»?á»?(»?o»?µ»?ü»?C»?Š»?Ñ"»?&»?_)»?¥,»?ì/»?33»?z6»?Á9»?=»?O@»?–C»?ÜF»?#J»?jM»?±P»?øS»??W»?†Z»?Ì]»?a»?Zd»?¡g»?èj»?/n»?vq»?¼t»?x»?J{»?‘~»?Ø�»?…»?fˆ»?¬‹»?óŽ»?:’»?�•»?È˜»?œ»?VŸ»?œ¢»?ã¥»?*©»?q¬»?¸¯»?ÿ²»?F¶»?Œ¹»?Ó¼»?À»?aÃ»?¨Æ»?ïÉ»?6Í»?}Ð»?ÃÓ»?
×»?QÚ»?˜Ý»?ßà»?&ä»?mç»?³ê»?úí»?Añ»?ˆô»?Ï÷»?û»?]þ»?£¼?ê¼?1¼?x¼?¿¼?¼?M¼?“¼?Ú¼?!¼?h"¼?¯%¼?ö(¼?=,¼?ƒ/¼?Ê2¼?6¼?X9¼?Ÿ<¼?æ?¼?-C¼?tF¼?ºI¼?M¼?HP¼?�S¼?ÖV¼?Z¼?d]¼?ª`¼?ñc¼?8g¼?j¼?Æm¼?q¼?Tt¼?šw¼?áz¼?(~¼?o�¼?¶„¼?ý‡¼?D‹¼?ŠŽ¼?Ñ‘¼?•¼?_˜¼?¦›¼?íž¼?4¢¼?z¥¼?Á¨¼?¬¼?O¯¼?–²¼?Ýµ¼?$¹¼?j¼¼?±¿¼?øÂ¼??Æ¼?†É¼?ÍÌ¼?Ð¼?[Ó¼?¡Ö¼?èÙ¼?/Ý¼?và¼?½ã¼?ç¼?Kê¼?‘í¼?Øð¼?ô¼?f÷¼?­ú¼?ôý¼?;½?�½?È½?½?V½?�½?ä½?+½?q½?¸½?ÿ!½?F%½?�(½?Ô+½?/½?a2½?¨5½?ï8½?6<½?}?½?ÄB½?F½?RI½?˜L½?ßO½?&S½?mV½?´Y½?û\½?B`½?ˆc½?Ïf½?j½?]m½?¤p½?ës½?2w½?xz½?¿}½?�½?M„½?”‡½?ÛŠ½?"Ž½?h‘½?¯”½?ö—½?=›½?„ž½?Ë¡½?¥½?X¨½?Ÿ«½?æ®½?-²½?tµ½?»¸½?¼½?H¿½?�Â½?ÖÅ½?É½?dÌ½?«Ï½?òÒ½?9Ö½?Ù½?ÆÜ½?à½?Tã½?›æ½?âé½?)í½?oð½?¶ó½?ýö½?Dú½?‹ý½?Ò ¾?¾?_¾?¦
¾?í¾?4¾?{¾?Â¾?	¾?O¾?–!¾?Ý$¾?$(¾?k+¾?².¾?ù1¾??5¾?†8¾?Í;¾??¾?[B¾?¢E¾?éH¾?0L¾?vO¾?½R¾?V¾?KY¾?’\¾?Ù_¾? c¾?ff¾?­i¾?ôl¾?;p¾?‚s¾?Év¾?z¾?V}¾?�€¾?äƒ¾?+‡¾?rŠ¾?¹�¾? ‘¾?F”¾?�—¾?Ôš¾?ž¾?b¡¾?©¤¾?ð§¾?6«¾?}®¾?Ä±¾?µ¾?R¸¾?™»¾?à¾¾?'Â¾?mÅ¾?´È¾?ûË¾?BÏ¾?‰Ò¾?ÐÕ¾?Ù¾?]Ü¾?¤ß¾?ëâ¾?2æ¾?yé¾?Àì¾?ð¾?Mó¾?”ö¾?Ûù¾?"ý¾?i ¿?°¿?÷¿?=
¿?„¿?Ë¿?¿?Y¿? ¿?ç¿?-!¿?t$¿?»'¿?+¿?I.¿?�1¿?×4¿?8¿?d;¿?«>¿?òA¿?9E¿?€H¿?ÇK¿?O¿?TR¿?›U¿?âX¿?)\¿?p_¿?·b¿?þe¿?Di¿?‹l¿?Òo¿?s¿?`v¿?§y¿?î|¿?4€¿?{ƒ¿?Â†¿?	Š¿?P�¿?—�¿?Þ“¿?$—¿?kš¿?²�¿?ù ¿?@¤¿?‡§¿?Îª¿?®¿?[±¿?¢´¿?é·¿?0»¿?w¾¿?¾Á¿?Å¿?KÈ¿?’Ë¿?ÙÎ¿? Ò¿?gÕ¿?®Ø¿?õÛ¿?;ß¿?‚â¿?Éå¿?é¿?Wì¿?žï¿?åò¿?+ö¿?rù¿?¹ü¿?  À?GÀ?ŽÀ?Õ	À?À?bÀ?©À?ðÀ?7À?~À?Å À?$À?R'À?™*À?à-À?'1À?n4À?µ7À?û:À?B>À?‰AÀ?ÐDÀ?HÀ?^KÀ?¥NÀ?ìQÀ?2UÀ?yXÀ?À[À?_À?NbÀ?•eÀ?ÜhÀ?"lÀ?ioÀ?°rÀ?÷uÀ?>yÀ?…|À?ÌÀ?ƒÀ?Y†À? ‰À?çŒÀ?.�À?u“À?¼–À?šÀ?I�À?� À?×£À?§À?eªÀ?¬­À?ò°À?9´À?€·À?ÇºÀ?¾À?UÁÀ?œÄÀ?ãÇÀ?)ËÀ?pÎÀ?·ÑÀ?þÔÀ?EØÀ?ŒÛÀ?ÓÞÀ?âÀ?`åÀ?§èÀ?îëÀ?5ïÀ?|òÀ?ÃõÀ?	ùÀ?PüÀ?—ÿÀ?ÞÁ?%Á?l	Á?³Á?ùÁ?@Á?‡Á?ÎÁ?Á?\ Á?£#Á?é&Á?0*Á?w-Á?¾0Á?4Á?L7Á?“:Á?Ù=Á? AÁ?gDÁ?®GÁ?õJÁ?<NÁ?ƒQÁ?ÊTÁ?XÁ?W[Á?ž^Á?åaÁ?,eÁ?shÁ?ºkÁ? oÁ?GrÁ?ŽuÁ?ÕxÁ?|Á?cÁ?ª‚Á?ð…Á?7‰Á?~ŒÁ?Å�Á?“Á?S–Á?š™Á?àœÁ?' Á?n£Á?µ¦Á?ü©Á?C­Á?Š°Á?Ð³Á?·Á?^ºÁ?¥½Á?ìÀÁ?3ÄÁ?zÇÁ?ÁÊÁ?ÎÁ?NÑÁ?•ÔÁ?Ü×Á?#ÛÁ?jÞÁ?±áÁ?÷äÁ?>èÁ?…ëÁ?ÌîÁ?òÁ?ZõÁ?¡øÁ?çûÁ?.ÿÁ?uÂ?¼Â?	Â?JÂ?‘Â?×Â?Â?eÂ?¬Â?óÂ?:#Â?�&Â?Ç)Â?-Â?U0Â?œ3Â?ã6Â?*:Â?q=Â?¸@Â?þCÂ?EGÂ?ŒJÂ?ÓMÂ?QÂ?aTÂ?¨WÂ?îZÂ?5^Â?|aÂ?ÃdÂ?
hÂ?QkÂ?˜nÂ?ÞqÂ?%uÂ?lxÂ?³{Â?ú~Â?A‚Â?ˆ…Â?ÎˆÂ?ŒÂ?\�Â?£’Â?ê•Â?1™Â?xœÂ?¾ŸÂ?£Â?L¦Â?“©Â?Ú¬Â?!°Â?h³Â?®¶Â?õ¹Â?<½Â?ƒÀÂ?ÊÃÂ?ÇÂ?XÊÂ?ŸÍÂ?åÐÂ?,ÔÂ?s×Â?ºÚÂ?ÞÂ?HáÂ?�äÂ?ÕçÂ?ëÂ?cîÂ?ªñÂ?ñôÂ?8øÂ?ûÂ?ÅþÂ?Ã?SÃ?šÃ?áÃ?(Ã?oÃ?µÃ?üÃ?CÃ?ŠÃ?Ñ"Ã?&Ã?_)Ã?¥,Ã?ì/Ã?33Ã?z6Ã?Á9Ã?=Ã?O@Ã?–CÃ?ÜFÃ?#JÃ?jMÃ?±PÃ?øSÃ??WÃ?†ZÃ?Ì]Ã?aÃ?ZdÃ?¡gÃ?èjÃ?/nÃ?vqÃ?¼tÃ?xÃ?J{Ã?‘~Ã?Ø�Ã?…Ã?fˆÃ?¬‹Ã?óŽÃ?:’Ã?�•Ã?È˜Ã?œÃ?VŸÃ?œ¢Ã?ã¥Ã?*©Ã?q¬Ã?¸¯Ã?ÿ²Ã?F¶Ã?Œ¹Ã?Ó¼Ã?ÀÃ?aÃÃ?¨ÆÃ?ïÉÃ?6ÍÃ?}ÐÃ?ÃÓÃ?
×Ã?QÚÃ?˜ÝÃ?ßàÃ?&äÃ?mçÃ?³êÃ?úíÃ?AñÃ?ˆôÃ?Ï÷Ã?ûÃ?]þÃ?£Ä?êÄ?1Ä?xÄ?¿Ä?Ä?MÄ?“Ä?ÚÄ?!Ä?h"Ä?¯%Ä?ö(Ä?=,Ä?ƒ/Ä?Ê2Ä?6Ä?X9Ä?Ÿ<Ä?æ?Ä?-CÄ?tFÄ?ºIÄ?MÄ?HPÄ?�SÄ?ÖVÄ?ZÄ?d]Ä?ª`Ä?ñcÄ?8gÄ?jÄ?ÆmÄ?qÄ?TtÄ?šwÄ?ázÄ?(~Ä?o�Ä?¶„Ä?ý‡Ä?D‹Ä?ŠŽÄ?Ñ‘Ä?•Ä?_˜Ä?¦›Ä?ížÄ?4¢Ä?z¥Ä?Á¨Ä?¬Ä?O¯Ä?–²Ä?ÝµÄ?$¹Ä?j¼Ä?±¿Ä?øÂÄ??ÆÄ?†ÉÄ?ÍÌÄ?ÐÄ?[ÓÄ?¡ÖÄ?èÙÄ?/ÝÄ?vàÄ?½ãÄ?çÄ?KêÄ?‘íÄ?ØðÄ?ôÄ?f÷Ä?­úÄ?ôýÄ?;Å?�Å?ÈÅ?Å?VÅ?�Å?äÅ?+Å?qÅ?¸Å?ÿ!Å?F%Å?�(Å?Ô+Å?/Å?a2Å?¨5Å?ï8Å?6<Å?}?Å?ÄBÅ?FÅ?RIÅ?˜LÅ?ßOÅ?&SÅ?mVÅ?´YÅ?û\Å?B`Å?ˆcÅ?ÏfÅ?jÅ?]mÅ?¤pÅ?ësÅ?2wÅ?xzÅ?¿}Å?�Å?M„Å?”‡Å?ÛŠÅ?"ŽÅ?h‘Å?¯”Å?ö—Å?=›Å?„žÅ?Ë¡Å?¥Å?X¨Å?Ÿ«Å?æ®Å?-²Å?tµÅ?»¸Å?¼Å?H¿Å?�ÂÅ?ÖÅÅ?ÉÅ?dÌÅ?«ÏÅ?òÒÅ?9ÖÅ?ÙÅ?ÆÜÅ?àÅ?TãÅ?›æÅ?âéÅ?)íÅ?oðÅ?¶óÅ?ýöÅ?DúÅ?‹ýÅ?Ò Æ?Æ?_Æ?¦
Æ?íÆ?4Æ?{Æ?ÂÆ?	Æ?OÆ?–!Æ?Ý$Æ?$(Æ?k+Æ?².Æ?ù1Æ??5Æ?†8Æ?Í;Æ??Æ?[BÆ?¢EÆ?éHÆ?0LÆ?vOÆ?½RÆ?VÆ?KYÆ?’\Æ?Ù_Æ? cÆ?ffÆ?­iÆ?ôlÆ?;pÆ?‚sÆ?ÉvÆ?zÆ?V}Æ?�€Æ?äƒÆ?+‡Æ?rŠÆ?¹�Æ? ‘Æ?F”Æ?�—Æ?ÔšÆ?žÆ?b¡Æ?©¤Æ?ð§Æ?6«Æ?}®Æ?Ä±Æ?µÆ?R¸Æ?™»Æ?à¾Æ?'ÂÆ?mÅÆ?´ÈÆ?ûËÆ?BÏÆ?‰ÒÆ?ÐÕÆ?ÙÆ?]ÜÆ?¤ßÆ?ëâÆ?2æÆ?yéÆ?ÀìÆ?ðÆ?MóÆ?”öÆ?ÛùÆ?"ýÆ?i Ç?°Ç?÷Ç?=
Ç?„Ç?ËÇ?Ç?YÇ? Ç?çÇ?-!Ç?t$Ç?»'Ç?+Ç?I.Ç?�1Ç?×4Ç?8Ç?d;Ç?«>Ç?òAÇ?9EÇ?€HÇ?ÇKÇ?OÇ?TRÇ?›UÇ?âXÇ?)\Ç?p_Ç?·bÇ?þeÇ?DiÇ?‹lÇ?ÒoÇ?sÇ?`vÇ?§yÇ?î|Ç?4€Ç?{ƒÇ?Â†Ç?	ŠÇ?P�Ç?—�Ç?Þ“Ç?$—Ç?kšÇ?²�Ç?ù Ç?@¤Ç?‡§Ç?ÎªÇ?®Ç?[±Ç?¢´Ç?é·Ç?0»Ç?w¾Ç?¾ÁÇ?ÅÇ?KÈÇ?’ËÇ?ÙÎÇ? ÒÇ?gÕÇ?®ØÇ?õÛÇ?;ßÇ?‚âÇ?ÉåÇ?éÇ?WìÇ?žïÇ?åòÇ?+öÇ?rùÇ?¹üÇ?  È?GÈ?ŽÈ?Õ	È?È?bÈ?©È?ðÈ?7È?~È?Å È?$È?R'È?™*È?à-È?'1È?n4È?µ7È?û:È?B>È?‰AÈ?ÐDÈ?HÈ?^KÈ?¥NÈ?ìQÈ?2UÈ?yXÈ?À[È?_È?NbÈ?•eÈ?ÜhÈ?"lÈ?ioÈ?°rÈ?÷uÈ?>yÈ?…|È?ÌÈ?ƒÈ?Y†È? ‰È?çŒÈ?.�È?u“È?¼–È?šÈ?I�È?� È?×£È?§È?eªÈ?¬­È?ò°È?9´È?€·È?ÇºÈ?¾È?UÁÈ?œÄÈ?ãÇÈ?)ËÈ?pÎÈ?·ÑÈ?þÔÈ?EØÈ?ŒÛÈ?ÓÞÈ?âÈ?`åÈ?§èÈ?îëÈ?5ïÈ?|òÈ?ÃõÈ?	ùÈ?PüÈ?—ÿÈ?ÞÉ?%É?l	É?³É?ùÉ?@É?‡É?ÎÉ?É?\ É?£#É?é&É?0*É?w-É?¾0É?4É?L7É?“:É?Ù=É? AÉ?gDÉ?®GÉ?õJÉ?<NÉ?ƒQÉ?ÊTÉ?XÉ?W[É?ž^É?åaÉ?,eÉ?shÉ?ºkÉ? oÉ?GrÉ?ŽuÉ?ÕxÉ?|É?cÉ?ª‚É?ð…É?7‰É?~ŒÉ?Å�É?“É?S–É?š™É?àœÉ?' É?n£É?µ¦É?ü©É?C­É?Š°É?Ð³É?·É?^ºÉ?¥½É?ìÀÉ?3ÄÉ?zÇÉ?ÁÊÉ?ÎÉ?NÑÉ?•ÔÉ?Ü×É?#ÛÉ?jÞÉ?±áÉ?÷äÉ?>èÉ?…ëÉ?ÌîÉ?òÉ?ZõÉ?¡øÉ?çûÉ?.ÿÉ?uÊ?¼Ê?	Ê?JÊ?‘Ê?×Ê?Ê?eÊ?¬Ê?óÊ?:#Ê?�&Ê?Ç)Ê?-Ê?U0Ê?œ3Ê?ã6Ê?*:Ê?q=Ê?¸@Ê?þCÊ?EGÊ?ŒJÊ?ÓMÊ?QÊ?aTÊ?¨WÊ?îZÊ?5^Ê?|aÊ?ÃdÊ?
hÊ?QkÊ?˜nÊ?ÞqÊ?%uÊ?lxÊ?³{Ê?ú~Ê?A‚Ê?ˆ…Ê?ÎˆÊ?ŒÊ?\�Ê?£’Ê?ê•Ê?1™Ê?xœÊ?¾ŸÊ?£Ê?L¦Ê?“©Ê?Ú¬Ê?!°Ê?h³Ê?®¶Ê?õ¹Ê?<½Ê?ƒÀÊ?ÊÃÊ?ÇÊ?XÊÊ?ŸÍÊ?åÐÊ?,ÔÊ?s×Ê?ºÚÊ?ÞÊ?HáÊ?�äÊ?ÕçÊ?ëÊ?cîÊ?ªñÊ?ñôÊ?8øÊ?ûÊ?ÅþÊ?Ë?SË?šË?áË?(Ë?oË?µË?üË?CË?ŠË?Ñ"Ë?&Ë?_)Ë?¥,Ë?ì/Ë?33Ë?z6Ë?Á9Ë?=Ë?O@Ë?–CË?ÜFË?#JË?jMË?±PË?øSË??WË?†ZË?Ì]Ë?aË?ZdË?¡gË?èjË?/nË?vqË?¼tË?xË?J{Ë?‘~Ë?Ø�Ë?…Ë?fˆË?¬‹Ë?óŽË?:’Ë?�•Ë?È˜Ë?œË?VŸË?œ¢Ë?ã¥Ë?*©Ë?q¬Ë?¸¯Ë?ÿ²Ë?F¶Ë?Œ¹Ë?Ó¼Ë?ÀË?aÃË?¨ÆË?ïÉË?6ÍË?}ÐË?ÃÓË?
×Ë?QÚË?˜ÝË?ßàË?&äË?mçË?³êË?úíË?AñË?ˆôË?Ï÷Ë?ûË?]þË?£Ì?êÌ?1Ì?xÌ?¿Ì?Ì?MÌ?“Ì?ÚÌ?!Ì?h"Ì?¯%Ì?ö(Ì?=,Ì?ƒ/Ì?Ê2Ì?6Ì?X9Ì?Ÿ<Ì?æ?Ì?-CÌ?tFÌ?ºIÌ?MÌ?HPÌ?�SÌ?ÖVÌ?ZÌ?d]Ì?ª`Ì?ñcÌ?8gÌ?jÌ?ÆmÌ?qÌ?TtÌ?šwÌ?ázÌ?(~Ì?o�Ì?¶„Ì?ý‡Ì?D‹Ì?ŠŽÌ?Ñ‘Ì?•Ì?_˜Ì?¦›Ì?ížÌ?4¢Ì?z¥Ì?Á¨Ì?¬Ì?O¯Ì?–²Ì?ÝµÌ?$¹Ì?j¼Ì?±¿Ì?øÂÌ??ÆÌ?†ÉÌ?ÍÌÌ?ÐÌ?[ÓÌ?¡ÖÌ?èÙÌ?/ÝÌ?vàÌ?½ãÌ?çÌ?KêÌ?‘íÌ?ØðÌ?ôÌ?f÷Ì?­úÌ?ôýÌ?;Í?�Í?ÈÍ?Í?VÍ?�Í?äÍ?+Í?qÍ?¸Í?ÿ!Í?F%Í?�(Í?Ô+Í?/Í?a2Í?¨5Í?ï8Í?6<Í?}?Í?ÄBÍ?FÍ?RIÍ?˜LÍ?ßOÍ?&SÍ?mVÍ?´YÍ?û\Í?B`Í?ˆcÍ?ÏfÍ?jÍ?]mÍ?¤pÍ?ësÍ?2wÍ?xzÍ?¿}Í?�Í?M„Í?”‡Í?ÛŠÍ?"ŽÍ?h‘Í?¯”Í?ö—Í?=›Í?„žÍ?Ë¡Í?¥Í?X¨Í?Ÿ«Í?æ®Í?-²Í?tµÍ?»¸Í?¼Í?H¿Í?�ÂÍ?ÖÅÍ?ÉÍ?dÌÍ?«ÏÍ?òÒÍ?9ÖÍ?ÙÍ?ÆÜÍ?àÍ?TãÍ?›æÍ?âéÍ?)íÍ?oðÍ?¶óÍ?ýöÍ?DúÍ?‹ýÍ?Ò Î?Î?_Î?¦
Î?íÎ?4Î?{Î?ÂÎ?	Î?OÎ?–!Î?Ý$Î?$(Î?k+Î?².Î?ù1Î??5Î?†8Î?Í;Î??Î?[BÎ?¢EÎ?éHÎ?0LÎ?vOÎ?½RÎ?VÎ?KYÎ?’\Î?Ù_Î? cÎ?ffÎ?­iÎ?ôlÎ?;pÎ?‚sÎ?ÉvÎ?zÎ?V}Î?�€Î?äƒÎ?+‡Î?rŠÎ?¹�Î? ‘Î?F”Î?�—Î?ÔšÎ?žÎ?b¡Î?©¤Î?ð§Î?6«Î?}®Î?Ä±Î?µÎ?R¸Î?™»Î?à¾Î?'ÂÎ?mÅÎ?´ÈÎ?ûËÎ?BÏÎ?‰ÒÎ?ÐÕÎ?ÙÎ?]ÜÎ?¤ßÎ?ëâÎ?2æÎ?yéÎ?ÀìÎ?ðÎ?MóÎ?”öÎ?ÛùÎ?"ýÎ?i Ï?°Ï?÷Ï?=
Ï?„Ï?ËÏ?Ï?YÏ? Ï?çÏ?-!Ï?t$Ï?»'Ï?+Ï?I.Ï?�1Ï?×4Ï?8Ï?d;Ï?«>Ï?òAÏ?9EÏ?€HÏ?ÇKÏ?OÏ?TRÏ?›UÏ?âXÏ?)\Ï?p_Ï?·bÏ?þeÏ?DiÏ?‹lÏ?ÒoÏ?sÏ?`vÏ?§yÏ?î|Ï?4€Ï?{ƒÏ?Â†Ï?	ŠÏ?P�Ï?—�Ï?Þ“Ï?$—Ï?kšÏ?²�Ï?ù Ï?@¤Ï?‡§Ï?ÎªÏ?®Ï?[±Ï?¢´Ï?é·Ï?0»Ï?w¾Ï?¾ÁÏ?ÅÏ?KÈÏ?’ËÏ?ÙÎÏ? ÒÏ?gÕÏ?®ØÏ?õÛÏ?;ßÏ?‚âÏ?ÉåÏ?éÏ?WìÏ?žïÏ?åòÏ?+öÏ?rùÏ?¹üÏ?  Ð?GÐ?ŽÐ?Õ	Ð?Ð?bÐ?©Ð?ðÐ?7Ð?~Ð?Å Ð?$Ð?R'Ð?™*Ð?à-Ð?'1Ð?n4Ð?µ7Ð?û:Ð?B>Ð?‰AÐ?ÐDÐ?HÐ?^KÐ?¥NÐ?ìQÐ?2UÐ?yXÐ?À[Ð?_Ð?NbÐ?•eÐ?ÜhÐ?"lÐ?ioÐ?°rÐ?÷uÐ?>yÐ?…|Ð?ÌÐ?ƒÐ?Y†Ð? ‰Ð?çŒÐ?.�Ð?u“Ð?¼–Ð?šÐ?I�Ð?� Ð?×£Ð?§Ð?eªÐ?¬­Ð?ò°Ð?9´Ð?€·Ð?ÇºÐ?¾Ð?UÁÐ?œÄÐ?ãÇÐ?)ËÐ?pÎÐ?·ÑÐ?þÔÐ?EØÐ?ŒÛÐ?ÓÞÐ?âÐ?`åÐ?§èÐ?îëÐ?5ïÐ?|òÐ?ÃõÐ?	ùÐ?PüÐ?—ÿÐ?ÞÑ?%Ñ?l	Ñ?³Ñ?ùÑ?@Ñ?‡Ñ?ÎÑ?Ñ?\ Ñ?£#Ñ?é&Ñ?0*Ñ?w-Ñ?¾0Ñ?4Ñ?L7Ñ?“:Ñ?Ù=Ñ? AÑ?gDÑ?®GÑ?õJÑ?<NÑ?ƒQÑ?ÊTÑ?XÑ?W[Ñ?ž^Ñ?åaÑ?,eÑ?shÑ?ºkÑ? oÑ?GrÑ?ŽuÑ?ÕxÑ?|Ñ?cÑ?ª‚Ñ?ð…Ñ?7‰Ñ?~ŒÑ?Å�Ñ?“Ñ?S–Ñ?š™Ñ?àœÑ?' Ñ?n£Ñ?µ¦Ñ?ü©Ñ?C­Ñ?Š°Ñ?Ð³Ñ?·Ñ?^ºÑ?¥½Ñ?ìÀÑ?3ÄÑ?zÇÑ?ÁÊÑ?ÎÑ?NÑÑ?•ÔÑ?Ü×Ñ?#ÛÑ?jÞÑ?±áÑ?÷äÑ?>èÑ?…ëÑ?ÌîÑ?òÑ?ZõÑ?¡øÑ?çûÑ?.ÿÑ?uÒ?¼Ò?	Ò?JÒ?‘Ò?×Ò?Ò?eÒ?¬Ò?óÒ?:#Ò?�&Ò?Ç)Ò?-Ò?U0Ò?œ3Ò?ã6Ò?*:Ò?q=Ò?¸@Ò?þCÒ?EGÒ?ŒJÒ?ÓMÒ?QÒ?aTÒ?¨WÒ?îZÒ?5^Ò?|aÒ?ÃdÒ?
hÒ?QkÒ?˜nÒ?ÞqÒ?%uÒ?lxÒ?³{Ò?ú~Ò?A‚Ò?ˆ…Ò?ÎˆÒ?ŒÒ?\�Ò?£’Ò?ê•Ò?1™Ò?xœÒ?¾ŸÒ?£Ò?L¦Ò?“©Ò?Ú¬Ò?!°Ò?h³Ò?®¶Ò?õ¹Ò?<½Ò?ƒÀÒ?ÊÃÒ?ÇÒ?XÊÒ?ŸÍÒ?åÐÒ?,ÔÒ?s×Ò?ºÚÒ?ÞÒ?HáÒ?�äÒ?ÕçÒ?ëÒ?cîÒ?ªñÒ?ñôÒ?8øÒ?ûÒ?ÅþÒ?Ó?SÓ?šÓ?áÓ?(Ó?oÓ?µÓ?üÓ?CÓ?ŠÓ?Ñ"Ó?&Ó?_)Ó?¥,Ó?ì/Ó?33Ó?z6Ó?Á9Ó?=Ó?O@Ó?–CÓ?ÜFÓ?#JÓ?jMÓ?±PÓ?øSÓ??WÓ?†ZÓ?Ì]Ó?aÓ?ZdÓ?¡gÓ?èjÓ?/nÓ?vqÓ?¼tÓ?xÓ?J{Ó?‘~Ó?Ø�Ó?…Ó?fˆÓ?¬‹Ó?óŽÓ?:’Ó?�•Ó?È˜Ó?œÓ?VŸÓ?œ¢Ó?ã¥Ó?*©Ó?q¬Ó?¸¯Ó?ÿ²Ó?F¶Ó?Œ¹Ó?Ó¼Ó?ÀÓ?aÃÓ?¨ÆÓ?ïÉÓ?6ÍÓ?}ÐÓ?ÃÓÓ?
×Ó?QÚÓ?˜ÝÓ?ßàÓ?&äÓ?mçÓ?³êÓ?úíÓ?AñÓ?ˆôÓ?Ï÷Ó?ûÓ?]þÓ?£Ô?êÔ?1Ô?xÔ?¿Ô?Ô?MÔ?“Ô?ÚÔ?!Ô?h"Ô?¯%Ô?ö(Ô?=,Ô?ƒ/Ô?Ê2Ô?6Ô?X9Ô?Ÿ<Ô?æ?Ô?-CÔ?tFÔ?ºIÔ?MÔ?HPÔ?�SÔ?ÖVÔ?ZÔ?d]Ô?ª`Ô?ñcÔ?8gÔ?jÔ?ÆmÔ?qÔ?TtÔ?šwÔ?ázÔ?(~Ô?o�Ô?¶„Ô?ý‡Ô?D‹Ô?ŠŽÔ?Ñ‘Ô?•Ô?_˜Ô?¦›Ô?ížÔ?4¢Ô?z¥Ô?Á¨Ô?¬Ô?O¯Ô?–²Ô?ÝµÔ?$¹Ô?j¼Ô?±¿Ô?øÂÔ??ÆÔ?†ÉÔ?ÍÌÔ?ÐÔ?[ÓÔ?¡ÖÔ?èÙÔ?/ÝÔ?vàÔ?½ãÔ?çÔ?KêÔ?‘íÔ?ØðÔ?ôÔ?f÷Ô?­úÔ?ôýÔ?;Õ?�Õ?ÈÕ?Õ?VÕ?�Õ?äÕ?+Õ?qÕ?¸Õ?ÿ!Õ?F%Õ?�(Õ?Ô+Õ?/Õ?a2Õ?¨5Õ?ï8Õ?6<Õ?}?Õ?ÄBÕ?FÕ?RIÕ?˜LÕ?ßOÕ?&SÕ?mVÕ?´YÕ?û\Õ?B`Õ?ˆcÕ?ÏfÕ?jÕ?]mÕ?¤pÕ?ësÕ?2wÕ?xzÕ?¿}Õ?�Õ?M„Õ?”‡Õ?ÛŠÕ?"ŽÕ?h‘Õ?¯”Õ?ö—Õ?=›Õ?„žÕ?Ë¡Õ?¥Õ?X¨Õ?Ÿ«Õ?æ®Õ?-²Õ?tµÕ?»¸Õ?¼Õ?H¿Õ?�ÂÕ?ÖÅÕ?ÉÕ?dÌÕ?«ÏÕ?òÒÕ?9ÖÕ?ÙÕ?ÆÜÕ?àÕ?TãÕ?›æÕ?âéÕ?)íÕ?oðÕ?¶óÕ?ýöÕ?DúÕ?‹ýÕ?Ò Ö?Ö?_Ö?¦
Ö?íÖ?4Ö?{Ö?ÂÖ?	Ö?OÖ?–!Ö?Ý$Ö?$(Ö?k+Ö?².Ö?ù1Ö??5Ö?†8Ö?Í;Ö??Ö?[BÖ?¢EÖ?éHÖ?0LÖ?vOÖ?½RÖ?VÖ?KYÖ?’\Ö?Ù_Ö? cÖ?ffÖ?­iÖ?ôlÖ?;pÖ?‚sÖ?ÉvÖ?zÖ?V}Ö?�€Ö?äƒÖ?+‡Ö?rŠÖ?¹�Ö? ‘Ö?F”Ö?�—Ö?ÔšÖ?žÖ?b¡Ö?©¤Ö?ð§Ö?6«Ö?}®Ö?Ä±Ö?µÖ?R¸Ö?™»Ö?à¾Ö?'ÂÖ?mÅÖ?´ÈÖ?ûËÖ?BÏÖ?‰ÒÖ?ÐÕÖ?ÙÖ?]ÜÖ?¤ßÖ?ëâÖ?2æÖ?yéÖ?ÀìÖ?ðÖ?MóÖ?”öÖ?ÛùÖ?"ýÖ?i ×?°×?÷×?=
×?„×?Ë×?×?Y×? ×?ç×?-!×?t$×?»'×?+×?I.×?�1×?×4×?8×?d;×?«>×?òA×?9E×?€H×?ÇK×?O×?TR×?›U×?âX×?)\×?p_×?·b×?þe×?Di×?‹l×?Òo×?s×?`v×?§y×?î|×?4€×?{ƒ×?Â†×?	Š×?P�×?—�×?Þ“×?$—×?kš×?²�×?ù ×?@¤×?‡§×?Îª×?®×?[±×?¢´×?é·×?0»×?w¾×?¾Á×?Å×?KÈ×?’Ë×?ÙÎ×? Ò×?gÕ×?®Ø×?õÛ×?;ß×?‚â×?Éå×?é×?Wì×?žï×?åò×?+ö×?rù×?¹ü×?  Ø?GØ?ŽØ?Õ	Ø?Ø?bØ?©Ø?ðØ?7Ø?~Ø?Å Ø?$Ø?R'Ø?™*Ø?à-Ø?'1Ø?n4Ø?µ7Ø?û:Ø?B>Ø?‰AØ?ÐDØ?HØ?^KØ?¥NØ?ìQØ?2UØ?yXØ?À[Ø?_Ø?NbØ?•eØ?ÜhØ?"lØ?ioØ?°rØ?÷uØ?>yØ?…|Ø?ÌØ?ƒØ?Y†Ø? ‰Ø?çŒØ?.�Ø?u“Ø?¼–Ø?šØ?I�Ø?� Ø?×£Ø?§Ø?eªØ?¬­Ø?ò°Ø?9´Ø?€·Ø?ÇºØ?¾Ø?UÁØ?œÄØ?ãÇØ?)ËØ?pÎØ?·ÑØ?þÔØ?EØØ?ŒÛØ?ÓÞØ?âØ?`åØ?§èØ?îëØ?5ïØ?|òØ?ÃõØ?	ùØ?PüØ?—ÿØ?ÞÙ?%Ù?l	Ù?³Ù?ùÙ?@Ù?‡Ù?ÎÙ?Ù?\ Ù?£#Ù?é&Ù?0*Ù?w-Ù?¾0Ù?4Ù?L7Ù?“:Ù?Ù=Ù? AÙ?gDÙ?®GÙ?õJÙ?<NÙ?ƒQÙ?ÊTÙ?XÙ?W[Ù?ž^Ù?åaÙ?,eÙ?shÙ?ºkÙ? oÙ?GrÙ?ŽuÙ?ÕxÙ?|Ù?cÙ?ª‚Ù?ð…Ù?7‰Ù?~ŒÙ?Å�Ù?“Ù?S–Ù?š™Ù?àœÙ?' Ù?n£Ù?µ¦Ù?ü©Ù?C­Ù?Š°Ù?Ð³Ù?·Ù?^ºÙ?¥½Ù?ìÀÙ?3ÄÙ?zÇÙ?ÁÊÙ?ÎÙ?NÑÙ?•ÔÙ?Ü×Ù?#ÛÙ?jÞÙ?±áÙ?÷äÙ?>èÙ?…ëÙ?ÌîÙ?òÙ?ZõÙ?¡øÙ?çûÙ?.ÿÙ?uÚ?¼Ú?	Ú?JÚ?‘Ú?×Ú?Ú?eÚ?¬Ú?óÚ?:#Ú?�&Ú?Ç)Ú?-Ú?U0Ú?œ3Ú?ã6Ú?*:Ú?q=Ú?¸@Ú?þCÚ?EGÚ?ŒJÚ?ÓMÚ?QÚ?aTÚ?¨WÚ?îZÚ?5^Ú?|aÚ?ÃdÚ?
hÚ?QkÚ?˜nÚ?ÞqÚ?%uÚ?lxÚ?³{Ú?ú~Ú?A‚Ú?ˆ…Ú?ÎˆÚ?ŒÚ?\�Ú?£’Ú?ê•Ú?1™Ú?xœÚ?¾ŸÚ?£Ú?L¦Ú?“©Ú?Ú¬Ú?!°Ú?h³Ú?®¶Ú?õ¹Ú?<½Ú?ƒÀÚ?ÊÃÚ?ÇÚ?XÊÚ?ŸÍÚ?åÐÚ?,ÔÚ?s×Ú?ºÚÚ?ÞÚ?HáÚ?�äÚ?ÕçÚ?ëÚ?cîÚ?ªñÚ?ñôÚ?8øÚ?ûÚ?ÅþÚ?Û?SÛ?šÛ?áÛ?(Û?oÛ?µÛ?üÛ?CÛ?ŠÛ?Ñ"Û?&Û?_)Û?¥,Û?ì/Û?33Û?z6Û?Á9Û?=Û?O@Û?–CÛ?ÜFÛ?#JÛ?jMÛ?±PÛ?øSÛ??WÛ?†ZÛ?Ì]Û?aÛ?ZdÛ?¡gÛ?èjÛ?/nÛ?vqÛ?¼tÛ?xÛ?J{Û?‘~Û?Ø�Û?…Û?fˆÛ?¬‹Û?óŽÛ?:’Û?�•Û?È˜Û?œÛ?VŸÛ?œ¢Û?ã¥Û?*©Û?q¬Û?¸¯Û?ÿ²Û?F¶Û?Œ¹Û?Ó¼Û?ÀÛ?aÃÛ?¨ÆÛ?ïÉÛ?6ÍÛ?}ÐÛ?ÃÓÛ?
×Û?QÚÛ?˜ÝÛ?ßàÛ?&äÛ?mçÛ?³êÛ?úíÛ?AñÛ?ˆôÛ?Ï÷Û?ûÛ?]þÛ?£Ü?êÜ?1Ü?xÜ?¿Ü?Ü?MÜ?“Ü?ÚÜ?!Ü?h"Ü?¯%Ü?ö(Ü?=,Ü?ƒ/Ü?Ê2Ü?6Ü?X9Ü?Ÿ<Ü?æ?Ü?-CÜ?tFÜ?ºIÜ?MÜ?HPÜ?�SÜ?ÖVÜ?ZÜ?d]Ü?ª`Ü?ñcÜ?8gÜ?jÜ?ÆmÜ?qÜ?TtÜ?šwÜ?ázÜ?(~Ü?o�Ü?¶„Ü?ý‡Ü?D‹Ü?ŠŽÜ?Ñ‘Ü?•Ü?_˜Ü?¦›Ü?ížÜ?4¢Ü?z¥Ü?Á¨Ü?¬Ü?O¯Ü?–²Ü?ÝµÜ?$¹Ü?j¼Ü?±¿Ü?øÂÜ??ÆÜ?†ÉÜ?ÍÌÜ?ÐÜ?[ÓÜ?¡ÖÜ?èÙÜ?/ÝÜ?vàÜ?½ãÜ?çÜ?KêÜ?‘íÜ?ØðÜ?ôÜ?f÷Ü?­úÜ?ôýÜ?;Ý?�Ý?ÈÝ?Ý?VÝ?�Ý?äÝ?+Ý?qÝ?¸Ý?ÿ!Ý?F%Ý?�(Ý?Ô+Ý?/Ý?a2Ý?¨5Ý?ï8Ý?6<Ý?}?Ý?ÄBÝ?FÝ?RIÝ?˜LÝ?ßOÝ?&SÝ?mVÝ?´YÝ?û\Ý?B`Ý?ˆcÝ?ÏfÝ?jÝ?]mÝ?¤pÝ?ësÝ?2wÝ?xzÝ?¿}Ý?�Ý?M„Ý?”‡Ý?ÛŠÝ?"ŽÝ?h‘Ý?¯”Ý?ö—Ý?=›Ý?„žÝ?Ë¡Ý?¥Ý?X¨Ý?Ÿ«Ý?æ®Ý?-²Ý?tµÝ?»¸Ý?¼Ý?H¿Ý?�ÂÝ?ÖÅÝ?ÉÝ?dÌÝ?«ÏÝ?òÒÝ?9ÖÝ?ÙÝ?ÆÜÝ?àÝ?TãÝ?›æÝ?âéÝ?)íÝ?oðÝ?¶óÝ?ýöÝ?DúÝ?‹ýÝ?Ò Þ?Þ?_Þ?¦
Þ?íÞ?4Þ?{Þ?ÂÞ?	Þ?OÞ?–!Þ?Ý$Þ?$(Þ?k+Þ?².Þ?ù1Þ??5Þ?†8Þ?Í;Þ??Þ?[BÞ?¢EÞ?éHÞ?0LÞ?vOÞ?½RÞ?VÞ?KYÞ?’\Þ?Ù_Þ? cÞ?ffÞ?­iÞ?ôlÞ?;pÞ?‚sÞ?ÉvÞ?zÞ?V}Þ?�€Þ?äƒÞ?+‡Þ?rŠÞ?¹�Þ? ‘Þ?F”Þ?�—Þ?ÔšÞ?žÞ?b¡Þ?©¤Þ?ð§Þ?6«Þ?}®Þ?Ä±Þ?µÞ?R¸Þ?™»Þ?à¾Þ?'ÂÞ?mÅÞ?´ÈÞ?ûËÞ?BÏÞ?‰ÒÞ?ÐÕÞ?ÙÞ?]ÜÞ?¤ßÞ?ëâÞ?2æÞ?yéÞ?ÀìÞ?ðÞ?MóÞ?”öÞ?ÛùÞ?"ýÞ?i ß?°ß?÷ß?=
ß?„ß?Ëß?ß?Yß? ß?çß?-!ß?t$ß?»'ß?+ß?I.ß?�1ß?×4ß?8ß?d;ß?«>ß?òAß?9Eß?€Hß?ÇKß?Oß?TRß?›Uß?âXß?)\ß?p_ß?·bß?þeß?Diß?‹lß?Òoß?sß?`vß?§yß?î|ß?4€ß?{ƒß?Â†ß?	Šß?P�ß?—�ß?Þ“ß?$—ß?kšß?²�ß?ù ß?@¤ß?‡§ß?Îªß?®ß?[±ß?¢´ß?é·ß?0»ß?w¾ß?¾Áß?Åß?KÈß?’Ëß?ÙÎß? Òß?gÕß?®Øß?õÛß?;ßß?‚âß?Éåß?éß?Wìß?žïß?åòß?+öß?rùß?¹üß?  à?Gà?Žà?Õ	à?à?bà?©à?ðà?7à?~à?Å à?$à?R'à?™*à?à-à?'1à?n4à?µ7à?û:à?B>à?‰Aà?ÐDà?Hà?^Kà?¥Nà?ìQà?2Uà?yXà?À[à?_à?Nbà?•eà?Ühà?"là?ioà?°rà?÷uà?>yà?…|à?Ìà?ƒà?Y†à? ‰à?çŒà?.�à?u“à?¼–à?šà?I�à?� à?×£à?§à?eªà?¬­à?ò°à?9´à?€·à?Çºà?¾à?UÁà?œÄà?ãÇà?)Ëà?pÎà?·Ñà?þÔà?EØà?ŒÛà?ÓÞà?âà?`åà?§èà?îëà?5ïà?|òà?Ãõà?	ùà?Püà?—ÿà?Þá?%á?l	á?³á?ùá?@á?‡á?Îá?á?\ á?£#á?é&á?0*á?w-á?¾0á?4á?L7á?“:á?Ù=á? Aá?gDá?®Gá?õJá?<Ná?ƒQá?ÊTá?Xá?W[á?ž^á?åaá?,eá?shá?ºká? oá?Grá?Žuá?Õxá?|á?cá?ª‚á?ð…á?7‰á?~Œá?Å�á?“á?S–á?š™á?àœá?' á?n£á?µ¦á?ü©á?C­á?Š°á?Ð³á?·á?^ºá?¥½á?ìÀá?3Äá?zÇá?ÁÊá?Îá?NÑá?•Ôá?Ü×á?#Ûá?jÞá?±áá?÷äá?>èá?…ëá?Ìîá?òá?Zõá?¡øá?çûá?.ÿá?uâ?¼â?	â?Jâ?‘â?×â?â?eâ?¬â?óâ?:#â?�&â?Ç)â?-â?U0â?œ3â?ã6â?*:â?q=â?¸@â?þCâ?EGâ?ŒJâ?ÓMâ?Qâ?aTâ?¨Wâ?îZâ?5^â?|aâ?Ãdâ?
hâ?Qkâ?˜nâ?Þqâ?%uâ?lxâ?³{â?ú~â?A‚â?ˆ…â?Îˆâ?Œâ?\�â?£’â?ê•â?1™â?xœâ?¾Ÿâ?£â?L¦â?“©â?Ú¬â?!°â?h³â?®¶â?õ¹â?<½â?ƒÀâ?ÊÃâ?Çâ?XÊâ?ŸÍâ?åÐâ?,Ôâ?s×â?ºÚâ?Þâ?Háâ?�äâ?Õçâ?ëâ?cîâ?ªñâ?ñôâ?8øâ?ûâ?Åþâ?ã?Sã?šã?áã?(ã?oã?µã?üã?Cã?Šã?Ñ"ã?&ã?_)ã?¥,ã?ì/ã?33ã?z6ã?Á9ã?=ã?O@ã?–Cã?ÜFã?#Jã?jMã?±Pã?øSã??Wã?†Zã?Ì]ã?aã?Zdã?¡gã?èjã?/nã?vqã?¼tã?xã?J{ã?‘~ã?Ø�ã?…ã?fˆã?¬‹ã?óŽã?:’ã?�•ã?È˜ã?œã?VŸã?œ¢ã?ã¥ã?*©ã?q¬ã?¸¯ã?ÿ²ã?F¶ã?Œ¹ã?Ó¼ã?Àã?aÃã?¨Æã?ïÉã?6Íã?}Ðã?ÃÓã?
×ã?QÚã?˜Ýã?ßàã?&äã?mçã?³êã?úíã?Añã?ˆôã?Ï÷ã?ûã?]þã?£ä?êä?1ä?xä?¿ä?ä?Mä?“ä?Úä?!ä?h"ä?¯%ä?ö(ä?=,ä?ƒ/ä?Ê2ä?6ä?X9ä?Ÿ<ä?æ?ä?-Cä?tFä?ºIä?Mä?HPä?�Sä?ÖVä?Zä?d]ä?ª`ä?ñcä?8gä?jä?Æmä?qä?Ttä?šwä?ázä?(~ä?o�ä?¶„ä?ý‡ä?D‹ä?ŠŽä?Ñ‘ä?•ä?_˜ä?¦›ä?ížä?4¢ä?z¥ä?Á¨ä?¬ä?O¯ä?–²ä?Ýµä?$¹ä?j¼ä?±¿ä?øÂä??Æä?†Éä?ÍÌä?Ðä?[Óä?¡Öä?èÙä?/Ýä?vàä?½ãä?çä?Kêä?‘íä?Øðä?ôä?f÷ä?­úä?ôýä?;å?�å?Èå?å?Vå?�å?äå?+å?qå?¸å?ÿ!å?F%å?�(å?Ô+å?/å?a2å?¨5å?ï8å?6<å?}?å?ÄBå?Få?RIå?˜Lå?ßOå?&Så?mVå?´Yå?û\å?B`å?ˆcå?Ïfå?jå?]må?¤på?ëså?2wå?xzå?¿}å?�å?M„å?”‡å?ÛŠå?"Žå?h‘å?¯”å?ö—å?=›å?„žå?Ë¡å?¥å?X¨å?Ÿ«å?æ®å?-²å?tµå?»¸å?¼å?H¿å?�Âå?ÖÅå?Éå?dÌå?«Ïå?òÒå?9Öå?Ùå?ÆÜå?àå?Tãå?›æå?âéå?)íå?oðå?¶óå?ýöå?Dúå?‹ýå?Ò æ?æ?_æ?¦
æ?íæ?4æ?{æ?Âæ?	æ?Oæ?–!æ?Ý$æ?$(æ?k+æ?².æ?ù1æ??5æ?†8æ?Í;æ??æ?[Bæ?¢Eæ?éHæ?0Læ?vOæ?½Ræ?Væ?KYæ?’\æ?Ù_æ? cæ?ffæ?­iæ?ôlæ?;pæ?‚sæ?Évæ?zæ?V}æ?�€æ?äƒæ?+‡æ?rŠæ?¹�æ? ‘æ?F”æ?�—æ?Ôšæ?žæ?b¡æ?©¤æ?ð§æ?6«æ?}®æ?Ä±æ?µæ?R¸æ?™»æ?à¾æ?'Âæ?mÅæ?´Èæ?ûËæ?BÏæ?‰Òæ?ÐÕæ?Ùæ?]Üæ?¤ßæ?ëâæ?2ææ?yéæ?Àìæ?ðæ?Móæ?”öæ?Ûùæ?"ýæ?i ç?°ç?÷ç?=
ç?„ç?Ëç?ç?Yç? ç?çç?-!ç?t$ç?»'ç?+ç?I.ç?�1ç?×4ç?8ç?d;ç?«>ç?òAç?9Eç?€Hç?ÇKç?Oç?TRç?›Uç?âXç?)\ç?p_ç?·bç?þeç?Diç?‹lç?Òoç?sç?`vç?§yç?î|ç?4€ç?{ƒç?Â†ç?	Šç?P�ç?—�ç?Þ“ç?$—ç?kšç?²�ç?ù ç?@¤ç?‡§ç?Îªç?®ç?[±ç?¢´ç?é·ç?0»ç?w¾ç?¾Áç?Åç?KÈç?’Ëç?ÙÎç? Òç?gÕç?®Øç?õÛç?;ßç?‚âç?Éåç?éç?Wìç?žïç?åòç?+öç?rùç?¹üç?  è?Gè?Žè?Õ	è?è?bè?©è?ðè?7è?~è?Å è?$è?R'è?™*è?à-è?'1è?n4è?µ7è?û:è?B>è?‰Aè?ÐDè?Hè?^Kè?¥Nè?ìQè?2Uè?yXè?À[è?_è?Nbè?•eè?Ühè?"lè?ioè?°rè?÷uè?>yè?…|è?Ìè?ƒè?Y†è? ‰è?çŒè?.�è?u“è?¼–è?šè?I�è?� è?×£è?§è?eªè?¬­è?ò°è?9´è?€·è?Çºè?¾è?UÁè?œÄè?ãÇè?)Ëè?pÎè?·Ñè?þÔè?EØè?ŒÛè?ÓÞè?âè?`åè?§èè?îëè?5ïè?|òè?Ãõè?	ùè?Püè?—ÿè?Þé?%é?l	é?³é?ùé?@é?‡é?Îé?é?\ é?£#é?é&é?0*é?w-é?¾0é?4é?L7é?“:é?Ù=é? Aé?gDé?®Gé?õJé?<Né?ƒQé?ÊTé?Xé?W[é?ž^é?åaé?,eé?shé?ºké? oé?Gré?Žué?Õxé?|é?cé?ª‚é?ð…é?7‰é?~Œé?Å�é?“é?S–é?š™é?àœé?' é?n£é?µ¦é?ü©é?C­é?Š°é?Ð³é?·é?^ºé?¥½é?ìÀé?3Äé?zÇé?ÁÊé?Îé?NÑé?•Ôé?Ü×é?#Ûé?jÞé?±áé?÷äé?>èé?…ëé?Ìîé?òé?Zõé?¡øé?çûé?.ÿé?uê?¼ê?	ê?Jê?‘ê?×ê?ê?eê?¬ê?óê?:#ê?�&ê?Ç)ê?-ê?U0ê?œ3ê?ã6ê?*:ê?q=ê?¸@ê?þCê?EGê?ŒJê?ÓMê?Qê?aTê?¨Wê?îZê?5^ê?|aê?Ãdê?
hê?Qkê?˜nê?Þqê?%uê?lxê?³{ê?ú~ê?A‚ê?ˆ…ê?Îˆê?Œê?\�ê?£’ê?ê•ê?1™ê?xœê?¾Ÿê?£ê?L¦ê?“©ê?Ú¬ê?!°ê?h³ê?®¶ê?õ¹ê?<½ê?ƒÀê?ÊÃê?Çê?XÊê?ŸÍê?åÐê?,Ôê?s×ê?ºÚê?Þê?Háê?�äê?Õçê?ëê?cîê?ªñê?ñôê?8øê?ûê?Åþê?ë?Së?šë?áë?(ë?oë?µë?üë?Cë?Šë?Ñ"ë?&ë?_)ë?¥,ë?ì/ë?33ë?z6ë?Á9ë?=ë?O@ë?–Cë?ÜFë?#Jë?jMë?±Pë?øSë??Wë?†Zë?Ì]ë?aë?Zdë?¡gë?èjë?/në?vqë?¼të?xë?J{ë?‘~ë?Ø�ë?…ë?fˆë?¬‹ë?óŽë?:’ë?�•ë?È˜ë?œë?VŸë?œ¢ë?ã¥ë?*©ë?q¬ë?¸¯ë?ÿ²ë?F¶ë?Œ¹ë?Ó¼ë?Àë?aÃë?¨Æë?ïÉë?6Íë?}Ðë?ÃÓë?
×ë?QÚë?˜Ýë?ßàë?&äë?mçë?³êë?úíë?Añë?ˆôë?Ï÷ë?ûë?]þë?£ì?êì?1ì?xì?¿ì?ì?Mì?“ì?Úì?!ì?h"ì?¯%ì?ö(ì?=,ì?ƒ/ì?Ê2ì?6ì?X9ì?Ÿ<ì?æ?ì?-Cì?tFì?ºIì?Mì?HPì?�Sì?ÖVì?Zì?d]ì?ª`ì?ñcì?8gì?jì?Æmì?qì?Ttì?šwì?ázì?(~ì?o�ì?¶„ì?ý‡ì?D‹ì?ŠŽì?Ñ‘ì?•ì?_˜ì?¦›ì?ížì?4¢ì?z¥ì?Á¨ì?¬ì?O¯ì?–²ì?Ýµì?$¹ì?j¼ì?±¿ì?øÂì??Æì?†Éì?ÍÌì?Ðì?[Óì?¡Öì?èÙì?/Ýì?vàì?½ãì?çì?Kêì?‘íì?Øðì?ôì?f÷ì?­úì?ôýì?;í?�í?Èí?í?Ví?�í?äí?+í?qí?¸í?ÿ!í?F%í?�(í?Ô+í?/í?a2í?¨5í?ï8í?6<í?}?í?ÄBí?Fí?RIí?˜Lí?ßOí?&Sí?mVí?´Yí?û\í?B`í?ˆcí?Ïfí?jí?]mí?¤pí?ësí?2wí?xzí?¿}í?�í?M„í?”‡í?ÛŠí?"Ží?h‘í?¯”í?ö—í?=›í?„ží?Ë¡í?¥í?X¨í?Ÿ«í?æ®í?-²í?tµí?»¸í?¼í?H¿í?�Âí?ÖÅí?Éí?dÌí?«Ïí?òÒí?9Öí?Ùí?ÆÜí?àí?Tãí?›æí?âéí?)íí?oðí?¶óí?ýöí?Dúí?‹ýí?Ò î?î?_î?¦
î?íî?4î?{î?Âî?	î?Oî?–!î?Ý$î?$(î?k+î?².î?ù1î??5î?†8î?Í;î??î?[Bî?¢Eî?éHî?0Lî?vOî?½Rî?Vî?KYî?’\î?Ù_î? cî?ffî?­iî?ôlî?;pî?‚sî?Évî?zî?V}î?�€î?äƒî?+‡î?rŠî?¹�î? ‘î?F”î?�—î?Ôšî?žî?b¡î?©¤î?ð§î?6«î?}®î?Ä±î?µî?R¸î?™»î?à¾î?'Âî?mÅî?´Èî?ûËî?BÏî?‰Òî?ÐÕî?Ùî?]Üî?¤ßî?ëâî?2æî?yéî?Àìî?ðî?Móî?”öî?Ûùî?"ýî?i ï?°ï?÷ï?=
ï?„ï?Ëï?ï?Yï? ï?çï?-!ï?t$ï?»'ï?+ï?I.ï?�1ï?×4ï?8ï?d;ï?«>ï?òAï?9Eï?€Hï?ÇKï?Oï?TRï?›Uï?âXï?)\ï?p_ï?·bï?þeï?Diï?‹lï?Òoï?sï?`vï?§yï?î|ï?4€ï?{ƒï?Â†ï?	Šï?P�ï?—�ï?Þ“ï?$—ï?kšï?²�ï?ù ï?@¤ï?‡§ï?Îªï?®ï?[±ï?¢´ï?é·ï?0»ï?w¾ï?¾Áï?Åï?KÈï?’Ëï?ÙÎï? Òï?gÕï?®Øï?õÛï?;ßï?‚âï?Éåï?éï?Wìï?žïï?åòï?+öï?rùï?¹üï?  ð?Gð?Žð?Õ	ð?ð?bð?©ð?ðð?7ð?~ð?Å ð?$ð?R'ð?™*ð?à-ð?'1ð?n4ð?µ7ð?û:ð?B>ð?‰Að?ÐDð?Hð?^Kð?¥Nð?ìQð?2Uð?yXð?À[ð?_ð?Nbð?•eð?Ühð?"lð?ioð?°rð?÷uð?>yð?…|ð?Ìð?ƒð?Y†ð? ‰ð?çŒð?.�ð?u“ð?¼–ð?šð?I�ð?� ð?×£ð?§ð?eªð?¬­ð?ò°ð?9´ð?€·ð?Çºð?¾ð?UÁð?œÄð?ãÇð?)Ëð?pÎð?·Ñð?þÔð?EØð?ŒÛð?ÓÞð?âð?`åð?§èð?îëð?5ïð?|òð?Ãõð?	ùð?Püð?—ÿð?Þñ?%ñ?l	ñ?³ñ?ùñ?@ñ?‡ñ?Îñ?ñ?\ ñ?£#ñ?é&ñ?0*ñ?w-ñ?¾0ñ?4ñ?L7ñ?“:ñ?Ù=ñ? Añ?gDñ?®Gñ?õJñ?<Nñ?ƒQñ?ÊTñ?Xñ?W[ñ?ž^ñ?åañ?,eñ?shñ?ºkñ? oñ?Grñ?Žuñ?Õxñ?|ñ?cñ?ª‚ñ?ð…ñ?7‰ñ?~Œñ?Å�ñ?“ñ?S–ñ?š™ñ?àœñ?' ñ?n£ñ?µ¦ñ?ü©ñ?C­ñ?Š°ñ?Ð³ñ?·ñ?^ºñ?¥½ñ?ìÀñ?3Äñ?zÇñ?ÁÊñ?Îñ?NÑñ?•Ôñ?Ü×ñ?#Ûñ?jÞñ?±áñ?÷äñ?>èñ?…ëñ?Ìîñ?òñ?Zõñ?¡øñ?çûñ?.ÿñ?uò?¼ò?	ò?Jò?‘ò?×ò?ò?eò?¬ò?óò?:#ò?�&ò?Ç)ò?-ò?U0ò?œ3ò?ã6ò?*:ò?q=ò?¸@ò?þCò?EGò?ŒJò?ÓMò?Qò?aTò?¨Wò?îZò?5^ò?|aò?Ãdò?
hò?Qkò?˜nò?Þqò?%uò?lxò?³{ò?ú~ò?A‚ò?ˆ…ò?Îˆò?Œò?\�ò?£’ò?ê•ò?1™ò?xœò?¾Ÿò?£ò?L¦ò?“©ò?Ú¬ò?!°ò?h³ò?®¶ò?õ¹ò?<½ò?ƒÀò?ÊÃò?Çò?XÊò?ŸÍò?åÐò?,Ôò?s×ò?ºÚò?Þò?Háò?�äò?Õçò?ëò?cîò?ªñò?ñôò?8øò?ûò?Åþò?ó?Só?šó?áó?(ó?oó?µó?üó?Có?Šó?Ñ"ó?&ó?_)ó?¥,ó?ì/ó?33ó?z6ó?Á9ó?=ó?O@ó?–Có?ÜFó?#Jó?jMó?±Pó?øSó??Wó?†Zó?Ì]ó?aó?Zdó?¡gó?èjó?/nó?vqó?¼tó?xó?J{ó?‘~ó?Ø�ó?…ó?fˆó?¬‹ó?óŽó?:’ó?�•ó?È˜ó?œó?VŸó?œ¢ó?ã¥ó?*©ó?q¬ó?¸¯ó?ÿ²ó?F¶ó?Œ¹ó?Ó¼ó?Àó?aÃó?¨Æó?ïÉó?6Íó?}Ðó?ÃÓó?
×ó?QÚó?˜Ýó?ßàó?&äó?mçó?³êó?úíó?Añó?ˆôó?Ï÷ó?ûó?]þó?£ô?êô?1ô?xô?¿ô?ô?Mô?“ô?Úô?!ô?h"ô?¯%ô?ö(ô?=,ô?ƒ/ô?Ê2ô?6ô?X9ô?Ÿ<ô?æ?ô?-Cô?tFô?ºIô?Mô?HPô?�Sô?ÖVô?Zô?d]ô?ª`ô?ñcô?8gô?jô?Æmô?qô?Ttô?šwô?ázô?(~ô?o�ô?¶„ô?ý‡ô?D‹ô?ŠŽô?Ñ‘ô?•ô?_˜ô?¦›ô?ížô?4¢ô?z¥ô?Á¨ô?¬ô?O¯ô?–²ô?Ýµô?$¹ô?j¼ô?±¿ô?øÂô??Æô?†Éô?ÍÌô?Ðô?[Óô?¡Öô?èÙô?/Ýô?vàô?½ãô?çô?Kêô?‘íô?Øðô?ôô?f÷ô?­úô?ôýô?;õ?�õ?Èõ?õ?Võ?�õ?äõ?+õ?qõ?¸õ?ÿ!õ?F%õ?�(õ?Ô+õ?/õ?a2õ?¨5õ?ï8õ?6<õ?}?õ?ÄBõ?Fõ?RIõ?˜Lõ?ßOõ?&Sõ?mVõ?´Yõ?û\õ?B`õ?ˆcõ?Ïfõ?jõ?]mõ?¤põ?ësõ?2wõ?xzõ?¿}õ?�õ?M„õ?”‡õ?ÛŠõ?"Žõ?h‘õ?¯”õ?ö—õ?=›õ?„žõ?Ë¡õ?¥õ?X¨õ?Ÿ«õ?æ®õ?-²õ?tµõ?»¸õ?¼õ?H¿õ?�Âõ?ÖÅõ?Éõ?dÌõ?«Ïõ?òÒõ?9Öõ?Ùõ?ÆÜõ?àõ?Tãõ?›æõ?âéõ?)íõ?oðõ?¶óõ?ýöõ?Dúõ?‹ýõ?Ò ö?ö?_ö?¦
ö?íö?4ö?{ö?Âö?	ö?Oö?–!ö?Ý$ö?$(ö?k+ö?².ö?ù1ö??5ö?†8ö?Í;ö??ö?[Bö?¢Eö?éHö?0Lö?vOö?½Rö?Vö?KYö?’\ö?Ù_ö? cö?ffö?­iö?ôlö?;pö?‚sö?Évö?zö?V}ö?�€ö?äƒö?+‡ö?rŠö?¹�ö? ‘ö?F”ö?�—ö?Ôšö?žö?b¡ö?©¤ö?ð§ö?6«ö?}®ö?Ä±ö?µö?R¸ö?™»ö?à¾ö?'Âö?mÅö?´Èö?ûËö?BÏö?‰Òö?ÐÕö?Ùö?]Üö?¤ßö?ëâö?2æö?yéö?Àìö?ðö?Móö?”öö?Ûùö?"ýö?i ÷?°÷?÷÷?=
÷?„÷?Ë÷?÷?Y÷? ÷?ç÷?-!÷?t$÷?»'÷?+÷?I.÷?�1÷?×4÷?8÷?d;÷?«>÷?òA÷?9E÷?€H÷?ÇK÷?O÷?TR÷?›U÷?âX÷?)\÷?p_÷?·b÷?þe÷?Di÷?‹l÷?Òo÷?s÷?`v÷?§y÷?î|÷?4€÷?{ƒ÷?Â†÷?	Š÷?P�÷?—�÷?Þ“÷?$—÷?kš÷?²�÷?ù ÷?@¤÷?‡§÷?Îª÷?®÷?[±÷?¢´÷?é·÷?0»÷?w¾÷?¾Á÷?Å÷?KÈ÷?’Ë÷?ÙÎ÷? Ò÷?gÕ÷?®Ø÷?õÛ÷?;ß÷?‚â÷?Éå÷?é÷?Wì÷?žï÷?åò÷?+ö÷?rù÷?¹ü÷?  ø?Gø?Žø?Õ	ø?ø?bø?©ø?ðø?7ø?~ø?Å ø?$ø?R'ø?™*ø?à-ø?'1ø?n4ø?µ7ø?û:ø?B>ø?‰Aø?ÐDø?Hø?^Kø?¥Nø?ìQø?2Uø?yXø?À[ø?_ø?Nbø?•eø?Ühø?"lø?ioø?°rø?÷uø?>yø?…|ø?Ìø?ƒø?Y†ø? ‰ø?çŒø?.�ø?u“ø?¼–ø?šø?I�ø?� ø?×£ø?§ø?eªø?¬­ø?ò°ø?9´ø?€·ø?Çºø?¾ø?UÁø?œÄø?ãÇø?)Ëø?pÎø?·Ñø?þÔø?EØø?ŒÛø?ÓÞø?âø?`åø?§èø?îëø?5ïø?|òø?Ãõø?	ùø?Püø?—ÿø?Þù?%ù?l	ù?³ù?ùù?@ù?‡ù?Îù?ù?\ ù?£#ù?é&ù?0*ù?w-ù?¾0ù?4ù?L7ù?“:ù?Ù=ù? Aù?gDù?®Gù?õJù?<Nù?ƒQù?ÊTù?Xù?W[ù?ž^ù?åaù?,eù?shù?ºkù? où?Grù?Žuù?Õxù?|ù?cù?ª‚ù?ð…ù?7‰ù?~Œù?Å�ù?“ù?S–ù?š™ù?àœù?' ù?n£ù?µ¦ù?ü©ù?C­ù?Š°ù?Ð³ù?·ù?^ºù?¥½ù?ìÀù?3Äù?zÇù?ÁÊù?Îù?NÑù?•Ôù?Ü×ù?#Ûù?jÞù?±áù?÷äù?>èù?…ëù?Ìîù?òù?Zõù?¡øù?çûù?.ÿù?uú?¼ú?	ú?Jú?‘ú?×ú?ú?eú?¬ú?óú?:#ú?�&ú?Ç)ú?-ú?U0ú?œ3ú?ã6ú?*:ú?q=ú?¸@ú?þCú?EGú?ŒJú?ÓMú?Qú?aTú?¨Wú?îZú?5^ú?|aú?Ãdú?
hú?Qkú?˜nú?Þqú?%uú?lxú?³{ú?ú~ú?A‚ú?ˆ…ú?Îˆú?Œú?\�ú?£’ú?ê•ú?1™ú?xœú?¾Ÿú?£ú?L¦ú?“©ú?Ú¬ú?!°ú?h³ú?®¶ú?õ¹ú?<½ú?ƒÀú?ÊÃú?Çú?XÊú?ŸÍú?åÐú?,Ôú?s×ú?ºÚú?Þú?Háú?�äú?Õçú?ëú?cîú?ªñú?ñôú?8øú?ûú?Åþú?û?Sû?šû?áû?(û?oû?µû?üû?Cû?Šû?Ñ"û?&û?_)û?¥,û?ì/û?33û?z6û?Á9û?=û?O@û?–Cû?ÜFû?#Jû?jMû?±Pû?øSû??Wû?†Zû?Ì]û?aû?Zdû?¡gû?èjû?/nû?vqû?¼tû?xû?J{û?‘~û?Ø�û?…û?fˆû?¬‹û?óŽû?:’û?�•û?È˜û?œû?VŸû?œ¢û?ã¥û?*©û?q¬û?¸¯û?ÿ²û?F¶û?Œ¹û?Ó¼û?Àû?aÃû?¨Æû?ïÉû?6Íû?}Ðû?ÃÓû?
×û?QÚû?˜Ýû?ßàû?&äû?mçû?³êû?úíû?Añû?ˆôû?Ï÷û?ûû?]þû?£ü?êü?1ü?xü?¿ü?ü?Mü?“ü?Úü?!ü?h"ü?¯%ü?ö(ü?=,ü?ƒ/ü?Ê2ü?6ü?X9ü?Ÿ<ü?æ?ü?-Cü?tFü?ºIü?Mü?HPü?�Sü?ÖVü?Zü?d]ü?ª`ü?ñcü?8gü?jü?Æmü?qü?Ttü?šwü?ázü?(~ü?o�ü?¶„ü?ý‡ü?D‹ü?ŠŽü?Ñ‘ü?•ü?_˜ü?¦›ü?ížü?4¢ü?z¥ü?Á¨ü?¬ü?O¯ü?–²ü?Ýµü?$¹ü?j¼ü?±¿ü?øÂü??Æü?†Éü?ÍÌü?Ðü?[Óü?¡Öü?èÙü?/Ýü?vàü?½ãü?çü?Kêü?‘íü?Øðü?ôü?f÷ü?­úü?ôýü?;ý?�ý?Èý?ý?Vý?�ý?äý?+ý?qý?¸ý?ÿ!ý?F%ý?�(ý?Ô+ý?/ý?a2ý?¨5ý?ï8ý?6<ý?}?ý?ÄBý?Fý?RIý?˜Lý?ßOý?&Sý?mVý?´Yý?û\ý?B`ý?ˆcý?Ïfý?jý?]mý?¤pý?ësý?2wý?xzý?¿}ý?�ý?M„ý?”‡ý?ÛŠý?"Žý?h‘ý?¯”ý?ö—ý?=›ý?„žý?Ë¡ý?¥ý?X¨ý?Ÿ«ý?æ®ý?-²ý?tµý?»¸ý?¼ý?H¿ý?�Âý?ÖÅý?Éý?dÌý?«Ïý?òÒý?9Öý?Ùý?ÆÜý?àý?Tãý?›æý?âéý?)íý?oðý?¶óý?ýöý?Dúý?‹ýý?Ò þ?þ?_þ?¦
þ?íþ?4þ?{þ?Âþ?	þ?Oþ?–!þ?Ý$þ?$(þ?k+þ?².þ?ù1þ??5þ?†8þ?Í;þ??þ?[Bþ?¢Eþ?éHþ?0Lþ?vOþ?½Rþ?Vþ?KYþ?’\þ?Ù_þ? cþ?ffþ?­iþ?ôlþ?;pþ?‚sþ?Évþ?zþ?V}þ?�€þ?äƒþ?+‡þ?rŠþ?¹�þ? ‘þ?F”þ?�—þ?Ôšþ?žþ?b¡þ?©¤þ?ð§þ?6«þ?}®þ?Ä±þ?µþ?R¸þ?™»þ?à¾þ?'Âþ?mÅþ?´Èþ?ûËþ?BÏþ?‰Òþ?ÐÕþ?Ùþ?]Üþ?¤ßþ?ëâþ?2æþ?yéþ?Àìþ?ðþ?Móþ?”öþ?Ûùþ?"ýþ?i ÿ?°ÿ?÷ÿ?=
ÿ?„ÿ?Ëÿ?ÿ?Yÿ? ÿ?çÿ?-!ÿ?t$ÿ?»'ÿ?+ÿ?I.ÿ?�1ÿ?×4ÿ?8ÿ?d;ÿ?«>ÿ?òAÿ?9Eÿ?€Hÿ?ÇKÿ?Oÿ?TRÿ?›Uÿ?âXÿ?)\ÿ?p_ÿ?·bÿ?þeÿ?Diÿ?‹lÿ?Òoÿ?sÿ?`vÿ?§yÿ?î|ÿ?4€ÿ?{ƒÿ?Â†ÿ?	Šÿ?P�ÿ?—�ÿ?Þ“ÿ?$—ÿ?kšÿ?²�ÿ?ù ÿ?@¤ÿ?‡§ÿ?Îªÿ?®ÿ?[±ÿ?¢´ÿ?é·ÿ?0»ÿ?w¾ÿ?¾Áÿ?Åÿ?KÈÿ?’Ëÿ?ÙÎÿ? Òÿ?gÕÿ?®Øÿ?õÛÿ?;ßÿ?‚âÿ?Éåÿ?éÿ?Wìÿ?žïÿ?åòÿ?+öÿ?rùÿ?¹üÿ?   @†¤mode¥lines¤line�¥color¤gray¡yØ  €?  €?        ¤type§scatter¤name°expected updates¡xØ      €?  €?   @Ù53ee53c46-38f7-11f0-16c9-2b093684d981/a52c35ad9932b961„¦layout‚¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data‘ƒ¡yÈ]À                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?333?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?fff?  €?  €?ÍÌŒ?ÍÌŒ?š™™?š™™?š™™?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?33³?33³?33³?33³?  À?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?š™Ù?š™Ù?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?33ó?33ó?33ó?33ó?   @   @   @   @ff@ff@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@33@33@33@33@33@33@33@33@33@š™@š™@š™@š™@š™@š™@š™@š™@š™@   @   @ff&@ff&@ff&@ff&@ff&@ff&@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@333@333@333@š™9@š™9@  @@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ffF@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@š™Y@  `@  `@  `@fff@fff@fff@fff@fff@fff@fff@fff@fff@fff@ÍÌl@ÍÌl@ÍÌl@ÍÌl@33s@33s@š™y@š™y@  €@  €@33ƒ@33ƒ@33ƒ@33ƒ@33ƒ@33ƒ@ff†@ff†@ff†@ff†@š™‰@š™‰@ÍÌŒ@ÍÌŒ@  �@  �@33“@33“@ff–@ff–@ff–@ff–@š™™@š™™@š™™@š™™@š™™@š™™@ÍÌœ@33£@33£@33£@š™©@š™©@ÍÌ¬@ÍÌ¬@  °@  °@  °@  °@33³@33³@33³@33³@33³@ff¶@ff¶@ff¶@ÍÌ¼@ÍÌ¼@ÍÌ¼@ÍÌ¼@33Ã@33Ã@33Ã@33Ã@33Ã@33Ã@ffÆ@ffÆ@ffÆ@š™É@š™É@š™É@š™É@š™É@š™É@š™É@33Ó@33Ó@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@ffÖ@š™Ù@š™Ù@š™Ù@ÍÌÜ@ÍÌÜ@  à@  à@  à@ffæ@š™é@š™é@š™é@š™é@š™é@š™é@š™é@ÍÌì@ÍÌì@ÍÌì@ÍÌì@ÍÌì@ÍÌì@  ð@  ð@33ó@š™ù@ÍÌü@ÍÌü@ÍÌü@ÍÌü@ÍÌü@ÍÌü@   A   A   A   A   Aš™Aš™Aš™A33A33AÍÌA  A  A  A  A  Aš™	A33A33A33A33AÍÌAÍÌAÍÌAÍÌAÍÌAÍÌAffAš™A33A33A33A33A33AÍÌAffAffA  A  A  A  A  A  Aš™Aš™Aš™AÍÌAffAffAffA   A   A   A33#AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$AÍÌ$Aff&A  (A  (A33+AÍÌ,AÍÌ,AÍÌ,A  0A  0A  0Aš™1Aš™1Aš™1Aš™1Aš™1Aš™1Aš™1A333A333A333AÍÌ4A  8Aš™9AÍÌ<AÍÌ<AÍÌ<AÍÌ<AÍÌ<AÍÌ<AÍÌ<Aff>Aff>Aff>Aff>Aff>Aff>Aff>Aš™AA33CAÍÌDAffFAffFAffFA  HA  HA  HAš™IAš™IAš™IA33KA33KA33KA33KAÍÌLAffNAffNAš™QAš™QAš™QA33SA33SAÍÌTAÍÌTAÍÌTAÍÌTAÍÌTAffVAffVAffVAffVA33[AÍÌ\A  `A  `A  `Aš™aAš™aA33cA33cA33cA33cA33cA33cA33cAÍÌdAÍÌdAÍÌdAfffA  hAš™iA33kAÍÌlA  pA  pAš™qAš™qAš™qAš™qAš™qAš™qAš™qAš™qAš™qA33sA33sAÍÌtA  xA  xAÍÌ|Aff~A  €A  €A  €A  €A  €A  €A  €A  €A  €A  €A  €A  €AÍÌ€Aš™�A33ƒAÍÌ„Aš™…Aš™…Aš™…Aff†A33‡A33‡A33‡A33‡A33‡A33‡A33‡A33‡A33‡A33‡A  ˆA  ˆAÍÌˆA  ŒA  ŒA  ŒAš™�Aš™�Aš™�Aš™�Aš™�Aš™�AffŽAffŽAffŽAffŽAffŽAffŽAffŽAffŽA  �A  �AÍÌ�A33“A33“A  ”A  ”A  ”A  ”A  ”AÍÌ”Aš™•Aš™•Aš™•Aš™•Aš™•Aš™•Aff–Aff–Aš™™AffšAffšAffšAffšAffšA33›A  œA  œA  œAÍÌœAÍÌœAÍÌœAÍÌœAš™�Aš™�AffžAffžA33ŸA   A   AÍÌ Aš™¡Aff¢Aff¢Aff¢Aff¢A33£A33£A33£A  ¤A  ¤AÍÌ¤AÍÌ¤Aš™¥Aš™¥Aff¦A  ¨A  ¨AÍÌ¨Aš™©Aš™©Aš™©AffªAffªAffªAffªAffªAffªAffªA33«A  ¬AÍÌ¬AÍÌ¬Aš™­A  °AÍÌ°AÍÌ°AÍÌ°Aš™±Aš™±Aš™±Aš™±Aš™±Aš™±Aš™±Aš™±Aš™±Aff²Aff²A33³A  ´Aš™µAš™µAff¶A  ¸A  ¸AÍÌ¸AÍÌ¸AÍÌ¸AÍÌ¸AÍÌ¸AÍÌ¸AÍÌ¸Aš™¹Aš™¹Aš™¹Aš™¹AffºA  ¼AÍÌ¼Aš™½Aš™½A33¿A33¿A33¿A  ÀA  ÀA  ÀA  ÀAÍÌÀAÍÌÀAÍÌÀAÍÌÀAÍÌÀAš™ÁAš™ÁAffÂA33ÃAÍÌÄAÍÌÄAffÆA33ÇA33ÇA33ÇA33ÇA33ÇA33ÇA  ÈA  ÈA  ÈAÍÌÈAÍÌÈAÍÌÈAš™ÉAffÊA33ËA33ËA  ÌAÍÌÌAÍÌÌAš™ÍAffÎAffÎA33ÏA33ÏA33ÏA  ÐA  ÐA  ÐAÍÌÐAš™ÑAffÒAffÒAffÒA33ÓA33ÓA  ÔA  ÔA  ÔA  ÔAÍÌÔAÍÌÔAÍÌÔAš™ÕA33×A33×A33×A  ØA  ØA  ØA  ØAÍÌØAÍÌØAÍÌØAffÚA33ÛA33ÛA33ÛA  ÜA  ÜA  ÜAÍÌÜAš™ÝAš™ÝA33ßA  àA  àAÍÌàAÍÌàAÍÌàAÍÌàAš™áAffâAffâA  äA  äA  äA  äAÍÌäAÍÌäAÍÌäAš™åAš™åAš™åAš™åAffæAffæAffæAffæA33çA  èA  èAš™éAffêA33ëA33ëA  ìA  ìA  ìA  ìA  ìAÍÌìAÍÌìAÍÌìAš™íAffîAffîAffîA33ïA  ðA  ðAÍÌðAÍÌðAš™ñAš™ñAš™ñAffòA  ôA  ôA  ôA  ôA  ôA  ôA  ôAÍÌôA33÷A33÷A33÷A33÷A33÷A33÷A  øA  øA  øAÍÌøAÍÌøAÍÌøAÍÌøAÍÌøAffúA  üAš™ýAš™ýAš™ýAš™ýAš™ýAš™ýA33ÿA33ÿA33ÿA33ÿA   B   B   B   Bff Bff BÍÌ Bš™B  B  BffBffBffBffBÍÌBÍÌBÍÌB33Bš™Bš™Bš™Bš™B  BffBÍÌBÍÌB33B33Bš™Bš™Bš™B  B  BffBÍÌBÍÌBÍÌB33B33Bš™BffBffBÍÌBÍÌBÍÌBÍÌB33	Bš™	Bš™	B  
Bff
Bff
Bff
Bff
Bff
Bff
Bff
B33Bš™Bš™BffBffBÍÌBÍÌBÍÌBÍÌB33Bš™Bš™B  B  B  B  B  BffBÍÌB33B33Bš™B  BffBffBffBÍÌBÍÌB33B33Bš™Bš™Bš™B  BffBÍÌBÍÌB33B33Bš™Bš™Bš™Bš™Bš™Bš™B  B  B  BffBÍÌBÍÌB33B33BffBffB33B33B33B33Bš™Bš™Bš™Bš™Bš™Bš™BffBÍÌB33B33Bš™Bš™Bš™B  BffBÍÌB33Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™BffBÍÌBÍÌBš™Bš™B  B  B  BffBÍÌBÍÌBÍÌBÍÌB33B33B33Bš™Bš™B   BÍÌ B33!Bš™!Bš™!Bš™!Bš™!Bff"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"B33#B33#B33#B33#B  $B  $Bff$BÍÌ$BÍÌ$BÍÌ$BÍÌ$Bš™%B  &B  &B  &Bff&Bff&Bff&Bff&Bff&B  (B  (B  (B  (Bff(BÍÌ(BÍÌ(BÍÌ(BÍÌ(BÍÌ(B33)Bš™)Bš™)Bš™)Bš™)Bff*Bš™+Bš™+Bš™+Bš™+B  ,Bff,Bff,Bff,Bff,Bff,B33-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-Bš™-B  .Bff.B33/B  0B  0Bff0Bff0Bff0B331Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1Bš™1B  2B  2Bff2BÍÌ2Bš™3Bš™3Bš™3Bš™3Bff4BÍÌ4B335B335B335Bš™5Bš™5Bš™5B  6B  6B  6Bff6Bff6B337Bš™7Bš™7Bš™7Bš™7B  8B  8Bff8BÍÌ8B339B339B339Bš™9Bš™9B  :B  :B33;B33;B33;B33;B33;Bš™;Bš™;B  <B  <B  <B  <B  <Bff<BÍÌ<B33=B  >Bff>Bff>BÍÌ>B33?B33?B33?B33?Bš™?Bš™?Bš™?B  @B  @Bff@BÍÌ@B33AB33AB33ABš™AB  BBÍÌBBÍÌBBÍÌBB33CB33CB33CBš™CBš™CBš™CB  DB  DBffDBffDBÍÌDB33EBš™EBš™EBš™EB  FB  FBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFBÍÌFB  HBffHBffHBffHBffHBffHB33IBš™IBš™IBš™IB  JB  JB  JB  JBffJBffJBš™KB  LB  LBffLBffLBffLBffLBÍÌLB33MB33MB33MB33MB33MB33MB  NB  NBffNB33OB33OBš™OBš™OBš™OBš™OB  PBffPBÍÌPBÍÌPBÍÌPBÍÌPBÍÌPB33QB33QB33QBffRBffRBffRBÍÌRBÍÌRBÍÌRBÍÌRBÍÌRB33SB  TBÍÌTBÍÌTBÍÌTB33UB33UB33UBš™UBš™UB  VB  VB  VBffVBffVBÍÌVBÍÌVBÍÌVBÍÌVBÍÌVBš™WBffXBffXBÍÌXB33YB33YBš™YBš™YB  ZB  ZB  ZBffZBffZBffZBÍÌZBÍÌZB33[Bš™[Bff\BÍÌ\BÍÌ\BÍÌ\BÍÌ\BÍÌ\B  ^B  ^B  ^Bff^Bff^Bff^Bff^Bff^Bff^Bff^B  `B  `B  `Bff`Bff`Bff`BÍÌ`BÍÌ`BÍÌ`Bš™aBš™aBš™aB  bBffbBffbBffbB33cB33cBš™cB  dB  dB  dBffdBffdBÍÌdBÍÌdBÍÌdB33eBš™eBfffBfffBfffBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfB33gB  hBffhBffhBÍÌhBÍÌhBÍÌhB33iBš™iB  jB  jBffjBffjBÍÌjBÍÌjBÍÌjB33kB33kBš™kBš™kB  lB  lBÍÌlB33mB33mBš™mBš™mBš™mBš™mBffnBffnBffnBffnBffnBÍÌnBÍÌnBš™oBš™oBš™oB  pBffpB33qB33qB33qBš™qBš™qBš™qBš™qBš™qBš™qB  rB  rBÍÌrB33sBš™sB  tB  tBfftBÍÌtB33uBš™uBš™uBš™uBš™uBš™uBš™uB  vB  vBffvBffvBffvBffvBffvB33wB  xBffxBÍÌxBÍÌxBš™yBš™yBš™yBš™yBš™yB  zBffzBffzBffzBffzBffzBffzBffzB33{Bff|BÍÌ|BÍÌ|BÍÌ|BÍÌ|B33}Bš™}B  ~B  ~B  ~Bff~Bff~Bff~Bff~Bff~B33Bš™B  €B  €B33€B33€Bff€Bš™€Bš™€Bš™€BÍÌ€B  �B  �B33�B33�B33�Bš™�Bš™�Bš™�B  ‚B  ‚B  ‚Bff‚Bff‚Bff‚Bff‚Bff‚Bff‚BÍÌ‚B  ƒB  ƒB  ƒB33ƒB33ƒB33ƒBÍÌƒB  „B  „B33„B33„B33„B33„B33„B33„Bff„Bš™„Bš™„B  …B  …B  …B  …B  …B33…BÍÌ…B  †B  †B  †B  †B  †B33†B33†Bff†Bš™†BÍÌ†BÍÌ†BÍÌ†BÍÌ†BÍÌ†BÍÌ†B33‡B33‡B33‡B33‡B33‡Bff‡Bš™‡B  ˆB33ˆBffˆBffˆBš™ˆBÍÌˆBÍÌˆBÍÌˆBÍÌˆB  ‰B  ‰B  ‰B33‰B33‰Bff‰Bff‰Bff‰Bff‰BÍÌ‰B  ŠB33ŠBš™ŠBš™ŠBš™ŠBÍÌŠB  ‹B  ‹B  ‹B33‹B33‹B33‹B33‹B33‹B33‹B33‹Bš™‹Bš™‹B  ŒB  ŒB33ŒB33ŒB33ŒBÍÌŒBÍÌŒBÍÌŒBÍÌŒB  �B  �B  �B  �B  �B  �B33�Bš™�BÍÌ�BÍÌ�BÍÌ�B  ŽB33ŽBffŽBš™ŽBš™ŽBš™ŽBš™ŽBš™ŽB  �B  �B  �B33�Bff�Bff�Bff�Bff�BÍÌ�BÍÌ�BÍÌ�B  �B33�Bff�Bš™�Bš™�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�BÍÌ�B  ‘B33‘B33‘Bff‘Bš™‘Bš™‘B33’B33’B33’B33’Bš™’Bš™’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’BÍÌ’B  “B  “B  “B  “B33“Bš™“BÍÌ“BÍÌ“BÍÌ“B  ”Bš™”BÍÌ”BÍÌ”BÍÌ”BÍÌ”BÍÌ”B  •B  •B  •B  •B  •B33•Bff•BÍÌ•BÍÌ•B  –B33–Bff–Bš™–Bš™–Bš™–Bš™–BÍÌ–BÍÌ–BÍÌ–BÍÌ–BÍÌ–BÍÌ–B33—Bš™—Bš™—BÍÌ—B  ˜B  ˜B33˜Bff˜Bff˜Bš™˜Bš™˜Bš™˜Bš™˜BÍÌ˜BÍÌ˜BÍÌ˜B  ™B33™B33™Bš™™BÍÌ™BÍÌ™B33šB33šB33šB33šB33šBffšBffšBš™šBš™šBš™šBš™šBÍÌšB  ›Bš™›Bš™›Bš™›BÍÌ›B  œB33œB33œB33œB33œBffœBffœBš™œBš™œBš™œBÍÌœB  �B33�B33�Bff�Bff�Bš™�Bš™�Bš™�BÍÌ�B  žB33žBffžBffžBffžBffžBffžBš™žBÍÌžB33ŸBffŸBffŸBš™ŸBš™ŸBš™ŸBÍÌŸB   B   B33 Bff Bff Bff Bff Bff Bff B  ¡B  ¡B  ¡B  ¡B  ¡Bff¡Bff¡Bš™¡BÍÌ¡BÍÌ¡B  ¢B33¢Bff¢Bff¢Bff¢Bff¢BÍÌ¢BÍÌ¢B  £B  £B  £B33£B33£B33£Bš™£Bš™£Bš™£BÍÌ£BÍÌ£B  ¤B33¤Bff¤Bff¤Bš™¤B  ¥B  ¥B  ¥B33¥B33¥B33¥Bff¥Bff¥Bš™¥Bš™¥Bš™¥Bš™¥B  ¦Bff¦Bff¦Bš™¦BÍÌ¦BÍÌ¦B  §B33§B33§B33§B33§B33§Bš™§Bš™§Bš™§Bš™§BÍÌ§B  ¨B33¨B33¨B33¨B33¨B33¨Bff¨BÍÌ¨B  ©B33©B33©Bff©Bff©Bff©Bš™©Bš™©Bš™©BÍÌ©BÍÌ©BÍÌ©B33ªB33ªB33ªB33ªBffªBÍÌªB  «B  «B  «Bff«Bš™«Bš™«Bš™«Bš™«BÍÌ«BÍÌ«B  ¬B  ¬B33¬B33¬Bff¬Bš™¬Bš™¬BÍÌ¬B  ­B33­B33­Bff­Bš™­Bš™­BÍÌ­BÍÌ­BÍÌ­BÍÌ­BÍÌ­B  ®B  ®Bff®Bff®Bš™®Bš™®BÍÌ®B  ¯Bff¯Bš™¯Bš™¯Bš™¯Bš™¯BÍÌ¯BÍÌ¯BÍÌ¯B  °B  °B33°B33°B33°B33°Bff°Bff°B33±Bš™±Bš™±Bš™±Bš™±BÍÌ±BÍÌ±BÍÌ±B  ²B  ²B  ²B  ²B  ²B33²B33²B33²BÍÌ²B33³B33³Bff³Bff³Bff³Bff³BÍÌ³B  ´B  ´B  ´B  ´B  ´B  ´B  ´B33´Bff´Bš™´B33µBffµBffµBffµBffµBš™µBÍÌµBÍÌµBÍÌµB  ¶B  ¶B  ¶B  ¶B33¶B33¶Bff¶Bff¶Bff¶B  ·B33·Bff·Bš™·Bš™·Bš™·Bš™·BÍÌ·BÍÌ·BÍÌ·BÍÌ·BÍÌ·B  ¸B33¸B33¸B33¸Bff¸BÍÌ¸B  ¹B33¹Bff¹Bff¹Bš™¹Bš™¹Bš™¹BÍÌ¹BÍÌ¹BÍÌ¹BÍÌ¹B  ºB33ºB33ºBffºBš™ºBš™ºBš™ºB  »Bff»Bff»Bff»Bff»Bš™»BÍÌ»BÍÌ»BÍÌ»BÍÌ»BÍÌ»B  ¼B  ¼B33¼Bff¼Bff¼Bš™¼BÍÌ¼B  ½B33½Bff½Bš™½Bš™½Bš™½Bš™½Bš™½BÍÌ½BÍÌ½BÍÌ½B  ¾Bff¾Bff¾Bff¾BÍÌ¾B  ¿B33¿Bff¿Bš™¿Bš™¿Bš™¿Bš™¿Bš™¿BÍÌ¿BÍÌ¿BÍÌ¿BÍÌ¿BÍÌ¿B33ÀBffÀBÍÌÀB  ÁB33ÁB33ÁB33ÁB33ÁBš™ÁBš™ÁBš™ÁBš™ÁBš™ÁBš™ÁBš™ÁBš™ÁBÍÌÁBÍÌÁB  ÂB33ÂBffÂBš™ÂBš™ÂBÍÌÂB  ÃB33ÃB33ÃBš™ÃBš™ÃBš™ÃBš™ÃBš™ÃBÍÌÃBÍÌÃB  ÄB  ÄB33ÄBffÄBffÄBffÄBš™ÄB  ÅB33ÅB33ÅBffÅBš™ÅBš™ÅBš™ÅBš™ÅBÍÌÅB  ÆB  ÆB  ÆB33ÆB33ÆB33ÆB33ÆBffÆB  ÇB  ÇB  ÇB  ÇB  ÇB33ÇBffÇBš™ÇBš™ÇBš™ÇBš™ÇBÍÌÇB  ÈB  ÈB  ÈB  ÈBš™ÈBš™ÈBÍÌÈBÍÌÈB  ÉB  ÉB33ÉBffÉBffÉBffÉBš™ÉBÍÌÉBÍÌÉBÍÌÉBÍÌÉBÍÌÉB33ÊB33ÊB33ÊB33ÊBÍÌÊBÍÌÊB  ËB33ËB33ËB33ËBffËBš™ËBš™ËBš™ËBÍÌËBÍÌËB33ÌB33ÌB33ÌB33ÌBš™ÌBš™ÌBÍÌÌBÍÌÌBÍÌÌB  ÍB33ÍBš™ÍBš™ÍBš™ÍBš™ÍBš™ÍBÍÌÍBÍÌÍB  ÎB  ÎB  ÎB33ÎBš™ÎBš™ÎBÍÌÎB  ÏB  ÏB  ÏB  ÏB33ÏB33ÏB33ÏB33ÏBffÏBffÏBš™ÏB  ÐB33ÐBffÐBš™ÐBš™ÐBš™ÐBÍÌÐBÍÌÐBÍÌÐBÍÌÐB  ÑB  ÑB33ÑBffÑBffÑBffÑBš™ÑB  ÒB  ÒB33ÒB33ÒBffÒBš™ÒBš™ÒBš™ÒBš™ÒBš™ÒBÍÌÒB  ÓB33ÓBffÓBffÓBffÓBffÓBš™ÓB  ÔB33ÔB33ÔBš™ÔBš™ÔBš™ÔBš™ÔBš™ÔBš™ÔBš™ÔB  ÕB  ÕB  ÕBffÕBffÕBffÕBÍÌÕBÍÌÕBÍÌÕB  ÖBffÖBffÖBffÖBffÖBffÖBffÖBš™ÖBÍÌÖB  ×B  ×B  ×B33×Bš™×Bš™×Bš™×Bš™×BÍÌ×BÍÌ×BÍÌ×B  ØB33ØBffØBš™ØBš™ØBš™ØBÍÌØBÍÌØBÍÌØB  ÙBffÙBffÙBffÙBffÙBffÙBš™ÙBÍÌÙBÍÌÙB  ÚBffÚBffÚBffÚBš™ÚBš™ÚBš™ÚB  ÛB  ÛB33ÛB33ÛBffÛBffÛBš™ÛBš™ÛBš™ÛB  ÜB33ÜB33ÜBffÜBffÜBš™ÜBš™ÜBš™ÜBš™ÜBš™ÜBÍÌÜB33ÝBffÝBffÝBffÝBffÝBÍÌÝBÍÌÝBÍÌÝB  ÞBffÞBš™ÞBš™ÞBš™ÞBš™ÞBš™ÞBš™ÞBš™ÞBÍÌÞB33ßBffßBffßBš™ßBÍÌßBÍÌßBÍÌßB  àB33àB33àB33àBffàBffàBš™àBš™àBÍÌàBÍÌàB33áBffáBš™áBÍÌáBÍÌáBÍÌáB  âB  âB33âB33âBffâBffâBš™âBš™âBš™âBÍÌâB33ãBffãBš™ãBš™ãBš™ãBÍÌãB  äB  äB  äB33äB33äB33äBffäBffäBffäBÍÌäBÍÌäB  åB33åBš™åBš™åBš™åBš™åBš™åBš™åB  æB  æB33æB33æB33æBffæBffæBffæBffæBffæBš™æB  çBffçBffçBš™çBš™çBš™çBš™çBš™çBÍÌçBÍÌçB  èB33èBffèBffèBffèBš™èBš™èBš™èBš™èBÍÌèBÍÌèBfféBš™éBš™éBÍÌéBÍÌéB  êB  êB  êB33êBffêBš™êBš™êBš™êBš™êBš™êBš™êB  ëB  ëBffëBffëBffëBÍÌëBÍÌëBÍÌëBÍÌëB  ìB  ìBffìBffìBffìBffìBffìBš™ìBÍÌìB33íB33íB33íBffíBš™íBÍÌíBÍÌíBÍÌíB  îB33îB33îBffîBffîBffîBš™îBš™îBÍÌîB  ïB  ïB  ïBffïBš™ïBš™ïBÍÌïBÍÌïBÍÌïBÍÌïB33ðB33ðB33ðB33ðBffðBš™ðBÍÌðB  ñB  ñB  ñB  ñBffñBš™ñBš™ñBš™ñBš™ñB  òB  òB  òB  òB  òB  òB33òBffòB  óB  óB  óB33óB33óBffóBš™óBš™óB  ôB  ôB  ôB  ôB  ôB  ôB  ôB  ôB33ôB33ôBffôBš™ôB  õB33õB33õB33õBffõBffõBš™õBÍÌõBÍÌõBÍÌõBÍÌõBÍÌõB33öB33öB33öBfföBÍÌöB  ÷B  ÷B33÷Bff÷Bff÷Bff÷Bš™÷Bš™÷Bš™÷BÍÌ÷BÍÌ÷B33øB33øB33øB33øBfføBš™øBš™øBš™øB33ùBffùBffùBffùBffùBš™ùBÍÌùBÍÌùB  úB  úB33úB33úB33úBš™úBš™úBš™úBÍÌúBÍÌúBÍÌúB  ûBffûBš™ûBÍÌûBÍÌûB  üB  üB  üB  üB33üB33üBffüBš™üBš™üBÍÌüBÍÌüBÍÌüB  ýB33ýB33ýB33ýBÍÌýBÍÌýB  þB  þB  þB  þB  þB33þBffþBš™þBÍÌþBÍÌþBÍÌþB  ÿB  ÿB33ÿB33ÿB33ÿBffÿBš™ÿBÍÌÿB   C   C   Cš C33 Cff Cff Cff Cff C € C € C € C € C3³ CÍÌ CÍÌ CÍÌ CÍÌ Cfæ Cfæ CšC33C33C33C33CÍLCÍLCffCffCš™CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌC  CšC33C33C33CÍLCÍLCffCffC €C3³CÍÌCÍÌCÍÌCÍÌCÍÌCfæC  C  CšCšCšCšCffCffCffCffCš™CÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCÍÌCfæC  C  C  CffCffCffCffCffCffCš™Cš™Cš™Cš™C3³C3³C3³CÍÌCfæCfæC  C  CÍLCÍLCÍLCÍLC €C €C €C €C €C €C €C3³C3³CÍÌCÍÌCfæC  C33CÍLCÍLCffCffCffC €C €C €C €Cš™Cš™CÍÌCÍÌCfæCfæC  C33C33CÍLCÍLCÍLCÍLC €C €C €Cš™Cš™C3³C3³C3³C3³CÍÌCšC33CÍLCÍLCÍLCÍLCÍLCffC €C €C €C €Cš™C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³CfæC33	CÍL	C €	C €	C3³	C3³	C3³	C3³	C3³	C3³	C3³	C3³	C3³	C3³	C3³	CÍÌ	Cfæ	C  
CÍL
C €
Cš™
Cš™
Cš™
C3³
C3³
C3³
C3³
C3³
C3³
C3³
C3³
C3³
C3³
C3³
Cfæ
C33CÍLCÍLCffCš™C3³C3³C3³C3³C3³C3³C3³C3³C3³C3³CÍÌCfæC  CšC33C €C €C3³C3³C3³C3³C3³C3³C3³C3³C3³CÍÌCfæCfæC  C  C  CšC33CffC €Cš™Cš™Cš™Cš™C3³C3³C3³C3³CfæC  C  C  C  C  CšC33CÍLC €C €C €C €C €C3³C3³C3³CÍÌCfæCfæCfæC  C  CšCšCÍLCÍLC €C €C €Cš™Cš™Cš™Cš™Cš™C3³CÍÌCÍÌCfæCfæC  C33C33CffCffC €C €C €C €C €C €C €Cš™C3³C3³CÍÌCÍÌC  C33CÍLCÍLCffCffC €C €C €C €C €C €C €C €C €Cš™CÍÌCfæCfæCšCšCÍLCÍLCÍLCffCffCffC €C €C €C €C €C3³C3³CÍÌC  C  CšCšCšCÍLCffCffCffC €C €C €C €Cš™Cš™CÍÌCfæCfæCfæC  C  CšC33CÍLCÍLCffC €C €C €C €C €C €C3³C3³CÍÌCÍÌCfæCšCšCšCšCšC33CÍLC €C €C €C €C €Cš™C3³C3³CÍÌC  C  C  C  C  CšCšCÍLCffCffCffCffCffC €C €Cš™CÍÌC  C  C  C  C  C  CšCšC33CÍLCffCffC €C €C €C €Cš™C3³CfæC  C  C  C  C  C  C  CÍLCffCffCffCffCffC €Cš™Cš™CÍÌCÍÌCfæCfæC  C  C  C  C  CšC33CÍLCffCffCffCš™C3³C3³CÍÌCfæCfæC  C  C  C  CšC33C33C33CÍLCÍLCš™Cš™Cš™C3³CfæCfæCfæCfæCfæCfæCfæCfæCšCšCšCšC33C €C €C3³C3³CÍÌCfæCfæCfæCfæCfæCfæCfæCfæC  C  CšCffCffCš™C3³C3³C3³CÍÌCfæCfæCfæCfæCfæCfæC  C  CšCšCšCšCÍLC €Cš™Cš™Cš™C3³C3³CÍÌCfæCfæC  C  C  C  C  C  C33CÍLCffC €C €Cš™Cš™C3³C3³CÍÌC  C  C  C  C  C  C  C  C33CffC €C €C €C3³C3³C3³CÍÌCÍÌCfæCfæCfæCfæCfæC   C33 C33 CÍL CÍL C € C € C3³ C3³ C3³ C3³ C3³ Cfæ Cfæ Cfæ Cfæ C  !Cš!Cš!CÍL!CÍL!CÍL!Cff!Cš™!Cš™!C3³!C3³!C3³!Cfæ!Cfæ!Cfæ!Cfæ!C  "Cš"Cš"C33"C33"C33"C33"Cff"Cff"C €"Cš™"Cš™"C3³"C3³"CÍÌ"Cfæ"C  #Cš#Cš#C33#C33#C33#C33#CÍL#CÍL#C €#C €#C €#C €#Cš™#Cš™#C3³#CÍÌ#Cfæ#Cfæ#Cfæ#Cfæ#C  $C  $Cš$C33$C33$CÍL$Cff$Cff$C €$C €$Cš™$C3³$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$CÍÌ$Cfæ$Cfæ$Cfæ$CÍL%CÍL%Cff%Cff%C €%C €%C €%Cš™%Cš™%Cš™%C3³%CÍÌ%CÍÌ%Cfæ%Cfæ%Cfæ%C33&CÍL&CÍL&CÍL&Cff&C €&C €&C €&C €&C €&Cš™&C3³&C3³&C3³&C3³&C3³&Cfæ&C  'C33'C33'CÍL'Cff'Cff'Cff'Cff'C €'C €'C €'Cš™'Cš™'Cš™'C3³'CÍÌ'CÍÌ'C  (C  (C33(C33(CÍL(CÍL(Cff(Cff(Cff(C €(C €(C €(C €(C €(C €(Cš™(C3³(CÍÌ(Cfæ(Cfæ(C  )C  )C33)CÍL)CÍL)CÍL)CÍL)C €)C €)C €)C €)Cš™)Cš™)C3³)C3³)CÍÌ)CÍÌ)Cfæ)Cš*Cš*C33*CÍL*CÍL*CÍL*CÍL*CÍL*CÍL*Cff*Cff*C €*C €*C3³*CÍÌ*Cfæ*Cfæ*C  +C33+C33+C33+CÍL+CÍL+CÍL+CÍL+CÍL+CÍL+CÍL+Cff+C €+C €+Cš™+CÍÌ+Cfæ+Cfæ+C  ,C33,CÍL,CÍL,CÍL,CÍL,CÍL,CÍL,CÍL,Cff,Cff,C €,C €,C €,C €,C3³,Cfæ,Cfæ,Cfæ,C  -Cš-CÍL-CÍL-CÍL-CÍL-Cff-Cff-C €-C €-C €-C €-C3³-CÍÌ-Cfæ-Cfæ-Cfæ-Cfæ-C  .Cš.Cš.C33.CÍL.Cff.C €.C €.C €.C €.Cš™.Cš™.CÍÌ.CÍÌ.CÍÌ.CÍÌ.C  /C  /C  /C  /C33/C33/C33/CÍL/Cff/Cff/Cff/Cff/C3³/C3³/C3³/CÍÌ/Cfæ/C  0C  0C  0C  0Cš0Cš0Cš0C330CÍL0CÍL0CÍL0C €0Cš™0C3³0C3³0Cfæ0Cfæ0Cfæ0Cfæ0Cfæ0C  1C  1Cš1Cš1Cš1C331CÍL1Cff1C €1C €1C3³1C3³1CÍÌ1Cfæ1Cfæ1Cfæ1C  2C  2C  2C  2Cš2Cš2Cš2Cš2Cš2CÍL2Cff2C €2C €2C3³2C3³2CÍÌ2CÍÌ2Cfæ2C  3C  3Cš3Cš3Cš3Cš3Cš3Cš3Cš3C333Cff3Cš™3Cš™3C3³3CÍÌ3CÍÌ3CÍÌ3CÍÌ3Cfæ3Cš4Cš4Cš4Cš4Cš4Cš4C334C334CÍL4CÍL4C €4Cš™4C3³4CÍÌ4CÍÌ4CÍÌ4CÍÌ4C  5C  5Cš5Cš5Cš5C335C335C335C335C335Cff5C €5C €5Cš™5C3³5C3³5CÍÌ5Cfæ5Cfæ5Cfæ5C  6C  6C  6Cš6Cš6Cš6C336CÍL6CÍL6CÍL6C €6Cš™6Cš™6Cš™6CÍÌ6CÍÌ6CÍÌ6CÍÌ6Cfæ6C  7C  7C  7C337CÍL7CÍL7CÍL7CÍL7Cff7Cff7C €7Cš™7C3³7C3³7C3³7C3³7CÍÌ7CÍÌ7Cfæ7Cfæ7C  8Cš8Cš8CÍL8Cff8Cff8C €8C €8C €8C €8Cš™8C3³8CÍÌ8CÍÌ8CÍÌ8CÍÌ8Cfæ8C  9Cš9CÍL9Cff9Cff9Cff9C €9C €9C €9C €9C €9Cš™9Cš™9CÍÌ9CÍÌ9CÍÌ9Cfæ9Cfæ9C  :C33:CÍL:CÍL:Cff:Cff:Cff:Cff:C €:Cš™:Cš™:CÍÌ:CÍÌ:CÍÌ:CÍÌ:CÍÌ:Cfæ:C  ;Cš;Cš;C33;C33;C33;Cff;C €;Cš™;Cš™;C3³;C3³;CÍÌ;CÍÌ;CÍÌ;CÍÌ;Cfæ;C  <C  <C33<C33<C33<CÍL<Cff<Cff<C €<C €<Cš™<C3³<C3³<C3³<CÍÌ<CÍÌ<Cfæ<Cfæ<C  =Cš=Cš=Cš=C33=C33=C33=C33=Cff=C €=Cš™=Cš™=Cš™=Cš™=Cš™=Cš™=CÍÌ=CÍÌ=CÍÌ=Cfæ=Cš>C33>C33>C33>CÍL>Cff>Cff>Cff>Cš™>Cš™>Cš™>Cš™>C3³>C3³>C3³>C3³>CÍÌ>CÍÌ>Cfæ>Cš?Cš?Cš?C33?CÍL?C €?C €?Cš™?Cš™?Cš™?Cš™?C3³?C3³?C3³?C3³?C3³?C3³?CÍÌ?Cfæ?Cfæ?Cš@C33@C €@Cš™@Cš™@Cš™@Cš™@C3³@C3³@C3³@C3³@C3³@C3³@C3³@C3³@C3³@Cfæ@C  ACšAC €AC €AC €AC €AC €AC3³AC3³AC3³AC3³AC3³AC3³AC3³AC3³AC3³AC  BCšBCÍLBCÍLBCÍLBCffBCffBCffBC €BCš™BC3³BC3³BC3³BC3³BC3³BC3³BC3³BC  CCšCCšCC33CCÍLCCffCCffCCffCC €CC €CC €CC €CC3³CC3³CC3³CC3³CCfæCCfæCCfæCC  DCšDC33DC33DCÍLDCÍLDCffDC €DC €DCš™DC3³DC3³DC3³DCÍÌDCÍÌDCÍÌDCfæDC  EC  ECšEC33ECÍLECÍLECÍLECffECš™EC3³EC3³EC3³EC3³EC3³ECÍÌECÍÌECÍÌECÍÌECšFC33FC33FCÍLFCÍLFCffFC €FCš™FCš™FC3³FC3³FC3³FC3³FC3³FC3³FCÍÌFC  GCšGC33GCÍLGCÍLGCffGCffGC €GCš™GCš™GC3³GC3³GC3³GC3³GC3³GC3³GC3³GCÍÌGC  HCšHC33HC33HCÍLHCÍLHCÍLHC €HCš™HCš™HC3³HC3³HC3³HC3³HC3³HCÍÌHCfæHCfæHC  IC  ICšIC33IC33IC €IC €IC €IC €IC €IC €ICš™ICš™IC3³ICÍÌICfæICfæIC  JCšJC33JC33JCÍLJCÍLJCffJCffJCffJCffJCffJC €JC3³JC3³JC3³JCÍÌJCfæJC  KCšKCšKCšKCÍLKCffKCffKCffKCffKCffKCffKC €KC3³KC3³KC3³KCÍÌKCfæKCfæKCfæKC  LCšLC33LCÍLLCffLCffLCffLCffLCffLCffLCš™LC3³LCÍÌLCfæLCfæLCfæLCfæLCfæLCšMC33MCÍLMCÍLMCffMCffMCffMCffMCš™MCš™MC3³MCÍÌMCÍÌMCfæMCfæMCfæMC  NCšNC33NC33NCffNCffNCffNCffNC €NC €NC €NC €NC3³NC3³NC3³NCfæNCfæNCfæNCfæNCfæNCšOC33OC33OC33OC33OCÍLOCffOCffOCffOC €OCš™OC3³OC3³OCÍÌOCÍÌOCÍÌOCfæOC  PC  PC  PC  PC33PC33PCffPCffPCffPCffPCš™PC3³PC3³PC3³PCÍÌPCfæPC  QC  QC  QC  QC  QC  QC  QCšQCšQC33QC33QC33QCffQC €QCš™QC3³QC3³QCÍÌQCfæQC  RC  RC  RC  RC  RC  RC  RC  RCšRCÍLRCffRCffRCš™RCš™RCš™RCš™RC3³RCÍÌRCfæRCfæRC  SC  SC  SC  SC  SC  SC  SCšSCÍLSCÍLSC €SCš™SC3³SC3³SCfæSCfæSCfæSC  TC  TC  TC  TC  TC  TCšTCÍLTCÍLTCffTC €TC €TC €TCš™TCš™TCÍÌTCfæTCfæTCfæTC  UC  UC  UCšUCšUCšUCÍLUCÍLUCÍLUCffUC €UCš™UC3³UCÍÌUCÍÌUCÍÌUCfæUCfæUCfæUC  VC  VCšVCšVCšVCÍLVCÍLVCÍLVCffVCffVCš™VCš™VCš™VCš™VC3³VC3³VCÍÌVC  WC  WCšWCšWCšWCšWC33WCÍLWCffWC €WC €WCš™WCš™WCš™WCš™WCš™WC3³WCÍÌWCšXCšXCšXCšXCšXC33XC33XCffXCffXC €XCš™XCš™XCš™XCš™XCš™XCš™XCÍÌXCÍÌXCfæXCfæXC  YCšYCšYCšYCšYCffYC €YC €YC €YCš™YCš™YCš™YCš™YCš™YC3³YCÍÌYCÍÌYC  ZC  ZC  ZCšZC33ZCÍLZCffZCffZC €ZCš™ZCš™ZCš™ZCš™ZCš™ZCš™ZC3³ZCÍÌZCfæZCfæZCfæZC  [Cš[C33[C33[Cff[Cff[C €[C €[C €[C €[C €[Cš™[Cš™[C3³[C3³[CÍÌ[Cfæ[Cfæ[Cfæ[Cš\C33\C33\Cff\Cff\Cff\C €\C €\Cš™\Cš™\Cš™\C3³\C3³\CÍÌ\CÍÌ\CÍÌ\C  ]C  ]Cš]CÍL]CÍL]Cff]Cff]C €]C €]C €]C €]C3³]C3³]C3³]C3³]C3³]C3³]Cfæ]C  ^Cš^C33^C33^C33^C33^Cff^C €^C €^C €^C €^C €^Cš™^C3³^C3³^C3³^Cfæ^Cfæ^C  _C33_C33_C33_CÍL_Cff_Cff_Cff_C €_C €_Cš™_Cš™_Cš™_Cš™_C3³_CÍÌ_Cfæ_C  `C  `C33`C33`C33`CÍL`Cff`C €`C €`C €`C €`Cš™`Cš™`Cš™`Cš™`Cfæ`C  aC  aC  aC  aC  aC33aCÍLaCÍLaC €aC €aC €aC €aCš™aCš™aCš™aCš™aC3³aCÍÌaCfæaC  bC  bC  bCšbC33bC €bC €bC €bC €bCš™bCš™bCš™bCš™bCš™bC3³bC3³bCÍÌbCÍÌbC  cC  cCšcCÍLcCffcC €cC €cCš™cCš™cCš™cCš™cCš™cC3³cC3³cCÍÌcCÍÌcCÍÌcCÍÌcC  dC  dC  dC33dCffdC €dCš™dCš™dCš™dCš™dC3³dC3³dCÍÌdCÍÌdCÍÌdCÍÌdCfædC  eC  eC  eC  eCšeC33eCffeCffeC €eCš™eC3³eC3³eC3³eC3³eCÍÌeCfæeC  fC  fC  fC  fC  fC  fC33fCÍLfCfffCfffCfffC €fCš™fC3³fC3³fC3³fCfæfC  gC  gC  gC  gC  gCšgC33gC33gCÍLgCÍLgCÍLgCffgC €gC €gCš™gC3³gCfægC  hC  hC  hC  hCšhC33hC33hC33hC33hC33hC33hCffhCffhC €hC €hCš™hC3³hCfæhCfæhCfæhCfæhCfæhC  iC33iC33iC33iC33iCÍLiCffiC €iC €iC €iC €iC €iC €iC3³iCfæiCfæiC  jC  jC  jCšjC33jC33jCffjC €jC €jC €jC €jC €jC €jC €jC3³jC3³jCÍÌjCfæjCfæjC  kCškC33kCÍLkCffkCffkCffkCffkCffkCffkCffkCš™kC3³kC3³kC3³kC3³kC3³kC3³kCfækC33lCÍLlCÍLlCfflCfflCfflCfflCfflCfflCfflC €lC €lC €lCš™lC3³lCÍÌlC  mCšmC33mCÍLmCÍLmCÍLmCÍLmCffmCffmCffmCffmCffmC €mC €mC €mCš™mC3³mC3³mCÍÌmCfæmCšnC33nC33nC33nCÍLnCÍLnCÍLnCffnC €nC €nC €nC €nCš™nCš™nC3³nC3³nCÍÌnC  oCšoCšoC33oC33oC33oCÍLoCÍLoCffoCffoCffoCffoCffoCffoCffoC €oC3³oCÍÌoCÍÌoCšpC33pC33pC33pCÍLpCÍLpCÍLpCffpCffpCffpCffpCffpCffpCš™pC3³pC3³pCÍÌpCÍÌpC  qCšqCšqC33qCÍLqCÍLqCÍLqCÍLqCÍLqCffqCffqC €qCš™qCš™qCš™qC3³qCfæqCfæqC  rC33rC33rC33rC33rC33rCÍLrCÍLrCÍLrCffrCffrCffrC €rCš™rCš™rCš™rCš™rCš™rC  sCšsCšsC33sCÍLsCÍLsCÍLsCÍLsCÍLsCÍLsCÍLsCffsC €sCš™sCš™sCš™sC3³sCÍÌsCfæsC  tC33tCÍLtCÍLtCÍLtCÍLtCÍLtCÍLtCÍLtCfftCfftC €tCš™tCš™tCš™tCš™tC3³tCfætC  uC  uCšuC33uC33uC33uC33uCÍLuCffuCffuCffuCffuC €uCš™uCš™uC3³uCÍÌuCfæuCfæuCfæuCšvCšvCšvCšvCšvC33vCÍLvCÍLvCÍLvCÍLvCÍLvCffvC €vC €vC €vC3³vC3³vCÍÌvCÍÌvCÍÌvC  wCšwCšwCšwCšwC33wC33wC33wCffwC €wC €wCš™wC3³wC3³wC3³wC3³wC3³wCfæwC  xCšxCšxCšxCšxCšxCÍLxCffxCffxCffxCffxC €xCš™xCš™xCš™xC3³xC3³xCfæxC  yC  yC  yC  yC  yC33yCÍLyCffyCffyC €yC €yC €yC €yC €yC €yCš™yC3³yC3³yC3³yC  zC  zCšzC33zCÍLzCÍLzCÍLzCÍLzCffzC €zC €zC €zC €zCš™zCš™zCš™zCš™zCÍÌzCfæzCfæzC  {Cš{C33{C33{CÍL{CÍL{CÍL{Cff{Cff{Cff{C €{C €{C €{C €{Cš™{C3³{C3³{CÍÌ{Cfæ{Cfæ{Cfæ{Cfæ{Cš|C33|C33|CÍL|Cff|Cff|C €|C €|Cš™|Cš™|Cš™|CÍÌ|Cfæ|Cfæ|Cfæ|Cfæ|Cfæ|C  }C  }Cš}CÍL}CÍL}Cff}Cff}C €}C €}C €}C €}C3³}C3³}C3³}C3³}CÍÌ}CÍÌ}Cfæ}Cfæ}Cfæ}Cš~CÍL~CÍL~Cff~Cff~Cff~Cff~Cff~Cff~Cff~Cff~C3³~C3³~C3³~CÍÌ~Cfæ~CšC33C33C33CÍLCffCffCffCffCffCffCš™Cš™Cš™C3³CÍÌCÍÌCÍÌCfæCfæC  €Cš€Cf&€C33€C33€C33€C33€C33€C @€C @€CÍL€CšY€CšY€Cff€C3s€C3s€C3s€C3s€C €€C €€Cf¦€C3³€C3³€C3³€C À€C À€C À€C À€C À€C À€CÍÌ€CÍÌ€C3ó€C3ó€C3ó€C3ó€CÍ�Cš�Cf&�C33�C @�C @�C @�C @�C @�C @�CÍL�CÍL�Cff�Cff�Cff�Cff�C3s�C3s�C3s�CÍŒ�Cš™�Cš™�C3³�C3³�C3³�C3³�C À�C À�CÍÌ�CÍÌ�CÍÌ�CÍÌ�CšÙ�Cfæ�C3ó�C  ‚CÍ‚CÍ‚Cš‚Cf&‚Cf&‚C33‚C @‚C @‚C @‚C @‚C @‚C @‚C @‚CšY‚Cff‚Cff‚Cff‚C3s‚Cš™‚Cf¦‚Cf¦‚Cf¦‚C3³‚C3³‚C À‚C À‚C À‚C À‚C À‚CÍÌ‚CÍÌ‚CÍÌ‚CÍÌ‚C3ó‚C  ƒCÍƒCšƒCšƒCšƒCšƒCf&ƒCf&ƒCf&ƒC33ƒC @ƒC @ƒCÍLƒCÍLƒCÍLƒCšYƒCffƒC3sƒCÍŒƒCÍŒƒCš™ƒCš™ƒCf¦ƒCf¦ƒCf¦ƒC3³ƒC ÀƒC ÀƒC ÀƒC ÀƒCÍÌƒCÍÌƒCÍÌƒCÍÌƒCšÙƒCfæƒC3óƒCÍ„CÍ„Cš„Cf&„Cf&„C @„C @„C @„C @„CÍL„CÍL„CÍL„CÍL„CÍL„CÍL„CÍL„CšY„CšY„Cff„C3s„CÍŒ„C3³„C3³„C À„C À„C À„C À„C À„CÍÌ„CÍÌ„CÍÌ„CÍÌ„CÍÌ„CÍÌ„CšÙ„CšÙ„C3ó„C  …CÍ…Cš…C33…C @…C @…C @…C @…C @…C @…C @…C @…C @…CšY…CšY…C3s…C3s…C €…C €…Cš™…Cf¦…C3³…C À…C À…C À…C À…C À…C À…C À…C À…C À…CÍÌ…CšÙ…C3ó…C3ó…C  †C  †Cš†Cf&†C33†C33†C33†C @†C @†C @†C @†C @†C @†C @†CÍL†CšY†Cff†C3s†C3s†C €†Cš™†Cf¦†Cf¦†C3³†C À†C À†C À†C À†C À†C À†CÍÌ†CÍÌ†CÍÌ†Cfæ†Cfæ†C  ‡Cš‡Cš‡Cš‡Cš‡Cf&‡C33‡C33‡C @‡C @‡C @‡C @‡C @‡C @‡C @‡C @‡C @‡Cff‡C3s‡CÍŒ‡CÍŒ‡CÍŒ‡Cf¦‡Cf¦‡C3³‡C3³‡C3³‡C3³‡C3³‡C3³‡C3³‡C3³‡C3³‡C À‡C À‡CšÙ‡Cfæ‡C  ˆCšˆCf&ˆCf&ˆC33ˆC33ˆC33ˆC33ˆC33ˆC33ˆC33ˆC33ˆC33ˆC33ˆC @ˆCÍLˆCÍLˆC €ˆCf¦ˆCf¦ˆCf¦ˆCf¦ˆC3³ˆC3³ˆC3³ˆC3³ˆC3³ˆC3³ˆC3³ˆC3³ˆC3³ˆC ÀˆCÍÌˆCfæˆC  ‰C  ‰CÍ‰Cš‰Cš‰Cf&‰Cf&‰Cf&‰Cf&‰C33‰C33‰C33‰C33‰C @‰CÍL‰CšY‰CšY‰C3s‰C3s‰C3s‰C €‰CÍŒ‰Cš™‰Cf¦‰Cf¦‰Cf¦‰Cf¦‰C3³‰C3³‰C3³‰C3³‰C3³‰C3³‰CšÙ‰Cfæ‰C3ó‰C3ó‰CÍŠCÍŠCšŠCšŠCf&ŠCf&ŠCf&ŠCf&ŠC33ŠC33ŠC33ŠC33ŠC33ŠC33ŠCÍLŠCffŠC3sŠC €ŠCÍŒŠCÍŒŠCÍŒŠCš™ŠCš™ŠCf¦ŠC3³ŠC3³ŠC3³ŠC3³ŠC3³ŠC3³ŠC ÀŠCÍÌŠCÍÌŠCfæŠC  ‹C  ‹CÍ‹Cš‹Cš‹Cš‹Cf&‹C33‹C33‹C33‹C33‹C33‹C33‹C @‹CÍL‹Cff‹Cff‹Cff‹C3s‹C3s‹Cš™‹Cš™‹Cf¦‹Cf¦‹Cf¦‹Cf¦‹C3³‹C3³‹C3³‹C3³‹C À‹CÍÌ‹CÍÌ‹CšÙ‹C3ó‹C3ó‹C3ó‹C  ŒCšŒCf&ŒCf&ŒCf&ŒCf&ŒCf&ŒCf&ŒCf&ŒC33ŒC33ŒC33ŒC33ŒCffŒC3sŒC3sŒC3sŒC €ŒC €ŒCÍŒŒCš™ŒCf¦ŒCf¦ŒCf¦ŒCf¦ŒCf¦ŒCf¦ŒCf¦ŒC3³ŒCÍÌŒCÍÌŒCšÙŒCšÙŒCšÙŒCfæŒCfæŒC3óŒCÍ�CÍ�CÍ�CÍ�CÍ�Cf&�Cf&�C33�C33�C33�C33�C @�CÍL�CšY�CšY�CšY�C3s�C €�C €�CÍŒ�CÍŒ�Cf¦�Cf¦�Cf¦�Cf¦�Cf¦�Cf¦�Cf¦�Cf¦�C À�C À�CÍÌ�Cfæ�Cfæ�C3ó�C3ó�CÍŽCÍŽCÍŽCf&ŽCf&ŽCf&ŽCf&ŽCf&ŽCf&ŽCf&ŽC @ŽC @ŽC @ŽC @ŽCšYŽC3sŽC3sŽC €ŽC €ŽCÍŒŽCš™ŽCf¦ŽCf¦ŽCf¦ŽCf¦ŽCf¦ŽC3³ŽC3³ŽC ÀŽC ÀŽC ÀŽC ÀŽC ÀŽCfæŽC3óŽC  �CÍ�CÍ�Cš�Cš�Cš�Cš�Cš�Cš�Cf&�Cf&�C33�C33�C33�C33�C33�Cff�C3s�C3s�C €�CÍŒ�CÍŒ�CÍŒ�Cš™�Cš™�Cš™�Cš™�Cf¦�Cf¦�Cf¦�Cf¦�Cf¦�C3³�C À�C À�CšÙ�Cfæ�C3ó�CÍ�Cš�Cš�Cš�Cš�Cš�Cš�Cf&�Cf&�Cf&�C33�C @�C @�CÍL�CÍL�C3s�C3s�C €�CÍŒ�CÍŒ�CÍŒ�CÍŒ�CÍŒ�Cf¦�Cf¦�Cf¦�Cf¦�C À�C À�CÍÌ�CÍÌ�CÍÌ�CšÙ�Cfæ�C3ó�C  ‘C  ‘CÍ‘CÍ‘Cf&‘Cf&‘Cf&‘Cf&‘C33‘C33‘C @‘CÍL‘CÍL‘CšY‘CšY‘CšY‘CšY‘Cff‘Cff‘Cff‘C3s‘C3s‘CÍŒ‘Cš™‘Cf¦‘C3³‘C3³‘C À‘C À‘C À‘CÍÌ‘CšÙ‘CšÙ‘Cfæ‘Cfæ‘Cfæ‘Cfæ‘Cfæ‘C3ó‘CÍ’CÍ’C33’C33’C @’C @’C @’C @’CÍL’CšY’Cff’Cff’Cff’Cff’Cff’Cff’Cff’C €’Cš™’Cš™’Cf¦’C À’C À’C À’C À’CšÙ’Cfæ’Cfæ’Cfæ’Cfæ’Cfæ’Cfæ’Cfæ’C3ó’C3ó’C  “C  “CÍ“Cf&“C33“C33“CÍL“CÍL“CšY“CšY“CšY“Cff“Cff“Cff“Cff“C3s“C €“C €“C €“C €“Cš™“Cš™“C3³“C À“CÍÌ“CÍÌ“CšÙ“Cfæ“Cfæ“Cfæ“Cfæ“Cfæ“Cfæ“C3ó“C  ”C  ”C  ”C  ”C  ”CÍ”CÍ”Cf&”C33”C @”CÍL”CšY”CšY”Cff”Cff”C3s”C €”C €”C €”C €”C €”C €”C €”Cš™”Cš™”Cš™”C3³”C3³”CÍÌ”CšÙ”CšÙ”Cfæ”C3ó”C3ó”C3ó”C  •C  •C  •C  •C  •C  •C  •CÍ•Cf&•Cf&•Cf&•C @•CÍL•CÍL•Cff•Cff•Cff•C3s•C €•C €•C €•C €•C €•C €•CÍŒ•Cš™•Cf¦•Cf¦•C3³•C À•CÍÌ•CÍÌ•CšÙ•CšÙ•Cfæ•Cfæ•C  –C  –C  –C  –C  –C  –Cš–Cš–Cš–Cš–Cf&–C @–C @–CÍL–CÍL–CÍL–Cff–Cff–Cff–Cff–Cff–C3s–C €–CÍŒ–CÍŒ–CÍŒ–Cš™–Cš™–Cf¦–C3³–C3³–C À–CÍÌ–CšÙ–CšÙ–CšÙ–CšÙ–Cfæ–Cfæ–Cfæ–C  —C  —CÍ—Cš—Cf&—Cf&—C¤type§scatter¡xÈ]À  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;E �;E  ;E °;E À;E Ð;E à;E ð;E  <E <E  <E 0<E @<E P<E `<E p<E €<E �<E  <E °<E À<E Ð<E à<E ð<E  =E =E  =E 0=E @=E P=E `=E p=E €=E �=E  =E °=E À=E Ð=E à=E ð=E  >E >E  >E 0>E @>E P>E `>E p>E €>E �>E  >E °>E À>E Ð>E à>E ð>E  ?E ?E  ?E 0?E @?E P?E `?E p?E €?E �?E  ?E °?E À?E Ð?E à?E ð?E  @E @E  @E 0@E @@E P@E `@E p@E €@E �@E  @E °@E À@E Ð@E à@E ð@E  AE AE  AE 0AE @AE PAE `AE pAE €AE �AE  AE °AE ÀAE ÐAE àAE ðAE  BE BE  BE 0BE @BE PBE `BE pBE €BE �BE  BE °BE ÀBE ÐBE àBE ðBE  CE CE  CE 0CE @CE PCE `CE pCE €CE �CE  CE °CE ÀCE ÐCE àCE ðCE  DE DE  DE 0DE @DE PDE `DE pDE €DE �DE  DE °DE ÀDE ÐDE àDE ðDE  EE EE  EE 0EE @EE PEE `EE pEE €EE �EE  EE °EE ÀEE ÐEE àEE ðEE  FE FE  FE 0FE @FE PFE `FE pFE €FE �FE  FE °FE ÀFE ÐFE àFE ðFE  GE GE  GE 0GE @GE PGE `GE pGE €GE �GE  GE °GE ÀGE ÐGE àGE ðGE  HE HE  HE 0HE @HE PHE `HE pHE €HE �HE  HE °HE ÀHE ÐHE àHE ðHE  IE IE  IE 0IE @IE PIE `IE pIE €IE �IE  IE °IE ÀIE ÐIE àIE ðIE  JE JE  JE 0JE @JE PJE `JE pJE €JE �JE  JE °JE ÀJE ÐJE àJE ðJE  KE KE  KE 0KE @KE PKE `KE pKE €KE �KE  KE °KE ÀKE ÐKE àKE ðKE  LE LE  LE 0LE @LE PLE `LE pLE €LE �LE  LE °LE ÀLE ÐLE àLE ðLE  ME ME  ME 0ME @ME PME `ME pME €ME �ME  ME °ME ÀME ÐME àME ðME  NE NE  NE 0NE @NE PNE `NE pNE €NE �NE  NE °NE ÀNE ÐNE àNE ðNE  OE OE  OE 0OE @OE POE `OE pOE €OE �OE  OE °OE ÀOE ÐOE àOE ðOE  PE PE  PE 0PE @PE PPE `PE pPE €PE �PE  PE °PE ÀPE ÐPE àPE ðPE  QE QE  QE 0QE @QE PQE `QE pQE €QE �QE  QE °QE ÀQE ÐQE àQE ðQE  RE RE  RE 0RE @RE PRE `RE pRE €RE �RE  RE °RE ÀRE ÐRE àRE ðRE  SE SE  SE 0SE @SE PSE `SE pSE €SE �SE  SE °SE ÀSE ÐSE àSE ðSE  TE TE  TE 0TE @TE PTE `TE pTE €TE �TE  TE °TE ÀTE ÐTE àTE ðTE  UE UE  UE 0UE @UE PUE `UE pUE €UE �UE  UE °UE ÀUE ÐUE àUE ðUE  VE VE  VE 0VE @VE PVE `VE pVE €VE �VE  VE °VE ÀVE ÐVE àVE ðVE  WE WE  WE 0WE @WE PWE `WE pWE €WE �WE  WE °WE ÀWE ÐWE àWE ðWE  XE XE  XE 0XE @XE PXE `XE pXE €XE �XE  XE °XE ÀXE ÐXE àXE ðXE  YE YE  YE 0YE @YE PYE `YE pYE €YE �YE  YE °YE ÀYE ÐYE àYE ðYE  ZE ZE  ZE 0ZE @ZE PZE `ZE pZE €ZE �ZE  ZE °ZE ÀZE ÐZE àZE ðZE  [E [E  [E 0[E @[E P[E `[E p[E €[E �[E  [E °[E À[E Ð[E à[E ð[E  \E \E  \E 0\E @\E P\E `\E p\E €\E �\E  \E °\E À\E Ð\E à\E ð\E  ]E ]E  ]E 0]E @]E P]E `]E p]E €]E �]E  ]E °]E À]E Ð]E à]E ð]E  ^E ^E  ^E 0^E @^E P^E `^E p^E €^E �^E  ^E °^E À^E Ð^E à^E ð^E  _E _E  _E 0_E @_E P_E `_E p_E €_E �_E  _E °_E À_E Ð_E à_E ð_E  `E `E  `E 0`E @`E P`E ``E p`E €`E �`E  `E °`E À`E Ð`E à`E ð`E  aE aE  aE 0aE @aE PaE `aE paE €aE �aE  aE °aE ÀaE ÐaE àaE ðaE  bE bE  bE 0bE @bE PbE `bE pbE €bE �bE  bE °bE ÀbE ÐbE àbE ðbE  cE cE  cE 0cE @cE PcE `cE pcE €cE �cE  cE °cE ÀcE ÐcE àcE ðcE  dE dE  dE 0dE @dE PdE `dE pdE €dE �dE  dE °dE ÀdE ÐdE àdE ðdE  eE eE  eE 0eE @eE PeE `eE peE €eE �eE  eE °eE ÀeE ÐeE àeE ðeE  fE fE  fE 0fE @fE PfE `fE pfE €fE �fE  fE °fE ÀfE ÐfE àfE ðfE  gE gE  gE 0gE @gE PgE `gE pgE €gE �gE  gE °gE ÀgE ÐgE àgE ðgE  hE hE  hE 0hE @hE PhE `hE phE €hE �hE  hE °hE ÀhE ÐhE àhE ðhE  iE iE  iE 0iE @iE PiE `iE piE €iE �iE  iE °iE ÀiE ÐiE àiE ðiE  jE jE  jE 0jE @jE PjE `jE pjE €jE �jE  jE °jE ÀjE ÐjE àjE ðjE  kE kE  kE 0kE @kE PkE `kE pkE €kE �kE  kE °kE ÀkE ÐkE àkE ðkE  lE lE  lE 0lE @lE PlE `lE plE €lE �lE  lE °lE ÀlE ÐlE àlE ðlE  mE mE  mE 0mE @mE PmE `mE pmE €mE �mE  mE °mE ÀmE ÐmE àmE ðmE  nE nE  nE 0nE @nE PnE `nE pnE €nE �nE  nE °nE ÀnE ÐnE ànE ðnE  oE oE  oE 0oE @oE PoE `oE poE €oE �oE  oE °oE ÀoE ÐoE àoE ðoE  pE pE  pE 0pE @pE PpE `pE ppE €pE �pE  pE °pE ÀpE ÐpE àpE ðpE  qE qE  qE 0qE @qE PqE `qE pqE €qE �qE  qE °qE ÀqE ÐqE àqE ðqE  rE rE  rE 0rE @rE PrE `rE prE €rE �rE  rE °rE ÀrE ÐrE àrE ðrE  sE sE  sE 0sE @sE PsE `sE psE €sE �sE  sE °sE ÀsE ÐsE àsE ðsE  tE tE  tE 0tE @tE PtE `tE ptE €tE �tE  tE °tE ÀtE ÐtE àtE ðtE  uE uE  uE 0uE @uE PuE `uE puE €uE �uE  uE °uE ÀuE ÐuE àuE ðuE  vE vE  vE 0vE @vE PvE `vE pvE €vE �vE  vE °vE ÀvE ÐvE àvE ðvE  wE wE  wE 0wE @wE PwE `wE pwE €wE �wE  wE °wE ÀwE ÐwE àwE ðwE  xE xE  xE 0xE @xE PxE `xE pxE €xE �xE  xE °xE ÀxE ÐxE àxE ðxE  yE yE  yE 0yE @yE PyE `yE pyE €yE �yE  yE °yE ÀyE ÐyE àyE ðyE  zE zE  zE 0zE @zE PzE `zE pzE €zE �zE  zE °zE ÀzE ÐzE àzE ðzE  {E {E  {E 0{E @{E P{E `{E p{E €{E �{E  {E °{E À{E Ð{E à{E ð{E  |E |E  |E 0|E @|E P|E `|E p|E €|E �|E  |E °|E À|E Ð|E à|E ð|E  }E }E  }E 0}E @}E P}E `}E p}E €}E �}E  }E °}E À}E Ð}E à}E ð}E  ~E ~E  ~E 0~E @~E P~E `~E p~E €~E �~E  ~E °~E À~E Ð~E à~E ð~E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  €E €E €E €E  €E (€E 0€E 8€E @€E H€E P€E X€E `€E h€E p€E x€E €€E ˆ€E �€E ˜€E  €E ¨€E °€E ¸€E À€E È€E Ð€E Ø€E à€E è€E ð€E ø€E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‚E ‚E ‚E ‚E  ‚E (‚E 0‚E 8‚E @‚E H‚E P‚E X‚E `‚E h‚E p‚E x‚E €‚E ˆ‚E �‚E ˜‚E  ‚E ¨‚E °‚E ¸‚E À‚E È‚E Ð‚E Ø‚E à‚E è‚E ð‚E ø‚E  ƒE ƒE ƒE ƒE  ƒE (ƒE 0ƒE 8ƒE @ƒE HƒE PƒE XƒE `ƒE hƒE pƒE xƒE €ƒE ˆƒE �ƒE ˜ƒE  ƒE ¨ƒE °ƒE ¸ƒE ÀƒE ÈƒE ÐƒE ØƒE àƒE èƒE ðƒE øƒE  „E „E „E „E  „E („E 0„E 8„E @„E H„E P„E X„E `„E h„E p„E x„E €„E ˆ„E �„E ˜„E  „E ¨„E °„E ¸„E À„E È„E Ð„E Ø„E à„E è„E ð„E ø„E  …E …E …E …E  …E (…E 0…E 8…E @…E H…E P…E X…E `…E h…E p…E x…E €…E ˆ…E �…E ˜…E  …E ¨…E °…E ¸…E À…E È…E Ð…E Ø…E à…E è…E ð…E ø…E  †E †E †E †E  †E (†E 0†E 8†E @†E H†E P†E X†E `†E h†E p†E x†E €†E ˆ†E �†E ˜†E  †E ¨†E °†E ¸†E À†E È†E Ð†E Ø†E à†E è†E ð†E ø†E  ‡E ‡E ‡E ‡E  ‡E (‡E 0‡E 8‡E @‡E H‡E P‡E X‡E `‡E h‡E p‡E x‡E €‡E ˆ‡E �‡E ˜‡E  ‡E ¨‡E °‡E ¸‡E À‡E È‡E Ð‡E Ø‡E à‡E è‡E ð‡E ø‡E  ˆE ˆE ˆE ˆE  ˆE (ˆE 0ˆE 8ˆE @ˆE HˆE PˆE XˆE `ˆE hˆE pˆE xˆE €ˆE ˆˆE �ˆE ˜ˆE  ˆE ¨ˆE °ˆE ¸ˆE ÀˆE ÈˆE ÐˆE ØˆE àˆE èˆE ðˆE øˆE  ‰E ‰E ‰E ‰E  ‰E (‰E 0‰E 8‰E @‰E H‰E P‰E X‰E `‰E h‰E p‰E x‰E €‰E ˆ‰E �‰E ˜‰E  ‰E ¨‰E °‰E ¸‰E À‰E È‰E Ð‰E Ø‰E à‰E è‰E ð‰E ø‰E  ŠE ŠE ŠE ŠE  ŠE (ŠE 0ŠE 8ŠE @ŠE HŠE PŠE XŠE `ŠE hŠE pŠE xŠE €ŠE ˆŠE �ŠE ˜ŠE  ŠE ¨ŠE °ŠE ¸ŠE ÀŠE ÈŠE ÐŠE ØŠE àŠE èŠE ðŠE øŠE  ‹E ‹E ‹E ‹E  ‹E (‹E 0‹E 8‹E @‹E H‹E P‹E X‹E `‹E h‹E p‹E x‹E €‹E ˆ‹E �‹E ˜‹E  ‹E ¨‹E °‹E ¸‹E À‹E È‹E Ð‹E Ø‹E à‹E è‹E ð‹E ø‹E  ŒE ŒE ŒE ŒE  ŒE (ŒE 0ŒE 8ŒE @ŒE HŒE PŒE XŒE `ŒE hŒE pŒE xŒE €ŒE ˆŒE �ŒE ˜ŒE  ŒE ¨ŒE °ŒE ¸ŒE ÀŒE ÈŒE ÐŒE ØŒE àŒE èŒE ðŒE øŒE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ŽE ŽE ŽE ŽE  ŽE (ŽE 0ŽE 8ŽE @ŽE HŽE PŽE XŽE `ŽE hŽE pŽE xŽE €ŽE ˆŽE �ŽE ˜ŽE  ŽE ¨ŽE °ŽE ¸ŽE ÀŽE ÈŽE ÐŽE ØŽE àŽE èŽE ðŽE øŽE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  ‘E ‘E ‘E ‘E  ‘E (‘E 0‘E 8‘E @‘E H‘E P‘E X‘E `‘E h‘E p‘E x‘E €‘E ˆ‘E �‘E ˜‘E  ‘E ¨‘E °‘E ¸‘E À‘E È‘E Ð‘E Ø‘E à‘E è‘E ð‘E ø‘E  ’E ’E ’E ’E  ’E (’E 0’E 8’E @’E H’E P’E X’E `’E h’E p’E x’E €’E ˆ’E �’E ˜’E  ’E ¨’E °’E ¸’E À’E È’E Ð’E Ø’E à’E è’E ð’E ø’E  “E “E “E “E  “E (“E 0“E 8“E @“E H“E P“E X“E `“E h“E p“E x“E €“E ˆ“E �“E ˜“E  “E ¨“E °“E ¸“E À“E È“E Ð“E Ø“E à“E è“E ð“E ø“E  ”E ”E ”E ”E  ”E (”E 0”E 8”E @”E H”E P”E X”E `”E h”E p”E x”E €”E ˆ”E �”E ˜”E  ”E ¨”E °”E ¸”E À”E È”E Ð”E Ø”E à”E è”E ð”E ø”E  •E •E •E •E  •E (•E 0•E 8•E @•E H•E P•E X•E `•E h•E p•E x•E €•E ˆ•E �•E ˜•E  •E ¨•E °•E ¸•E À•E È•E Ð•E Ø•E à•E è•E ð•E ø•E  –E –E –E –E  –E (–E 0–E 8–E @–E H–E P–E X–E `–E h–E p–E x–E €–E ˆ–E �–E ˜–E  –E ¨–E °–E ¸–E À–E È–E Ð–E Ø–E à–E è–E ð–E ø–E  —E —E —E —E  —E (—E 0—E 8—E @—E H—E P—E X—E `—E h—E p—E x—E €—E ˆ—E �—E ˜—E  —E ¨—E °—E ¸—E À—E È—E Ð—E Ø—E à—E è—E ð—E ø—E  ˜E ˜E ˜E ˜E  ˜E (˜E 0˜E 8˜E @˜E H˜E P˜E X˜E `˜E h˜E p˜E x˜E €˜E ˆ˜E �˜E ˜˜E  ˜E ¨˜E °˜E ¸˜E À˜E È˜E Ð˜E Ø˜E à˜E è˜E ð˜E ø˜E  ™E ™E ™E ™E  ™E (™E 0™E 8™E @™E H™E P™E X™E `™E h™E p™E x™E €™E ˆ™E �™E ˜™E  ™E ¨™E °™E ¸™E À™E È™E Ð™E Ø™E à™E è™E ð™E ø™E  šE šE šE šE  šE (šE 0šE 8šE @šE HšE PšE XšE `šE hšE pšE xšE €šE ˆšE �šE ˜šE  šE ¨šE °šE ¸šE ÀšE ÈšE ÐšE ØšE àšE èšE ðšE øšE  ›E ›E ›E ›E  ›E (›E 0›E 8›E @›E H›E P›E X›E `›E h›E p›E x›E €›E ˆ›E �›E ˜›E  ›E ¨›E °›E ¸›E À›E È›E Ð›E Ø›E à›E è›E ð›E ø›E  œE œE œE œE  œE (œE 0œE 8œE @œE HœE PœE XœE `œE hœE pœE xœE €œE ˆœE �œE ˜œE  œE ¨œE °œE ¸œE ÀœE ÈœE ÐœE ØœE àœE èœE ðœE øœE  �E �E �E �E  �E (�E 0�E 8�E @�E H�E P�E X�E `�E h�E p�E x�E €�E ˆ�E ��E ˜�E  �E ¨�E °�E ¸�E À�E È�E Ð�E Ø�E à�E è�E ð�E ø�E  žE žE žE žE  žE (žE 0žE 8žE @žE HžE PžE XžE `žE hžE pžE xžE €žE ˆžE �žE ˜žE  žE ¨žE °žE ¸žE ÀžE ÈžE ÐžE ØžE àžE èžE ðžE øžE  ŸE ŸE ŸE ŸE  ŸE (ŸE 0ŸE 8ŸE @ŸE HŸE PŸE XŸE `ŸE hŸE pŸE xŸE €ŸE ˆŸE �ŸE ˜ŸE  ŸE ¨ŸE °ŸE ¸ŸE ÀŸE ÈŸE ÐŸE ØŸE àŸE èŸE ðŸE øŸE   E  E  E  E   E ( E 0 E 8 E @ E H E P E X E ` E h E p E x E € E ˆ E � E ˜ E   E ¨ E ° E ¸ E À E È E Ð E Ø E à E è E ð E ø E  ¡E ¡E ¡E ¡E  ¡E (¡E 0¡E 8¡E @¡E H¡E P¡E X¡E `¡E h¡E p¡E x¡E €¡E ˆ¡E �¡E ˜¡E  ¡E ¨¡E °¡E ¸¡E À¡E È¡E Ð¡E Ø¡E à¡E è¡E ð¡E ø¡E  ¢E ¢E ¢E ¢E  ¢E (¢E 0¢E 8¢E @¢E H¢E P¢E X¢E `¢E h¢E p¢E x¢E €¢E ˆ¢E �¢E ˜¢E  ¢E ¨¢E °¢E ¸¢E À¢E È¢E Ð¢E Ø¢E à¢E è¢E ð¢E ø¢E  £E £E £E £E  £E (£E 0£E 8£E @£E H£E P£E X£E `£E h£E p£E x£E €£E ˆ£E �£E ˜£E  £E ¨£E °£E ¸£E À£E È£E Ð£E Ø£E à£E è£E ð£E ø£E  ¤E ¤E ¤E ¤E  ¤E (¤E 0¤E 8¤E @¤E H¤E P¤E X¤E `¤E h¤E p¤E x¤E €¤E ˆ¤E �¤E ˜¤E  ¤E ¨¤E °¤E ¸¤E À¤E È¤E Ð¤E Ø¤E à¤E è¤E ð¤E ø¤E  ¥E ¥E ¥E ¥E  ¥E (¥E 0¥E 8¥E @¥E H¥E P¥E X¥E `¥E h¥E p¥E x¥E €¥E ˆ¥E �¥E ˜¥E  ¥E ¨¥E °¥E ¸¥E À¥E È¥E Ð¥E Ø¥E à¥E è¥E ð¥E ø¥E  ¦E ¦E ¦E ¦E  ¦E (¦E 0¦E 8¦E @¦E H¦E P¦E X¦E `¦E h¦E p¦E x¦E €¦E ˆ¦E �¦E ˜¦E  ¦E ¨¦E °¦E ¸¦E À¦E È¦E Ð¦E Ø¦E à¦E è¦E ð¦E ø¦E  §E §E §E §E  §E (§E 0§E 8§E @§E H§E P§E X§E `§E h§E p§E x§E €§E ˆ§E �§E ˜§E  §E ¨§E °§E ¸§E À§E È§E Ð§E Ø§E à§E è§E ð§E ø§E  ¨E ¨E ¨E ¨E  ¨E (¨E 0¨E 8¨E @¨E H¨E P¨E X¨E `¨E h¨E p¨E x¨E €¨E ˆ¨E �¨E ˜¨E  ¨E ¨¨E °¨E ¸¨E À¨E È¨E Ð¨E Ø¨E à¨E è¨E ð¨E ø¨E  ©E ©E ©E ©E  ©E (©E 0©E 8©E @©E H©E P©E X©E `©E h©E p©E x©E €©E ˆ©E �©E ˜©E  ©E ¨©E °©E ¸©E À©E È©E Ð©E Ø©E à©E è©E ð©E ø©E  ªE ªE ªE ªE  ªE (ªE 0ªE 8ªE @ªE HªE PªE XªE `ªE hªE pªE xªE €ªE ˆªE �ªE ˜ªE  ªE ¨ªE °ªE ¸ªE ÀªE ÈªE ÐªE ØªE àªE èªE ðªE øªE  «E «E «E «E  «E («E 0«E 8«E @«E H«E P«E X«E `«E h«E p«E x«E €«E ˆ«E �«E ˜«E  «E ¨«E °«E ¸«E À«E È«E Ð«E Ø«E à«E è«E ð«E ø«E  ¬E ¬E ¬E ¬E  ¬E (¬E 0¬E 8¬E @¬E H¬E P¬E X¬E `¬E h¬E p¬E x¬E €¬E ˆ¬E �¬E ˜¬E  ¬E ¨¬E °¬E ¸¬E À¬E È¬E Ð¬E Ø¬E à¬E è¬E ð¬E ø¬E  ­E ­E ­E ­E  ­E (­E 0­E 8­E @­E H­E P­E X­E `­E h­E p­E x­E €­E ˆ­E �­E ˜­E  ­E ¨­E °­E ¸­E À­E È­E Ð­E Ø­E à­E è­E ð­E ø­E  ®E ®E ®E ®E  ®E (®E 0®E 8®E @®E H®E P®E X®E `®E h®E p®E x®E €®E ˆ®E �®E ˜®E  ®E ¨®E °®E ¸®E À®E È®E Ð®E Ø®E à®E è®E ð®E ø®E  ¯E ¯E ¯E ¯E  ¯E (¯E 0¯E 8¯E @¯E H¯E P¯E X¯E `¯E h¯E p¯E x¯E €¯E ˆ¯E �¯E ˜¯E  ¯E ¨¯E °¯E ¸¯E À¯E È¯E Ð¯E Ø¯E à¯E è¯E ð¯E ø¯E  °E °E °E °E  °E (°E 0°E 8°E @°E H°E P°E X°E `°E h°E p°E x°E €°E ˆ°E �°E ˜°E  °E ¨°E °°E ¸°E À°E È°E Ð°E Ø°E à°E è°E ð°E ø°E  ±E ±E ±E ±E  ±E (±E 0±E 8±E @±E H±E P±E X±E `±E h±E p±E x±E €±E ˆ±E �±E ˜±E  ±E ¨±E °±E ¸±E À±E È±E Ð±E Ø±E à±E è±E ð±E ø±E  ²E ²E ²E ²E  ²E (²E 0²E 8²E @²E H²E P²E X²E `²E h²E p²E x²E €²E ˆ²E �²E ˜²E  ²E ¨²E °²E ¸²E À²E È²E Ð²E Ø²E à²E è²E ð²E ø²E  ³E ³E ³E ³E  ³E (³E 0³E 8³E @³E H³E P³E X³E `³E h³E p³E x³E €³E ˆ³E �³E ˜³E  ³E ¨³E °³E ¸³E À³E È³E Ð³E Ø³E à³E è³E ð³E ø³E  ´E ´E ´E ´E  ´E (´E 0´E 8´E @´E H´E P´E X´E `´E h´E p´E x´E €´E ˆ´E �´E ˜´E  ´E ¨´E °´E ¸´E À´E È´E Ð´E Ø´E à´E è´E ð´E ø´E  µE µE µE µE  µE (µE 0µE 8µE @µE HµE PµE XµE `µE hµE pµE xµE €µE ˆµE �µE ˜µE  µE ¨µE °µE ¸µE ÀµE ÈµE ÐµE ØµE àµE èµE ðµE øµE  ¶E ¶E ¶E ¶E  ¶E (¶E 0¶E 8¶E @¶E H¶E P¶E X¶E `¶E h¶E p¶E x¶E €¶E ˆ¶E �¶E ˜¶E  ¶E ¨¶E °¶E ¸¶E À¶E È¶E Ð¶E Ø¶E à¶E è¶E ð¶E ø¶E  ·E ·E ·E ·E  ·E (·E 0·E 8·E @·E H·E P·E X·E `·E h·E p·E x·E €·E ˆ·E �·E ˜·E  ·E ¨·E °·E ¸·E À·E È·E Ð·E Ø·E à·E è·E ð·E ø·E  ¸E ¸E ¸E ¸E  ¸E (¸E 0¸E 8¸E @¸E H¸E P¸E X¸E `¸E h¸E p¸E x¸E €¸E ˆ¸E �¸E ˜¸E  ¸E ¨¸E °¸E ¸¸E À¸E È¸E Ð¸E Ø¸E à¸E è¸E ð¸E ø¸E  ¹E ¹E ¹E ¹E  ¹E (¹E 0¹E 8¹E @¹E H¹E P¹E X¹E `¹E h¹E p¹E x¹E €¹E ˆ¹E �¹E ˜¹E  ¹E ¨¹E °¹E ¸¹E À¹E È¹E Ð¹E Ø¹E à¹E è¹E ð¹E ø¹E  ºE ºE ºE ºE  ºE (ºE 0ºE 8ºE @ºE HºE PºE XºE `ºE hºE pºE xºE €ºE ˆºE �ºE ˜ºE  ºE ¨ºE °ºE ¸ºE ÀºE ÈºE ÐºE ØºE àºE èºE ðºE øºE  »E »E »E »E  »E (»E 0»E 8»E @»E H»E P»E X»E `»E h»E p»E x»E €»EÙ53ee53c46-38f7-11f0-16c9-2b093684d981/a7554ac9055de0b8„¦layout‚¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data‘ƒ¡yÈ.à                                                                            ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌÌ=ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>ÍÌL>š™™>š™™>š™™>š™™>š™™>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>ÍÌÌ>   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?   ?š™?š™?š™?š™?š™?š™?š™?š™?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?333?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?ÍÌL?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?fff?  €?  €?  €?  €?  €?  €?  €?  €?  €?  €?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?ÍÌŒ?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?š™™?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?ff¦?33³?33³?33³?33³?33³?33³?33³?33³?  À?  À?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?ÍÌÌ?š™Ù?š™Ù?š™Ù?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?ffæ?33ó?33ó?33ó?   @   @   @   @   @   @   @ff@ff@ff@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@ÍÌ@33@33@33@33@š™@š™@š™@š™@š™@š™@š™@   @   @ff&@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@ÍÌ,@333@333@333@333@333@333@333@333@333@333@š™9@š™9@š™9@š™9@  @@  @@  @@  @@  @@  @@  @@  @@ffF@ffF@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@ÍÌL@33S@33S@33S@33S@š™Y@  `@  `@  `@  `@  `@fff@fff@fff@fff@ÍÌl@ÍÌl@ÍÌl@ÍÌl@ÍÌl@ÍÌl@ÍÌl@ÍÌl@ÍÌl@ÍÌl@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@š™y@33ƒ@33ƒ@33ƒ@33ƒ@33ƒ@33ƒ@33ƒ@33ƒ@33ƒ@ff†@ff†@ff†@ff†@š™‰@š™‰@š™‰@ÍÌŒ@  �@  �@  �@  �@  �@  �@  �@  �@  �@33“@33“@ff–@ff–@ff–@ff–@ff–@ff–@ff–@ff–@ff–@š™™@š™™@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@ÍÌœ@   @   @   @   @   @   @   @   @33£@33£@33£@33£@ff¦@ff¦@ff¦@ff¦@ff¦@ff¦@ff¦@ff¦@ff¦@ff¦@ff¦@ff¦@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@ÍÌ¬@  °@  °@  °@  °@ff¶@ff¶@ff¶@ff¶@ff¶@ff¶@š™¹@š™¹@š™¹@š™¹@ÍÌ¼@ÍÌ¼@33Ã@33Ã@33Ã@33Ã@ffÆ@ffÆ@ffÆ@ffÆ@ffÆ@ffÆ@ÍÌÌ@  Ð@  Ð@33Ó@ffÖ@š™Ù@š™Ù@š™Ù@š™Ù@š™Ù@ÍÌÜ@  à@  à@33ã@33ã@ffæ@š™é@š™é@ÍÌì@ÍÌì@ÍÌì@ÍÌì@  ð@  ð@  ð@  ð@  ð@ÍÌü@   A   Aš™Aš™A33A33A33A33A33A33A33AffA  Aš™	A33AÍÌAÍÌAÍÌAÍÌAÍÌAÍÌAÍÌAÍÌAffAffAš™A33AÍÌAffAffAffAffAffAffA  Aš™Aš™AÍÌAÍÌAÍÌAÍÌAffAffA   A   Aš™!Aš™!Aš™!A33#AÍÌ$AÍÌ$AÍÌ$AÍÌ$Aff&Aff&Aš™)Aš™)Aš™)A33+AÍÌ,AÍÌ,AÍÌ,AÍÌ,AÍÌ,Aff.Aff.Aff.Aš™1Aš™1AÍÌ4AÍÌ4Aff6Aff6Aff6A  8A  8A  8A  8A  8A33;A33;AÍÌ<AÍÌ<AÍÌ<Aff>A33CA33CA33CA33CAÍÌDAffFAffFAffFA  HA  HA  HAš™IAš™IA33KA33KAffNAffNAffNA  PA  PA  PA  PA33SA33SA33SAffVAffVAffVA  XAš™YAš™YAš™YA33[A33[A33[AÍÌ\Aff^A  `A  `A  `Aš™aA33cAÍÌdAÍÌdAÍÌdAfffAfffA  hAš™iAš™iA33kA33kAÍÌlAÍÌlAÍÌlAÍÌlAffnA  pAš™qAš™qA33sA33sA33sA33sAffvAffvAffvAffvAš™yAš™yAš™yAš™yAš™yA33{Aff~Aff~A  €A  €Aš™�Aš™�Aš™�Aš™�Aš™�Aš™�Aff‚Aff‚A33ƒA  „Aš™…Aff†Aff†Aff†A33‡A33‡A  ˆA  ˆAÍÌˆAÍÌˆAš™‰AffŠA33‹A33‹A  ŒAÍÌŒAš™�AffŽAffŽAffŽA33�A  �AÍÌ�AÍÌ�Aš™‘Aš™‘Aš™‘Aff’Aff’A  ”A  ”Aš™•Aff–Aff–Aff–Aff–Aff–A33—A33—A33—A33—Aš™™A33›A  œA  œA  œA  œA  œAÍÌœAÍÌœAÍÌœAš™�AffžA   AÍÌ Aš™¡Aš™¡Aš™¡Aff¢Aff¢Aff¢A33£A  ¤A  ¤AÍÌ¤Aš™¥Aš™¥Aš™¥Aš™¥A33§A  ¨AÍÌ¨Aš™©Aš™©AffªA33«A33«A33«A33«A33«A33«AÍÌ¬Aff®Aff®A  °A  °A  °A  °A  °AÍÌ°AÍÌ°AÍÌ°AÍÌ°Aš™±Aš™±Aff²A  ´A  ´AÍÌ´Aff¶Aff¶Aff¶Aff¶Aff¶Aff¶Aff¶AÍÌ¸Aš™¹Aš™¹Aš™¹Aš™¹A33»A33»A33»A33»AÍÌ¼Aš™½Aš™½Aff¾Aff¾Aff¾A  ÀA  ÀA  ÀAÍÌÀAÍÌÀAš™ÁAffÂAffÂA33ÃA33ÃAÍÌÄAÍÌÄAš™ÅAš™ÅAš™ÅA33ÇA33ÇA33ÇA33ÇA33ÇAš™ÉAš™ÉAffÊA33ËA33ËA33ËA33ËA  ÌA  ÌAÍÌÌAffÎAffÎA  ÐAÍÌÐAÍÌÐAÍÌÐAÍÌÐAš™ÑAš™ÑAš™ÑAffÒAffÒA  ÔA  ÔAÍÌÔAš™ÕAffÖAffÖAffÖAffÖAffÖA33×A33×A  ØAÍÌØAš™ÙA33ÛA  ÜA  ÜA  ÜA  ÜAÍÌÜAÍÌÜAffÞA33ßA33ßA33ßA  àA  àAÍÌàAÍÌàAš™áAš™áA33ãA33ãAÍÌäAš™åAffæAffæAffæAffæAffæAffæAffæAffæAš™éAffêA33ëA  ìAÍÌìAÍÌìAÍÌìAÍÌìAÍÌìAÍÌìAš™íA33ïA33ïAš™ñAffòA33óA33óA33óA33óA33óA33óA33óAÍÌôAfföA33÷A33÷A  øAÍÌøAÍÌøAÍÌøAÍÌøAÍÌøAš™ùAš™ùA33ûA  üA  üAš™ýAš™ýAš™ýAš™ýAš™ýAffþAffþAff BÍÌ B33B  B  B  B  B  BffBffBffBffB33Bš™BÍÌB33B33B33B33B33B33B33Bš™B  B33Bš™Bš™B  B  B  B  B  BffB33	Bff
BÍÌ
BÍÌ
BÍÌ
BÍÌ
BÍÌ
BÍÌ
BÍÌ
BÍÌ
B33Bš™BffBš™Bš™Bš™Bš™B  B  B  B  BffBš™B  B  BffBffBÍÌB33B33B33Bš™Bš™B  BÍÌB33B33Bš™Bš™Bš™Bš™Bš™Bš™BffBš™B  B  B  B  BffBffBffBffBÍÌB33B  BffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B33Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  BffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBffBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  B  BffBffBffBffBffBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌBÍÌB33B33B33B33B33Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™Bš™B  B  B  BffBffBffBffBffBffBffBffBffBffBffBffBffBÍÌBÍÌBÍÌB33B33B33B33B33B33B33B33B33B33B33B33B33B33B33Bš™Bš™Bš™Bš™Bš™Bš™B   B   B   B   B   B   B   B   B   B   B   B   B   Bff Bff Bff Bff BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ BÍÌ B33!B33!B33!B33!B33!B33!B33!B33!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!Bš™!B  "B  "B  "B  "B  "B  "B  "B  "B  "Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"Bff"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"BÍÌ"B33#B33#B33#B33#B33#Bš™#Bš™#Bš™#Bš™#Bš™#Bš™#B  $B  $B  $B  $B  $B  $B  $B  $Bff$Bff$Bff$Bff$BÍÌ$BÍÌ$BÍÌ$BÍÌ$B33%B33%B33%B33%B33%B33%B33%B33%Bš™%Bš™%Bš™%Bš™%B  &B  &B  &B  &B  &Bff&Bff&Bff&Bff&Bff&Bff&Bff&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&BÍÌ&B33'Bš™'Bš™'Bš™'Bš™'Bš™'Bš™'B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (B  (Bff(Bff(Bff(Bff(Bff(B33)B33)B33)B33)B33)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)Bš™)B  *BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*BÍÌ*B33+B33+B33+Bš™+Bš™+Bš™+Bš™+B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,B  ,Bff,Bff,Bff,Bff,Bff,B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-B33-Bš™-Bš™-Bš™-Bš™-Bš™-B  .B  .Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.Bff.BÍÌ.BÍÌ.BÍÌ.B33/B33/B33/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/Bš™/B  0Bff0Bff0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0BÍÌ0B331Bš™1B  2B  2B  2B  2B  2B  2B  2B  2B  2B  2B  2B  2B  2B  2B  2B  2BÍÌ2BÍÌ2B333B333B333B333B333B333B333B333B333B333B333B333B333B333Bš™3Bš™3B  4B  4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4Bff4B335B335Bš™5Bš™5B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6B  6Bff6Bff6Bff6Bff6BÍÌ6B337B337Bš™7Bš™7Bš™7Bš™7Bš™7Bš™7Bš™7Bš™7Bš™7B  8B  8B  8B  8B  8B  8B  8Bff8BÍÌ8BÍÌ8BÍÌ8BÍÌ8B339B339B339B339B339B339Bš™9Bš™9Bš™9Bš™9Bš™9B  :B  :B  :B  :Bff:Bff:Bff:Bff:Bff:Bff:Bff:B33;B33;B33;B33;B33;B33;B33;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bš™;Bff<Bff<Bff<Bff<BÍÌ<BÍÌ<BÍÌ<BÍÌ<B33=B33=B33=B33=B33=B33=B33=B33=B33=Bš™=Bš™=Bš™=Bš™=Bš™=B  >B  >Bff>Bff>Bff>Bff>Bff>Bff>Bff>Bff>BÍÌ>BÍÌ>B33?B33?B33?B33?Bš™?Bš™?Bš™?Bš™?Bš™?Bš™?B  @B  @B  @B  @B  @B  @B  @Bff@Bff@Bff@Bff@BÍÌ@BÍÌ@BÍÌ@B33AB33AB33AB33ABš™ABš™ABš™ABš™ABš™ABš™ABš™ABš™ABš™AB  BB  BBffBBffBBffBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBBÍÌBB33CB33CB33CB33CB33CB33CB33CBš™CBš™CBš™CBš™CB  DBffDBffDBffDBffDBffDBffDBffDBÍÌDBÍÌDBÍÌDBÍÌDBÍÌDBÍÌDB33EB33EB33EB33EB33EBš™EBš™EBš™EBš™EBš™EBš™EB  FBffFBffFBffFBffFBffFBffFBffFBffFBffFBffFBffFBÍÌFB33GB33GB33GBš™GBš™GBš™GBš™GBš™GB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HB  HBffHBffHBffHBffHBÍÌHB33IB33IB33IB33IB33IBš™IBš™IBš™IBš™IBš™IBš™IBš™IBš™IBš™IBš™IBš™IBš™IBš™IB  JBffJBffJBÍÌJB33KB33KB33KB33KB33KB33KB33KB33KB33KB33KB33KB33KB33KB33KBš™KB  LB  LBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLBÍÌLB33MB33MB33MB33MB  NB  NB  NBffNBffNBffNBffNBffNBffNBffNBffNBffNBffNBffNBffNBÍÌNB33OB33OBš™OBš™OBš™OBš™OBš™OB  PB  PB  PB  PB  PB  PB  PB  PB  PB  PBffPBÍÌPBÍÌPB33QB33QB33QB33QB33QB33QB33QB33QBš™QBš™QBš™QBš™QBš™QBš™QB  RB  RBÍÌRBÍÌRBÍÌRBÍÌRBÍÌRBÍÌRBÍÌRBÍÌRBÍÌRBÍÌRB33SB33SB33SB33SB33SB33SBš™SB  TB  TB  TB  TB  TBffTBffTBffTBffTBffTBffTBÍÌTBÍÌTBÍÌTBÍÌTBÍÌTBÍÌTBÍÌTB33UB33UBš™UB  VB  VB  VB  VB  VB  VB  VB  VB  VB  VB  VB  VB  VBffVBffVBffVB33WB33WB33WBš™WBš™WBš™WBš™WBš™WBš™WBš™WBš™WBš™WBš™WBš™WBš™WBš™WB  XB  XBffXBffXBffXBÍÌXBÍÌXBÍÌXBÍÌXBÍÌXBÍÌXBÍÌXB33YB33YB33YB33YB33YB33YB33YB33YBš™YBffZBffZBffZBffZBffZBffZBffZBffZBffZBÍÌZBÍÌZBÍÌZBÍÌZBÍÌZBÍÌZBÍÌZB33[B  \B  \B  \B  \B  \B  \B  \B  \B  \B  \B  \B  \B  \Bff\Bff\Bff\BÍÌ\BÍÌ\BÍÌ\BÍÌ\BÍÌ\B33]B33]B33]Bš™]Bš™]Bš™]Bš™]Bš™]Bš™]Bš™]Bš™]Bš™]B  ^B  ^B  ^B  ^B  ^B  ^Bff^Bff^Bff^Bff^B33_B33_B33_B33_B33_B33_B33_B33_B33_B33_B33_B33_B33_B33_B33_Bš™_Bš™_B  `Bff`Bff`Bff`Bff`Bff`Bff`BÍÌ`BÍÌ`BÍÌ`BÍÌ`BÍÌ`BÍÌ`BÍÌ`B33aB33aB33aBš™aBš™aB  bB  bB  bB  bB  bB  bB  bB  bB  bB  bBffbBffbBffbBÍÌbBÍÌbBÍÌbB33cB33cBš™cBš™cBš™cBš™cBš™cBš™cBš™cBš™cBš™cBš™cBš™cBš™cB  dB  dBffdBÍÌdBÍÌdB33eB33eB33eB33eB33eB33eB33eB33eB33eB33eB33eB33eB33eBš™eB  fB  fBfffBfffBfffBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfBÍÌfB33gB33gB33gBš™gBš™gB  hB  hB  hB  hB  hB  hB  hBffhBffhBffhBffhBÍÌhBÍÌhBÍÌhB33iB33iBš™iBš™iBš™iBš™iBš™iBš™iBš™iBš™iBš™iBš™iBš™iBš™iB  jB  jBffjBffjBffjBÍÌjBÍÌjB33kB33kB33kB33kB33kB33kB33kB33kB33kB33kB33kBš™kB  lB  lB  lB  lB  lBfflBÍÌlBÍÌlBÍÌlBÍÌlBÍÌlBÍÌlBÍÌlBÍÌlBÍÌlBÍÌlB33mB33mB33mBš™mBš™mB  nB  nB  nB  nB  nB  nB  nBffnBffnBffnBffnBffnBffnBffnB33oB33oB33oBš™oBš™oB  pB  pB  pB  pBffpBffpBffpBffpBffpBffpBffpBffpBÍÌpBÍÌpBÍÌpBÍÌpBÍÌpBÍÌpBÍÌpBÍÌpB33qB33qB33qB33qBš™qBš™qBš™qBš™qBš™qBš™qBš™qBš™qBš™qB  rBffrBffrBÍÌrBÍÌrBÍÌrBÍÌrBÍÌrBÍÌrBÍÌrBÍÌrB33sB33sB33sB33sB33sBš™sBš™sBš™sB  tB  tB  tB  tBfftBfftBfftBfftBÍÌtBÍÌtBÍÌtBÍÌtBÍÌtBÍÌtBÍÌtB33uB33uB33uB33uB33uB  vB  vB  vB  vBffvBffvBffvBffvBffvBffvBffvBffvBffvBÍÌvBÍÌvBÍÌvBÍÌvBÍÌvB33wB33wB33wBš™wBš™wBš™wB  xB  xB  xB  xB  xB  xB  xB  xBffxBffxBffxBffxBÍÌxBÍÌxBÍÌxBÍÌxB33yB33yBš™yBš™yBš™yBš™yBš™yBš™yBš™yBš™yB  zB  zB  zB  zBffzBffzBÍÌzBÍÌzB33{B33{B33{B33{B33{B33{B33{B33{B33{Bš™{Bš™{Bš™{Bff|Bff|BÍÌ|BÍÌ|BÍÌ|B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B33}B  ~B  ~B  ~Bff~Bff~B33B33B33B33B33B33B33B33B33B33B33B33B33B33B33Bš™B  €B33€Bff€Bff€Bff€Bff€Bš™€Bš™€Bš™€Bš™€Bš™€Bš™€Bš™€Bš™€Bš™€Bš™€BÍÌ€BÍÌ€BÍÌ€B  �B33�B33�B33�Bff�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�Bš™�B  ‚B33‚Bff‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚Bš™‚B33ƒB33ƒBffƒBffƒBffƒBš™ƒBš™ƒBš™ƒBš™ƒBš™ƒBš™ƒBš™ƒBš™ƒBš™ƒBš™ƒBš™ƒB  „B  „B  „B  „Bff„Bff„Bff„Bš™„Bš™„Bš™„Bš™„Bš™„Bš™„Bš™„Bš™„Bš™„Bš™„BÍÌ„B  …B  …B33…B33…B33…B33…Bff…Bff…Bff…Bff…Bš™…Bš™…Bš™…Bš™…Bš™…Bš™…Bš™…Bš™…Bš™…Bš™…Bš™…Bš™…BÍÌ…B  †B33†B33†Bff†Bff†Bff†Bff†Bš™†Bš™†Bš™†Bš™†Bš™†Bš™†Bš™†Bš™†BÍÌ†BÍÌ†B  ‡B33‡B33‡B33‡B33‡B33‡Bff‡Bff‡Bff‡Bff‡Bff‡Bš™‡Bš™‡Bš™‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡BÍÌ‡B33ˆB33ˆB33ˆB33ˆBffˆBffˆBffˆBffˆBš™ˆBš™ˆBš™ˆBš™ˆBš™ˆBš™ˆBš™ˆBš™ˆBš™ˆBÍÌˆB33‰B33‰B33‰Bff‰Bff‰Bff‰Bff‰Bff‰Bff‰Bff‰Bff‰Bš™‰Bš™‰Bš™‰Bš™‰BÍÌ‰B33ŠB33ŠB33ŠBffŠBffŠBffŠBffŠBffŠBffŠBffŠBffŠBffŠBffŠBffŠBš™ŠBš™ŠBš™ŠBÍÌŠBÍÌŠB  ‹B  ‹B  ‹B33‹B33‹B33‹Bff‹Bff‹Bff‹Bff‹Bff‹Bff‹Bff‹Bff‹Bff‹Bff‹Bš™‹Bš™‹Bš™‹Bš™‹BÍÌ‹BÍÌ‹B  ŒB33ŒBffŒBffŒBffŒBffŒBffŒBffŒBffŒB¤type§scatter¡xÈ.à  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA  àA  èA  ðA  øA   B  B  B  B  B  B  B  B   B  $B  (B  ,B  0B  4B  8B  <B  @B  DB  HB  LB  PB  TB  XB  \B  `B  dB  hB  lB  pB  tB  xB  |B  €B  ‚B  „B  †B  ˆB  ŠB  ŒB  ŽB  �B  ’B  ”B  –B  ˜B  šB  œB  žB   B  ¢B  ¤B  ¦B  ¨B  ªB  ¬B  ®B  °B  ²B  ´B  ¶B  ¸B  ºB  ¼B  ¾B  ÀB  ÂB  ÄB  ÆB  ÈB  ÊB  ÌB  ÎB  ÐB  ÒB  ÔB  ÖB  ØB  ÚB  ÜB  ÞB  àB  âB  äB  æB  èB  êB  ìB  îB  ðB  òB  ôB  öB  øB  úB  üB  þB   C  C  C  C  C  C  C  C  C  	C  
C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C  C   C  !C  "C  #C  $C  %C  &C  'C  (C  )C  *C  +C  ,C  -C  .C  /C  0C  1C  2C  3C  4C  5C  6C  7C  8C  9C  :C  ;C  <C  =C  >C  ?C  @C  AC  BC  CC  DC  EC  FC  GC  HC  IC  JC  KC  LC  MC  NC  OC  PC  QC  RC  SC  TC  UC  VC  WC  XC  YC  ZC  [C  \C  ]C  ^C  _C  `C  aC  bC  cC  dC  eC  fC  gC  hC  iC  jC  kC  lC  mC  nC  oC  pC  qC  rC  sC  tC  uC  vC  wC  xC  yC  zC  {C  |C  }C  ~C  C  €C €€C  �C €�C  ‚C €‚C  ƒC €ƒC  „C €„C  …C €…C  †C €†C  ‡C €‡C  ˆC €ˆC  ‰C €‰C  ŠC €ŠC  ‹C €‹C  ŒC €ŒC  �C €�C  ŽC €ŽC  �C €�C  �C €�C  ‘C €‘C  ’C €’C  “C €“C  ”C €”C  •C €•C  –C €–C  —C €—C  ˜C €˜C  ™C €™C  šC €šC  ›C €›C  œC €œC  �C €�C  žC €žC  ŸC €ŸC   C € C  ¡C €¡C  ¢C €¢C  £C €£C  ¤C €¤C  ¥C €¥C  ¦C €¦C  §C €§C  ¨C €¨C  ©C €©C  ªC €ªC  «C €«C  ¬C €¬C  ­C €­C  ®C €®C  ¯C €¯C  °C €°C  ±C €±C  ²C €²C  ³C €³C  ´C €´C  µC €µC  ¶C €¶C  ·C €·C  ¸C €¸C  ¹C €¹C  ºC €ºC  »C €»C  ¼C €¼C  ½C €½C  ¾C €¾C  ¿C €¿C  ÀC €ÀC  ÁC €ÁC  ÂC €ÂC  ÃC €ÃC  ÄC €ÄC  ÅC €ÅC  ÆC €ÆC  ÇC €ÇC  ÈC €ÈC  ÉC €ÉC  ÊC €ÊC  ËC €ËC  ÌC €ÌC  ÍC €ÍC  ÎC €ÎC  ÏC €ÏC  ÐC €ÐC  ÑC €ÑC  ÒC €ÒC  ÓC €ÓC  ÔC €ÔC  ÕC €ÕC  ÖC €ÖC  ×C €×C  ØC €ØC  ÙC €ÙC  ÚC €ÚC  ÛC €ÛC  ÜC €ÜC  ÝC €ÝC  ÞC €ÞC  ßC €ßC  àC €àC  áC €áC  âC €âC  ãC €ãC  äC €äC  åC €åC  æC €æC  çC €çC  èC €èC  éC €éC  êC €êC  ëC €ëC  ìC €ìC  íC €íC  îC €îC  ïC €ïC  ðC €ðC  ñC €ñC  òC €òC  óC €óC  ôC €ôC  õC €õC  öC €öC  ÷C €÷C  øC €øC  ùC €ùC  úC €úC  ûC €ûC  üC €üC  ýC €ýC  þC €þC  ÿC €ÿC   D @ D € D À D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  	D @	D €	D À	D  
D @
D €
D À
D  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD  D @D €D ÀD   D @ D € D À D  !D @!D €!D À!D  "D @"D €"D À"D  #D @#D €#D À#D  $D @$D €$D À$D  %D @%D €%D À%D  &D @&D €&D À&D  'D @'D €'D À'D  (D @(D €(D À(D  )D @)D €)D À)D  *D @*D €*D À*D  +D @+D €+D À+D  ,D @,D €,D À,D  -D @-D €-D À-D  .D @.D €.D À.D  /D @/D €/D À/D  0D @0D €0D À0D  1D @1D €1D À1D  2D @2D €2D À2D  3D @3D €3D À3D  4D @4D €4D À4D  5D @5D €5D À5D  6D @6D €6D À6D  7D @7D €7D À7D  8D @8D €8D À8D  9D @9D €9D À9D  :D @:D €:D À:D  ;D @;D €;D À;D  <D @<D €<D À<D  =D @=D €=D À=D  >D @>D €>D À>D  ?D @?D €?D À?D  @D @@D €@D À@D  AD @AD €AD ÀAD  BD @BD €BD ÀBD  CD @CD €CD ÀCD  DD @DD €DD ÀDD  ED @ED €ED ÀED  FD @FD €FD ÀFD  GD @GD €GD ÀGD  HD @HD €HD ÀHD  ID @ID €ID ÀID  JD @JD €JD ÀJD  KD @KD €KD ÀKD  LD @LD €LD ÀLD  MD @MD €MD ÀMD  ND @ND €ND ÀND  OD @OD €OD ÀOD  PD @PD €PD ÀPD  QD @QD €QD ÀQD  RD @RD €RD ÀRD  SD @SD €SD ÀSD  TD @TD €TD ÀTD  UD @UD €UD ÀUD  VD @VD €VD ÀVD  WD @WD €WD ÀWD  XD @XD €XD ÀXD  YD @YD €YD ÀYD  ZD @ZD €ZD ÀZD  [D @[D €[D À[D  \D @\D €\D À\D  ]D @]D €]D À]D  ^D @^D €^D À^D  _D @_D €_D À_D  `D @`D €`D À`D  aD @aD €aD ÀaD  bD @bD €bD ÀbD  cD @cD €cD ÀcD  dD @dD €dD ÀdD  eD @eD €eD ÀeD  fD @fD €fD ÀfD  gD @gD €gD ÀgD  hD @hD €hD ÀhD  iD @iD €iD ÀiD  jD @jD €jD ÀjD  kD @kD €kD ÀkD  lD @lD €lD ÀlD  mD @mD €mD ÀmD  nD @nD €nD ÀnD  oD @oD €oD ÀoD  pD @pD €pD ÀpD  qD @qD €qD ÀqD  rD @rD €rD ÀrD  sD @sD €sD ÀsD  tD @tD €tD ÀtD  uD @uD €uD ÀuD  vD @vD €vD ÀvD  wD @wD €wD ÀwD  xD @xD €xD ÀxD  yD @yD €yD ÀyD  zD @zD €zD ÀzD  {D @{D €{D À{D  |D @|D €|D À|D  }D @}D €}D À}D  ~D @~D €~D À~D  D @D €D ÀD  €D  €D @€D `€D €€D  €D À€D à€D  �D  �D @�D `�D €�D  �D À�D à�D  ‚D  ‚D @‚D `‚D €‚D  ‚D À‚D à‚D  ƒD  ƒD @ƒD `ƒD €ƒD  ƒD ÀƒD àƒD  „D  „D @„D `„D €„D  „D À„D à„D  …D  …D @…D `…D €…D  …D À…D à…D  †D  †D @†D `†D €†D  †D À†D à†D  ‡D  ‡D @‡D `‡D €‡D  ‡D À‡D à‡D  ˆD  ˆD @ˆD `ˆD €ˆD  ˆD ÀˆD àˆD  ‰D  ‰D @‰D `‰D €‰D  ‰D À‰D à‰D  ŠD  ŠD @ŠD `ŠD €ŠD  ŠD ÀŠD àŠD  ‹D  ‹D @‹D `‹D €‹D  ‹D À‹D à‹D  ŒD  ŒD @ŒD `ŒD €ŒD  ŒD ÀŒD àŒD  �D  �D @�D `�D €�D  �D À�D à�D  ŽD  ŽD @ŽD `ŽD €ŽD  ŽD ÀŽD àŽD  �D  �D @�D `�D €�D  �D À�D à�D  �D  �D @�D `�D €�D  �D À�D à�D  ‘D  ‘D @‘D `‘D €‘D  ‘D À‘D à‘D  ’D  ’D @’D `’D €’D  ’D À’D à’D  “D  “D @“D `“D €“D  “D À“D à“D  ”D  ”D @”D `”D €”D  ”D À”D à”D  •D  •D @•D `•D €•D  •D À•D à•D  –D  –D @–D `–D €–D  –D À–D à–D  —D  —D @—D `—D €—D  —D À—D à—D  ˜D  ˜D @˜D `˜D €˜D  ˜D À˜D à˜D  ™D  ™D @™D `™D €™D  ™D À™D à™D  šD  šD @šD `šD €šD  šD ÀšD àšD  ›D  ›D @›D `›D €›D  ›D À›D à›D  œD  œD @œD `œD €œD  œD ÀœD àœD  �D  �D @�D `�D €�D  �D À�D à�D  žD  žD @žD `žD €žD  žD ÀžD àžD  ŸD  ŸD @ŸD `ŸD €ŸD  ŸD ÀŸD àŸD   D   D @ D ` D € D   D À D à D  ¡D  ¡D @¡D `¡D €¡D  ¡D À¡D à¡D  ¢D  ¢D @¢D `¢D €¢D  ¢D À¢D à¢D  £D  £D @£D `£D €£D  £D À£D à£D  ¤D  ¤D @¤D `¤D €¤D  ¤D À¤D à¤D  ¥D  ¥D @¥D `¥D €¥D  ¥D À¥D à¥D  ¦D  ¦D @¦D `¦D €¦D  ¦D À¦D à¦D  §D  §D @§D `§D €§D  §D À§D à§D  ¨D  ¨D @¨D `¨D €¨D  ¨D À¨D à¨D  ©D  ©D @©D `©D €©D  ©D À©D à©D  ªD  ªD @ªD `ªD €ªD  ªD ÀªD àªD  «D  «D @«D `«D €«D  «D À«D à«D  ¬D  ¬D @¬D `¬D €¬D  ¬D À¬D à¬D  ­D  ­D @­D `­D €­D  ­D À­D à­D  ®D  ®D @®D `®D €®D  ®D À®D à®D  ¯D  ¯D @¯D `¯D €¯D  ¯D À¯D à¯D  °D  °D @°D `°D €°D  °D À°D à°D  ±D  ±D @±D `±D €±D  ±D À±D à±D  ²D  ²D @²D `²D €²D  ²D À²D à²D  ³D  ³D @³D `³D €³D  ³D À³D à³D  ´D  ´D @´D `´D €´D  ´D À´D à´D  µD  µD @µD `µD €µD  µD ÀµD àµD  ¶D  ¶D @¶D `¶D €¶D  ¶D À¶D à¶D  ·D  ·D @·D `·D €·D  ·D À·D à·D  ¸D  ¸D @¸D `¸D €¸D  ¸D À¸D à¸D  ¹D  ¹D @¹D `¹D €¹D  ¹D À¹D à¹D  ºD  ºD @ºD `ºD €ºD  ºD ÀºD àºD  »D  »D @»D `»D €»D  »D À»D à»D  ¼D  ¼D @¼D `¼D €¼D  ¼D À¼D à¼D  ½D  ½D @½D `½D €½D  ½D À½D à½D  ¾D  ¾D @¾D `¾D €¾D  ¾D À¾D à¾D  ¿D  ¿D @¿D `¿D €¿D  ¿D À¿D à¿D  ÀD  ÀD @ÀD `ÀD €ÀD  ÀD ÀÀD àÀD  ÁD  ÁD @ÁD `ÁD €ÁD  ÁD ÀÁD àÁD  ÂD  ÂD @ÂD `ÂD €ÂD  ÂD ÀÂD àÂD  ÃD  ÃD @ÃD `ÃD €ÃD  ÃD ÀÃD àÃD  ÄD  ÄD @ÄD `ÄD €ÄD  ÄD ÀÄD àÄD  ÅD  ÅD @ÅD `ÅD €ÅD  ÅD ÀÅD àÅD  ÆD  ÆD @ÆD `ÆD €ÆD  ÆD ÀÆD àÆD  ÇD  ÇD @ÇD `ÇD €ÇD  ÇD ÀÇD àÇD  ÈD  ÈD @ÈD `ÈD €ÈD  ÈD ÀÈD àÈD  ÉD  ÉD @ÉD `ÉD €ÉD  ÉD ÀÉD àÉD  ÊD  ÊD @ÊD `ÊD €ÊD  ÊD ÀÊD àÊD  ËD  ËD @ËD `ËD €ËD  ËD ÀËD àËD  ÌD  ÌD @ÌD `ÌD €ÌD  ÌD ÀÌD àÌD  ÍD  ÍD @ÍD `ÍD €ÍD  ÍD ÀÍD àÍD  ÎD  ÎD @ÎD `ÎD €ÎD  ÎD ÀÎD àÎD  ÏD  ÏD @ÏD `ÏD €ÏD  ÏD ÀÏD àÏD  ÐD  ÐD @ÐD `ÐD €ÐD  ÐD ÀÐD àÐD  ÑD  ÑD @ÑD `ÑD €ÑD  ÑD ÀÑD àÑD  ÒD  ÒD @ÒD `ÒD €ÒD  ÒD ÀÒD àÒD  ÓD  ÓD @ÓD `ÓD €ÓD  ÓD ÀÓD àÓD  ÔD  ÔD @ÔD `ÔD €ÔD  ÔD ÀÔD àÔD  ÕD  ÕD @ÕD `ÕD €ÕD  ÕD ÀÕD àÕD  ÖD  ÖD @ÖD `ÖD €ÖD  ÖD ÀÖD àÖD  ×D  ×D @×D `×D €×D  ×D À×D à×D  ØD  ØD @ØD `ØD €ØD  ØD ÀØD àØD  ÙD  ÙD @ÙD `ÙD €ÙD  ÙD ÀÙD àÙD  ÚD  ÚD @ÚD `ÚD €ÚD  ÚD ÀÚD àÚD  ÛD  ÛD @ÛD `ÛD €ÛD  ÛD ÀÛD àÛD  ÜD  ÜD @ÜD `ÜD €ÜD  ÜD ÀÜD àÜD  ÝD  ÝD @ÝD `ÝD €ÝD  ÝD ÀÝD àÝD  ÞD  ÞD @ÞD `ÞD €ÞD  ÞD ÀÞD àÞD  ßD  ßD @ßD `ßD €ßD  ßD ÀßD àßD  àD  àD @àD `àD €àD  àD ÀàD ààD  áD  áD @áD `áD €áD  áD ÀáD àáD  âD  âD @âD `âD €âD  âD ÀâD àâD  ãD  ãD @ãD `ãD €ãD  ãD ÀãD àãD  äD  äD @äD `äD €äD  äD ÀäD àäD  åD  åD @åD `åD €åD  åD ÀåD àåD  æD  æD @æD `æD €æD  æD ÀæD àæD  çD  çD @çD `çD €çD  çD ÀçD àçD  èD  èD @èD `èD €èD  èD ÀèD àèD  éD  éD @éD `éD €éD  éD ÀéD àéD  êD  êD @êD `êD €êD  êD ÀêD àêD  ëD  ëD @ëD `ëD €ëD  ëD ÀëD àëD  ìD  ìD @ìD `ìD €ìD  ìD ÀìD àìD  íD  íD @íD `íD €íD  íD ÀíD àíD  îD  îD @îD `îD €îD  îD ÀîD àîD  ïD  ïD @ïD `ïD €ïD  ïD ÀïD àïD  ðD  ðD @ðD `ðD €ðD  ðD ÀðD àðD  ñD  ñD @ñD `ñD €ñD  ñD ÀñD àñD  òD  òD @òD `òD €òD  òD ÀòD àòD  óD  óD @óD `óD €óD  óD ÀóD àóD  ôD  ôD @ôD `ôD €ôD  ôD ÀôD àôD  õD  õD @õD `õD €õD  õD ÀõD àõD  öD  öD @öD `öD €öD  öD ÀöD àöD  ÷D  ÷D @÷D `÷D €÷D  ÷D À÷D à÷D  øD  øD @øD `øD €øD  øD ÀøD àøD  ùD  ùD @ùD `ùD €ùD  ùD ÀùD àùD  úD  úD @úD `úD €úD  úD ÀúD àúD  ûD  ûD @ûD `ûD €ûD  ûD ÀûD àûD  üD  üD @üD `üD €üD  üD ÀüD àüD  ýD  ýD @ýD `ýD €ýD  ýD ÀýD àýD  þD  þD @þD `þD €þD  þD ÀþD àþD  ÿD  ÿD @ÿD `ÿD €ÿD  ÿD ÀÿD àÿD   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  	E 	E  	E 0	E @	E P	E `	E p	E €	E �	E  	E °	E À	E Ð	E à	E ð	E  
E 
E  
E 0
E @
E P
E `
E p
E €
E �
E  
E °
E À
E Ð
E à
E ð
E  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE  E E  E 0E @E PE `E pE €E �E  E °E ÀE ÐE àE ðE   E  E   E 0 E @ E P E ` E p E € E � E   E ° E À E Ð E à E ð E  !E !E  !E 0!E @!E P!E `!E p!E €!E �!E  !E °!E À!E Ð!E à!E ð!E  "E "E  "E 0"E @"E P"E `"E p"E €"E �"E  "E °"E À"E Ð"E à"E ð"E  #E #E  #E 0#E @#E P#E `#E p#E €#E �#E  #E °#E À#E Ð#E à#E ð#E  $E $E  $E 0$E @$E P$E `$E p$E €$E �$E  $E °$E À$E Ð$E à$E ð$E  %E %E  %E 0%E @%E P%E `%E p%E €%E �%E  %E °%E À%E Ð%E à%E ð%E  &E &E  &E 0&E @&E P&E `&E p&E €&E �&E  &E °&E À&E Ð&E à&E ð&E  'E 'E  'E 0'E @'E P'E `'E p'E €'E �'E  'E °'E À'E Ð'E à'E ð'E  (E (E  (E 0(E @(E P(E `(E p(E €(E �(E  (E °(E À(E Ð(E à(E ð(E  )E )E  )E 0)E @)E P)E `)E p)E €)E �)E  )E °)E À)E Ð)E à)E ð)E  *E *E  *E 0*E @*E P*E `*E p*E €*E �*E  *E °*E À*E Ð*E à*E ð*E  +E +E  +E 0+E @+E P+E `+E p+E €+E �+E  +E °+E À+E Ð+E à+E ð+E  ,E ,E  ,E 0,E @,E P,E `,E p,E €,E �,E  ,E °,E À,E Ð,E à,E ð,E  -E -E  -E 0-E @-E P-E `-E p-E €-E �-E  -E °-E À-E Ð-E à-E ð-E  .E .E  .E 0.E @.E P.E `.E p.E €.E �.E  .E °.E À.E Ð.E à.E ð.E  /E /E  /E 0/E @/E P/E `/E p/E €/E �/E  /E °/E À/E Ð/E à/E ð/E  0E 0E  0E 00E @0E P0E `0E p0E €0E �0E  0E °0E À0E Ð0E à0E ð0E  1E 1E  1E 01E @1E P1E `1E p1E €1E �1E  1E °1E À1E Ð1E à1E ð1E  2E 2E  2E 02E @2E P2E `2E p2E €2E �2E  2E °2E À2E Ð2E à2E ð2E  3E 3E  3E 03E @3E P3E `3E p3E €3E �3E  3E °3E À3E Ð3E à3E ð3E  4E 4E  4E 04E @4E P4E `4E p4E €4E �4E  4E °4E À4E Ð4E à4E ð4E  5E 5E  5E 05E @5E P5E `5E p5E €5E �5E  5E °5E À5E Ð5E à5E ð5E  6E 6E  6E 06E @6E P6E `6E p6E €6E �6E  6E °6E À6E Ð6E à6E ð6E  7E 7E  7E 07E @7E P7E `7E p7E €7E �7E  7E °7E À7E Ð7E à7E ð7E  8E 8E  8E 08E @8E P8E `8E p8E €8E �8E  8E °8E À8E Ð8E à8E ð8E  9E 9E  9E 09E @9E P9E `9E p9E €9E �9E  9E °9E À9E Ð9E à9E ð9E  :E :E  :E 0:E @:E P:E `:E p:E €:E �:E  :E °:E À:E Ð:E à:E ð:E  ;E ;E  ;E 0;E @;E P;E `;E p;E €;EÙ53ee53c46-38f7-11f0-16c9-2b093684d981/d66ad0b4e19c289f„¦layout„¥xaxis�¥title�¤textÙ%Computation time, in expected updates¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¥yaxis�¥title�¤textÙ(Value of start state under greedy policy¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤data–„¡yÇ,    ¿Q÷>€È?›ô)@÷ãk@oS‘@,U¦@�¹µ@Â­Ã@AýÍ@·ÝÖ@¤type§scatter¤name®b = 1, uniform¡xÇ,     @úD @zE °»E @úE hF °;F øZF @zF ÄŒF hœF„¡yÇ,    .‡>Ó6C?�Ôœ?�[Î?…aö?W`@…}@%#@¼+@Iº2@¤type§scatter¤name®b = 3, uniform¡xÇ,     @úD @zE °»E @úE hF °;F øZF @zF ÄŒF hœF„¡yÇ,    <43>àØ>„¸(?Ð}Z?U]�?=�‘?Ü¸ž?�M©?ÉØ±?�¿¸?¤type§scatter¤name¯b = 10, uniform¡xÇ,     @úD @zE °»E @úE hF °;F øZF @zF ÄŒF hœF„¡yÇ,    ñ±>÷è³@œ!É@×ÖÑ@"¹×@{“Û@‘âß@I[â@˜ýã@C€å@¤type§scatter¤name°b = 1, on-policy¡xÇ,      €?  úD zE ˆ»E úE DF „;F ÄZF zF ¢ŒF„¡yÇ,    É†?>�¤¡?þuÄ?õæÝ?¿ñ?x\@ ¥@·@R¿@¨À@¤type§scatter¤name°b = 3, on-policy¡xÇ,      €?  úD zE ˆ»E úE DF „;F ÄZF zF ¢ŒF„¡yÇ,    >:>J¥õ>¼9?€“6?:”M?8wa?Ýôr?k(�?^ˆ?,Ž?¤type§scatter¤name±b = 10, on-policy¡xÇ,      €?  úD zE ˆ»E úE DF „;F ÄZF zF ¢ŒFÙ53ee53c46-38f7-11f0-16c9-2b093684d981/758f20745cddbdf8„¦layout‰¦xaxis1Œ¨showlineÃ©gridcolor¥black¨tickvalsÇ$  €?   @  @@  €@   @  À@  à@   A  A¥range×  €?   A¦domain×    ?é“>¨ticktextš          ©linecolor¥black¨showgridÃ¨gridwithÊ?€  ¨zerolineÃ¦mirrorÃ¦anchor¢y1¦yaxis1‹¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ  €?   @  @@  €@   @  À@¥range×  €?  à@¦domain×      €?¨ticktext–      ©linecolor¥black¨showgridÃ¦mirrorÃ¦anchor¢x1¨template‚¦layoutÞ ©coloraxis�¨colorbar‚¥ticks ¬outlinewidthÊ    ¥xaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white©hovermode§closest­paper_bgcolor¥white£geo†©showlakesÃ¨showlandÃ©landcolor§#E5ECF6§bgcolor¥white¬subunitcolor¥white©lakecolor¥whiteªcolorscaleƒªsequentialš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921©diverging›’Ê    §#8e0152’Ê=ÌÌÍ§#c51b7d’Ê>LÌÍ§#de77ae’Ê>™™š§#f1b6da’Ê>ÌÌÍ§#fde0ef’Ê?   §#f7f7f7’Ê?™š§#e6f5d0’Ê?333§#b8e186’Ê?LÌÍ§#7fbc41’Ê?fff§#4d9221’Ê?€  §#276419¯sequentialminusš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921¥yaxis‡©gridcolor¥white­zerolinewidthÊ@   ¥title�¨standoffÊAp  ¥ticks ­zerolinecolor¥whiteªautomarginÃ©linecolor¥white­shapedefaults�¤line�¥color§#2a3f5fªhoverlabel�¥align¤left¦mapbox�¥style¥light¥polarƒ«angularaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6ªradialaxisƒ©gridcolor¥white¥ticks ©linecolor¥white¯autotypenumbers¦strict¤font�¥color§#2a3f5f§ternary„¥aaxisƒ©gridcolor¥white¥ticks ©linecolor¥white§bgcolor§#E5ECF6¥caxisƒ©gridcolor¥white¥ticks ©linecolor¥white¥baxisƒ©gridcolor¥white¥ticks ©linecolor¥white²annotationdefaultsƒ©arrowheadÊ    ªarrowwidthÊ?€  ªarrowcolor§#2a3f5f¬plot_bgcolor§#E5ECF6¥title�¡xÊ=LÌÍ¥sceneƒ¥xaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥zaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¥yaxis‡©gridcolor¥white©gridwidthÊ@   ¯backgroundcolor§#E5ECF6¥ticks ®showbackgroundÃ­zerolinecolor¥white©linecolor¥white¨colorwayš§#636efa§#EF553B§#00cc96§#ab63fa§#FFA15A§#19d3f3§#FF6692§#B6E880§#FF97FF§#FECB52¤dataÞ ®scatterpolargl‘‚¤type®scatterpolargl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦carpet‘ƒ¥baxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¤type¦carpet¥aaxis…©gridcolor¥white¬endlinecolor§#2a3f5f®minorgridcolor¥white®startlinecolor§#2a3f5f©linecolor¥white¬scatterpolar‘‚¤type¬scatterpolar¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©parcoords‘‚¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©parcoords§scatter‘‚¤type§scatter¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ²histogram2dcontour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type²histogram2dcontourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921§contour‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§contourªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattercarpet‘‚¤type­scattercarpet¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦mesh3d‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type¦mesh3d§surface‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§surfaceªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­scattermapbox‘‚¤type­scattermapbox¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ªscattergeo‘‚¤typeªscattergeo¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ©histogram‘‚¤type©histogram¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    £pie‘‚¤type£pieªautomarginÃªchoropleth‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤typeªchoropleth©heatmapgl‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©heatmapglªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921£bar‘„¤type£bar§error_y�¥color§#2a3f5f§error_x�¥color§#2a3f5f¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   §heatmap‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type§heatmapªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921­contourcarpet‘‚¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type­contourcarpet¥table‘ƒ¤type¥table¦header‚¤line�¥color¥white¤fill�¥color§#C8D4E3¥cells‚¤line�¥color¥white¤fill�¥color§#EBF0F8©scatter3d‘ƒ¤line�¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type©scatter3d¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¨barpolar‘‚¤type¨barpolar¦marker�¤line‚¥color§#E5ECF6¥widthÊ?   ©scattergl‘‚¤type©scattergl¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    «histogram2d‘ƒ¨colorbar‚¥ticks ¬outlinewidthÊ    ¤type«histogram2dªcolorscaleš’Ê    §#0d0887’Ê=ãŽ9§#46039f’Ê>cŽ9§#7201a8’Ê>ªª«§#9c179e’Ê>ãŽ9§#bd3786’Ê?8ä§#d8576b’Ê?*ª«§#ed7953’Ê?Gr§#fb9f3a’Ê?cŽ9§#fdca26’Ê?€  §#f0f921®scatterternary‘‚¤type®scatterternary¦marker�¨colorbar‚¥ticks ¬outlinewidthÊ    ¦xaxis2Œ¨showlineÃ©gridcolor¥black¨tickvalsÇH  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A¥range×  €?  ˜A¦domain×a¶>Pú$?¨ticktextš          ©linecolor¥black¨showgridÃ¨gridwithÊ?€  ¨zerolineÃ¦mirrorÃ¦anchor¢y2¦margin„¡lÊBH  ¡bÊBH  ¡rÊBH  ¡tÊBp  ¦yaxis2‹¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇ0  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A¥range×  €?  PA¦domain×      €?¨ticktextœ            ©linecolor¥black¨showgridÃ¦mirrorÃ¦anchor¢x2¦xaxis3Œ¨showlineÃ©gridcolor¥black¨tickvalsÇl  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A  ˜A   A  ¨A  °A  ¸A  ÀA  ÈA  ÐA  ØA¥range×  €?  àA¦domain×a6?  €?¨ticktextš          ©linecolor¥black¨showgridÃ¨gridwithÊ?€  ¨zerolineÃ¦mirrorÃ¦anchor¢y3¦yaxis3‹¨showlineÃ©gridcolor¥black©gridwidthÊ?€  ¨tickvalsÇH  €?   @  @@  €@   @  À@  à@   A  A   A  0A  @A  PA  `A  pA  €A  ˆA  �A¥range×  €?  ˜A¦domain×      €?¨ticktextÜ                   ©linecolor¥black¨showgridÃ¦mirrorÃ¦anchor¢x3«annotations“‰§yanchor¦bottom§xanchor¦center¡yÊ?€  ¤font�¤sizeÊA€  ©showarrowÂ¤yref¥paper¤text¿Random policy <br> path example¤xref¥paper¡xÊ>é?‰§yanchor¦bottom§xanchor¦center¡yÊ?€  ¤font�¤sizeÊA€  ©showarrowÂ¤yref¥paper¤text¿Random policy <br> path example¤xref¥paper¡xÊ?   ‰§yanchor¦bottom§xanchor¦center¡yÊ?€  ¤font�¤sizeÊA€  ©showarrowÂ¤yref¥paper¤text¿Random policy <br> path example¤xref¥paper¡xÊ?[°¦config…¨showLinkÂ¨editableÂªresponsiveÃªstaticPlotÂªscrollZoomÃ¦frames�¤dataÜS‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡S¥yaxis¢y1¡xÖ  À?‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡G¥yaxis¢y1¡xÖ  A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  �@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x1¡y×   @  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y1¡x×  `@  À?‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  `@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖ33s@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖ33s@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  °@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖ33s@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ   @¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  �@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  °@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x1¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡W¥yaxis¢y1¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  A¤type§scatter¤text‘¡S¥yaxis¢y2¡xÖ  À?‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  HA¤type§scatter¤text‘¡G¥yaxis¢y2¡xÖ  ”A‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  ð@  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  ð@  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  ð@  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  ð@  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  ð@  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  HA  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x2¡y×  (A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y2¡x×   @  À?‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  Ð@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  ð@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  A¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  A¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  (A¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖš™Ù@‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  °@¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖÍÌLA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  A¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖffŽA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  A¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖffŽA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  (A¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖffŽA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  8A¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖffŽA‰ªshowlegendÂ¤mode¤text¥xaxis¢x2¬textposition¤left¡yÖ  HA¤type§scatter¤text‘¡W¥yaxis¢y2¡xÖffŽA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  HA¤type§scatter¤text‘¡S¥yaxis¢y3¡xÖ  À?‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  ”A¤type§scatter¤text‘¡G¥yaxis¢y3¡xÖ  ÜA‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  HA  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  HA  XA¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  XA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  HA  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  HA  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  8A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  8A  (A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  (A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  ð@  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  A¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  A  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  `@  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  `@   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?  À?¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  À?   @¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×   @  `@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  `@  �@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  �@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  ð@  ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?  À?‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  À?   @‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×   @  `@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  `@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  °@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  Ð@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  °@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  Ð@  °@¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  �@‰ªshowlegendÂ¤mode¥lines¤line�¥color¤blue¥xaxis¢x3¡y×  °@  HA¤type§scatter¤name¬Optimal Path¥yaxis¢y3¡x×  �@  À?‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  A¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  (A¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  8A¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  HA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  XA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  hA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  xA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖÍÌA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  A¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖff–A‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  HA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖffÖA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  XA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖffÖA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  hA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖffÖA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  xA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖffÖA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  „A¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖffÖA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  ŒA¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖffÖA‰ªshowlegendÂ¤mode¤text¥xaxis¢x3¬textposition¤left¡yÖ  ”A¤type§scatter¤text‘¡W¥yaxis¢y3¡xÖffÖA¥nbpkgŠ¯install_time_nsÏ   ðžV¬instantiatedÃ²installed_versions‹ªStatistics¦stdlib«Transducers¦0.4.84©StatsBase¦0.34.5®DataStructures§0.18.22§PlutoUI¦0.7.62¦Random¦stdlib¥Arrow¥2.7.4­Serialization¦stdlib¬StaticArrays¦1.9.13°HypertextLiteral¥0.9.5«PlutoPlotly¥0.4.6°terminal_outputsŒªStatisticsÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m«TransducersÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m§PlutoUIÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m¦RandomÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m¥ArrowÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m­SerializationÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m©StatsBaseÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m®DataStructuresÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m¬StaticArraysÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39mªnbpkg_syncÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m°HypertextLiteralÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m«PlutoPlotlyÚA
[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Fixing stdlib dependencies and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mStrategy failed to run.
[33m[1mâ”‚ [22m[39m  exception =
[33m[1mâ”‚ [22m[39m   The following package names could not be resolved:
[33m[1mâ”‚ [22m[39m    * Statistics (not found in project or manifest)
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:98[39m

[0m[1mResolving...[22m
[90m===[39m
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Updating registries and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Arrow"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StaticArrays"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "StatsBase"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "DataStructures"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "Transducers"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoUI"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "HypertextLiteral"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[36m[1mâ”Œ [22m[39m[36m[1mInfo: [22m[39mChecking
[36m[1mâ”‚ [22m[39m  package_name = "PlutoPlotly"
[36m[1mâ”” [22m[39m  error_str = "Pkg.Resolve.ResolverError(\"Unsatisfiable requirements detected for package Statistics [10745b16]:\\n Statistics [10745b16] log:\\n â”œâ”€possible versions are: 1.11.0 - 1.11.1 or uninstalled\\n â”œâ”€restricted to versions * by project [34115c3b], leaving only ver"[93m[1m â‹¯ 1595 bytes â‹¯ [22m[39m" versions: 1.11.0 - 1.11.1\\n â”‚ â””â”€project [34115c3b] log:\\n â”‚   â”œâ”€possible versions are: 0.0.0 or uninstalled\\n â”‚   â””â”€project [34115c3b] is fixed to version 0.0.0\\n â””â”€restricted to versions 1.10.0 by an explicit requirement â€” no versions left\", nothing)"
[33m[1mâ”Œ [22m[39m[33m[1mWarning: [22m[39mPkg operation failed. Removing Manifest.toml file and trying again...
[33m[1mâ”” [22m[39m[90m@ GracefulPkg ~/.julia/packages/GracefulPkg/iMkQe/src/apply strategies.jl:92[39m

[0m[1mResolving...[22m
[90m===[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Project.toml`
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[9a3f8284] [39m[93m~ Random â‡’ v1.11.0[39m
  [90m[9e88b42a] [39m[93m~ Serialization â‡’ v1.11.0[39m
[32m[1m    Updating[22m[39m `/tmp/jl_0VVRlI/Manifest.toml`
  [90m[6e696c72] [39m[92m+ AbstractPlutoDingetjes v1.3.2[39m
  [90m[7d9f7c33] [39m[92m+ Accessors v0.1.42[39m
  [90m[66dad0bd] [39m[92m+ AliasTables v1.1.3[39m
  [90m[dce04be8] [39m[92m+ ArgCheck v2.5.0[39m
[33mâŒ…[39m [90m[69666777] [39m[92m+ Arrow v2.7.4[39m
  [90m[31f734f8] [39m[92m+ ArrowTypes v2.3.0[39m
  [90m[198e06fe] [39m[92m+ BangBang v0.4.4[39m
  [90m[18cc8868] [39m[92m+ BaseDirs v1.3.0[39m
  [90m[9718e550] [39m[92m+ Baselet v0.1.1[39m
  [90m[c3b6d118] [39m[92m+ BitIntegers v0.3.5[39m
  [90m[5ba52731] [39m[92m+ CodecLz4 v0.4.6[39m
  [90m[6b39b394] [39m[92m+ CodecZstd v0.8.6[39m
  [90m[35d6a980] [39m[92m+ ColorSchemes v3.29.0[39m
[33mâŒ…[39m [90m[3da002f7] [39m[92m+ ColorTypes v0.11.5[39m
[32mâŒƒ[39m [90m[c3611d14] [39m[92m+ ColorVectorSpace v0.10.0[39m
[33mâŒ…[39m [90m[5ae59095] [39m[92m+ Colors v0.12.11[39m
  [90m[34da2185] [39m[92m+ Compat v4.16.0[39m
  [90m[a33af91c] [39m[92m+ CompositionsBase v0.1.2[39m
  [90m[f0e56b4a] [39m[92m+ ConcurrentUtilities v2.5.0[39m
  [90m[187b0558] [39m[92m+ ConstructionBase v1.5.8[39m
  [90m[9a962f9c] [39m[92m+ DataAPI v1.16.0[39m
  [90m[864edb3b] [39m[92m+ DataStructures v0.18.22[39m
  [90m[e2d170a0] [39m[92m+ DataValueInterfaces v1.0.0[39m
  [90m[244e2a9f] [39m[92m+ DefineSingletons v0.1.2[39m
  [90m[8bb1440f] [39m[92m+ DelimitedFiles v1.9.1[39m
  [90m[ffbed154] [39m[92m+ DocStringExtensions v0.9.4[39m
  [90m[4e289a0a] [39m[92m+ EnumX v1.0.5[39m
  [90m[e2ba6199] [39m[92m+ ExprTools v0.1.10[39m
  [90m[53c48c17] [39m[92m+ FixedPointNumbers v0.8.5[39m
  [90m[47d2ed2b] [39m[92m+ Hyperscript v0.0.5[39m
  [90m[ac1192a8] [39m[92m+ HypertextLiteral v0.9.5[39m
  [90m[b5f81e59] [39m[92m+ IOCapture v0.2.5[39m
  [90m[22cec73e] [39m[92m+ InitialValues v0.3.1[39m
  [90m[842dd82b] [39m[92m+ InlineStrings v1.4.3[39m
  [90m[3587e190] [39m[92m+ InverseFunctions v0.1.17[39m
  [90m[92d709cd] [39m[92m+ IrrationalConstants v0.2.4[39m
  [90m[82899510] [39m[92m+ IteratorInterfaceExtensions v1.0.0[39m
  [90m[692b3bcd] [39m[92m+ JLLWrappers v1.7.0[39m
  [90m[682c06a0] [39m[92m+ JSON v0.21.4[39m
  [90m[b964fa9f] [39m[92m+ LaTeXStrings v1.4.0[39m
  [90m[2ab3a3ac] [39m[92m+ LogExpFunctions v0.3.29[39m
  [90m[6c6e2e6c] [39m[92m+ MIMEs v1.1.0[39m
  [90m[1914dd2f] [39m[92m+ MacroTools v0.5.16[39m
  [90m[128add7d] [39m[92m+ MicroCollections v0.2.0[39m
  [90m[e1d29d7a] [39m[92m+ Missings v1.2.0[39m
  [90m[78c3b35d] [39m[92m+ Mocking v0.8.1[39m
  [90m[bac558e1] [39m[92m+ OrderedCollections v1.8.1[39m
  [90m[d96e819e] [39m[92m+ Parameters v0.12.3[39m
  [90m[69de0a69] [39m[92m+ Parsers v2.8.3[39m
  [90m[a03496cd] [39m[92m+ PlotlyBase v0.8.21[39m
[33mâŒ…[39m [90m[8e989ff0] [39m[92m+ PlutoPlotly v0.4.6[39m
  [90m[7f904dfe] [39m[92m+ PlutoUI v0.7.62[39m
  [90m[2dfb63ee] [39m[92m+ PooledArrays v1.4.3[39m
[33mâŒ…[39m [90m[aea7be01] [39m[92m+ PrecompileTools v1.2.1[39m
  [90m[21216c6a] [39m[92m+ Preferences v1.4.3[39m
  [90m[43287f4e] [39m[92m+ PtrArrays v1.3.0[39m
  [90m[189a3867] [39m[92m+ Reexport v1.2.2[39m
  [90m[ae029012] [39m[92m+ Requires v1.3.1[39m
  [90m[6c6a2e73] [39m[92m+ Scratch v1.2.1[39m
  [90m[91c51154] [39m[92m+ SentinelArrays v1.4.8[39m
  [90m[efcf1570] [39m[92m+ Setfield v1.1.2[39m
  [90m[a2af1166] [39m[92m+ SortingAlgorithms v1.2.1[39m
  [90m[171d559e] [39m[92m+ SplittablesBase v0.1.15[39m
  [90m[90137ffa] [39m[92m+ StaticArrays v1.9.13[39m
  [90m[1e83bf80] [39m[92m+ StaticArraysCore v1.4.3[39m
  [90m[10745b16] [39m[92m+ Statistics v1.11.1[39m
  [90m[82ae8749] [39m[92m+ StatsAPI v1.7.0[39m
  [90m[2913bbd2] [39m[92m+ StatsBase v0.34.5[39m
  [90m[dc5dba14] [39m[92m+ TZJData v1.5.0+2025b[39m
  [90m[3783bdb8] [39m[92m+ TableTraits v1.0.1[39m
  [90m[bd369af6] [39m[92m+ Tables v1.12.0[39m
  [90m[62fd8b95] [39m[92m+ TensorCore v0.1.1[39m
  [90m[f269a46b] [39m[92m+ TimeZones v1.21.3[39m
  [90m[3bb67fe8] [39m[92m+ TranscodingStreams v0.11.3[39m
  [90m[28d57a85] [39m[92m+ Transducers v0.4.84[39m
  [90m[410a4b4d] [39m[92m+ Tricks v0.1.10[39m
  [90m[5c2747f8] [39m[92m+ URIs v1.5.2[39m
  [90m[3a884ed6] [39m[92m+ UnPack v1.0.2[39m
  [90m[5ced341a] [39m[92m+ Lz4_jll v1.10.1+0[39m
  [90m[3161d3a3] [39m[92m+ Zstd_jll v1.5.7+1[39m
  [90m[0dad84c5] [39m[92m+ ArgTools v1.1.2[39m
  [90m[56f22d72] [39m[92m+ Artifacts v1.11.0[39m
  [90m[2a0f44e3] [39m[92m+ Base64 v1.11.0[39m
  [90m[ade2ca70] [39m[92m+ Dates v1.11.0[39m
  [90m[8ba89e20] [39m[92m+ Distributed v1.11.0[39m
  [90m[f43a241f] [39m[92m+ Downloads v1.6.0[39m
  [90m[7b1f6079] [39m[92m+ FileWatching v1.11.0[39m
  [90m[9fa8497b] [39m[92m+ Future v1.11.0[39m
  [90m[b77e0a4c] [39m[92m+ InteractiveUtils v1.11.0[39m
  [90m[b27032c2] [39m[92m+ LibCURL v0.6.4[39m
  [90m[76f85450] [39m[92m+ LibGit2 v1.11.0[39m
  [90m[8f399da3] [39m[92m+ Libdl v1.11.0[39m
  [90m[37e2e46d] [39m[92m+ LinearAlgebra v1.11.0[39m
  [90m[56ddb016] [39m[92m+ Logging v1.11.0[39m
  [90m[d6f4376e] [39m[92m+ Markdown v1.11.0[39m
  [90m[a63ad114] [39m[92m+ Mmap v1.11.0[39m
  [90m[ca575930] [39m[92m+ NetworkOptions v1.2.0[39m
  [90m[44cfe95a] [39m[92m+ Pkg v1.11.0[39m
  [90m[de0858da] [39m[92m+ Printf v1.11.0[39m
  [90m[3fa0cd96] [39m[92m+ REPL v1.11.0[39m
  [90m[9a3f8284] [39m[92m+ Random v1.11.0[39m
  [90m[ea8e919c] [39m[92m+ SHA v0.7.0[39m
  [90m[9e88b42a] [39m[92m+ Serialization v1.11.0[39m
  [90m[6462fe0b] [39m[92m+ Sockets v1.11.0[39m
  [90m[2f01184e] [39m[92m+ SparseArrays v1.11.0[39m
  [90m[f489334b] [39m[92m+ StyledStrings v1.11.0[39m
  [90m[fa267f1f] [39m[92m+ TOML v1.0.3[39m
  [90m[a4e569a6] [39m[92m+ Tar v1.10.0[39m
  [90m[8dfed614] [39m[92m+ Test v1.11.0[39m
  [90m[cf7118a7] [39m[92m+ UUIDs v1.11.0[39m
  [90m[4ec0a83e] [39m[92m+ Unicode v1.11.0[39m
  [90m[e66e0078] [39m[92m+ CompilerSupportLibraries_jll v1.1.1+0[39m
  [90m[deac9b47] [39m[92m+ LibCURL_jll v8.6.0+0[39m
  [90m[e37daf67] [39m[92m+ LibGit2_jll v1.7.2+0[39m
  [90m[29816b5a] [39m[92m+ LibSSH2_jll v1.11.0+1[39m
  [90m[c8ffd9c3] [39m[92m+ MbedTLS_jll v2.28.6+0[39m
  [90m[14a3606d] [39m[92m+ MozillaCACerts_jll v2023.12.12[39m
  [90m[4536629a] [39m[92m+ OpenBLAS_jll v0.3.27+1[39m
  [90m[bea87d4a] [39m[92m+ SuiteSparse_jll v7.7.0+0[39m
  [90m[83775a58] [39m[92m+ Zlib_jll v1.2.13+1[39m
  [90m[8e850b90] [39m[92m+ libblastrampoline_jll v5.11.0+0[39m
  [90m[8e850ede] [39m[92m+ nghttp2_jll v1.59.0+0[39m
  [90m[3f19e933] [39m[92m+ p7zip_jll v17.4.0+2[39m
[36m[1m        Info[22m[39m Packages marked with [32mâŒƒ[39m and [33mâŒ…[39m have new versions available. Those with [32mâŒƒ[39m may be upgradable, but those with [33mâŒ…[39m are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`

[0m[1mInstantiating...[22m
[90m===[39m

[0m[1mPrecompiling...[22m
[90m===[39m
[32m[1m  Activating[22m[39m project at `/tmp/jl_0VVRlI`
[92m[1mPrecompiling[22m[39m project...
  4 dependencies successfully precompiled in 9 seconds. 127 already precompiled.
  [33m1[39m dependency had output during precompilation:[33m
â”Œ [39mPlutoPlotly[33m
â”‚  [39mâ”Œ Warning: A base directory is being computed during precompilation.[33m
â”‚  [39mâ”‚ This is dangerous, as results depend on the live system configuration.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ It is recommended that you invoke BaseDirs as required in[33m
â”‚  [39mâ”‚ function bodies, rather than at the top level. Calls are very[33m
â”‚  [39mâ”‚ cheap, and you can always pass the result of a live call around.[33m
â”‚  [39mâ”‚ [33m
â”‚  [39mâ”‚ If you have verified that this call was not assigned to a global constant,[33m
â”‚  [39mâ”‚ you can silence this warning with `BaseDirs.@promise_no_assign`.[33m
â”‚  [39mâ”” @ BaseDirs ~/.julia/packages/PlutoPlotly/PecJP/src/local_plotly_library.jl:1[33m
â””  [39m§enabledÃ·restart_recommended_msgÀ´restart_required_msgÀ­busy_packages�¶waiting_for_permissionÂÙ,waiting_for_permission_but_probably_disabledÂ«cell_inputsÞ  Ù$2fa207dd-749f-4dc0-b4ab-159edf1d9bce„§cell_idÙ$2fa207dd-749f-4dc0-b4ab-159edf1d9bce¤codeÙ¾begin_value_iteration_v(mdp::CompleteMDP{T,S,A}, Î³::T; Vinit::T = zero(T), kwargs...) where {T<:Real,S,A} = begin_value_iteration_v(mdp, Î³, Vinit .* ones(T, length(mdp.states)); kwargs...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$e0cc1ca1-595d-44e2-8612-261df9e2d327„§cell_idÙ$e0cc1ca1-595d-44e2-8612-261df9e2d327¤codeÚÏmd"""
> ### *Exercise 8.1* 
> The nonplanning method looks particularly poor in Figure 8.3 because it is a one-step method; a method using multi-step bootstrapping would do better. Do you think one of the multi-step bootstrapping methods from Chapter 7 could do as well as the Dyna method? Explain why or why not.

For the n = 50 agent, it can learn a policy that covers nearly the entire maze during the second episode.  In the extreme case of a multistep method we would attempt to solve the maze using monte carlo sampling in which case after a single episode we would have action/value updates for every state visited along the random trajectory.  However, these action/value estimates would be high variance estimates of the randomly initialized policy.  In contrast, the Dyna method after one random episode has observed most or all of the transitions in the maze.  During the long planning phase its Q updates would actually be able to converge to the optimal policy given a large enough n using bootstrapping and the single reward from reaching the goal.  As long as something is sampled close to the goal that information will propagate through to the rest of the states and each update is simultaneously improving the Ïµ-greedy policy.  With multi-step bootstrapping we can extend the updates back along the trajectory a certain distance, but in the extreme case we just sample values from the random policy without any bootstrapping or we bootstrap to a limited degree close to the goal and still have the lack of information further away from it.  Since this environment is deterministic, having the sample transitions is equivalent to having a full model of the environment.  This could be used explicitely with value iteration to obtain the Q function as well.  The planning step is effectively performing this computation but only using the known transitions and over time is focused only on the states visited by the optimal or nearly optimal policy.  No n-step method can take advantage of previously observed transitions this well, but it should be noted that Dyna-Q only works this well if the environment is deterministic and is taking advantage of the fact that we know our model is correct for the transitions already observed.  
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$304e6afd-11e0-4011-9929-85889b988400„§cell_idÙ$304e6afd-11e0-4011-9929-85889b988400¤codeÚWstruct MDP_MC{S, A, F<:Function, G<:Function, H<:Function} <: MDP{S, A, F, G, H}
	init_states::Vector{S}
	actions::Vector{A}
	step::F #function that produces reward and updated state given a state action pair
	state_init::G #function that produces an initial state for an episode
	isterm::H #function that returns true if the state input is terminal
	function MDP_MC(init_states::Vector{S}, actions::Vector{A}, step::F, isterm::H) where {S, A, F<:Function, H<:Function}
		state_init() = rand(init_states)
		new{S, A, F, typeof(state_init), H}(init_states, actions, step, state_init, isterm)
	end
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07„§cell_idÙ$96bd8d33-d4e8-45bf-9b75-43e8bda6fa07¤codeÚšfunction make_Ïµ_greedy_policy!(v::AbstractVector{T}, Ïµ::T; valid_inds = eachindex(v)) where T <: Real
	vmax = maximum(view(v, valid_inds))
	v .= T.(isapprox.(v, vmax))
	s = sum(v)
	c = Ïµ / length(valid_inds)
	d = c + (one(T) - Ïµ)/s #value to add to actions that are maximizing
	v .= c .+ (v .* d)
	# for i in valid_inds
	# 	if v[i] == 1
	# 		v[i] = d + c
	# 	else
	# 		v[i] = c
	# 	end
	# end
	return v
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$3b4e27e7-8065-44b3-bc2a-e540913aa540„§cell_idÙ$3b4e27e7-8065-44b3-bc2a-e540913aa540¤codeÚ–function takestep(mdp::FiniteStochasticMDP{T, S, A}, Ï€::Matrix{T}, s) where {T<:Real, S, A}
	i_s = mdp.state_index[s]
	i_a = sample_action(Ï€, i_s)
	ptf = mdp.ptf[(i_a, i_s)]
	probabilities = [ptf[i_sâ€²][1] for i_sâ€² in keys(ptf)]
	i_sâ€² = sample(collect(keys(ptf)), weights(probabilities))
	sâ€² = mdp.states[i_sâ€²]
	r = ptf[i_sâ€²][2]
	a = mdp.actions[i_a]
	return (i_s, i_sâ€², r, sâ€², a, i_a)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6e273f2b-a1af-421f-aca7-772a836b89ef„§cell_idÙ$6e273f2b-a1af-421f-aca7-772a836b89ef¤codeÚofunction uniform_bellman_policy_value!(Q::Matrix{T}, Ï€::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, Î³::T) where {T <: Real, S, A}
	delt = zero(T)
	num_updates = 0
	for i_s in eachindex(mdp.states)
		for i_a in eachindex(mdp.actions)
			delt = max(delt, bellman_policy_update!(Q, Ï€, i_s, i_a, mdp, Î³))
			num_updates += 1
		end
	end
	return delt, num_updates
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$726af565-8905-4409-864f-a5c1b5767e09„§cell_idÙ$726af565-8905-4409-864f-a5c1b5767e09¤codeÚ`#forms a random policy for a generic finite state mdp.  The policy is a matrix where the rows represent actions and the columns represent states.  Each column is a probability distribution of actions over that state.
form_random_policy(mdp::CompleteMDP{T, S, A}) where {T, S, A} = ones(T, length(mdp.actions), length(mdp.states)) ./ length(mdp.actions)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae„§cell_idÙ$5d2abde0-7128-41c3-bd1f-b6940492d1ae¤codeÚ¿function double_q_learning(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; 
	num_episodes = 1000, 
	qinit = zero(T), 
	Ïµinit = one(T)/10, 
	Qinit::Matrix{T} = initialize_state_action_value(mdp; qinit=qinit), 
	decay_Ïµ = false, 
	target_policy_function! = (v, Ïµ, s) -> make_greedy_policy!(v), 
	behavior_policy_function! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), 
	Ï€init_target::Matrix{T} = create_greedy_policy(Qinit), 
	Ï€init_behavior::Matrix{T} = create_Ïµ_greedy_policy(Qinit, Ïµinit), 
	save_state::S = first(mdp.states), 
	save_history = false) where {S, A, F, G, H, T<:AbstractFloat} 
	
	double_expected_sarsa(mdp, Î±, Î³; num_episodes = num_episodes, qinit = qinit, Ïµinit = Ïµinit, Qinit = Qinit, decay_Ïµ = decay_Ïµ, target_policy_function! = target_policy_function!, behavior_policy_function! = behavior_policy_function!, Ï€init_target = Ï€init_target, Ï€init_behavior = Ï€init_behavior, save_state = save_state, save_history = save_history)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$76489f21-677e-4c25-beaa-afaf2244cd94„§cell_idÙ$76489f21-677e-4c25-beaa-afaf2244cd94¤codeÙImd"""
#### Figure 8.2

Learning curves for a Dyna-Q agent in the maze
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$1127c36f-9bc0-49b1-9481-8a5861bdf6ca„§cell_idÙ$1127c36f-9bc0-49b1-9481-8a5861bdf6ca¤codeÚ	7md"""
> ### *Exercise 8.5*
> How might the tabular Dyna-Q algorithm shown above be modified to handle stochastic environments?  How might this modification perform poorly on changing environments such as considered in this section?  How could the algorithm be modified to handle stochastic environments *and* changing environments?

Instead of storing the most recent transition for a state-action pair, we could store the fraction of the time different transition states and rewards are observed.  That way our model becomes a distribution model using the previously experienced samples as estimates of the true transition probabilities.  Then for the planning updates, we would sample the transition from the model stochastically and perform the same Q update.

If the environment is changing, then the model will take much longer to modify compared to the original version where as soon as a new transition is observed it replaces the previous value.  If we averaging the previously observed transitions and there are many actions, then a new experience would only slightly modify the model even if we use constant step size averaging.  We would therefore expect such a model to react much more slowly to a changing environment.

One solution to speed up model updates could be to use a modified reward such as what is used for Dyna-Q+ in which the time since a state-action pair was selected increases the planning reward update for that transition, but that method assumed that a single visit to the state is adequate to update the model.  In a stochastic environment if we are counting transition to have an estimate of the probabilities for each one, our method would need a way of forgetting transitions that no longer happen.  We could simply keep only data from the most recent n transitions or average with exponential decaying weights such that we give higher weight to more cently observed transitions in the probability distribution.  We may also have to keep track of the time since a specific transitions was seen rather than simply the time a state action pair was attempted, so we'd have $\tau(s, a, sâ€², r)$ and then the planning Q update could add up or take the maximum of all of the observed transitions from that state.  A state action pair would then be boosted if any one of the possible transitions has not been seen recently.  
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$69ff1b72-cb1b-4724-a445-38e4c9846964„§cell_idÙ$69ff1b72-cb1b-4724-a445-38e4c9846964¤codeÚ>md"""
#### Figure 8.4:

Average performance of Dyna-Q agent on a blocking task.  After 1000 episodes of training the environment is switched to the second version.  The flat portion of the graph shows the agent getting stuck following the old optimal policy and needing many time steps to learn the new environment
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$3edc09ab-8fa1-440f-8a45-546898a2b2a3„§cell_idÙ$3edc09ab-8fa1-440f-8a45-546898a2b2a3¤codeÙì#take a step in the environment from state s using policy Ï€ represented by a function that returns an action given a state
function takestep(mdp, Ï€::Function, s)
	a = Ï€(s)
	(r, sâ€²) = mdp.step(s, a)
	return (0, 0, r, sâ€², a, 0)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6c8cd429-2c2e-4515-98b2-d0394962e479„§cell_idÙ$6c8cd429-2c2e-4515-98b2-d0394962e479¤codeÚIfunction takestep(mdp::FiniteDeterministicMDP{T, S, A}, Ï€::Matrix{T}, s) where {T<:Real, S, A}
	i_s = mdp.state_index[s]
	i_a = sample_action(Ï€, i_s)
	i_sâ€² = mdp.state_transition_map[i_a, i_s]
	r = mdp.reward_transition_map[i_a, i_s]
	sâ€² = mdp.states[i_sâ€²]
	a = mdp.actions[i_a]
	return (i_s, i_sâ€², r, sâ€², a, i_a)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6605b946-3010-47ed-8d88-3c4dca993cf8„§cell_idÙ$6605b946-3010-47ed-8d88-3c4dca993cf8¤codeÙÓbegin_value_iteration_q(mdp::CompleteMDP{T,S,A}, Î³::T; Qinit::T = zero(T), kwargs...) where {T<:Real,S,A} = begin_value_iteration_q(mdp, Î³, Qinit .* ones(T, length(mdp.actions), length(mdp.states)); kwargs...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$00c8f62f-dee2-476c-b896-68d3ab57a168„§cell_idÙ$00c8f62f-dee2-476c-b896-68d3ab57a168¤codeÚòfunction figure_8_8(num_states; expected_updates_max = 20_000, num_samples = 200, blist = [1, 3, 10])
	function get_uniform_value(num_states, b)
		Q = zeros(2, num_states + 1)
		Qref = copy(Q)
		Ï€ = copy(Q)
		mdp = make_random_mdp(num_states, b)
		total_updates = 0
		x = Vector{Int64}()
		y = Vector{Float64}()
		while total_updates <= expected_updates_max
			(delt, num_updates) = uniform_bellman_optimal_value!(Q, mdp, 1.0)
			# make_greedy_policy!(Ï€, mdp, Q)
			# q_policy_evaluation!(Qref, Ï€, mdp, 1.0)
			# qval = maximum(Qref[:, 1])
			qval = maximum(Q[:, 1])
			total_updates += num_updates
			push!(x, num_updates)
			push!(y, qval)
		end
		return x, y
	end

	function get_on_policy_value(num_states, b)
		Q = zeros(2, num_states + 1)
		Ï€ = copy(Q)
		mdp = make_random_mdp(num_states, b)
		total_updates = 0
		x = Vector{Int64}()
		y = Vector{Float64}()
		while total_updates <= expected_updates_max
			(delt, num_updates) = trajectory_bellman_optimal_value!(Q, Ï€, mdp, 1.0, 0.1, 1, s -> s == 0)
			qval = maximum(Q[:, 1])
			total_updates += num_updates
			push!(x, total_updates)
			push!(y, qval)
		end
		updatecounts = collect(1:num_states*2:expected_updates_max)
		values = [y[min(searchsortedfirst(x, c), length(y))] for c in updatecounts]
		return updatecounts, values
	end
	
	uniform_traces = [begin
		out = 1:num_samples |> Map(_ -> get_uniform_value(num_states, b)) |> foldxt((x, y) -> ((x[1] .+ y[1]), (x[2] .+ y[2])))
		trace = scatter(x = [0; cumsum(out[1] ./ num_samples)], y = [0; out[2] ./ num_samples], name = "b = $b, uniform")
	end
	for b in blist]

	on_policy_traces = [begin
		out = 1:num_samples |> Map(_ -> get_on_policy_value(num_states, b)) |> foldxt((x, y) -> ((x[1] .+ y[1]), (x[2] .+ y[2])))
		trace = scatter(x = [0; out[1] ./ num_samples], y = [0; out[2] ./ num_samples], name = "b = $b, on-policy")
	end
	for b in blist]
	
	plot([uniform_traces; on_policy_traces], Layout(xaxis_title = "Computation time, in expected updates", yaxis_title = "Value of start state under greedy policy"))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4d4baa61-b5bd-4bcf-a491-9a35a1695f0b„§cell_idÙ$4d4baa61-b5bd-4bcf-a491-9a35a1695f0b¤code»figure8_3(num_episodes_8_3)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$cd79ce14-14a1-43c6-93e0-b4a786f7f9fb„§cell_idÙ$cd79ce14-14a1-43c6-93e0-b4a786f7f9fb¤codeÚ$md"""
Because planning proceeds incrementally, it is trivial to intermix planning and acting.  So the learning from the model can inform the interaction with the environment in parallel and then any information from the environment can be used to update the model whenever it is received.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$516234a8-2748-11ed-35df-432eebaa5162„§cell_idÙ$516234a8-2748-11ed-35df-432eebaa5162¤codeÚsmd"""
# Chapter 8 - Planning and Learning with Tabular Methods

So far we have seen example problems where we have a full model of the environment in the form of the probability transition function as well as environments where we can only sample trajectories.  In this chapter we will integrate the techniques that are *model-based* and *model-free* and show how they can be intermixed.

## 8.1 Models and Planning

A *model* is anything that an agent can use to predict the environment.  If the model provides a full description of all possible transitions it is called a *distribution model* vs a *sample model* that can only generate one of those possibilities according to the correct probability distribution.  In dynamic programming, we used a distribution model while for certain example problems such as blackjack we only had a sample model.

A model can be used the create a *simulated experience* of the environment such as a trajectory.  The common thread across all the techniques is the computation of the value function to improve a policy and using some update process to compute the value function for example from the data collected in simulated experience.  For the learning methods considered so far, we have assumed that the data collected from trajectories is generated by the environment itself while in planning methods this experience would come instead from a model.  However the learning techniques largely still apply to planning techniques as well since the nature of the data is the same.  Consider a planning method analogous to Q-learning called *random-sample one-step tabular Q-planning*.  This technique applies the Q-learning update to a transition sapmled from a model.  Instead of interacting with the environment in an episode or continuing task, this technique simply selects a state action pair at random and observes the transition.  Just like with Q-learning, this method converges to the optimal policy under the assumption that all state-action pairs are visited an infinite number of times but the policy will only be optimal for the model of the environment.

Performing updates on single transitions highlights another theme of planning methods which don't necessarily involve exaustive solutions to the whole environment.  We can direct the method to specific states of interest which may be important for problems with very large state spaces.

## 8.2 Dyna: Integrated Planning, Acting, and Learning

A planning agent can use real experience in at least two ways: 1) it can be used to improve the model to make it a better match for the real environment (*model-learning*) and 2) it can be used directly to improve the value function using the previous learning methods (*direct reinforcement learning*).  If a better model is then used to improve the value function this is also called *indirect reinforcement learning*.  

Indirect methods can make better use of a limited amount of experience, but direct methods are much simpler and are not affected by the biases in the design of the model.  Dyna-Q includes all the processes of planning, acting, model-learning, and direct RL.  The planning method is the random-sample one-step tabular Q-planning described above.  The direct RL method is one-step tabular Q-learning.  The model-learning mdethod is also table-based and assumes the environment is deterministic.  After each transition $S_t,A_t \longrightarrow R_{t+1},S_{t+1}$, the model records in its table entry for $S_t,A_t$ the prediction that $R_{t+1},S_{t+1}$ will deterministically follow.  Thus if the model is queried with a state-action pair that has been experienced before, it simply returns the last-observed next state and next reward as its prediction.

During planning, the Q-planning algorithm randomly samples only from state-action pairs that have previously been experienced, so the model is never queried with a pair about which it has no information.  The learning and planning portions of the algorithm are connected in that they use the same type of update.  The only difference is the source of the experience used.

The collection of real experience and planning could occur simultaneously in these agents, but for a serial implementation it is assumed that the acting, model-learning, and direct RL processes are very fast while the planning process is the model computation-intensive.  Let us assume that after each step of acting, model-learning, and direct RL there is time for $n$ iterations of the Q-planning algorithm.  Without the model update and the $n$ loop planning step, this algorithm is identical to one-step tabular Q-learning.  An example implementation is below along with an example applying it to a maze environment.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$bf7950f2-05fa-4455-ad08-27735148d95c„§cell_idÙ$bf7950f2-05fa-4455-ad08-27735148d95c¤codeÚ	e#perform action selection within an mdp for a given state s, discount factor Î³, and state value estimation function v_est.  v_est must be a function that takes the arguments (mdp, s, Î³) and produces a reward of the same type as Î³
function monte_carlo_tree_search(mdp::AfterstateMDP_MC{S, AS, A, F, G, H, I}, Î³::T, v_est::Function, s::S; 
	depth = 10, 
	nsims = 100, 
	c = one(T), 
	tree_values = Dict{S, Tuple{T, Dict{Int64, Tuple{T, T}}}}(),
	update_tree_policy! = (v, s) -> make_greedy_policy!(v), 
	v_hold = zeros(T, length(mdp.actions)),
	update_tree! = function(tree_values, v::T, s::S, i_a::Integer)
		d = tree_values[s][2]
		new_value = if haskey(d, i_a)
			(d[i_a][1]+1, d[i_a][2]+v)
		else
			(1f0, v)
		end
		tree_values[s][2][i_a] = new_value
	end,
	apply_bonus! = apply_uct!,
	make_step_kwargs = k -> NamedTuple(), #option to create mdp afterstate step arguments that depend on the simulation number
	make_transition_kwargs = k -> NamedTuple(), #option to create mdp afterstate transition arguments that depend on the simulation number
	make_est_kwargs = k -> NamedTuple(), #option to create state estimation arguments that depend on the simulation number
	sim_message = false
	) where {S, AS, A, F, G, H, I, T<:Real}

	q_hold = zeros(T, length(mdp.actions))
	#I want to have a way of possible a kwargs such as the answer index to the simulator that can change with each simulation
	t = time()
	last_time = t
	for k in 1:nsims
		seed = rand(UInt64)
		if sim_message
			elapsed = time() - last_time
			if elapsed > 5
				last_time = time()
				pct_done = k/nsims
				total_time = time() - t
				ett = total_time / pct_done
				eta = ett - total_time
				@info """Completed simulation $k of $nsims after $(round(Int64, total_time/60)) minutes
				ETA: $(round(Int64, eta/60)) minutes"""
			end
		end
		simulate!(s, true, tree_values, mdp, Î³, v_est, depth, c, v_hold, update_tree_policy!, update_tree!, q_hold, apply_bonus!, make_step_kwargs(seed), make_transition_kwargs(seed), make_est_kwargs(seed))
	end

	minv = minimum(t[2]/t[1] for t in values(tree_values[s][2]))
	for i in eachindex(v_hold)
		if haskey(tree_values[s][2], i)
			v_hold[i] = tree_values[s][2][i][2] / tree_values[s][2][i][1]
		else
			v_hold[i] = minv
		end
	end
	make_greedy_policy!(v_hold)
	if sim_message
		@info "Finished MCTS evaluation of state $s"
	end
	return mdp.actions[sample_action(v_hold)], tree_values
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27„§cell_idÙ$4d1f0065-e5ab-46fa-8ab1-a0bbcf523c27¤codeÙDfigure_8_4(;ntrials = 10, Ïµ = 0.1f0, Î± = 0.8f0, fig_8_4_params...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$47ce2eda-b2c4-4f81-8d91-955bc35bab49„§cell_idÙ$47ce2eda-b2c4-4f81-8d91-955bc35bab49¤codeÚ¡begin
	struct AfterstateMDP_MC{S, AS, A, F<:Function, G<:Function, H<:Function, I<:Function}
		init_states::Vector{S}
		init_afterstates::Dict{Tuple{S, A}, AS}
		actions::Vector{A}
		afterstate_step::F #deterministic function that produces a reward and afterstate given a state action pair
		afterstate_transition::G #stochastic function that preduces a probability distribution of reward, state pairs given an afterstate
		state_init::H #function that produces an initial state for an episode
		isterm::I #function that returns true if the state input is terminal
		action_index::Dict{A, Int64}
		function AfterstateMDP_MC(init_states::Vector{S}, actions::Vector{A}, afterstate_step::F, afterstate_transition::G, isterm::I) where {S, A, F<:Function, G<:Function, I<:Function}
			state_init() = rand(init_states)
			init_afterstates = Dict((s, a) => afterstate_step(s, a)[2] for a in actions for s in init_states)
			action_index = makelookup(actions)
			new{S, typeof(init_afterstates[first(init_states), first(actions)]), A, F, G, typeof(state_init), I}(init_states, init_afterstates, actions, afterstate_step, afterstate_transition, state_init, isterm, action_index)
		end	
	end
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$679b6096-b3ca-422d-9d9a-225832510ab1„§cell_idÙ$679b6096-b3ca-422d-9d9a-225832510ab1¤codeÙ(make_Ïµ_greedy_policy!(vholdtest, 0.1f0)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5„§cell_idÙ$d5ac7c6f-9636-46d9-806f-34d6c8e4d4d5¤codeÚêmd"""
Consider the simple maze shown above where the agent can take four actions which take it deterministically into the neighboring square unless it is blocked by a wall represented by a W in the diagram.  In this case the agent remains in its original state.  Reward is zero on all transitions except those into the goal state, on which it is +1.  After reaching the goal the agent returns to the start to begin a new episode.  This is a discounted episodic task with $\gamma = 0.95$
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8„§cell_idÙ$aee1f6a8-de43-402e-b375-86c0f2f9e6b8¤codeÚwfunction figure_8_5â€²(; max_steps1 = 3000, max_steps2 = 3000, ntrials = 10, n = 50, Î± = 0.5f0, Ïµ = 0.2f0, Îº = 0.001f0)
	x = 1:(max_steps1 + max_steps2)
	function test_algo(f)
		y = zeros(max_steps1 + max_steps2)
		for _ in 1:ntrials
			(Q, steps, rewards, history, stm, rtm) = f(blocking_maze2, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps1, n = n)
			(Q2, steps2, rewards2, _, _) = f(blocking_maze3, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps2, n = n, Qinit = Q, history = history, state_transition_map = stm, reward_transition_map = rtm, init_step = max_steps1)

			y .+= cumsum([rewards; rewards2])
		end
		return x, y
	end

	(x1, y1) = test_algo(tabular_dynaQ)
	(x2, y2) = test_algo((args...; kwargs...) -> tabular_dynaQplus(args...; Îº = Îº, kwargs...))
	
	plot([scatter(x = x, y = y1 ./ ntrials, name = "Dyna-Q"), scatter(x = x, y = y2 ./ ntrials, name = "Dyna-Q+")])
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$a3243bc4-7ae7-418a-9881-a265ca95f5ef„§cell_idÙ$a3243bc4-7ae7-418a-9881-a265ca95f5ef¤codeÙ%md"""
## 8.4 Prioritized Sweeping
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$466268c4-664d-42dd-84c1-7b8ade49936f„§cell_idÙ$466268c4-664d-42dd-84c1-7b8ade49936f¤codeÚ©md"""
For each maze there is an optimal path that scales up with the size.  The plot below compares prioritized sweeping with Dyna-Q where each method can make at most 5 planning updates.  The number of updates until an optimal path is found is computed for different size mazes.  The number of updates required for prioritied sweeping is dramatically lower by tens or hundreds of times depending on the size of the maze.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96„§cell_idÙ$f9cdd5a8-3a9b-4be4-9a33-bb0047ac4a96¤codeÙ±#create a function that performs a rollout given an mdp, starting state, and discount rate
rollout(;max_steps = Inf) = (mdp, s, Î³) -> rollout(mdp, s, Î³; max_steps = max_steps)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8„§cell_idÙ$6612f482-2f10-43fa-9b7b-2f0c6a94b8e8¤codeÙXrunepisode(mdp::MDP_TD; kwargs...) = runepisode(mdp, make_random_policy(mdp); kwargs...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$f424edac-388d-4465-900f-9459d2a88f79„§cell_idÙ$f424edac-388d-4465-900f-9459d2a88f79¤codeÚZ#take a step in the environment from state s using policy Ï€ and generate the subsequent action selection as well
function init_step(mdp::MDP_TD{S, A, F, G, H}, Ï€::Matrix{T}, s::S) where {S, A, F<:Function, G<:Function, H<:Function, T<:Real}
	i_s = mdp.statelookup[s]
	i_a = sample_action(Ï€, i_s)
	a = mdp.actions[i_a]
	return (i_s, i_a, a)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$08e81e30-119d-4f4e-a865-f1f85cbffd31„§cell_idÙ$08e81e30-119d-4f4e-a865-f1f85cbffd31¤codeÚ‚md"""
For many tasks the state space is too large to be solved effectively without prioritization.  That being said, there are multiple methods of prioritizing states such as looking forward from states that are being visited frequently by the policy.  

Prioritized sweeping also makes use of expected updates to update the priority queue (sweeping through model state action pairs) which could be very costly in environments with large numbers of actions.  Also in stochastic environments, our model may not even be accurate for some low probability transitions which would be a waste to consider.  An alternative is to use sample updates which are higher variance individually, but may win out in terms of rate of convergence per computation in environments with high stochasticity and large branching.  In the next sections, we more closely examine the value of expected and sample updates.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$898f1b06-a34f-496b-99db-9ca23498cbee„§cell_idÙ$898f1b06-a34f-496b-99db-9ca23498cbee¤codeÚ”function prioritized_sweeping_deterministic(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; 
	num_episodes = 1000, max_steps = 10000, n = 100, qinit = zero(T), Ïµinit = one(T)/10, 
	Qinit = initialize_state_action_value(mdp; qinit=qinit), Ï€init = create_Ïµ_greedy_policy(Qinit, Ïµinit), 
	decay_Ïµ = false, history_state::S = first(mdp.states), 
	save_history = false, update_policy! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), 
	history = zeros(Int64, length(mdp.actions), length(mdp.states)),
	#each column contains the index of the state reached from the state represented by the column index while taking the action represented by the row index.  the values are initialized at 0 which represents a transition that has not occured
	state_transition_map = zeros(Int64, length(mdp.actions), length(mdp.states)),
	#each column contains the reward received from the state represented by the column index while taking the action represented by the row index.  the state_transition_map can be used to determine if any of these values have been updated from the zero initialization
	reward_transition_map = zeros(T, length(mdp.actions), length(mdp.states)),
	Î¸ = one(T)/100,
	init_step = 0,
	isoptimal = l -> false) where {S, A, F, G, H, T<:AbstractFloat}

	Ï€ = copy(Ï€init)
	Q = copy(Qinit)
	Ïµ = Ïµinit
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	Q[:, terminds] .= zero(T)
	num_updates = 0
	
	vhold = zeros(T, length(mdp.actions))
	#keep track of rewards per step and steps per episode
	rewards = zeros(T, max_steps)
	steps = zeros(Int64, num_episodes)

	#maintains a queue of state action pairs ranked by their priority with the largest value first
	priority_queue = PriorityQueue{Tuple{Int64, Int64}, T}(Base.Order.Reverse)

	function updateQ!(Q, i_s, i_a, i_sâ€², r)
		qmax = calculate_qmax(Q, i_sâ€²)
		Q[i_a, i_s] += Î±*(r + Î³*qmax - Q[i_a, i_s])
		num_updates += 1
	end

	calculate_priority(r, qmax, i_s, i_a) = abs(r + Î³*qmax - Q[i_a, i_s])
	calculate_qmax(Q, i_s) = maximum(Q[i, i_s] for i in eachindex(mdp.actions))

	function q_planning!(Q, queue)
		step = 1
		while (step <= n) && !isempty(queue)
			(i_a, i_s) = first(keys(queue))
			delete!(queue, (i_a, i_s))
			i_sâ€² = state_transition_map[i_a, i_s]
			r = reward_transition_map[i_a, i_s]
			updateQ!(Q, i_s, i_a, i_sâ€², r)
			#loop for all state action pairs that the model predicts will lead to s
			qmax = calculate_qmax(Q, i_s)
			for i_sÌ„ in eachindex(mdp.states)
				for i_aÌ„ in eachindex(mdp.actions)
					if state_transition_map[i_aÌ„, i_sÌ„] == i_s
						rÌ„ = reward_transition_map[i_aÌ„, i_sÌ„]
						p = calculate_priority(rÌ„, qmax, i_sÌ„, i_aÌ„)
						if p > Î¸
							priority_queue[(i_aÌ„, i_sÌ„)] = p
						end
					end
				end
			end
			step += 1
		end
	end

	step = 1
	ep = 1
	optimal_path = false
	while (ep <= num_episodes) && (step <= max_steps) && !optimal_path
		s = mdp.state_init()
		l = 0
		
		while !mdp.isterm(s) && step <= max_steps
			#take policy action based on Q
			(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€, s)

			#replace model value with observed transition
			state_transition_map[i_a, i_s] = i_sâ€²
			reward_transition_map[i_a, i_s] = r

			#calculate expected update from previous Q value
			p = calculate_priority(r, calculate_qmax(Q, i_sâ€²), i_s, i_a)
			if p > Î¸
				priority_queue[(i_a, i_s)] = p
			end
			
			rewards[step] = r
			q_planning!(Q, priority_queue)
			step += 1
			s = sâ€²
			
			#update policy for next state action selection
			vhold .= Q[:, i_sâ€²]
			update_policy!(vhold, Ïµ, sâ€²)
			Ï€[:, i_sâ€²] .= vhold
			l += 1
		end
		steps[ep] = l
		optimal_path = isoptimal(l)
		
		ep += 1
	end
	return Q, steps, rewards, state_transition_map, reward_transition_map, num_updates
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$08ff749b-f4ff-4639-99f5-48262aa4643e„§cell_idÙ$08ff749b-f4ff-4639-99f5-48262aa4643e¤codeÚ)md"""
In the Dyna agents simulated transitions are started in the state-actino pairs selected uniformly at random from all previously experienced pairs, but a uniform selection is usually not the best.  Planning can be much more efficient if updates are focused on particular state-action pairs.  In particular if an environment has goal states such as the maze, then one-step TD updates will only be relevant along the trajectory leading to that goal.  Not all environments have goal states, but the idea still applies to cases where only certain states are expected to be updated given a certain amount of data from environment interactions.  We can therefore work *backward* from states we know will be updated to consider all of the relevant predecessor states.  Using *prioritized sweeping*, we maintain a queue of every state-action pair whose estimated value would change nontrivially if updated, prioritized by the size of the change.  When the top pair in the queue is updated, the effect on each of its predecessor pairs is computed.  If the effect is greater than some small threshold, then the pair is inserted int the queue with a new priority.  In this way the effects of changes are efficiently backpropagated backward until quienscence.  A full implementation of priorized sweeping can be found below.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$245d9616-e0d2-497e-bfdd-4729a7215bfd„§cell_idÙ$245d9616-e0d2-497e-bfdd-4729a7215bfd¤codeÚ‡md"""
The maze task is a horrible candidate for MCTS because it is solved so effectively with the other techniques that build accurate action value estimates for the entire maze.  It is very likely that states will be revisited in this task as well and that information is useful to solve the problem.  MCTS would be most useful for problems where we cannot even know the full state space and states are never seen again in the course of a single episode as well as for tasks whose episodes don't last very long.  Blackjack might be a good example of this since the number of steps is usually one or two.  Another example could be tic-tac-toe.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$e8a6e672-b860-404f-83c1-62a080f23112„§cell_idÙ$e8a6e672-b860-404f-83c1-62a080f23112¤code¸md"""
### Figure 8.8
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$39ae7727-ea72-48f3-8d63-e03a9f607f87„§cell_idÙ$39ae7727-ea72-48f3-8d63-e03a9f607f87¤codeÚÎfunction make_dyna_maze(scale)
	scale_value(v) = ceil(Int64, v*scale)
	xmax = scale_value(9)
	ymax = scale_value(6)
	sterm = GridworldState(xmax, ymax)
	wall1 = Set(GridworldState(scale_value(3), y) for y in scale_value(3):scale_value(5))
	wall2 = Set([GridworldState(scale_value(6), scale_value(3) - 1)])
	wall3 = Set(GridworldState(xmax - 1, y) for y in scale_value(4):ymax)
	walls = union(wall1, wall2, wall3)
	iswall(s) = in(s, walls)
	start = GridworldState(1, scale_value(4))
	optimal_length = xmax - 1 + (ymax - scale_value(3) + 1) + start.y - scale_value(3) + 1
	(maze = make_gridworld(;start = start, xmax=xmax, ymax=ymax, sterm = sterm, iswall = iswall), iswall = iswall, optimal_length = optimal_length)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056„§cell_idÙ$fad6e3b9-6d6e-4ea0-ac3d-5e57374c7056¤codeÙð#if no policy is provided then the rollout will use a uniformly random policy
rollout(mdp::MDP{S, A, F, G, H}, s::S, Î³::T; max_steps = Inf) where {S, A, F, G, H, T<:Real} = rollout(mdp, s, s -> rand(mdp.actions), Î³; max_steps = max_steps)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$d0b18699-7d3a-418d-9d15-be41f1643f09„§cell_idÙ$d0b18699-7d3a-418d-9d15-be41f1643f09¤codeÚfunction trajectory_bellman_optimal_value!(Q::Matrix{T}, Ï€::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, Î³::T, Ïµ::T, s0::S, isterm::Function) where {T <: Real, S, A}
	delt = zero(T)
	num_updates = 0
	s = s0
	i_s = mdp.state_index[s]
	make_Ïµ_greedy_policy!(Ï€, mdp, Q, Ïµ, i_s)
	while !isterm(s)
		(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€, s)
		delt = max(delt, bellman_optimal_update!(Q, i_s, i_a, mdp, Î³))
		make_Ïµ_greedy_policy!(Ï€, mdp, Q, Ïµ, i_sâ€²)
		num_updates += 1
		s = sâ€²
	end
	return delt, num_updates
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$cd1980ff-2f35-4599-b08c-2037ddf5e995„§cell_idÙ$cd1980ff-2f35-4599-b08c-2037ddf5e995¤codeÚ¹function figure_8_4â€²â€²(; max_steps1 = 1000, max_steps2 = 2000, ntrials = 10, n = 10, Î± = 0.1f0, Ïµ = 0.1f0, Îº = 0.01f0)
	x = 1:(max_steps1 + max_steps2)
	function test_algo(f)
		y = zeros(max_steps1 + max_steps2)
		for _ in 1:ntrials
			(Q, steps, rewards, history, stm, rtm) = f(blocking_maze1, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps1, n = n)
			(Q2, steps2, rewards2, _, _) = f(blocking_maze2, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps2, n = n, Qinit = Q, history = history, state_transition_map = stm, reward_transition_map = rtm, init_step = max_steps1)

			y .+= cumsum([rewards; rewards2])
		end
		return x, y
	end

	(x1, y1) = test_algo((args...; kwargs...) -> tabular_dynaQplus(args...; Îº = Îº, kwargs...))
	(x2, y2) = test_algo((args...; kwargs...) -> tabular_dynaQplusâ€²(args...; Îº = Îº, kwargs...))
	
	plot([scatter(x = x, y = y1 ./ ntrials, name = "Dyna-Q+"), scatter(x = x, y = y2 ./ ntrials, name = "Dyna-Q+â€²")])
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$c32d0943-ba8f-438f-83b6-5ed42221f630„§cell_idÙ$c32d0943-ba8f-438f-83b6-5ed42221f630¤codeÚºfunction figure_8_5â€²â€²(; max_steps1 = 3000, max_steps2 = 3000, ntrials = 10, n = 50, Î± = 0.5f0, Ïµ = 0.2f0, Îº = 0.001f0)
	x = 1:(max_steps1 + max_steps2)
	function test_algo(f)
		y = zeros(max_steps1 + max_steps2)
		for _ in 1:ntrials
			(Q, steps, rewards, history, stm, rtm) = f(blocking_maze2, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps1, n = n)
			(Q2, steps2, rewards2, _, _) = f(blocking_maze3, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps2, n = n, Qinit = Q, history = history, state_transition_map = stm, reward_transition_map = rtm, init_step = max_steps1)

			y .+= cumsum([rewards; rewards2])
		end
		return x, y
	end

	(x1, y1) = test_algo((args...; kwargs...) -> tabular_dynaQplus(args...; Îº = Îº, kwargs...))
	(x2, y2) = test_algo((args...; kwargs...) -> tabular_dynaQplusâ€²(args...; Îº = Îº, kwargs...))
	
	plot([scatter(x = x, y = y1 ./ ntrials, name = "Dyna-Q+"), scatter(x = x, y = y2 ./ ntrials, name = "Dyna-Q+â€²")])
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$fc137613-7b4b-414c-93af-eeb2ace5d67f„§cell_idÙ$fc137613-7b4b-414c-93af-eeb2ace5d67f¤codeÚÓfunction make_Ïµ_greedy_policy!(Ï€::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, Q::Matrix{T}, Ïµ::T, i_s::Int64) where {T<:Real,S,A}
	n = length(mdp.actions)
	maxq = -Inf
	for i_a in eachindex(mdp.actions)
		Ï€[i_a, i_s] = Q[i_a, i_s]
		maxq = max(maxq, Q[i_a, i_s])
	end
	Ï€[:, i_s] .= (Ï€[:, i_s] .â‰ˆ maxq)
	Ï€[:, i_s] ./= (sum(Ï€[:, i_s]) / (one(T) - Ïµ))
	Ï€[:, i_s] .+= Ïµ / n
	if isnan(Ï€[1, i_s])
		@info "Q = $(Q[:, i_s]), maxq = $maxq"
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58„§cell_idÙ$cffc9f11-77d7-4076-aa3b-821f1c741f58¤codeÙ—uct(tree_values::Dict{S, Tuple{T, Dict{Int64, Tuple{T, T}}}}, s::S, i_a::Int64, ntot::T) where {S, T<:Real} = sqrt(log(ntot)/tree_values[s][2][i_a][1])¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4b424a47-dfeb-4380-8ab8-8bd24a080c2e„§cell_idÙ$4b424a47-dfeb-4380-8ab8-8bd24a080c2e¤codeÙábegin
	newmaze = make_dyna_maze(2)
	newmaze2 = make_dyna_maze(3)
	[plot_path(dyna_maze; iswall = s -> in(s, maze_walls)) plot_path(newmaze.maze; iswall = newmaze.iswall) plot_path(newmaze2.maze; iswall = newmaze2.iswall)]
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$0f37ec0a-b737-478b-bf6a-027899250c4e„§cell_idÙ$0f37ec0a-b737-478b-bf6a-027899250c4e¤codeÚ¡#take a step in the environment from state s using policy Ï€ and generate the subsequent action selection as well
function sarsa_step(mdp::MDP_TD{S, A, F, G, H}, Ï€::Matrix{T}, s::S, a::A) where {S, A, F<:Function, G<:Function, H<:Function, T<:Real}
	(r, sâ€²) = mdp.step(s, a)
	i_sâ€² = mdp.statelookup[sâ€²]
	i_aâ€² = sample_action(Ï€, i_sâ€²)
	aâ€² = mdp.actions[i_aâ€²]
	return (sâ€², i_sâ€², r, aâ€², i_aâ€²)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$8dbc76fd-ac73-47ca-983e-0e90023390e3„§cell_idÙ$8dbc76fd-ac73-47ca-983e-0e90023390e3¤code«figure8_2()¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$e4f73889-af82-4304-89d5-ee50172eb3da„§cell_idÙ$e4f73889-af82-4304-89d5-ee50172eb3da¤codeÚFfunction make_greedy_policy!(Ï€::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, Q::Matrix{T}) where {T<:Real,S,A}
	for i_s in eachindex(mdp.states)
		maxq = -Inf
		for i_a in eachindex(mdp.actions)
			maxq = max(maxq, Q[i_a, i_s])
		end
		Ï€[:, i_s] .= (Q[:, i_s] .â‰ˆ maxq)
		Ï€[:, i_s] ./= sum(Ï€[:, i_s])
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$636d768c-670d-4485-a1dd-2bab6cf086d0„§cell_idÙ$636d768c-670d-4485-a1dd-2bab6cf086d0¤codeÚ£function make_random_mdp(num_states, b)
 	states = collect(1:num_states)
	actions = [1, 2]
	next_states = [rand(states, b) for _ in 1:num_states*2]

	rterm = randn()
	ptf = Dict((i_a, i_s) => Dict(zip([num_states+1; next_states[i_s*i_a]], zip([0.1; fill((1-0.1)/b, b)], [rterm; randn(b)]))) for i_s in eachindex(states) for i_a in eachindex(actions))

	#all transitions from terminal state lead to terminal state
	ptf[(1, num_states + 1)] = Dict([num_states+1 => (1., 0.0)])
	ptf[(2, num_states + 1)] = Dict([num_states+1 => (1., 0.0)])
	
	# function step(s, a)
	# 	r = randn()
	# 	rand() <= 0.1 && return (r, 0)
		
	# 	#each action result in one of b next states all equally likely with a different random selection of b states for each state-action pair
	# 	sâ€² = rand(next_states[s*a])
	# 	return (r, sâ€²)
	# end
 
	# MDP_TD([states; 0], actions, () -> 1, step, s -> s == 0)
	FiniteStochasticMDP([states; 0], actions, ptf)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$cd139745-1877-43a2-97a0-3333e544cbd8„§cell_idÙ$cd139745-1877-43a2-97a0-3333e544cbd8¤codeÚfunction figure8_2(;num_episodes = 50, Î± = 0.1f0, nlist = [0, 5, 50], Î³ = 0.95f0, samples = 5)
	traces = [begin
		step_avg = zeros(Int64, num_episodes)
		for s in 1:samples
			Random.seed!(s)
			(Q, steps, rewards, _, _) = tabular_dynaQ(dyna_maze, Î±, Î³; num_episodes = num_episodes, n = n)
			step_avg .+= steps
		end
		scatter(x = 2:num_episodes, y = step_avg[2:end] ./ samples, name = "$n planning steps")
	end
	for n in nlist]
	plot(traces, Layout(xaxis_title = "Episodes", yaxis_title = "Steps per episode"))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6„§cell_idÙ$ffdd925e-b2b4-4cb1-9d6f-b8c9397729f6¤codeÚ¸function q_policy_evaluation!(Q::Matrix{T}, Ï€::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, Î³::T; max_updates = typemax(Int64), Î¸ = eps(zero(T))) where {T <: Real, S, A}
	delt, num_updates = uniform_bellman_policy_value!(Q, Ï€, mdp, Î³)
	total_updates = num_updates
	while (delt > Î¸) && (total_updates <= max_updates)
		delt, num_updates = uniform_bellman_policy_value!(Q, Ï€, mdp, Î³)
		total_updates += num_updates
	end
	return Q
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$f369a092-420d-4660-b802-93f05d5e7972„§cell_idÙ$f369a092-420d-4660-b802-93f05d5e7972¤codeÚ
function apply_uct!(v_hold::Vector{T}, tree_values::Dict{S, Tuple{T, Dict{Int64, Tuple{T, T}}}}, s::S, c::T) where {S, T<:Real}
	#for normal UCB selection, unvisited states have an infinite bonus
	v_hold .= T(Inf)

	d = tree_values[s][2]
	isempty(d) && return v_hold
	ntot = sum(t[1] for t in values(d))
	@inbounds @fastmath for i in keys(d)
		#note that the only bonus values computed here are for actions that have been visited
		v_hold[i] = (d[i][2] / d[i][1]) + c * uct(tree_values, s, i, ntot)
	end
	return v_hold
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$1d97325a-8b9a-438d-a5f9-e17638e64627„§cell_idÙ$1d97325a-8b9a-438d-a5f9-e17638e64627¤codeÙsinitialize_state_value(mdp::MDP_TD; vinit::T = 0.0f0) where T<:AbstractFloat = ones(T, length(mdp.states)) .* vinit¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$113d2bc2-1f77-479f-86e5-a65b20672d7a„§cell_idÙ$113d2bc2-1f77-479f-86e5-a65b20672d7a¤codeÚ
 function double_expected_sarsa(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; num_episodes = 1000, qinit = zero(T), Ïµinit = one(T)/10, Qinit::Matrix{T} = initialize_state_action_value(mdp; qinit=qinit), decay_Ïµ = false, target_policy_function! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), behavior_policy_function! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), Ï€init_target::Matrix{T} = create_Ïµ_greedy_policy(Qinit, Ïµinit), Ï€init_behavior::Matrix{T} = create_Ïµ_greedy_policy(Qinit, Ïµinit), save_state::S = first(mdp.states), save_history = false) where {S, A, F, G, H, T<:AbstractFloat}
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	
	Q1 = copy(Qinit)
	Q2 = copy(Qinit) 
	Q1[:, terminds] .= zero(T)
	Q2[:, terminds] .= zero(T)
	Ï€_target1 = copy(Ï€init_target)
	Ï€_target2 = copy(Ï€init_target)
	Ï€_behavior = copy(Ï€init_behavior)
	vhold1 = zeros(T, length(mdp.actions))
	vhold2 = zeros(T, length(mdp.actions))
	vhold3 = zeros(T, length(mdp.actions))
	#keep track of rewards and steps per episode as a proxy for training speed
	rewards = zeros(T, num_episodes)
	steps = zeros(Int64, num_episodes)

	if save_history
		action_history = Vector{A}(undef, num_episodes)
	end
	
	for ep in 1:num_episodes
		Ïµ = decay_Ïµ ? Ïµinit/ep : Ïµinit
		s = mdp.state_init()
		rtot = zero(T)
		l = 0
		while !mdp.isterm(s)
			
			(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€_behavior, s)
			if save_history && (s == save_state)
				action_history[ep] = a
			end
			
			# q_expected = sum(Ï€_target[i, i_sâ€²]*(Q1[i, i_sâ€²]*toggle + Q2[i, i_sâ€²]*(1-toggle)) for i in eachindex(mdp.actions))
			toggle = rand() < 0.5
			q_expected = if toggle 
				sum(Ï€_target2[i, i_sâ€²]*Q1[i, i_sâ€²] for i in eachindex(mdp.actions))
			else
				sum(Ï€_target1[i, i_sâ€²]*Q2[i, i_sâ€²] for i in eachindex(mdp.actions))
			end

			if toggle
				Q2[i_a, i_s] += Î±*(r + Î³*q_expected - Q2[i_a, i_s])
			else
				Q1[i_a, i_s] += Î±*(r + Î³*q_expected - Q1[i_a, i_s])
			end
			
			#update terms for next step
			if toggle
				vhold2 .= Q2[:, i_s]
				target_policy_function!(vhold2, Ïµ, s)
				Ï€_target2[:, i_s] .= vhold2
			else
				vhold1 .= Q1[:, i_s]
				target_policy_function!(vhold1, Ïµ, s)
				Ï€_target1[:, i_s] .= vhold1
			end
			
			vhold3 .= vhold1 .+ vhold2
			behavior_policy_function!(vhold3, Ïµ, s)
			Ï€_behavior[:, i_s] .= vhold3
			
			s = sâ€²

			l+=1
			rtot += r
		end
		steps[ep] = l
		rewards[ep] = rtot
	end

	Q1 .+= Q2
	Q1 ./= 2
	plain_return = Q1, create_greedy_policy(Q1), steps, rewards

	save_history && return (plain_return..., action_history)
	return plain_return
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$27d12c1c-ddb0-4bc1-af51-3388ff806705„§cell_idÙ$27d12c1c-ddb0-4bc1-af51-3388ff806705¤codeÚÅmd"""
#### Figure 8.3:

Policies found by planning and nonplanning Dyna-Q agents after episode $(@bind num_episodes_8_3 NumberField(1:100, default = 2)). The arrows indicate the greedy action with respect to the learned state-action value function.  Without planning, the only states with a policy update are those within n episodes of the goal where n is the number of episodes experienced so far in training.  For the planning agent after 1 episode, at least one of the values will be updated so during future planning steps, that information can propagate through the other states through bootstrapping since we are free to sample transitions from states into the ones that already have a value update.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$f0e88db8-e3ee-4b74-923e-c34038024824„§cell_idÙ$f0e88db8-e3ee-4b74-923e-c34038024824¤code¯figure_8_5â€²()¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$b0df4dad-74c7-4469-a13f-5ef6bb81199f„§cell_idÙ$b0df4dad-74c7-4469-a13f-5ef6bb81199f¤codeÙªmd"""
#### Figure 8.5:

Average performance of Dyna-Q on shortcut task.  The constant slope after learning the optimal policy indicates the shortcut is not exploited.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$cfdaa9c2-265f-4540-9d04-d1b7a72aee3e„§cell_idÙ$cfdaa9c2-265f-4540-9d04-d1b7a72aee3e¤code¬figure_8_7()¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$250ea9da-dea3-4bf3-932d-cdda6756ae33„§cell_idÙ$250ea9da-dea3-4bf3-932d-cdda6756ae33¤codeÚ±function runepisode(mdp::CompleteMDP{T, S, A}, s0::S, isterm::Function, Ï€::Matrix{T}; max_steps = Inf) where {T<:Real, S, A}
	s = s0
	states = Vector{S}()
	actions = Vector{A}()
	push!(states, s)
	(_, _, r, sâ€², a, _) = takestep(mdp, Ï€, s)
	push!(actions, a)
	rewards = [r]
	step = 2
	sterm = s
	if isterm(sâ€²)
		sterm = sâ€²
	else
		sterm = s
	end
	s = sâ€²

	#note that the terminal state will not be added to the state list
	while !isterm(s) && (step <= max_steps)
		push!(states, s)
		(_, _, r, sâ€², a, _) = takestep(mdp, Ï€, s)
		push!(actions, a)
		push!(rewards, r)
		s = sâ€²
		step += 1
		if isterm(sâ€²)
			sterm = sâ€²
		end
	end
	return states, actions, rewards, sterm
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$bc295bb5-addb-4bcf-a3e3-c839ccc346bd„§cell_idÙ$bc295bb5-addb-4bcf-a3e3-c839ccc346bd¤codeºmd"""
### Maze Example
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$729197ce-2c27-467d-ba5f-47a1ecd539f2„§cell_idÙ$729197ce-2c27-467d-ba5f-47a1ecd539f2¤codeÚ`begin
	abstract type GridworldAction end
	struct Up <: GridworldAction end
	struct Down <: GridworldAction end
	struct Left <: GridworldAction end
	struct Right <: GridworldAction end
	struct UpRight <: GridworldAction end
	struct DownRight <: GridworldAction end
	struct UpLeft <: GridworldAction end
	struct DownLeft <: GridworldAction end
	struct Stay <: GridworldAction end
	
	struct GridworldState
		x::Int64
		y::Int64
	end

	rook_actions = [Up(), Down(), Left(), Right()]
	
	move(::Up, x, y) = (x, y+1)
	move(::Down, x, y) = (x, y-1)
	move(::Left, x, y) = (x-1, y)
	move(::Right, x, y) = (x+1, y)
	move(::UpRight, x, y) = (x+1, y+1)
	move(::UpLeft, x, y) = (x-1, y+1)
	move(::DownRight, x, y) = (x+1, y-1)
	move(::DownLeft, x, y) = (x-1, y-1)
	move(::Stay, x, y) = (x, y)
	apply_wind(w, x, y) = (x, y+w)
	const wind_vals = [0, 0, 0, 1, 1, 1, 2, 2, 1, 0]
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$1aa76f3d-6041-4886-a6cd-787bdf1ec63c„§cell_idÙ$1aa76f3d-6041-4886-a6cd-787bdf1ec63c¤code¾figure_8_5â€²â€²(;Ïµ = 0.01f0)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$3bf9e526-826d-42b8-84ee-75f1c7f79c69„§cell_idÙ$3bf9e526-826d-42b8-84ee-75f1c7f79c69¤codeÚVfunction display_rook_policy(v::Vector{T}; scale = 1.0) where T<:AbstractFloat
	@htl("""
		<div style = "display: flex; align-items: center; justify-content: center; transform: scale($scale);">
		<div class = "downarrow" style = "position: absolute; transform: rotate(180deg); opacity: $(v[1]);"></div>	
		<div class = "downarrow" style = "position: absolute; opacity: $(v[2])"></div>
		<div class = "downarrow" style = "position: absolute; transform: rotate(90deg); opacity: $(v[3])"></div>
		<div class = "downarrow" style = "transform: rotate(-90deg); opacity: $(v[4])"></div>
		</div>
	""")
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$308fd488-a009-4de0-8b27-c1f6b0677fed„§cell_idÙ$308fd488-a009-4de0-8b27-c1f6b0677fed¤codeÙsuct(counts::Dict{S, Dict{Int64, T}}, s::S, i_a::Int64, ntot::T) where {S, T<:Real} = sqrt(log(ntot)/counts[s][i_a])¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$340ba72b-172a-4d92-99b2-17687ab511c7„§cell_idÙ$340ba72b-172a-4d92-99b2-17687ab511c7¤codeÚîmd"""
> ### *Exercise 8.4 (programming)* 
> The exploration bonus described above actually changes the estimated values of states and actions. Is this necessary? Suppose the bonus $\kappa \sqrt{\tau}$ was used not in updates, but solely in action selection. That is, suppose the action selected was always that for which $Q(S_t,a) + \kappa \sqrt{\tau(S_t, a)}$ was maximal. Carry out a gridworld experiment that tests and illustrates the strengths and weaknesses of this alternate approach.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$44364e7f-1910-421a-b961-63fbbaac8230„§cell_idÙ$44364e7f-1910-421a-b961-63fbbaac8230¤codeÚƒfunction bellman_optimal_value!(V::Vector{T}, mdp::FiniteStochasticMDP{T, S, A}, Î³::T) where {T <: Real, S, A}
	delt = zero(T)
	@inbounds @fastmath @simd for i_s in eachindex(mdp.states)
		maxvalue = typemin(T)
		@inbounds @fastmath @simd for i_a in eachindex(mdp.actions)
			r_avg = zero(T)
			v_avg = zero(T)
			ptf = mdp.ptf[(i_a, i_s)]
			for i_sâ€² in keys(ptf)
				p = ptf[i_sâ€²][1]
				r = ptf[i_sâ€²][2]
				v_avg += p*V[i_sâ€²]
				r_avg += p*r
			end
			x = r_avg + Î³*v_avg
			maxvalue = max(maxvalue, x)
		end
		delt = max(delt, abs(maxvalue - V[i_s]) / (eps(abs(V[i_s])) + abs(V[i_s])))
		V[i_s] = maxvalue
	end
	return delt
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5„§cell_idÙ$4f4551fe-54a9-4186-ab8f-3535dc2bf4c5¤codeÚ md"""
## 8.3 When the Model Is Wrong

In the maze example the model started out empty and then was only filled in with correct information.  In general, we cannot expect to be so fortunate.  Models may be incorrect because the environment is stochastic and only a limited number of samples have been observed, or simply because the environment has changed.  When the model is incorrect, the planning process will likely compute a suboptimal policy.

In some cases, the suboptimal poicy computed by planning quickly leads to the discovery and correction of the modeling error.  This tends to happen when the model is optimistic in the sense of predicting greater reward or better state transitions than are actually possible.  The planned policy attempts to exploit these opportunities and in doing so it discovers that they do not exist.

### Example 8.2: Blocking Maze

Consider a maze with a barrier that separates the start from the goal except for an opening on one end.  After a set number of time steps this path is blocked and replaced with a longer path open at the other end.  Below is an example of the environment with a random trajectory before and after the blocking.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$f6486854-4892-4fb6-a805-de56b19b3571„§cell_idÙ$f6486854-4892-4fb6-a805-de56b19b3571¤codeÚ~function make_uct_plus(update_prior!::Function) 
	function f(v_hold::Vector{T}, q_ests::Dict{S, Dict{Int64, T}}, counts::Dict{S, Dict{Int64, T}}, s::S, c::T) where {S, T<:Real}
		update_prior!(v_hold, s)
		if !isempty(q_ests[s])
			ntot = zero(T)
			qsum = zero(T)
			visited_weight = zero(T)
			@inbounds @fastmath for i in keys(q_ests[s])
				ntot += counts[s][i]
				qsum += counts[s][i] * q_ests[s][i]
				visited_weight += v_hold[i]
			end

			#sample from unvisited weights proportional to the probability that one of those is the best option given the prior
			unvisited_weight = one(T) - visited_weight

			#sample from the unvisited actions weighted by their prior probability
			if rand() < unvisited_weight
				v_hold ./= unvisited_weight
				@inbounds @fastmath for i in keys(q_ests[s])
					v_hold[i] = zero(T)
				end
			else #sample from visited actions weighted by UCT
				v_hold .= zero(T)
				@inbounds @fastmath for i in keys(q_ests[s])
					#note that the only bonus values computed here are for actions that have been visited
					v_hold[i] = q_ests[s][i] + c*uct(counts, s, i, ntot)
				end
			end
		end
		return v_hold
	end
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00„§cell_idÙ$fb5601b0-06d4-43c4-81a6-23a4a8f29f00¤codeÙŸfunction make_random_policy(mdp::MDP_TD; init::T = 1.0f0) where T <: AbstractFloat
	ones(T, length(mdp.actions), length(mdp.states)) ./ length(mdp.actions)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$82e5719c-bbdb-4a18-b2f0-ad746b6acd41„§cell_idÙ$82e5719c-bbdb-4a18-b2f0-ad746b6acd41¤codeÚÂfunction make_puct(update_prior!::Function) 
	function f(v_hold::Vector{T}, q_ests::Dict{S, Dict{Int64, T}}, counts::Dict{S, Dict{Int64, T}}, s::S, c::T) where {S, T<:Real}
		update_prior!(v_hold, s)
		if !isempty(q_ests[s])
			ntot = zero(T)
			qsum = zero(T)
			@inbounds @fastmath for i in keys(q_ests[s])
				ntot += counts[s][i]
				qsum += counts[s][i] * q_ests[s][i]
			end
			qavg = qsum / ntot
			v_hold .= qavg .+ ((c * sqrt(ntot)) .* v_hold)
			@inbounds @fastmath for i in keys(q_ests[s])
				#note that the only bonus values computed here are for actions that have been visited
				v_hold[i] = q_ests[s][i] + ((v_hold[i] - qavg) / (one(T) + counts[s][i]))
			end
		end
		return v_hold
	end
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$c62cc32c-0d29-4ea2-8284-ac4c883df6db„§cell_idÙ$c62cc32c-0d29-4ea2-8284-ac4c883df6db¤codeÚÎstruct MDP_TD{S, A, F<:Function, G<:Function, H<:Function} <: MDP{S, A, F, G, H}
	states::Vector{S}
	statelookup::Dict{S, Int64}
	actions::Vector{A}
	actionlookup::Dict{A, Int64}
	state_init::G #function that produces an initial state for an episode
	step::F #function that produces reward and updated state given a state action pair
	isterm::H #function that returns true if the state input is terminal
	function MDP_TD(states::Vector{S}, actions::Vector{A}, state_init::G, step::F, isterm::H) where {S, A, F<:Function, G<:Function, H<:Function}
		statelookup = makelookup(states)
		actionlookup = makelookup(actions)
		new{S, A, F, G, H}(states, statelookup, actions, actionlookup, state_init, step, isterm)
	end
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$8586d633-7c50-49ba-9b74-b5bdad27c317„§cell_idÙ$8586d633-7c50-49ba-9b74-b5bdad27c317¤codeÙ#figure_8_8(1000; num_samples = 200)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$bb439641-30bd-495d-ba70-06b2e27efdbd„§cell_idÙ$bb439641-30bd-495d-ba70-06b2e27efdbd¤codeÚ\function make_gridworld(;actions = rook_actions, sterm = GridworldState(8, 4), start = GridworldState(1, 4), xmax = 10, ymax = 7, stepreward = 0.0f0, termreward = 1.0f0, iscliff = s -> false, iswall = s -> false, cliffreward = -100f0, goal2 = GridworldState(start.x, ymax), goal2reward = 0.0f0, usegoal2 = false)
	
	states = [GridworldState(x, y) for x in 1:xmax for y in 1:ymax]
	
	boundstate(x::Int64, y::Int64) = (clamp(x, 1, xmax), clamp(y, 1, ymax))
	
	function step(s::GridworldState, a::GridworldAction)
		(x, y) = move(a, s.x, s.y)
		sâ€² = GridworldState(boundstate(x, y)...)
		iswall(sâ€²) && return s
		return sâ€²
	end
		
	function isterm(s::GridworldState) 
		s == sterm && return true
		usegoal2 && (s == goal2) && return true
		return false
	end

	function tr(s::GridworldState, a::GridworldAction) 
		isterm(s) && return (0f0, s)
		sâ€² = step(s, a)
		iscliff(sâ€²) && return (cliffreward, start)
		x = Float32(isterm(sâ€²))
		usegoal2 && (sâ€² == goal2) && return (goal2reward, goal2)
		r = (1f0 - x)*stepreward + x*termreward
		(r, sâ€²)
	end	
	MDP_TD(states, actions, () -> start, tr, isterm)
end	¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5„§cell_idÙ$aab6ca56-57ca-421e-9b71-e3e96681c4c5¤codeÙ$md"""
## 8.6 Trajectory Sampling
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$41bb1f78-b83a-4a45-ba5c-faa94e112f45„§cell_idÙ$41bb1f78-b83a-4a45-ba5c-faa94e112f45¤codeÚ<function get_mcts_statistics()
	# visit_counts = Dict{GridworldState, Vector{Int64}}()
	# Q = Dict{GridworldState, Vector{Float32}}()
	mean(runepisode(dyna_maze, s -> monte_carlo_tree_search(dyna_maze, 0.95f0, rollout(;max_steps = 10),  s; nsims = 100, depth = 100, c = 1f0)[1]) |> first |> length for _ in 1:10)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$0fff8e1b-d0c2-49b8-93b4-8d1615c26690„§cell_idÙ$0fff8e1b-d0c2-49b8-93b4-8d1615c26690¤codeÙªbegin
	using Statistics, PlutoPlotly, Random, StatsBase, PlutoUI, HypertextLiteral, DataStructures, StaticArrays, Transducers, Serialization, Arrow
	TableOfContents()
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4e1c115a-4020-4a5a-a79a-56056892a953„§cell_idÙ$4e1c115a-4020-4a5a-a79a-56056892a953¤codeÙ"md"""
## Gridworld Environment
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$324181f0-b890-4198-9b4b-c36547e6629a„§cell_idÙ$324181f0-b890-4198-9b4b-c36547e6629a¤codeÚ)function create_Ïµ_greedy_policy(Q::Matrix{T}, Ïµ::T; Ï€ = copy(Q), get_valid_inds = j -> 1:size(Q, 1)) where T<:Real
	vhold = zeros(T, size(Q, 1))
	for j in 1:size(Q, 2)
		vhold .= Q[:, j]
		make_Ïµ_greedy_policy!(vhold, Ïµ; valid_inds = get_valid_inds(j))
		Ï€[:, j] .= vhold
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$eded8b72-70f4-4579-ba69-2eca409fa684„§cell_idÙ$eded8b72-70f4-4579-ba69-2eca409fa684¤codeÚýfunction plot_path(mdp, states::Vector, sterm; title = "Optimal policy <br> path example", iscliff = s -> false, iswall = s -> false)
	xmax = maximum([s.x for s in mdp.states])
	ymax = maximum([s.y for s in mdp.states])
	start = mdp.state_init()
	goal = mdp.states[findlast(mdp.isterm(s) for s in mdp.states)]
	start_trace = scatter(x = [start.x + 0.5], y = [start.y + 0.5], mode = "text", text = ["S"], textposition = "left", showlegend=false)
	finish_trace = scatter(x = [goal.x + .5], y = [goal.y + .5], mode = "text", text = ["G"], textposition = "left", showlegend=false)
	
	path_traces = [scatter(x = [states[i].x + 0.5, states[i+1].x + 0.5], y = [states[i].y + 0.5, states[i+1].y + 0.5], line_color = "blue", mode = "lines", showlegend=false, name = "Optimal Path") for i in 1:length(states)-1]
	finalpath = scatter(x = [states[end].x + 0.5, sterm.x + .5], y = [states[end].y + 0.5, sterm.y + 0.5], line_color = "blue", mode = "lines", showlegend=false, name = "Optimal Path")

	h1 = 30*ymax
	traces = [start_trace; finish_trace; path_traces; finalpath]

	cliff_squares = filter(iscliff, mdp.states)
	for s in cliff_squares
		push!(traces, scatter(x = [s.x + 0.6], y = [s.y+0.5], mode = "text", text = ["C"], textposition = "left", showlegend = false))
	end


	wall_squares = filter(iswall, mdp.states)
	for s in wall_squares
		push!(traces, scatter(x = [s.x + 0.8], y = [s.y+0.5], mode = "text", text = ["W"], textposition = "left", showlegend = false))
	end

	plot(traces, Layout(xaxis = attr(showgrid = true, showline = true, gridwith = 1, gridcolor = "black", zeroline = true, linecolor = "black", mirror=true, tickvals = 1:xmax, ticktext = fill("", 10), range = [1, xmax+1]), yaxis = attr(linecolor="black", mirror = true, gridcolor = "black", showgrid = true, gridwidth = 1, showline = true, tickvals = 1:ymax, ticktext = fill("", ymax), range = [1, ymax+1]), width = max(30*xmax, 200), height = max(h1, 200), autosize = false, padding=0, paper_bgcolor = "rgba(0, 0, 0, 0)", title = attr(text = title, font_size = 14, x = 0.5)))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6„§cell_idÙ$563b6dbd-ce51-4904-b1cc-d766bd1fd1d6¤codeÚ2@htl("""
<div style = "background-color: white; color: black; display: flex; align-items: center; justify-content: center;">
<div>$(plot_path(dyna_maze; title = "Random policy path example in Dyna Maze", max_steps = 10000, iswall = s -> in(s, maze_walls)))</div>
<div>$rook_action_display</div>
</div>
""")¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6a4116c9-87cf-4ee7-8030-aa1150853984„§cell_idÙ$6a4116c9-87cf-4ee7-8030-aa1150853984¤code´show_mcts_solution()¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$ee0f55c6-e9c6-4199-9f27-5706f3c84863„§cell_idÙ$ee0f55c6-e9c6-4199-9f27-5706f3c84863¤codeÙ!md"""
### MCTS Implementation
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$caca8d95-e40e-4592-b29e-a7e8b19faeb5„§cell_idÙ$caca8d95-e40e-4592-b29e-a7e8b19faeb5¤codeÚ	€md"""
Modifying Dyna-Q+ with this method of action selection no longer uses the Ïµ-greedy policy for exploration as before and instead directly encourages exploration in the policy itself which no longer follows the value estimates directly.  Now, during the planning steps, we still update the value function using existing data.  The bonus reward for old experiences will only have an impact on the data collection by encouraging visits to states that have not been seen for a while.  The original method instead operates under the assumption that the value estimate updates during planning may be underestimating the value of states visited a long time ago and will boost their value increasing the chance of action selection indirectly.  

One problem with the method that modifies the action selection directly is that once the agent has found an optimal policy, along the trajectory of that path many state action pairs will be frequently visited, so an agent may deviate from that path for one action which has not been attempted in a while, but then by the same logic, the transition immediately back to the optimal state will be favored over all others since that transition hasn't been visited for a long time as well.  The agent may deviate slightly from the optimal path but never for long.  With DynaQ+, however, eventually, unvisited states no matter how far away they are from the optimal path will eventually be visited since during planning those value bonuses will propagate throughout the whole environment.  That may be one reason why in the shortcut maze task, the modified DynaQ+ agent shown above never finds the shortcut and falls into the same trap as unmodified DynaQ.  If the goal is to find cases where the model is wrong even if it is far away in state space from the previously optimal policy, then DynaQ+ is a much more effective method than the one acting directly on action selection.

Similar to the original DynaQ, if the model is correct, then this algorithm will follow the optimal policy more often than DynaQ+ because very few deviations from optimal are tollerated.  You can see in both figures, once the environment is stable, the modified algorithm starts accumulating reward faster.  For the bloacking maze task, this method might perform the best over a certain time horizon by finding the new path faster than DynaQ but also consistently sticking new to the optimum more than DyanQ+.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$24efe9b4-9308-4ad1-8ef0-69f6f93407c0„§cell_idÙ$24efe9b4-9308-4ad1-8ef0-69f6f93407c0¤codeÚÇmd"""
> ### *Exercise 8.2* 
> Why did the Dyna agent with exploration bonus, Dyna-Q+, perform better in the first phase as well as in the second phase of the blocking and shortcut experiments?

For the second phase, the maze changed in both cases so the exploration reward bonus in Dyna-Q+ encourages the policy to attempt different actions that have not been visited recently which would result in model updates that reflect the new environment.  For the first phase where the model is accurate, this task may benefit from larger initial exploration than the Ïµ of 0.1 provides.  In that case the Dyna-Q+ reward simply acts like if we had a larger Ïµ in the first place which may result in faster learning.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6„§cell_idÙ$ecd8742c-2e10-4814-b477-7024e85b7fa6¤codeÚ™function make_Ïµ_greedy_policy!(Ï€::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, Q::Matrix{T}, Ïµ::T) where {T<:Real,S,A}
	n = length(mdp.actions)
	for i_s in eachindex(mdp.states)
		maxq = -Inf
		for i_a in eachindex(mdp.actions)
			maxq = max(maxq, Q[i_a, i_s])
		end
		Ï€[:, i_s] .= (Q[:, i_s] .â‰ˆ maxq)
		Ï€[:, i_s] ./= (sum(Ï€[:, i_s]) / (one(T) - Ïµ))
		Ï€[:, i_s] .+= Ïµ / actions
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$beae0491-ed11-4edf-a136-d384578b088b„§cell_idÙ$beae0491-ed11-4edf-a136-d384578b088b¤codeÙƒmonte_carlo_tree_search(dyna_maze, 0.95f0, rollout(;max_steps = 10_000),  dyna_maze.state_init(); nsims = 100, depth = 10, c = 1f0)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$562e824c-34b5-415d-b186-d8e2cf1980e7„§cell_idÙ$562e824c-34b5-415d-b186-d8e2cf1980e7¤codeÚ8function figure_8_5(; max_steps = 3000, ntrials = 10, n = 10, Î± = 0.1f0, Ïµ = 0.1f0)
	x = 1:2*max_steps
	y = zeros(2*max_steps)
	for _ in 1:ntrials
		(Q, steps, rewards, history, stm, rtm) = tabular_dynaQ(blocking_maze2, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps, n = n)
		(Q2, steps2, rewards2, _, _) = tabular_dynaQ(blocking_maze3, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps, n = n, Qinit = Q, history = history, state_transition_map = stm, reward_transition_map = rtm)
	
		y .+= cumsum([rewards; rewards2])
	end
	plot(scatter(x = x, y = y ./ ntrials))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69„§cell_idÙ$f5e52b2f-ea14-423d-8ca9-2ed68cd27c69¤codeÚ°function show_grid_policy(mdp, Ï€, name; display_function = display_rook_policy, action_display = rook_action_display, scale = 1.0)
	width = maximum(s.x for s in mdp.states)
	height = maximum(s.y for s in mdp.states)
	start = mdp.state_init()
	termind = findfirst(mdp.isterm, mdp.states)
	sterm = mdp.states[termind]
	ngrid = width*height
	@htl("""
		<div style = "display: flex; transform: scale($scale); background-color: white;">
			<div>
				<div class = "gridworld $name">
					$(HTML(mapreduce(i -> """<div class = "gridcell $name" x = "$(mdp.states[i].x)" y = "$(mdp.states[i].y)" style = "grid-row: $(height - mdp.states[i].y + 1); grid-column: $(mdp.states[i].x);">$(display_function(Ï€[:, i], scale =0.8))</div>""", *, eachindex(mdp.states))))
				</div>
			</div>
			<div style = "display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; color: black; font-size: 18px; width: 5em; margin-left: 1em;">
				$(action_display)
			</div>
		</div>
	
		<style>
			.$name.gridworld {
				display: grid;
				grid-template-columns: repeat($width, 40px);
				grid-template-rows: repeat($height, 40px);
				background-color: white;

			.$name[x="$(start.x)"][y="$(start.y)"]::before {
				content: 'S';
				position: absolute;
				color: green;
				opacity: 1.0;
			}

			.$name[x="$(sterm.x)"][y="$(sterm.y)"]::before {
				content: 'G';
				position: absolute;
				color: red;
				opacity: 1.0;
			}

		</style>
	""")
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dc„§cell_idÙ$eb9ba23d-bee5-4bb1-b3e1-fe40d9f681dc¤codeÚûfunction check_policy(Ï€::Matrix{T}, mdp::MDP_TD) where {T <: AbstractFloat}
#checks to make sure that a policy is defined over the same space as an MDP
	(n, m) = size(Ï€)
	num_actions = length(mdp.actions)
	num_states = length(mdp.states)
	@assert n == num_actions "The policy distribution length $n does not match the number of actions in the mdp of $(num_actions)"
	@assert m == num_states "The policy is defined over $m states which does not match the mdp state count of $num_states"
	return nothing
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771b„§cell_idÙ$1eb9a2ad-4584-4d32-8abb-e0e0bc0a771b¤codeÙä#if no value estimation function is provided, use a random rollout
monte_carlo_tree_search(mdp::MDP{S, A, F, G, H}, Î³::T, s::S; kwargs...) where {S, A, F, G, H, T<:Real} = monte_carlo_tree_search(mdp, Î³, rollout, s; kwargs...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846„§cell_idÙ$6cf35193-dba5-4f78-a4ac-245dda7a0846¤codeÙºbegin_value_iteration_v(mdp::FiniteMDP{T,S,A}, Î³::T; Vinit::T = zero(T), kwargs...) where {T<:Real,S,A} = begin_value_iteration_v(mdp, Î³, Vinit .* ones(T, size(mdp.ptf, 1)); kwargs...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5c„§cell_idÙ$39c96fc8-8259-46e3-88a0-a14eb6752b5c¤codeÚ²function show_grid_value(mdp, Q, name; scale = 1.0, title = "", sigdigits = 2)
	width = maximum(s.x for s in mdp.states)
	height = maximum(s.y for s in mdp.states)
	start = mdp.state_init()
	termind = findfirst(mdp.isterm, mdp.states)
	sterm = mdp.states[termind]
	ngrid = width*height

	displayvalue(Q::Matrix, i) = round(maximum(Q[:, i]), sigdigits = sigdigits)
	displayvalue(V::Vector, i) = round(V[i], sigdigits = sigdigits)
	@htl("""
		<div style = "display: flex; transform: scale($scale); background-color: white; color: black; font-size: 16px;">
			<div>
				$title
				<div class = "gridworld $name value">
					$(HTML(mapreduce(i -> """<div class = "gridcell $name value" x = "$(mdp.states[i].x)" y = "$(mdp.states[i].y)" style = "grid-row: $(height - mdp.states[i].y + 1); grid-column: $(mdp.states[i].x); font-size: 12px; color: black; $(displayvalue(Q, i) != 0 ? "background-color: lightblue;" : "")">$(displayvalue(Q, i))</div>""", *, eachindex(mdp.states))))
				</div>
			</div>
		</div>
	
		<style>
			.$name.value.gridworld {
				display: grid;
				grid-template-columns: repeat($width, 20px);
				grid-template-rows: repeat($height, 20px);
				background-color: white;
			}

			.$name.value[x="$(start.x)"][y="$(start.y)"] {
				content: '';
				background-color: rgba(0, 255, 0, 0.5);
				
			}

			.$name.value[x="$(sterm.x)"][y="$(sterm.y)"] {
				content: '';
				background-color: rgba(255, 0, 0, 0.5);
				
			}

		</style>
	""")
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91„§cell_idÙ$4494cb61-ee2c-467b-9bf6-0afb59023e91¤codeÚõfunction sarsa(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; num_episodes = 1000, qinit = zero(T), Ïµinit = one(T)/10, Qinit = initialize_state_action_value(mdp; qinit=qinit), Ï€init = create_Ïµ_greedy_policy(Qinit, Ïµinit), history_state::S = first(mdp.states), update_policy! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), save_history = false, decay_Ïµ = false) where {S, A, F, G, H, T<:AbstractFloat}
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	Q = copy(Qinit)
	Q[:, terminds] .= zero(T)
	Ï€ = copy(Ï€init)
	vhold = zeros(T, length(mdp.actions))
	#keep track of rewards and steps per episode as a proxy for training speed
	rewards = zeros(T, num_episodes)
	steps = zeros(Int64, num_episodes)

	if save_history
		action_history = Vector{A}(undef, num_episodes)
	end

	for ep in 1:num_episodes
		Ïµ = decay_Ïµ ? Ïµinit/ep : Ïµinit
		s = mdp.state_init()
		(i_s, i_a, a) = init_step(mdp, Ï€, s)
		rtot = zero(T)
		l = 0
		while !mdp.isterm(s)
			(sâ€², i_sâ€², r, aâ€², i_aâ€²) = sarsa_step(mdp, Ï€, s, a)
			if save_history && (s == history_state)
				action_history[ep] = a
			end
			Q[i_a, i_s] += Î± * (r + Î³*Q[i_aâ€², i_sâ€²] - Q[i_a, i_s])
			
			#update terms for next step
			vhold .= Q[:, i_s]
			update_policy!(vhold, Ïµ, s)
			Ï€[:, i_s] .= vhold
			s = sâ€²
			a = aâ€²
			i_s = i_sâ€²
			i_a = i_aâ€²
			
			l+=1
			rtot += r
		end
		steps[ep] = l
		rewards[ep] = rtot
	end

	default_return =  Q, Ï€, steps, rewards
	save_history && return (default_return..., action_history)
	return default_return
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$618b5f35-2df5-4ffb-a34f-add542691080„§cell_idÙ$618b5f35-2df5-4ffb-a34f-add542691080¤codeÚ^#take a step in the environment from state s using policy Ï€ represented by a distribution over state-action pairs
function takestep(mdp, Ï€::Matrix{T}, s) where T<:Real
	i_s = mdp.statelookup[s]
	i_a = sample_action(Ï€, i_s)
	a = mdp.actions[i_a]
	(r, sâ€²) = mdp.step(s, a)
	i_sâ€² = mdp.statelookup[sâ€²]
	return (i_s, i_sâ€², r, sâ€², a, i_a)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$0f9080af-f166-4a78-a003-8df07f6c27d4„§cell_idÙ$0f9080af-f166-4a78-a003-8df07f6c27d4¤codeÚpHTML("""
<style>
	.downarrow {
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
	}

	.downarrow::before {
		content: '';
		width: 2px;
		height: 40px;
		background-color: black;
	}
	.downarrow::after {
		content: '';
		width: 0px;
		height: 0px;
		border-left: 5px solid transparent;
		border-right: 5px solid transparent;
		border-top: 10px solid black;
	}

	.gridcell {
			display: flex;
			justify-content: center;
			align-items: center;
			border: 1px solid black;
		}

	.windbox {
		height: 40px;
		width: 40px;
		display: flex;
		justify-content: center;
		align-items: center;
		transform: rotate(180deg);
		background-color: green;
	}

	.windbox * {
		background-color: green;
		color: green;
	}

	.windbox[w="0"] {
		opacity: 0.0; 
	}

	.windbox[w="1"] {
		opacity: 0.5;
	}

	.windbox[w="2"] {
		opacity: 1.0;
	}
</style>
""")¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$f8bf29fe-568f-437f-ba82-6b861988a18e„§cell_idÙ$f8bf29fe-568f-437f-ba82-6b861988a18e¤codeÚÍfunction make_greedy_policy!(Ï€::Matrix{T}, mdp::FiniteDeterministicMDP{T, S, A}, V::Vector{T}, Î³::T) where {T<:Real,S,A}
	for i_s in eachindex(mdp.states)
		maxv = -Inf
		for i_a in eachindex(mdp.actions)
			i_sâ€² = mdp.state_transition_map[i_a, i_s]
			r = mdp.reward_transition_map[i_a, i_s]
			x = r + Î³*V[i_sâ€²]
			maxv = max(maxv, x)
			Ï€[i_a, i_s] = x
		end
		Ï€[:, i_s] .= (Ï€[:, i_s] .â‰ˆ maxv)
		Ï€[:, i_s] ./= sum(Ï€[:, i_s])
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3„§cell_idÙ$0d0bbf62-b1ac-45f6-8a92-1e77b0709cb3¤codeÚ,function figure8_3(num_episodes; Î± = 0.1f0, nlist = [0, 50], Î³ = 0.95f0,)
	(Q1, _) = tabular_dynaQ(dyna_maze, Î±, Î³; num_episodes = num_episodes, n = first(nlist))
	d1 = show_grid_policy(dyna_maze, create_greedy_policy(Q1), "test")
	(Q2, _) = tabular_dynaQ(dyna_maze, Î±, Î³; num_episodes = num_episodes, n = last(nlist))
	d2 = show_grid_policy(dyna_maze, create_greedy_policy(Q2), "test")
	@htl("""
	<div style = "display: flex;">
	<div>Without planning (n = $(first(nlist)))$d1</div>
	<div>With planning (n = $(last(nlist)))$d2</div>
	</div>
	""")
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$b15f1262-1acf-40e5-87a7-bc4b1b437a42„§cell_idÙ$b15f1262-1acf-40e5-87a7-bc4b1b437a42¤codeÚ¥function runepisode(mdp::MDP{S, A, F, G, H}, Ï€; max_steps = Inf) where {S, A, F, G, H}
	s = mdp.state_init()
	states = Vector{S}()
	actions = Vector{A}()
	push!(states, s)
	(_, _, r, sâ€², a, _) = takestep(mdp, Ï€, s)
	push!(actions, a)
	rewards = [r]
	step = 2
	sterm = s
	if mdp.isterm(sâ€²)
		sterm = sâ€²
	else
		sterm = s
	end
	s = sâ€²

	#note that the terminal state will not be added to the state list
	while !mdp.isterm(s) && (step <= max_steps)
		push!(states, s)
		(_, _, r, sâ€², a, _) = takestep(mdp, Ï€, s)
		push!(actions, a)
		push!(rewards, r)
		s = sâ€²
		step += 1
		if mdp.isterm(sâ€²)
			sterm = sâ€²
		end
	end
	return states, actions, rewards, sterm
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2„§cell_idÙ$9be963b9-f3a1-4f92-8ff9-f5be75ed52f2¤codeÚÚfunction expected_sarsa(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; num_episodes = 1000, qinit = zero(T), Ïµinit = one(T)/10, Qinit = initialize_state_action_value(mdp; qinit=qinit), Ï€init = create_Ïµ_greedy_policy(Qinit, Ïµinit), update_policy! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), decay_Ïµ = false, save_history = false, save_state = first(mdp.states)) where {S, A, F, G, H, T<:AbstractFloat}
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	Q = copy(Qinit)
	Q[:, terminds] .= zero(T)
	Ï€ = copy(Ï€init)
	vhold = zeros(T, length(mdp.actions))
	#keep track of rewards and steps per episode as a proxy for training speed
	rewards = zeros(T, num_episodes)
	steps = zeros(Int64, num_episodes)
	if save_history
		action_history = Vector{A}(undef, num_episodes)
	end
	
	for ep in 1:num_episodes
		Ïµ = decay_Ïµ ? Ïµinit/ep : Ïµinit
		s = mdp.state_init()
		rtot = zero(T)
		l = 0
		while !mdp.isterm(s)
			(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€, s)
			if save_history && (s == save_state)
				action_history[ep] = a
			end
			q_expected = sum(Ï€[i, i_sâ€²]*Q[i, i_sâ€²] for i in eachindex(mdp.actions))
			Q[i_a, i_s] += Î±*(r + Î³*q_expected - Q[i_a, i_s])
			
			#update terms for next step
			vhold .= Q[:, i_s]
			update_policy!(vhold, Ïµ, s)
			Ï€[:, i_s] .= vhold
			s = sâ€²
			
			l+=1
			rtot += r
		end
		steps[ep] = l
		rewards[ep] = rtot
	end

	base_return = (Q, Ï€, steps, rewards)
	save_history && return (base_return..., action_history)
	return base_return
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$b3a5adcb-5343-44e9-9466-1c51c1143a0d„§cell_idÙ$b3a5adcb-5343-44e9-9466-1c51c1143a0d¤code­example_8_4()¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767„§cell_idÙ$80affd41-b5e6-4b9c-b827-4e3b39bd7767¤codeÚ|function value_iteration_v!(V, Î¸, mdp, Î³, nmax, valuelist)
	nmax <= 0 && return valuelist
	
	#update value function
	delt = bellman_optimal_value!(V, mdp, Î³)
	
	#add copy of value function to results list
	push!(valuelist, copy(V))

	#halt when value function is no longer changing
	delt <= Î¸ && return valuelist
	
	value_iteration_v!(V, Î¸, mdp, Î³, nmax - 1, valuelist)	
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$9a1b250f-b404-4db3-a4b7-4cd33b79d921„§cell_idÙ$9a1b250f-b404-4db3-a4b7-4cd33b79d921¤codeÙåfunction create_greedy_policy(Q::Matrix{T}; c = 1000, Ï€ = copy(Q)) where T<:Real
	vhold = zeros(T, size(Q, 1))
	for j in 1:size(Q, 2)
		vhold .= Q[:, j]
		make_greedy_policy!(vhold; c = c)
		Ï€[:, j] .= vhold
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215„§cell_idÙ$db66615e-fbbc-4ea8-b529-bdc14e58a215¤codeÚ€begin
	const block3 = Set(GridworldState(x, 3) for x in 2:8)
	const blocking_maze3 = make_gridworld(;iswall = s -> in(s, block3), block_maze_base_args...)
	[plot_path(blocking_maze2, iswall = s -> in(s, block2), max_steps = 2000, title = "Shortcut Maze Steps <= 3000") plot_path(blocking_maze3, iswall = s -> in(s, block3), max_steps = 2000, title = "Shortcut Maze Steps > 3000")]
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$72b40384-9ca1-4bc1-8e1a-8b639d39e215„§cell_idÙ$72b40384-9ca1-4bc1-8e1a-8b639d39e215¤codeÚ�md"""
In this section we compare two ways of distributing updates.  The classical approach, from dynamic programming, is to perform sweeps through the entire state (or state-action) space, updating each state (or state-action pair) once per sweep.  This is problematic on large tasks because there may not be time to complete even one sweep.  In many tasks, the vast majority or the states are irrelevant because they are visited only under very poor policies or with very low probability.  Exhaustive sweeps implicitely devote equal time to all parts of the state space rather than focusing where it is needed.  As we discussed in Chapter 4, exhaustive sweeps and the equal treatment of all states that they imply are not necessary properties of dynamic programming.  In principle, updates can be distributed in any way one likes (to assure convergence, all states or state-action pairs must be visited in the limit an infinite number of times; although an exception to this is discussed in Section 8.7 below), but in practice exhaustive sweeps are often used.

The second approach is to sample from the state or state-action space according to some distribution.  One could sample uniformly, as in the Dyna-Q agent, but this would suffer from some of the same problems as exhaustive sweeps.  More appealing is to distribute updates according to the on-poliy distribution, that is according to the distribution observed when following the current policy.  One advantage of this distribution is that it is easily generated; one simply interacts with the model, following the current policy.  In an episodic task, one starts in a start state (or according to the starting-state distribution) and simulates until the terminal state.  In a continuing task, one starts anywhere and just keeps simulating.  In either case, sample state transitions and rewards are given by the model, and sample actions are given by the current policy.  In other words, one simulates explicit individual trajectories and performs updates at the state or state-action pairs encountered along the way.  We call this way of generating experience and updates *trajectory sampling*.

Is the on-policy distribution of updates a good one?  Intuitively it seems like a good choice, at least better than the uniform distribution.  For example, if you are learning to play chess, you study positions that might arise in real games, not random positions of chess pieces.  The latter may be valid states, but to be able to accurately value them is a different skill from evaluating positions in real games.  We will also see in Part II that the on policy distribution has significant advantages when function approximation is used.  Whether or not function approximation is used, one might expect on-policy focusing to significantly improve the speed of planning.

The following experiment attempts to assess empirically the value of sampling from the on policy distribution by comparing it directly to the alternative of *uniform* sampling.  In the *uniform* case, all state action pairs are updated once in place and in the *on-policy* case an episode is imulated starting from the same state and updating each state-action pair that occured under the current $\epsilon$-greedy policy $(\epsilon = 0.1)$.  The tasks were undiscounted episodic tasks, generated randomly as follows.  From each of the $\vert \mathcal{S} \vert$ states, two actions were possible, each of which results in one of $b$ next states, all equally likely, with a different random selection of $b$ states for each state-action pair.  The branching factor, $b$, was the same for all state-action pairs.  In addition, on all transitions there was a 0.1 probability of transition to the terminal state, ending the episode.  The expected reward on each transition was selected from a Gaussian distribution with mean 0 and variance 1.  At any point in the planning process one can stop and exhaustively compute $v_{\tilde \pi}(s_0)$, the true value of the start state under the greedy policy, $\tilde \pi$, given the current action-value function $Q$, as in indication of how well the agent would do on a new episode on which it acted greedily (all while assuming the model is correct).
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$63bf9d16-4516-4cec-895f-f010275bca16„§cell_idÙ$63bf9d16-4516-4cec-895f-f010275bca16¤codeÙ+md"""
## 8.5 Expected vs Sample Updates
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$0adcbce8-2be5-48ef-af43-04815e10dc5c„§cell_idÙ$0adcbce8-2be5-48ef-af43-04815e10dc5c¤codeÚhfunction make_greedy_policy!(v::AbstractVector{T}; c = 1000) where T<:Real
	(vmin, vmax) = extrema(v)
	isnan(vmin) && error("NaN values in vector")
	if isinf(vmax)
		v .= T.(isinf.(v))
		v ./= sum(v)
	elseif vmin == vmax
		v .= zero(T)
		v .= one(T) / length(v)
	else
		v .= (v .- vmax) ./ abs(vmin - vmax)
		v .= exp.(c .* v)
		v ./= sum(v)
	end
	return v
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$f9e4baec-c988-4abd-9bb0-c618c0ec07b9„§cell_idÙ$f9e4baec-c988-4abd-9bb0-c618c0ec07b9¤codeÚ.#perform a rollout with an mdp from state s using a policy function Ï€ that produces an action selection given a state input. return value is an unbiased estimate of the value of this state under the policy
function rollout(mdp::MDP{S, A, F, G, H}, s::S, Ï€::Function, Î³::T; max_steps = Inf) where {S, A, F, G, H, T<:Real}
	step = 0
	#note that the terminal state will not be added to the state list
	r = zero(T)
	while !mdp.isterm(s) && (step <= max_steps)
		a = Ï€(s)
		r, sâ€² = mdp.step(s, a)
		r += Î³^step * r
		s = sâ€²
		step += 1
	end
	return r
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$502a7125-4460-4d39-be14-4852fb6d9ad2„§cell_idÙ$502a7125-4460-4d39-be14-4852fb6d9ad2¤codeÙˆplot_path(mdp; title = "Random policy <br> path example", kwargs...) = plot_path(mdp, make_random_policy(mdp); title = title, kwargs...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$31072f9b-de1b-42cf-a187-cbff99b49b50„§cell_idÙ$31072f9b-de1b-42cf-a187-cbff99b49b50¤codeÚ–md"""
Throughout the book we have considered a variety of value-function updates for the state value $v(s)$ and the state-action value $q(s, a)$.  Broadly, they can be separated into expected updates and sample-updates.  The first expected update considered was for dynamic programming in which we make use of the full probability transition function $p(s^\prime, r \vert s, a)$.  When used with a policy $\pi$ that provides a probability distribution over actions for each state, this technique is called *policy evaluation* and when a maximization is used over actions to find optimal value function and policy policy, this corresponds to *value iteration*.  Both of these techniques could be used with either the state or state-action value function.

The expected update for a state-action pair, $s,a$, is:

$Q(s, a) \leftarrow \sum_{s^\prime,r}\hat p (s^\prime,r \vert s, a) \left [ \gamma \max_{a^\prime} Q(s^\prime, a^\prime) \right ] \tag{8.1}$

Considering just one-step sample updates, we use an environment to sample a transition: $(s, a) \rightarrow (s^\prime, r)$.  Since we do not use the full probability transition function, the updates make use of a learning rate and accumulate samples over time either with Sarsa or Q-learning.  

The corresponding sample update for $s,a$ given a sample next state and reward, $S^\prime$ and $R$ (from the model), is the Q-learning-like update:

$Q(s, a) \leftarrow Q(s, a) + \alpha \left [ R + \gamma \max_{a^\prime} Q(s^\prime, a^\prime) - Q(s, a) \right ] \tag{8.2}$

where $\alpha$ is the usual positive step-size parameter.

The difference between expected and sample updates is significant to the extent that the environment is stochastic, specifically, to the extent that, given a state and action, many possible next states may occur with various probabilities.  If only one next state is possible, then the expected and sample updates given above are identical (taking $\alpha=1$).  If there are many possible next states, then tehre may be significant differences.  In favor  of the expected update is that it is an exact computation, resulting in a new $Q(s, a)$ whose correctness is limited only by the correctness of the $Q(s^\prime, a^\prime)$ at successor states.  The sample update is in addition affected by sampling error.  On the other hand, the sample update is cheaper computationally because it considers only one next state, not all possible next states.  In practice, the computation required by update operations is usually dominated by the number of state-action pairs at which $Q$ is evaluated.  For a particular starting pair, $s, a$, let $b$ be the *branching factor* (i.e. the number or possible next states, $s^\prime$, for which $\hat p (s^\prime, s, a) \gt 0$).  Then an expected update of this pair requires roughly $b$ times as much computation as a sample update.

If there is enough time to complete an expected update, then the resulting estimate is generally better than that of $b$ sample updates because of the absense of sampling error.  But if there is insufficient time to complete an expected update, then sample updates are always preferable because they at least make some improvement int he value estimate with fewer than $b$ updates.  In a large problem with many state-action pairs, we are often in the latter situation.  With so many state-action pairs, expected updates of all of them would take a very long time.  Before that we may be much better off with a few sample updates at many state-action pairs than with expected updates at a few pairs.  Given a unit of computation effort, is it better devoted to a few expected updates or to $b$ times as many sample updates?

Figure 8.7 shows the results of any analysis that suggests and answer ot this question.  It shows the estimation error as a function of computation time for expected and sample updates for a variety of branching factors $b$.  The case considered is that in which all $b$ successor states are equally likely and in which the error in the initial estimate is 1.  The values at the next states are assumed correct, sot he expected update redues the error to zero upon its completion.  In this case, sample updates reduce the error according to $\sqrt{\frac{b-1}{bt}}$ where $t$ is the number of sample updates that have been performed (assuming same averages, i.e. $\alpha = 1/t$).  The key observation is that for moderately large $b$ the error falls dramatically with a tiny fraction of $b$ updates.  For these cases, many state-action pairs could have their values improved dramatically, to within a few percent of the effect of an expected update, in teh same time that a single state-action pair could undergo an expected update.

The advantage of sample updates shown in Figure 8.7 is probably an underestimate of the real effect.  In a real problem, the values of successor states would be estimates that are themselves updated.  By causing estimates to be more accurate sooner, sample updates will have a second advantage in that the values backed up from the successor states will be more accurate.  These results suggest that sample updates are likely to be superior to expected updates on problems with large stochastic branching factors and too many states to be solved exactly.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$77fde69f-2119-41eb-8993-a93b2c47ca7e„§cell_idÙ$77fde69f-2119-41eb-8993-a93b2c47ca7e¤codeÙ$md"""
## Gridworld Visualization
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$65818e67-c146-4686-a9aa-d0859ef662fb„§cell_idÙ$65818e67-c146-4686-a9aa-d0859ef662fb¤codeÙ$md"""
### Example 8.1: Dyna Maze
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$b03087e9-e15d-4563-bdae-4d9ba7d2cec6„§cell_idÙ$b03087e9-e15d-4563-bdae-4d9ba7d2cec6¤codeÙ$md"""
## MDP Types and Functions
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$195d2a34-c44c-4088-8ec4-dece3107f16d„§cell_idÙ$195d2a34-c44c-4088-8ec4-dece3107f16d¤codeÚefunction bellman_optimal_value!(V::Vector{T}, mdp::FiniteMDP{T, S, A}, Î³::T) where {T <: Real, S, A}
	delt = zero(T)
	@inbounds @fastmath @simd for i_s in eachindex(mdp.states)
		maxvalue = typemin(T)
		@inbounds @fastmath @simd for i_a in eachindex(mdp.actions)
			x = zero(T)
			for (i_r, r) in enumerate(mdp.rewards)
				@inbounds @fastmath @simd for i_sâ€² in eachindex(V)
					x += mdp.ptf[i_sâ€², i_r, i_a, i_s] * (r + Î³ * V[i_sâ€²])
				end
			end
			maxvalue = max(maxvalue, x)
		end
		delt = max(delt, abs(maxvalue - V[i_s]) / (eps(abs(V[i_s])) + abs(V[i_s])))
		V[i_s] = maxvalue
	end
	return delt
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6858ef8b-1ca7-4e96-b57e-26553423cc13„§cell_idÙ$6858ef8b-1ca7-4e96-b57e-26553423cc13¤codeÙTsample_action(v::Vector{T}) where T<:AbstractFloat = sample(1:length(v), weights(v))¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$e689df6b-d6f0-4928-9212-a940aa00b0ef„§cell_idÙ$e689df6b-d6f0-4928-9212-a940aa00b0ef¤codeÙÏhtml"""
	<style>
		main {
			margin: 0 auto;
			max-width: min(1200px, 90%);
	    	padding-left: max(10px, 5%);
	    	padding-right: max(10px, 5%);
			font-size: max(10px, min(24px, 2vw));
		}
	</style>
	"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$3b0d2c55-2123-4b51-b946-6bc352e3d00a„§cell_idÙ$3b0d2c55-2123-4b51-b946-6bc352e3d00a¤codeÚømd"""
> ### *Exercise 8.6* 
> The analysis above assumed that all of the $b$ possible next states were equally likely to occur.  Suppose instead that the distribution was highly skewed, that some of the $b$ states were much more likely to occur than most.  Would this strengthen or weaken the case for sample updates over expected updates?  Support your answer.

For the expected updates, all transitions no matter how small the probability are given the same amount of computation time.  If certain transitions are much more likely than others, than the resulting state value computation is dominated by those transitions.  If we perform sample updates, those transitions will appear more frequently than the less likely ones and will contribute earlier to the error reduction.  In the extreme case if just one transition is close to probability 1, then that will be sampled almost every time and after just a single sample the error could be reduced close to 0.  An expected update, on the other hand, would have to consider every state action pair to just perform a single update.  Therefore the efficiency of sample updates would become exaggerated in all real world problems where the subsequent state transition probabilities deviate from a uniform distribution.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf„§cell_idÙ$c04c91be-de42-4dfc-bd0d-b9fbdde0c9cf¤codeÚkfunction simulate!(visit_counts, Q, mdp, Î³::T, v_est, s, depth, c::T, v_hold, update_tree_policy!, updateQ!, updateV!, q_hold, apply_bonus!, step_kwargs, est_kwargs) where T<:Real
	#if the state is terminal, produce a value of 0
	mdp.isterm(s) && return zero(T)
	
	depth â‰¤ 0 && return v_est(mdp, s, Î³; est_kwargs...)
	
	#for a state where no actions have been attempted, expand a new node
	if !haskey(visit_counts, s)
		# Q[s] = sparse(q_hold)
		# visit_counts[s] = sparse(q_hold)
		Q[s] = Dict{Int64, T}()
		visit_counts[s] = Dict{Int64, T}()
		return v_est(mdp, s, Î³; est_kwargs...)
	end

	apply_bonus!(v_hold, Q, visit_counts, s, c)
	
	update_tree_policy!(v_hold, s)
	i_a = sample_action(v_hold)
	a = mdp.actions[i_a]
	r, sâ€² = mdp.step(s, a; step_kwargs...)
	q = r + Î³*simulate!(visit_counts, Q, mdp, Î³, v_est, sâ€², depth - 1, c, v_hold, update_tree_policy!, updateQ!, updateV!, q_hold, apply_bonus!, step_kwargs, est_kwargs)
	
	updateV!(visit_counts, one(T), s, i_a)

	# Î´q = (q - Q[s][i_a]) / visit_counts[s][i_a]
	Î´q = (q - get_dict_value(Q[s], i_a)) / visit_counts[s][i_a]
	updateQ!(Q, Î´q, s, i_a)
	return q
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$d4e1e807-7e87-4b43-9c36-f59999dfcd2d„§cell_idÙ$d4e1e807-7e87-4b43-9c36-f59999dfcd2d¤codeÙÅ#get the value of a dictionary d at key k, defaulting to some value when the key is absent
get_dict_value(d::Dict{K, V}, k::K; default = zero(V)) where {K, V<:Real} = haskey(d, k) ? d[k] : default ¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$e25ec0d5-f70f-4269-b2a1-efa194936f72„§cell_idÙ$e25ec0d5-f70f-4269-b2a1-efa194936f72¤codeÙ$abstract type MDP{S, A, F, G, H} end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$1f7d77a6-d774-436d-a745-5a160cc15f2b„§cell_idÙ$1f7d77a6-d774-436d-a745-5a160cc15f2b¤codeÙµfunction plot_path(mdp, Ï€; max_steps = 100, kwargs...)
	(states, actions, rewards, sterm) = runepisode(mdp, Ï€; max_steps = max_steps)
	plot_path(mdp, states, sterm; kwargs...)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$5b688057-06c7-4ae4-95d6-0a2ff451f11c„§cell_idÙ$5b688057-06c7-4ae4-95d6-0a2ff451f11c¤codeÚvfunction figure_8_4â€²(; max_steps1 = 1000, max_steps2 = 2000, ntrials = 10, n = 10, Î± = 0.1f0, Ïµ = 0.1f0, Îº = 0.01f0)
	x = 1:(max_steps1 + max_steps2)
	function test_algo(f)
		y = zeros(max_steps1 + max_steps2)
		for _ in 1:ntrials
			(Q, steps, rewards, history, stm, rtm) = f(blocking_maze1, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps1, n = n)
			(Q2, steps2, rewards2, _, _) = f(blocking_maze2, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps2, n = n, Qinit = Q, history = history, state_transition_map = stm, reward_transition_map = rtm, init_step = max_steps1)

			y .+= cumsum([rewards; rewards2])
		end
		return x, y
	end

	(x1, y1) = test_algo(tabular_dynaQ)
	(x2, y2) = test_algo((args...; kwargs...) -> tabular_dynaQplus(args...; Îº = Îº, kwargs...))
	
	plot([scatter(x = x, y = y1 ./ ntrials, name = "Dyna-Q"), scatter(x = x, y = y2 ./ ntrials, name = "Dyna-Q+")])
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$8987052b-0828-43a5-982e-5f3d6209f2aa„§cell_idÙ$8987052b-0828-43a5-982e-5f3d6209f2aa¤codeÙ‰@bind fig_8_4_params PlutoUI.combine() do Child
	md"""
	Planning Steps: $(Child(:n, NumberField(1:100, default = 5)))
	"""
end |> confirm¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$4b2a4fb1-7395-4293-9ff9-e2f9da50f56b„§cell_idÙ$4b2a4fb1-7395-4293-9ff9-e2f9da50f56b¤codeÚfunction value_iteration_q!(Q, Î¸, mdp, Î³, nmax)
	nmax <= 0 && return Q
	
	#update value function
	delt = bellman_optimal_value!(Q, mdp, Î³)

	#halt when value function is no longer changing
	delt <= Î¸ && return Q
	
	value_iteration_q!(Q, Î¸, mdp, Î³, nmax - 1)	
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5„§cell_idÙ$fcaddc19-c0c9-4e8e-8f84-adc7a02cc1f5¤codeÙTfigure_8_8(10_000; blist = [1, 3], num_samples = 10, expected_updates_max = 200_000)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$5afad18b-1d87-450e-a0ff-8c1249d663ed„§cell_idÙ$5afad18b-1d87-450e-a0ff-8c1249d663ed¤codeÚ
�function tabular_dynaQ(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; num_episodes = 1000,
	max_steps = 10000, n = 100, qinit = zero(T), Ïµinit = one(T)/10, 
	Qinit = initialize_state_action_value(mdp; qinit=qinit), Ï€init = create_Ïµ_greedy_policy(Qinit, Ïµinit), 
	decay_Ïµ = false, history_state::S = first(mdp.states), 
	save_history = false, update_policy! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), 
	history = Dict{Int64, Set{Int64}}(),
	#each column contains the index of the state reached from the state represented by the column index while taking the action represented by the row index.  the values are initialized at 0 which represents a transition that has not occured
	state_transition_map = zeros(Int64, length(mdp.actions), length(mdp.states)),
	#each column contains the reward received from the state represented by the column index while taking the action represented by the row index.  the state_transition_map can be used to determine if any of these values have been updated from the zero initialization
	reward_transition_map = zeros(T, length(mdp.actions), length(mdp.states)),
	init_step = 0,
	isoptimal = l -> false) where {S, A, F, G, H, T<:AbstractFloat}

	Ï€ = copy(Ï€init)
	Q = copy(Qinit)
	Ïµ = Ïµinit
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	Q[:, terminds] .= zero(T)
	num_updates = 0
	
	vhold = zeros(T, length(mdp.actions))
	#keep track of rewards per step and steps per episode
	rewards = zeros(T, max_steps)
	steps = zeros(Int64, num_episodes)

	function updateQ!(Q, i_s, i_a, i_sâ€², r)
		qmax = maximum(Q[i, i_sâ€²] for i in eachindex(mdp.actions))
		Q[i_a, i_s] += Î±*(r + Î³*qmax - Q[i_a, i_s])
		num_updates += 1
	end

	function q_planning!(Q, history)
		for _ in 1:n
			i_s = rand(keys(history))
			i_a = rand(history[i_s])
			i_sâ€² = state_transition_map[i_a, i_s]
			r = reward_transition_map[i_a, i_s]
			updateQ!(Q, i_s, i_a, i_sâ€², r)
		end
	end

	ep = 1
	step = 1
	optimal_path = false
	while (step <= max_steps) && (ep <= num_episodes) && !optimal_path
		s = mdp.state_init()
		l = 0
		while !mdp.isterm(s) && step <= max_steps
			(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€, s)
			updateQ!(Q, i_s, i_a, i_sâ€², r)
			state_transition_map[i_a, i_s] = i_sâ€²
			reward_transition_map[i_a, i_s] = r
			#save state action pair visited
			if haskey(history, i_s)
				push!(history[i_s], i_a)
			else
				history[i_s] = Set([i_a])
			end
			q_planning!(Q, history)
			Ï€ = create_Ïµ_greedy_policy(Q, Ïµ; Ï€ = Ï€)
			s = sâ€²
			rewards[step] = r
			step += 1
			l += 1
		end
		steps[ep] = l
		optimal_path = isoptimal(l)
		ep += 1
	end
	return Q, steps[1:ep-1], rewards[1:step-1], history, state_transition_map, reward_transition_map, num_updates
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3„§cell_idÙ$b9054ed4-7f16-4920-b13e-5f4c6f50dcf3¤codeÚ
�function tabular_dynaQplus(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; 
	num_episodes = 1000, max_steps = 10000, n = 100, qinit = zero(T), Ïµinit = one(T)/10, 
	Qinit = initialize_state_action_value(mdp; qinit=qinit), Ï€init = create_Ïµ_greedy_policy(Qinit, Ïµinit), 
	decay_Ïµ = false, history_state::S = first(mdp.states), 
	save_history = false, update_policy! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), 
	history = zeros(Int64, length(mdp.actions), length(mdp.states)),
	#each column contains the index of the state reached from the state represented by the column index while taking the action represented by the row index.  the values are initialized to produce transitions to the original state
	state_transition_map = mapreduce(i_s -> i_s .* ones(Int64, length(mdp.actions)), hcat, eachindex(mdp.states)),
	#each column contains the reward received from the state represented by the column index while taking the action represented by the row index.  the state_transition_map can be used to determine if any of these values have been updated from the zero initialization
	reward_transition_map = zeros(T, length(mdp.actions), length(mdp.states)),
	Îº = 0.1f0, 
	init_step = 0) where {S, A, F, G, H, T<:AbstractFloat}

	Ï€ = copy(Ï€init)
	Q = copy(Qinit)
	Ïµ = Ïµinit
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	Q[:, terminds] .= zero(T)
	
	vhold = zeros(T, length(mdp.actions))
	#keep track of rewards per step and steps per episode
	rewards = zeros(T, max_steps)
	steps = zeros(Int64, num_episodes)

	function updateQ!(Q, i_s, i_a, i_sâ€², r)
		qmax = maximum(Q[i, i_sâ€²] for i in eachindex(mdp.actions))
		Q[i_a, i_s] += Î±*(r + Î³*qmax - Q[i_a, i_s])
	end

	function q_planning!(Q, history, step)
		for _ in 1:n
			i_s = ceil(Int64, rand()*length(mdp.states))
			i_a = ceil(Int64, rand()*length(mdp.actions))
			i_sâ€² = state_transition_map[i_a, i_s]
			Ï„ = step - history[i_a, i_s]
			r = reward_transition_map[i_a, i_s] + Îº*sqrt(Ï„)
			updateQ!(Q, i_s, i_a, i_sâ€², r)
		end
	end

	step = 1
	ep = 1
	while (ep <= num_episodes) && (step <= max_steps)
		s = mdp.state_init()
		l = 0
		
		while !mdp.isterm(s) && step <= max_steps
			(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€, s)
			updateQ!(Q, i_s, i_a, i_sâ€², r)
			state_transition_map[i_a, i_s] = i_sâ€²
			reward_transition_map[i_a, i_s] = r
			
			#save the step for which that state action pair was visited
			history[i_a, i_s] = step + init_step
			rewards[step] = r
			q_planning!(Q, history, step + init_step)
			step += 1
			Ï€ = create_Ïµ_greedy_policy(Q, Ïµ; Ï€ = Ï€)
			s = sâ€²
			l += 1
			
		end
		steps[ep] = l
		
		ep += 1
	end
	return Q, steps, rewards, history, state_transition_map, reward_transition_map
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$5ae2d740-13c7-4568-8f04-25bc82fecbdb„§cell_idÙ$5ae2d740-13c7-4568-8f04-25bc82fecbdb¤codeÚ„begin
	const block1 = Set(GridworldState(x, 3) for x in 1:8)
	const block2 = Set(GridworldState(x, 3) for x in 2:9)
	const block_maze_base_args = (xmax = 9, ymax = 6, sterm = GridworldState(9, 6), start = GridworldState(4, 1))
	const blocking_maze1 = make_gridworld(;iswall = s -> in(s, block1), block_maze_base_args...)
	const blocking_maze2 = make_gridworld(;iswall = s -> in(s, block2), block_maze_base_args...)
	[plot_path(blocking_maze1, iswall = s -> in(s, block1), max_steps = 2000, title = "Blocking Maze Steps <= 1000") plot_path(blocking_maze2, iswall = s -> in(s, block2), max_steps = 1000, title = "Blocking Maze Steps > 1000")]
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$0dbd2b87-d000-408b-8d04-25fc0fa512d1„§cell_idÙ$0dbd2b87-d000-408b-8d04-25fc0fa512d1¤codeÙKfigure_8_4â€²(;ntrials = 10, Ïµ = 0.2f0, Î± = 1.0f0, Îº = 0.0001f0, n = 50)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$33f66659-1a87-4890-9137-dbc7776a19d8„§cell_idÙ$33f66659-1a87-4890-9137-dbc7776a19d8¤codeÚÿfunction make_greedy_policy!(Ï€::Matrix{T}, mdp::FiniteMDP{T, S, A}, V::Vector{T}, Î³::T) where {T<:Real,S,A}
	for i_s in eachindex(mdp.states)
		maxv = -Inf
		for i_a in eachindex(mdp.actions)
			x = zero(T)
			for i_r in eachindex(mdp.rewards)
				for i_sâ€² in eachindex(V)
					x += mdp.ptf[i_sâ€², i_r, i_a, i_s] * (mdp.rewards[i_r] + Î³ * V[i_sâ€²])
				end
			end
			maxv = max(maxv, x)
			Ï€[i_a, i_s] = x
		end
		Ï€[:, i_s] .= (Ï€[:, i_s] .â‰ˆ maxv)
		Ï€[:, i_s] ./= sum(Ï€[:, i_s])
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$269f4505-e807-446c-8fd8-3458482e00ab„§cell_idÙ$269f4505-e807-446c-8fd8-3458482e00ab¤codeÚ
�function tabular_dynaQplusâ€²(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; 
	num_episodes = 1000, max_steps = 10000, n = 100, qinit = zero(T), Ïµinit = one(T)/10, 
	Qinit = initialize_state_action_value(mdp; qinit=qinit), Ï€init = create_Ïµ_greedy_policy(Qinit, Ïµinit), 
	decay_Ïµ = false, history_state::S = first(mdp.states), 
	save_history = false, update_policy! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ), 
	history = zeros(Int64, length(mdp.actions), length(mdp.states)),
	#each column contains the index of the state reached from the state represented by the column index while taking the action represented by the row index.  the values are initialized to produce transitions to the original state
	state_transition_map = mapreduce(i_s -> i_s .* ones(Int64, length(mdp.actions)), hcat, eachindex(mdp.states)),
	#each column contains the reward received from the state represented by the column index while taking the action represented by the row index.  the state_transition_map can be used to determine if any of these values have been updated from the zero initialization
	reward_transition_map = zeros(T, length(mdp.actions), length(mdp.states)),
	Îº = 0.1f0, 
	init_step = 0) where {S, A, F, G, H, T<:AbstractFloat}

	Ï€ = copy(Ï€init)
	Q = copy(Qinit)
	Ïµ = Ïµinit
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	Q[:, terminds] .= zero(T)
	
	vhold = zeros(T, length(mdp.actions))
	#keep track of rewards per step and steps per episode
	rewards = zeros(T, max_steps)
	steps = zeros(Int64, num_episodes)

	function updateQ!(Q, i_s, i_a, i_sâ€², r)
		qmax = maximum(Q[i, i_sâ€²] for i in eachindex(mdp.actions))
		Q[i_a, i_s] += Î±*(r + Î³*qmax - Q[i_a, i_s])
	end

	function q_planning!(Q, history)
		for _ in 1:n
			i_s = ceil(Int64, rand()*length(mdp.states))
			i_a = ceil(Int64, rand()*length(mdp.actions))
			i_sâ€² = state_transition_map[i_a, i_s]
			r = reward_transition_map[i_a, i_s]
			updateQ!(Q, i_s, i_a, i_sâ€², r)
		end
	end

	step = 1
	ep = 1
	while (ep <= num_episodes) && (step <= max_steps)
		s = mdp.state_init()
		l = 0
		
		while !mdp.isterm(s) && step <= max_steps
			(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€, s)
			updateQ!(Q, i_s, i_a, i_sâ€², r)
			state_transition_map[i_a, i_s] = i_sâ€²
			reward_transition_map[i_a, i_s] = r
			
			#save the step for which that state action pair was visited
			history[i_a, i_s] = step + init_step
			rewards[step] = r
			q_planning!(Q, history)
			step += 1
			Ï€ .= Q .+ Îº .* sqrt.(T.(step .+ init_step .- history))
			Ï€ = create_greedy_policy(Ï€; Ï€ = Ï€)
			s = sâ€²
			l += 1
			
		end
		steps[ep] = l
		
		ep += 1
	end
	return Q, steps, rewards, history, state_transition_map, reward_transition_map
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$037f1804-b24e-46e7-b2a8-6747e669db66„§cell_idÙ$037f1804-b24e-46e7-b2a8-6747e669db66¤codeÙ?makelookup(v::Vector) = Dict(x => i for (i, x) in enumerate(v))¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$c1ff1bea-649c-4483-b4be-55134f0e8cb7„§cell_idÙ$c1ff1bea-649c-4483-b4be-55134f0e8cb7¤codeÙƒfunction sample_action(Ï€::Matrix{T}, i_s::Integer) where T<:AbstractFloat
	(n, m) = size(Ï€)
	sample(1:n, weights(Ï€[:, i_s]))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$7ae23e8e-d554-4d26-a08a-83dab507af13„§cell_idÙ$7ae23e8e-d554-4d26-a08a-83dab507af13¤codeÙ�initialize_state_action_value(mdp::MDP_TD; qinit::T = 0.0f0) where T<:AbstractFloat = ones(T, length(mdp.actions), length(mdp.states)) .* qinit¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$26fe0c28-8f0f-4cff-87fb-76f04fce1be1„§cell_idÙ$26fe0c28-8f0f-4cff-87fb-76f04fce1be1¤codeÚ#md"""
> ### *Exercise 8.3* 
> Careful inspection of Figure 8.5 reveals that the difference between Dyna-Q+ and Dyna-Q narrowed slightly over the first part of the experiment. What is the reason for this?

As long as the environment isn't changing, no matter how small Ïµ is both algorithms will converge to the optimal policy as long as $\alpha$, $\kappa$, and $\tau$ converge to 0.  For a given value of $\epsilon$, the Dyna-Q+ agent will take more exploratory actions due to the modified rewards updating the Q function.  If both agents have converged to close to the optimal policy at this point, then the agent which follows a more expoitative policy will produce higher rewards.  In this case, the extra exploration of Dyna-Q+ is not beneficial and its relative performance to Dyna-Q degrades.
	"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$98547223-05a6-43da-80b2-63c67d2de283„§cell_idÙ$98547223-05a6-43da-80b2-63c67d2de283¤codeÙ!figure_8_5(;ntrials = 10, n = 10)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$4b3604db-0c1b-4770-95b1-5f5bb34d071b„§cell_idÙ$4b3604db-0c1b-4770-95b1-5f5bb34d071b¤codeÙ:function addelements(e1, e2)
	@htl("""
	$e1
	$e2
	""")
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$143fff7d-0bb2-43b4-b810-53784fe848bd„§cell_idÙ$143fff7d-0bb2-43b4-b810-53784fe848bd¤codeÚ¶function q_learning(mdp::MDP_TD{S, A, F, G, H}, Î±::T, Î³::T; num_episodes = 1000, qinit = zero(T), Ïµinit = one(T)/10, Qinit = initialize_state_action_value(mdp; qinit=qinit), Ï€init = create_Ïµ_greedy_policy(Qinit, Ïµinit), decay_Ïµ = false, history_state::S = first(mdp.states), save_history = false, update_policy! = (v, Ïµ, s) -> make_Ïµ_greedy_policy!(v, Ïµ)) where {S, A, F, G, H, T<:AbstractFloat}
	terminds = findall(mdp.isterm(s) for s in mdp.states)
	Q = copy(Qinit)
	Q[:, terminds] .= zero(T)
	Ï€ = copy(Ï€init)
	vhold = zeros(T, length(mdp.actions))
	#keep track of rewards and steps per episode as a proxy for training speed
	rewards = zeros(T, num_episodes)
	steps = zeros(Int64, num_episodes)
	
	if save_history
		history_actions = Vector{A}(undef, num_episodes)
	end
	
	for ep in 1:num_episodes
		Ïµ = decay_Ïµ ? Ïµinit/ep : Ïµinit
		s = mdp.state_init()
		rtot = zero(T)
		l = 0
		while !mdp.isterm(s)
			(i_s, i_sâ€², r, sâ€², a, i_a) = takestep(mdp, Ï€, s)
			if save_history && (s == history_state)
				history_actions[ep] = a
			end
			qmax = maximum(Q[i, i_sâ€²] for i in eachindex(mdp.actions))
			Q[i_a, i_s] += Î±*(r + Î³*qmax - Q[i_a, i_s])
			
			#update terms for next step
			vhold .= Q[:, i_s]
			update_policy!(vhold, Ïµ, s)
			Ï€[:, i_s] .= vhold
			s = sâ€²
			
			l+=1
			rtot += r
		end
		steps[ep] = l
		rewards[ep] = rtot
	end

	save_history && return Q, Ï€, steps, rewards, history_actions
	return Q, Ï€, steps, rewards
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$6778296c-ab05-47e7-86d2-e98c075a8a0c„§cell_idÙ$6778296c-ab05-47e7-86d2-e98c075a8a0c¤codeÙËfunction begin_value_iteration_q(mdp::M, Î³::T, Q::Matrix{T}; Î¸ = eps(zero(T)), nmax=typemax(Int64)) where {T<:Real, M <: CompleteMDP{T, S, A} where {S, A}}
	value_iteration_q!(Q, Î¸, mdp, Î³, nmax)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$c04c803c-cdca-4b8b-9c9d-e456ee677906„§cell_idÙ$c04c803c-cdca-4b8b-9c9d-e456ee677906¤codeÙôbegin
	const maze_walls = Set(GridworldState(x, y) for (x, y) in [(3, 3), (3, 4), (3, 5), (6, 2), (8, 4), (8, 5), (8, 6)])
	const dyna_maze = make_gridworld(;xmax = 9, ymax = 6, sterm = GridworldState(9, 6), iswall = s -> in(s, maze_walls))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$9d69687a-8df6-4e74-aa99-fbfcc84bcccf„§cell_idÙ$9d69687a-8df6-4e74-aa99-fbfcc84bcccf¤codeÚqconst rook_action_display = @htl("""
<div style = "display: flex; flex-direction: column; align-items: center; justify-content: center; color: black; background-color: rgba(100, 100, 100, 0.1);">
	<div style = "display: flex; align-items: center; justify-content: center;">
	<div class = "downarrow" style = "transform: rotate(90deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(180deg);"></div>
	<div class = "downarrow" style = "position: absolute; transform: rotate(270deg);"></div>
	<div class = "downarrow" style = "position: absolute;"></div>
	</div>
	<div>Actions</div>
</div>
""")¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$16c68a13-c295-4a64-bc2b-2ae8451f332f„§cell_idÙ$16c68a13-c295-4a64-bc2b-2ae8451f332f¤codeÚ#function bellman_optimal_value!(V::Vector{T}, mdp::FiniteDeterministicMDP{T, S, A}, Î³::T) where {T <: Real, S, A}
	delt = zero(T)
	@inbounds @fastmath @simd for i_s in eachindex(mdp.states)
		maxvalue = typemin(T)
		@inbounds @fastmath @simd for i_a in eachindex(mdp.actions)
			i_sâ€² = mdp.state_transition_map[i_a, i_s]
			r = mdp.reward_transition_map[i_a, i_s]
			x = r + Î³*V[i_sâ€²]
			maxvalue = max(maxvalue, x)
		end
		delt = max(delt, abs(maxvalue - V[i_s]) / (eps(abs(V[i_s])) + abs(V[i_s])))
		V[i_s] = maxvalue
	end
	return delt
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$fb00aedd-e103-4463-b4f8-d0dce6275c64„§cell_idÙ$fb00aedd-e103-4463-b4f8-d0dce6275c64¤codeÚ§function example_8_4(;Î± = 1f0, n = 5, Î³ = 0.95f0, samples = 2, maze_scales = [1, 1.25, 1.5, 2])
	function get_optimal_steps(algo, mdp, optimal_steps)
		updates_until_optimal = 0
		for s in 1:samples
			Random.seed!(s)
			out = algo(mdp, Î±, Î³; n = n, Ïµinit = 0.1f0, isoptimal = l -> l == optimal_steps)
			updates_until_optimal += last(out)
		end
		return updates_until_optimal / samples
	end

	mazes = [make_dyna_maze(s) for s in maze_scales]

	function make_trace(algo, name)
		y = mazes |> Map(maze -> get_optimal_steps(algo, maze.maze, maze.optimal_length)) |> tcollect
		x = [length(maze.maze.states) for maze in mazes]
		scatter(x = x, y = y, name = name)
	end
	
	traces = [make_trace(prioritized_sweeping_deterministic, "prioritized sweeping"), make_trace(tabular_dynaQ, "Dyna-Q")]
	plot(traces, Layout(yaxis_type = "log", xaxis_type = "log", xaxis_title = "Maze States", yaxis_title = "Updates until optimal solution"))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$e43513e8-2517-43b7-9a16-e57d4125edc4„§cell_idÙ$e43513e8-2517-43b7-9a16-e57d4125edc4¤codeÙWrunepisode(mdp::MDP_MC; kwargs...) = runepisode(mdp, s -> rand(mdp.actions); kwargs...)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$df62fd47-6627-4931-b429-964c65960446„§cell_idÙ$df62fd47-6627-4931-b429-964c65960446¤codeÚtfunction figure_8_7(;bvec = [2, 10, 100, 1000, 10_000])
	traces = [begin
		t = 1:2*b
		error_reduction = sqrt.((b-1) ./ (b.*t))
		scatter(x = [0; t ./ b], y = [1; error_reduction], name = "b = $b")
	end
	for b in bvec]
	ex_update_trace = scatter(x = [0, 1, 1, 2], y = [1, 1, 0, 0], name = "expected updates", mode = "lines", line_color = "gray")
	md"""
	### Figure 8.7: 
	Comparison of efficiency of expected and sample updates
	$(plot([traces; ex_update_trace], Layout(yaxis_title = "RMS error in value estimates", xaxis=attr(title = "Number of max Q computations", tickvals = [0, 1, 2], ticktext = [0, "1b", "2b"]))))
	"""
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$321bdf5a-bff7-4181-986f-d3884ea96d27„§cell_idÙ$321bdf5a-bff7-4181-986f-d3884ea96d27¤code¸md"""
# Dependencies
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$82e1ceb8-b1bb-4dea-b041-bf462041793f„§cell_idÙ$82e1ceb8-b1bb-4dea-b041-bf462041793f¤codeÚ#function make_greedy_policy!(Ï€::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, V::Vector{T}, Î³::T) where {T<:Real,S,A}
	for i_s in eachindex(mdp.states)
		maxv = -Inf
		for i_a in eachindex(mdp.actions)
			r_avg = zero(T)
			v_avg = zero(T)
			ptf = mdp.ptf[(i_a, i_s)]
			for i_sâ€² in keys(ptf)
				p = ptf[i_sâ€²][1]
				v_avg += p*V[i_sâ€²]
				r_avg += p*ptf[i_sâ€²][2]
			end
			x = r_avg + Î³*v_avg
			maxv = max(maxv, x)
			Ï€[i_a, i_s] = x
		end
		Ï€[:, i_s] .= (Ï€[:, i_s] .â‰ˆ maxv)
		Ï€[:, i_s] ./= sum(Ï€[:, i_s])
	end
	return Ï€
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$5e49504e-9623-48f9-aeb5-360906b92a09„§cell_idÙ$5e49504e-9623-48f9-aeb5-360906b92a09¤codeÙGvholdtest = [[1f0, 1f0, 1f0]; fill(Inf32, length(nyt_valid_words) - 3)]¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$2ff6d187-e06f-47b5-9834-d06bfc820c26„§cell_idÙ$2ff6d187-e06f-47b5-9834-d06bfc820c26¤codeÚffunction figure_8_4(; max_steps1 = 1000, max_steps2 = 2000, ntrials = 10, n = 10, Î± = 0.1f0, Ïµ = 0.1f0)
	y = zeros(max_steps1 + max_steps2)
	x = 1:(max_steps1 + max_steps2)
	for _ in 1:ntrials
		(Q, steps, rewards, history, stm, rtm) = tabular_dynaQ(blocking_maze1, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps1, n = n)
		(Q2, steps2, rewards2, _, _) = tabular_dynaQ(blocking_maze2, Î±, 0.95f0; Ïµinit = Ïµ, max_steps = max_steps2, n = n, Qinit = Q, history = history, state_transition_map = stm, reward_transition_map = rtm)
		y .+= cumsum([rewards; rewards2])
	end
	plot(scatter(x = x, y = y ./ ntrials))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1„§cell_idÙ$c31f4646-aa8a-41e3-9c68-ae8a349d4ed1¤codeÙtfigure_8_4â€²â€²(;ntrials = 10, Ïµ = 0.1f0, Î± = 1.0f0, Îº = 0.0001f0, n = 50, max_steps1 = 1000, max_steps2 = 2000)¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$dab6eac0-7958-4d3a-a1af-781fb57e7adb„§cell_idÙ$dab6eac0-7958-4d3a-a1af-781fb57e7adb¤codeÚšmd"""
### Example 8.3: Shortcut Maze

The problem of an incorrect model can be even worse in the case of an improvement to the environment.  The following example illustrates the problem in which a maze is at first blocked forcing a longer path.  After a certain number of timesteps a shorter path is opened up without disturbing the original path.  The Dyna-Q agent however never learns to switch to the shortcut because the model never reveals it or provides incentive to explore paths that it already thinks are suboptimal.  Even with an Ïµ-greedy policy, it is very unlikely that hte agent will take so many exploratory actions as to discover the shortcut.  
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$04ea981e-337e-4324-a5cc-178eb3c7605b„§cell_idÙ$04ea981e-337e-4324-a5cc-178eb3c7605b¤codeÙ)md"""
## 8.11 Monte Carlo Tree Search
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$976ff0c3-54aa-41f0-b963-baf77bea8cb8„§cell_idÙ$976ff0c3-54aa-41f0-b963-baf77bea8cb8¤codeÚ7md"""
The general problem here is the conflict between exploration and exploitation.  In a planning context, exploration means trying actions that improve the model, whereas exploitation means behaving in the optimal way given the current model.  We want the agent to explore to find changes in the environment, but not so much that performance is greatly degraded.  As in the earlier exploration/exploitation conflict, there probably is no solution that is both perfect and practical, but simple heuristics are often effective.

An example of such a heuristic is that used by the Dyna-Q+ agent which keeps track of how many time steps have elapsed since the state-action pair was last tried in a real interaction with the environment.  The more time that has elapsed, the greater (we might presume) the chance that the dynamics of this pair has changed and that the model is incorrect.  To encourage behavior that tests long-untried actions, a special "bonus reward" is given on simulated experiences involving these actions.  In particular, if the modeled reward for a transition is $r$, and the transition has not been tried in $\tau$ time steps, then planning updates are done as if that transition produced a reward of $r + \kappa \sqrt{\rho}$, for some small $\kappa$.  This encourages the agent to keep testing all accessible state transitions and even to find long sequences of actions in order to carry out such tests.  Of course all this testing has its cost, but in many cases, as in the shortcut maze, this kind of computational curiosity is well worth the extra exploration.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$094321bc-2d44-4e67-9ac6-5216a42e0cd3„§cell_idÙ$094321bc-2d44-4e67-9ac6-5216a42e0cd3¤codeÚŒfunction bellman_policy_update!(Q::Matrix{T}, Ï€::Matrix{T}, i_s::Int64, i_a::Int64, mdp::FiniteStochasticMDP{T, S, A}, Î³::T) where {T <: Real, S, A}
	#perform a bellman optimal update for a given state action pair index and return the percentage change in value
	q_avg = zero(T)
	r_avg = zero(T)
	ptf = mdp.ptf[(i_a, i_s)]
	x = zero(T)
	for i_sâ€² in keys(ptf)
		(p, r) = ptf[i_sâ€²]
		v = zero(T)
		@inbounds @fastmath @simd for i_aâ€² in eachindex(mdp.actions)
			v += Ï€[i_aâ€², i_sâ€²] * Q[i_aâ€², i_sâ€²]
		end
		x += p*(r + Î³ * v)
	end
	delt = abs(x - Q[i_a, i_s]) / (eps(abs(Q[i_a, i_s])) + abs(Q[i_a, i_s]))
	Q[i_a, i_s] = x
	return delt
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$13f08473-f0d8-47d1-aa48-de3e4a083dbf„§cell_idÙ$13f08473-f0d8-47d1-aa48-de3e4a083dbf¤codeÚxfunction simulate!(w::AS, tree_values::Dict{S, Tuple{T, Dict{Int64, Tuple{T, T}}}}, mdp::AfterstateMDP_MC{S, AS, A, F, G, H, I}, Î³::T, v_est::Function, depth::Integer, c::T, v_hold, update_tree_policy!, update_tree!, q_hold, apply_bonus!, step_kwargs, transition_kwargs, est_kwargs) where {T<:Real, S, AS, A, F<:Function, G<:Function, H<:Function, I<:Function}
	dist = mdp.afterstate_transition(w; transition_kwargs...) #get the distribution of states following the transition
	k_sample = sample(collect(keys(dist)), weights(collect(values(dist)))) #sample one of the transition states to visit in the tree
	sum(begin
		(r, s) = k
		p = dist[k]
		vâ€² = simulate!(s, k == k_sample, tree_values, mdp, Î³, v_est, depth - 1, c, v_hold, update_tree_policy!, update_tree!, q_hold, apply_bonus!, step_kwargs, transition_kwargs, est_kwargs)
		p * (r + Î³ * vâ€²) 
	end
	for k in keys(dist))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$f143446c-e44b-4d75-baa7-3b24eafad003„§cell_idÙ$f143446c-e44b-4d75-baa7-3b24eafad003¤codeÚ
^#need to decide which tree statistics to collect like state values or afterstate values and what expansion means vs normal mcts.  I know that when I visit a new afterstate which is the same as a new action selection, I want to estimate it with a weighted sum of the value estimates of all the sucessor states but I don't necessarily want the tree search to continue down all those paths and split although it could so a single simulation would split into all the successor states avoiding the need to make a selection.  For doing sample updates though, I want to just pick one of those branches to go down by sampling from the distribution so then the simulation function itself should handle the case of an unvisited state which would look at the afterstate values that lead from that state if any exist and well this is the problem is which values should be saved and what does it mean to estimate the value of something for one of the unvisited states
function simulate!(s::S, visit::Bool, tree_values::Dict{S, Tuple{T, Dict{Int64, Tuple{T, T}}}}, mdp::AfterstateMDP_MC{S, AS, A, F, G, H, I}, Î³::T, v_est::Function, depth::Integer, c::T, v_hold, update_tree_policy!, update_tree!, q_hold, apply_bonus!, step_kwargs, transition_kwargs, est_kwargs) where {T<:Real, S, AS, A, F<:Function, G<:Function, H<:Function, I<:Function}
	#if the state is terminal, produce a value of 0
	mdp.isterm(s) && return zero(T)

	depth â‰¤ 0 && return v_est(mdp, s, Î³; est_kwargs...)
	
	#for a state where no actions have been attempted, expand a new node
	if !haskey(tree_values, s)
		v = v_est(mdp, s, Î³; est_kwargs...)
		tree_values[s] = (v, Dict{Int64, Tuple{T, T}}()) 
		return v
	end

	!visit && return max(tree_values[s][1], maximum(t[2]/t[1] for t in values(tree_values[s][2]); init = zero(T))) #if not visiting this state then just return the best value estimate and do not update the tree values

	#compute value estimates and bonus applies to each potential action
	apply_bonus!(v_hold, tree_values, s, c)
	update_tree_policy!(v_hold, s)

	#select an action from the tree policy
	i_a = sample_action(v_hold)
	a = mdp.actions[i_a]
	r1, w = mdp.afterstate_step(s, a; step_kwargs...) #take a step with the action and get the afterstate
	v_w = simulate!(w, tree_values, mdp, Î³, v_est, depth, c, v_hold, update_tree_policy!, update_tree!, q_hold, apply_bonus!, step_kwargs, transition_kwargs, est_kwargs)
	v_a = r1 + v_w #value for the visited action
	update_tree!(tree_values, v_a, s, i_a)
	return max(tree_values[s][1], maximum(t[2]/t[1] for t in values(tree_values[s][2]); init = zero(T))) #the value that was just updated will be included in this maximum
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43„§cell_idÙ$0899f37c-5def-4d15-8ca3-ebdec8e96b43¤codeÚIfunction begin_value_iteration_v(mdp::M, Î³::T, V::Vector{T}; Î¸ = eps(zero(T)), nmax=typemax(Int64)) where {T<:Real, M <: CompleteMDP{T, S, A} where {S, A}}
	valuelist = [copy(V)]
	value_iteration_v!(V, Î¸, mdp, Î³, nmax, valuelist)

	Ï€ = form_random_policy(mdp)
	make_greedy_policy!(Ï€, mdp, V, Î³)
	return (valuelist, Ï€)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$94b339bb-6e2d-422f-8043-615e8be9a217„§cell_idÙ$94b339bb-6e2d-422f-8043-615e8be9a217¤codeÚ	begin
	abstract type CompleteMDP{T<:Real, S, A} end
	struct FiniteMDP{T<:Real, S, A} <: CompleteMDP{T, S, A} 
		states::Vector{S}
		actions::Vector{A}
		rewards::Vector{T}
		# ptf::Dict{Tuple{S, A}, Matrix{T}}
		ptf::Array{T, 4}
		action_scratch::Vector{T}
		state_scratch::Vector{T}
		reward_scratch::Vector{T}
		state_index::Dict{S, Int64}
		action_index::Dict{A, Int64}
		function FiniteMDP{T, S, A}(states::Vector{S}, actions::Vector{A}, rewards::Vector{T}, ptf::Array{T, 4}) where {T <: Real, S, A}
			new(states, actions, rewards, ptf, Vector{T}(undef, length(actions)), Vector{T}(undef, length(states)+1), Vector{T}(undef, length(rewards)), Dict(zip(states, eachindex(states))), Dict(zip(actions, eachindex(actions))))
		end	
	end
	FiniteMDP(states::Vector{S}, actions::Vector{A}, rewards::Vector{T}, ptf::Array{T, 4}) where {T <: Real, S, A} = FiniteMDP{T, S, A}(states, actions, rewards, ptf)
	
	struct FiniteDeterministicMDP{T<:Real, S, A} <: CompleteMDP{T, S, A}
		states::Vector{S}
		actions::Vector{A}
		state_index::Dict{S, Int64}
		action_index::Dict{A, Int64}
		state_transition_map::Matrix{Int64} #index of state reached from the state corresponding to the column when taking action corresponding to the row
		reward_transition_map::Matrix{T} #reward received for the transition from the state corresponding to the column when taking action corresponding to the row
	end
	FiniteDeterministicMDP(states::Vector{S}, actions::Vector{A}, state_transition_map::Matrix{Int64}, reward_transition_map::Matrix{T}) where {T<:Real, S, A} = FiniteDeterministicMDP{T, S, A}(states, actions, makelookup(states), makelookup(actions), state_transition_map, reward_transition_map)
	
	struct FiniteStochasticMDP{T<:Real, S, A} <: CompleteMDP{T, S, A}
		states::Vector{S}
		actions::Vector{A}
		state_index::Dict{S, Int64}
		action_index::Dict{A, Int64}
		ptf::Dict{Tuple{Int64, Int64}, Dict{Int64, Tuple{T, T}}} #for each state action pair index there is a corresponding dictionary mapping each transition state index to the probability of that transition and the average reward received
	end
	FiniteStochasticMDP(states::Vector{S}, actions::Vector{A}, ptf::Dict{Tuple{Int64, Int64}, Dict{Int64, Tuple{T, T}}}) where {T<:Real, S, A} = FiniteStochasticMDP{T, S, A}(states, actions, makelookup(states), makelookup(actions), ptf)
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0a„§cell_idÙ$466b1cbf-586f-4b53-8b4b-2dc32e1c8b0a¤codeÚ¹#perform action selection within an mdp for a given state s, discount factor Î³, and state value estimation function v_est.  v_est must be a function that takes the arguments (mdp, s, Î³) and produces a reward of the same type as Î³
function monte_carlo_tree_search(mdp::MDP{S, A, F, G, H}, Î³::T, v_est::Function, s::S; 
	depth = 10, 
	nsims = 100, 
	c = one(T), 
	# visit_counts = Dict{S, SparseVector{T, Int64}}(), 
	visit_counts = Dict{S, Dict{Int64, T}}(),
	# Q = Dict{S, SparseVector{T, Int64}}(),
	Q = Dict{S, Dict{Int64, T}}(),
	update_tree_policy! = (v, s) -> make_greedy_policy!(v), 
	v_hold = zeros(T, length(mdp.actions)),
	updateQ! = function(Q, x, s, i_a)
		# Q[s][i_a] += x
		Q[s][i_a] = get_dict_value(Q[s], i_a) + x
	end,
	updateV! = function(V, x, s, i_a)
		# V[s][i_a] += x
		V[s][i_a] = get_dict_value(V[s], i_a) + x
	end,
	apply_bonus! = apply_uct!,
	make_step_kwargs = k -> NamedTuple(), #option to create mdp step arguments that depend on the simulation number, 
	make_est_kwargs = k -> NamedTuple(), #option to create state estimation arguments that depend on the simulation number
	sim_message = false
	) where {S, A, F, G, H, T<:Real}

	q_hold = zeros(T, length(mdp.actions))
	#I want to have a way of possible a kwargs such as the answer index to the simulator that can change with each simulation
	t = time()
	last_time = t
	for k in 1:nsims
		seed = rand(UInt64)
		if sim_message
			elapsed = time() - last_time
			if elapsed > 5
				last_time = time()
				pct_done = k/nsims
				total_time = time() - t
				ett = total_time / pct_done
				eta = ett - total_time
				@info """Completed simulation $k of $nsims after $(round(Int64, total_time/60)) minutes
				ETA: $(round(Int64, eta/60)) minutes"""
			end
		end
		simulate!(visit_counts, Q, mdp, Î³, v_est, s, depth, c, v_hold, update_tree_policy!, updateQ!, updateV!, q_hold, apply_bonus!, make_step_kwargs(seed), make_est_kwargs(seed))
	end

	minv = minimum(Q[s][k] for k in keys(Q[s]))
	# v_hold .= Q[s]
	for i in eachindex(v_hold)
		v_hold[i] = get_dict_value(Q[s], i; default = minv)
	end
	make_greedy_policy!(v_hold)
	if sim_message
		@info "Finished MCTS evaluation of state $s"
	end
	return mdp.actions[sample_action(v_hold)], visit_counts, Q
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bc„§cell_idÙ$dff6f326-ab7e-45e5-8c5e-28bfbb1d99bc¤codeÙÕmd"""
### Example 8.4: Prioritized Sweeping on Mazes

Consider different mazes with the same wall structure as the Dyna Maze example but scaled up to different resolutions.  Some example mazes are shown below.
"""¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÃÙ$81f2f335-6606-4506-bfb3-d0d95e651f24„§cell_idÙ$81f2f335-6606-4506-bfb3-d0d95e651f24¤codeÚ�function bellman_optimal_update!(Q::Matrix{T}, i_s::Int64, i_a::Int64, mdp::FiniteStochasticMDP{T, S, A}, Î³::T) where {T <: Real, S, A}
	#perform a bellman optimal update for a given state action pair index and return the percentage change in value
	q_avg = zero(T)
	r_avg = zero(T)
	ptf = mdp.ptf[(i_a, i_s)]
	x = zero(T)
	for i_sâ€² in keys(ptf)
		(p, r) = ptf[i_sâ€²]
		maxvalue = typemin(T)
		@inbounds @fastmath @simd for i_aâ€² in eachindex(mdp.actions)
			maxvalue = max(maxvalue, Q[i_aâ€², i_sâ€²])
		end
		x += p*(r + Î³ * maxvalue)
	end
	delt = abs(x - Q[i_a, i_s]) / (eps(abs(Q[i_a, i_s])) + abs(Q[i_a, i_s]))
	Q[i_a, i_s] = x
	return delt
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$aa898360-f802-438a-9081-a2e517230db2„§cell_idÙ$aa898360-f802-438a-9081-a2e517230db2¤codeÚÓfunction apply_uct!(v_hold::Vector{T}, q_ests::Dict{S, Dict{Int64, T}}, counts::Dict{S, Dict{Int64, T}}, s::S, c::T) where {S, T<:Real}
	ntot = sum(values(counts[s]))
	#for normal UCB selection, unvisited states have an infinite bonus
	v_hold .= T(Inf)
	@inbounds @fastmath for i in keys(q_ests[s])
		#note that the only bonus values computed here are for actions that have been visited
		v_hold[i] = q_ests[s][i] + c * uct(counts, s, i, ntot)
	end
	return v_hold
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$2c587d5b-7b62-4835-ad02-9575c13d5874„§cell_idÙ$2c587d5b-7b62-4835-ad02-9575c13d5874¤codeÚøfunction show_mcts_solution()
	# visit_counts = Dict{GridworldState, SparseVector{Float32, Int64}}()
	visit_counts = Dict{GridworldState, Dict{Int64, Float32}}()
	# Q = Dict{GridworldState, SparseVector{Float32, Int64}}()
	Q = Dict{GridworldState, Dict{Int64, Float32}}()
	plot_path(dyna_maze, s -> monte_carlo_tree_search(dyna_maze, 0.95f0, rollout(;max_steps = 100),  s; nsims = 100, depth = 100, c = 1.0f0, visit_counts = visit_counts, Q = Q)[1]; max_steps = 1000, iswall = s -> in(s, maze_walls))
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂÙ$a8ec05ad-8333-4423-ab42-883ab806ebd7„§cell_idÙ$a8ec05ad-8333-4423-ab42-883ab806ebd7¤codeÚ^function uniform_bellman_optimal_value!(Q::Matrix{T}, mdp::FiniteStochasticMDP{T, S, A}, Î³::T) where {T <: Real, S, A}
	delt = zero(T)
	num_updates = 0
	for i_s in eachindex(mdp.states)
		for i_a in eachindex(mdp.actions)
			delt = max(delt, bellman_optimal_update!(Q, i_s, i_a, mdp, Î³))
			num_updates += 1
		end
	end
	return delt, num_updates
end¨metadataƒ©show_logsÃ¨disabledÂ®skip_as_scriptÂ«code_foldedÂ«notebook_idÙ$3ee53c46-38f7-11f0-16c9-2b093684d981«in_temp_dirÂ¨metadata€