diff --git a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt deleted file mode 100644 index 9e24a3fd2..000000000 --- a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/ComputeClient.kt +++ /dev/null @@ -1,126 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.api - -import org.opendc.simulator.compute.workload.SimWorkload -import java.util.UUID - -/** - * A client interface for the OpenDC Compute service. - */ -public interface ComputeClient : AutoCloseable { - /** - * Obtain the list of [Flavor]s accessible by the requesting user. - */ - public fun queryFlavors(): List - - /** - * Obtain a [Flavor] by its unique identifier. - * - * @param id The identifier of the flavor. - */ - public fun findFlavor(id: UUID): Flavor? - - /** - * Create a new [Flavor] instance at this compute service. - * - * @param name The name of the flavor. - * @param cpuCount The amount of CPU cores for this flavor. - * @param memorySize The size of the memory in MB. - * @param labels The identifying labels of the image. - * @param meta The non-identifying meta-data of the image. - */ - public fun newFlavor( - name: String, - cpuCount: Int, - memorySize: Long, - labels: Map = emptyMap(), - meta: Map = emptyMap(), - ): Flavor - - /** - * Obtain the list of [Image]s accessible by the requesting user. - */ - public fun queryImages(): List - - /** - * Obtain a [Image] by its unique identifier. - * - * @param id The identifier of the image. - */ - public fun findImage(id: UUID): Image? - - /** - * Create a new [Image] instance at this compute service. - * - * @param name The name of the image. - * @param labels The identifying labels of the image. - * @param meta The non-identifying meta-data of the image. - */ - public fun newImage( - name: String, - labels: Map = emptyMap(), - meta: Map = emptyMap(), - ): Image - - /** - * Obtain the list of [Task]s accessible by the requesting user. - */ - public fun queryTasks(): List - - /** - * Obtain a [Task] by its unique identifier. - * - * @param id The identifier of the task. - */ - public fun findTask(id: UUID): Task? - - /** - * Create a new [Task] instance at this compute service. - * - * @param name The name of the task to deploy. - * @param image The image to be deployed. - * @param flavor The flavor of the machine instance to run this [image] on. - * @param labels The identifying labels of the task. - * @param meta The non-identifying meta-data of the task. - * @param start A flag to indicate that the task should be started immediately. - */ - public fun newTask( - name: String, - image: Image, - flavor: Flavor, - labels: Map = emptyMap(), - meta: Map = emptyMap(), - start: Boolean = true, - ): Task - - public fun rescheduleTask( - task: Task, - workload: SimWorkload, - ) - - /** - * Release the resources associated with this client, preventing any further API calls. - */ - public override fun close() -} diff --git a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt index 99042c24a..e88379f6a 100644 --- a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt +++ b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Flavor.kt @@ -23,7 +23,7 @@ package org.opendc.compute.api /** - * Flavors define the compute and memory capacity of [Task] instance. To put it simply, a flavor is an available + * Flavors define the compute and memory capacity of [ServiceTask] instance. To put it simply, a flavor is an available * hardware configuration for a task. It defines the size of a virtual task that can be launched. */ public interface Flavor : Resource { diff --git a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Resource.kt b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Resource.kt index 580821304..2c3822a7a 100644 --- a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Resource.kt +++ b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Resource.kt @@ -38,11 +38,6 @@ public interface Resource { */ public val name: String - /** - * The identifying labels attached to the resource. - */ - public val labels: Map - /** * The non-identifying metadata attached to the resource. */ diff --git a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Task.kt b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Task.kt deleted file mode 100644 index 23f2cb919..000000000 --- a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/Task.kt +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.api - -import java.time.Instant - -/** - * A stateful object representing a task instance that is running on some physical or virtual machine. - */ -public interface Task : Resource { - /** - * The flavor of the task. - */ - public val flavor: Flavor - - /** - * The image of the task. - */ - public val image: Image - - /** - * The last known state of the task. - */ - public val state: TaskState - - /** - * The number of times a Task has been stopped due to failures - */ - public val numFailures: Int - - /** - * The most recent moment in time when the task was launched. - */ - public val launchedAt: Instant? - - /** - * Request the task to be started. - */ - public fun start() - - /** - * Request the task to be stopped. - */ - public fun stop() - - /** - * Register the specified [TaskWatcher] to watch the state of the task. - * - * @param watcher The watcher to register for the task. - */ - public fun watch(watcher: TaskWatcher) - - /** - * De-register the specified [TaskWatcher] from the task to stop it from receiving events. - * - * @param watcher The watcher to de-register from the task. - */ - public fun unwatch(watcher: TaskWatcher) -} diff --git a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/TaskState.kt b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/TaskState.kt index a093ff476..f3f2ca6f2 100644 --- a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/TaskState.kt +++ b/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/TaskState.kt @@ -27,14 +27,15 @@ package org.opendc.compute.api */ public enum class TaskState { /** - * Resources are being allocated for the instance. The instance is not running yet. + * A static task is created + * */ - PROVISIONING, + CREATED, /** - * A user shut down the instance. + * Resources are being allocated for the instance. The instance is not running yet. */ - TERMINATED, + PROVISIONING, /** * The task instance is booting up or running. @@ -42,12 +43,26 @@ public enum class TaskState { RUNNING, /** - * The task is in an error state. + * The task is in a failed state. + */ + FAILED, + + /** + * The task has been terminated due to too many failures + * + */ + TERMINATED, + + /** + * The task has been completed successfully + * */ - ERROR, + COMPLETED, /** - * The task has been deleted and cannot be started later on. + * Task has been deleted + * + * @constructor Create empty Deleted */ DELETED, } diff --git a/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTrace.kt b/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTrace.kt index 2ba3e4e34..6eb7a7629 100644 --- a/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTrace.kt +++ b/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTrace.kt @@ -40,7 +40,7 @@ import java.time.Instant public data class CarbonFragment( var startTime: Long, var endTime: Long, - var carbonIntensity: Double, + var carbonIntensity: Float, ) { init { require(endTime > startTime) { @@ -67,7 +67,7 @@ public class CarbonTrace(reports: List? = null) { return index < numberOfReports } - public fun getCarbonIntensity(timestamp: Instant): Double { + public fun getCarbonIntensity(timestamp: Instant): Float { return getCarbonIntensity(timestamp.toEpochMilli()) } @@ -79,9 +79,9 @@ public class CarbonTrace(reports: List? = null) { * @param timestamp * @return The carbon intensity at the given timestamp in gCO2/kWh */ - public fun getCarbonIntensity(timestamp: Long): Double { + public fun getCarbonIntensity(timestamp: Long): Float { if (reports == null) { - return 0.0 + return 0.0f } var currentFragment: CarbonFragment diff --git a/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTraceLoader.kt b/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTraceLoader.kt index b66aedf92..12340adf5 100644 --- a/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTraceLoader.kt +++ b/opendc-compute/opendc-compute-carbon/src/main/kotlin/org/opendc/compute/carbon/CarbonTraceLoader.kt @@ -56,7 +56,7 @@ public class CarbonTraceLoader { try { while (reader.nextRow()) { val startTime = reader.getInstant(startTimeCol)!! - val carbonIntensity = reader.getDouble(carbonIntensityCol) + val carbonIntensity = reader.getFloat(carbonIntensityCol) builder.add(startTime, carbonIntensity) } @@ -106,7 +106,7 @@ public class CarbonTraceLoader { */ fun add( startTime: Instant, - carbonIntensity: Double, + carbonIntensity: Float, ) { fragments.add( CarbonFragment(startTime.toEpochMilli(), Long.MAX_VALUE, carbonIntensity), diff --git a/opendc-compute/opendc-compute-failure/build.gradle.kts b/opendc-compute/opendc-compute-failure/build.gradle.kts index d6ec91168..3bd7af83d 100644 --- a/opendc-compute/opendc-compute-failure/build.gradle.kts +++ b/opendc-compute/opendc-compute-failure/build.gradle.kts @@ -32,7 +32,6 @@ dependencies { implementation(projects.opendcCommon) implementation(project(mapOf("path" to ":opendc-trace:opendc-trace-api"))) implementation(project(mapOf("path" to ":opendc-simulator:opendc-simulator-compute"))) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-service"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-simulator"))) api(libs.commons.math3) diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt index 4134c58aa..a1e4c4899 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/HostFault.kt @@ -22,8 +22,8 @@ package org.opendc.compute.failure.hostfault -import org.opendc.compute.service.ComputeService -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService /** * Interface responsible for applying the fault to a host. diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt index 0bebca668..c7ddc5b5a 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/hostfault/StartStopHostFault.kt @@ -23,10 +23,8 @@ package org.opendc.compute.failure.hostfault import kotlinx.coroutines.delay -import org.opendc.compute.api.ComputeClient -import org.opendc.compute.service.ComputeService -import org.opendc.compute.simulator.SimHost -import org.opendc.simulator.compute.workload.SimWorkload +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService /** * A type of [HostFault] where the hosts are stopped and recover after a given amount of time. @@ -38,18 +36,20 @@ public class StartStopHostFault( victims: List, faultDuration: Long, ) { - val client: ComputeClient = service.newClient() + val client: ComputeService.ComputeClient = service.newClient() for (host in victims) { - val tasks = host.instances + val guests = host.getGuests() - val sortedTasks = tasks.sortedBy { it.name } - val snapshots = sortedTasks.map { (it.meta["workload"] as SimWorkload).getSnapshot() } + val snapshots = guests.map { it.virtualMachine!!.getActiveWorkload().getSnapshot() } + val tasks = guests.map { it.task } host.fail() - for ((task, snapshot) in sortedTasks.zip(snapshots)) { + for ((task, snapshot) in tasks.zip(snapshots)) { client.rescheduleTask(task, snapshot) } + + print("test") } delay(faultDuration) diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt index 5f05d96c0..f0cee5f21 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/FailureModel.kt @@ -29,8 +29,8 @@ import kotlinx.coroutines.launch import org.opendc.compute.failure.hostfault.HostFault import org.opendc.compute.failure.hostfault.StartStopHostFault import org.opendc.compute.failure.victimselector.StochasticVictimSelector -import org.opendc.compute.service.ComputeService -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt index 3ae66f6ff..ae4077e8d 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/SampleBasedFailureModel.kt @@ -24,7 +24,7 @@ package org.opendc.compute.failure.models import kotlinx.coroutines.delay import org.apache.commons.math3.distribution.RealDistribution -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt index f1ff09e9f..cab96cd8e 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/models/TraceBasedFailureModel.kt @@ -23,7 +23,7 @@ package org.opendc.compute.failure.models import kotlinx.coroutines.delay -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import org.opendc.trace.Trace import org.opendc.trace.conv.FAILURE_DURATION import org.opendc.trace.conv.FAILURE_INTENSITY @@ -71,7 +71,7 @@ public class TraceBasedFailureModel( service: ComputeService, random: RandomGenerator, pathToTrace: String, - private val repeat: Boolean = true, + private val repeat: Boolean = false, ) : FailureModel(context, clock, service, random) { private val failureList = loadTrace(pathToTrace) diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt index da58250da..1c1d65d2c 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/G5k06.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt index 3e7226303..d3d4d7043 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Lanl05.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt index 4a8b3c0f4..fd4bd3519 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Ldns04.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt index 725f6622b..db27efb84 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Microsoft99.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt index 100a3a8df..eac2df0c8 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Nd07cpu.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt index 4f5e3f845..965e861d8 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Overnet03.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt index 3e1f1b588..5102bd6b6 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Pl05.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt index 477f3ac4b..361620b01 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/PrefabFailureModelFactory.kt @@ -25,7 +25,7 @@ package org.opendc.compute.failure.prefab import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt index 7495bf662..30f7ec1b9 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Skype06.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt index 77bb0d649..df37c27bd 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/prefab/Websites02.kt @@ -29,7 +29,7 @@ import org.apache.commons.math3.distribution.UniformRealDistribution import org.apache.commons.math3.distribution.WeibullDistribution import org.apache.commons.math3.random.Well19937c import org.opendc.compute.failure.models.SampleBasedFailureModel -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.time.InstantSource import java.util.random.RandomGenerator import kotlin.coroutines.CoroutineContext diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt index fef60eb3c..9b92cf336 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/StochasticVictimSelector.kt @@ -22,7 +22,7 @@ package org.opendc.compute.failure.victimselector -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost import java.util.SplittableRandom import java.util.random.RandomGenerator import kotlin.math.max diff --git a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt index 955cbcedb..b276b8b4e 100644 --- a/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt +++ b/opendc-compute/opendc-compute-failure/src/main/kotlin/org/opendc/compute/failure/victimselector/VictimSelector.kt @@ -22,7 +22,7 @@ package org.opendc.compute.failure.victimselector -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost /** * Interface responsible for selecting the victim(s) for fault injection. diff --git a/opendc-compute/opendc-compute-service/build.gradle.kts b/opendc-compute/opendc-compute-service/build.gradle.kts deleted file mode 100644 index cd25e05ce..000000000 --- a/opendc-compute/opendc-compute-service/build.gradle.kts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "OpenDC Compute Service implementation" - -// Build configuration -plugins { - `kotlin-library-conventions` -} - -dependencies { - api(projects.opendcCompute.opendcComputeApi) - implementation(projects.opendcCommon) - implementation(libs.kotlin.logging) - implementation(project(mapOf("path" to ":opendc-simulator:opendc-simulator-compute"))) - - testImplementation(projects.opendcSimulator.opendcSimulatorCore) - testImplementation(libs.log4j.slf4j) - testRuntimeOnly(libs.log4j.core) - testRuntimeOnly(libs.log4j.slf4j) -} diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/Host.java b/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/Host.java deleted file mode 100644 index 546f774b5..000000000 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/Host.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.service.driver; - -import java.util.Map; -import java.util.Set; -import java.util.UUID; -import org.opendc.compute.api.Task; -import org.opendc.compute.service.driver.telemetry.GuestCpuStats; -import org.opendc.compute.service.driver.telemetry.GuestSystemStats; -import org.opendc.compute.service.driver.telemetry.HostCpuStats; -import org.opendc.compute.service.driver.telemetry.HostSystemStats; - -/** - * Base interface for representing compute resources that host virtualized {@link Task} instances. - */ -public interface Host { - /** - * Return a unique identifier representing the host. - */ - UUID getUid(); - - /** - * Return the name of this host. - */ - String getName(); - - /** - * Return the machine model of the host. - */ - HostModel getModel(); - - /** - * Return the state of the host. - */ - HostState getState(); - - /** - * Return the meta-data associated with the host. - */ - Map getMeta(); - - /** - * Return the {@link Task} instances known to the host. - */ - Set getInstances(); - - /** - * Determine whether the specified task can still fit on this host. - */ - boolean canFit(Task task); - - /** - * Register the specified task on the host. - */ - void spawn(Task task); - - /** - * Determine whether the specified task exists on the host. - */ - boolean contains(Task task); - - /** - * Start the task if it is currently not running on this host. - * - * @throws IllegalArgumentException if the task is not present on the host. - */ - void start(Task task); - - /** - * Stop the task if it is currently running on this host. - * - * @throws IllegalArgumentException if the task is not present on the host. - */ - void stop(Task task); - - /** - * Delete the specified task on this host and cleanup all resources associated with it. - */ - void delete(Task task); - - /** - * Add a [HostListener] to this host. - */ - void addListener(HostListener listener); - - /** - * Remove a [HostListener] from this host. - */ - void removeListener(HostListener listener); - - /** - * Query the system statistics of the host. - */ - HostSystemStats getSystemStats(); - - /** - * Query the system statistics of a {@link Task} that is located on this host. - * - * @param task The {@link Task} to obtain the system statistics of. - * @throws IllegalArgumentException if the task is not present on the host. - */ - GuestSystemStats getSystemStats(Task task); - - /** - * Query the CPU statistics of the host. - */ - HostCpuStats getCpuStats(); - - /** - * Query the CPU statistics of a {@link Task} that is located on this host. - * - * @param task The {@link Task} to obtain the CPU statistics of. - * @throws IllegalArgumentException if the task is not present on the host. - */ - GuestCpuStats getCpuStats(Task task); -} diff --git a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ComputeServiceTest.kt b/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ComputeServiceTest.kt deleted file mode 100644 index eb686faf8..000000000 --- a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ComputeServiceTest.kt +++ /dev/null @@ -1,386 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.service - -import io.mockk.coEvery -import io.mockk.coVerify -import io.mockk.every -import io.mockk.mockk -import io.mockk.slot -import io.mockk.verify -import kotlinx.coroutines.delay -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNull -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.compute.api.Flavor -import org.opendc.compute.api.Image -import org.opendc.compute.api.Task -import org.opendc.compute.api.TaskState -import org.opendc.compute.api.TaskWatcher -import org.opendc.compute.service.driver.Host -import org.opendc.compute.service.driver.HostListener -import org.opendc.compute.service.driver.HostModel -import org.opendc.compute.service.driver.HostState -import org.opendc.compute.service.scheduler.FilterScheduler -import org.opendc.compute.service.scheduler.filters.ComputeFilter -import org.opendc.compute.service.scheduler.filters.RamFilter -import org.opendc.compute.service.scheduler.filters.VCpuFilter -import org.opendc.compute.service.scheduler.weights.RamWeigher -import org.opendc.simulator.kotlin.SimulationCoroutineScope -import org.opendc.simulator.kotlin.runSimulation -import java.time.Duration -import java.util.UUID - -/** - * Test suite for the [ComputeService] interface. - */ -internal class ComputeServiceTest { - private lateinit var scope: SimulationCoroutineScope - private lateinit var service: ComputeService - - @BeforeEach - fun setUp() { - scope = SimulationCoroutineScope() - val computeScheduler = - FilterScheduler( - filters = listOf(ComputeFilter(), VCpuFilter(allocationRatio = 1.0), RamFilter(allocationRatio = 1.0)), - weighers = listOf(RamWeigher()), - ) - service = ComputeService(scope.dispatcher, computeScheduler, Duration.ofMinutes(5), 10) - } - - @Test - fun testClientClose() = - scope.runSimulation { - val client = service.newClient() - - assertEquals(emptyList(), client.queryFlavors()) - assertEquals(emptyList(), client.queryImages()) - assertEquals(emptyList(), client.queryTasks()) - - client.close() - - assertThrows { client.queryFlavors() } - assertThrows { client.queryImages() } - assertThrows { client.queryTasks() } - - assertThrows { client.findFlavor(UUID.randomUUID()) } - assertThrows { client.findImage(UUID.randomUUID()) } - assertThrows { client.findTask(UUID.randomUUID()) } - - assertThrows { client.newFlavor("test", 1, 2) } - assertThrows { client.newImage("test") } - assertThrows { client.newTask("test", mockk(), mockk()) } - } - - @Test - fun testClientCreate() = - scope.runSimulation { - val client = service.newClient() - - val flavor = client.newFlavor("test", 1, 1024) - assertEquals(listOf(flavor), client.queryFlavors()) - assertEquals(flavor, client.findFlavor(flavor.uid)) - val image = client.newImage("test") - assertEquals(listOf(image), client.queryImages()) - assertEquals(image, client.findImage(image.uid)) - val server = client.newTask("test", image, flavor, start = false) - assertEquals(listOf(server), client.queryTasks()) - assertEquals(server, client.findTask(server.uid)) - - server.delete() - assertNull(client.findTask(server.uid)) - - image.delete() - assertNull(client.findImage(image.uid)) - - flavor.delete() - assertNull(client.findFlavor(flavor.uid)) - - assertThrows { server.start() } - } - - @Test - fun testClientOnClose() = - scope.runSimulation { - service.close() - assertThrows { - service.newClient() - } - } - - @Test - fun testAddHost() = - scope.runSimulation { - val host = mockk(relaxUnitFun = true) - - every { host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.state } returns HostState.UP - - assertEquals(emptySet(), service.hosts) - - service.addHost(host) - - verify(exactly = 1) { host.addListener(any()) } - - assertEquals(1, service.hosts.size) - - service.removeHost(host) - - verify(exactly = 1) { host.removeListener(any()) } - } - - @Test - fun testAddHostDouble() = - scope.runSimulation { - val host = mockk(relaxUnitFun = true) - - every { host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.state } returns HostState.DOWN - - assertEquals(emptySet(), service.hosts) - - service.addHost(host) - service.addHost(host) - - verify(exactly = 1) { host.addListener(any()) } - } - - @Test - fun testServerStartWithoutEnoughCpus() = - scope.runSimulation { - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 0) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - server.start() - delay(5L * 60 * 1000) - server.reload() - assertEquals(TaskState.TERMINATED, server.state) - } - - @Test - fun testServerStartWithoutEnoughMemory() = - scope.runSimulation { - val client = service.newClient() - val flavor = client.newFlavor("test", 0, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - server.start() - delay(5L * 60 * 1000) - server.reload() - assertEquals(TaskState.TERMINATED, server.state) - } - - @Test - fun testServerStartWithoutEnoughResources() = - scope.runSimulation { - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - server.start() - delay(5L * 60 * 1000) - server.reload() - assertEquals(TaskState.TERMINATED, server.state) - } - - @Test - fun testServerCancelRequest() = - scope.runSimulation { - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - server.start() - server.stop() - delay(5L * 60 * 1000) - server.reload() - assertEquals(TaskState.TERMINATED, server.state) - } - - @Test - fun testServerCannotFitOnHost() = - scope.runSimulation { - val host = mockk(relaxUnitFun = true) - - every { host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.state } returns HostState.UP - every { host.canFit(any()) } returns false - - service.addHost(host) - - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - server.start() - delay(10L * 60 * 1000) - server.reload() - assertEquals(TaskState.PROVISIONING, server.state) - - verify { host.canFit(server) } - } - - @Test - fun testHostAvailableAfterSomeTime() = - scope.runSimulation { - val host = mockk(relaxUnitFun = true) - val listeners = mutableListOf() - - every { host.uid } returns UUID.randomUUID() - every { host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.state } returns HostState.DOWN - every { host.addListener(any()) } answers { listeners.add(it.invocation.args[0] as HostListener) } - every { host.canFit(any()) } returns false - - service.addHost(host) - - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - server.start() - delay(5L * 60 * 1000) - - every { host.state } returns HostState.UP - listeners.forEach { it.onStateChanged(host, HostState.UP) } - - delay(5L * 60 * 1000) - server.reload() - assertEquals(TaskState.PROVISIONING, server.state) - - verify { host.canFit(server) } - } - - @Test - fun testHostUnavailableAfterSomeTime() = - scope.runSimulation { - val host = mockk(relaxUnitFun = true) - val listeners = mutableListOf() - - every { host.uid } returns UUID.randomUUID() - every { host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.state } returns HostState.UP - every { host.addListener(any()) } answers { listeners.add(it.invocation.args[0] as HostListener) } - every { host.canFit(any()) } returns false - - service.addHost(host) - - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - delay(5L * 60 * 1000) - - every { host.state } returns HostState.DOWN - listeners.forEach { it.onStateChanged(host, HostState.DOWN) } - - server.start() - delay(5L * 60 * 1000) - server.reload() - assertEquals(TaskState.PROVISIONING, server.state) - - verify(exactly = 0) { host.canFit(server) } - } - - @Test - fun testServerDeploy() = - scope.runSimulation { - val host = mockk(relaxUnitFun = true) - val listeners = mutableListOf() - - every { host.uid } returns UUID.randomUUID() - every { host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.state } returns HostState.UP - every { host.canFit(any()) } returns true - every { host.addListener(any()) } answers { listeners.add(it.invocation.args[0] as HostListener) } - - service.addHost(host) - - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - val slot = slot() - - val watcher = mockk(relaxUnitFun = true) - server.watch(watcher) - - // Start server - server.start() - delay(5L * 60 * 1000) - coVerify { host.spawn(capture(slot)) } - - listeners.forEach { it.onStateChanged(host, slot.captured, TaskState.RUNNING) } - - server.reload() - assertEquals(TaskState.RUNNING, server.state) - - verify { watcher.onStateChanged(server, TaskState.RUNNING) } - - // Stop server - listeners.forEach { it.onStateChanged(host, slot.captured, TaskState.TERMINATED) } - - server.reload() - assertEquals(TaskState.TERMINATED, server.state) - - verify { watcher.onStateChanged(server, TaskState.TERMINATED) } - } - - @Test - fun testServerDeployFailure() = - scope.runSimulation { - val host = mockk(relaxUnitFun = true) - val listeners = mutableListOf() - - every { host.uid } returns UUID.randomUUID() - every { host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.state } returns HostState.UP - every { host.canFit(any()) } returns true - every { host.addListener(any()) } answers { listeners.add(it.invocation.args[0] as HostListener) } - coEvery { host.spawn(any()) } throws IllegalStateException() - - service.addHost(host) - - val client = service.newClient() - val flavor = client.newFlavor("test", 1, 1024) - val image = client.newImage("test") - val server = client.newTask("test", image, flavor, start = false) - - server.start() - delay(5L * 60 * 1000) - - server.reload() - assertEquals(TaskState.PROVISIONING, server.state) - } -} diff --git a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceFlavorTest.kt b/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceFlavorTest.kt deleted file mode 100644 index 7938f7897..000000000 --- a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceFlavorTest.kt +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.service - -import io.mockk.every -import io.mockk.mockk -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNotEquals -import org.junit.jupiter.api.Test -import org.opendc.compute.api.Flavor -import java.util.UUID - -/** - * Test suite for the [ServiceFlavor] implementation. - */ -class ServiceFlavorTest { - @Test - fun testEquality() { - val service = mockk() - val uid = UUID.randomUUID() - val a = ServiceFlavor(service, uid, "test", 1, 1024, mutableMapOf(), mutableMapOf()) - val b = ServiceFlavor(service, uid, "test", 1, 1024, mutableMapOf(), mutableMapOf()) - - assertEquals(a, b) - } - - @Test - fun testInequalityWithDifferentType() { - val service = mockk() - val uid = UUID.randomUUID() - val a = ServiceFlavor(service, uid, "test", 1, 1024, mutableMapOf(), mutableMapOf()) - - val b = mockk(relaxUnitFun = true) - every { b.uid } returns UUID.randomUUID() - - assertNotEquals(a, b) - } - - @Test - fun testInequalityWithIncorrectType() { - val service = mockk() - val uid = UUID.randomUUID() - val a = ServiceFlavor(service, uid, "test", 1, 1024, mutableMapOf(), mutableMapOf()) - - assertNotEquals(a, Unit) - } -} diff --git a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceImageTest.kt b/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceImageTest.kt deleted file mode 100644 index c36d75f44..000000000 --- a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceImageTest.kt +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.service - -import io.mockk.every -import io.mockk.mockk -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNotEquals -import org.junit.jupiter.api.Test -import org.opendc.compute.api.Image -import java.util.UUID - -/** - * Test suite for the [ServiceFlavor] implementation. - */ -class ServiceImageTest { - @Test - fun testEquality() { - val service = mockk() - val uid = UUID.randomUUID() - val a = ServiceImage(service, uid, "test", mutableMapOf(), mutableMapOf()) - val b = ServiceImage(service, uid, "test", mutableMapOf(), mutableMapOf()) - - assertEquals(a, b) - } - - @Test - fun testInequalityWithDifferentType() { - val service = mockk() - val uid = UUID.randomUUID() - val a = ServiceImage(service, uid, "test", mutableMapOf(), mutableMapOf()) - - val b = mockk(relaxUnitFun = true) - every { b.uid } returns UUID.randomUUID() - - assertNotEquals(a, b) - } - - @Test - fun testInequalityWithIncorrectType() { - val service = mockk() - val uid = UUID.randomUUID() - val a = ServiceImage(service, uid, "test", mutableMapOf(), mutableMapOf()) - - assertNotEquals(a, Unit) - } -} diff --git a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceTaskTest.kt b/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceTaskTest.kt deleted file mode 100644 index e77665fe8..000000000 --- a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/ServiceTaskTest.kt +++ /dev/null @@ -1,442 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.service - -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNotEquals -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.compute.api.Task -import org.opendc.compute.api.TaskState -import org.opendc.compute.service.driver.Host -import org.opendc.simulator.kotlin.runSimulation -import java.util.UUID - -/** - * Test suite for the [ServiceTask] implementation. - */ -class ServiceTaskTest { - @Test - fun testEquality() { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - - val a = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - val b = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - assertEquals(a, b) - } - - @Test - fun testInequalityWithDifferentType() { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val a = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - val b = mockk(relaxUnitFun = true) - every { b.uid } returns UUID.randomUUID() - - assertNotEquals(a, b) - } - - @Test - fun testInequalityWithIncorrectType() { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val a = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - assertNotEquals(a, Unit) - } - - @Test - fun testStartTerminatedServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - every { service.schedule(any()) } answers { ComputeService.SchedulingRequest(it.invocation.args[0] as ServiceTask, 0) } - - server.start() - - verify(exactly = 1) { service.schedule(server) } - assertEquals(TaskState.PROVISIONING, server.state) - } - - @Test - fun testStartDeletedServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - server.setState(TaskState.DELETED) - - assertThrows { server.start() } - } - - @Test - fun testStartProvisioningServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - server.setState(TaskState.PROVISIONING) - - server.start() - - assertEquals(TaskState.PROVISIONING, server.state) - } - - @Test - fun testStartRunningServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - server.setState(TaskState.RUNNING) - - server.start() - - assertEquals(TaskState.RUNNING, server.state) - } - - @Test - fun testStopProvisioningServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - val request = ComputeService.SchedulingRequest(server, 0) - - every { service.schedule(any()) } returns request - - server.start() - server.stop() - - assertTrue(request.isCancelled) - assertEquals(TaskState.TERMINATED, server.state) - } - - @Test - fun testStopTerminatedServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - server.setState(TaskState.TERMINATED) - server.stop() - - assertEquals(TaskState.TERMINATED, server.state) - } - - @Test - fun testStopDeletedServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - server.setState(TaskState.DELETED) - server.stop() - - assertEquals(TaskState.DELETED, server.state) - } - - @Test - fun testStopRunningServer() = - runSimulation { - val service = mockk() - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - val host = mockk(relaxUnitFun = true) - - server.setState(TaskState.RUNNING) - server.host = host - server.stop() - yield() - - verify { host.stop(server) } - } - - @Test - fun testDeleteProvisioningServer() = - runSimulation { - val service = mockk(relaxUnitFun = true) - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - val request = ComputeService.SchedulingRequest(server, 0) - - every { service.schedule(any()) } returns request - - server.start() - server.delete() - - assertTrue(request.isCancelled) - assertEquals(TaskState.DELETED, server.state) - verify { service.delete(server) } - } - - @Test - fun testDeleteTerminatedServer() = - runSimulation { - val service = mockk(relaxUnitFun = true) - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - server.setState(TaskState.TERMINATED) - server.delete() - - assertEquals(TaskState.DELETED, server.state) - - verify { service.delete(server) } - } - - @Test - fun testDeleteDeletedServer() = - runSimulation { - val service = mockk(relaxUnitFun = true) - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - - server.setState(TaskState.DELETED) - server.delete() - - assertEquals(TaskState.DELETED, server.state) - } - - @Test - fun testDeleteRunningServer() = - runSimulation { - val service = mockk(relaxUnitFun = true) - val uid = UUID.randomUUID() - val flavor = mockFlavor() - val image = mockImage() - val server = - ServiceTask( - service, - uid, - "test", - flavor, - image, - mutableMapOf(), - mutableMapOf(), - ) - val host = mockk(relaxUnitFun = true) - - server.setState(TaskState.RUNNING) - server.host = host - server.delete() - yield() - - verify { host.delete(server) } - verify { service.delete(server) } - } - - private fun mockFlavor(): ServiceFlavor { - val flavor = mockk() - every { flavor.name } returns "c5.large" - every { flavor.uid } returns UUID.randomUUID() - every { flavor.coreCount } returns 2 - every { flavor.memorySize } returns 4096 - return flavor - } - - private fun mockImage(): ServiceImage { - val image = mockk() - every { image.name } returns "ubuntu-20.04" - every { image.uid } returns UUID.randomUUID() - return image - } -} diff --git a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/scheduler/FilterSchedulerTest.kt b/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/scheduler/FilterSchedulerTest.kt deleted file mode 100644 index add10f8fa..000000000 --- a/opendc-compute/opendc-compute-service/src/test/kotlin/org/opendc/compute/service/scheduler/FilterSchedulerTest.kt +++ /dev/null @@ -1,536 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.service.scheduler - -import io.mockk.every -import io.mockk.mockk -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNull -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertAll -import org.junit.jupiter.api.assertThrows -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView -import org.opendc.compute.service.driver.HostModel -import org.opendc.compute.service.driver.HostState -import org.opendc.compute.service.scheduler.filters.ComputeFilter -import org.opendc.compute.service.scheduler.filters.DifferentHostFilter -import org.opendc.compute.service.scheduler.filters.InstanceCountFilter -import org.opendc.compute.service.scheduler.filters.RamFilter -import org.opendc.compute.service.scheduler.filters.SameHostFilter -import org.opendc.compute.service.scheduler.filters.VCpuCapacityFilter -import org.opendc.compute.service.scheduler.filters.VCpuFilter -import org.opendc.compute.service.scheduler.weights.CoreRamWeigher -import org.opendc.compute.service.scheduler.weights.InstanceCountWeigher -import org.opendc.compute.service.scheduler.weights.RamWeigher -import org.opendc.compute.service.scheduler.weights.VCpuWeigher -import java.util.Random -import java.util.UUID - -/** - * Test suite for the [FilterScheduler]. - */ -internal class FilterSchedulerTest { - @Test - fun testInvalidSubsetSize() { - assertThrows { - FilterScheduler( - filters = emptyList(), - weighers = emptyList(), - subsetSize = 0, - ) - } - - assertThrows { - FilterScheduler( - filters = emptyList(), - weighers = emptyList(), - subsetSize = -2, - ) - } - } - - @Test - fun testNoHosts() { - val scheduler = - FilterScheduler( - filters = emptyList(), - weighers = emptyList(), - ) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertNull(scheduler.select(task)) - } - - @Test - fun testNoFiltersAndSchedulers() { - val scheduler = - FilterScheduler( - filters = emptyList(), - weighers = emptyList(), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.DOWN - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - // Make sure we get the first host both times - assertAll( - { assertEquals(hostA, scheduler.select(task)) }, - { assertEquals(hostA, scheduler.select(task)) }, - ) - } - - @Test - fun testNoFiltersAndSchedulersRandom() { - val scheduler = - FilterScheduler( - filters = emptyList(), - weighers = emptyList(), - subsetSize = Int.MAX_VALUE, - random = Random(1), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.DOWN - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - // Make sure we get the first host both times - assertAll( - { assertEquals(hostB, scheduler.select(task)) }, - { assertEquals(hostA, scheduler.select(task)) }, - ) - } - - @Test - fun testHostIsDown() { - val scheduler = - FilterScheduler( - filters = listOf(ComputeFilter()), - weighers = emptyList(), - ) - - val host = mockk() - every { host.host.state } returns HostState.DOWN - - scheduler.addHost(host) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertNull(scheduler.select(task)) - } - - @Test - fun testHostIsUp() { - val scheduler = - FilterScheduler( - filters = listOf(ComputeFilter()), - weighers = emptyList(), - ) - - val host = mockk() - every { host.host.state } returns HostState.UP - - scheduler.addHost(host) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(host, scheduler.select(task)) - } - - @Test - fun testRamFilter() { - val scheduler = - FilterScheduler( - filters = listOf(RamFilter(1.0)), - weighers = emptyList(), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.availableMemory } returns 512 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.availableMemory } returns 2048 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(hostB, scheduler.select(task)) - } - - @Test - fun testRamFilterOvercommit() { - val scheduler = - FilterScheduler( - filters = listOf(RamFilter(1.5)), - weighers = emptyList(), - ) - - val host = mockk() - every { host.host.state } returns HostState.UP - every { host.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.availableMemory } returns 2048 - - scheduler.addHost(host) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 2300 - - assertNull(scheduler.select(task)) - } - - @Test - fun testVCpuFilter() { - val scheduler = - FilterScheduler( - filters = listOf(VCpuFilter(1.0)), - weighers = emptyList(), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.provisionedCores } returns 3 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.provisionedCores } returns 0 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(hostB, scheduler.select(task)) - } - - @Test - fun testVCpuFilterOvercommit() { - val scheduler = - FilterScheduler( - filters = listOf(VCpuFilter(16.0)), - weighers = emptyList(), - ) - - val host = mockk() - every { host.host.state } returns HostState.UP - every { host.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { host.provisionedCores } returns 0 - - scheduler.addHost(host) - - val task = mockk() - every { task.flavor.coreCount } returns 8 - every { task.flavor.memorySize } returns 1024 - - assertNull(scheduler.select(task)) - } - -// TODO: fix when schedulers are reworked -// @Test - fun testVCpuCapacityFilter() { - val scheduler = - FilterScheduler( - filters = listOf(VCpuCapacityFilter()), - weighers = emptyList(), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(8 * 2600.0, 8, 2048) - every { hostA.availableMemory } returns 512 - scheduler.addHost(hostA) - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 3200.0, 4, 2048) - every { hostB.availableMemory } returns 512 - - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - every { task.flavor.meta } returns mapOf("cpu-capacity" to 2 * 3200.0) - - assertEquals(hostB, scheduler.select(task)) - } - - @Test - fun testInstanceCountFilter() { - val scheduler = - FilterScheduler( - filters = listOf(InstanceCountFilter(limit = 2)), - weighers = emptyList(), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.instanceCount } returns 2 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.instanceCount } returns 0 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(hostB, scheduler.select(task)) - } - - @Test - fun testAffinityFilter() { - val scheduler = - FilterScheduler( - filters = listOf(SameHostFilter()), - weighers = emptyList(), - ) - - val taskA = mockk() - every { taskA.uid } returns UUID.randomUUID() - every { taskA.flavor.coreCount } returns 2 - every { taskA.flavor.memorySize } returns 1024 - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.host.instances } returns emptySet() - every { hostA.provisionedCores } returns 3 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.host.instances } returns setOf(taskA) - every { hostB.provisionedCores } returns 0 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val taskB = mockk() - every { taskB.flavor.coreCount } returns 2 - every { taskB.flavor.memorySize } returns 1024 - every { taskB.meta } returns emptyMap() - - assertEquals(hostA, scheduler.select(taskB)) - - every { taskB.meta } returns mapOf("scheduler_hint:same_host" to setOf(taskA.uid)) - - assertEquals(hostB, scheduler.select(taskB)) - } - - @Test - fun testAntiAffinityFilter() { - val scheduler = - FilterScheduler( - filters = listOf(DifferentHostFilter()), - weighers = emptyList(), - ) - - val taskA = mockk() - every { taskA.uid } returns UUID.randomUUID() - every { taskA.flavor.coreCount } returns 2 - every { taskA.flavor.memorySize } returns 1024 - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.host.instances } returns setOf(taskA) - every { hostA.provisionedCores } returns 3 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.host.instances } returns emptySet() - every { hostB.provisionedCores } returns 0 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val taskB = mockk() - every { taskB.flavor.coreCount } returns 2 - every { taskB.flavor.memorySize } returns 1024 - every { taskB.meta } returns emptyMap() - - assertEquals(hostA, scheduler.select(taskB)) - - every { taskB.meta } returns mapOf("scheduler_hint:different_host" to setOf(taskA.uid)) - - assertEquals(hostB, scheduler.select(taskB)) - } - - @Test - fun testRamWeigher() { - val scheduler = - FilterScheduler( - filters = emptyList(), - weighers = listOf(RamWeigher(1.5)), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.availableMemory } returns 1024 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.availableMemory } returns 512 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(hostA, scheduler.select(task)) - } - - // TODO: fix test when updating schedulers -// @Test - fun testCoreRamWeigher() { - val scheduler = - FilterScheduler( - filters = emptyList(), - weighers = listOf(CoreRamWeigher(1.5)), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(12 * 2600.0, 12, 2048) - every { hostA.availableMemory } returns 1024 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.availableMemory } returns 512 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(hostB, scheduler.select(task)) - } - - @Test - fun testVCpuWeigher() { - val scheduler = - FilterScheduler( - filters = emptyList(), - weighers = listOf(VCpuWeigher(16.0)), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.provisionedCores } returns 2 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.provisionedCores } returns 0 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(hostB, scheduler.select(task)) - } - - @Test - fun testInstanceCountWeigher() { - val scheduler = - FilterScheduler( - filters = emptyList(), - weighers = listOf(InstanceCountWeigher(multiplier = -1.0)), - ) - - val hostA = mockk() - every { hostA.host.state } returns HostState.UP - every { hostA.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostA.instanceCount } returns 2 - - val hostB = mockk() - every { hostB.host.state } returns HostState.UP - every { hostB.host.model } returns HostModel(4 * 2600.0, 4, 2048) - every { hostB.instanceCount } returns 0 - - scheduler.addHost(hostA) - scheduler.addHost(hostB) - - val task = mockk() - every { task.flavor.coreCount } returns 2 - every { task.flavor.memorySize } returns 1024 - - assertEquals(hostB, scheduler.select(task)) - } -} diff --git a/opendc-compute/opendc-compute-service/src/test/resources/log4j2.xml b/opendc-compute/opendc-compute-service/src/test/resources/log4j2.xml deleted file mode 100644 index 0dfb75f26..000000000 --- a/opendc-compute/opendc-compute-service/src/test/resources/log4j2.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/opendc-compute/opendc-compute-simulator/build.gradle.kts b/opendc-compute/opendc-compute-simulator/build.gradle.kts index 20ceb93ed..8cbddb441 100644 --- a/opendc-compute/opendc-compute-simulator/build.gradle.kts +++ b/opendc-compute/opendc-compute-simulator/build.gradle.kts @@ -25,22 +25,25 @@ description = "Simulator for OpenDC Compute" // Build configuration plugins { `kotlin-library-conventions` + kotlin("plugin.serialization") version "1.9.22" } dependencies { - api(projects.opendcCompute.opendcComputeService) api(projects.opendcSimulator.opendcSimulatorCompute) + api(projects.opendcTrace.opendcTraceParquet) api(libs.commons.math3) implementation(projects.opendcCommon) implementation(libs.kotlin.logging) + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0") api(libs.microprofile.config) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-topology"))) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-telemetry"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-carbon"))) implementation(project(mapOf("path" to ":opendc-trace:opendc-trace-api"))) + implementation(project(mapOf("path" to ":opendc-trace:opendc-trace-parquet"))) testImplementation(projects.opendcSimulator.opendcSimulatorCore) testRuntimeOnly(libs.slf4j.simple) + testRuntimeOnly(libs.log4j.slf4j) } diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostListener.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostListener.java similarity index 74% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostListener.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostListener.java index 079c6cff2..01acfa978 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostListener.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostListener.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 AtLarge Research + * Copyright (c) 2024 AtLarge Research * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,22 +20,22 @@ * SOFTWARE. */ -package org.opendc.compute.service.driver; +package org.opendc.compute.simulator.host; -import org.opendc.compute.api.Task; import org.opendc.compute.api.TaskState; +import org.opendc.compute.simulator.service.ServiceTask; /** - * Listener interface for events originating from a {@link Host}. + * Listener interface for events originating from a {@link SimHost}. */ public interface HostListener { /** * This method is invoked when the state of task on host changes. */ - default void onStateChanged(Host host, Task task, TaskState newState) {} + default void onStateChanged(SimHost host, ServiceTask task, TaskState newState) {} /** - * This method is invoked when the state of a {@link Host} has changed. + * This method is invoked when the state of a {@link SimHost} has changed. */ - default void onStateChanged(Host host, HostState newState) {} + default void onStateChanged(SimHost host, HostState newState) {} } diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostModel.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostModel.java similarity index 91% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostModel.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostModel.java index 87464fe14..96236c5c5 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostModel.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostModel.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service.driver; +package org.opendc.compute.simulator.host; /** * Record describing the static machine properties of the host. @@ -29,4 +29,4 @@ * @param coreCount The number of logical processing cores available for this host. * @param memoryCapacity The amount of memory available for this host in MB. */ -public record HostModel(double cpuCapacity, int coreCount, long memoryCapacity) {} +public record HostModel(float cpuCapacity, int coreCount, long memoryCapacity) {} diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostState.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostState.java similarity index 97% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostState.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostState.java index ce12a67ee..29fc8cb45 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/HostState.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/host/HostState.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service.driver; +package org.opendc.compute.simulator.host; /** * The state of a host. diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ComputeService.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java similarity index 77% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ComputeService.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java index ad01ee579..84e23516b 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ComputeService.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service; +package org.opendc.compute.simulator.service; import java.time.Duration; import java.time.Instant; @@ -41,18 +41,16 @@ import org.jetbrains.annotations.Nullable; import org.opendc.common.Dispatcher; import org.opendc.common.util.Pacer; -import org.opendc.compute.api.ComputeClient; import org.opendc.compute.api.Flavor; import org.opendc.compute.api.Image; -import org.opendc.compute.api.Task; import org.opendc.compute.api.TaskState; -import org.opendc.compute.service.driver.Host; -import org.opendc.compute.service.driver.HostListener; -import org.opendc.compute.service.driver.HostModel; -import org.opendc.compute.service.driver.HostState; -import org.opendc.compute.service.scheduler.ComputeScheduler; -import org.opendc.compute.service.telemetry.SchedulerStats; -import org.opendc.simulator.compute.workload.SimWorkload; +import org.opendc.compute.simulator.host.HostListener; +import org.opendc.compute.simulator.host.HostModel; +import org.opendc.compute.simulator.host.HostState; +import org.opendc.compute.simulator.host.SimHost; +import org.opendc.compute.simulator.scheduler.ComputeScheduler; +import org.opendc.compute.simulator.telemetry.SchedulerStats; +import org.opendc.simulator.compute.workload.Workload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -92,7 +90,7 @@ public final class ComputeService implements AutoCloseable { /** * A mapping from host to host view. */ - private final Map hostToView = new HashMap<>(); + private final Map hostToView = new HashMap<>(); /** * The available hypervisors. @@ -107,7 +105,12 @@ public final class ComputeService implements AutoCloseable { /** * The active tasks in the system. */ - private final Map activeTasks = new HashMap<>(); + private final Map activeTasks = new HashMap<>(); + + /** + * The active tasks in the system. + */ + private final Map completedTasks = new HashMap<>(); /** * The registered flavors for this compute service. @@ -130,12 +133,14 @@ public final class ComputeService implements AutoCloseable { private final List tasks = new ArrayList<>(); + private final List tasksToRemove = new ArrayList<>(); + /** * A [HostListener] used to track the active tasks. */ private final HostListener hostListener = new HostListener() { @Override - public void onStateChanged(@NotNull Host host, @NotNull HostState newState) { + public void onStateChanged(@NotNull SimHost host, @NotNull HostState newState) { LOGGER.debug("Host {} state changed: {}", host, newState); final HostView hv = hostToView.get(host); @@ -153,19 +158,16 @@ public void onStateChanged(@NotNull Host host, @NotNull HostState newState) { } @Override - public void onStateChanged(@NotNull Host host, @NotNull Task task, @NotNull TaskState newState) { - final ServiceTask serviceTask = (ServiceTask) task; - - if (serviceTask.getHost() != host) { + public void onStateChanged(@NotNull SimHost host, @NotNull ServiceTask task, @NotNull TaskState newState) { + if (task.getHost() != host) { // This can happen when a task is rescheduled and started on another machine, while being deleted from // the old machine. return; } - serviceTask.setState(newState); + task.setState(newState); - // TODO: move the removal of tasks when max Failures are reached to here - if (newState == TaskState.TERMINATED || newState == TaskState.DELETED || newState == TaskState.ERROR) { + if (newState == TaskState.COMPLETED || newState == TaskState.TERMINATED || newState == TaskState.FAILED) { LOGGER.info("task {} {} {} finished", task.getUid(), task.getName(), task.getFlavor()); if (activeTasks.remove(task) != null) { @@ -173,7 +175,7 @@ public void onStateChanged(@NotNull Host host, @NotNull Task task, @NotNull Task } HostView hv = hostToView.get(host); - final ServiceFlavor flavor = serviceTask.getFlavor(); + final ServiceFlavor flavor = task.getFlavor(); if (hv != null) { hv.provisionedCores -= flavor.getCoreCount(); hv.instanceCount--; @@ -182,6 +184,20 @@ public void onStateChanged(@NotNull Host host, @NotNull Task task, @NotNull Task LOGGER.error("Unknown host {}", host); } + task.setHost(null); + host.removeTask(task); + + if (newState == TaskState.COMPLETED) { + tasksCompleted++; + } + if (newState == TaskState.TERMINATED) { + tasksTerminated++; + } + + if (task.getState() == TaskState.COMPLETED || task.getState() == TaskState.TERMINATED) { + tasksToRemove.add(task); + } + // Try to reschedule if needed requestSchedulingCycle(); } @@ -192,14 +208,16 @@ public void onStateChanged(@NotNull Host host, @NotNull Task task, @NotNull Task private long maxMemory = 0L; private long attemptsSuccess = 0L; private long attemptsFailure = 0L; - private long attemptsError = 0L; + private int tasksTotal = 0; private int tasksPending = 0; private int tasksActive = 0; + private int tasksTerminated = 0; + private int tasksCompleted = 0; /** * Construct a {@link ComputeService} instance. */ - ComputeService(Dispatcher dispatcher, ComputeScheduler scheduler, Duration quantum, int maxNumFailures) { + public ComputeService(Dispatcher dispatcher, ComputeScheduler scheduler, Duration quantum, int maxNumFailures) { this.clock = dispatcher.getTimeSource(); this.scheduler = scheduler; this.pacer = new Pacer(dispatcher, quantum.toMillis(), (time) -> doSchedule()); @@ -220,20 +238,31 @@ public ComputeClient newClient() { if (isClosed) { throw new IllegalStateException("Service is closed"); } - return new Client(this); + return new ComputeClient(this); } /** - * Return the {@link Task}s hosted by this service. + * Return the {@link ServiceTask}s hosted by this service. */ - public List getTasks() { + public List getTasks() { return Collections.unmodifiableList(tasks); } /** - * Add a {@link Host} to the scheduling pool of the compute service. + * Return the {@link ServiceTask}s hosted by this service. + */ + public List getTasksToRemove() { + return Collections.unmodifiableList(tasksToRemove); + } + + public void clearTasksToRemove() { + this.tasksToRemove.clear(); + } + + /** + * Add a {@link SimHost} to the scheduling pool of the compute service. */ - public void addHost(Host host) { + public void addHost(SimHost host) { // Check if host is already known if (hostToView.containsKey(host)) { return; @@ -255,9 +284,9 @@ public void addHost(Host host) { } /** - * Remove a {@link Host} from the scheduling pool of the compute service. + * Remove a {@link SimHost} from the scheduling pool of the compute service. */ - public void removeHost(Host host) { + public void removeHost(SimHost host) { HostView view = hostToView.remove(host); if (view != null) { availableHosts.remove(view); @@ -267,24 +296,23 @@ public void removeHost(Host host) { } /** - * Lookup the {@link Host} that currently hosts the specified {@link Task}. + * Lookup the {@link SimHost} that currently hosts the specified {@link ServiceTask}. */ - public Host lookupHost(Task task) { - if (task instanceof ServiceTask) { - return ((ServiceTask) task).getHost(); - } - - ServiceTask internal = Objects.requireNonNull(taskById.get(task.getUid()), "Invalid task passed to lookupHost"); - return internal.getHost(); + public SimHost lookupHost(ServiceTask task) { + return task.getHost(); } /** - * Return the {@link Host}s that are registered with this service. + * Return the {@link SimHost}s that are registered with this service. */ - public Set getHosts() { + public Set getHosts() { return Collections.unmodifiableSet(hostToView.keySet()); } + public InstantSource getClock() { + return this.clock; + } + /** * Collect the statistics about the scheduler component of this service. */ @@ -294,10 +322,11 @@ public SchedulerStats getSchedulerStats() { hostToView.size() - availableHosts.size(), attemptsSuccess, attemptsFailure, - attemptsError, - tasks.size(), + tasksTotal, tasksPending, - tasksActive); + tasksActive, + tasksCompleted, + tasksTerminated); } @Override @@ -337,6 +366,7 @@ void delete(ServiceImage image) { } void delete(ServiceTask task) { + completedTasks.remove(task); taskById.remove(task.getUid()); tasks.remove(task); } @@ -370,13 +400,14 @@ private void doSchedule() { final ServiceTask task = request.task; - // Remove task from scheduling if it has failed too many times - if (task.getNumFailures() > maxNumFailures) { - LOGGER.warn("Failed to spawn {}: Task has failed more than the allowed {} times", task, maxNumFailures); + if (task.getNumFailures() >= maxNumFailures) { + LOGGER.warn("task {} has been terminated because it failed {} times", task, task.getNumFailures()); taskQueue.poll(); tasksPending--; + tasksTerminated++; task.setState(TaskState.TERMINATED); + tasksToRemove.add(task); continue; } @@ -390,18 +421,17 @@ private void doSchedule() { // Remove the incoming image taskQueue.poll(); tasksPending--; - attemptsFailure++; LOGGER.warn("Failed to spawn {}: does not fit", task); - task.setState(TaskState.TERMINATED); + task.setState(TaskState.FAILED); continue; } else { break; } } - Host host = hv.getHost(); + SimHost host = hv.getHost(); // Remove request from queue taskQueue.poll(); @@ -413,7 +443,7 @@ private void doSchedule() { task.host = host; host.spawn(task); - host.start(task); + // host.start(task); tasksActive++; attemptsSuccess++; @@ -425,7 +455,7 @@ private void doSchedule() { activeTasks.put(task, host); } catch (Exception cause) { LOGGER.error("Failed to deploy VM", cause); - attemptsError++; + attemptsFailure++; } } } @@ -436,7 +466,7 @@ private void doSchedule() { public static class Builder { private final Dispatcher dispatcher; private final ComputeScheduler computeScheduler; - private Duration quantum = Duration.ofMinutes(5); + private Duration quantum = Duration.ofSeconds(1); private int maxNumFailures = 10; Builder(Dispatcher dispatcher, ComputeScheduler computeScheduler) { @@ -468,11 +498,11 @@ public ComputeService build() { /** * Implementation of {@link ComputeClient} using a {@link ComputeService}. */ - private static class Client implements ComputeClient { + public static class ComputeClient { private final ComputeService service; private boolean isClosed; - Client(ComputeService service) { + ComputeClient(ComputeService service) { this.service = service; } @@ -486,13 +516,11 @@ private void checkOpen() { } @NotNull - @Override public List queryFlavors() { checkOpen(); return new ArrayList<>(service.flavors); } - @Override public Flavor findFlavor(@NotNull UUID id) { checkOpen(); @@ -500,18 +528,12 @@ public Flavor findFlavor(@NotNull UUID id) { } @NotNull - @Override - public Flavor newFlavor( - @NotNull String name, - int cpuCount, - long memorySize, - @NotNull Map labels, - @NotNull Map meta) { + public Flavor newFlavor(@NotNull String name, int cpuCount, long memorySize, @NotNull Map meta) { checkOpen(); final ComputeService service = this.service; UUID uid = new UUID(service.clock.millis(), service.random.nextLong()); - ServiceFlavor flavor = new ServiceFlavor(service, uid, name, cpuCount, memorySize, labels, meta); + ServiceFlavor flavor = new ServiceFlavor(service, uid, name, cpuCount, memorySize, meta); service.flavorById.put(uid, flavor); service.flavors.add(flavor); @@ -520,20 +542,22 @@ public Flavor newFlavor( } @NotNull - @Override public List queryImages() { checkOpen(); return new ArrayList<>(service.images); } - @Override public Image findImage(@NotNull UUID id) { checkOpen(); return service.imageById.get(id); } + public Image newImage(@NotNull String name) { + return newImage(name, Collections.emptyMap(), Collections.emptyMap()); + } + @NotNull public Image newImage(@NotNull String name, @NotNull Map labels, @NotNull Map meta) { checkOpen(); @@ -550,14 +574,11 @@ public Image newImage(@NotNull String name, @NotNull Map labels, } @NotNull - @Override - public Task newTask( + public ServiceTask newTask( @NotNull String name, - @NotNull Image image, @NotNull Flavor flavor, - @NotNull Map labels, - @NotNull Map meta, - boolean start) { + @NotNull Workload workload, + @NotNull Map meta) { checkOpen(); final ComputeService service = this.service; @@ -565,37 +586,32 @@ public Task newTask( final ServiceFlavor internalFlavor = Objects.requireNonNull(service.flavorById.get(flavor.getUid()), "Unknown flavor"); - final ServiceImage internalImage = - Objects.requireNonNull(service.imageById.get(image.getUid()), "Unknown image"); - ServiceTask task = new ServiceTask(service, uid, name, internalFlavor, internalImage, labels, meta); + ServiceTask task = new ServiceTask(service, uid, name, internalFlavor, workload, meta); service.taskById.put(uid, task); service.tasks.add(task); - if (start) { - task.start(); - } + service.tasksTotal++; + + task.start(); return task; } @Nullable - @Override - public Task findTask(@NotNull UUID id) { + public ServiceTask findTask(@NotNull UUID id) { checkOpen(); return service.taskById.get(id); } @NotNull - @Override - public List queryTasks() { + public List queryTasks() { checkOpen(); return new ArrayList<>(service.tasks); } - @Override public void close() { isClosed = true; } @@ -606,12 +622,11 @@ public String toString() { } @Nullable - @Override - public void rescheduleTask(@NotNull Task task, @NotNull SimWorkload workload) { - ServiceTask internalTask = (ServiceTask) findTask(task.getUid()); - Host from = service.lookupHost(internalTask); + public void rescheduleTask(@NotNull ServiceTask task, @NotNull Workload workload) { + ServiceTask internalTask = findTask(task.getUid()); + // SimHost from = service.lookupHost(internalTask); - from.delete(internalTask); + // from.delete(internalTask); internalTask.host = null; @@ -621,7 +636,7 @@ public void rescheduleTask(@NotNull Task task, @NotNull SimWorkload workload) { } /** - * A request to schedule a {@link ServiceTask} onto one of the {@link Host}s. + * A request to schedule a {@link ServiceTask} onto one of the {@link SimHost}s. */ static class SchedulingRequest { final ServiceTask task; diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/HostView.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/HostView.java similarity index 86% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/HostView.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/HostView.java index 6e2cdcb47..f4aa9c703 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/HostView.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/HostView.java @@ -20,15 +20,15 @@ * SOFTWARE. */ -package org.opendc.compute.service; +package org.opendc.compute.simulator.service; -import org.opendc.compute.service.driver.Host; +import org.opendc.compute.simulator.host.SimHost; /** - * A view of a {@link Host} as seen from the {@link ComputeService}. + * A view of a {@link SimHost} as seen from the {@link ComputeService}. */ public class HostView { - private final Host host; + private final SimHost host; int instanceCount; long availableMemory; int provisionedCores; @@ -38,15 +38,15 @@ public class HostView { * * @param host The host to create a view of. */ - public HostView(Host host) { + public HostView(SimHost host) { this.host = host; this.availableMemory = host.getModel().memoryCapacity(); } /** - * The {@link Host} this is a view of. + * The {@link SimHost} this is a view of. */ - public Host getHost() { + public SimHost getHost() { return host; } diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceFlavor.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceFlavor.java similarity index 86% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceFlavor.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceFlavor.java index 0f434a6af..eddde87e7 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceFlavor.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceFlavor.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service; +package org.opendc.compute.simulator.service; import java.util.Collections; import java.util.Map; @@ -38,23 +38,14 @@ public final class ServiceFlavor implements Flavor { private final String name; private final int coreCount; private final long memorySize; - private final Map labels; private final Map meta; - ServiceFlavor( - ComputeService service, - UUID uid, - String name, - int coreCount, - long memorySize, - Map labels, - Map meta) { + ServiceFlavor(ComputeService service, UUID uid, String name, int coreCount, long memorySize, Map meta) { this.service = service; this.uid = uid; this.name = name; this.coreCount = coreCount; this.memorySize = memorySize; - this.labels = labels; this.meta = meta; } @@ -80,12 +71,6 @@ public String getName() { return name; } - @NotNull - @Override - public Map getLabels() { - return Collections.unmodifiableMap(labels); - } - @NotNull @Override public Map getMeta() { diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceImage.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceImage.java similarity index 94% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceImage.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceImage.java index 706be483b..dffa43567 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceImage.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceImage.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service; +package org.opendc.compute.simulator.service; import java.util.Collections; import java.util.Map; @@ -59,12 +59,6 @@ public String getName() { return name; } - @NotNull - @Override - public Map getLabels() { - return Collections.unmodifiableMap(labels); - } - @NotNull @Override public Map getMeta() { diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceTask.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java similarity index 65% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceTask.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java index f0e2a82eb..f39142eb0 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/ServiceTask.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ServiceTask.java @@ -20,29 +20,28 @@ * SOFTWARE. */ -package org.opendc.compute.service; +package org.opendc.compute.simulator.service; import java.time.Instant; import java.util.ArrayList; import java.util.Collections; -import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.UUID; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.opendc.compute.api.Task; import org.opendc.compute.api.TaskState; -import org.opendc.compute.api.TaskWatcher; -import org.opendc.compute.service.driver.Host; +import org.opendc.compute.simulator.TaskWatcher; +import org.opendc.compute.simulator.host.SimHost; +import org.opendc.simulator.compute.workload.Workload; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Implementation of {@link Task} provided by {@link ComputeService}. + * Implementation of {@link ServiceTask} provided by {@link ComputeService}. */ -public final class ServiceTask implements Task { +public class ServiceTask { private static final Logger LOGGER = LoggerFactory.getLogger(ServiceTask.class); private final ComputeService service; @@ -50,14 +49,16 @@ public final class ServiceTask implements Task { private final String name; private final ServiceFlavor flavor; - private final ServiceImage image; - private final Map labels; - private Map meta; + public Workload workload; + + private Map meta; // TODO: remove this private final List watchers = new ArrayList<>(); - private TaskState state = TaskState.TERMINATED; + private TaskState state = TaskState.CREATED; Instant launchedAt = null; - Host host = null; + Instant createdAt; + Instant finishedAt; + SimHost host = null; private ComputeService.SchedulingRequest request = null; private int numFailures = 0; @@ -67,81 +68,77 @@ public final class ServiceTask implements Task { UUID uid, String name, ServiceFlavor flavor, - ServiceImage image, - Map labels, + Workload workload, Map meta) { this.service = service; this.uid = uid; this.name = name; this.flavor = flavor; - this.image = image; - this.labels = labels; + this.workload = workload; this.meta = meta; + + this.createdAt = this.service.getClock().instant(); } @NotNull - @Override public UUID getUid() { return uid; } @NotNull - @Override public String getName() { return name; } @NotNull - @Override public ServiceFlavor getFlavor() { return flavor; } @NotNull - @Override - public ServiceImage getImage() { - return image; - } - - @NotNull - @Override - public Map getLabels() { - return Collections.unmodifiableMap(labels); - } - - @NotNull - @Override public Map getMeta() { return Collections.unmodifiableMap(meta); } - public void setWorkload(Object _workload) { - Map new_meta = new HashMap(); - new_meta.put("workload", _workload); - - meta = new_meta; + public void setWorkload(Workload newWorkload) { + this.workload = newWorkload; } @NotNull - @Override public TaskState getState() { return state; } @Nullable - @Override public Instant getLaunchedAt() { return launchedAt; } + @Nullable + public Instant getCreatedAt() { + return createdAt; + } + + @Nullable + public Instant getFinishedAt() { + return finishedAt; + } + /** - * Return the {@link Host} on which the task is running or null if it is not running on a host. + * Return the {@link SimHost} on which the task is running or null if it is not running on a host. */ - public Host getHost() { + public SimHost getHost() { return host; } - @Override + public void setHost(SimHost host) { + this.host = host; + } + + public int getNumFailures() { + return this.numFailures; + } + public void start() { switch (state) { case PROVISIONING: @@ -149,74 +146,43 @@ public void start() { case RUNNING: LOGGER.debug("User tried to start task but task is already running"); break; - case DELETED: + case COMPLETED: + case TERMINATED: LOGGER.warn("User tried to start deleted task"); throw new IllegalStateException("Task is deleted"); - default: + case CREATED: LOGGER.info("User requested to start task {}", uid); setState(TaskState.PROVISIONING); assert request == null : "Scheduling request already active"; request = service.schedule(this); break; - } - } - - @Override - public void stop() { - switch (state) { - case PROVISIONING: - cancelProvisioningRequest(); - setState(TaskState.TERMINATED); - break; - case RUNNING: - case ERROR: - final Host host = this.host; - if (host == null) { - throw new IllegalStateException("Task not running"); - } - host.stop(this); + case FAILED: + LOGGER.info("User requested to start task after failure {}", uid); + setState(TaskState.PROVISIONING); + request = service.schedule(this); break; } } - @Override public void watch(@NotNull TaskWatcher watcher) { watchers.add(watcher); } - @Override public void unwatch(@NotNull TaskWatcher watcher) { watchers.remove(watcher); } - @Override - public void reload() { - // No-op: this object is the source-of-truth - } - - @Override public void delete() { - switch (state) { - case PROVISIONING: - case TERMINATED: - cancelProvisioningRequest(); - service.delete(this); - setState(TaskState.DELETED); - break; - case RUNNING: - case ERROR: - final Host host = this.host; - if (host == null) { - throw new IllegalStateException("Task not running"); - } - host.delete(this); - service.delete(this); - setState(TaskState.DELETED); - break; + cancelProvisioningRequest(); + final SimHost host = this.host; + if (host != null) { + host.delete(this); } + service.delete(this); + + this.setState(TaskState.DELETED); } - @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -224,12 +190,10 @@ public boolean equals(Object o) { return service.equals(task.service) && uid.equals(task.uid); } - @Override public int hashCode() { return Objects.hash(service, uid); } - @Override public String toString() { return "Task[uid=" + uid + ",name=" + name + ",state=" + state + "]"; } @@ -242,10 +206,14 @@ void setState(TaskState newState) { for (TaskWatcher watcher : watchers) { watcher.onStateChanged(this, newState); } - if (newState == TaskState.ERROR) { + if (newState == TaskState.FAILED) { this.numFailures++; } + if ((newState == TaskState.COMPLETED) || newState == TaskState.FAILED) { + this.finishedAt = this.service.getClock().instant(); + } + this.state = newState; } @@ -259,9 +227,4 @@ private void cancelProvisioningRequest() { request.isCancelled = true; } } - - @Override - public int getNumFailures() { - return this.numFailures; - } } diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/GuestCpuStats.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java similarity index 93% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/GuestCpuStats.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java index 0b78c7ead..ea37f5f22 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/GuestCpuStats.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestCpuStats.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service.driver.telemetry; +package org.opendc.compute.simulator.telemetry; /** * Statistics about the CPUs of a guest. @@ -38,6 +38,6 @@ public record GuestCpuStats( long idleTime, long stealTime, long lostTime, - double capacity, - double usage, - double utilization) {} + float capacity, + float usage, + float utilization) {} diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/GuestSystemStats.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestSystemStats.java similarity index 96% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/GuestSystemStats.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestSystemStats.java index dbf98dd5c..0d51e2236 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/GuestSystemStats.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/GuestSystemStats.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service.driver.telemetry; +package org.opendc.compute.simulator.telemetry; import java.time.Duration; import java.time.Instant; diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/HostCpuStats.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/HostCpuStats.java similarity index 93% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/HostCpuStats.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/HostCpuStats.java index d1c2328b3..3f2aab78e 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/HostCpuStats.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/HostCpuStats.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service.driver.telemetry; +package org.opendc.compute.simulator.telemetry; /** * Statistics about the CPUs of a host. @@ -40,7 +40,7 @@ public record HostCpuStats( long idleTime, long stealTime, long lostTime, - double capacity, - double demand, - double usage, - double utilization) {} + float capacity, + float demand, + float usage, + float utilization) {} diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/HostSystemStats.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/HostSystemStats.java similarity index 95% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/HostSystemStats.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/HostSystemStats.java index c0713f3c2..353e62fa7 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/driver/telemetry/HostSystemStats.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/HostSystemStats.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service.driver.telemetry; +package org.opendc.compute.simulator.telemetry; import java.time.Duration; import java.time.Instant; @@ -42,8 +42,8 @@ public record HostSystemStats( Duration uptime, Duration downtime, Instant bootTime, - double powerDraw, - double energyUsage, + float powerDraw, + float energyUsage, int guestsTerminated, int guestsRunning, int guestsError, diff --git a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/telemetry/SchedulerStats.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/SchedulerStats.java similarity index 89% rename from opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/telemetry/SchedulerStats.java rename to opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/SchedulerStats.java index fc044d8cf..9d44a4b82 100644 --- a/opendc-compute/opendc-compute-service/src/main/java/org/opendc/compute/service/telemetry/SchedulerStats.java +++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/telemetry/SchedulerStats.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.service.telemetry; +package org.opendc.compute.simulator.telemetry; /** * Statistics about the scheduling component of the [ComputeService]. @@ -28,8 +28,7 @@ * @param hostsAvailable The number of hosts currently available for scheduling. * @param hostsUnavailable The number of hosts unavailable for scheduling. * @param attemptsSuccess Scheduling attempts that resulted into an allocation onto a host. - * @param attemptsFailure The number of failed scheduling attempt due to insufficient capacity at the moment. - * @param attemptsError The number of scheduling attempts that failed due to system error. + * @param attemptsFailure The number of failed scheduling attempt due to any reason * @param tasksTotal The number of tasks registered with the service. * @param tasksPending The number of tasks that are pending to be scheduled. * @param tasksActive The number of tasks that are currently managed by the service and running. @@ -39,7 +38,8 @@ public record SchedulerStats( int hostsUnavailable, long attemptsSuccess, long attemptsFailure, - long attemptsError, int tasksTotal, int tasksPending, - int tasksActive) {} + int tasksActive, + int tasksCompleted, + int tasksTerminated) {} diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/MutableServiceRegistry.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/MutableServiceRegistry.kt deleted file mode 100644 index ca72c9103..000000000 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/MutableServiceRegistry.kt +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.simulator - -/** - * A mutable [ServiceRegistry]. - */ -public interface MutableServiceRegistry : ServiceRegistry { - /** - * Register [service] for the specified [name] in this registry. - * - * @param name The name of the service to register, which should follow the rules for domain names as defined by - * DNS. - * @param type The interface provided by the service. - * @param service A reference to the actual implementation of the service. - */ - public fun register( - name: String, - type: Class, - service: T, - ) - - /** - * Remove the service with [name] and [type] from this registry. - * - * @param name The name of the service to remove, which should follow the rules for domain names as defined by DNS. - * @param type The type of the service to remove. - */ - public fun remove( - name: String, - type: Class<*>, - ) - - /** - * Remove all services registered with [name]. - * - * @param name The name of the services to remove, which should follow the rules for domain names as defined by DNS. - */ - public fun remove(name: String) - - /** - * Create a copy of the registry. - */ - public override fun clone(): MutableServiceRegistry -} diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/ServiceRegistry.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/ServiceRegistry.kt index 5a4bced1b..e2f6c9d04 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/ServiceRegistry.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/ServiceRegistry.kt @@ -23,26 +23,53 @@ package org.opendc.compute.simulator /** - * A read-only registry of services used during experiments to resolve services. - * - * The service registry is similar conceptually to the Domain Name System (DNS), which is a naming system used to - * identify computers reachable via the Internet. The service registry should be used in a similar fashion. + * Implementation of the [ServiceRegistry] interface. */ -public interface ServiceRegistry { - /** - * Lookup the service with the specified [name] and [type]. - * - * @param name The name of the service to resolve, which should follow the rules for domain names as defined by DNS. - * @param type The type of the service to resolve, identified by the interface that is implemented by the service. - * @return The service with specified [name] and implementing [type] or `null` if it does not exist. - */ +public class ServiceRegistry(private val registry: MutableMap, Any>> = mutableMapOf()) { public fun resolve( name: String, type: Class, - ): T? + ): T? { + val servicesForName = registry[name] ?: return null + + @Suppress("UNCHECKED_CAST") + return servicesForName[type] as T? + } + + public fun register( + name: String, + type: Class, + service: T, + ) { + val services = registry.computeIfAbsent(name) { mutableMapOf() } + + if (type in services) { + throw IllegalStateException("Duplicate service $type registered for name $name") + } + + services[type] = service + } + + public fun remove( + name: String, + type: Class<*>, + ) { + val services = registry[name] ?: return + services.remove(type) + } + + public fun remove(name: String) { + registry.remove(name) + } + + public fun clone(): ServiceRegistry { + val res = mutableMapOf, Any>>() + registry.mapValuesTo(res) { (_, v) -> v.toMutableMap() } + return ServiceRegistry(res) + } - /** - * Create a copy of the registry. - */ - public fun clone(): ServiceRegistry + override fun toString(): String { + val entries = registry.map { "${it.key}=${it.value}" }.joinToString() + return "ServiceRegistry{$entries}" + } } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/ServiceRegistryImpl.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/ServiceRegistryImpl.kt deleted file mode 100644 index bf3ee43f6..000000000 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/ServiceRegistryImpl.kt +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.simulator - -/** - * Implementation of the [MutableServiceRegistry] interface. - */ -internal class ServiceRegistryImpl(private val registry: MutableMap, Any>> = mutableMapOf()) : - MutableServiceRegistry { - override fun resolve( - name: String, - type: Class, - ): T? { - val servicesForName = registry[name] ?: return null - - @Suppress("UNCHECKED_CAST") - return servicesForName[type] as T? - } - - override fun register( - name: String, - type: Class, - service: T, - ) { - val services = registry.computeIfAbsent(name) { mutableMapOf() } - - if (type in services) { - throw IllegalStateException("Duplicate service $type registered for name $name") - } - - services[type] = service - } - - override fun remove( - name: String, - type: Class<*>, - ) { - val services = registry[name] ?: return - services.remove(type) - } - - override fun remove(name: String) { - registry.remove(name) - } - - override fun clone(): MutableServiceRegistry { - val res = mutableMapOf, Any>>() - registry.mapValuesTo(res) { (_, v) -> v.toMutableMap() } - return ServiceRegistryImpl(res) - } - - override fun toString(): String { - val entries = registry.map { "${it.key}=${it.value}" }.joinToString() - return "ServiceRegistry{$entries}" - } -} diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt deleted file mode 100644 index e681403ce..000000000 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright (c) 2020 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.simulator - -import org.opendc.compute.api.Flavor -import org.opendc.compute.api.Task -import org.opendc.compute.api.TaskState -import org.opendc.compute.service.driver.Host -import org.opendc.compute.service.driver.HostListener -import org.opendc.compute.service.driver.HostModel -import org.opendc.compute.service.driver.HostState -import org.opendc.compute.service.driver.telemetry.GuestCpuStats -import org.opendc.compute.service.driver.telemetry.GuestSystemStats -import org.opendc.compute.service.driver.telemetry.HostCpuStats -import org.opendc.compute.service.driver.telemetry.HostSystemStats -import org.opendc.compute.simulator.internal.DefaultWorkloadMapper -import org.opendc.compute.simulator.internal.Guest -import org.opendc.compute.simulator.internal.GuestListener -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.SimMachineContext -import org.opendc.simulator.compute.kernel.SimHypervisor -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.workload.SimWorkload -import org.opendc.simulator.compute.workload.SimWorkloads -import java.time.Duration -import java.time.Instant -import java.time.InstantSource -import java.util.UUID -import java.util.function.Supplier - -/** - * A [Host] implementation that simulates virtual machines on a physical machine using [SimHypervisor]. - * - * @param uid The unique identifier of the host. - * @param name The name of the host. - * @param meta The metadata of the host. - * @param clock The (virtual) clock used to track time. - * @param machine The [SimBareMetalMachine] on which the host runs. - * @param hypervisor The [SimHypervisor] to run on top of the machine. - * @param mapper A [SimWorkloadMapper] to map a [Task] to a [SimWorkload]. - * @param bootModel A [Supplier] providing the [SimWorkload] to execute during the boot procedure of the hypervisor. - * @param optimize A flag to indicate to optimize the machine models of the virtual machines. - */ -public class SimHost( - private val uid: UUID, - private val name: String, - private val meta: Map, - private val clock: InstantSource, - private val machine: SimBareMetalMachine, - private val hypervisor: SimHypervisor, - private val mapper: SimWorkloadMapper = DefaultWorkloadMapper, - private val bootModel: Supplier = Supplier { null }, - private val optimize: Boolean = false, -) : Host, AutoCloseable { - /** - * The event listeners registered with this host. - */ - private val listeners = mutableListOf() - - /** - * The virtual machines running on the hypervisor. - */ - private val guests = HashMap() - private val localGuests = mutableListOf() - - private var localState: HostState = HostState.DOWN - set(value) { - if (value != field) { - listeners.forEach { it.onStateChanged(this, value) } - } - field = value - } - - private val model: HostModel = - HostModel( - machine.model.cpu.totalCapacity, - machine.model.cpu.coreCount, - machine.model.memory.size, - ) - - /** - * The [GuestListener] that listens for guest events. - */ - private val guestListener = - object : GuestListener { - override fun onStart(guest: Guest) { - listeners.forEach { it.onStateChanged(this@SimHost, guest.task, guest.state) } - } - - override fun onStop(guest: Guest) { - listeners.forEach { it.onStateChanged(this@SimHost, guest.task, guest.state) } - } - } - - init { - launch() - } - - override fun getUid(): UUID { - return uid - } - - override fun getName(): String { - return name - } - - override fun getModel(): HostModel { - return model - } - - override fun getMeta(): Map { - return meta - } - - override fun getState(): HostState { - return localState - } - - override fun getInstances(): Set { - return guests.keys - } - - override fun canFit(task: Task): Boolean { - val sufficientMemory = model.memoryCapacity >= task.flavor.memorySize - val enoughCpus = model.coreCount >= task.flavor.coreCount - val canFit = hypervisor.canFit(task.flavor.toMachineModel()) - - return sufficientMemory && enoughCpus && canFit - } - - override fun spawn(task: Task) { - guests.computeIfAbsent(task) { key -> - require(canFit(key)) { "Task does not fit" } - - val machine = hypervisor.newMachine(key.flavor.toMachineModel()) - val newGuest = - Guest( - clock, - this, - hypervisor, - mapper, - guestListener, - task, - machine, - ) - - localGuests.add(newGuest) - newGuest - } - } - - override fun contains(task: Task): Boolean { - return task in guests - } - - override fun start(task: Task) { - val guest = requireNotNull(guests[task]) { "Unknown task ${task.uid} at host $uid" } - guest.start() - } - - override fun stop(task: Task) { - val guest = requireNotNull(guests[task]) { "Unknown task ${task.uid} at host $uid" } - guest.stop() - } - - override fun delete(task: Task) { - val guest = guests[task] ?: return - guest.delete() - - guests.remove(task) - localGuests.remove(guest) - } - - override fun addListener(listener: HostListener) { - listeners.add(listener) - } - - override fun removeListener(listener: HostListener) { - listeners.remove(listener) - } - - override fun close() { - reset(HostState.DOWN) - machine.cancel() - } - - override fun getSystemStats(): HostSystemStats { - updateUptime() - - var terminated = 0 - var running = 0 - var error = 0 - var invalid = 0 - - val guests = localGuests.listIterator() - for (guest in guests) { - when (guest.state) { - TaskState.TERMINATED -> terminated++ - TaskState.RUNNING -> running++ - TaskState.ERROR -> error++ - TaskState.DELETED -> { - // Remove guests that have been deleted - this.guests.remove(guest.task) - guests.remove() - } - else -> invalid++ - } - } - - return HostSystemStats( - Duration.ofMillis(localUptime), - Duration.ofMillis(localDowntime), - localBootTime, - machine.psu.powerDraw, - machine.psu.energyUsage, - terminated, - running, - error, - invalid, - ) - } - - override fun getSystemStats(task: Task): GuestSystemStats { - val guest = requireNotNull(guests[task]) { "Unknown task ${task.uid} at host $uid" } - return guest.getSystemStats() - } - - override fun getCpuStats(): HostCpuStats { - val counters = hypervisor.counters - counters.sync() - - return HostCpuStats( - counters.cpuActiveTime, - counters.cpuIdleTime, - counters.cpuStealTime, - counters.cpuLostTime, - hypervisor.cpuCapacity, - hypervisor.cpuDemand, - hypervisor.cpuUsage, - hypervisor.cpuUsage / localCpuLimit, - ) - } - - override fun getCpuStats(task: Task): GuestCpuStats { - val guest = requireNotNull(guests[task]) { "Unknown task ${task.uid} at host $uid" } - return guest.getCpuStats() - } - - override fun hashCode(): Int = uid.hashCode() - - override fun equals(other: Any?): Boolean { - return other is SimHost && uid == other.uid - } - - override fun toString(): String = "SimHost[uid=$uid,name=$name,model=$model]" - - public fun fail() { - reset(HostState.ERROR) - - for (guest in localGuests) { - guest.fail() - } - } - - public fun recover() { - updateUptime() - - launch() - } - - /** - * The [SimMachineContext] that represents the machine running the hypervisor. - */ - private var ctx: SimMachineContext? = null - - /** - * Launch the hypervisor. - */ - private fun launch() { - check(ctx == null) { "Concurrent hypervisor running" } - - val bootWorkload = bootModel.get() - val hypervisor = hypervisor - val hypervisorWorkload = - object : SimWorkload by hypervisor { - override fun onStart(ctx: SimMachineContext) { - try { - localBootTime = clock.instant() - localState = HostState.UP - hypervisor.onStart(ctx) - - // Recover the guests that were running on the hypervisor. - for (guest in localGuests) { - guest.recover() - } - } catch (cause: Throwable) { - localState = HostState.ERROR - throw cause - } - } - } - - val workload = if (bootWorkload != null) SimWorkloads.chain(bootWorkload, hypervisorWorkload) else hypervisorWorkload - - // Launch hypervisor onto machine - ctx = - machine.startWorkload(workload, emptyMap()) { cause -> - localState = if (cause != null) HostState.ERROR else HostState.DOWN - ctx = null - } - } - - /** - * Reset the machine. - */ - private fun reset(state: HostState) { - updateUptime() - - // Stop the hypervisor - ctx?.shutdown() - localState = state - } - - /** - * Convert flavor to machine model. - */ - private fun Flavor.toMachineModel(): MachineModel { - return MachineModel(machine.model.cpu, MemoryUnit("Generic", "Generic", 3200.0, memorySize)) - } - - private var localLastReport = clock.millis() - private var localUptime = 0L - private var localDowntime = 0L - private var localBootTime: Instant? = null - private val localCpuLimit = machine.model.cpu.totalCapacity - - /** - * Helper function to track the uptime of a machine. - */ - private fun updateUptime() { - val now = clock.millis() - val duration = now - localLastReport - localLastReport = now - - if (localState == HostState.UP) { - localUptime += duration - } else if (localState == HostState.ERROR) { - // Only increment downtime if the machine is in a failure state - localDowntime += duration - } - - val guests = localGuests - for (i in guests.indices) { - guests[i].updateUptime() - } - } -} diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimMetaWorkloadMapper.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimMetaWorkloadMapper.kt deleted file mode 100644 index 907f6acdb..000000000 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimMetaWorkloadMapper.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.simulator - -import org.opendc.compute.api.Task -import org.opendc.simulator.compute.workload.SimWorkload - -/** - * A [SimWorkloadMapper] that maps a [Task] to a workload via the meta-data. - */ -public class SimMetaWorkloadMapper(private val key: String = "workload") : SimWorkloadMapper { - override fun createWorkload(task: Task): SimWorkload { - return requireNotNull(task.meta[key] ?: task.image.meta[key]) as SimWorkload - } -} diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimWorkloadMapper.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimWorkloadMapper.kt deleted file mode 100644 index a85091a0f..000000000 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimWorkloadMapper.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.simulator - -import org.opendc.compute.api.Image -import org.opendc.compute.api.Task -import org.opendc.simulator.compute.workload.SimWorkload - -/** - * A [SimWorkloadMapper] is responsible for mapping a [Task] and [Image] to a [SimWorkload] that can be simulated. - */ -public fun interface SimWorkloadMapper { - /** - * Map the specified [task] to a [SimWorkload] that can be simulated. - */ - public fun createWorkload(task: Task): SimWorkload -} diff --git a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/TaskWatcher.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/TaskWatcher.kt similarity index 81% rename from opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/TaskWatcher.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/TaskWatcher.kt index 423d7dec8..9fe4dff5c 100644 --- a/opendc-compute/opendc-compute-api/src/main/kotlin/org/opendc/compute/api/TaskWatcher.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/TaskWatcher.kt @@ -20,20 +20,23 @@ * SOFTWARE. */ -package org.opendc.compute.api +package org.opendc.compute.simulator + +import org.opendc.compute.api.TaskState +import org.opendc.compute.simulator.service.ServiceTask /** - * An interface used to watch the state of [Task] instances. + * An interface used to watch the state of [ServiceTask] instances. */ public interface TaskWatcher { /** - * This method is invoked when the state of a [Task] changes. + * This method is invoked when the state of a [ServiceTask] changes. * * @param task The task whose state has changed. * @param newState The new state of the task. */ public fun onStateChanged( - task: Task, + task: ServiceTask, newState: TaskState, ) {} } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/host/SimHost.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/host/SimHost.kt new file mode 100644 index 000000000..31ff384cf --- /dev/null +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/host/SimHost.kt @@ -0,0 +1,369 @@ +/* + * Copyright (c) 2020 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.compute.simulator.host + +import org.opendc.compute.api.Flavor +import org.opendc.compute.api.TaskState +import org.opendc.compute.simulator.internal.Guest +import org.opendc.compute.simulator.internal.GuestListener +import org.opendc.compute.simulator.service.ServiceTask +import org.opendc.compute.simulator.telemetry.GuestCpuStats +import org.opendc.compute.simulator.telemetry.GuestSystemStats +import org.opendc.compute.simulator.telemetry.HostCpuStats +import org.opendc.compute.simulator.telemetry.HostSystemStats +import org.opendc.simulator.compute.cpu.CpuPowerModel +import org.opendc.simulator.compute.machine.SimMachine +import org.opendc.simulator.compute.models.MachineModel +import org.opendc.simulator.compute.models.MemoryUnit +import org.opendc.simulator.engine.FlowGraph +import java.time.Duration +import java.time.Instant +import java.time.InstantSource +import java.util.UUID + +/** + * A [Host] implementation that simulates virtual machines on a physical machine. + * + * @param uid The unique identifier of the host. + * @param name The name of the host. + * @param meta The metadata of the host. + * @param clock The (virtual) clock used to track time. + * @param graph The Flow Graph that the Host is part of + * @param machineModel The static model of the host + * @param powerModel The static powerModel of the CPU TODO: can this be combined with machinemodel? + * @constructor Create empty Sim host + */ +public class SimHost( + private val uid: UUID, + private val name: String, + private val meta: Map, + private val clock: InstantSource, + private val graph: FlowGraph, + private val machineModel: MachineModel, + private val powerModel: CpuPowerModel, +) : AutoCloseable { + /** + * The event listeners registered with this host. + */ + private val hostListeners = mutableListOf() + + /** + * The virtual machines running on the hypervisor. + */ + private val taskToGuestMap = HashMap() + private val guests = mutableListOf() + + private var hostState: HostState = HostState.DOWN + set(value) { + if (value != field) { + hostListeners.forEach { it.onStateChanged(this, value) } + } + field = value + } + + private val model: HostModel = + HostModel( + machineModel.cpu.totalCapacity, + machineModel.cpu.coreCount, + machineModel.memory.size, + ) + + private var simMachine: SimMachine? = null + + /** + * The [GuestListener] that listens for guest events. + */ + private val guestListener = + object : GuestListener { + override fun onStart(guest: Guest) { + hostListeners.forEach { it.onStateChanged(this@SimHost, guest.task, guest.state) } + } + + override fun onStop(guest: Guest) { + hostListeners.forEach { it.onStateChanged(this@SimHost, guest.task, guest.state) } + } + } + + private var lastReport = clock.millis() + private var totalUptime = 0L + private var totalDowntime = 0L + private var bootTime: Instant? = null + private val cpuLimit = machineModel.cpu.totalCapacity + + init { + launch() + } + + /** + * Launch the hypervisor. + */ + private fun launch() { + bootTime = this.clock.instant() + hostState = HostState.UP + + if (this.simMachine != null) { + return + } + + this.simMachine = + SimMachine( + this.graph, + this.machineModel, + this.powerModel, + ) { cause -> + hostState = if (cause != null) HostState.ERROR else HostState.DOWN + } + } + + override fun close() { + reset(HostState.DOWN) + } + + public fun fail() { + reset(HostState.ERROR) + + // Fail the guest and delete them + // This weird loop is the only way I have been able to make it work. + while (guests.size > 0) { + val guest = guests[0] + guest.fail() + this.delete(guest.task) + } + } + + public fun recover() { + updateUptime() + + launch() + } + + /** + * Reset the machine. + */ + private fun reset(state: HostState) { + updateUptime() + + // Stop the hypervisor + hostState = state + } + + public fun getUid(): UUID { + return uid + } + + public fun getName(): String { + return name + } + + public fun getModel(): HostModel { + return model + } + + public fun getMeta(): Map { + return meta + } + + public fun getState(): HostState { + return hostState + } + + public fun getInstances(): Set { + return taskToGuestMap.keys + } + + public fun getGuests(): List { + return this.guests + } + + public fun canFit(task: ServiceTask): Boolean { + val sufficientMemory = model.memoryCapacity >= task.flavor.memorySize + val enoughCpus = model.coreCount >= task.flavor.coreCount + val canFit = simMachine!!.canFit(task.flavor.toMachineModel()) + + return sufficientMemory && enoughCpus && canFit + } + + /** + * Spawn A Virtual machine that run the Task and put this Task as a Guest on it + * + * @param task + */ + public fun spawn(task: ServiceTask) { + assert(simMachine != null) { "Tried start task $task while no SimMachine is active" } + + require(canFit(task)) { "Task does not fit" } + + val newGuest = + Guest( + clock, + this, + guestListener, + task, + simMachine!!, + ) + + guests.add(newGuest) + newGuest.start() + + taskToGuestMap.computeIfAbsent(task) { newGuest } + } + + public fun contains(task: ServiceTask): Boolean { + return task in taskToGuestMap + } + + public fun start(task: ServiceTask) { + val guest = requireNotNull(taskToGuestMap[task]) { "Unknown task ${task.uid} at host $uid" } + guest.start() + } + + public fun stop(task: ServiceTask) { + val guest = requireNotNull(taskToGuestMap[task]) { "Unknown task ${task.uid} at host $uid" } + guest.stop() + } + + public fun delete(task: ServiceTask) { + val guest = taskToGuestMap[task] ?: return + guest.delete() + + taskToGuestMap.remove(task) + guests.remove(guest) + task.host = null + } + + public fun removeTask(task: ServiceTask) { + val guest = taskToGuestMap[task] ?: return + guest.delete() + + taskToGuestMap.remove(task) + guests.remove(guest) + } + + public fun addListener(listener: HostListener) { + hostListeners.add(listener) + } + + public fun removeListener(listener: HostListener) { + hostListeners.remove(listener) + } + + public fun getSystemStats(): HostSystemStats { + updateUptime() + this.simMachine!!.psu.updateCounters() + + var terminated = 0 + var running = 0 + var failed = 0 + var invalid = 0 + var completed = 0 + + val guests = guests.listIterator() + for (guest in guests) { + when (guest.state) { + TaskState.RUNNING -> running++ + TaskState.COMPLETED, TaskState.FAILED, TaskState.TERMINATED -> { + failed++ + // Remove guests that have been deleted + this.taskToGuestMap.remove(guest.task) + guests.remove() + } + else -> invalid++ + } + } + + return HostSystemStats( + Duration.ofMillis(totalUptime), + Duration.ofMillis(totalDowntime), + bootTime, + simMachine!!.psu.powerDraw, + simMachine!!.psu.energyUsage, + terminated, + running, + failed, + invalid, + ) + } + + public fun getSystemStats(task: ServiceTask): GuestSystemStats { + val guest = requireNotNull(taskToGuestMap[task]) { "Unknown task ${task.uid} at host $uid" } + return guest.getSystemStats() + } + + public fun getCpuStats(): HostCpuStats { + simMachine!!.cpu.updateCounters(this.clock.millis()) + + val counters = simMachine!!.performanceCounters + + return HostCpuStats( + counters.cpuActiveTime, + counters.cpuIdleTime, + counters.cpuStealTime, + counters.cpuLostTime, + counters.cpuCapacity, + counters.cpuDemand, + counters.cpuSupply, + counters.cpuSupply / cpuLimit, + ) + } + + public fun getCpuStats(task: ServiceTask): GuestCpuStats { + val guest = requireNotNull(taskToGuestMap[task]) { "Unknown task ${task.uid} at host $uid" } + return guest.getCpuStats() + } + + override fun hashCode(): Int = uid.hashCode() + + override fun equals(other: Any?): Boolean { + return other is SimHost && uid == other.uid + } + + override fun toString(): String = "SimHost[uid=$uid,name=$name,model=$model]" + + /** + * Convert flavor to machine model. + */ + private fun Flavor.toMachineModel(): MachineModel { + return MachineModel(simMachine!!.machineModel.cpu, MemoryUnit("Generic", "Generic", 3200.0, memorySize)) + } + + /** + * Helper function to track the uptime of a machine. + */ + private fun updateUptime() { + val now = clock.millis() + val duration = now - lastReport + lastReport = now + + if (hostState == HostState.UP) { + totalUptime += duration + } else if (hostState == HostState.ERROR) { + // Only increment downtime if the machine is in a failure state + totalDowntime += duration + } + + val guests = guests + for (i in guests.indices) { + guests[i].updateUptime() + } + } +} diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/DefaultWorkloadMapper.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/DefaultWorkloadMapper.kt deleted file mode 100644 index 412da37fd..000000000 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/DefaultWorkloadMapper.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.simulator.internal - -import org.opendc.compute.api.Task -import org.opendc.compute.simulator.SimMetaWorkloadMapper -import org.opendc.compute.simulator.SimWorkloadMapper -import org.opendc.simulator.compute.workload.SimWorkload -import org.opendc.simulator.compute.workload.SimWorkloads -import java.time.Duration - -/** - * A [SimWorkloadMapper] to introduces a boot delay of 1 ms. This object exists to retain the old behavior while - * introducing the possibility of adding custom boot delays. - */ -internal object DefaultWorkloadMapper : SimWorkloadMapper { - private val delegate = SimMetaWorkloadMapper() - - override fun createWorkload(task: Task): SimWorkload { - val workload = delegate.createWorkload(task) - - // FIXME: look at connecting this to frontend. This does currently not work correctly - val bootWorkload = SimWorkloads.runtime(Duration.ofMillis(0), 1.0, 0L, 0L) - return SimWorkloads.chain(bootWorkload, workload) - } -} diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt index cf6c146a7..3a923222a 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/Guest.kt @@ -23,15 +23,16 @@ package org.opendc.compute.simulator.internal import mu.KotlinLogging -import org.opendc.compute.api.Task import org.opendc.compute.api.TaskState -import org.opendc.compute.service.driver.telemetry.GuestCpuStats -import org.opendc.compute.service.driver.telemetry.GuestSystemStats -import org.opendc.compute.simulator.SimHost -import org.opendc.compute.simulator.SimWorkloadMapper -import org.opendc.simulator.compute.SimMachineContext -import org.opendc.simulator.compute.kernel.SimHypervisor -import org.opendc.simulator.compute.workload.SimWorkload +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ServiceTask +import org.opendc.compute.simulator.telemetry.GuestCpuStats +import org.opendc.compute.simulator.telemetry.GuestSystemStats +import org.opendc.simulator.compute.machine.SimMachine +import org.opendc.simulator.compute.machine.VirtualMachine +import org.opendc.simulator.compute.workload.ChainWorkload +import org.opendc.simulator.compute.workload.TraceFragment +import org.opendc.simulator.compute.workload.TraceWorkload import java.time.Duration import java.time.Instant import java.time.InstantSource @@ -39,14 +40,12 @@ import java.time.InstantSource /** * A virtual machine instance that is managed by a [SimHost]. */ -internal class Guest( +public class Guest( private val clock: InstantSource, - val host: SimHost, - private val hypervisor: SimHypervisor, - private val mapper: SimWorkloadMapper, + public val host: SimHost, private val listener: GuestListener, - val task: Task, - val machine: SimHypervisor.SimVirtualMachine, + public val task: ServiceTask, + public val simMachine: SimMachine, ) { /** * The state of the [Guest]. @@ -54,50 +53,133 @@ internal class Guest( * [TaskState.PROVISIONING] is an invalid value for a guest, since it applies before the host is selected for * a task. */ - var state: TaskState = TaskState.TERMINATED + public var state: TaskState = TaskState.CREATED private set + /** + * The [VirtualMachine] on which the task is currently running + */ + public var virtualMachine: VirtualMachine? = null + + private var uptime = 0L + private var downtime = 0L + private var lastReport = clock.millis() + private var bootTime: Instant? = null + private val cpuLimit = simMachine.cpu.cpuModel.totalCapacity + /** * Start the guest. */ - fun start() { + public fun start() { when (state) { - TaskState.TERMINATED, TaskState.ERROR -> { + TaskState.CREATED, TaskState.FAILED -> { LOGGER.info { "User requested to start task ${task.uid}" } doStart() } TaskState.RUNNING -> return - TaskState.DELETED -> { - LOGGER.warn { "User tried to start deleted task" } - throw IllegalArgumentException("Task is deleted") + TaskState.COMPLETED, TaskState.TERMINATED -> { + LOGGER.warn { "User tried to start a finished task" } + throw IllegalArgumentException("Task is already finished") } else -> assert(false) { "Invalid state transition" } } } + /** + * Launch the guest on the simulated Virtual machine + */ + private fun doStart() { + assert(virtualMachine == null) { "Concurrent job is already running" } + + onStart() + + val bootworkload = + TraceWorkload( + ArrayList( + listOf( + TraceFragment( + 1000000L, + 100000.0, + 1, + ), + ), + ), + 0, + 0, + 0.0, + ) + val newChainWorkload = + ChainWorkload( + ArrayList(listOf(task.workload)), + task.workload.checkpointInterval, + task.workload.checkpointDuration, + task.workload.checkpointIntervalScaling, + ) + + virtualMachine = + simMachine.startWorkload(newChainWorkload) { cause -> + onStop(if (cause != null) TaskState.FAILED else TaskState.COMPLETED) + } + } + + /** + * This method is invoked when the guest was started on the host and has booted into a running state. + */ + private fun onStart() { + bootTime = clock.instant() + state = TaskState.RUNNING + listener.onStart(this) + } + /** * Stop the guest. */ - fun stop() { + public fun stop() { when (state) { - TaskState.RUNNING -> doStop(TaskState.TERMINATED) - TaskState.ERROR -> doRecover() - TaskState.TERMINATED, TaskState.DELETED -> return + TaskState.RUNNING -> doStop(TaskState.COMPLETED) + TaskState.FAILED -> state = TaskState.TERMINATED + TaskState.COMPLETED, TaskState.TERMINATED -> return else -> assert(false) { "Invalid state transition" } } } + /** + * Attempt to stop the task and put it into [target] state. + */ + private fun doStop(target: TaskState) { + assert(virtualMachine != null) { "Invalid job state" } + val virtualMachine = this.virtualMachine ?: return + if (target == TaskState.FAILED) { + virtualMachine.shutdown(Exception("Task has failed")) + } else { + virtualMachine.shutdown() + } + + this.virtualMachine = null + + this.state = target + } + + /** + * This method is invoked when the guest stopped. + */ + private fun onStop(target: TaskState) { + updateUptime() + + state = target + listener.onStop(this) + } + /** * Delete the guest. * * This operation will stop the guest if it is running on the host and remove all resources associated with the * guest. */ - fun delete() { + public fun delete() { stop() - state = TaskState.DELETED - hypervisor.removeMachine(machine) + state = TaskState.FAILED } /** @@ -105,19 +187,19 @@ internal class Guest( * * This operation forcibly stops the guest and puts the task into an error state. */ - fun fail() { + public fun fail() { if (state != TaskState.RUNNING) { return } - doStop(TaskState.ERROR) + doStop(TaskState.FAILED) } /** * Recover the guest if it is in an error state. */ - fun recover() { - if (state != TaskState.ERROR) { + public fun recover() { + if (state != TaskState.FAILED) { return } @@ -127,117 +209,46 @@ internal class Guest( /** * Obtain the system statistics of this guest. */ - fun getSystemStats(): GuestSystemStats { + public fun getSystemStats(): GuestSystemStats { updateUptime() return GuestSystemStats( - Duration.ofMillis(localUptime), - Duration.ofMillis(localDowntime), - localBootTime, + Duration.ofMillis(uptime), + Duration.ofMillis(downtime), + bootTime, ) } /** * Obtain the CPU statistics of this guest. */ - fun getCpuStats(): GuestCpuStats { - val counters = machine.counters - counters.sync() + public fun getCpuStats(): GuestCpuStats { + virtualMachine!!.updateCounters(this.clock.millis()) + val counters = virtualMachine!!.performanceCounters return GuestCpuStats( counters.cpuActiveTime / 1000L, counters.cpuIdleTime / 1000L, counters.cpuStealTime / 1000L, counters.cpuLostTime / 1000L, - machine.cpuCapacity, - machine.cpuUsage, - machine.cpuUsage / localCpuLimit, + counters.cpuCapacity, + counters.cpuSupply, + counters.cpuSupply / cpuLimit, ) } - /** - * The [SimMachineContext] representing the current active virtual machine instance or `null` if no virtual machine - * is active. - */ - private var ctx: SimMachineContext? = null - - /** - * Launch the guest on the simulated - */ - private fun doStart() { - assert(ctx == null) { "Concurrent job running" } - - onStart() - - val workload: SimWorkload = mapper.createWorkload(task) - workload.setOffset(clock.millis()) - val meta = mapOf("driver" to host, "task" to task) + task.meta - ctx = - machine.startWorkload(workload, meta) { cause -> - onStop(if (cause != null) TaskState.ERROR else TaskState.TERMINATED) - ctx = null - } - } - - /** - * Attempt to stop the task and put it into [target] state. - */ - private fun doStop(target: TaskState) { - assert(ctx != null) { "Invalid job state" } - val ctx = ctx ?: return - if (target == TaskState.ERROR) { - ctx.shutdown(Exception("Stopped because of ERROR")) - } else { - ctx.shutdown() - } - - state = target - } - - /** - * Attempt to recover from an error state. - */ - private fun doRecover() { - state = TaskState.TERMINATED - } - - /** - * This method is invoked when the guest was started on the host and has booted into a running state. - */ - private fun onStart() { - localBootTime = clock.instant() - state = TaskState.RUNNING - listener.onStart(this) - } - - /** - * This method is invoked when the guest stopped. - */ - private fun onStop(target: TaskState) { - updateUptime() - - state = target - listener.onStop(this) - } - - private var localUptime = 0L - private var localDowntime = 0L - private var localLastReport = clock.millis() - private var localBootTime: Instant? = null - private val localCpuLimit = machine.model.cpu.totalCapacity - /** * Helper function to track the uptime and downtime of the guest. */ - fun updateUptime() { + public fun updateUptime() { val now = clock.millis() - val duration = now - localLastReport - localLastReport = now + val duration = now - lastReport + lastReport = now if (state == TaskState.RUNNING) { - localUptime += duration - } else if (state == TaskState.ERROR) { - localDowntime += duration + uptime += duration + } else if (state == TaskState.FAILED) { + downtime += duration } } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/GuestListener.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/GuestListener.kt index e6d0fdadb..895d78f9c 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/GuestListener.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/internal/GuestListener.kt @@ -25,14 +25,14 @@ package org.opendc.compute.simulator.internal /** * Helper interface to listen for [Guest] events. */ -internal interface GuestListener { +public interface GuestListener { /** * This method is invoked when the guest machine is running. */ - fun onStart(guest: Guest) + public fun onStart(guest: Guest) /** * This method is invoked when the guest machine is stopped. */ - fun onStop(guest: Guest) + public fun onStop(guest: Guest) } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt index f11237424..f295f522c 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt @@ -23,9 +23,9 @@ package org.opendc.compute.simulator.provisioner import org.opendc.compute.carbon.CarbonTrace -import org.opendc.compute.service.ComputeService -import org.opendc.compute.telemetry.ComputeMetricReader -import org.opendc.compute.telemetry.ComputeMonitor +import org.opendc.compute.simulator.service.ComputeService +import org.opendc.compute.simulator.telemetry.ComputeMetricReader +import org.opendc.compute.simulator.telemetry.ComputeMonitor import java.time.Duration /** @@ -44,7 +44,15 @@ public class ComputeMonitorProvisioningStep( requireNotNull( ctx.registry.resolve(serviceDomain, ComputeService::class.java), ) { "Compute service $serviceDomain does not exist" } - val metricReader = ComputeMetricReader(ctx.dispatcher, service, monitor, exportInterval, startTime, carbonTrace) + val metricReader = + ComputeMetricReader( + ctx.dispatcher, + service, + monitor, + exportInterval, + startTime, + carbonTrace, + ) return AutoCloseable { metricReader.close() } } } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt index 645c9d462..6bdb131f6 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt @@ -22,8 +22,8 @@ package org.opendc.compute.simulator.provisioner -import org.opendc.compute.service.ComputeService -import org.opendc.compute.service.scheduler.ComputeScheduler +import org.opendc.compute.simulator.scheduler.ComputeScheduler +import org.opendc.compute.simulator.service.ComputeService import java.time.Duration /** diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt index afde82190..07db3d26f 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt @@ -25,9 +25,8 @@ package org.opendc.compute.simulator.provisioner import org.opendc.compute.carbon.CarbonTrace -import org.opendc.compute.service.ComputeService -import org.opendc.compute.service.scheduler.ComputeScheduler -import org.opendc.compute.telemetry.ComputeMonitor +import org.opendc.compute.simulator.scheduler.ComputeScheduler +import org.opendc.compute.simulator.telemetry.ComputeMonitor import org.opendc.compute.topology.specs.HostSpec import java.time.Duration @@ -41,7 +40,7 @@ import java.time.Duration public fun setupComputeService( serviceDomain: String, scheduler: (ProvisioningContext) -> ComputeScheduler, - schedulingQuantum: Duration = Duration.ofMinutes(5), + schedulingQuantum: Duration = Duration.ofSeconds(1), maxNumFailures: Int = 10, ): ProvisioningStep { return ComputeServiceProvisioningStep(serviceDomain, scheduler, schedulingQuantum, maxNumFailures) @@ -76,7 +75,6 @@ public fun registerComputeMonitor( public fun setupHosts( serviceDomain: String, specs: List, - optimize: Boolean = false, ): ProvisioningStep { - return HostsProvisioningStep(serviceDomain, specs, optimize) + return HostsProvisioningStep(serviceDomain, specs) } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/HostsProvisioningStep.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/HostsProvisioningStep.kt index a80be634e..19674d5e0 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/HostsProvisioningStep.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/HostsProvisioningStep.kt @@ -22,13 +22,10 @@ package org.opendc.compute.simulator.provisioner -import org.opendc.compute.service.ComputeService -import org.opendc.compute.simulator.SimHost +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService import org.opendc.compute.topology.specs.HostSpec -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.kernel.SimHypervisor -import org.opendc.simulator.flow2.FlowEngine -import java.util.SplittableRandom +import org.opendc.simulator.engine.FlowEngine /** * A [ProvisioningStep] that provisions a list of hosts for a [ComputeService]. @@ -40,30 +37,27 @@ import java.util.SplittableRandom public class HostsProvisioningStep internal constructor( private val serviceDomain: String, private val specs: List, - private val optimize: Boolean, ) : ProvisioningStep { override fun apply(ctx: ProvisioningContext): AutoCloseable { val service = requireNotNull( ctx.registry.resolve(serviceDomain, ComputeService::class.java), ) { "Compute service $serviceDomain does not exist" } - val engine = FlowEngine.create(ctx.dispatcher) - val graph = engine.newGraph() val hosts = mutableSetOf() - for (spec in specs) { - val machine = SimBareMetalMachine.create(graph, spec.model, spec.psuFactory) - val hypervisor = SimHypervisor.create(spec.multiplexerFactory, SplittableRandom(ctx.seeder.nextLong())) + val flowEngine = FlowEngine.create(ctx.dispatcher) + val flowGraph = flowEngine.newGraph() + for (spec in specs) { val host = SimHost( spec.uid, spec.name, spec.meta, ctx.dispatcher.timeSource, - machine, - hypervisor, - optimize = optimize, + flowGraph, + spec.model, + spec.cpuPowerModel, ) require(hosts.add(host)) { "Host with uid ${spec.uid} already exists" } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt index 58d3a8c29..2e76478e3 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt @@ -23,9 +23,7 @@ package org.opendc.compute.simulator.provisioner import org.opendc.common.Dispatcher -import org.opendc.compute.simulator.MutableServiceRegistry import org.opendc.compute.simulator.ServiceRegistry -import org.opendc.compute.simulator.ServiceRegistryImpl import java.util.ArrayDeque import java.util.SplittableRandom @@ -47,7 +45,7 @@ public class Provisioner(dispatcher: Dispatcher, seed: Long) : AutoCloseable { object : ProvisioningContext { override val dispatcher: Dispatcher = dispatcher override val seeder: SplittableRandom = SplittableRandom(seed) - override val registry: MutableServiceRegistry = ServiceRegistryImpl() + override val registry: ServiceRegistry = ServiceRegistry() override fun toString(): String = "Provisioner.ProvisioningContext" } diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ProvisioningContext.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ProvisioningContext.kt index 1788c8e25..20c441c46 100644 --- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ProvisioningContext.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ProvisioningContext.kt @@ -23,7 +23,7 @@ package org.opendc.compute.simulator.provisioner import org.opendc.common.Dispatcher -import org.opendc.compute.simulator.MutableServiceRegistry +import org.opendc.compute.simulator.ServiceRegistry import java.util.SplittableRandom import java.util.random.RandomGenerator @@ -44,7 +44,7 @@ public interface ProvisioningContext { public val seeder: RandomGenerator /** - * A [MutableServiceRegistry] where the provisioned services are registered. + * A [ServiceRegistry] where the provisioned services are registered. */ - public val registry: MutableServiceRegistry + public val registry: ServiceRegistry } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ComputeScheduler.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeScheduler.kt similarity index 87% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ComputeScheduler.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeScheduler.kt index 42de9ebc6..f0a2c3b47 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ComputeScheduler.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeScheduler.kt @@ -20,14 +20,13 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler +package org.opendc.compute.simulator.scheduler -import org.opendc.compute.api.Task -import org.opendc.compute.service.ComputeService -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** - * A generic scheduler interface used by the [ComputeService] to select hosts to place [Task]s on. + * A generic scheduler interface used by the [ComputeService] to select hosts to place [ServiceTask]s on. */ public interface ComputeScheduler { /** @@ -46,5 +45,5 @@ public interface ComputeScheduler { * @param task The server to select a host for. * @return The host to schedule the server on or `null` if no server is available. */ - public fun select(task: Task): HostView? + public fun select(task: ServiceTask): HostView? } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ComputeSchedulers.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt similarity index 89% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ComputeSchedulers.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt index 7fcc670fb..ec3aedcbe 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ComputeSchedulers.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt @@ -22,15 +22,15 @@ @file:JvmName("ComputeSchedulers") -package org.opendc.compute.service.scheduler +package org.opendc.compute.simulator.scheduler -import org.opendc.compute.service.scheduler.filters.ComputeFilter -import org.opendc.compute.service.scheduler.filters.RamFilter -import org.opendc.compute.service.scheduler.filters.VCpuFilter -import org.opendc.compute.service.scheduler.weights.CoreRamWeigher -import org.opendc.compute.service.scheduler.weights.InstanceCountWeigher -import org.opendc.compute.service.scheduler.weights.RamWeigher -import org.opendc.compute.service.scheduler.weights.VCpuWeigher +import org.opendc.compute.simulator.scheduler.filters.ComputeFilter +import org.opendc.compute.simulator.scheduler.filters.RamFilter +import org.opendc.compute.simulator.scheduler.filters.VCpuFilter +import org.opendc.compute.simulator.scheduler.weights.CoreRamWeigher +import org.opendc.compute.simulator.scheduler.weights.InstanceCountWeigher +import org.opendc.compute.simulator.scheduler.weights.RamWeigher +import org.opendc.compute.simulator.scheduler.weights.VCpuWeigher import java.util.SplittableRandom import java.util.random.RandomGenerator diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/FilterScheduler.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/FilterScheduler.kt similarity index 90% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/FilterScheduler.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/FilterScheduler.kt index 772a470d0..9fd3a8623 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/FilterScheduler.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/FilterScheduler.kt @@ -20,19 +20,19 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler +package org.opendc.compute.simulator.scheduler -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView -import org.opendc.compute.service.scheduler.filters.HostFilter -import org.opendc.compute.service.scheduler.weights.HostWeigher +import org.opendc.compute.simulator.scheduler.filters.HostFilter +import org.opendc.compute.simulator.scheduler.weights.HostWeigher +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask import java.util.SplittableRandom import java.util.random.RandomGenerator import kotlin.math.min /** * A [ComputeScheduler] implementation that uses filtering and weighing passes to select - * the host to schedule a [Task] on. + * the host to schedule a [ServiceTask] on. * * This implementation is based on the filter scheduler from OpenStack Nova. * See: https://docs.openstack.org/nova/latest/user/filter-scheduler.html @@ -65,7 +65,7 @@ public class FilterScheduler( hosts.remove(host) } - override fun select(task: Task): HostView? { + override fun select(task: ServiceTask): HostView? { val hosts = hosts val filteredHosts = hosts.filter { host -> filters.all { filter -> filter.test(host, task) } } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ReplayScheduler.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ReplayScheduler.kt similarity index 88% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ReplayScheduler.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ReplayScheduler.kt index d1690ddf1..43e366d9a 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/ReplayScheduler.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ReplayScheduler.kt @@ -20,11 +20,11 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler +package org.opendc.compute.simulator.scheduler import mu.KotlinLogging -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * Policy replaying VM-cluster assignment. @@ -48,11 +48,11 @@ public class ReplayScheduler(private val vmPlacements: Map) : Co hosts.remove(host) } - override fun select(task: Task): HostView? { + override fun select(task: ServiceTask): HostView? { val clusterName = vmPlacements[task.name] ?: throw IllegalStateException("Could not find placement data in VM placement file for VM ${task.name}") - val machinesInCluster = hosts.filter { it.host.name.contains(clusterName) } + val machinesInCluster = hosts.filter { it.host.getName().contains(clusterName) } if (machinesInCluster.isEmpty()) { logger.info { "Could not find any machines belonging to cluster $clusterName for image ${task.name}, assigning randomly." } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/ComputeFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/ComputeFilter.kt similarity index 82% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/ComputeFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/ComputeFilter.kt index 2ad626f32..99a9390ec 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/ComputeFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/ComputeFilter.kt @@ -20,11 +20,11 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView -import org.opendc.compute.service.driver.HostState +import org.opendc.compute.simulator.host.HostState +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A [HostFilter] that filters on active hosts. @@ -32,9 +32,9 @@ import org.opendc.compute.service.driver.HostState public class ComputeFilter : HostFilter { override fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean { - val result = host.host.state == HostState.UP + val result = host.host.getState() == HostState.UP return result } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/DifferentHostFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/DifferentHostFilter.kt similarity index 85% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/DifferentHostFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/DifferentHostFilter.kt index ffafeaa93..279a2717c 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/DifferentHostFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/DifferentHostFilter.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask import java.util.UUID /** @@ -32,10 +32,10 @@ import java.util.UUID public class DifferentHostFilter : HostFilter { override fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean { @Suppress("UNCHECKED_CAST") val affinityUUIDs = task.meta["scheduler_hint:different_host"] as? Set ?: return true - return host.host.instances.none { it.uid in affinityUUIDs } + return host.host.getInstances().none { it.uid in affinityUUIDs } } } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/HostFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/HostFilter.kt similarity index 87% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/HostFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/HostFilter.kt index f506127ab..bb9c1cbf6 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/HostFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/HostFilter.kt @@ -20,11 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView -import org.opendc.compute.service.scheduler.FilterScheduler +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A filter used by the [FilterScheduler] to filter hosts. @@ -36,6 +35,6 @@ public fun interface HostFilter { */ public fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/InstanceCountFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/InstanceCountFilter.kt similarity index 88% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/InstanceCountFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/InstanceCountFilter.kt index 7d5eb4009..53d68acfc 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/InstanceCountFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/InstanceCountFilter.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A [HostFilter] that filters hosts based on the number of instances on the host. @@ -33,7 +33,7 @@ import org.opendc.compute.service.HostView public class InstanceCountFilter(private val limit: Int) : HostFilter { override fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean { return host.instanceCount < limit } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/RamFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/RamFilter.kt similarity index 85% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/RamFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/RamFilter.kt index 0a28ccc63..0b570d52c 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/RamFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/RamFilter.kt @@ -20,24 +20,24 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** - * A [HostFilter] that filters hosts based on the memory requirements of a [Task] and the RAM available on the host. + * A [HostFilter] that filters hosts based on the memory requirements of a [ServiceTask] and the RAM available on the host. * * @param allocationRatio Virtual RAM to physical RAM allocation ratio. */ public class RamFilter(private val allocationRatio: Double) : HostFilter { override fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean { val requestedMemory = task.flavor.memorySize val availableMemory = host.availableMemory - val memoryCapacity = host.host.model.memoryCapacity + val memoryCapacity = host.host.getModel().memoryCapacity // Do not allow an instance to overcommit against itself, only against // other instances. diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/SameHostFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/SameHostFilter.kt similarity index 85% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/SameHostFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/SameHostFilter.kt index d8634285c..761b125d8 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/SameHostFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/SameHostFilter.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask import java.util.UUID /** @@ -32,10 +32,10 @@ import java.util.UUID public class SameHostFilter : HostFilter { override fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean { @Suppress("UNCHECKED_CAST") val affinityUUIDs = task.meta["scheduler_hint:same_host"] as? Set ?: return true - return host.host.instances.any { it.uid in affinityUUIDs } + return host.host.getInstances().any { it.uid in affinityUUIDs } } } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/VCpuCapacityFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/VCpuCapacityFilter.kt similarity index 83% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/VCpuCapacityFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/VCpuCapacityFilter.kt index 5af7ccf0a..256caa94f 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/VCpuCapacityFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/VCpuCapacityFilter.kt @@ -20,23 +20,22 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** - * A [HostFilter] that filters hosts based on the vCPU speed requirements of a [Task] and the available + * A [HostFilter] that filters hosts based on the vCPU speed requirements of a [ServiceTask] and the available * capacity on the host. */ public class VCpuCapacityFilter : HostFilter { override fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean { val requiredCapacity = task.flavor.meta["cpu-capacity"] as? Double - val hostModel = host.host.model - val availableCapacity = hostModel.cpuCapacity + val availableCapacity = host.host.getModel().cpuCapacity return requiredCapacity == null || availableCapacity >= (requiredCapacity / task.flavor.coreCount) } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/VCpuFilter.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/VCpuFilter.kt similarity index 85% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/VCpuFilter.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/VCpuFilter.kt index 442e58f64..c179a7bfc 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/filters/VCpuFilter.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/filters/VCpuFilter.kt @@ -20,23 +20,23 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.filters +package org.opendc.compute.simulator.scheduler.filters -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** - * A [HostFilter] that filters hosts based on the vCPU requirements of a [Task] and the available vCPUs on the host. + * A [HostFilter] that filters hosts based on the vCPU requirements of a [ServiceTask] and the available vCPUs on the host. * * @param allocationRatio Virtual CPU to physical CPU allocation ratio. */ public class VCpuFilter(private val allocationRatio: Double) : HostFilter { override fun test( host: HostView, - task: Task, + task: ServiceTask, ): Boolean { val requested = task.flavor.coreCount - val totalCores = host.host.model.coreCount + val totalCores = host.host.getModel().coreCount val limit = totalCores * allocationRatio // Do not allow an instance to overcommit against itself, only against other instances diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/CoreRamWeigher.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/CoreRamWeigher.kt similarity index 90% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/CoreRamWeigher.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/CoreRamWeigher.kt index 6e320bf48..b6c43c109 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/CoreRamWeigher.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/CoreRamWeigher.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.weights +package org.opendc.compute.simulator.scheduler.weights -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A [HostWeigher] that weighs the hosts based on the available memory per core on the host. @@ -35,7 +35,7 @@ import org.opendc.compute.service.HostView public class CoreRamWeigher(override val multiplier: Double = 1.0) : HostWeigher { override fun getWeight( host: HostView, - task: Task, + task: ServiceTask, ): Double { return host.availableMemory.toDouble() } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/HostWeigher.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/HostWeigher.kt similarity index 90% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/HostWeigher.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/HostWeigher.kt index 3f2c41237..c1e0c5900 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/HostWeigher.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/HostWeigher.kt @@ -20,11 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.weights +package org.opendc.compute.simulator.scheduler.weights -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView -import org.opendc.compute.service.scheduler.FilterScheduler +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * An interface used by the [FilterScheduler] to weigh the pool of host for a scheduling request. @@ -36,11 +35,11 @@ public interface HostWeigher { public val multiplier: Double /** - * Obtain the weight of the specified [host] when scheduling the specified [task]. + * Obtain the weight of the specified [host] when scheduling the specified [ServiceTask]. */ public fun getWeight( host: HostView, - task: Task, + task: ServiceTask, ): Double /** @@ -48,7 +47,7 @@ public interface HostWeigher { */ public fun getWeights( hosts: List, - task: Task, + task: ServiceTask, ): Result { val weights = DoubleArray(hosts.size) var min = Double.MAX_VALUE diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/InstanceCountWeigher.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/InstanceCountWeigher.kt similarity index 88% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/InstanceCountWeigher.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/InstanceCountWeigher.kt index 0789f1097..9277c1aec 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/InstanceCountWeigher.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/InstanceCountWeigher.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.weights +package org.opendc.compute.simulator.scheduler.weights -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A [HostWeigher] that weighs the hosts based on the number of instances on the host. @@ -31,7 +31,7 @@ import org.opendc.compute.service.HostView public class InstanceCountWeigher(override val multiplier: Double = 1.0) : HostWeigher { override fun getWeight( host: HostView, - task: Task, + task: ServiceTask, ): Double { return host.instanceCount.toDouble() } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/RamWeigher.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/RamWeigher.kt similarity index 89% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/RamWeigher.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/RamWeigher.kt index fb03d0643..1cbfea59b 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/RamWeigher.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/RamWeigher.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.weights +package org.opendc.compute.simulator.scheduler.weights -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A [HostWeigher] that weighs the hosts based on the available RAM (memory) on the host. @@ -34,7 +34,7 @@ import org.opendc.compute.service.HostView public class RamWeigher(override val multiplier: Double = 1.0) : HostWeigher { override fun getWeight( host: HostView, - task: Task, + task: ServiceTask, ): Double { return host.availableMemory.toDouble() } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/VCpuCapacityWeigher.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/VCpuCapacityWeigher.kt similarity index 87% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/VCpuCapacityWeigher.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/VCpuCapacityWeigher.kt index 5f99cab3c..4f52e11a1 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/VCpuCapacityWeigher.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/VCpuCapacityWeigher.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.weights +package org.opendc.compute.simulator.scheduler.weights -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A [HostWeigher] that weighs the hosts based on the difference required vCPU capacity and the available CPU capacity. @@ -31,9 +31,9 @@ import org.opendc.compute.service.HostView public class VCpuCapacityWeigher(override val multiplier: Double = 1.0) : HostWeigher { override fun getWeight( host: HostView, - task: Task, + task: ServiceTask, ): Double { - val model = host.host.model + val model = host.host.getModel() val requiredCapacity = task.flavor.meta["cpu-capacity"] as? Double ?: 0.0 return model.cpuCapacity - requiredCapacity / task.flavor.coreCount } diff --git a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/VCpuWeigher.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/VCpuWeigher.kt similarity index 89% rename from opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/VCpuWeigher.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/VCpuWeigher.kt index 0c3d9c217..3f9a7f03e 100644 --- a/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/scheduler/weights/VCpuWeigher.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/weights/VCpuWeigher.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.service.scheduler.weights +package org.opendc.compute.simulator.scheduler.weights -import org.opendc.compute.api.Task -import org.opendc.compute.service.HostView +import org.opendc.compute.simulator.service.HostView +import org.opendc.compute.simulator.service.ServiceTask /** * A [HostWeigher] that weighs the hosts based on the remaining number of vCPUs available. @@ -37,7 +37,7 @@ public class VCpuWeigher(private val allocationRatio: Double, override val multi override fun getWeight( host: HostView, - task: Task, + task: ServiceTask, ): Double { return allocationRatio - host.provisionedCores } diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/ComputeMetricReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt similarity index 75% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/ComputeMetricReader.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt index 56cda31c7..d5fb991d5 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/ComputeMetricReader.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry +package org.opendc.compute.simulator.telemetry import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.delay @@ -29,16 +29,16 @@ import kotlinx.coroutines.launch import mu.KotlinLogging import org.opendc.common.Dispatcher import org.opendc.common.asCoroutineDispatcher -import org.opendc.compute.api.Task import org.opendc.compute.api.TaskState import org.opendc.compute.carbon.CarbonTrace -import org.opendc.compute.service.ComputeService -import org.opendc.compute.service.driver.Host -import org.opendc.compute.telemetry.table.HostInfo -import org.opendc.compute.telemetry.table.HostTableReader -import org.opendc.compute.telemetry.table.ServiceTableReader -import org.opendc.compute.telemetry.table.TaskInfo -import org.opendc.compute.telemetry.table.TaskTableReader +import org.opendc.compute.simulator.host.SimHost +import org.opendc.compute.simulator.service.ComputeService +import org.opendc.compute.simulator.service.ServiceTask +import org.opendc.compute.simulator.telemetry.table.HostInfo +import org.opendc.compute.simulator.telemetry.table.HostTableReader +import org.opendc.compute.simulator.telemetry.table.ServiceTableReader +import org.opendc.compute.simulator.telemetry.table.TaskInfo +import org.opendc.compute.simulator.telemetry.table.TaskTableReader import java.time.Duration import java.time.Instant @@ -66,17 +66,23 @@ public class ComputeMetricReader( /** * Aggregator for service metrics. */ - private val serviceTableReader = ServiceTableReaderImpl(service, startTime) + private val serviceTableReader = + ServiceTableReaderImpl( + service, + startTime, + ) + + private var loggCounter = 0 /** * Mapping from [Host] instances to [HostTableReaderImpl] */ - private val hostTableReaders = mutableMapOf() + private val hostTableReaders = mutableMapOf() /** * Mapping from [Task] instances to [TaskTableReaderImpl] */ - private val taskTableReaders = mutableMapOf() + private val taskTableReaders = mutableMapOf() /** * The background job that is responsible for collecting the metrics every cycle. @@ -100,25 +106,57 @@ public class ComputeMetricReader( } private fun loggState() { + loggCounter++ try { val now = this.clock.instant() for (host in this.service.hosts) { - val reader = this.hostTableReaders.computeIfAbsent(host) { HostTableReaderImpl(it, startTime, carbonTrace) } + val reader = + this.hostTableReaders.computeIfAbsent(host) { + HostTableReaderImpl( + it, + startTime, + carbonTrace, + ) + } reader.record(now) this.monitor.record(reader.copy()) reader.reset() } for (task in this.service.tasks) { - val reader = this.taskTableReaders.computeIfAbsent(task) { TaskTableReaderImpl(service, it, startTime) } + val reader = + this.taskTableReaders.computeIfAbsent(task) { + TaskTableReaderImpl( + service, + it, + startTime, + ) + } reader.record(now) this.monitor.record(reader.copy()) reader.reset() } + for (task in this.service.tasksToRemove) { + task.delete() + } + this.service.clearTasksToRemove() + this.serviceTableReader.record(now) monitor.record(this.serviceTableReader.copy()) + + if (loggCounter >= 100) { + var loggString = "\n\t\t\t\t\tMetrics after ${now.toEpochMilli() / 1000 / 60 / 60} hours:\n" + loggString += "\t\t\t\t\t\tTasks Total: ${this.serviceTableReader.tasksTotal}\n" + loggString += "\t\t\t\t\t\tTasks Active: ${this.serviceTableReader.tasksActive}\n" + loggString += "\t\t\t\t\t\tTasks Pending: ${this.serviceTableReader.tasksPending}\n" + loggString += "\t\t\t\t\t\tTasks Completed: ${this.serviceTableReader.tasksCompleted}\n" + loggString += "\t\t\t\t\t\tTasks Terminated: ${this.serviceTableReader.tasksTerminated}\n" + + this.logger.warn { loggString } + loggCounter = 0 + } } catch (cause: Throwable) { this.logger.warn(cause) { "Exporter threw an Exception" } } @@ -136,7 +174,10 @@ public class ComputeMetricReader( private val startTime: Duration = Duration.ofMillis(0), ) : ServiceTableReader { override fun copy(): ServiceTableReader { - val newServiceTable = ServiceTableReaderImpl(service) + val newServiceTable = + ServiceTableReaderImpl( + service, + ) newServiceTable.setValues(this) return newServiceTable @@ -151,9 +192,10 @@ public class ComputeMetricReader( _tasksTotal = table.tasksTotal _tasksPending = table.tasksPending _tasksActive = table.tasksActive + _tasksCompleted = table.tasksCompleted + _tasksTerminated = table.tasksTerminated _attemptsSuccess = table.attemptsSuccess _attemptsFailure = table.attemptsFailure - _attemptsError = table.attemptsError } private var _timestamp: Instant = Instant.MIN @@ -180,10 +222,18 @@ public class ComputeMetricReader( get() = _tasksPending private var _tasksPending = 0 + override val tasksCompleted: Int + get() = _tasksCompleted + private var _tasksCompleted = 0 + override val tasksActive: Int get() = _tasksActive private var _tasksActive = 0 + override val tasksTerminated: Int + get() = _tasksTerminated + private var _tasksTerminated = 0 + override val attemptsSuccess: Int get() = _attemptsSuccess private var _attemptsSuccess = 0 @@ -192,10 +242,6 @@ public class ComputeMetricReader( get() = _attemptsFailure private var _attemptsFailure = 0 - override val attemptsError: Int - get() = _attemptsError - private var _attemptsError = 0 - /** * Record the next cycle. */ @@ -208,10 +254,11 @@ public class ComputeMetricReader( _hostsDown = stats.hostsUnavailable _tasksTotal = stats.tasksTotal _tasksPending = stats.tasksPending + _tasksCompleted = stats.tasksCompleted _tasksActive = stats.tasksActive + _tasksTerminated = stats.tasksTerminated _attemptsSuccess = stats.attemptsSuccess.toInt() _attemptsFailure = stats.attemptsFailure.toInt() - _attemptsError = stats.attemptsError.toInt() } } @@ -219,12 +266,13 @@ public class ComputeMetricReader( * An aggregator for host metrics before they are reported. */ private class HostTableReaderImpl( - host: Host, + host: SimHost, private val startTime: Duration = Duration.ofMillis(0), private val carbonTrace: CarbonTrace = CarbonTrace(null), ) : HostTableReader { override fun copy(): HostTableReader { - val newHostTable = HostTableReaderImpl(_host) + val newHostTable = + HostTableReaderImpl(_host) newHostTable.setValues(this) return newHostTable @@ -259,7 +307,14 @@ public class ComputeMetricReader( private val _host = host override val host: HostInfo = - HostInfo(host.uid.toString(), host.name, "x86", host.model.coreCount, host.model.cpuCapacity, host.model.memoryCapacity) + HostInfo( + host.getUid().toString(), + host.getName(), + "x86", + host.getModel().coreCount, + host.getModel().cpuCapacity, + host.getModel().memoryCapacity, + ) override val timestamp: Instant get() = _timestamp @@ -285,21 +340,21 @@ public class ComputeMetricReader( get() = _guestsInvalid private var _guestsInvalid = 0 - override val cpuLimit: Double + override val cpuLimit: Float get() = _cpuLimit - private var _cpuLimit = 0.0 + private var _cpuLimit = 0.0f - override val cpuUsage: Double + override val cpuUsage: Float get() = _cpuUsage - private var _cpuUsage = 0.0 + private var _cpuUsage = 0.0f - override val cpuDemand: Double + override val cpuDemand: Float get() = _cpuDemand - private var _cpuDemand = 0.0 + private var _cpuDemand = 0.0f - override val cpuUtilization: Double + override val cpuUtilization: Float get() = _cpuUtilization - private var _cpuUtilization = 0.0 + private var _cpuUtilization = 0.0f override val cpuActiveTime: Long get() = _cpuActiveTime - previousCpuActiveTime @@ -321,22 +376,22 @@ public class ComputeMetricReader( private var _cpuLostTime = 0L private var previousCpuLostTime = 0L - override val powerDraw: Double + override val powerDraw: Float get() = _powerDraw - private var _powerDraw = 0.0 + private var _powerDraw = 0.0f - override val energyUsage: Double - get() = _energyUsage - previousPowerTotal - private var _energyUsage = 0.0 - private var previousPowerTotal = 0.0 + override val energyUsage: Float + get() = _energyUsage - previousEnergyUsage + private var _energyUsage = 0.0f + private var previousEnergyUsage = 0.0f - override val carbonIntensity: Double + override val carbonIntensity: Float get() = _carbonIntensity - private var _carbonIntensity = 0.0 + private var _carbonIntensity = 0.0f - override val carbonEmission: Double + override val carbonEmission: Float get() = _carbonEmission - private var _carbonEmission = 0.0 + private var _carbonEmission = 0.0f override val uptime: Long get() = _uptime - previousUptime @@ -382,7 +437,7 @@ public class ComputeMetricReader( _energyUsage = hostSysStats.energyUsage _carbonIntensity = carbonTrace.getCarbonIntensity(timestampAbsolute) - _carbonEmission = carbonIntensity * (energyUsage / 3600000.0) // convert energy usage from J to kWh + _carbonEmission = carbonIntensity * (energyUsage / 3600000.0f) // convert energy usage from J to kWh _uptime = hostSysStats.uptime.toMillis() _downtime = hostSysStats.downtime.toMillis() _bootTime = hostSysStats.bootTime @@ -398,7 +453,7 @@ public class ComputeMetricReader( previousCpuIdleTime = _cpuIdleTime previousCpuStealTime = _cpuStealTime previousCpuLostTime = _cpuLostTime - previousPowerTotal = _energyUsage + previousEnergyUsage = _energyUsage previousUptime = _uptime previousDowntime = _downtime @@ -407,15 +462,15 @@ public class ComputeMetricReader( _guestsError = 0 _guestsInvalid = 0 - _cpuLimit = 0.0 - _cpuUsage = 0.0 - _cpuDemand = 0.0 - _cpuUtilization = 0.0 + _cpuLimit = 0.0f + _cpuUsage = 0.0f + _cpuDemand = 0.0f + _cpuUtilization = 0.0f - _powerDraw = 0.0 - _energyUsage = 0.0 - _carbonIntensity = 0.0 - _carbonEmission = 0.0 + _powerDraw = 0.0f + _energyUsage = 0.0f + _carbonIntensity = 0.0f + _carbonEmission = 0.0f } } @@ -424,11 +479,15 @@ public class ComputeMetricReader( */ private class TaskTableReaderImpl( private val service: ComputeService, - private val task: Task, + private val task: ServiceTask, private val startTime: Duration = Duration.ofMillis(0), ) : TaskTableReader { override fun copy(): TaskTableReader { - val newTaskTable = TaskTableReaderImpl(service, task) + val newTaskTable = + TaskTableReaderImpl( + service, + task, + ) newTaskTable.setValues(this) return newTaskTable @@ -451,6 +510,9 @@ public class ComputeMetricReader( _bootTime = table.bootTime _bootTimeAbsolute = table.bootTimeAbsolute + _creationTime = table.creationTime + _finishTime = table.finishTime + _taskState = table.taskState } @@ -463,8 +525,6 @@ public class ComputeMetricReader( task.name, "vm", "x86", - task.image.uid.toString(), - task.image.name, task.flavor.coreCount, task.flavor.memorySize, ) @@ -473,7 +533,7 @@ public class ComputeMetricReader( * The [HostInfo] of the host on which the task is hosted. */ override var host: HostInfo? = null - private var _host: Host? = null + private var _host: SimHost? = null private var _timestamp = Instant.MIN override val timestamp: Instant @@ -501,9 +561,17 @@ public class ComputeMetricReader( get() = _bootTime private var _bootTime: Instant? = null - override val cpuLimit: Double + override val creationTime: Instant? + get() = _creationTime + private var _creationTime: Instant? = null + + override val finishTime: Instant? + get() = _finishTime + private var _finishTime: Instant? = null + + override val cpuLimit: Float get() = _cpuLimit - private var _cpuLimit = 0.0 + private var _cpuLimit = 0.0f override val cpuActiveTime: Long get() = _cpuActiveTime - previousCpuActiveTime @@ -538,16 +606,16 @@ public class ComputeMetricReader( */ fun record(now: Instant) { val newHost = service.lookupHost(task) - if (newHost != null && newHost.uid != _host?.uid) { + if (newHost != null && newHost.getUid() != _host?.getUid()) { _host = newHost host = HostInfo( - newHost.uid.toString(), - newHost.name, + newHost.getUid().toString(), + newHost.getName(), "x86", - newHost.model.coreCount, - newHost.model.cpuCapacity, - newHost.model.memoryCapacity, + newHost.getModel().coreCount, + newHost.getModel().cpuCapacity, + newHost.getModel().memoryCapacity, ) } @@ -557,7 +625,7 @@ public class ComputeMetricReader( _timestamp = now _timestampAbsolute = now + startTime - _cpuLimit = cpuStats?.capacity ?: 0.0 + _cpuLimit = cpuStats?.capacity ?: 0.0f _cpuActiveTime = cpuStats?.activeTime ?: 0 _cpuIdleTime = cpuStats?.idleTime ?: 0 _cpuStealTime = cpuStats?.stealTime ?: 0 @@ -566,6 +634,8 @@ public class ComputeMetricReader( _downtime = sysStats?.downtime?.toMillis() ?: 0 _provisionTime = task.launchedAt _bootTime = sysStats?.bootTime + _creationTime = task.createdAt + _finishTime = task.finishedAt _taskState = task.state @@ -588,7 +658,7 @@ public class ComputeMetricReader( previousCpuLostTime = _cpuLostTime _host = null - _cpuLimit = 0.0 + _cpuLimit = 0.0f } } } diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/ComputeMonitor.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMonitor.kt similarity index 86% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/ComputeMonitor.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMonitor.kt index 1df058fb2..534bcc09d 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/ComputeMonitor.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMonitor.kt @@ -20,11 +20,11 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry +package org.opendc.compute.simulator.telemetry -import org.opendc.compute.telemetry.table.HostTableReader -import org.opendc.compute.telemetry.table.ServiceTableReader -import org.opendc.compute.telemetry.table.TaskTableReader +import org.opendc.compute.simulator.telemetry.table.HostTableReader +import org.opendc.compute.simulator.telemetry.table.ServiceTableReader +import org.opendc.compute.simulator.telemetry.table.TaskTableReader /** * A monitor that tracks the metrics and events of the OpenDC Compute service. diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/ComputeExportConfig.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt similarity index 90% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/ComputeExportConfig.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt index 161c09363..3f220ad13 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/ComputeExportConfig.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ComputeExportConfig.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.export.parquet +package org.opendc.compute.simulator.telemetry.parquet import kotlinx.serialization.KSerializer import kotlinx.serialization.Serializable @@ -35,9 +35,9 @@ import kotlinx.serialization.json.JsonDecoder import kotlinx.serialization.json.JsonElement import kotlinx.serialization.json.jsonObject import org.opendc.common.logger.logger -import org.opendc.compute.telemetry.table.HostTableReader -import org.opendc.compute.telemetry.table.ServiceTableReader -import org.opendc.compute.telemetry.table.TaskTableReader +import org.opendc.compute.simulator.telemetry.table.HostTableReader +import org.opendc.compute.simulator.telemetry.table.ServiceTableReader +import org.opendc.compute.simulator.telemetry.table.TaskTableReader import org.opendc.trace.util.parquet.exporter.ColListSerializer import org.opendc.trace.util.parquet.exporter.ExportColumn import org.opendc.trace.util.parquet.exporter.Exportable @@ -97,7 +97,7 @@ public data class ComputeExportConfig( * columns for [HostTableReader], [TaskTableReader] and [ServiceTableReader]. */ public val ALL_COLUMNS: ComputeExportConfig by lazy { - loadDfltColumns() + ComputeExportConfig.Companion.loadDfltColumns() ComputeExportConfig( hostExportColumns = ExportColumn.getAllLoadedColumns(), taskExportColumns = ExportColumn.getAllLoadedColumns(), @@ -135,7 +135,7 @@ public data class ComputeExportConfig( } // Loads the default columns so that they are available for deserialization. - loadDfltColumns() + ComputeExportConfig.Companion.loadDfltColumns() val elem = jsonDec.decodeJsonElement().jsonObject val hostFields: List> = elem["hostExportColumns"].toFieldList() @@ -153,21 +153,21 @@ public data class ComputeExportConfig( encoder: Encoder, value: ComputeExportConfig, ) { - encoder.encodeStructure(descriptor) { + encoder.encodeStructure(ComputeExportConfig.Companion.ComputeExportConfigSerializer.descriptor) { encodeSerializableElement( - descriptor, + ComputeExportConfig.Companion.ComputeExportConfigSerializer.descriptor, 0, ColListSerializer(columnSerializer()), value.hostExportColumns.toList(), ) encodeSerializableElement( - descriptor, + ComputeExportConfig.Companion.ComputeExportConfigSerializer.descriptor, 1, ColListSerializer(columnSerializer()), value.taskExportColumns.toList(), ) encodeSerializableElement( - descriptor, + ComputeExportConfig.Companion.ComputeExportConfigSerializer.descriptor, 2, ColListSerializer(columnSerializer()), value.serviceExportColumns.toList(), @@ -184,7 +184,7 @@ private inline fun JsonElement?.toFieldList(): List()), it) }?.ifEmpty { - ComputeExportConfig.LOG.warn( + ComputeExportConfig.Companion.LOG.warn( "deserialized list of export columns for exportable ${T::class.simpleName} " + "produced empty list, falling back to all loaded columns", ) diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltHostExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt similarity index 91% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltHostExportColumns.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt index 261c5462e..1b76da6b6 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltHostExportColumns.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltHostExportColumns.kt @@ -20,16 +20,16 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.export.parquet +package org.opendc.compute.simulator.telemetry.parquet import org.apache.parquet.io.api.Binary import org.apache.parquet.schema.LogicalTypeAnnotation import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.BINARY -import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.DOUBLE +import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.FLOAT import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT32 import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT64 import org.apache.parquet.schema.Types -import org.opendc.compute.telemetry.table.HostTableReader +import org.opendc.compute.simulator.telemetry.table.HostTableReader import org.opendc.trace.util.parquet.exporter.ExportColumn /** @@ -106,22 +106,22 @@ public object DfltHostExportColumns { public val CPU_LIMIT: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("cpu_limit"), + field = Types.required(FLOAT).named("cpu_limit"), ) { it.cpuLimit } public val CPU_USAGE: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("cpu_usage"), + field = Types.required(FLOAT).named("cpu_usage"), ) { it.cpuUsage } public val CPU_DEMAND: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("cpu_demand"), + field = Types.required(FLOAT).named("cpu_demand"), ) { it.cpuDemand } public val CPU_UTILIZATION: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("cpu_utilization"), + field = Types.required(FLOAT).named("cpu_utilization"), ) { it.cpuUtilization } public val CPU_TIME_ACTIVE: ExportColumn = @@ -146,22 +146,22 @@ public object DfltHostExportColumns { public val POWER_DRAW: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("power_draw"), + field = Types.required(FLOAT).named("power_draw"), ) { it.powerDraw } public val ENERGY_USAGE: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("energy_usage"), + field = Types.required(FLOAT).named("energy_usage"), ) { it.energyUsage } public val CARBON_INTENSITY: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("carbon_intensity"), + field = Types.required(FLOAT).named("carbon_intensity"), ) { it.carbonIntensity } public val CARBON_EMISSION: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("carbon_emission"), + field = Types.required(FLOAT).named("carbon_emission"), ) { it.carbonEmission } public val UP_TIME: ExportColumn = diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltServiceExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt similarity index 82% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltServiceExportColumns.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt index 8038060db..aa08e8ff7 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltServiceExportColumns.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltServiceExportColumns.kt @@ -20,12 +20,12 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.export.parquet +package org.opendc.compute.simulator.telemetry.parquet import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT32 import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT64 import org.apache.parquet.schema.Types -import org.opendc.compute.telemetry.table.ServiceTableReader +import org.opendc.compute.simulator.telemetry.table.ServiceTableReader import org.opendc.trace.util.parquet.exporter.ExportColumn /** @@ -64,26 +64,36 @@ public object DfltServiceExportColumns { field = Types.required(INT32).named("tasks_pending"), ) { it.tasksPending } + public val TASKS_TOTAL: ExportColumn = + ExportColumn( + field = Types.required(INT32).named("tasks_total"), + ) { it.tasksTotal } + public val TASKS_ACTIVE: ExportColumn = ExportColumn( field = Types.required(INT32).named("tasks_active"), ) { it.tasksActive } + public val TASKS_COMPLETED: ExportColumn = + ExportColumn( + field = Types.required(INT32).named("tasks_completed"), + ) { it.tasksCompleted } + + public val TASKS_FAILED: ExportColumn = + ExportColumn( + field = Types.required(INT32).named("tasks_terminated"), + ) { it.tasksTerminated } + public val ATTEMPTS_SUCCESS: ExportColumn = ExportColumn( field = Types.required(INT32).named("attempts_success"), ) { it.attemptsSuccess } - public val AT3yyTEMPTS_FAILURE: ExportColumn = + public val ATTEMPTS_FAILURE: ExportColumn = ExportColumn( field = Types.required(INT32).named("attempts_failure"), ) { it.attemptsFailure } - public val ATTEMPTS_ERROR: ExportColumn = - ExportColumn( - field = Types.required(INT32).named("attempts_error"), - ) { it.attemptsError } - /** * The columns that are always included in the output file. */ diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltTaskExportColumns.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt similarity index 91% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltTaskExportColumns.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt index 9e86e1a31..6658e444f 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/DfltTaskExportColumns.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/DfltTaskExportColumns.kt @@ -20,16 +20,16 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.export.parquet +package org.opendc.compute.simulator.telemetry.parquet import org.apache.parquet.io.api.Binary import org.apache.parquet.schema.LogicalTypeAnnotation import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.BINARY -import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.DOUBLE +import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.FLOAT import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT32 import org.apache.parquet.schema.PrimitiveType.PrimitiveTypeName.INT64 import org.apache.parquet.schema.Types -import org.opendc.compute.telemetry.table.TaskTableReader +import org.opendc.compute.simulator.telemetry.table.TaskTableReader import org.opendc.trace.util.parquet.exporter.ExportColumn /** @@ -94,7 +94,7 @@ public object DfltTaskExportColumns { public val CPU_LIMIT: ExportColumn = ExportColumn( - field = Types.required(DOUBLE).named("cpu_limit"), + field = Types.required(FLOAT).named("cpu_limit"), ) { it.cpuLimit } public val CPU_TIME_ACTIVE: ExportColumn = @@ -137,6 +137,16 @@ public object DfltTaskExportColumns { field = Types.optional(INT64).named("boot_time"), ) { it.bootTime?.toEpochMilli() } + public val CREATION_TIME: ExportColumn = + ExportColumn( + field = Types.optional(INT64).named("creation_time"), + ) { it.creationTime?.toEpochMilli() } + + public val FINISH_TIME: ExportColumn = + ExportColumn( + field = Types.optional(INT64).named("finish_time"), + ) { it.finishTime?.toEpochMilli() } + public val BOOT_TIME_ABS: ExportColumn = ExportColumn( field = Types.optional(INT64).named("boot_time_absolute"), diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/ParquetComputeMonitor.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ParquetComputeMonitor.kt similarity index 94% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/ParquetComputeMonitor.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ParquetComputeMonitor.kt index 3b7a7c0c7..4cd920c43 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/ParquetComputeMonitor.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/ParquetComputeMonitor.kt @@ -20,12 +20,12 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.export.parquet +package org.opendc.compute.simulator.telemetry.parquet -import org.opendc.compute.telemetry.ComputeMonitor -import org.opendc.compute.telemetry.table.HostTableReader -import org.opendc.compute.telemetry.table.ServiceTableReader -import org.opendc.compute.telemetry.table.TaskTableReader +import org.opendc.compute.simulator.telemetry.ComputeMonitor +import org.opendc.compute.simulator.telemetry.table.HostTableReader +import org.opendc.compute.simulator.telemetry.table.ServiceTableReader +import org.opendc.compute.simulator.telemetry.table.TaskTableReader import org.opendc.trace.util.parquet.exporter.ExportColumn import org.opendc.trace.util.parquet.exporter.Exportable import org.opendc.trace.util.parquet.exporter.Exporter diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/README.md b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/README.md similarity index 93% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/README.md rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/README.md index aee63fc90..3baafed42 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/export/parquet/README.md +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/parquet/README.md @@ -8,9 +8,9 @@ The 'default' columns are defined in `DfltHostExportcolumns`, `DfltTaskExportCol Each `ExportColumn` has a `Regex`, used for deserialization. If no custom regex is provided, the default one is used. The default regex matches the column name in case-insensitive manner, either with `_` as in the name or with ` ` (blank space). ###### E.g.: -***column name*** = "cpu\_count" -***default column regex*** = "\\s*(?:cpu_count|cpu count)\\s*" (case insensitive) -***matches*** = "cpu\_count", "cpu count", "CpU/_cOuNt" etc. +***column name*** = "cpuModel\_count" +***default column regex*** = "\\s*(?:cpu_count|cpuModel count)\\s*" (case insensitive) +***matches*** = "cpuModel\_count", "cpuModel count", "CpU/_cOuNt" etc. ### JSON Schema ```json diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/HostInfo.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/HostInfo.kt similarity index 94% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/HostInfo.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/HostInfo.kt index 62b7ef0d7..1f1b95222 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/HostInfo.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/HostInfo.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.table +package org.opendc.compute.simulator.telemetry.table /** * Information about a host exposed to the telemetry service. @@ -30,6 +30,6 @@ public data class HostInfo( val name: String, val arch: String, val coreCount: Int, - val coreSpeed: Double, + val coreSpeed: Float, val memCapacity: Long, ) diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/HostTableReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/HostTableReader.kt similarity index 92% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/HostTableReader.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/HostTableReader.kt index a7b8bedba..5f09e7f59 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/HostTableReader.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/HostTableReader.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.table +package org.opendc.compute.simulator.telemetry.table import org.opendc.trace.util.parquet.exporter.Exportable import java.time.Instant @@ -71,22 +71,22 @@ public interface HostTableReader : Exportable { /** * The capacity of the CPUs in the host (in MHz). */ - public val cpuLimit: Double + public val cpuLimit: Float /** * The usage of all CPUs in the host (in MHz). */ - public val cpuUsage: Double + public val cpuUsage: Float /** * The demand of all vCPUs of the guests (in MHz) */ - public val cpuDemand: Double + public val cpuDemand: Float /** * The CPU utilization of the host. */ - public val cpuUtilization: Double + public val cpuUtilization: Float /** * The duration (in ms) that a CPU was active in the host. @@ -111,22 +111,22 @@ public interface HostTableReader : Exportable { /** * The current power draw of the host in W. */ - public val powerDraw: Double + public val powerDraw: Float /** * The total energy consumption of the host since last sample in J. */ - public val energyUsage: Double + public val energyUsage: Float /** * The current carbon intensity of the host in gCO2 / kW. */ - public val carbonIntensity: Double + public val carbonIntensity: Float /** * The current carbon emission since the last deadline in g. */ - public val carbonEmission: Double + public val carbonEmission: Float /** * The uptime of the host since last time in ms. diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/ServiceData.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/ServiceData.kt similarity index 93% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/ServiceData.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/ServiceData.kt index 7a8ba6a7f..16c38297c 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/ServiceData.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/ServiceData.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.table +package org.opendc.compute.simulator.telemetry.table import java.time.Instant @@ -35,8 +35,7 @@ public data class ServiceData( val tasksPending: Int, val tasksActive: Int, val attemptsSuccess: Int, - val attemptsFailure: Int, - val attemptsError: Int, + val attemptsTerminated: Int, ) /** @@ -52,6 +51,5 @@ public fun ServiceTableReader.toServiceData(): ServiceData { tasksActive, attemptsSuccess, attemptsFailure, - attemptsError, ) } diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/ServiceTableReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/ServiceTableReader.kt similarity index 89% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/ServiceTableReader.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/ServiceTableReader.kt index 23630fb40..690dfe0ab 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/ServiceTableReader.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/ServiceTableReader.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.table +package org.opendc.compute.simulator.telemetry.table import org.opendc.trace.util.parquet.exporter.Exportable import java.time.Instant @@ -68,6 +68,16 @@ public interface ServiceTableReader : Exportable { */ public val tasksActive: Int + /** + * The number of tasks that completed the tasks successfully + */ + public val tasksCompleted: Int + + /** + * The number of tasks that failed more times than allowed and are thus terminated + */ + public val tasksTerminated: Int + /** * The scheduling attempts that were successful. */ @@ -77,9 +87,4 @@ public interface ServiceTableReader : Exportable { * The scheduling attempts that were unsuccessful due to client error. */ public val attemptsFailure: Int - - /** - * The scheduling attempts that were unsuccessful due to scheduler error. - */ - public val attemptsError: Int } diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/TaskInfo.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskInfo.kt similarity index 93% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/TaskInfo.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskInfo.kt index 2d1ae91a7..6ff56541c 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/TaskInfo.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskInfo.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.table +package org.opendc.compute.simulator.telemetry.table /** * Static information about a task exposed to the telemetry service. @@ -30,8 +30,6 @@ public data class TaskInfo( val name: String, val type: String, val arch: String, - val imageId: String, - val imageName: String, val cpuCount: Int, val memCapacity: Long, ) diff --git a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/TaskTableReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt similarity index 88% rename from opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/TaskTableReader.kt rename to opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt index ae7f7a490..bc6a4edd3 100644 --- a/opendc-compute/opendc-compute-telemetry/src/main/kotlin/org/opendc/compute/telemetry/table/TaskTableReader.kt +++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/table/TaskTableReader.kt @@ -20,10 +20,10 @@ * SOFTWARE. */ -package org.opendc.compute.telemetry.table +package org.opendc.compute.simulator.telemetry.table import org.opendc.compute.api.TaskState -import org.opendc.compute.telemetry.export.parquet.DfltTaskExportColumns +import org.opendc.compute.simulator.telemetry.parquet.DfltTaskExportColumns import org.opendc.trace.util.parquet.exporter.Exportable import java.time.Instant @@ -80,10 +80,20 @@ public interface TaskTableReader : Exportable { */ public val bootTimeAbsolute: Instant? + /** + * The [Instant] at which the task booted relative to the start of the workload. + */ + public val creationTime: Instant? + + /** + * The [Instant] at which the task booted relative to the start of the workload. + */ + public val finishTime: Instant? + /** * The capacity of the CPUs of Host on which the task is running (in MHz). */ - public val cpuLimit: Double + public val cpuLimit: Float /** * The duration (in seconds) that a CPU was active in the task. diff --git a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt deleted file mode 100644 index b5bc66a94..000000000 --- a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt +++ /dev/null @@ -1,393 +0,0 @@ -/* - * Copyright (c) 2020 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.compute.simulator - -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.delay -import kotlinx.coroutines.suspendCancellableCoroutine -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertAll -import org.opendc.compute.api.Flavor -import org.opendc.compute.api.Image -import org.opendc.compute.api.Task -import org.opendc.compute.api.TaskState -import org.opendc.compute.api.TaskWatcher -import org.opendc.compute.service.driver.Host -import org.opendc.compute.service.driver.HostListener -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.kernel.SimHypervisor -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.workload.SimTrace -import org.opendc.simulator.compute.workload.SimTraceFragment -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.mux.FlowMultiplexerFactory -import org.opendc.simulator.kotlin.runSimulation -import java.time.Instant -import java.util.SplittableRandom -import java.util.UUID -import kotlin.coroutines.resume - -/** - * Basic test-suite for the hypervisor. - */ -internal class SimHostTest { - private lateinit var machineModel: MachineModel - - @BeforeEach - fun setUp() { - machineModel = - MachineModel( - Cpu( - 0, - 2, - 3200.0, - "Intel", - "Xeon", - "amd64", - ), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - } - - /** - * Test a single virtual machine hosted by the hypervisor. - */ - @Test - fun testSingle() = - runSimulation { - val duration = 5 * 60L - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.maxMinMultiplexer(), SplittableRandom(1)) - - val host = - SimHost( - uid = UUID.randomUUID(), - name = "test", - meta = emptyMap(), - timeSource, - machine, - hypervisor, - ) - val vmImage = - MockImage( - UUID.randomUUID(), - "", - emptyMap(), - mapOf( - "workload" to - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 1000, duration * 1000, 3200.0, 2), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 3000, duration * 1000, 6500.0, 2), - ).createWorkload(0), - ), - ) - - val flavor = MockFlavor(2, 0) - - suspendCancellableCoroutine { cont -> - host.addListener( - object : HostListener { - private var finished = 0 - - override fun onStateChanged( - host: Host, - task: Task, - newState: TaskState, - ) { - if (newState == TaskState.TERMINATED && ++finished == 1) { - cont.resume(Unit) - } - } - }, - ) - val server = MockTask(UUID.randomUUID(), "a", flavor, vmImage) - host.spawn(server) - host.start(server) - } - - // Ensure last cycle is collected -// delay(1000L * duration) - host.close() - - val cpuStats = host.getCpuStats() - - assertAll( - { assertEquals(450000, cpuStats.activeTime, "Active time does not match") }, - { assertEquals(750000, cpuStats.idleTime, "Idle time does not match") }, - { assertEquals(4688, cpuStats.stealTime, "Steal time does not match") }, - { assertEquals(1200000, timeSource.millis()) }, - ) - } - - /** - * Test overcommitting of resources by the hypervisor. - */ - @Test - fun testOvercommitted() = - runSimulation { - val duration = 5 * 60L - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.maxMinMultiplexer(), SplittableRandom(1)) - - val host = - SimHost( - uid = UUID.randomUUID(), - name = "test", - meta = emptyMap(), - timeSource, - machine, - hypervisor, - ) - val vmImageA = - MockImage( - UUID.randomUUID(), - "", - emptyMap(), - mapOf( - "workload" to - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 1000, duration * 1000, 3200.0, 2), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 3000, duration * 1000, 6500.0, 2), - ).createWorkload(0), - ), - ) - val vmImageB = - MockImage( - UUID.randomUUID(), - "", - emptyMap(), - mapOf( - "workload" to - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 1000, duration * 1000, 3200.0, 2), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 3000, duration * 1000, 6500.0, 2), - ).createWorkload(0), - ), - ) - - val flavor = MockFlavor(2, 0) - - coroutineScope { - suspendCancellableCoroutine { cont -> - host.addListener( - object : HostListener { - private var finished = 0 - - override fun onStateChanged( - host: Host, - task: Task, - newState: TaskState, - ) { - if (newState == TaskState.TERMINATED && ++finished == 2) { - cont.resume(Unit) - } - } - }, - ) - val serverA = MockTask(UUID.randomUUID(), "a", flavor, vmImageA) - host.spawn(serverA) - val serverB = MockTask(UUID.randomUUID(), "b", flavor, vmImageB) - host.spawn(serverB) - - host.start(serverA) - host.start(serverB) - } - } - - // Ensure last cycle is collected - delay(1000L * duration) - host.close() - - val cpuStats = host.getCpuStats() - - assertAll( - { assertEquals(600000, cpuStats.activeTime, "Active time does not match") }, - { assertEquals(900000, cpuStats.idleTime, "Idle time does not match") }, - { assertEquals(309375, cpuStats.stealTime, "Steal time does not match") }, - { assertEquals(1500000, timeSource.millis()) }, - ) - } - - /** - * Test failure of the host. - */ - @Test - fun testFailure() = - runSimulation { - val duration = 5 * 60L - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.maxMinMultiplexer(), SplittableRandom(1)) - val host = - SimHost( - uid = UUID.randomUUID(), - name = "test", - meta = emptyMap(), - timeSource, - machine, - hypervisor, - ) - val image = - MockImage( - UUID.randomUUID(), - "", - emptyMap(), - mapOf( - "workload" to - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 1000, duration * 1000, 3200.0, 2), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 2), - SimTraceFragment(duration * 3000, duration * 1000, 6500.0, 2), - ).createWorkload(0), - ), - ) - val flavor = MockFlavor(2, 0) - val server = MockTask(UUID.randomUUID(), "a", flavor, image) - - coroutineScope { - host.spawn(server) - host.start(server) - delay(5000L) - host.fail() - delay(duration * 1000) - host.recover() - - suspendCancellableCoroutine { cont -> - host.addListener( - object : HostListener { - override fun onStateChanged( - host: Host, - task: Task, - newState: TaskState, - ) { - if (newState == TaskState.TERMINATED) { - cont.resume(Unit) - } - } - }, - ) - } - } - - host.close() - // Ensure last cycle is collected - delay(1000L * duration) - - val cpuStats = host.getCpuStats() - val sysStats = host.getSystemStats() - val guestSysStats = host.getSystemStats(server) - - assertAll( - { assertEquals(755000, cpuStats.idleTime, "Idle time does not match") }, - { assertEquals(450000, cpuStats.activeTime, "Active time does not match") }, - { assertEquals(1205000, sysStats.uptime.toMillis(), "Uptime does not match") }, - { assertEquals(300000, sysStats.downtime.toMillis(), "Downtime does not match") }, - { assertEquals(1205000, guestSysStats.uptime.toMillis(), "Guest uptime does not match") }, - { assertEquals(300000, guestSysStats.downtime.toMillis(), "Guest downtime does not match") }, - ) - } - - private class MockFlavor( - override val coreCount: Int, - override val memorySize: Long, - ) : Flavor { - override val uid: UUID = UUID.randomUUID() - override val name: String = "test" - override val labels: Map = emptyMap() - override val meta: Map = emptyMap() - - override fun delete() { - throw NotImplementedError() - } - - override fun reload() { - throw NotImplementedError() - } - } - - private class MockImage( - override val uid: UUID, - override val name: String, - override val labels: Map, - override val meta: Map, - ) : Image { - override fun delete() { - throw NotImplementedError() - } - - override fun reload() { - throw NotImplementedError() - } - } - - private class MockTask( - override val uid: UUID, - override val name: String, - override val flavor: Flavor, - override val image: Image, - override val numFailures: Int = 10, - ) : Task { - override val labels: Map = emptyMap() - - override val meta: Map = emptyMap() - - override val state: TaskState = TaskState.TERMINATED - - override val launchedAt: Instant? = null - - override fun start() {} - - override fun stop() {} - - override fun delete() {} - - override fun watch(watcher: TaskWatcher) {} - - override fun unwatch(watcher: TaskWatcher) {} - - override fun reload() {} - } -} diff --git a/opendc-compute/opendc-compute-telemetry/build.gradle.kts b/opendc-compute/opendc-compute-telemetry/build.gradle.kts deleted file mode 100644 index e86924494..000000000 --- a/opendc-compute/opendc-compute-telemetry/build.gradle.kts +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "OpenDC Compute Service implementation" - -// Build configuration -plugins { - `kotlin-library-conventions` - kotlin("plugin.serialization") version "1.9.22" -} - -dependencies { - api(projects.opendcCompute.opendcComputeApi) - api(projects.opendcTrace.opendcTraceParquet) - implementation(projects.opendcCommon) - implementation(libs.kotlin.logging) - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0") - implementation(project(mapOf("path" to ":opendc-trace:opendc-trace-parquet"))) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-service"))) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-carbon"))) - - testImplementation(projects.opendcSimulator.opendcSimulatorCore) - testRuntimeOnly(libs.log4j.core) - testRuntimeOnly(libs.log4j.slf4j) -} diff --git a/opendc-compute/opendc-compute-telemetry/src/test/resources/log4j2.xml b/opendc-compute/opendc-compute-telemetry/src/test/resources/log4j2.xml deleted file mode 100644 index 0dfb75f26..000000000 --- a/opendc-compute/opendc-compute-telemetry/src/test/resources/log4j2.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt index e0fba34f0..9e637b1b8 100644 --- a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt +++ b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/TopologyFactories.kt @@ -28,11 +28,10 @@ import org.opendc.compute.topology.specs.ClusterSpec import org.opendc.compute.topology.specs.HostJSONSpec import org.opendc.compute.topology.specs.HostSpec import org.opendc.compute.topology.specs.TopologySpec -import org.opendc.simulator.compute.SimPsuFactories -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.power.getPowerModel +import org.opendc.simulator.compute.cpu.getPowerModel +import org.opendc.simulator.compute.models.CpuModel +import org.opendc.simulator.compute.models.MachineModel +import org.opendc.simulator.compute.models.MemoryUnit import java.io.File import java.io.InputStream import java.util.SplittableRandom @@ -120,10 +119,10 @@ private fun HostJSONSpec.toHostSpecs( ): HostSpec { val units = List(cpu.count) { - Cpu( + CpuModel( globalCoreId++, cpu.coreCount, - cpu.coreSpeed.toMHz(), + cpu.coreSpeed.toMHz().toFloat(), ) } @@ -150,7 +149,7 @@ private fun HostJSONSpec.toHostSpecs( hostName, mapOf("cluster" to clusterId), machineModel, - SimPsuFactories.simple(powerModel), + powerModel, ) hostId++ diff --git a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/HostSpec.kt b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/HostSpec.kt index 9857f70ac..1956ffde2 100644 --- a/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/HostSpec.kt +++ b/opendc-compute/opendc-compute-topology/src/main/kotlin/org/opendc/compute/topology/specs/HostSpec.kt @@ -22,10 +22,8 @@ package org.opendc.compute.topology.specs -import org.opendc.simulator.compute.SimPsuFactories -import org.opendc.simulator.compute.SimPsuFactory -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.flow2.mux.FlowMultiplexerFactory +import org.opendc.simulator.compute.cpu.CpuPowerModel +import org.opendc.simulator.compute.models.MachineModel import java.util.UUID /** @@ -35,7 +33,7 @@ import java.util.UUID * @param name The name of the host. * @param meta The metadata of the host. * @param model The physical model of the machine. - * @param psuFactory The [SimPsuFactory] to construct the PSU that models the power consumption of the machine. + * @param cpuPowerModel The [SimPsuFactory] to construct the PSU that models the power consumption of the machine. * @param multiplexerFactory The [FlowMultiplexerFactory] that is used to multiplex the virtual machines over the host. */ public data class HostSpec( @@ -43,6 +41,5 @@ public data class HostSpec( val name: String, val meta: Map, val model: MachineModel, - val psuFactory: SimPsuFactory = SimPsuFactories.noop(), - val multiplexerFactory: FlowMultiplexerFactory = FlowMultiplexerFactory.maxMinMultiplexer(), + val cpuPowerModel: CpuPowerModel, ) diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkload.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkload.kt index c9f784ff3..9516c56e0 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkload.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkload.kt @@ -29,10 +29,10 @@ import java.util.random.RandomGenerator */ public interface ComputeWorkload { /** - * Resolve the workload into a list of [VirtualMachine]s to simulate. + * Resolve the workload into a list of [Task]s to simulate. */ public fun resolve( loader: ComputeWorkloadLoader, random: RandomGenerator, - ): List + ): List } diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt index 99863af89..f22bc1d15 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt @@ -23,13 +23,8 @@ package org.opendc.compute.workload import mu.KotlinLogging -import org.opendc.simulator.compute.kernel.interference.VmInterferenceModel -import org.opendc.simulator.compute.workload.SimTrace +import org.opendc.simulator.compute.workload.TraceWorkload import org.opendc.trace.Trace -import org.opendc.trace.conv.INTERFERENCE_GROUP_MEMBERS -import org.opendc.trace.conv.INTERFERENCE_GROUP_SCORE -import org.opendc.trace.conv.INTERFERENCE_GROUP_TARGET -import org.opendc.trace.conv.TABLE_INTERFERENCE_GROUPS import org.opendc.trace.conv.TABLE_RESOURCES import org.opendc.trace.conv.TABLE_RESOURCE_STATES import org.opendc.trace.conv.resourceCpuCapacity @@ -52,7 +47,12 @@ import kotlin.math.roundToLong * * @param baseDir The directory containing the traces. */ -public class ComputeWorkloadLoader(private val baseDir: File) { +public class ComputeWorkloadLoader( + private val baseDir: File, + private val checkpointInterval: Long, + private val checkpointDuration: Long, + private val checkpointIntervalScaling: Double, +) { /** * The logger for this instance. */ @@ -61,7 +61,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { /** * The cache of workloads. */ - private val cache = ConcurrentHashMap>>() + private val cache = ConcurrentHashMap>>() /** * Read the fragments into memory. @@ -83,7 +83,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { val cores = reader.getInt(coresCol) val cpuUsage = reader.getDouble(usageCol) - val builder = fragments.computeIfAbsent(id) { Builder() } + val builder = fragments.computeIfAbsent(id) { Builder(checkpointInterval, checkpointDuration, checkpointIntervalScaling) } builder.add(durationMs, cpuUsage, cores) } @@ -99,8 +99,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { private fun parseMeta( trace: Trace, fragments: Map, - interferenceModel: VmInterferenceModel, - ): List { + ): List { val reader = checkNotNull(trace.getTable(TABLE_RESOURCES)).newReader() val idCol = reader.resolve(resourceID) @@ -111,7 +110,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { val memCol = reader.resolve(resourceMemCapacity) var counter = 0 - val entries = mutableListOf() + val entries = mutableListOf() return try { while (reader.nextRow()) { @@ -131,7 +130,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { val totalLoad = builder.totalLoad entries.add( - VirtualMachine( + Task( uid, id, cpuCount, @@ -141,13 +140,12 @@ public class ComputeWorkloadLoader(private val baseDir: File) { submissionTime, duration, builder.build(), - interferenceModel.getProfile(id), ), ) } // Make sure the virtual machines are ordered by start time - entries.sortBy { it.startTime } + entries.sortBy { it.submissionTime } entries } catch (e: Exception) { @@ -158,41 +156,13 @@ public class ComputeWorkloadLoader(private val baseDir: File) { } } - /** - * Read the interference model associated with the specified [trace]. - */ - private fun parseInterferenceModel(trace: Trace): VmInterferenceModel { - val reader = checkNotNull(trace.getTable(TABLE_INTERFERENCE_GROUPS)).newReader() - - return try { - val membersCol = reader.resolve(INTERFERENCE_GROUP_MEMBERS) - val targetCol = reader.resolve(INTERFERENCE_GROUP_TARGET) - val scoreCol = reader.resolve(INTERFERENCE_GROUP_SCORE) - - val modelBuilder = VmInterferenceModel.builder() - - while (reader.nextRow()) { - val members = reader.getSet(membersCol, String::class.java)!! - val target = reader.getDouble(targetCol) - val score = reader.getDouble(scoreCol) - - modelBuilder - .addGroup(members, target, score) - } - - modelBuilder.build() - } finally { - reader.close() - } - } - /** * Load the trace with the specified [name] and [format]. */ public fun get( name: String, format: String, - ): List { + ): List { val ref = cache.compute(name) { key, oldVal -> val inst = oldVal?.get() @@ -203,8 +173,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { val trace = Trace.open(path, format) val fragments = parseFragments(trace) - val interferenceModel = parseInterferenceModel(trace) - val vms = parseMeta(trace, fragments, interferenceModel) + val vms = parseMeta(trace, fragments) SoftReference(vms) } else { @@ -225,7 +194,7 @@ public class ComputeWorkloadLoader(private val baseDir: File) { /** * A builder for a VM trace. */ - private class Builder { + private class Builder(checkpointInterval: Long, checkpointDuration: Long, checkpointIntervalScaling: Double) { /** * The total load of the trace. */ @@ -234,13 +203,12 @@ public class ComputeWorkloadLoader(private val baseDir: File) { /** * The internal builder for the trace. */ - private val builder = SimTrace.builder() + private val builder = TraceWorkload.builder(checkpointInterval, checkpointDuration, checkpointIntervalScaling) /** * Add a fragment to the trace. * - * @param timestamp Timestamp at which the fragment starts (in epoch millis). - * @param deadline Timestamp at which the fragment ends (in epoch millis). + * @param duration The duration of the fragment (in epoch millis). * @param usage CPU usage of this fragment. * @param cores Number of cores used. */ @@ -257,6 +225,6 @@ public class ComputeWorkloadLoader(private val baseDir: File) { /** * Build the trace. */ - fun build(): SimTrace = builder.build() + fun build(): TraceWorkload = builder.build() } } diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/VirtualMachine.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/Task.kt similarity index 83% rename from opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/VirtualMachine.kt rename to opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/Task.kt index 66d51127b..d121b381e 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/VirtualMachine.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/Task.kt @@ -22,8 +22,7 @@ package org.opendc.compute.workload -import org.opendc.simulator.compute.kernel.interference.VmInterferenceProfile -import org.opendc.simulator.compute.workload.SimTrace +import org.opendc.simulator.compute.workload.TraceWorkload import java.time.Instant import java.util.UUID @@ -35,20 +34,18 @@ import java.util.UUID * @param cpuCapacity The required CPU capacity for the VM in MHz. * @param cpuCount The number of vCPUs in the VM. * @param memCapacity The provisioned memory for the VM in MB. - * @param startTime The start time of the VM. - * @param stopTime The stop time of the VM. + * @param submissionTime The start time of the VM. * @param trace The trace that belong to this VM. * @param interferenceProfile The interference profile of this virtual machine. */ -public data class VirtualMachine( +public data class Task( val uid: UUID, val name: String, val cpuCount: Int, val cpuCapacity: Double, val memCapacity: Long, val totalLoad: Double, - val startTime: Instant, + val submissionTime: Instant, val duration: Long, - val trace: SimTrace, - val interferenceProfile: VmInterferenceProfile?, + val trace: TraceWorkload, ) diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/CompositeComputeWorkload.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/CompositeComputeWorkload.kt index aba493b62..998dbb34d 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/CompositeComputeWorkload.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/CompositeComputeWorkload.kt @@ -25,7 +25,7 @@ package org.opendc.compute.workload.internal import mu.KotlinLogging import org.opendc.compute.workload.ComputeWorkload import org.opendc.compute.workload.ComputeWorkloadLoader -import org.opendc.compute.workload.VirtualMachine +import org.opendc.compute.workload.Task import java.util.random.RandomGenerator /** @@ -40,12 +40,12 @@ internal class CompositeComputeWorkload(val sources: Map { + ): List { val traces = sources.map { (source, fraction) -> fraction to source.resolve(loader, random) } val totalLoad = traces.sumOf { (_, vms) -> vms.sumOf { it.totalLoad } } - val res = mutableListOf() + val res = mutableListOf() for ((fraction, vms) in traces) { var currentLoad = 0.0 diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/HpcSampledComputeWorkload.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/HpcSampledComputeWorkload.kt index 4207b2bef..d3bdde317 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/HpcSampledComputeWorkload.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/HpcSampledComputeWorkload.kt @@ -25,7 +25,7 @@ package org.opendc.compute.workload.internal import mu.KotlinLogging import org.opendc.compute.workload.ComputeWorkload import org.opendc.compute.workload.ComputeWorkloadLoader -import org.opendc.compute.workload.VirtualMachine +import org.opendc.compute.workload.Task import java.util.UUID import java.util.random.RandomGenerator @@ -53,7 +53,7 @@ internal class HpcSampledComputeWorkload( override fun resolve( loader: ComputeWorkloadLoader, random: RandomGenerator, - ): List { + ): List { val vms = source.resolve(loader, random) val (hpc, nonHpc) = @@ -65,7 +65,7 @@ internal class HpcSampledComputeWorkload( val hpcSequence = generateSequence(0) { it + 1 } .map { index -> - val res = mutableListOf() + val res = mutableListOf() hpc.mapTo(res) { sample(it, index) } res } @@ -74,7 +74,7 @@ internal class HpcSampledComputeWorkload( val nonHpcSequence = generateSequence(0) { it + 1 } .map { index -> - val res = mutableListOf() + val res = mutableListOf() nonHpc.mapTo(res) { sample(it, index) } res } @@ -90,7 +90,7 @@ internal class HpcSampledComputeWorkload( var nonHpcCount = 0 var nonHpcLoad = 0.0 - val res = mutableListOf() + val res = mutableListOf() if (sampleLoad) { var currentLoad = 0.0 @@ -146,9 +146,9 @@ internal class HpcSampledComputeWorkload( * Sample a random trace entry. */ private fun sample( - entry: VirtualMachine, + entry: Task, i: Int, - ): VirtualMachine { + ): Task { val uid = UUID.nameUUIDFromBytes("${entry.uid}-$i".toByteArray()) return entry.copy(uid = uid) } diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/LoadSampledComputeWorkload.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/LoadSampledComputeWorkload.kt index 51ddb27c2..534ac6a04 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/LoadSampledComputeWorkload.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/LoadSampledComputeWorkload.kt @@ -25,7 +25,7 @@ package org.opendc.compute.workload.internal import mu.KotlinLogging import org.opendc.compute.workload.ComputeWorkload import org.opendc.compute.workload.ComputeWorkloadLoader -import org.opendc.compute.workload.VirtualMachine +import org.opendc.compute.workload.Task import java.util.random.RandomGenerator /** @@ -40,9 +40,9 @@ internal class LoadSampledComputeWorkload(val source: ComputeWorkload, val fract override fun resolve( loader: ComputeWorkloadLoader, random: RandomGenerator, - ): List { + ): List { val vms = source.resolve(loader, random) // fixme: Should be shuffled, otherwise the first fraction is always chosen - val res = mutableListOf() + val res = mutableListOf() val totalLoad = vms.sumOf { it.totalLoad } var currentLoad = 0.0 diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/TraceComputeWorkload.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/TraceComputeWorkload.kt index 39255c593..d796341b3 100644 --- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/TraceComputeWorkload.kt +++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/internal/TraceComputeWorkload.kt @@ -24,7 +24,7 @@ package org.opendc.compute.workload.internal import org.opendc.compute.workload.ComputeWorkload import org.opendc.compute.workload.ComputeWorkloadLoader -import org.opendc.compute.workload.VirtualMachine +import org.opendc.compute.workload.Task import java.util.random.RandomGenerator /** @@ -34,7 +34,7 @@ internal class TraceComputeWorkload(val name: String, val format: String) : Comp override fun resolve( loader: ComputeWorkloadLoader, random: RandomGenerator, - ): List { + ): List { return loader.get(name, format) } } diff --git a/opendc-experiments/opendc-experiments-base/build.gradle.kts b/opendc-experiments/opendc-experiments-base/build.gradle.kts index 98ec67232..d8921ffb6 100644 --- a/opendc-experiments/opendc-experiments-base/build.gradle.kts +++ b/opendc-experiments/opendc-experiments-base/build.gradle.kts @@ -33,7 +33,6 @@ plugins { dependencies { - api(projects.opendcCompute.opendcComputeService) api(projects.opendcCompute.opendcComputeSimulator) implementation(libs.clikt) @@ -42,7 +41,6 @@ dependencies { implementation(project(mapOf("path" to ":opendc-simulator:opendc-simulator-core"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-workload"))) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-telemetry"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-topology"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-carbon"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-failure"))) diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt index 49fa409e5..c82e25575 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt @@ -29,13 +29,12 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.yield -import org.opendc.compute.api.Task import org.opendc.compute.api.TaskState -import org.opendc.compute.api.TaskWatcher import org.opendc.compute.failure.models.FailureModel -import org.opendc.compute.service.ComputeService -import org.opendc.compute.workload.VirtualMachine -import org.opendc.experiments.base.scenario.specs.CheckpointModelSpec +import org.opendc.compute.simulator.TaskWatcher +import org.opendc.compute.simulator.service.ComputeService +import org.opendc.compute.simulator.service.ServiceTask +import org.opendc.compute.workload.Task import org.opendc.experiments.base.scenario.specs.FailureModelSpec import org.opendc.experiments.base.scenario.specs.createFailureModel import java.time.InstantSource @@ -50,7 +49,7 @@ import kotlin.math.max */ public class RunningTaskWatcher : TaskWatcher { // TODO: make this changeable - private val unlockStates: List = listOf(TaskState.DELETED, TaskState.TERMINATED) + private val unlockStates: List = listOf(TaskState.DELETED) private val mutex: Mutex = Mutex() @@ -63,7 +62,7 @@ public class RunningTaskWatcher : TaskWatcher { } override fun onStateChanged( - task: Task, + task: ServiceTask, newState: TaskState, ) { if (unlockStates.contains(newState)) { @@ -73,7 +72,7 @@ public class RunningTaskWatcher : TaskWatcher { } /** - * Helper method to replay the specified list of [VirtualMachine] and suspend execution util all VMs have finished. + * Helper method to replay the specified list of [Task] and suspend execution util all VMs have finished. * * @param clock The simulation clock. * @param trace The trace to simulate. @@ -83,9 +82,8 @@ public class RunningTaskWatcher : TaskWatcher { */ public suspend fun ComputeService.replay( clock: InstantSource, - trace: List, + trace: List, failureModelSpec: FailureModelSpec? = null, - checkpointModelSpec: CheckpointModelSpec? = null, seed: Long = 0, submitImmediately: Boolean = false, ) { @@ -97,9 +95,6 @@ public suspend fun ComputeService.replay( createFailureModel(coroutineContext, clock, this, Random(seed), it) } - // Create new image for the virtual machine - val image = client.newImage("vm-image") - try { coroutineScope { // Start the fault injector @@ -107,9 +102,9 @@ public suspend fun ComputeService.replay( var simulationOffset = Long.MIN_VALUE - for (entry in trace.sortedBy { it.startTime }) { + for (entry in trace.sortedBy { it.submissionTime }) { val now = clock.millis() - val start = entry.startTime.toEpochMilli() + val start = entry.submissionTime.toEpochMilli() // Set the simulationOffset based on the starting time of the first task if (simulationOffset == Long.MIN_VALUE) { @@ -121,25 +116,21 @@ public suspend fun ComputeService.replay( delay(max(0, (start - now - simulationOffset))) } - val checkpointInterval = checkpointModelSpec?.checkpointInterval ?: 0L - val checkpointDuration = checkpointModelSpec?.checkpointDuration ?: 0L - val checkpointIntervalScaling = checkpointModelSpec?.checkpointIntervalScaling ?: 1.0 - - val workload = entry.trace.createWorkload(start, checkpointInterval, checkpointDuration, checkpointIntervalScaling) + val workload = entry.trace val meta = mutableMapOf("workload" to workload) launch { val task = client.newTask( entry.name, - image, client.newFlavor( entry.name, entry.cpuCount, entry.memCapacity, - meta = if (entry.cpuCapacity > 0.0) mapOf("cpu-capacity" to entry.cpuCapacity) else emptyMap(), + if (entry.cpuCapacity > 0.0) mapOf("cpu-capacity" to entry.cpuCapacity) else emptyMap(), ), - meta = meta, + workload, + meta, ) val taskWatcher = RunningTaskWatcher() @@ -150,7 +141,7 @@ public suspend fun ComputeService.replay( taskWatcher.wait() // Stop the task after reaching the end-time of the virtual machine - task.delete() +// task.delete() } } } diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt index 2bd9dfa30..df5aabf72 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt @@ -26,13 +26,13 @@ import me.tongfei.progressbar.ProgressBarBuilder import me.tongfei.progressbar.ProgressBarStyle import org.opendc.compute.carbon.CarbonTrace import org.opendc.compute.carbon.getCarbonTrace -import org.opendc.compute.service.ComputeService -import org.opendc.compute.service.scheduler.createComputeScheduler import org.opendc.compute.simulator.provisioner.Provisioner import org.opendc.compute.simulator.provisioner.registerComputeMonitor import org.opendc.compute.simulator.provisioner.setupComputeService import org.opendc.compute.simulator.provisioner.setupHosts -import org.opendc.compute.telemetry.export.parquet.ParquetComputeMonitor +import org.opendc.compute.simulator.scheduler.createComputeScheduler +import org.opendc.compute.simulator.service.ComputeService +import org.opendc.compute.simulator.telemetry.parquet.ParquetComputeMonitor import org.opendc.compute.topology.clusterTopology import org.opendc.compute.workload.ComputeWorkloadLoader import org.opendc.experiments.base.scenario.Scenario @@ -89,14 +89,24 @@ public fun runScenario( { createComputeScheduler(scenario.allocationPolicySpec.policyType, Random(it.seeder.nextLong())) }, maxNumFailures = scenario.maxNumFailures, ), - setupHosts(serviceDomain, topology, optimize = true), + setupHosts(serviceDomain, topology), ) - val workloadLoader = ComputeWorkloadLoader(File(scenario.workloadSpec.pathToFile)) + val checkpointInterval = scenario.checkpointModelSpec?.checkpointInterval ?: 0L + val checkpointDuration = scenario.checkpointModelSpec?.checkpointDuration ?: 0L + val checkpointIntervalScaling = scenario.checkpointModelSpec?.checkpointIntervalScaling ?: 1.0 + + val workloadLoader = + ComputeWorkloadLoader( + File(scenario.workloadSpec.pathToFile), + checkpointInterval, + checkpointDuration, + checkpointIntervalScaling, + ) val tasks = getWorkloadType(scenario.workloadSpec.type).resolve(workloadLoader, Random(seed)) val carbonTrace = getCarbonTrace(scenario.carbonTracePath) - val startTime = Duration.ofMillis(tasks.minOf { it.startTime }.toEpochMilli()) + val startTime = Duration.ofMillis(tasks.minOf { it.submissionTime }.toEpochMilli()) addExportModel(provisioner, serviceDomain, scenario, seed, startTime, carbonTrace, scenario.id) val service = provisioner.registry.resolve(serviceDomain, ComputeService::class.java)!! @@ -104,7 +114,6 @@ public fun runScenario( timeSource, tasks, failureModelSpec = scenario.failureModelSpec, - checkpointModelSpec = scenario.checkpointModelSpec, seed = seed, ) } diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/ExperimentReader.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/ExperimentReader.kt index 160bd7837..8ed60b08f 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/ExperimentReader.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/ExperimentReader.kt @@ -25,7 +25,7 @@ package org.opendc.experiments.base.scenario import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.json.Json import kotlinx.serialization.json.decodeFromStream -import org.opendc.compute.telemetry.export.parquet.ComputeExportConfig +import org.opendc.compute.simulator.telemetry.parquet.ComputeExportConfig import org.opendc.experiments.base.scenario.specs.ExperimentSpec import java.io.File import java.io.InputStream diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/Scenario.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/Scenario.kt index 91cd09ba7..f649e4f84 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/Scenario.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/Scenario.kt @@ -22,7 +22,7 @@ package org.opendc.experiments.base.scenario -import org.opendc.compute.telemetry.export.parquet.ComputeExportConfig +import org.opendc.compute.simulator.telemetry.parquet.ComputeExportConfig import org.opendc.experiments.base.scenario.specs.AllocationPolicySpec import org.opendc.experiments.base.scenario.specs.CheckpointModelSpec import org.opendc.experiments.base.scenario.specs.ExportModelSpec diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/AllocationPolicySpec.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/AllocationPolicySpec.kt index edfdfaf53..ddc11a508 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/AllocationPolicySpec.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/AllocationPolicySpec.kt @@ -23,7 +23,7 @@ package org.opendc.experiments.base.scenario.specs import kotlinx.serialization.Serializable -import org.opendc.compute.service.scheduler.ComputeSchedulerEnum +import org.opendc.compute.simulator.scheduler.ComputeSchedulerEnum /** * specification describing how tasks are allocated diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ExperimentSpec.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ExperimentSpec.kt index 60fcf51ae..b957ea18c 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ExperimentSpec.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ExperimentSpec.kt @@ -25,7 +25,7 @@ package org.opendc.experiments.base.scenario.specs import kotlinx.serialization.Serializable import org.opendc.common.logger.infoNewLine import org.opendc.common.logger.logger -import org.opendc.compute.telemetry.export.parquet.ComputeExportConfig +import org.opendc.compute.simulator.telemetry.parquet.ComputeExportConfig import java.util.UUID /** diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/FailureModelSpec.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/FailureModelSpec.kt index a27e77bc8..c20b44679 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/FailureModelSpec.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/FailureModelSpec.kt @@ -61,7 +61,7 @@ import org.opendc.compute.failure.models.SampleBasedFailureModel import org.opendc.compute.failure.models.TraceBasedFailureModel import org.opendc.compute.failure.prefab.FailurePrefab import org.opendc.compute.failure.prefab.createFailureModelPrefab -import org.opendc.compute.service.ComputeService +import org.opendc.compute.simulator.service.ComputeService import java.io.File import java.time.InstantSource import kotlin.coroutines.CoroutineContext diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ScenarioSpec.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ScenarioSpec.kt index d7fdb8f48..8f2146f14 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ScenarioSpec.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/scenario/specs/ScenarioSpec.kt @@ -23,7 +23,7 @@ package org.opendc.experiments.base.scenario.specs import kotlinx.serialization.Serializable -import org.opendc.compute.telemetry.export.parquet.ComputeExportConfig +import org.opendc.compute.simulator.telemetry.parquet.ComputeExportConfig @Serializable public data class ScenarioSpec( diff --git a/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ScenarioIntegrationTest.kt b/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ScenarioIntegrationTest.kt index 08eddca07..41d18225f 100644 --- a/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ScenarioIntegrationTest.kt +++ b/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ScenarioIntegrationTest.kt @@ -26,26 +26,27 @@ import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test import org.junit.jupiter.api.assertAll -import org.opendc.compute.service.ComputeService -import org.opendc.compute.service.scheduler.FilterScheduler -import org.opendc.compute.service.scheduler.filters.ComputeFilter -import org.opendc.compute.service.scheduler.filters.RamFilter -import org.opendc.compute.service.scheduler.filters.VCpuFilter -import org.opendc.compute.service.scheduler.weights.CoreRamWeigher import org.opendc.compute.simulator.provisioner.Provisioner import org.opendc.compute.simulator.provisioner.registerComputeMonitor import org.opendc.compute.simulator.provisioner.setupComputeService import org.opendc.compute.simulator.provisioner.setupHosts -import org.opendc.compute.telemetry.ComputeMonitor -import org.opendc.compute.telemetry.table.HostTableReader -import org.opendc.compute.telemetry.table.ServiceTableReader +import org.opendc.compute.simulator.scheduler.FilterScheduler +import org.opendc.compute.simulator.scheduler.filters.ComputeFilter +import org.opendc.compute.simulator.scheduler.filters.RamFilter +import org.opendc.compute.simulator.scheduler.filters.VCpuFilter +import org.opendc.compute.simulator.scheduler.weights.CoreRamWeigher +import org.opendc.compute.simulator.service.ComputeService +import org.opendc.compute.simulator.telemetry.ComputeMonitor +import org.opendc.compute.simulator.telemetry.table.HostTableReader +import org.opendc.compute.simulator.telemetry.table.ServiceTableReader import org.opendc.compute.topology.clusterTopology import org.opendc.compute.topology.specs.HostSpec import org.opendc.compute.workload.ComputeWorkloadLoader -import org.opendc.compute.workload.VirtualMachine +import org.opendc.compute.workload.Task import org.opendc.compute.workload.sampleByLoad import org.opendc.compute.workload.trace import org.opendc.experiments.base.runner.replay +import org.opendc.experiments.base.scenario.specs.TraceBasedFailureModelSpec import org.opendc.simulator.kotlin.runSimulation import java.io.File import java.util.Random @@ -80,18 +81,18 @@ class ScenarioIntegrationTest { filters = listOf(ComputeFilter(), VCpuFilter(16.0), RamFilter(1.0)), weighers = listOf(CoreRamWeigher(multiplier = 1.0)), ) - workloadLoader = ComputeWorkloadLoader(File("src/test/resources/trace")) + workloadLoader = ComputeWorkloadLoader(File("src/test/resources/traces"), 0L, 0L, 0.0) } /** - * Test a large simulation setup. + * Test a small simulation setup. */ @Test - fun testLarge() = + fun testSingleTask() = runSimulation { - val seed = 0L - val workload = createTestWorkload(1.0, seed) - val topology = createTopology("multi.json") + val seed = 1L + val workload = createTestWorkload("single_task", 1.0, seed) + val topology = createTopology("single.json") val monitor = monitor Provisioner(dispatcher, seed).use { provisioner -> @@ -116,16 +117,11 @@ class ScenarioIntegrationTest { // Note that these values have been verified beforehand assertAll( - { assertEquals(50, monitor.attemptsSuccess, "The scheduler should schedule 50 VMs") }, - { assertEquals(0, monitor.tasksActive, "All VMs should finish after a run") }, - { assertEquals(0, monitor.attemptsFailure, "No VM should be unscheduled") }, - { assertEquals(0, monitor.tasksPending, "No VM should not be in the queue") }, - { assertEquals(43101769345, monitor.idleTime) { "Incorrect idle time" } }, - { assertEquals(3489430672, monitor.activeTime) { "Incorrect active time" } }, - { assertEquals(0, monitor.stealTime) { "Incorrect steal time" } }, - { assertEquals(0, monitor.lostTime) { "Incorrect lost time" } }, - { assertEquals(3.3388920269258898E7, monitor.powerDraw, 1E4) { "Incorrect power draw" } }, - { assertEquals(1.0016127451211525E10, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, + { assertEquals(0, monitor.idleTime) { "Idle time incorrect" } }, + { assertEquals(3000000, monitor.activeTime) { "Active time incorrect" } }, + { assertEquals(0, monitor.stealTime) { "Steal time incorrect" } }, + { assertEquals(0, monitor.lostTime) { "Lost time incorrect" } }, + { assertEquals(1200000.0, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, ) } @@ -133,12 +129,13 @@ class ScenarioIntegrationTest { * Test a small simulation setup. */ @Test - fun testSmall() = + fun testSingleTaskSingleFailure() = runSimulation { val seed = 1L - val workload = createTestWorkload(0.25, seed) + val workload = createTestWorkload("single_task", 1.0, seed) val topology = createTopology("single.json") val monitor = monitor + val failureModelSpec = TraceBasedFailureModelSpec("src/test/resources/failureTraces/single_failure.parquet") Provisioner(dispatcher, seed).use { provisioner -> provisioner.runSteps( @@ -148,7 +145,7 @@ class ScenarioIntegrationTest { ) val service = provisioner.registry.resolve("compute.opendc.org", ComputeService::class.java)!! - service.replay(timeSource, workload, seed = seed) + service.replay(timeSource, workload, failureModelSpec = failureModelSpec, seed = seed) } println( @@ -162,24 +159,25 @@ class ScenarioIntegrationTest { // Note that these values have been verified beforehand assertAll( - { assertEquals(1373419781, monitor.idleTime) { "Idle time incorrect" } }, - { assertEquals(1217668222, monitor.activeTime) { "Active time incorrect" } }, + { assertEquals(2200000, monitor.idleTime) { "Idle time incorrect" } }, + { assertEquals(5000000, monitor.activeTime) { "Active time incorrect" } }, { assertEquals(0, monitor.stealTime) { "Steal time incorrect" } }, { assertEquals(0, monitor.lostTime) { "Lost time incorrect" } }, - { assertEquals(2539987.394500494, monitor.powerDraw, 1E4) { "Incorrect power draw" } }, - { assertEquals(7.617527900379665E8, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, + { assertEquals(2440000.0, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, ) } /** - * Test a small simulation setup with interference. - * TODO: Interference is currently removed from OpenDC. Reactivate when interference is back in. + * Test a small simulation setup. */ - fun testInterference() = + @Test + fun testSingleTask11Failures() = runSimulation { - val seed = 0L - val workload = createTestWorkload(1.0, seed) + val seed = 1L + val workload = createTestWorkload("single_task", 1.0, seed) val topology = createTopology("single.json") + val monitor = monitor + val failureModelSpec = TraceBasedFailureModelSpec("src/test/resources/failureTraces/11_failures.parquet") Provisioner(dispatcher, seed).use { provisioner -> provisioner.runSteps( @@ -189,7 +187,7 @@ class ScenarioIntegrationTest { ) val service = provisioner.registry.resolve("compute.opendc.org", ComputeService::class.java)!! - service.replay(timeSource, workload, seed = seed) + service.replay(timeSource, workload, failureModelSpec = failureModelSpec, seed = seed) } println( @@ -203,22 +201,69 @@ class ScenarioIntegrationTest { // Note that these values have been verified beforehand assertAll( - { assertEquals(42814948316, monitor.idleTime) { "Idle time incorrect" } }, - { assertEquals(40138266225, monitor.activeTime) { "Active time incorrect" } }, - { assertEquals(23489356981, monitor.stealTime) { "Steal time incorrect" } }, + { assertEquals(1, monitor.tasksTerminated) { "Idle time incorrect" } }, + { assertEquals(18100000, monitor.idleTime) { "Idle time incorrect" } }, + { assertEquals(20000000, monitor.activeTime) { "Active time incorrect" } }, + { assertEquals(0, monitor.stealTime) { "Steal time incorrect" } }, { assertEquals(0, monitor.lostTime) { "Lost time incorrect" } }, + { assertEquals(1.162E7, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, ) } /** - * Test a small simulation setup with failures. - * FIXME: Currently failures do not work. reactivate this test when Failures are implemented again + * Test a small simulation setup. */ - fun testFailures() = + @Test + fun testSingleTaskCheckpoint() = runSimulation { - val seed = 0L + val seed = 1L + workloadLoader = ComputeWorkloadLoader(File("src/test/resources/traces"), 1000000L, 1000L, 1.0) + val workload = createTestWorkload("single_task", 1.0, seed) + val topology = createTopology("single.json") + val monitor = monitor + val failureModelSpec = TraceBasedFailureModelSpec("src/test/resources/failureTraces/11_failures.parquet") + + Provisioner(dispatcher, seed).use { provisioner -> + provisioner.runSteps( + setupComputeService(serviceDomain = "compute.opendc.org", { computeScheduler }), + registerComputeMonitor(serviceDomain = "compute.opendc.org", monitor), + setupHosts(serviceDomain = "compute.opendc.org", topology), + ) + + val service = provisioner.registry.resolve("compute.opendc.org", ComputeService::class.java)!! + service.replay(timeSource, workload, failureModelSpec = failureModelSpec, seed = seed) + } + + println( + "Scheduler " + + "Success=${monitor.attemptsSuccess} " + + "Failure=${monitor.attemptsFailure} " + + "Error=${monitor.attemptsError} " + + "Pending=${monitor.tasksPending} " + + "Active=${monitor.tasksActive}", + ) + + // Note that these values have been verified beforehand + assertAll( + { assertEquals(0, monitor.tasksTerminated) { "Idle time incorrect" } }, + { assertEquals(1, monitor.tasksCompleted) { "Idle time incorrect" } }, + { assertEquals(4296000, monitor.idleTime) { "Idle time incorrect" } }, + { assertEquals(5004000, monitor.activeTime) { "Active time incorrect" } }, + { assertEquals(0, monitor.stealTime) { "Steal time incorrect" } }, + { assertEquals(0, monitor.lostTime) { "Lost time incorrect" } }, + { assertEquals(2860800.0, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, + ) + } + + /** + * Test a small simulation setup. + */ + @Test + fun testSmall() = + runSimulation { + val seed = 1L + val workload = createTestWorkload("bitbrains-small", 0.25, seed) val topology = createTopology("single.json") - val workload = createTestWorkload(0.25, seed) val monitor = monitor Provisioner(dispatcher, seed).use { provisioner -> @@ -229,16 +274,72 @@ class ScenarioIntegrationTest { ) val service = provisioner.registry.resolve("compute.opendc.org", ComputeService::class.java)!! - service.replay(timeSource, workload, seed = seed, failureModelSpec = null) + service.replay(timeSource, workload, seed = seed) } + println( + "Scheduler " + + "Success=${monitor.attemptsSuccess} " + + "Failure=${monitor.attemptsFailure} " + + "Error=${monitor.attemptsError} " + + "Pending=${monitor.tasksPending} " + + "Active=${monitor.tasksActive}", + ) + // Note that these values have been verified beforehand assertAll( - { assertEquals(1404277711, monitor.idleTime) { "Idle time incorrect" } }, - { assertEquals(1478675712, monitor.activeTime) { "Active time incorrect" } }, - { assertEquals(152, monitor.stealTime) { "Steal time incorrect" } }, + { assertEquals(1803918601, monitor.idleTime) { "Idle time incorrect" } }, + { assertEquals(787181585, monitor.activeTime) { "Active time incorrect" } }, + { assertEquals(0, monitor.stealTime) { "Steal time incorrect" } }, { assertEquals(0, monitor.lostTime) { "Lost time incorrect" } }, - { assertEquals(360369187, monitor.uptime) { "Uptime incorrect" } }, + { assertEquals(6.756768E8, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, + ) + } + + /** + * Test a large simulation setup. + */ + @Test + fun testLarge() = + runSimulation { + val seed = 0L + val workload = createTestWorkload("bitbrains-small", 1.0, seed) + val topology = createTopology("multi.json") + val monitor = monitor + + Provisioner(dispatcher, seed).use { provisioner -> + provisioner.runSteps( + setupComputeService(serviceDomain = "compute.opendc.org", { computeScheduler }), + registerComputeMonitor(serviceDomain = "compute.opendc.org", monitor), + setupHosts(serviceDomain = "compute.opendc.org", topology), + ) + + val service = provisioner.registry.resolve("compute.opendc.org", ComputeService::class.java)!! + service.replay(timeSource, workload, seed = seed) + } + + println( + "Scheduler " + + "Success=${monitor.attemptsSuccess} " + + "Failure=${monitor.attemptsFailure} " + + "Error=${monitor.attemptsError} " + + "Pending=${monitor.tasksPending} " + + "Active=${monitor.tasksActive}", + ) + + // Note that these values have been verified beforehand + assertAll( + { assertEquals(50, monitor.attemptsSuccess, "The scheduler should schedule 50 VMs") }, + { assertEquals(50, monitor.tasksCompleted, "The scheduler should schedule 50 VMs") }, + { assertEquals(0, monitor.tasksTerminated, "The scheduler should schedule 50 VMs") }, + { assertEquals(0, monitor.tasksActive, "All VMs should finish after a run") }, + { assertEquals(0, monitor.attemptsFailure, "No VM should be unscheduled") }, + { assertEquals(0, monitor.tasksPending, "No VM should not be in the queue") }, + { assertEquals(43101788258, monitor.idleTime) { "Incorrect idle time" } }, + { assertEquals(3489412702, monitor.activeTime) { "Incorrect active time" } }, + { assertEquals(0, monitor.stealTime) { "Incorrect steal time" } }, + { assertEquals(0, monitor.lostTime) { "Incorrect lost time" } }, + { assertEquals(1.0016592256E10, monitor.energyUsage, 1E4) { "Incorrect energy usage" } }, ) } @@ -246,10 +347,11 @@ class ScenarioIntegrationTest { * Obtain the trace reader for the test. */ private fun createTestWorkload( + traceName: String, fraction: Double, seed: Long, - ): List { - val source = trace("bitbrains-small").sampleByLoad(fraction) + ): List { + val source = trace(traceName).sampleByLoad(fraction) return source.resolve(workloadLoader, Random(seed)) } @@ -257,7 +359,7 @@ class ScenarioIntegrationTest { * Obtain the topology factory for the test. */ private fun createTopology(name: String): List { - val stream = checkNotNull(object {}.javaClass.getResourceAsStream("/env/$name")) + val stream = checkNotNull(object {}.javaClass.getResourceAsStream("/topologies/$name")) return stream.use { clusterTopology(stream) } } @@ -267,13 +369,17 @@ class ScenarioIntegrationTest { var attemptsError = 0 var tasksPending = 0 var tasksActive = 0 + var tasksTerminated = 0 + var tasksCompleted = 0 override fun record(reader: ServiceTableReader) { attemptsSuccess = reader.attemptsSuccess attemptsFailure = reader.attemptsFailure - attemptsError = reader.attemptsError + attemptsError = 0 tasksPending = reader.tasksPending tasksActive = reader.tasksActive + tasksTerminated = reader.tasksTerminated + tasksCompleted = reader.tasksCompleted } var idleTime = 0L diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/failureTraces/11_failures.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/failureTraces/11_failures.parquet new file mode 100644 index 000000000..dbd93acb8 Binary files /dev/null and b/opendc-experiments/opendc-experiments-base/src/test/resources/failureTraces/11_failures.parquet differ diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/failureTraces/single_failure.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/failureTraces/single_failure.parquet new file mode 100644 index 000000000..d1f8b8533 Binary files /dev/null and b/opendc-experiments/opendc-experiments-base/src/test/resources/failureTraces/single_failure.parquet differ diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/env/multi.json b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/multi.json similarity index 100% rename from opendc-experiments/opendc-experiments-base/src/test/resources/env/multi.json rename to opendc-experiments/opendc-experiments-base/src/test/resources/topologies/multi.json diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/env/single.json b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/single.json similarity index 65% rename from opendc-experiments/opendc-experiments-base/src/test/resources/env/single.json rename to opendc-experiments/opendc-experiments-base/src/test/resources/topologies/single.json index f69b21be0..de66bfc26 100644 --- a/opendc-experiments/opendc-experiments-base/src/test/resources/env/single.json +++ b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/single.json @@ -9,15 +9,15 @@ "name": "H01", "cpu": { - "coreCount": 8, - "coreSpeed": 3200 + "coreCount": 12, + "coreSpeed": 3300, + "count": 1 }, "memory": { - "memorySize": 128000 + "memorySize": 140457600000 } } ] } ] } - diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/trace/bitbrains-small/fragments.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/traces/bitbrains-small/fragments.parquet similarity index 100% rename from opendc-experiments/opendc-experiments-base/src/test/resources/trace/bitbrains-small/fragments.parquet rename to opendc-experiments/opendc-experiments-base/src/test/resources/traces/bitbrains-small/fragments.parquet diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/trace/bitbrains-small/interference-model.json b/opendc-experiments/opendc-experiments-base/src/test/resources/traces/bitbrains-small/interference-model.json similarity index 100% rename from opendc-experiments/opendc-experiments-base/src/test/resources/trace/bitbrains-small/interference-model.json rename to opendc-experiments/opendc-experiments-base/src/test/resources/traces/bitbrains-small/interference-model.json diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/trace/bitbrains-small/tasks.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/traces/bitbrains-small/tasks.parquet similarity index 100% rename from opendc-experiments/opendc-experiments-base/src/test/resources/trace/bitbrains-small/tasks.parquet rename to opendc-experiments/opendc-experiments-base/src/test/resources/traces/bitbrains-small/tasks.parquet diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/traces/single_task/fragments.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/traces/single_task/fragments.parquet new file mode 100644 index 000000000..94a2d69ee Binary files /dev/null and b/opendc-experiments/opendc-experiments-base/src/test/resources/traces/single_task/fragments.parquet differ diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/traces/single_task/tasks.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/traces/single_task/tasks.parquet new file mode 100644 index 000000000..2a7da2eb6 Binary files /dev/null and b/opendc-experiments/opendc-experiments-base/src/test/resources/traces/single_task/tasks.parquet differ diff --git a/opendc-experiments/opendc-experiments-faas/build.gradle.kts b/opendc-experiments/opendc-experiments-faas/build.gradle.kts deleted file mode 100644 index d217f320d..000000000 --- a/opendc-experiments/opendc-experiments-faas/build.gradle.kts +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "Support library for simulating FaaS workloads with OpenDC" - -// Build configuration -plugins { - `kotlin-library-conventions` - `testing-conventions` - `jacoco-conventions` -} - -dependencies { - api(projects.opendcFaas.opendcFaasSimulator) - - implementation(libs.kotlin.logging) - implementation(libs.jackson.dataformat.csv) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-simulator"))) - - testImplementation(libs.slf4j.simple) - testImplementation(projects.opendcSimulator.opendcSimulatorCore) -} diff --git a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FaaSServiceProvisioningStep.kt b/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FaaSServiceProvisioningStep.kt deleted file mode 100644 index 6c8cc0a2e..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FaaSServiceProvisioningStep.kt +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.faas - -import org.opendc.compute.simulator.provisioner.ProvisioningContext -import org.opendc.compute.simulator.provisioner.ProvisioningStep -import org.opendc.faas.service.FaaSService -import org.opendc.faas.service.autoscaler.FunctionTerminationPolicy -import org.opendc.faas.service.router.RoutingPolicy -import org.opendc.faas.simulator.SimFunctionDeployer -import org.opendc.faas.simulator.delay.ColdStartModel -import org.opendc.faas.simulator.delay.StochasticDelayInjector -import org.opendc.faas.simulator.delay.ZeroDelayInjector -import org.opendc.simulator.compute.model.MachineModel -import java.util.Random - -/** - * A [ProvisioningStep] implementation for a [FaaSService]. - * - * @param serviceDomain The domain name under which to register the compute service. - * @param routingPolicy The routing policy to use. - * @param terminationPolicy The function termination policy to use. - * @param machineModel The [MachineModel] that models the physical machine on which the functions run. - * @param coldStartModel The cold start models to test. - */ -public class FaaSServiceProvisioningStep internal constructor( - private val serviceDomain: String, - private val routingPolicy: (ProvisioningContext) -> RoutingPolicy, - private val terminationPolicy: (ProvisioningContext) -> FunctionTerminationPolicy, - private val machineModel: MachineModel, - private val coldStartModel: ColdStartModel?, -) : ProvisioningStep { - override fun apply(ctx: ProvisioningContext): AutoCloseable { - val delayInjector = - if (coldStartModel != null) { - StochasticDelayInjector(coldStartModel, Random(ctx.seeder.nextLong())) - } else { - ZeroDelayInjector - } - val deployer = SimFunctionDeployer(ctx.dispatcher, machineModel, delayInjector) - val service = - FaaSService( - ctx.dispatcher, - deployer, - routingPolicy(ctx), - terminationPolicy(ctx), - ) - - ctx.registry.register(serviceDomain, FaaSService::class.java, service) - - return AutoCloseable { service.close() } - } -} diff --git a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FaaSSteps.kt b/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FaaSSteps.kt deleted file mode 100644 index a84fe0924..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FaaSSteps.kt +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -@file:JvmName("FaaSSteps") - -package org.opendc.experiments.faas - -import org.opendc.compute.simulator.provisioner.ProvisioningContext -import org.opendc.compute.simulator.provisioner.ProvisioningStep -import org.opendc.faas.service.FaaSService -import org.opendc.faas.service.autoscaler.FunctionTerminationPolicy -import org.opendc.faas.service.router.RoutingPolicy -import org.opendc.faas.simulator.delay.ColdStartModel -import org.opendc.simulator.compute.model.MachineModel - -/** - * Return a [ProvisioningStep] that sets up a [FaaSService]. - * - * @param serviceDomain The domain name under which to register the compute service. - * @param routingPolicy The routing policy to use. - * @param terminationPolicy The function termination policy to use. - * @param machineModel The [MachineModel] that models the physical machine on which the functions run. - * @param coldStartModel The cold start models to test. - */ -public fun setupFaaSService( - serviceDomain: String, - routingPolicy: (ProvisioningContext) -> RoutingPolicy, - terminationPolicy: (ProvisioningContext) -> FunctionTerminationPolicy, - machineModel: MachineModel, - coldStartModel: ColdStartModel? = null, -): ProvisioningStep { - return FaaSServiceProvisioningStep(serviceDomain, routingPolicy, terminationPolicy, machineModel, coldStartModel) -} diff --git a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionSample.kt b/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionSample.kt deleted file mode 100644 index 4ca84da77..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionSample.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.faas - -/** - * A sample of a single function. - * - * @param timestamp The timestamp of the function. - * @param duration The average execution time of the function. - * @param invocations The number of invocations. - * @param provisionedCpu The provisioned CPU for this function in MHz. - * @param provisionedMem The amount of memory provisioned for this function in MB. - * @param cpuUsage The actual CPU usage in MHz. - * @param memUsage The actual memory usage in MB. - */ -public data class FunctionSample( - val timestamp: Long, - val duration: Long, - val invocations: Int, - val provisionedCpu: Int, - val provisionedMem: Int, - val cpuUsage: Double, - val memUsage: Double, -) diff --git a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionTrace.kt b/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionTrace.kt deleted file mode 100644 index 5268811ce..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionTrace.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.faas - -/** - * A trace for a single function - */ -public data class FunctionTrace(val id: String, val maxMemory: Int, val samples: List) diff --git a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionTraceWorkload.kt b/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionTraceWorkload.kt deleted file mode 100644 index e3345fb48..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/FunctionTraceWorkload.kt +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.faas - -import org.opendc.faas.simulator.workload.SimFaaSWorkload -import org.opendc.simulator.compute.workload.SimTrace -import org.opendc.simulator.compute.workload.SimTraceFragment -import org.opendc.simulator.compute.workload.SimWorkload - -/** - * A [SimFaaSWorkload] for a [FunctionTrace]. - */ -public class FunctionTraceWorkload(trace: FunctionTrace) : - SimFaaSWorkload, - SimWorkload by SimTrace.ofFragments( - trace.samples.map { - SimTraceFragment(it.timestamp + it.duration, it.cpuUsage, 1) - }, - ).createWorkload(0) { - override suspend fun invoke() {} -} diff --git a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/ServerlessTraceReader.kt b/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/ServerlessTraceReader.kt deleted file mode 100644 index 09412961c..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/ServerlessTraceReader.kt +++ /dev/null @@ -1,138 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.faas - -import com.fasterxml.jackson.core.JsonToken -import com.fasterxml.jackson.dataformat.csv.CsvFactory -import com.fasterxml.jackson.dataformat.csv.CsvParser -import com.fasterxml.jackson.dataformat.csv.CsvSchema -import mu.KotlinLogging -import java.io.File -import kotlin.math.max - -/** - * A trace reader for the serverless workload trace used in the OpenDC Serverless thesis. - */ -public class ServerlessTraceReader { - /** - * The logger for this trace reader instance. - */ - private val logger = KotlinLogging.logger {} - - /** - * The [CsvFactory] used to create the parser. - */ - private val factory = - CsvFactory() - .enable(CsvParser.Feature.ALLOW_COMMENTS) - .enable(CsvParser.Feature.TRIM_SPACES) - - /** - * Parse the traces at the specified [path]. - */ - public fun parse(path: File): List { - return if (path.isFile) { - listOf(parseSingle(path)) - } else { - path.walk() - .filterNot { it.isDirectory } - .sorted() - .map { file -> - logger.info { "Parsing $file" } - parseSingle(file) - } - .toList() - } - } - - /** - * Parse a single trace. - */ - private fun parseSingle(path: File): FunctionTrace { - val samples = mutableListOf() - - val parser = factory.createParser(path) - parser.schema = schema - - var id = "" - var timestamp = 0L - var invocations = 0 - var execTime = 0L - var provisionedCpu = 0 - var provisionedMem = 0 - var cpuUsage = 0.0 - var memUsage = 0.0 - var maxMemory = 0 - - while (!parser.isClosed) { - val token = parser.nextValue() - if (token == JsonToken.END_OBJECT) { - maxMemory = max(maxMemory, provisionedMem) - samples.add(FunctionSample(timestamp, execTime, invocations, provisionedCpu, provisionedMem, cpuUsage, memUsage)) - - id = "" - timestamp = 0 - invocations = 0 - execTime = 0 - provisionedCpu = 0 - provisionedMem = 0 - cpuUsage = 0.0 - memUsage = 0.0 - - continue - } - - when (parser.currentName) { - "Timestamp [ms]" -> timestamp = parser.valueAsLong - "Invocations" -> invocations = parser.valueAsInt - "Avg Exec time per Invocation" -> execTime = parser.valueAsLong - "Provisioned CPU [Mhz]" -> provisionedCpu = parser.valueAsInt - "Provisioned Memory [mb]" -> provisionedMem = parser.valueAsInt - "Avg cpu usage per Invocation [Mhz]" -> cpuUsage = parser.valueAsDouble - "Avg mem usage per Invocation [mb]" -> memUsage = parser.valueAsDouble - "name" -> id = parser.text - } - } - - return FunctionTrace(id, maxMemory, samples) - } - - private companion object { - /** - * The [CsvSchema] that is used to parse the trace. - */ - val schema = - CsvSchema.builder() - .addColumn("Timestamp [ms]", CsvSchema.ColumnType.NUMBER) - .addColumn("Invocations", CsvSchema.ColumnType.NUMBER) - .addColumn("Avg Exec time per Invocation", CsvSchema.ColumnType.NUMBER) - .addColumn("Provisioned CPU [Mhz]", CsvSchema.ColumnType.NUMBER) - .addColumn("Provisioned Memory [mb]", CsvSchema.ColumnType.NUMBER) - .addColumn("Avg cpu usage per Invocation [Mhz]", CsvSchema.ColumnType.NUMBER) - .addColumn("Avg mem usage per Invocation [mb]", CsvSchema.ColumnType.NUMBER) - .addColumn("name", CsvSchema.ColumnType.STRING) - .setAllowComments(true) - .setUseHeader(true) - .build() - } -} diff --git a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/TraceHelpers.kt b/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/TraceHelpers.kt deleted file mode 100644 index faa13fa25..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/main/kotlin/org/opendc/experiments/faas/TraceHelpers.kt +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -@file:JvmName("TraceHelpers") - -package org.opendc.experiments.faas - -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch -import org.opendc.faas.service.FaaSService -import java.time.InstantSource -import kotlin.math.max - -/** - * Run a simulation of the [FaaSService] by replaying the workload trace given by [trace]. - * - * @param clock An [InstantSource] instance tracking simulation time. - * @param trace The trace to simulate. - */ -public suspend fun FaaSService.replay( - clock: InstantSource, - trace: List, -) { - val client = newClient() - try { - coroutineScope { - for (entry in trace) { - launch { - val workload = FunctionTraceWorkload(entry) - val function = client.newFunction(entry.id, entry.maxMemory.toLong(), meta = mapOf("workload" to workload)) - - var offset = Long.MIN_VALUE - - for (sample in entry.samples) { - if (sample.invocations == 0) { - continue - } - - if (offset < 0) { - offset = sample.timestamp - clock.millis() - } - - delay(max(0, (sample.timestamp - offset) - clock.millis())) - - repeat(sample.invocations) { - function.invoke() - } - } - } - } - } - } finally { - client.close() - } -} diff --git a/opendc-experiments/opendc-experiments-faas/src/test/kotlin/org/opendc/experiments/faas/FaaSExperiment.kt b/opendc-experiments/opendc-experiments-faas/src/test/kotlin/org/opendc/experiments/faas/FaaSExperiment.kt deleted file mode 100644 index 49d7d4899..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/test/kotlin/org/opendc/experiments/faas/FaaSExperiment.kt +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.faas - -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.opendc.compute.simulator.provisioner.Provisioner -import org.opendc.faas.service.FaaSService -import org.opendc.faas.service.autoscaler.FunctionTerminationPolicyFixed -import org.opendc.faas.service.router.RandomRoutingPolicy -import org.opendc.faas.simulator.delay.ColdStartModel -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.kotlin.runSimulation -import java.io.File -import java.time.Duration - -/** - * Integration test to demonstrate a FaaS experiment. - */ -class FaaSExperiment { - /** - * Smoke test that simulates a small trace. - */ - @Test - fun testSmoke() = - runSimulation { - val faasService = "faas.opendc.org" - - Provisioner(dispatcher, seed = 0L).use { provisioner -> - provisioner.runStep( - setupFaaSService( - faasService, - { RandomRoutingPolicy() }, - { FunctionTerminationPolicyFixed(it.dispatcher, timeout = Duration.ofMinutes(10)) }, - createMachineModel(), - coldStartModel = ColdStartModel.GOOGLE, - ), - ) - - val service = provisioner.registry.resolve(faasService, FaaSService::class.java)!! - - val trace = ServerlessTraceReader().parse(File("src/test/resources/trace")) - service.replay(timeSource, trace) - - val stats = service.getSchedulerStats() - - assertAll( - { assertEquals(14, stats.totalInvocations) }, - { assertEquals(2, stats.timelyInvocations) }, - { assertEquals(12, stats.delayedInvocations) }, - ) - } - } - - /** - * Construct the machine model to test with. - */ - private fun createMachineModel(): MachineModel { - return MachineModel( - // cpus - Cpu(0, 2, 1000.0, "Intel", "Xeon", "amd64"), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - } -} diff --git a/opendc-experiments/opendc-experiments-faas/src/test/kotlin/org/opendc/experiments/faas/ServerlessTraceReaderTest.kt b/opendc-experiments/opendc-experiments-faas/src/test/kotlin/org/opendc/experiments/faas/ServerlessTraceReaderTest.kt deleted file mode 100644 index bc4f54573..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/test/kotlin/org/opendc/experiments/faas/ServerlessTraceReaderTest.kt +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.faas - -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertAll -import java.io.File - -/** - * Test suite for [ServerlessTraceReader]. - */ -class ServerlessTraceReaderTest { - @Test - fun testSmoke() { - val path = File("src/test/resources/trace") - val trace = ServerlessTraceReader().parse(path) - - assertAll( - { assertEquals(2, trace.size) }, - { assertEquals("004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78", trace[0].id) }, - { assertEquals(256, trace[0].maxMemory) }, - ) - } -} diff --git a/opendc-experiments/opendc-experiments-faas/src/test/resources/trace/1.csv b/opendc-experiments/opendc-experiments-faas/src/test/resources/trace/1.csv deleted file mode 100644 index 03a10d071..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/test/resources/trace/1.csv +++ /dev/null @@ -1,10081 +0,0 @@ -Timestamp [ms],Invocations, Avg Exec time per Invocation,Provisioned CPU [Mhz],Provisioned Memory [mb], Avg cpu usage per Invocation [Mhz], Avg mem usage per Invocation [mb],name -60000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -1980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -2940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -3960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -4980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -5940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -6960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7260000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -7980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -8940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -9960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -10980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -11940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -12960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -13980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14460000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -14940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -15960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -16980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -17940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -18960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -19980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -20940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21660000,2,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -21960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -22980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -23940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -24960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -25980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -26940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -27960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28860000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -28980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -29940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -30960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -31980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -32940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -33960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -34980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -35940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36060000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -36960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -37980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -38940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -39960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -40980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -41940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -42960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43260000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -43980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -44940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -45960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -46980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -47940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -48960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -49980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50460000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -50940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -51960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -52980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -53940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -54960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -55980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -56940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57660000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -57960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -58980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -59940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -60960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -61980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -62940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -63960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64860000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -64980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -65940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -66960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -67980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -68940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -69960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -70980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -71940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72060000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72120000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -72960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -73980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -74940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -75960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -76980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -77940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -78960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79260000,1,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -79980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -80940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -81960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -82980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83460000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83520000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83580000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83640000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83700000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83760000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83820000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83880000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -83940000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84000000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84060000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84120000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84180000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84240000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84300000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84360000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84420000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84480000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84540000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84600000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84660000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84720000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84780000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84840000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84900000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -84960000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85020000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85080000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85140000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85200000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85260000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85320000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85380000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85440000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85500000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85560000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85620000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85680000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85740000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85800000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85860000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85920000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -85980000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86040000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86100000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86160000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86220000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86280000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86340000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86400000,0,300262,100,256,0.0,2.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -86940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -87960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -88980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -89940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -90960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -91980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -92940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -93960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -94980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -95940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -96960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -97980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -98940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -99960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -100980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -101940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -102960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -103980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -104940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -105960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -106980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -107940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -108960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -109980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -110940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -111960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -112980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -113940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -114960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -115980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -116940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -117960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -118980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -119940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -120960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -121980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -122940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -123960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -124980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -125940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -126960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -127980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -128940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -129960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -130980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -131940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -132960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -133980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -134940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -135960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -136980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -137940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -138960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -139980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -140940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -141960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -142980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -143940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -144960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -145980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -146940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -147960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -148980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -149940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -150960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -151980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -152940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -153960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -154980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -155940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -156960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -157980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -158940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -159960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -160980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -161940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -162960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -163980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -164940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -165960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -166980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -167940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -168960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -169980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -170940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -171960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -172980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -173940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -174960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -175980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -176940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -177960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -178980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -179940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -180960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -181980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -182940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -183960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -184980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -185940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -186960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -187980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -188940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -189960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -190980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -191940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -192960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -193980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -194940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -195960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -196980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -197940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -198960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -199980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -200940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -201960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -202980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -203940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -204960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -205980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -206940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -207960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -208980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -209940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -210960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -211980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -212940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -213960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -214980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -215940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -216960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -217980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -218940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -219960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -220980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -221940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -222960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -223980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -224940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -225960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -226980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -227940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -228960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -229980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -230940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -231960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -232980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -233940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -234960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -235980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -236940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -237960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -238980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -239940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -240960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -241980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -242940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -243960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -244980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -245940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -246960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -247980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -248940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -249960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -250980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -251940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -252960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -253980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -254940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -255960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -256980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -257940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -258960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -259980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -260940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -261960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -262980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -263940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -264960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -265980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -266940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -267960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -268980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -269940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -270960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -271980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -272940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -273960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -274980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -275940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -276960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -277980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -278940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -279960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -280980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -281940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -282960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -283980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -284940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -285960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -286980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -287940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -288960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -289980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -290940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -291960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -292980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -293940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -294960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -295980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -296940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -297960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -298980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -299940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -300960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -301980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -302940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -303960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -304980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -305940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -306960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -307980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -308940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -309960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -310980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -311940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -312960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -313980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -314940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -315960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -316980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -317940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -318960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -319980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -320940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -321960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -322980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -323940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -324960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -325980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -326940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -327960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -328980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -329940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -330960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -331980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -332940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -333960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -334980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -335940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -336960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -337980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -338940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -339960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -340980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -341940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -342960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -343980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -344940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -345960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -346980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -347940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -348960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -349980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -350940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -351960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -352980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -353940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -354960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -355980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -356940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -357960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -358980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -359940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -360960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -361980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -362940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -363960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -364980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -365940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -366960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -367980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -368940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -369960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -370980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -371940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -372960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -373980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -374940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -375960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -376980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -377940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -378960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -379980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -380940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -381960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -382980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -383940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -384960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -385980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -386940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -387960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -388980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -389940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -390960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -391980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -392940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -393960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -394980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -395940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -396960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -397980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -398940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -399960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -400980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -401940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -402960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -403980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -404940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -405960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -406980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -407940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -408960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -409980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -410940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -411960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -412980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -413940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -414960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -415980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -416940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -417960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -418980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -419940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -420960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -421980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -422940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -423960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -424980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -425940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -426960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -427980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -428940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -429960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -430980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -431940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -432960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -433980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -434940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -435960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -436980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -437940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -438960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -439980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -440940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -441960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -442980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -443940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -444960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -445980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -446940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -447960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -448980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -449940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -450960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -451980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -452940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -453960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -454980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -455940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -456960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -457980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -458940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -459960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -460980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -461940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -462960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -463980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -464940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -465960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -466980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -467940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -468960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -469980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -470940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -471960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -472980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -473940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -474960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -475980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -476940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -477960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -478980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -479940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -480960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -481980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -482940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -483960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -484980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -485940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -486960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -487980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -488940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -489960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -490980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -491940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -492960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -493980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -494940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -495960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -496980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -497940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -498960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -499980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -500940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -501960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -502980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -503940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -504960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -505980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -506940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -507960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -508980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -509940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -510960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -511980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -512940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -513960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -514980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -515940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -516960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -517980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -518940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -519960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -520980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -521940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -522960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -523980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -524940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -525960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -526980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -527940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -528960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -529980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -530940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -531960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -532980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -533940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -534960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -535980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -536940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -537960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -538980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -539940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -540960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -541980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -542940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -543960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -544980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -545940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -546960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -547980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -548940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -549960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -550980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -551940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -552960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -553980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -554940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -555960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -556980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -557940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -558960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -559980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -560940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -561960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -562980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -563940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -564960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -565980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -566940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -567960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -568980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -569940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -570960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -571980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -572940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -573960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -574980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -575940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -576960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -577980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -578940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -579960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -580980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -581940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -582960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -583980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -584940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -585960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -586980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -587940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -588960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -589980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -590940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -591960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -592980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -593940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -594960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -595980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -596940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -597960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -598980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -599940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -600960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601860000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601920000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -601980000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602040000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602100000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602160000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602220000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602280000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602340000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602400000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602460000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602520000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602580000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602640000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602700000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602760000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602820000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602880000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -602940000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603000000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603060000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603120000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603180000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603240000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603300000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603360000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603420000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603480000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603540000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603600000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603660000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603720000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603780000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603840000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603900000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -603960000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604020000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604080000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604140000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604200000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604260000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604320000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604380000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604440000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604500000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604560000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604620000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604680000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604740000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 -604800000,0,0,100,256,0.0,0.0,004c1ea5eb15978682b00ab659aed21e2835d5287668da8d5267f751fdfbdd78 diff --git a/opendc-experiments/opendc-experiments-faas/src/test/resources/trace/10.csv b/opendc-experiments/opendc-experiments-faas/src/test/resources/trace/10.csv deleted file mode 100644 index 0046b0e52..000000000 --- a/opendc-experiments/opendc-experiments-faas/src/test/resources/trace/10.csv +++ /dev/null @@ -1,10081 +0,0 @@ -Timestamp [ms],Invocations, Avg Exec time per Invocation,Provisioned CPU [Mhz],Provisioned Memory [mb], Avg cpu usage per Invocation [Mhz], Avg mem usage per Invocation [mb],name -60000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -1980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -2940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -3960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -4980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -5940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -6960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -7980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -8940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -9960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -10980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -11940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -12960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -13980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -14940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -15960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -16980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -17940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -18960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -19980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -20940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -21960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -22980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -23940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -24960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -25980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -26940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -27960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -28980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -29940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -30960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -31980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -32940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -33960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -34980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -35940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -36960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -37980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -38940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -39960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -40980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -41940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -42960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -43980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -44940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -45960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -46980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -47940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -48960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -49980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -50940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -51960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -52980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -53940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -54960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -55980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -56940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -57960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -58980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -59940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -60960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -61980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -62940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -63960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -64980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -65940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -66960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -67980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -68940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -69960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -70980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -71940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -72960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -73980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -74940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -75960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -76980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -77940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -78960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -79980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -80940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -81960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -82980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -83940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -84960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -85980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -86940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -87960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -88980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -89940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -90960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -91980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -92940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -93960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -94980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -95940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -96960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -97980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -98940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -99960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -100980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -101940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -102960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -103980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -104940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -105960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -106980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -107940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -108960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -109980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -110940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -111960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -112980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -113940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -114960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -115980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -116940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -117960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -118980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -119940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -120960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -121980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -122940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -123960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -124980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -125940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -126960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -127980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -128940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -129960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -130980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -131940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -132960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -133980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -134940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -135960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -136980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -137940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -138960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -139980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -140940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -141960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -142980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -143940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -144960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -145980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -146940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -147960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -148980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -149940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -150960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -151980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -152940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -153960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -154980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -155940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -156960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -157980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -158940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -159960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -160980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -161940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -162960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -163980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -164940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -165960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -166980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -167940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -168960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -169980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -170940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -171960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -172980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -173940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -174960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -175980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -176940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -177960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -178980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -179940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -180960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -181980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -182940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -183960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -184980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -185940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -186960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -187980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -188940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -189960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -190980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -191940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -192960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -193980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -194940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -195960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -196980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -197940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -198960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -199980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -200940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -201960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -202980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -203940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -204960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -205980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -206940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -207960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -208980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -209940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -210960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -211980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -212940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -213960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -214980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -215940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -216960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -217980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -218940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -219960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -220980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -221940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -222960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -223980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -224940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -225960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -226980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -227940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -228960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -229980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -230940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -231960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -232980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -233940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -234960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -235980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -236940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -237960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -238980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -239940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -240960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -241980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -242940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -243960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -244980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -245940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -246960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -247980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -248940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -249960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -250980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -251940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -252960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -253980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -254940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -255960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -256980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -257940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -258960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -259980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -260940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -261960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -262980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -263940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -264960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -265980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -266940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -267960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -268980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -269940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -270960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -271980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -272940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -273960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -274980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -275940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -276960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -277980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -278940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -279960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -280980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -281940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -282960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -283980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -284940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -285960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -286980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -287940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -288960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -289980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -290940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -291960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -292980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -293940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -294960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -295980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -296940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -297960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -298980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -299940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -300960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -301980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -302940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -303960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -304980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -305940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -306960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -307980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -308940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -309960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -310980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -311940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -312960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -313980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -314940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -315960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -316980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -317940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -318960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -319980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -320940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -321960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -322980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -323940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -324960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -325980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -326940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -327960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -328980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -329940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -330960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -331980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -332940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -333960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -334980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -335940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -336960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -337980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -338940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -339960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -340980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -341940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -342960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -343980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -344940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -345960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -346980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -347940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -348960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -349980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -350940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -351960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -352980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -353940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -354960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -355980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -356940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -357960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -358980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -359940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -360960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -361980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -362940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -363960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -364980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -365940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -366960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -367980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -368940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -369960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -370980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -371940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -372960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -373980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -374940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -375960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -376980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -377940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -378960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -379980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -380940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -381960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -382980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -383940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -384960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -385980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -386940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -387960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -388980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -389940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -390960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -391980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -392940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -393960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -394980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -395940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -396960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -397980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -398940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -399960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -400980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -401940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -402960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -403980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -404940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -405960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -406980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -407940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -408960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -409980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -410940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -411960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -412980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -413940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -414960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -415980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -416940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -417960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -418980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -419940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -420960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -421980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -422940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -423960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -424980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -425940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -426960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -427980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -428940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -429960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -430980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -431940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -432960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -433980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -434940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -435960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -436980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -437940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -438960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -439980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -440940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -441960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -442980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -443940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -444960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -445980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -446940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -447960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -448980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -449940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -450960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -451980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -452940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -453960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -454980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -455940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -456960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -457980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -458940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -459960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -460980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -461940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -462960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -463980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -464940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -465960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -466980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -467940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -468960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -469980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -470940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -471960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -472980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -473940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -474960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -475980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -476940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -477960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -478980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -479940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -480960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -481980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -482940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -483960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -484980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -485940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -486960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -487980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -488940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -489960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -490980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -491940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -492960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -493980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -494940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -495960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -496980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -497940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -498960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -499980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -500940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -501960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -502980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -503940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -504960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -505980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -506940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -507960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -508980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -509940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -510960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -511980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -512940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -513960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -514980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -515940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -516960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -517980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -518940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -519960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -520980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -521940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -522960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -523980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -524940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -525960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -526980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -527940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -528960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -529980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -530940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -531960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -532980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -533940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -534960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -535980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -536940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -537960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -538980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -539940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -540960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -541980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -542940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -543960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -544980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -545940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -546960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -547980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -548940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -549960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -550980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -551940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -552960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -553980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -554940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -555960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -556980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -557940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -558960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -559980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -560940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -561960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -562980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -563940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -564960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -565980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -566940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -567960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -568980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -569940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -570960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -571980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -572940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -573960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -574980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -575940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -576960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -577980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -578940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -579960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -580980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -581940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -582960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -583980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -584940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -585960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -586980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -587940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -588960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -589980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -590940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -591960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -592980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -593940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -594960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -595980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -596940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -597960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -598980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -599940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -600960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601860000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601920000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -601980000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602040000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602100000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602160000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602220000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602280000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602340000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602400000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602460000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602520000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602580000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602640000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602700000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602760000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602820000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602880000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -602940000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603000000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603060000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603120000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603180000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603240000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603300000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603360000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603420000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603480000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603540000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603600000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603660000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603720000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603780000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603840000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603900000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -603960000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604020000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604080000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604140000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604200000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604260000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604320000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604380000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604440000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604500000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604560000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604620000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604680000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604740000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 -604800000,0,0,100,256,0.0,0.0,0b74ea0856e08cfe9c52f7b239ed71b8172a20f8ab343c62988f197066977227 diff --git a/opendc-experiments/opendc-experiments-m3sa/build.gradle.kts b/opendc-experiments/opendc-experiments-m3sa/build.gradle.kts index 6530390b5..9347e5251 100644 --- a/opendc-experiments/opendc-experiments-m3sa/build.gradle.kts +++ b/opendc-experiments/opendc-experiments-m3sa/build.gradle.kts @@ -31,7 +31,6 @@ dependencies { api(libs.kotlinx.coroutines) testImplementation(projects.opendcSimulator.opendcSimulatorCore) - api(projects.opendcCompute.opendcComputeService) api(projects.opendcCompute.opendcComputeSimulator) implementation(libs.clikt) @@ -42,7 +41,6 @@ dependencies { implementation(project(mapOf("path" to ":opendc-simulator:opendc-simulator-core"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-workload"))) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-telemetry"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-topology"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-carbon"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-failure"))) diff --git a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/M3saAnalyzer.kt b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/M3saAnalyzer.kt similarity index 98% rename from opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/M3saAnalyzer.kt rename to opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/M3saAnalyzer.kt index 6b8f8422b..545ed656b 100644 --- a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/M3saAnalyzer.kt +++ b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/M3saAnalyzer.kt @@ -20,6 +20,8 @@ * SOFTWARE. */ +package org.opendc.experiments.m3sa + import kotlin.io.path.Path /** diff --git a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt index 43597ff5c..8036e5b72 100644 --- a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt +++ b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SACli.kt @@ -22,7 +22,7 @@ @file:JvmName("M3SACli") -package org.opendc.experiments.base.runner +package org.opendc.experiments.m3sa.runner import com.github.ajalt.clikt.core.CliktCommand import com.github.ajalt.clikt.parameters.options.default @@ -30,8 +30,9 @@ import com.github.ajalt.clikt.parameters.options.defaultLazy import com.github.ajalt.clikt.parameters.options.option import com.github.ajalt.clikt.parameters.types.file import com.github.ajalt.clikt.parameters.types.int -import m3saAnalyze +import org.opendc.experiments.base.runner.runExperiment import org.opendc.experiments.base.scenario.getExperiment +import org.opendc.experiments.m3sa.m3saAnalyze import org.opendc.experiments.m3sa.scenario.getOutputFolder import java.io.File diff --git a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SARunner.kt b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SARunner.kt index 9a61ad175..89daf5f36 100644 --- a/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SARunner.kt +++ b/opendc-experiments/opendc-experiments-m3sa/src/main/kotlin/org/opendc/experiments/m3sa/runner/M3SARunner.kt @@ -22,8 +22,10 @@ @file:JvmName("M3saCliKt") -package org.opendc.experiments.base.runner +package org.opendc.experiments.m3sa.runner +import org.opendc.experiments.base.runner.runScenario +import org.opendc.experiments.base.runner.setupOutputFolderStructure import org.opendc.experiments.base.scenario.Scenario import java.util.concurrent.ForkJoinPool diff --git a/opendc-experiments/opendc-experiments-tf20/README.md b/opendc-experiments/opendc-experiments-tf20/README.md deleted file mode 100644 index 3b3d00f84..000000000 --- a/opendc-experiments/opendc-experiments-tf20/README.md +++ /dev/null @@ -1,10 +0,0 @@ -TensorFlow with OpenDC -================= - -This module contains a reproduction of the experiments of Wenchen Lai's MSc Computer Science thesis: -Modeling and Simulation of the Google TensorFlow Ecosystem [1] - -The implementations in this module are still experimental and will be moved into OpenDC library space -once the implementations stabilize. - -[1] https://atlarge-research.com/pdfs/lai2020thesis.pdf diff --git a/opendc-experiments/opendc-experiments-tf20/build.gradle.kts b/opendc-experiments/opendc-experiments-tf20/build.gradle.kts deleted file mode 100644 index b66958ca0..000000000 --- a/opendc-experiments/opendc-experiments-tf20/build.gradle.kts +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "TensorFlow application model in OpenDC" - -// Build configuration -plugins { - `kotlin-conventions` - `testing-conventions` -} - -dependencies { - implementation(projects.opendcSimulator.opendcSimulatorCore) - implementation(projects.opendcSimulator.opendcSimulatorCompute) - implementation(projects.opendcCommon) - - implementation(libs.kotlin.logging) - implementation(libs.jackson.module.kotlin) - - testImplementation(libs.slf4j.simple) -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/Models.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/Models.kt deleted file mode 100644 index 78a63df83..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/Models.kt +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20 - -import org.opendc.experiments.tf20.keras.Sequential -import org.opendc.experiments.tf20.keras.TrainableModel -import org.opendc.experiments.tf20.keras.activations.Activation -import org.opendc.experiments.tf20.keras.layer.conv.Conv2D -import org.opendc.experiments.tf20.keras.layer.conv.ConvPadding -import org.opendc.experiments.tf20.keras.layer.core.ActivationLayer -import org.opendc.experiments.tf20.keras.layer.core.Input -import org.opendc.experiments.tf20.keras.layer.pool.Pool2D -import org.opendc.experiments.tf20.keras.layer.regularization.Dropout - -/** - * Construct an AlexNet model with the given batch size. - */ -fun getAlexNet(batchSize: Long): TrainableModel { - return Sequential( - Input(batchSize, 227, 227, 3, name = "Input"), - Conv2D(longArrayOf(11, 11, 3, 96), longArrayOf(1, 4, 4, 1), padding = ConvPadding.VALID, name = "conv1"), - Pool2D(intArrayOf(1, 3, 3, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool1"), - Conv2D(longArrayOf(5, 5, 96, 256), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv2"), - Pool2D(intArrayOf(1, 3, 3, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool2"), - Conv2D(longArrayOf(3, 3, 256, 384), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv3"), - Conv2D(longArrayOf(3, 3, 384, 384), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv4"), - Conv2D(longArrayOf(3, 3, 384, 256), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv5"), - Pool2D(intArrayOf(1, 3, 3, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool5"), - Conv2D(longArrayOf(6, 6, 256, 4096), longArrayOf(1, 1, 1, 1), padding = ConvPadding.VALID, name = "fc6"), - Dropout(0.5f, name = "dropout6"), - Conv2D(longArrayOf(1, 1, 4096, 4096), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "fc7"), - Dropout(0.5f, name = "dropout7"), - Conv2D(longArrayOf(1, 1, 4096, 1000), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "f8"), - ActivationLayer(Activation.Softmax, name = "softmax"), - ) -} - -/** - * Construct an VGG16 model with the given batch size. - */ -fun getVGG16(batchSize: Long = 128): TrainableModel { - return Sequential( - Input(batchSize, 224, 224, 3, name = "Input"), - Conv2D(longArrayOf(3, 3, 3, 64), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv1-1"), - Conv2D(longArrayOf(3, 3, 64, 64), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv1-2"), - Pool2D(intArrayOf(1, 2, 2, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool1"), - Conv2D(longArrayOf(3, 3, 64, 128), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv2-1"), - Conv2D(longArrayOf(3, 3, 128, 128), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv2-2"), - Pool2D(intArrayOf(1, 2, 2, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool2"), - Conv2D(longArrayOf(3, 3, 128, 256), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv3-1"), - Conv2D(longArrayOf(3, 3, 256, 256), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv3-2"), - Conv2D(longArrayOf(3, 3, 256, 256), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv3-3"), - Pool2D(intArrayOf(1, 2, 2, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool3"), - Conv2D(longArrayOf(3, 3, 256, 512), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv4-1"), - Conv2D(longArrayOf(3, 3, 512, 512), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv4-2"), - Conv2D(longArrayOf(3, 3, 512, 512), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv4-3"), - Pool2D(intArrayOf(1, 2, 2, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool4"), - Conv2D(longArrayOf(3, 3, 512, 512), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv5-1"), - Conv2D(longArrayOf(3, 3, 512, 512), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv5-2"), - Conv2D(longArrayOf(3, 3, 512, 512), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "conv5-3"), - Pool2D(intArrayOf(1, 2, 2, 1), intArrayOf(1, 2, 2, 1), padding = ConvPadding.VALID, name = "pool5"), - Conv2D(longArrayOf(7, 7, 512, 4096), longArrayOf(1, 1, 1, 1), padding = ConvPadding.VALID, name = "fc6"), - Dropout(0.5f, name = "dropout6"), - Conv2D(longArrayOf(1, 1, 4096, 4096), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "fc7"), - Dropout(0.5f, name = "dropout7"), - Conv2D(longArrayOf(1, 1, 4096, 1000), longArrayOf(1, 1, 1, 1), padding = ConvPadding.SAME, name = "f8"), - ActivationLayer(Activation.Softmax, name = "softmax"), - ) -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt deleted file mode 100644 index 11e010ec0..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/SimTFDevice.kt +++ /dev/null @@ -1,212 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.core - -import kotlinx.coroutines.delay -import kotlinx.coroutines.suspendCancellableCoroutine -import org.opendc.common.Dispatcher -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.SimMachine -import org.opendc.simulator.compute.SimMachineContext -import org.opendc.simulator.compute.SimPsuFactories -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.power.CpuPowerModel -import org.opendc.simulator.compute.workload.SimWorkload -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.FlowStage -import org.opendc.simulator.flow2.FlowStageLogic -import org.opendc.simulator.flow2.OutPort -import java.util.ArrayDeque -import java.util.UUID -import kotlin.coroutines.Continuation -import kotlin.coroutines.resume -import kotlin.math.ceil -import kotlin.math.roundToLong - -/** - * A [TFDevice] implementation using simulated components. - */ -public class SimTFDevice( - override val uid: UUID, - override val isGpu: Boolean, - dispatcher: Dispatcher, - pu: Cpu, - private val memory: MemoryUnit, - powerModel: CpuPowerModel, -) : TFDevice { - /** - * The [SimMachine] representing the device. - */ - private val machine = - SimBareMetalMachine.create( - FlowEngine.create(dispatcher).newGraph(), - MachineModel(pu, memory), - SimPsuFactories.simple(powerModel), - ) - - /** - * The workload that will be run by the device. - */ - private val workload = - object : SimWorkload, FlowStageLogic { - /** - * The [FlowStage] of the workload. - */ - var stage: FlowStage? = null - - /** - * The output of the workload. - */ - private var output: OutPort? = null - - /** - * The queue of work to run. - */ - val queue = ArrayDeque() - - /** - * A flag to indicate that the workload is idle. - */ - val isIdle - get() = activeWork == null - - /** - * The active work of the workload. - */ - private var activeWork: Work? = null - - /** - * The timestamp of the last pull. - */ - private var lastPull: Long = 0L - - override fun onStart(ctx: SimMachineContext) { - val stage = ctx.graph.newStage(this) - this.stage = stage - output = stage.getOutlet("out") - lastPull = ctx.graph.engine.clock.millis() - - ctx.graph.connect(output, ctx.cpu.input) - } - - override fun onStop(ctx: SimMachineContext) { - stage?.close() - stage = null - output = null - } - - override fun makeSnapshot(now: Long) {} - - override fun setOffset(now: Long) {} - - override fun getSnapshot(): SimWorkload = throw UnsupportedOperationException() - - override fun createCheckpointModel() {} - - override fun getCheckpointInterval(): Long { - return -1 - } - - override fun getCheckpointDuration(): Long { - return -1 - } - - override fun getCheckpointIntervalScaling(): Double { - return -1.0 - } - - override fun onUpdate( - ctx: FlowStage, - now: Long, - ): Long { - val output = output ?: return Long.MAX_VALUE - val lastPull = lastPull - this.lastPull = now - val delta = (now - lastPull).coerceAtLeast(0) - val consumedWork = output.rate * delta / 1000.0 - - val activeWork = activeWork - if (activeWork != null) { - if (activeWork.consume(consumedWork)) { - this.activeWork = null - } else { - val duration = ceil(activeWork.flops / output.capacity * 1000).toLong() - output.push(output.capacity) - return now + duration - } - } - - val queue = queue - val head = queue.poll() - return if (head != null) { - this.activeWork = head - val duration = (head.flops / output.capacity * 1000).roundToLong() - output.push(output.capacity) - now + duration - } else { - output.push(0.0f) - Long.MAX_VALUE - } - } - } - - init { - machine.startWorkload(workload, emptyMap()) {} - } - - override suspend fun load(dataSize: Long) { - val duration = dataSize / memory.speed * 1000 - delay(duration.toLong()) - } - - override suspend fun compute(flops: Double) = - suspendCancellableCoroutine { cont -> - workload.queue.add(Work(flops, cont)) - if (workload.isIdle) { - workload.stage?.invalidate() - } - } - - override fun getDeviceStats(): TFDeviceStats { - return TFDeviceStats(machine.cpuUsage, machine.psu.powerDraw, machine.psu.energyUsage) - } - - override fun close() { - machine.cancel() - } - - private data class Work(var flops: Double, val cont: Continuation) { - fun consume(flops: Double): Boolean { - this.flops -= flops - - if (this.flops <= 0) { - cont.resume(Unit) - return true - } - - return false - } - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDevice.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDevice.kt deleted file mode 100644 index 2d23f5b37..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDevice.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.core - -import java.util.UUID - -/** - * A compute device on which tensor operations are performed. - */ -public interface TFDevice : AutoCloseable { - /** - * The unique identifier of the device. - */ - public val uid: UUID - - /** - * A flag to indicate whether the device is a GPU. - */ - public val isGpu: Boolean - - /** - * Transfer the specified amount of data from memory. - */ - public suspend fun load(dataSize: Long) - - /** - * Perform [flops] amount of computation on the device. - */ - public suspend fun compute(flops: Double) - - /** - * Collect device statistics. - */ - public fun getDeviceStats(): TFDeviceStats -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDeviceStats.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDeviceStats.kt deleted file mode 100644 index c40982f8a..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/core/TFDeviceStats.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.core - -/** - * Statistics about a TensorFlow [TFDevice]. - * - * @property resourceUsage The resource usage of the device (in MHz). - * @property powerDraw The instantaneous power draw of the device (in W). - * @property energyUsage Cumulative energy usage of the device since boot (in J). - */ -data class TFDeviceStats( - val resourceUsage: Double, - val powerDraw: Double, - val energyUsage: Double, -) diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/MirroredStrategy.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/MirroredStrategy.kt deleted file mode 100644 index 69d180a97..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/MirroredStrategy.kt +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.distribute - -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.launch -import org.opendc.experiments.tf20.core.TFDevice - -/** - * A distribution [Strategy] that supports synchronous distributed training on multiple GPUs on one machine. - * - * It creates one replica per GPU device. Each variable in the model is mirrored across all the replicas. - */ -public class MirroredStrategy(val devices: List) : Strategy { - override suspend fun run( - forward: Double, - backward: Double, - batchSize: Int, - ) = coroutineScope { - for (device in devices) { - launch { device.compute(forward * batchSize / devices.size + backward) } - } - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/OneDeviceStrategy.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/OneDeviceStrategy.kt deleted file mode 100644 index 05235b121..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/OneDeviceStrategy.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.distribute - -import org.opendc.experiments.tf20.core.TFDevice - -/** - * A distribution [Strategy] that places all variables and computation on a single specified device. - */ -public class OneDeviceStrategy(val device: TFDevice) : Strategy { - override suspend fun run( - forward: Double, - backward: Double, - batchSize: Int, - ) { - device.compute(forward * batchSize + backward) - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/Strategy.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/Strategy.kt deleted file mode 100644 index d5da628a1..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/distribute/Strategy.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.distribute - -/** - * A strategy for distributing TensorFlow state and computation over multiple devices. - */ -public interface Strategy { - /** - * Converge the specified batch using the given strategy. - */ - public suspend fun run( - forward: Double, - backward: Double, - batchSize: Int, - ) -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/Sequential.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/Sequential.kt deleted file mode 100644 index 83995fa1b..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/Sequential.kt +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras - -import org.opendc.experiments.tf20.keras.layer.Layer -import org.opendc.experiments.tf20.keras.layer.core.Input -import org.opendc.experiments.tf20.keras.shape.TensorShape - -/** - * Sequential model groups a linear stack of layers into a TensorFlow TrainableModel. - * - * @param [layers] The layers to describe the model design. - */ -public class Sequential(vararg layers: Layer) : TrainableModel(*layers) { - override fun buildLayers() { - val inputShape = TensorShape(*inputLayer.packedDims) - inputLayer.inputTensor = inputShape - inputLayer.build(inputShape) - var nextShape: TensorShape = inputLayer.getOutputShape(inputShape) - inputLayer.outputTensor = nextShape - - layers.filter { it !is Input }.forEach { - it.inputTensor = nextShape - it.build(nextShape) - - nextShape = it.getOutputShape(nextShape) - it.outputTensor = nextShape - } - } - - override fun forward(): Double { - return layers.sumOf { it.forward() } - } - - override fun backward(): Double { - return layers.sumOf { it.backward() } - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/TrainableModel.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/TrainableModel.kt deleted file mode 100644 index 2d621d16c..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/TrainableModel.kt +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras - -import org.opendc.experiments.tf20.distribute.Strategy -import org.opendc.experiments.tf20.keras.layer.Layer -import org.opendc.experiments.tf20.keras.layer.core.Input - -/** - * A model groups layers into an object with training and inference features. - */ -public abstract class TrainableModel(vararg layers: Layer) : AutoCloseable { - /** - * The layers to describe the model design. Main part of the internal state of the model. - */ - public val layers: List = listOf(*layers) - - /** - * First layer that is responsible for the input shape of the Neural Network. - */ - public val inputLayer: Input - get() = layers[0] as Input - - /** - * Returns input dimensions in order HWC (height, width, channels) - */ - public val inputDimensions: LongArray - get() = (layers[0] as Input).packedDims - - /** - * Layers indexed by name. - */ - protected val layersByName: MutableMap = mutableMapOf() - - /** - * A flag to indicate that the model is compiled. - */ - public var isCompiled: Boolean = false - private set - - /** - * The strategy that is being used. - */ - private lateinit var strategy: Strategy - - /** - * Common method for building the initial part of the model static graph. - */ - protected abstract fun buildLayers() - - /** - * Perform a forward propagation. - */ - protected abstract fun forward(): Double - - /** - * Perform a backward propagation. - */ - protected abstract fun backward(): Double - - init { - for (layer in layers) { - if (layersByName.containsKey(layer.name)) { - throw IllegalArgumentException(layer.name) - } else { - layersByName[layer.name] = layer - } - - layer.parentModel = this - } - } - - /** - * Configures the model for training. - * - * @param strategy The distribution strategy for training. - */ - public fun compile(strategy: Strategy) { - check(!isCompiled) { "Model is already compiled." } - - buildLayers() - - this.strategy = strategy - this.isCompiled = true - } - - /** - * Train the model for a fixed number of [epochs] (iterations over a dataset). - * - * @param [epochs] Number of epochs to train the model. An epoch is an iteration over the entire x and y data provided. - * @param [batchSize] Number of samples per gradient update. - */ - public suspend fun fit( - epochs: Int = 5, - batchSize: Int = 32, - ) { - check(isCompiled) { "Model not yet compiled." } - - val forwardFlops = forward() - val backwardFlops = backward() - - for (i in 1..epochs) { - strategy.run(forwardFlops, backwardFlops, batchSize) - } - } - - override fun close() { - } - - override fun toString(): String { - return "TrainableModel ${super.toString()}" - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/activations/Activation.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/activations/Activation.kt deleted file mode 100644 index cb3b778ef..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/activations/Activation.kt +++ /dev/null @@ -1,198 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.activations - -/** - * Neural network hyper-parameter, activation function of a node defines the output of that node given an input or - * set of inputs. - */ -public enum class Activation { - /** - * Linear unit. Returns unmodified input. - * - * NOTE: Doing nothing useful. Returns to ancient times of linear perceptron. - */ - Linear, - - /** - * Sigmoid activation function. - * - * Transforms input 'x' according formula: - * ``` - * sigmoid(x) = 1 / (1 + exp(-x)) - * ``` - * - * For small values (<-5), `sigmoid` returns a value close to zero, and for large values (>5) - * the result of the function gets close to 1. - * - * NOTE: Sigmoid is equivalent to a 2-element ActivationLayer, where the second element is - * assumed to be zero. The sigmoid function always returns a value between 0 and 1. - */ - Sigmoid, - - /** - * Hyperbolic tangent activation function. - * - * Transforms input 'x' according formula: - * ``` - * tanh(x) = sinh(x)/cosh(x) = ((exp(x) - exp(-x))/(exp(x) + exp(-x))) - * ``` - */ - Tanh, - - /** - * Rectified linear unit (ReLU). - * - * With default values, this returns the standard ReLU activation: - * `max(x, 0)`, the element-wise maximum of 0 and the input tensor. - */ - Relu, - - /** - * Computes Rectified Linear 6: - * ``` - * min(max(features, 0), 6) - * ``` - * @see - * Convolutional Deep Belief Networks on CIFAR-10. A. Krizhevsky - */ - Relu6, - - /** - * Exponential Linear Unit. - * - * The exponential linear unit (ELU) with `alpha > 0` is: - * `x` if `x > 0` and `alpha * (exp(x) - 1)` if `x < 0` - * - * For this implementations alpha is equal to 1.0. - * - * The ELU hyperparameter `alpha` controls the value to which an - * ELU saturates for negative net inputs. ELUs diminish the - * vanishing gradient effect. - * - * ELUs have negative values which pushes the mean of the activations closer to zero. - * - * Mean activations that are closer to zero enable faster learning as they - * bring the gradient closer to the natural gradient. - * - * ELUs saturate to a negative value when the argument gets smaller. - * Saturation means a small derivative which decreases the variation - * and the information that is propagated to the next layer. - * - * @see Fast and Accurate Deep Network Learning by Exponential Linear Units - * (ELUs) (Clevert et al, 2016) - */ - Elu, - - /** - * Scaled Exponential Linear Unit (SELU). - * - * The Scaled Exponential Linear Unit (SELU) activation function is defined as: - * ``` - * if x > 0: return scale * x - * if x < 0: return scale * alpha * (exp(x) - 1) - * ``` - * where `alpha` and `scale` are pre-defined constants (`alpha=1.67326324` and `scale=1.05070098`). - * - * Basically, the SELU activation function multiplies `scale` (> 1) with the - * output of the `tf.keras.activations.elu` function to ensure a slope larger - * than one for positive inputs. - * - * @see Klambauer et al., 2017 - */ - Selu, - - /** - * ActivationLayer converts a real vector to a vector of categorical probabilities. - * The elements of the output vector are in range (0, 1) and sum to 1. - * - * ActivationLayer is often used as the activation for the last - * layer of a classification network because the result could be interpreted as - * a probability distribution. - */ - Softmax, - - /** - * - */ - LogSoftmax, - - /** - * Exponential activation function. - * - * Transforms input 'x' according formula: - * ``` - * exp(x) - * ``` - */ - Exponential, - - /** - * Softplus activation function. - * - * Transforms input 'x' according formula: - * ``` - * softplus(x) = log(exp(x) + 1) - * ``` - */ - SoftPlus, - - /*** - * Softsign activation function. - * - * Transforms input 'x' according formula: - * ``` - * softsign(x) = x / (abs(x) + 1) - * ``` - */ - SoftSign, - - /** - * Hard sigmoid activation function. - * - * Transforms input 'x' according formula: - * ``` - * if x < -2.5: return 0 - * if x > 2.5: return 1 - * if -2.5 <= x <= 2.5: return 0.2 * x + 0.5 - * ``` - * A faster approximation of the sigmoid activation. - */ - HardSigmoid, - - /** - * Swish activation function. - * - * Transforms input 'x' according formula: - * ``` - * swish(x) = x * sigmoid(x) - * ``` - * - * It is a smooth, non-monotonic function that consistently matches - * or outperforms ReLU on deep networks, it is unbounded above and - * bounded below. - * - * @see Ramachandran et al., 2017 - */ - Swish, -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/Layer.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/Layer.kt deleted file mode 100644 index 143b27f00..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/Layer.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.layer - -import org.opendc.experiments.tf20.keras.TrainableModel -import org.opendc.experiments.tf20.keras.shape.TensorShape - -/** - * Abstract class from which all layers inherit. - * - * @param name The name of the layer. - */ -public abstract class Layer(public val name: String) { - /** - * TrainableModel in which the layer exists. - */ - internal var parentModel: TrainableModel? = null - - /** - * The input shape of the layer. - */ - public lateinit var inputTensor: TensorShape - internal set - - /** - * The output shape of the layer. - */ - public lateinit var outputTensor: TensorShape - internal set - - /** - * Build the layer for the specified [inputShape]. - * - * @param [inputShape] Input shape, result of [getOutputShape] call from previous layer. - */ - public abstract fun build(inputShape: TensorShape) - - /** - * Compute output shape of this layer, based on [inputShape] and [Layer] type. - */ - public abstract fun getOutputShape(inputShape: TensorShape): TensorShape - - /** - * Perform a forward propagation - */ - public abstract fun forward(): Double - - /** - * Perform a backward propagation. - */ - public abstract fun backward(): Double -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/conv/Conv2D.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/conv/Conv2D.kt deleted file mode 100644 index f89c47c63..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/conv/Conv2D.kt +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.layer.conv - -import org.opendc.experiments.tf20.keras.activations.Activation -import org.opendc.experiments.tf20.keras.layer.Layer -import org.opendc.experiments.tf20.keras.shape.TensorShape -import kotlin.math.ceil - -/** - * 2D convolution layer (e.g. spatial convolution over images). - * - * This layer creates a convolution kernel that is convolved (actually cross-correlated) - * with the layer input to produce a tensor of outputs. - * Finally, if `activation` is applied to the outputs as well. - */ -public class Conv2D( - public val filter: LongArray = LongArray(4), - public val strides: LongArray = LongArray(4), - public val activation: Activation = Activation.Relu, - public val padding: ConvPadding = ConvPadding.VALID, - name: String = "", -) : Layer(name) { - private var padHeight: Double = 0.0 - private var padWidth: Double = 0.0 - - override fun build(inputShape: TensorShape) {} - - override fun getOutputShape(inputShape: TensorShape): TensorShape { - check(filter[2] == inputShape[3]) { "Input channel ${filter[2]} and ${inputShape[3]} shall match" } - - var outHeight = 0L - var outWidth = 0L - - if (padding == ConvPadding.VALID) { - outHeight = ceil((inputShape[1] - filter[0] + 1).toDouble() / strides[1].toDouble()).toLong() - outWidth = ceil((inputShape[2] - filter[1] + 1).toDouble() / strides[2].toDouble()).toLong() - padHeight = 0.0 - padWidth = 0.0 - } else if (padding == ConvPadding.SAME) { - outHeight = ceil(inputShape[1].toFloat() / strides[1].toFloat()).toLong() - outWidth = ceil(inputShape[2].toFloat() / strides[2].toFloat()).toLong() - - val padAlongHeight = (outHeight - 1) * strides[1] + filter[0] - inputShape[1] - val padAlongWidth = (outWidth - 1) * strides[2] + filter[1] - inputShape[2] - - padHeight = (padAlongHeight / 2).toDouble() - padWidth = (padAlongWidth / 2).toDouble() - } - - return TensorShape(inputShape[0], outHeight, outWidth, filter[3]) - } - - override fun forward(): Double { - // Mul and add per output pixel: kernel_w x kernel_h x in_channel - var flops: Long = (2 * filter[0] * filter[1] * filter[2]) - - val output = outputTensor - // Flops per output map. - flops *= output[1] * output[2] * filter[3] - - // Flops across multiple input patches. - flops *= inputTensor[0] - - if (activation == Activation.Relu) { - flops += output[0] * output[1] * output[2] * output[3] - } - - // return paramsNum() * output.H * output.W * FLOAT_BYTES / MILLION - return flops * 4.0 / 1_000_000 - } - - override fun backward(): Double = forward() - - override fun toString(): String { - return "Conv2D[filter=${filter.contentToString()}, strides=${strides.contentToString()}, activation=$activation, padding=$padding]" - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/conv/ConvPadding.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/conv/ConvPadding.kt deleted file mode 100644 index a47c435a1..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/conv/ConvPadding.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.layer.conv - -/** - * Enumeration of convolution padding types. - */ -public enum class ConvPadding { - /** - * Pad evenly to the left/right or up/down of the input such that output has the same - * height/width dimension as the input. - */ - SAME, - - /** - * No padding. - */ - VALID, -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/core/ActivationLayer.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/core/ActivationLayer.kt deleted file mode 100644 index 000401b91..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/core/ActivationLayer.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.layer.core - -import org.opendc.experiments.tf20.keras.activations.Activation -import org.opendc.experiments.tf20.keras.layer.Layer -import org.opendc.experiments.tf20.keras.shape.TensorShape - -/** - * This layer applies an activation function to an output. - */ -public class ActivationLayer( - public val activation: Activation = Activation.Relu, - name: String = "", -) : Layer(name) { - override fun build(inputShape: TensorShape) { - // Intentionally left empty - } - - override fun getOutputShape(inputShape: TensorShape): TensorShape = inputShape - - override fun forward(): Double = 0.0 - - override fun backward(): Double = forward() - - override fun toString(): String { - return "ActivationLayer[activation=$activation]" - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/core/Input.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/core/Input.kt deleted file mode 100644 index 6619ccc0e..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/core/Input.kt +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.layer.core - -import org.opendc.experiments.tf20.keras.layer.Layer -import org.opendc.experiments.tf20.keras.shape.TensorShape - -/** - * This layer is responsible for the input shape of the built model. - */ -public class Input(vararg dims: Long, name: String) : Layer(name) { - /** - * Input data dimensions. Rank = 3 or 4 for most popular supported cases. - */ - public val packedDims: LongArray = dims - - override fun build(inputShape: TensorShape) {} - - override fun getOutputShape(inputShape: TensorShape): TensorShape { - return inputShape - } - - override fun forward(): Double = 0.0 - - override fun backward(): Double = 0.0 - - override fun toString(): String { - return "Input[shape=${packedDims.contentToString()}]" - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/pool/Pool2D.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/pool/Pool2D.kt deleted file mode 100644 index a9a549380..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/pool/Pool2D.kt +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.layer.pool - -import org.opendc.experiments.tf20.keras.layer.Layer -import org.opendc.experiments.tf20.keras.layer.conv.ConvPadding -import org.opendc.experiments.tf20.keras.shape.TensorShape -import kotlin.math.ceil - -/** - * Max pooling layer for 2D inputs (e.g. images). - * - * @property [poolSize] The size of the sliding window for each dimension of input tensor (pool batch, pool height, pool width, pool channels). - * Usually, pool batch and pool channels are equal to 1. - * @property [strides] Strides of the pooling operation for each dimension of input tensor. - * @property [padding] The padding method, either 'valid' or 'same' or 'full'. - * @property [name] Custom layer name. - */ -public class Pool2D( - public val poolSize: IntArray = intArrayOf(1, 2, 2, 1), - public val strides: IntArray = intArrayOf(1, 2, 2, 1), - public val padding: ConvPadding = ConvPadding.VALID, - name: String, -) : Layer(name) { - private var padHeight = 0L - private var padWidth = 0L - - override fun build(inputShape: TensorShape) { - } - - override fun getOutputShape(inputShape: TensorShape): TensorShape { - var outHeight = 0L - var outWidth = 0L - // return the output tensor shape - if (padding == ConvPadding.VALID) { - outHeight = ceil((inputShape[1] - poolSize[1] + 1).toDouble() / strides[1].toDouble()).toLong() - outWidth = ceil((inputShape[2] - poolSize[2] + 1).toDouble() / strides[2].toDouble()).toLong() - padHeight = 0 - padWidth = 0 - } else if (padding == ConvPadding.SAME) { - outHeight = ceil(inputShape[1].toFloat() / strides[1].toFloat()).toLong() - outWidth = ceil(inputShape[2].toFloat() / strides[2].toFloat()).toLong() - val padAlongHeight = (outHeight - 1) * strides[1] + poolSize[1] - inputShape[1] - val padAlongWidth = (outWidth - 1) * strides[2] + poolSize[2] - inputShape[2] - - padHeight = padAlongHeight / 2 - padWidth = padAlongWidth / 2 - } - - return TensorShape(inputShape[0], outHeight, outWidth, inputShape[3]) - } - - override fun forward(): Double { - val output = outputTensor - // Per output pixel: kernel_w x kernel_h x in_channel - var flops: Long = 2 * poolSize[1] * poolSize[2] * inputTensor[3] - - // Flops per output map. - flops *= output[2] * output[1] - - // Flops across multiple input patches. - flops *= inputTensor[0] - - return flops * 4.0 / 1_000_000 - } - - override fun backward(): Double = forward() - - override fun toString(): String { - return "MaxPool2D[poolSize=${poolSize.contentToString()}, strides=${strides.contentToString()}, padding=$padding]" - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/regularization/Dropout.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/regularization/Dropout.kt deleted file mode 100644 index 8198f98cd..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/layer/regularization/Dropout.kt +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.layer.regularization - -import org.opendc.experiments.tf20.keras.layer.Layer -import org.opendc.experiments.tf20.keras.shape.TensorShape - -/** - * This layer applies dropout to the input. - * - * Dropout consists in randomly setting a fraction `rate` of input units to 0 - * at each update during training time, which helps prevent overfitting. - * The units that are kept are scaled by `1 / (1 - rate)`, so that their - * sum is unchanged at training time and inference time. - * - * @property keepProbability The dropout rate, between 0 and 1. E.g. `rate=0.1` would drop out 10% of input units. - * @property [name] Custom layer name. - */ -public class Dropout( - public val keepProbability: Float = 0.1f, - name: String, -) : Layer(name) { - override fun build(inputShape: TensorShape) {} - - override fun getOutputShape(inputShape: TensorShape): TensorShape { - return inputShape - } - - override fun forward(): Double { - val output = outputTensor - return output[0] * output[1] * output[2] * output[3] * 4.0 / 1_000_000 - } - - override fun backward(): Double = forward() - - override fun toString(): String = "Dropout[keepProbability=$keepProbability]" -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/shape/TensorShape.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/shape/TensorShape.kt deleted file mode 100644 index 67e00e242..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/keras/shape/TensorShape.kt +++ /dev/null @@ -1,114 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.keras.shape - -import kotlin.math.abs - -/** - * Represents the shape of a tensor. - * - * @param dims The sizes of the tensor dimensions. - */ -public class TensorShape(vararg dims: Long) { - /** - * The dimensions of the tensor represented as [LongArray]. - */ - private val localDims: LongArray = dims - - /** - * Return amount of elements in Tensor with the given shape. - */ - public val numElements: Long - get() { - var prod = 1L - for (i in 0 until rank) { - prod *= abs(localDims[i]) - } - return prod - } - - /** - * Returns the rank of this shape. - */ - public val rank: Int - get() = localDims.size - - /** - * Returns the value of a dimension - * - * @param i The index at which to retrieve a dimension. - * @return The size of dimension i - */ - public operator fun get(i: Int): Long { - return localDims[i] - } - - /** - * Test whether dimension i in this shape is known - * - * @param i Target dimension to test - * @return Whether dimension i is unknown (equal to -1) - */ - private fun isKnown(i: Int): Boolean { - return localDims[i] != -1L - } - - /** - * Get the size of a target dimension. - * - * @param i Target dimension. - * @return The size of dimension i - */ - public fun size(i: Int): Long { - return localDims[i] - } - - /** - * Clone the [TensorShape] and return a new instance. - */ - public fun clone(): TensorShape { - return TensorShape(*localDims) - } - - /** - * Create a string representation of this [TensorShape]. - */ - override fun toString(): String { - return localDims.contentToString().replace("-1", "None") - } - - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (javaClass != other?.javaClass) return false - - other as TensorShape - - if (!localDims.contentEquals(other.localDims)) return false - - return true - } - - override fun hashCode(): Int { - return localDims.contentHashCode() - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/Message.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/Message.kt deleted file mode 100644 index fddcc7795..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/Message.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.network - -/** - * A communication message between TensorFlow worker and master nodes. - * - * @property from The source node. - * @property to The destination node. - * @property type The type of message sent. - * @property dataSize message data size. - */ -public data class Message( - val from: NetworkNode, - val to: NetworkNode, - val type: MessageType, - val dataSize: Long, - val iterations: Int, -) diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/MessageType.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/MessageType.kt deleted file mode 100644 index d71301373..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/MessageType.kt +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.network - -/** - * Enumeration of the types of messages exchanged between worker and master nodes during TensorFlow execution. - */ -public enum class MessageType { - REQUEST, - WEIGHTS, -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/NetworkController.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/NetworkController.kt deleted file mode 100644 index a4e79b4e0..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/NetworkController.kt +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.network - -import kotlinx.coroutines.channels.Channel -import org.opendc.common.Dispatcher -import org.opendc.common.util.TimerScheduler - -/** - * The network controller represents a simple network model between the worker and master nodes during - * TensorFlow execution. - */ -public class NetworkController(dispatcher: Dispatcher) : AutoCloseable { - /** - * The scheduler for the message. - */ - private val scheduler = TimerScheduler(dispatcher) - - /** - * The outbound communication channels. - */ - private val channels = mutableMapOf>() - - /** - * A map of the bandwidth between the different nodes. - */ - private val bandwidthMatrix: MutableMap, Long> = mutableMapOf() - - /** - * A counter representing the amount of messages sent via the controller. - */ - private var messageCounter = 0 - - /** - * Add the specified link to this controller. - */ - public fun addLink(node: NetworkNode): Channel { - val channel = Channel(Channel.UNLIMITED) - channels[node] = channel - return channel - } - - /** - * Add a connection between two links. - */ - public fun addConnection( - node1: NetworkNode, - node2: NetworkNode, - bandwidth: Long, - ) { - bandwidthMatrix[Pair(node1, node2)] = bandwidth - } - - /** - * Route the specified [message]. - */ - public fun send(message: Message) { - val from = message.from - val to = message.to - val bandwidth = bandwidthMatrix[Pair(from, to)] ?: bandwidthMatrix[Pair(to, from)] ?: 1 - val size = message.dataSize / 1_000_000 - val delayTime = size / bandwidth + (0..5).random() - - messageCounter++ - - val target = channels[to] ?: return // Drop if destination not found - - scheduler.startSingleTimer(message, delayTime) { target.trySend(message) } - } - - /** - * Stop the network controller. - */ - override fun close() { - scheduler.cancelAll() - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/NetworkNode.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/NetworkNode.kt deleted file mode 100644 index 46fb5ce9b..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/network/NetworkNode.kt +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.network - -/** - * A node represents a machine with which other nodes can communicate. - */ -public data class NetworkNode(val hostname: String) diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/MLEnvironmentReader.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/MLEnvironmentReader.kt deleted file mode 100644 index 34b4bc7ba..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/MLEnvironmentReader.kt +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.util - -import com.fasterxml.jackson.databind.ObjectMapper -import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper -import com.fasterxml.jackson.module.kotlin.readValue -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.power.CpuPowerModels -import java.io.InputStream -import java.util.UUID - -/** - * An environment reader for the TensorFlow experiments. - */ -public class MLEnvironmentReader { - /** - * The [ObjectMapper] to convert the format. - */ - private val mapper = jacksonObjectMapper() - - public fun readEnvironment(input: InputStream): List { - val setup: Setup = mapper.readValue(input) - var counter = 0 - return setup.rooms.flatMap { room -> - room.objects.flatMap { roomObject -> - when (roomObject) { - is RoomObject.Rack -> { - roomObject.machines.map { machine -> - var isGpuFlag = true - var maxPower = 350.0 - var minPower = 200.0 - val cores = - machine.cpus.map { id -> - when (id) { - 1 -> { - // ref: https://www.guru3d.com/articles-pages/nvidia-geforce-gtx-titan-x-review,8.html#:~:text=GeForce%20GTX%20Titan%20X%20%2D%20On,power%20supply%20unit%20as%20minimum. - Cpu( - 0, - 4992, - 824.0, - "NVidia", - "TITAN X", - "Pascal", - ) - } - 2 -> { - // ref: https://www.microway.com/hpc-tech-tips/nvidia-tesla-p100-pci-e-16gb-gpu-accelerator-pascal-gp100-close/ - Cpu( - 0, - 3584, - 1190.0, - "NVIDIA", - "Tesla P100", - "Pascal", - ) - } - 3 -> { - // ref: https://www.anandtech.com/show/10923/openpower-saga-tyans-1u-power8-gt75/7 - Cpu( - 0, - 24, - 3498.0, - "Intel", - "E5-2690v3 Haswell24", - "amd64", - ) - } - 4 -> { - Cpu( - 0, - 10, - 143000.0, - "IBM", - "POWER8", - "RISC", - ) - } - else -> throw IllegalArgumentException("The cpu id $id is not recognized") - } - } - val memories = - machine.memories.map { id -> - when (id) { - 1 -> MemoryUnit("NVidia", "GDDR5X", 480.0, 24L) - 2 -> MemoryUnit("NVidia", "GDDR5X", 720.0, 16L) - 3 -> MemoryUnit("IBM", "GDDR5X", 115.0, 160L) - 4 -> MemoryUnit("Inter", "GDDR5X", 68.0, 512L) - else -> throw IllegalArgumentException("The cpu id $id is not recognized") - } - } - - MachineDef( - UUID(0, counter.toLong()), - "node-${counter++}", - mapOf("gpu" to isGpuFlag), - MachineModel(cores, memories[0]), - CpuPowerModels.linear(maxPower, minPower), - ) - } - } - } - } - } - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/MachineDef.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/MachineDef.kt deleted file mode 100644 index 7ff917974..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/MachineDef.kt +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.util - -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.power.CpuPowerModel -import java.util.UUID - -/** - * A definition of a machine in a cluster. - */ -public data class MachineDef( - val uid: UUID, - val name: String, - val meta: Map, - val model: MachineModel, - val powerModel: CpuPowerModel, -) diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/Model.kt b/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/Model.kt deleted file mode 100644 index 0487a36f4..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/kotlin/org/opendc/experiments/tf20/util/Model.kt +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.util - -import com.fasterxml.jackson.annotation.JsonSubTypes -import com.fasterxml.jackson.annotation.JsonTypeInfo - -/** - * A datacenter setup. - * - * @property name The name of the setup. - * @property rooms The rooms in the datacenter. - */ -internal data class Setup(val name: String, val rooms: List) - -/** - * A room in a datacenter. - * - * @property type The type of room in the datacenter. - * @property objects The objects in the room. - */ -internal data class Room(val type: String, val objects: List) - -/** - * An object in a [Room]. - * - * @property type The type of the room object. - */ -@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type") -@JsonSubTypes(value = [JsonSubTypes.Type(name = "RACK", value = RoomObject.Rack::class)]) -internal sealed class RoomObject(val type: String) { - /** - * A rack in a server room. - * - * @property machines The machines in the rack. - */ - internal data class Rack(val machines: List) : RoomObject("RACK") -} - -/** - * A machine in the setup that consists of the specified CPU's represented as - * integer identifiers and ethernet speed. - * - * @property cpus The Processing Units(CPUs/GPUs) in the machine represented as integer identifiers. - * @property memories The memories in the machine represented as integer identifiers. - */ -internal data class Machine(val cpus: List, val memories: List) diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/resources/ibm.json b/opendc-experiments/opendc-experiments-tf20/src/main/resources/ibm.json deleted file mode 100644 index b16d1b18c..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/resources/ibm.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "name": "IBM Environment Setup", - "rooms": [ - { - "type": "SERVER", - "objects": [ - { - "type": "RACK", - "machines": [ - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]} - ] - }, - { - "type": "RACK", - "machines": [ - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]} - ] - }, - { - "type": "RACK", - "machines": [ - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]} - ] - }, - { - "type": "RACK", - "machines": [ - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]}, - { "cpus": [2], "memories": [2]} - ] - }, - { - "type": "RACK", - "machines": [ - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]} - ] - }, - { - "type": "RACK", - "machines": [ - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]}, - { "cpus": [4], "memories": [4]} - ] - } - - ] - } - ] -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/main/resources/kth.json b/opendc-experiments/opendc-experiments-tf20/src/main/resources/kth.json deleted file mode 100644 index 50eecb47a..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/main/resources/kth.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "KTH Environment Setup", - "rooms": [ - { - "type": "SERVER", - "objects": [ - { - "type": "RACK", - "machines": [ - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [1], "memories": [1]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]}, - {"cpus": [3], "memories": [3]} - ] - } - ] - } - ] -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/test/kotlin/org/opendc/experiments/tf20/TensorFlowTest.kt b/opendc-experiments/opendc-experiments-tf20/src/test/kotlin/org/opendc/experiments/tf20/TensorFlowTest.kt deleted file mode 100644 index 447827e97..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/test/kotlin/org/opendc/experiments/tf20/TensorFlowTest.kt +++ /dev/null @@ -1,157 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20 - -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.assertAll -import org.opendc.experiments.tf20.core.SimTFDevice -import org.opendc.experiments.tf20.distribute.MirroredStrategy -import org.opendc.experiments.tf20.distribute.OneDeviceStrategy -import org.opendc.experiments.tf20.util.MLEnvironmentReader -import org.opendc.simulator.compute.power.CpuPowerModels -import org.opendc.simulator.kotlin.runSimulation -import java.util.UUID - -/** - * Integration test suite for the TensorFlow application model in OpenDC. - */ -class TensorFlowTest { - /** - * Smoke test that tests the capabilities of the TensorFlow application model in OpenDC. - */ - fun testSmokeAlexNet() = - runSimulation { - val envInput = checkNotNull(TensorFlowTest::class.java.getResourceAsStream("/kth.json")) - val def = MLEnvironmentReader().readEnvironment(envInput).first() - - val device = - SimTFDevice( - def.uid, - def.meta["gpu"] as Boolean, - dispatcher, - def.model.cpu, - def.model.memory, - CpuPowerModels.linear(250.0, 60.0), - ) - val strategy = OneDeviceStrategy(device) - val batchSize = 32 - val model = getAlexNet(batchSize.toLong()) - model.use { - it.compile(strategy) - - it.fit(epochs = 9088 / batchSize, batchSize = batchSize) - } - - device.close() - - val stats = device.getDeviceStats() - assertAll( - { assertEquals(3309694252, timeSource.millis()) }, - { assertEquals(8.27423563E8, stats.energyUsage) }, - ) - } - - /** - * Smoke test that tests the capabilities of the TensorFlow application model in OpenDC. - */ - fun testSmokeVGG() = - runSimulation { - val envInput = checkNotNull(TensorFlowTest::class.java.getResourceAsStream("/kth.json")) - val def = MLEnvironmentReader().readEnvironment(envInput).first() - - val device = - SimTFDevice( - def.uid, - def.meta["gpu"] as Boolean, - dispatcher, - def.model.cpu, - def.model.memory, - CpuPowerModels.linear(250.0, 60.0), - ) - val strategy = OneDeviceStrategy(device) - val batchSize = 128 - val model = getVGG16(batchSize.toLong()) - model.use { - it.compile(strategy) - - it.fit(epochs = 9088 / batchSize, batchSize = batchSize) - } - - device.close() - - val stats = device.getDeviceStats() - assertAll( - { assertEquals(176230328513, timeSource.millis()) }, - { assertEquals(4.405758212825E10, stats.energyUsage) }, - ) - } - - /** - * Smoke test that tests the capabilities of the TensorFlow application model in OpenDC. - */ - fun testSmokeDistribute() = - runSimulation { - val envInput = checkNotNull(TensorFlowTest::class.java.getResourceAsStream("/kth.json")) - val def = MLEnvironmentReader().readEnvironment(envInput).first() - - val deviceA = - SimTFDevice( - def.uid, - def.meta["gpu"] as Boolean, - dispatcher, - def.model.cpu, - def.model.memory, - CpuPowerModels.linear(250.0, 60.0), - ) - - val deviceB = - SimTFDevice( - UUID.randomUUID(), - def.meta["gpu"] as Boolean, - dispatcher, - def.model.cpu, - def.model.memory, - CpuPowerModels.linear(250.0, 60.0), - ) - - val strategy = MirroredStrategy(listOf(deviceA, deviceB)) - val batchSize = 32 - val model = getAlexNet(batchSize.toLong()) - model.use { - it.compile(strategy) - - it.fit(epochs = 9088 / batchSize, batchSize = batchSize) - } - - deviceA.close() - deviceB.close() - - val statsA = deviceA.getDeviceStats() - val statsB = deviceB.getDeviceStats() - assertAll( - { assertEquals(1704994000, timeSource.millis()) }, - { assertEquals(4.262485E8, statsA.energyUsage) }, - { assertEquals(4.262485E8, statsB.energyUsage) }, - ) - } -} diff --git a/opendc-experiments/opendc-experiments-tf20/src/test/kotlin/org/opendc/experiments/tf20/core/SimTFDeviceTest.kt b/opendc-experiments/opendc-experiments-tf20/src/test/kotlin/org/opendc/experiments/tf20/core/SimTFDeviceTest.kt deleted file mode 100644 index e0c4599ae..000000000 --- a/opendc-experiments/opendc-experiments-tf20/src/test/kotlin/org/opendc/experiments/tf20/core/SimTFDeviceTest.kt +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.experiments.tf20.core - -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.launch -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.power.CpuPowerModels -import org.opendc.simulator.kotlin.runSimulation -import java.util.UUID - -/** - * Test suite for the [SimTFDevice] class. - */ -internal class SimTFDeviceTest { - @Test - fun testSmoke() = - runSimulation { - val pu = Cpu(0, 1, 960 * 1230.0, "NVIDIA", "Tesla V100", "unknown") - val memory = MemoryUnit("NVIDIA", "Tesla V100", 877.0, 32_000) - - val device = - SimTFDevice( - UUID.randomUUID(), - isGpu = true, - dispatcher, - pu, - memory, - CpuPowerModels.linear(250.0, 100.0), - ) - - // Load 1 GiB into GPU memory - device.load(1000) - assertEquals(1140, timeSource.millis()) - - coroutineScope { - launch { device.compute(1e6) } - launch { device.compute(2e6) } - } - - device.close() - - val stats = device.getDeviceStats() - - assertAll( - { assertEquals(3681, timeSource.millis()) }, - { assertEquals(749.25, stats.energyUsage) }, - ) - } -} diff --git a/opendc-faas/README.md b/opendc-faas/README.md deleted file mode 100644 index fe6e5b80e..000000000 --- a/opendc-faas/README.md +++ /dev/null @@ -1,7 +0,0 @@ -OpenDC FaaS -================= - -This module contains a reproduction of Soufiane Jounaid's BSc Computer Science thesis: -OpenDC Serverless: Design, Implementation and Evaluation of a FaaS Platform Simulator [1] - -[1] https://drive.google.com/file/d/12hox3PwagpD0jNFA57tO4r2HqvOonkY3/view?usp=sharing diff --git a/opendc-faas/opendc-faas-api/build.gradle.kts b/opendc-faas/opendc-faas-api/build.gradle.kts deleted file mode 100644 index 2e4b5776c..000000000 --- a/opendc-faas/opendc-faas-api/build.gradle.kts +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "API for the OpenDC FaaS platform" - -// Build configuration -plugins { - `kotlin-library-conventions` -} diff --git a/opendc-faas/opendc-faas-api/src/main/kotlin/org/opendc/faas/api/FaaSClient.kt b/opendc-faas/opendc-faas-api/src/main/kotlin/org/opendc/faas/api/FaaSClient.kt deleted file mode 100644 index 297d30651..000000000 --- a/opendc-faas/opendc-faas-api/src/main/kotlin/org/opendc/faas/api/FaaSClient.kt +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.api - -import java.util.UUID - -/** - * Client interface to the OpenDC FaaS platform. - */ -public interface FaaSClient : AutoCloseable { - /** - * Obtain the list of [FaaSFunction]s accessible by the requesting user. - */ - public suspend fun queryFunctions(): List - - /** - * Obtain a [FaaSFunction] by its unique identifier. - * - * @param id The identifier of the flavor. - */ - public suspend fun findFunction(id: UUID): FaaSFunction? - - /** - * Obtain a [FaaSFunction] by its name. - * - * @param name The name of the function. - */ - public suspend fun findFunction(name: String): FaaSFunction? - - /** - * Create a new serverless function. - * - * @param name The name of the function. - * @param memorySize The memory allocated for the function in MB. - * @param labels The labels associated with the function. - * @param meta The metadata associated with the function. - */ - public suspend fun newFunction( - name: String, - memorySize: Long, - labels: Map = emptyMap(), - meta: Map = emptyMap(), - ): FaaSFunction - - /** - * Invoke the function with the specified [name]. - */ - public suspend fun invoke(name: String) - - /** - * Release the resources associated with this client, preventing any further API calls. - */ - public override fun close() -} diff --git a/opendc-faas/opendc-faas-api/src/main/kotlin/org/opendc/faas/api/FaaSFunction.kt b/opendc-faas/opendc-faas-api/src/main/kotlin/org/opendc/faas/api/FaaSFunction.kt deleted file mode 100644 index 40f0092f8..000000000 --- a/opendc-faas/opendc-faas-api/src/main/kotlin/org/opendc/faas/api/FaaSFunction.kt +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.api - -import java.util.UUID - -/** - * A serverless function instance. - */ -public interface FaaSFunction { - /** - * The unique identifier of the function. - */ - public val uid: UUID - - /** - * The name of the function. - */ - public val name: String - - /** - * The amount of memory allocated for this function in MB. - */ - public val memorySize: Long - - /** - * The identifying labels attached to the resource. - */ - public val labels: Map - - /** - * The non-identifying metadata attached to the resource. - */ - public val meta: Map - - /** - * Invoke the serverless function. - */ - public suspend operator fun invoke() - - /** - * Request the function to be deleted. - */ - public suspend fun delete() - - /** - * Refresh the local state of this object. - */ - public suspend fun refresh() -} diff --git a/opendc-faas/opendc-faas-service/build.gradle.kts b/opendc-faas/opendc-faas-service/build.gradle.kts deleted file mode 100644 index 90cb8f56d..000000000 --- a/opendc-faas/opendc-faas-service/build.gradle.kts +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "FaaS service for OpenDC" - -// Build configuration -plugins { - `kotlin-library-conventions` -} - -dependencies { - api(projects.opendcFaas.opendcFaasApi) - api(libs.commons.math3) - implementation(projects.opendcCommon) - implementation(libs.kotlin.logging) - - testImplementation(projects.opendcSimulator.opendcSimulatorCore) - testRuntimeOnly(libs.log4j.core) - testRuntimeOnly(libs.log4j.slf4j) -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt deleted file mode 100644 index e9634ccc7..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FaaSService.kt +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service - -import org.opendc.common.Dispatcher -import org.opendc.faas.api.FaaSClient -import org.opendc.faas.api.FaaSFunction -import org.opendc.faas.service.autoscaler.FunctionTerminationPolicy -import org.opendc.faas.service.deployer.FunctionDeployer -import org.opendc.faas.service.internal.FaaSServiceImpl -import org.opendc.faas.service.router.RoutingPolicy -import org.opendc.faas.service.telemetry.FunctionStats -import org.opendc.faas.service.telemetry.SchedulerStats -import java.time.Duration - -/** - * The [FaaSService] hosts the service implementation of the OpenDC FaaS platform. - */ -public interface FaaSService : AutoCloseable { - /** - * Create a new [FaaSClient] to control the compute service. - */ - public fun newClient(): FaaSClient - - /** - * Collect statistics about the scheduler of the service. - */ - public fun getSchedulerStats(): SchedulerStats - - /** - * Collect statistics about the specified [function]. - */ - public fun getFunctionStats(function: FaaSFunction): FunctionStats - - /** - * Terminate the lifecycle of the FaaS service, stopping all running function instances. - */ - public override fun close() - - public companion object { - /** - * Construct a new [FaaSService] implementation. - * - * @param dispatcher The [Dispatcher] used for scheduling events. - * @param deployer the [FunctionDeployer] to use for deploying function instances. - * @param routingPolicy The policy to route function invocations. - * @param terminationPolicy The policy for terminating function instances. - * @param quantum The scheduling quantum of the service (100 ms default) - */ - public operator fun invoke( - dispatcher: Dispatcher, - deployer: FunctionDeployer, - routingPolicy: RoutingPolicy, - terminationPolicy: FunctionTerminationPolicy, - quantum: Duration = Duration.ofMillis(100), - ): FaaSService { - return FaaSServiceImpl(dispatcher, deployer, routingPolicy, terminationPolicy, quantum) - } - } -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FunctionObject.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FunctionObject.kt deleted file mode 100644 index 0ed96b966..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/FunctionObject.kt +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service - -import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics -import org.opendc.faas.service.deployer.FunctionInstance -import org.opendc.faas.service.telemetry.FunctionStats -import java.util.UUID - -/** - * An [FunctionObject] represents the service's view of a serverless function. - */ -public class FunctionObject( - public val uid: UUID, - name: String, - allocatedMemory: Long, - labels: Map, - meta: Map, -) : AutoCloseable { - /** - * Metrics tracked per function. - */ - private var localInvocations = 0L - private var localTimelyInvocations = 0L - private var localDelayedInvocations = 0L - private var localFailedInvocations = 0L - private var localActiveInstances = 0 - private var localIdleInstances = 0 - private val localWaitTime = - DescriptiveStatistics() - .apply { windowSize = 100 } - private val localActiveTime = - DescriptiveStatistics() - .apply { windowSize = 100 } - - /** - * The instances associated with this function. - */ - public val instances: MutableList = mutableListOf() - - public var name: String = name - private set - - public var memorySize: Long = allocatedMemory - private set - - public val labels: MutableMap = labels.toMutableMap() - - public val meta: MutableMap = meta.toMutableMap() - - /** - * Report a scheduled invocation. - */ - internal fun reportSubmission() { - localInvocations++ - } - - /** - * Report the deployment of an invocation. - */ - internal fun reportDeployment(isDelayed: Boolean) { - if (isDelayed) { - localDelayedInvocations++ - localIdleInstances++ - } else { - localTimelyInvocations++ - } - } - - /** - * Report the start of a function invocation. - */ - internal fun reportStart( - start: Long, - submitTime: Long, - ) { - val wait = start - submitTime - localWaitTime.addValue(wait.toDouble()) - - localIdleInstances-- - localActiveInstances++ - } - - /** - * Report the failure of a function invocation. - */ - internal fun reportFailure() { - localFailedInvocations++ - } - - /** - * Report the end of a function invocation. - */ - internal fun reportEnd(duration: Long) { - localActiveTime.addValue(duration.toDouble()) - localIdleInstances++ - localActiveInstances-- - } - - /** - * Collect the statistics of this function. - */ - internal fun getStats(): FunctionStats { - return FunctionStats( - localInvocations, - localTimelyInvocations, - localDelayedInvocations, - localFailedInvocations, - localActiveInstances, - localIdleInstances, - localWaitTime.copy(), - localActiveTime.copy(), - ) - } - - override fun close() { - val copy = instances.toList() // Make copy to prevent concurrent modification - copy.forEach(FunctionInstance::close) - instances.clear() - } - - override fun equals(other: Any?): Boolean = other is FunctionObject && uid == other.uid - - override fun hashCode(): Int = uid.hashCode() -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicy.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicy.kt deleted file mode 100644 index 2ab3638bc..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicy.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.autoscaler - -import org.opendc.faas.service.deployer.FunctionInstance -import org.opendc.faas.service.deployer.FunctionInstanceListener - -/** - * A management policy that is responsible for downscaling the active function instances for a function. - */ -public interface FunctionTerminationPolicy : FunctionInstanceListener { - /** - * Enqueue the specified [instance] to be scheduled for termination a - */ - public fun enqueue(instance: FunctionInstance) -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt deleted file mode 100644 index 9edb8c1d5..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyFixed.kt +++ /dev/null @@ -1,67 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.autoscaler - -import org.opendc.common.Dispatcher -import org.opendc.common.util.TimerScheduler -import org.opendc.faas.service.deployer.FunctionInstance -import org.opendc.faas.service.deployer.FunctionInstanceState -import java.time.Duration - -/** - * A [FunctionTerminationPolicy] that terminates idle function instances after a fixed keep-alive time. - * - * @param timeout The idle timeout after which the function instance is terminated. - */ -public class FunctionTerminationPolicyFixed( - dispatcher: Dispatcher, - public val timeout: Duration, -) : FunctionTerminationPolicy { - /** - * The [TimerScheduler] used to schedule the function terminations. - */ - private val scheduler = TimerScheduler(dispatcher) - - override fun enqueue(instance: FunctionInstance) { - // Cancel the existing timeout timer - scheduler.cancel(instance) - } - - override fun onStateChanged( - instance: FunctionInstance, - newState: FunctionInstanceState, - ) { - when (newState) { - FunctionInstanceState.Active -> scheduler.cancel(instance) - FunctionInstanceState.Idle -> schedule(instance) - else -> {} - } - } - - /** - * Schedule termination for the specified [instance]. - */ - private fun schedule(instance: FunctionInstance) { - scheduler.startSingleTimer(instance, timeout.toMillis()) { instance.close() } - } -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyNull.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyNull.kt deleted file mode 100644 index 957e569bd..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/autoscaler/FunctionTerminationPolicyNull.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.autoscaler - -import org.opendc.faas.service.deployer.FunctionInstance - -/** - * A [FunctionTerminationPolicy] that never terminates function instances. - */ -public class FunctionTerminationPolicyNull : FunctionTerminationPolicy { - override fun enqueue(instance: FunctionInstance) { - // No-op - } -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionDeployer.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionDeployer.kt deleted file mode 100644 index 13d48fbfc..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionDeployer.kt +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.deployer - -import org.opendc.faas.service.FunctionObject - -/** - * A [FunctionDeployer] is responsible for ensuring that an instance of an arbitrary function, a [FunctionInstance], - * is deployed. - * - * The function deployer should combine the configuration stored in the function registry, the parameters supplied by - * the requester, and other factors into a decision of how the function should be deployed, including how many and - * what kind of resources it should receive. - * - * Though it decides how the function instance should be deployed, the deployment of the function instance itself is - * delegated to the Resource Orchestration Layer. - */ -public interface FunctionDeployer { - /** - * Deploy the specified [function]. - */ - public fun deploy( - function: FunctionObject, - listener: FunctionInstanceListener, - ): FunctionInstance -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstance.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstance.kt deleted file mode 100644 index 77eadbbec..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstance.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.deployer - -import org.opendc.faas.service.FunctionObject - -/** - * A [FunctionInstance] is a self-contained worker—typically a container—capable of handling function executions. - * - * Multiple, concurrent function instances can exist for a single function, for scalability purposes. - */ -public interface FunctionInstance : AutoCloseable { - /** - * The state of the instance. - */ - public val state: FunctionInstanceState - - /** - * The [FunctionObject] that is represented by this instance. - */ - public val function: FunctionObject - - /** - * Invoke the function instance. - * - * This method will suspend execution util the function instance has returned. - */ - public suspend fun invoke() - - /** - * Indicate to the resource manager that the instance is not needed anymore and may be cleaned up by the resource - * manager. - */ - public override fun close() -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstanceListener.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstanceListener.kt deleted file mode 100644 index e88b71042..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstanceListener.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.deployer - -/** - * Listener interface for events originating from a [FunctionInstance]. - */ -public interface FunctionInstanceListener { - /** - * This method is invoked when the state of a [FunctionInstance] has changed. - */ - public fun onStateChanged( - instance: FunctionInstance, - newState: FunctionInstanceState, - ) {} -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstanceState.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstanceState.kt deleted file mode 100644 index 0c310e6bb..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/deployer/FunctionInstanceState.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.deployer - -/** - * This enumeration describes the states of a [FunctionInstance]. - */ -public enum class FunctionInstanceState { - /** - * The function instance is currently being provisioned. - */ - Provisioning, - - /** - * The function instance is idle and ready to execute. - */ - Idle, - - /** - * The function instance is executing. - */ - Active, - - /** - * The function instance is released and cannot be used anymore. - */ - Deleted, -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSFunctionImpl.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSFunctionImpl.kt deleted file mode 100644 index 7cc85e40e..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSFunctionImpl.kt +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.internal - -import org.opendc.faas.api.FaaSFunction -import org.opendc.faas.service.FunctionObject -import java.util.UUID - -/** - * A [FaaSFunction] implementation that is passed to clients. - */ -internal class FaaSFunctionImpl( - private val service: FaaSServiceImpl, - private val state: FunctionObject, -) : FaaSFunction { - override val uid: UUID = state.uid - - override var name: String = state.name - private set - - override var memorySize: Long = state.memorySize - private set - - override var labels: Map = state.labels.toMap() - private set - - override var meta: Map = state.meta.toMap() - private set - - override suspend fun delete() { - service.delete(state) - } - - override suspend fun invoke() { - service.invoke(state) - } - - override suspend fun refresh() { - name = state.name - memorySize = state.memorySize - labels = state.labels - meta = state.meta - } - - override fun equals(other: Any?): Boolean = other is FaaSFunctionImpl && uid == other.uid - - override fun hashCode(): Int = uid.hashCode() - - override fun toString(): String = "FaaSFunction[uid=$uid,name=$name]" -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt deleted file mode 100644 index 397b0e7de..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/internal/FaaSServiceImpl.kt +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.internal - -import kotlinx.coroutines.InternalCoroutinesApi -import kotlinx.coroutines.intrinsics.startCoroutineCancellable -import kotlinx.coroutines.suspendCancellableCoroutine -import mu.KotlinLogging -import org.opendc.common.Dispatcher -import org.opendc.common.util.Pacer -import org.opendc.faas.api.FaaSClient -import org.opendc.faas.api.FaaSFunction -import org.opendc.faas.service.FaaSService -import org.opendc.faas.service.FunctionObject -import org.opendc.faas.service.autoscaler.FunctionTerminationPolicy -import org.opendc.faas.service.deployer.FunctionDeployer -import org.opendc.faas.service.deployer.FunctionInstance -import org.opendc.faas.service.deployer.FunctionInstanceListener -import org.opendc.faas.service.deployer.FunctionInstanceState -import org.opendc.faas.service.router.RoutingPolicy -import org.opendc.faas.service.telemetry.FunctionStats -import org.opendc.faas.service.telemetry.SchedulerStats -import java.lang.IllegalStateException -import java.time.Duration -import java.time.InstantSource -import java.util.ArrayDeque -import java.util.Random -import java.util.UUID -import kotlin.coroutines.Continuation -import kotlin.coroutines.resumeWithException - -/** - * Implementation of the [FaaSService] interface. - * - * This component acts as the function router from the SPEC RG Reference Architecture for FaaS and is responsible - * for routing incoming requests or events to the correct [FunctionInstance]. If no [FunctionInstance] is available, - * this component queues the events to await the deployment of new instances. - */ -internal class FaaSServiceImpl( - dispatcher: Dispatcher, - private val deployer: FunctionDeployer, - private val routingPolicy: RoutingPolicy, - private val terminationPolicy: FunctionTerminationPolicy, - quantum: Duration, -) : FaaSService, FunctionInstanceListener { - /** - * The logger instance of this server. - */ - private val logger = KotlinLogging.logger {} - - /** - * The [Pacer] to use for scheduling the scheduler cycles. - */ - private val pacer = Pacer(dispatcher, quantum.toMillis()) { doSchedule() } - - /** - * The [InstantSource] instance representing the clock. - */ - private val clock = dispatcher.timeSource - - /** - * The [Random] instance used to generate unique identifiers for the objects. - */ - private val random = Random(0) - - /** - * The registered functions for this service. - */ - private val functions = mutableMapOf() - private val functionsByName = mutableMapOf() - - /** - * The queue of invocation requests. - */ - private val queue = ArrayDeque() - - /** - * Metrics tracked by the service. - */ - private var totalInvocations = 0L - private var timelyInvocations = 0L - private var delayedInvocations = 0L - - override fun newClient(): FaaSClient { - return object : FaaSClient { - private var isClosed: Boolean = false - - /** - * Exposes a [FunctionObject] to a client-exposed [FaaSFunction] instance. - */ - private fun FunctionObject.asClientFunction(): FaaSFunction { - return FaaSFunctionImpl(this@FaaSServiceImpl, this) - } - - override suspend fun queryFunctions(): List { - check(!isClosed) { "Client is already closed" } - - return functions.values.map { it.asClientFunction() } - } - - override suspend fun findFunction(id: UUID): FaaSFunction? { - check(!isClosed) { "Client is already closed" } - - return functions[id]?.asClientFunction() - } - - override suspend fun findFunction(name: String): FaaSFunction? { - check(!isClosed) { "Client is already closed" } - - return functionsByName[name]?.asClientFunction() - } - - override suspend fun newFunction( - name: String, - memorySize: Long, - labels: Map, - meta: Map, - ): FaaSFunction { - check(!isClosed) { "Client is already closed" } - require(name !in functionsByName) { "Function with same name exists" } - - val uid = UUID(clock.millis(), random.nextLong()) - val function = - FunctionObject( - uid, - name, - memorySize, - labels, - meta, - ) - - functionsByName[name] = function - functions[uid] = function - - return function.asClientFunction() - } - - override suspend fun invoke(name: String) { - check(!isClosed) { "Client is already closed" } - - val func = requireNotNull(functionsByName[name]) { "Unknown function" } - this@FaaSServiceImpl.invoke(func) - } - - override fun close() { - isClosed = true - } - } - } - - override fun getSchedulerStats(): SchedulerStats { - return SchedulerStats(totalInvocations, timelyInvocations, delayedInvocations) - } - - override fun getFunctionStats(function: FaaSFunction): FunctionStats { - val func = requireNotNull(functions[function.uid]) { "Unknown function" } - return func.getStats() - } - - /** - * Indicate that a new scheduling cycle is needed due to a change to the service's state. - */ - private fun schedule() { - // Bail out in case the queue is empty. - if (queue.isEmpty()) { - return - } - - pacer.enqueue() - } - - /** - * Run a single scheduling iteration. - */ - @OptIn(InternalCoroutinesApi::class) - private fun doSchedule() { - try { - while (queue.isNotEmpty()) { - val (submitTime, function, cont) = queue.poll() - - val instances = function.instances - - // Check if there exists an instance of the function - val activeInstance = - if (instances.isNotEmpty()) { - routingPolicy.select(instances, function) - } else { - null - } - - val instance = - if (activeInstance != null) { - timelyInvocations++ - function.reportDeployment(isDelayed = false) - - activeInstance - } else { - val instance = deployer.deploy(function, this) - instances.add(instance) - terminationPolicy.enqueue(instance) - - delayedInvocations++ - function.reportDeployment(isDelayed = true) - - instance - } - - suspend { - val start = clock.millis() - function.reportStart(start, submitTime) - try { - instance.invoke() - } catch (e: Throwable) { - logger.debug(e) { "Function invocation failed" } - function.reportFailure() - } finally { - val end = clock.millis() - function.reportEnd(end - start) - } - }.startCoroutineCancellable(cont) - } - } catch (cause: Throwable) { - logger.error(cause) { "Exception occurred during scheduling cycle" } - } - } - - suspend fun invoke(function: FunctionObject) { - check(function.uid in functions) { "Function does not exist (anymore)" } - - totalInvocations++ - function.reportSubmission() - - return suspendCancellableCoroutine { cont -> - if (!queue.add(InvocationRequest(clock.millis(), function, cont))) { - cont.resumeWithException(IllegalStateException("Failed to enqueue request")) - } else { - schedule() - } - } - } - - fun delete(function: FunctionObject) { - functions.remove(function.uid) - functionsByName.remove(function.name) - } - - override fun close() { - // Stop all function instances - for ((_, function) in functions) { - function.close() - } - } - - override fun onStateChanged( - instance: FunctionInstance, - newState: FunctionInstanceState, - ) { - terminationPolicy.onStateChanged(instance, newState) - - if (newState == FunctionInstanceState.Deleted) { - val function = instance.function - function.instances.remove(instance) - } - } - - /** - * A request to invoke a function. - */ - private data class InvocationRequest(val timestamp: Long, val function: FunctionObject, val cont: Continuation) -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/router/RandomRoutingPolicy.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/router/RandomRoutingPolicy.kt deleted file mode 100644 index 1eb03e5ad..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/router/RandomRoutingPolicy.kt +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.router - -import org.opendc.faas.service.FunctionObject -import org.opendc.faas.service.deployer.FunctionInstance -import java.util.SplittableRandom -import java.util.random.RandomGenerator - -/** - * A [RoutingPolicy] that selects a random function instance. - */ -public class RandomRoutingPolicy(private val random: RandomGenerator = SplittableRandom(0)) : RoutingPolicy { - override fun select( - instances: List, - function: FunctionObject, - ): FunctionInstance { - val idx = random.nextInt(instances.size) - return instances.elementAt(idx) - } -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/router/RoutingPolicy.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/router/RoutingPolicy.kt deleted file mode 100644 index c8ea37fc5..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/router/RoutingPolicy.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.router - -import org.opendc.faas.service.FunctionObject -import org.opendc.faas.service.deployer.FunctionInstance - -/** - * A [RoutingPolicy] decides to which [FunctionInstance] a function invocation should be routed. - */ -public interface RoutingPolicy { - /** - * Select the instance to which the request should be routed to. - */ - public fun select( - instances: List, - function: FunctionObject, - ): FunctionInstance? -} diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/telemetry/FunctionStats.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/telemetry/FunctionStats.kt deleted file mode 100644 index db6db6c13..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/telemetry/FunctionStats.kt +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.telemetry - -import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics - -/** - * Statistics about function invocations. - * - * @property totalInvocations The number of function invocations. - * @property timelyInvocations The number of function invocations that could be handled directly. - * @property delayedInvocations The number of function invocations that are delayed (cold starts). - * @property failedInvocations The number of function invocations that failed. - * @property activeInstances The number of active function instances. - * @property idleInstances The number of idle function instances. - * @property waitTime Statistics about the wait time of a function invocation. - * @property activeTime Statistics about the runtime of a function invocation. - */ -public data class FunctionStats( - val totalInvocations: Long, - val timelyInvocations: Long, - val delayedInvocations: Long, - val failedInvocations: Long, - val activeInstances: Int, - val idleInstances: Int, - val waitTime: DescriptiveStatistics, - val activeTime: DescriptiveStatistics, -) diff --git a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/telemetry/SchedulerStats.kt b/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/telemetry/SchedulerStats.kt deleted file mode 100644 index b65dfb031..000000000 --- a/opendc-faas/opendc-faas-service/src/main/kotlin/org/opendc/faas/service/telemetry/SchedulerStats.kt +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service.telemetry - -/** - * Statistics reported by the FaaS scheduler. - * - * @property totalInvocations The total amount of function invocations received by the scheduler. - * @property timelyInvocations The amount of function invocations that could be handled directly. - * @property delayedInvocations The amount of function invocations that were delayed due to function deployment. - */ -public data class SchedulerStats( - val totalInvocations: Long, - val timelyInvocations: Long, - val delayedInvocations: Long, -) diff --git a/opendc-faas/opendc-faas-service/src/test/kotlin/org/opendc/faas/service/FaaSServiceTest.kt b/opendc-faas/opendc-faas-service/src/test/kotlin/org/opendc/faas/service/FaaSServiceTest.kt deleted file mode 100644 index 72a5f2c88..000000000 --- a/opendc-faas/opendc-faas-service/src/test/kotlin/org/opendc/faas/service/FaaSServiceTest.kt +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.service - -import io.mockk.every -import io.mockk.mockk -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNotNull -import org.junit.jupiter.api.Assertions.assertNull -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertDoesNotThrow -import org.junit.jupiter.api.assertThrows -import org.opendc.faas.api.FaaSFunction -import org.opendc.faas.service.deployer.FunctionDeployer -import org.opendc.faas.service.deployer.FunctionInstance -import org.opendc.faas.service.deployer.FunctionInstanceState -import org.opendc.simulator.kotlin.runSimulation -import java.util.UUID - -/** - * Test suite for the [FaaSService] implementation. - */ -internal class FaaSServiceTest { - @Test - fun testClientState() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = assertDoesNotThrow { service.newClient() } - assertDoesNotThrow { client.close() } - - assertThrows { client.queryFunctions() } - assertThrows { client.newFunction("test", 128) } - assertThrows { client.invoke("test") } - assertThrows { client.findFunction(UUID.randomUUID()) } - assertThrows { client.findFunction("name") } - } - - @Test - fun testClientInvokeUnknown() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - - assertThrows { client.invoke("test") } - } - - @Test - fun testClientFunctionCreation() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - - val function = client.newFunction("test", 128) - - assertEquals("test", function.name) - } - - @Test - fun testClientFunctionQuery() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - - assertEquals(emptyList(), client.queryFunctions()) - - val function = client.newFunction("test", 128) - - assertEquals(listOf(function), client.queryFunctions()) - } - - @Test - fun testClientFunctionFindById() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - - assertEquals(emptyList(), client.queryFunctions()) - - val function = client.newFunction("test", 128) - - assertNotNull(client.findFunction(function.uid)) - } - - @Test - fun testClientFunctionFindByName() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - - assertEquals(emptyList(), client.queryFunctions()) - - val function = client.newFunction("test", 128) - - assertNotNull(client.findFunction(function.name)) - } - - @Test - fun testClientFunctionDuplicateName() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - - client.newFunction("test", 128) - - assertThrows { client.newFunction("test", 128) } - } - - @Test - fun testClientFunctionDelete() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - val function = client.newFunction("test", 128) - assertNotNull(client.findFunction(function.uid)) - function.delete() - assertNull(client.findFunction(function.uid)) - - // Delete should be idempotent - function.delete() - } - - @Test - fun testClientFunctionCannotInvokeDeleted() = - runSimulation { - val service = FaaSService(dispatcher, mockk(), mockk(), mockk()) - - val client = service.newClient() - val function = client.newFunction("test", 128) - assertNotNull(client.findFunction(function.uid)) - function.delete() - - assertThrows { function.invoke() } - } - - @Test - fun testClientFunctionInvoke() = - runSimulation { - val deployer = mockk() - val service = FaaSService(dispatcher, deployer, mockk(), mockk(relaxUnitFun = true)) - - every { deployer.deploy(any(), any()) } answers { - object : FunctionInstance { - override val state: FunctionInstanceState = FunctionInstanceState.Idle - override val function: FunctionObject = it.invocation.args[0] as FunctionObject - - override suspend fun invoke() {} - - override fun close() {} - } - } - - val client = service.newClient() - val function = client.newFunction("test", 128) - - function.invoke() - } -} diff --git a/opendc-faas/opendc-faas-simulator/build.gradle.kts b/opendc-faas/opendc-faas-simulator/build.gradle.kts deleted file mode 100644 index 203743240..000000000 --- a/opendc-faas/opendc-faas-simulator/build.gradle.kts +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -description = "Simulator for the OpenDC FaaS platform" - -// Build configuration -plugins { - `kotlin-library-conventions` -} - -dependencies { - api(projects.opendcFaas.opendcFaasService) - api(projects.opendcSimulator.opendcSimulatorCompute) - - testImplementation(projects.opendcSimulator.opendcSimulatorCore) - testRuntimeOnly(libs.slf4j.simple) -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/SimFunctionDeployer.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/SimFunctionDeployer.kt deleted file mode 100644 index c81dc5231..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/SimFunctionDeployer.kt +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator - -import kotlinx.coroutines.CancellationException -import kotlinx.coroutines.CoroutineScope -import kotlinx.coroutines.Job -import kotlinx.coroutines.cancel -import kotlinx.coroutines.channels.Channel -import kotlinx.coroutines.delay -import kotlinx.coroutines.isActive -import kotlinx.coroutines.launch -import kotlinx.coroutines.suspendCancellableCoroutine -import org.opendc.common.Dispatcher -import org.opendc.common.asCoroutineDispatcher -import org.opendc.faas.service.FunctionObject -import org.opendc.faas.service.deployer.FunctionDeployer -import org.opendc.faas.service.deployer.FunctionInstance -import org.opendc.faas.service.deployer.FunctionInstanceListener -import org.opendc.faas.service.deployer.FunctionInstanceState -import org.opendc.faas.simulator.delay.DelayInjector -import org.opendc.faas.simulator.workload.SimFaaSWorkloadMapper -import org.opendc.faas.simulator.workload.SimMetaFaaSWorkloadMapper -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.SimMachine -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.runWorkload -import org.opendc.simulator.flow2.FlowEngine -import java.util.ArrayDeque -import kotlin.coroutines.Continuation -import kotlin.coroutines.resume -import kotlin.coroutines.resumeWithException - -/** - * A [FunctionDeployer] that uses that simulates the [FunctionInstance]s. - */ -public class SimFunctionDeployer( - private val dispatcher: Dispatcher, - private val model: MachineModel, - private val delayInjector: DelayInjector, - private val mapper: SimFaaSWorkloadMapper = SimMetaFaaSWorkloadMapper(), -) : FunctionDeployer, AutoCloseable { - /** - * The [CoroutineScope] of this deployer. - */ - private val scope = CoroutineScope(dispatcher.asCoroutineDispatcher() + Job()) - - override fun deploy( - function: FunctionObject, - listener: FunctionInstanceListener, - ): Instance { - val instance = Instance(function, listener) - instance.start() - return instance - } - - /** - * A simulated [FunctionInstance]. - */ - public inner class Instance(override val function: FunctionObject, private val listener: FunctionInstanceListener) : - FunctionInstance { - /** - * The workload associated with this instance. - */ - private val workload = mapper.createWorkload(function) - - /** - * The machine that will execute the workloads. - */ - public val machine: SimMachine = - SimBareMetalMachine.create( - FlowEngine.create(dispatcher).newGraph(), - model, - ) - - /** - * The job associated with the lifecycle of the instance. - */ - private var job: Job? = null - - /** - * The invocation request queue. - */ - private val queue = ArrayDeque() - - /** - * A channel used to signal that new invocations have been enqueued. - */ - private val chan = Channel(Channel.RENDEZVOUS) - - override var state: FunctionInstanceState = FunctionInstanceState.Provisioning - set(value) { - if (field != value) { - listener.onStateChanged(this, value) - } - - field = value - } - - override suspend fun invoke() { - check(state != FunctionInstanceState.Deleted) { "Function instance has been released" } - return suspendCancellableCoroutine { cont -> - queue.add(InvocationRequest(cont)) - chan.trySend(Unit) - } - } - - override fun close() { - state = FunctionInstanceState.Deleted - stop() - machine.cancel() - } - - override fun toString(): String = "FunctionInstance[state=$state]" - - /** - * Start the function instance. - */ - internal fun start() { - check(state == FunctionInstanceState.Provisioning) { "Invalid state of function instance" } - job = - scope.launch { - delay(delayInjector.getColdStartDelay(this@Instance)) - - launch { - try { - machine.runWorkload(workload) - } finally { - state = FunctionInstanceState.Deleted - } - } - - while (isActive) { - if (queue.isEmpty()) { - chan.receive() - } - - state = FunctionInstanceState.Active - while (queue.isNotEmpty()) { - val request = queue.poll() - try { - workload.invoke() - request.cont.resume(Unit) - } catch (cause: CancellationException) { - request.cont.resumeWithException(cause) - throw cause - } catch (cause: Throwable) { - request.cont.resumeWithException(cause) - } - } - state = FunctionInstanceState.Idle - } - } - } - - /** - * Stop the function instance. - */ - private fun stop() { - val job = job - - if (job != null) { - this.job = null - job.cancel() - } - } - } - - override fun close() { - scope.cancel() - } - - /** - * A function invocation request. - */ - private data class InvocationRequest(val cont: Continuation) -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/ColdStartModel.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/ColdStartModel.kt deleted file mode 100644 index f5035ca26..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/ColdStartModel.kt +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator.delay - -/** - * Model parameters for the cold start times of serverless services. - */ -public enum class ColdStartModel { - // Min and max memory values from [Peeking Behind The Curtains of Serverless Platforms][2018], - // other values deduced from linear curve. - LAMBDA { - override fun coldStartParam(provisionedMemory: Int): Pair { - return when (provisionedMemory) { - 128 -> Pair(265.21, 354.43) - 256 -> Pair(261.46, 334.23) - 512 -> Pair(257.71, 314.03) - 1024 -> Pair(253.96, 293.83) - 1536 -> Pair(250.07, 273.63) - 2048 -> Pair(246.11, 253.43) - else -> Pair(0.0, 1.0) - } - } - }, - AZURE { - // Azure by default uses 1.5gb memory to instantiate functions - override fun coldStartParam(provisionedMemory: Int): Pair { - return Pair(242.66, 340.67) - } - }, - - GOOGLE { - override fun coldStartParam(provisionedMemory: Int): Pair { - return when (provisionedMemory) { - 128 -> Pair(493.04, 345.8) - 256 -> Pair(416.59, 301.5) - 512 -> Pair(340.14, 257.2) - 1024 -> Pair(263.69, 212.9) - 1536 -> Pair(187.24, 168.6) - 2048 -> Pair(110.77, 124.3) - else -> Pair(0.0, 1.0) - } - } - }, ; - - /** - * Obtain the stochastic parameters for the cold start models. - */ - public abstract fun coldStartParam(provisionedMemory: Int): Pair -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/DelayInjector.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/DelayInjector.kt deleted file mode 100644 index c1df682c1..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/DelayInjector.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator.delay - -import org.opendc.faas.service.deployer.FunctionInstance - -/** - * An interface for modeling the delay caused by function cold starts. - */ -public interface DelayInjector { - /** - * Returns the cold start delay duration sampled from a normal distribution, the distribution is - * initialized using custom mean and standard deviation based on provisioned memory, language and - * failure model - */ - public fun getColdStartDelay(instance: FunctionInstance): Long -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/StochasticDelayInjector.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/StochasticDelayInjector.kt deleted file mode 100644 index de7b4aa5b..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/StochasticDelayInjector.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator.delay - -import org.opendc.faas.service.deployer.FunctionInstance -import java.util.random.RandomGenerator -import kotlin.math.abs - -/* - * Interface for instance deployment delay estimation. - */ -public class StochasticDelayInjector(private val model: ColdStartModel, private val random: RandomGenerator) : DelayInjector { - override fun getColdStartDelay(instance: FunctionInstance): Long { - val (mean, sd) = model.coldStartParam(instance.function.memorySize.toInt()) - return abs(random.nextGaussian() * sd + mean).toLong() - } -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/ZeroDelayInjector.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/ZeroDelayInjector.kt deleted file mode 100644 index 0e3187643..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/delay/ZeroDelayInjector.kt +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator.delay - -import org.opendc.faas.service.deployer.FunctionInstance - -public object ZeroDelayInjector : DelayInjector { - override fun getColdStartDelay(instance: FunctionInstance): Long = 0 -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimFaaSWorkload.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimFaaSWorkload.kt deleted file mode 100644 index aaee26c03..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimFaaSWorkload.kt +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator.workload - -import org.opendc.simulator.compute.workload.SimWorkload - -/** - * A model for a serverless function workload, which may be invoked multiple times. - */ -public interface SimFaaSWorkload : SimWorkload { - /** - * This method is invoked when an active function instance is invoked. - */ - public suspend fun invoke() -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimFaaSWorkloadMapper.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimFaaSWorkloadMapper.kt deleted file mode 100644 index b22dd6591..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimFaaSWorkloadMapper.kt +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator.workload - -import org.opendc.faas.api.FaaSFunction -import org.opendc.faas.service.FunctionObject - -/** - * A [SimFaaSWorkloadMapper] is responsible for mapping a [FaaSFunction] to a [SimFaaSWorkload] that - * can be simulated. - */ -public fun interface SimFaaSWorkloadMapper { - /** - * Map the specified [function] to a [SimFaaSWorkload] that can be simulated. - */ - public fun createWorkload(function: FunctionObject): SimFaaSWorkload -} diff --git a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimMetaFaaSWorkloadMapper.kt b/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimMetaFaaSWorkloadMapper.kt deleted file mode 100644 index 8da8bd199..000000000 --- a/opendc-faas/opendc-faas-simulator/src/main/kotlin/org/opendc/faas/simulator/workload/SimMetaFaaSWorkloadMapper.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator.workload - -import org.opendc.faas.service.FunctionObject - -/** - * A [SimFaaSWorkloadMapper] that maps a [FunctionObject] to a workload via the meta-data. - */ -public class SimMetaFaaSWorkloadMapper(private val key: String = "workload") : SimFaaSWorkloadMapper { - override fun createWorkload(function: FunctionObject): SimFaaSWorkload { - return requireNotNull(function.meta[key]) as SimFaaSWorkload - } -} diff --git a/opendc-faas/opendc-faas-simulator/src/test/kotlin/org/opendc/faas/simulator/SimFaaSServiceTest.kt b/opendc-faas/opendc-faas-simulator/src/test/kotlin/org/opendc/faas/simulator/SimFaaSServiceTest.kt deleted file mode 100644 index 2d6d4ac89..000000000 --- a/opendc-faas/opendc-faas-simulator/src/test/kotlin/org/opendc/faas/simulator/SimFaaSServiceTest.kt +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.faas.simulator - -import io.mockk.coVerify -import io.mockk.spyk -import kotlinx.coroutines.delay -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertAll -import org.opendc.faas.service.FaaSService -import org.opendc.faas.service.autoscaler.FunctionTerminationPolicyFixed -import org.opendc.faas.service.router.RandomRoutingPolicy -import org.opendc.faas.simulator.delay.ColdStartModel -import org.opendc.faas.simulator.delay.StochasticDelayInjector -import org.opendc.faas.simulator.workload.SimFaaSWorkload -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.workload.SimWorkload -import org.opendc.simulator.compute.workload.SimWorkloads -import org.opendc.simulator.kotlin.runSimulation -import java.time.Duration -import java.util.Random - -/** - * A test suite for the [FaaSService] implementation under simulated conditions. - */ -internal class SimFaaSServiceTest { - private lateinit var machineModel: MachineModel - - @BeforeEach - fun setUp() { - machineModel = - MachineModel( - Cpu( - 0, - 2, - 1000.0, - "Intel", - "Xeon", - "amd64", - ), - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - } - - @Test - fun testSmoke() = - runSimulation { - val random = Random(0) - val workload = - spyk( - object : SimFaaSWorkload, SimWorkload by SimWorkloads.runtime(1000, 1.0) { - override suspend fun invoke() { - delay(random.nextInt(1000).toLong()) - } - }, - ) - - val delayInjector = StochasticDelayInjector(ColdStartModel.GOOGLE, random) - val deployer = SimFunctionDeployer(dispatcher, machineModel, delayInjector) { workload } - val service = - FaaSService( - dispatcher, - deployer, - RandomRoutingPolicy(), - FunctionTerminationPolicyFixed(dispatcher, timeout = Duration.ofMillis(10000)), - ) - - val client = service.newClient() - - val function = client.newFunction("test", 128) - function.invoke() - delay(2000) - - service.close() - deployer.close() - - yield() - - val funcStats = service.getFunctionStats(function) - - // fixme: waitTime is probably wrong, and should be 100 - assertAll( - { coVerify { workload.invoke() } }, - { assertEquals(1, funcStats.totalInvocations) }, - { assertEquals(1, funcStats.delayedInvocations) }, - { assertEquals(0, funcStats.failedInvocations) }, - { assertEquals(0.0, funcStats.waitTime.mean) }, - { assertEquals(1285.0, funcStats.activeTime.mean) }, - ) - } -} diff --git a/opendc-simulator/opendc-simulator-compute/build.gradle.kts b/opendc-simulator/opendc-simulator-compute/build.gradle.kts index 0ea0c2528..246fa5e8a 100644 --- a/opendc-simulator/opendc-simulator-compute/build.gradle.kts +++ b/opendc-simulator/opendc-simulator-compute/build.gradle.kts @@ -29,8 +29,6 @@ plugins { dependencies { api(projects.opendcSimulator.opendcSimulatorFlow) - api(projects.opendcSimulator.opendcSimulatorPower) - api(projects.opendcSimulator.opendcSimulatorNetwork) implementation(projects.opendcSimulator.opendcSimulatorCore) testImplementation(libs.slf4j.simple) diff --git a/opendc-simulator/opendc-simulator-compute/src/jmh/kotlin/org/opendc/simulator/compute/SimMachineBenchmarks.kt b/opendc-simulator/opendc-simulator-compute/src/jmh/kotlin/org/opendc/simulator/compute/SimMachineBenchmarks.kt index 5975f9440..8d8f4ef8b 100644 --- a/opendc-simulator/opendc-simulator-compute/src/jmh/kotlin/org/opendc/simulator/compute/SimMachineBenchmarks.kt +++ b/opendc-simulator/opendc-simulator-compute/src/jmh/kotlin/org/opendc/simulator/compute/SimMachineBenchmarks.kt @@ -24,12 +24,13 @@ package org.opendc.simulator.compute import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.launch -import org.opendc.simulator.compute.kernel.SimHypervisor -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.model.ProcessingNode -import org.opendc.simulator.compute.workload.SimTrace +import org.opendc.simulator.compute.old.SimBareMetalMachine +import org.opendc.simulator.compute.old.kernel.SimHypervisor +import org.opendc.simulator.compute.old.model.CpuModel +import org.opendc.simulator.compute.old.model.MachineModel +import org.opendc.simulator.compute.old.model.MemoryUnit +import org.opendc.simulator.compute.old.model.ProcessingNode +import org.opendc.simulator.compute.old.workload.SimTrace import org.opendc.simulator.flow2.FlowEngine import org.opendc.simulator.flow2.mux.FlowMultiplexerFactory import org.opendc.simulator.kotlin.runSimulation @@ -60,7 +61,7 @@ class SimMachineBenchmarks { MachineModel( // cpus List(cpuNode.coreCount) { - Cpu( + CpuModel( cpuNode, it, 1000.0, diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimAbstractMachine.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimAbstractMachine.java deleted file mode 100644 index 3a9e35c17..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimAbstractMachine.java +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import java.util.HashMap; -import java.util.Map; -import java.util.function.Consumer; -import org.opendc.simulator.compute.device.SimNetworkAdapter; -import org.opendc.simulator.compute.model.MachineModel; -import org.opendc.simulator.compute.model.MemoryUnit; -import org.opendc.simulator.compute.workload.SimWorkload; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; -import org.opendc.simulator.flow2.sink.SimpleFlowSink; -import org.opendc.simulator.flow2.util.FlowTransformer; -import org.opendc.simulator.flow2.util.FlowTransforms; - -/** - * Abstract implementation of the {@link SimMachine} interface. - */ -public abstract class SimAbstractMachine implements SimMachine { - private final MachineModel model; - - private SimAbstractMachineContext activeContext; - - /** - * Construct a {@link SimAbstractMachine} instance. - * - * @param model The model of the machine. - */ - public SimAbstractMachine(MachineModel model) { - this.model = model; - } - - @Override - public final MachineModel getModel() { - return model; - } - - @Override - public final SimMachineContext startWorkload( - SimWorkload workload, Map meta, Consumer completion) { - if (activeContext != null) { - throw new IllegalStateException("A machine cannot run multiple workloads concurrently"); - } - - final SimAbstractMachineContext ctx = createContext(workload, new HashMap<>(meta), completion); - ctx.start(); - return ctx; - } - - @Override - public final void cancel() { - final SimAbstractMachineContext context = activeContext; - if (context != null) { - context.shutdown(); - } - } - - /** - * Construct a new {@link SimAbstractMachineContext} instance representing the active execution. - * - * @param workload The workload to start on the machine. - * @param meta The metadata to pass to the workload. - * @param completion A block that is invoked when the workload completes carrying an exception if thrown by the workload. - */ - protected abstract SimAbstractMachineContext createContext( - SimWorkload workload, Map meta, Consumer completion); - - /** - * Return the active {@link SimAbstractMachineContext} instance (if any). - */ - protected SimAbstractMachineContext getActiveContext() { - return activeContext; - } - - /** - * The execution context in which the workload runs. - */ - public abstract static class SimAbstractMachineContext implements SimMachineContext { - private final SimAbstractMachine machine; - private final SimWorkload workload; - private final Map meta; - private final Consumer completion; - private boolean isClosed; - private SimWorkload snapshot; - - /** - * Construct a new {@link SimAbstractMachineContext} instance. - * - * @param machine The {@link SimAbstractMachine} to which the context belongs. - * @param workload The {@link SimWorkload} to which the context belongs. - * @param meta The metadata passed to the context. - * @param completion A block that is invoked when the workload completes carrying an exception if thrown by the workload. - */ - public SimAbstractMachineContext( - SimAbstractMachine machine, - SimWorkload workload, - Map meta, - Consumer completion) { - this.machine = machine; - this.workload = workload; - this.meta = meta; - this.completion = completion; - } - - @Override - public final Map getMeta() { - return meta; - } - - @Override - public void makeSnapshot(long now) { - this.snapshot = workload.getSnapshot(); - } - - @Override - public SimWorkload getSnapshot(long now) { - return this.snapshot; - } - - @Override - public void reset() { - final FlowGraph graph = getMemory().getInput().getGraph(); - - final Inlet inlet = getCpu().getInput(); - graph.disconnect(inlet); - - graph.disconnect(getMemory().getInput()); - - for (SimNetworkInterface ifx : getNetworkInterfaces()) { - ((NetworkAdapter) ifx).disconnect(); - } - - for (SimStorageInterface storage : getStorageInterfaces()) { - StorageDevice impl = (StorageDevice) storage; - graph.disconnect(impl.getRead()); - graph.disconnect(impl.getWrite()); - } - } - - @Override - public final void shutdown() { - shutdown(null); - } - - @Override - public final void shutdown(Exception cause) { - if (isClosed) { - return; - } - - isClosed = true; - final SimAbstractMachine machine = this.machine; - assert machine.activeContext == this : "Invariant violation: multiple contexts active for a single machine"; - machine.activeContext = null; - - // Cancel all the resources associated with the machine - doCancel(); - - try { - workload.onStop(this); - } catch (Exception e) { - if (cause == null) { - cause = e; - } else { - cause.addSuppressed(e); - } - } - - completion.accept(cause); - } - - /** - * Start this context. - */ - final void start() { - try { - machine.activeContext = this; - workload.onStart(this); - } catch (Exception cause) { - shutdown(cause); - } - } - - /** - * Run the stop procedures for the resources associated with the machine. - */ - protected void doCancel() { - reset(); - } - - @Override - public String toString() { - return "SimAbstractMachine.Context"; - } - } - - /** - * The [SimMemory] implementation for a machine. - */ - public static final class Memory implements SimMemory { - private final SimpleFlowSink sink; - private final MemoryUnit memoryUnit; - - public Memory(FlowGraph graph, MemoryUnit memoryUnit) { - - this.memoryUnit = memoryUnit; - this.sink = new SimpleFlowSink(graph, (float) memoryUnit.getSize()); - } - - @Override - public double getCapacity() { - return sink.getCapacity(); - } - - @Override - public MemoryUnit getMemoryUnit() { - return memoryUnit; - } - - @Override - public Inlet getInput() { - return sink.getInput(); - } - - @Override - public String toString() { - return "SimAbstractMachine.Memory"; - } - } - - /** - * A {@link SimNetworkAdapter} implementation for a machine. - */ - public static class NetworkAdapter extends SimNetworkAdapter implements SimNetworkInterface { - private final org.opendc.simulator.compute.model.NetworkAdapter model; - private final FlowTransformer tx; - private final FlowTransformer rx; - private final String name; - - /** - * Construct a {@link NetworkAdapter}. - */ - public NetworkAdapter(FlowGraph graph, org.opendc.simulator.compute.model.NetworkAdapter model, int index) { - this.model = model; - this.tx = new FlowTransformer(graph, FlowTransforms.noop()); - this.rx = new FlowTransformer(graph, FlowTransforms.noop()); - this.name = "eth" + index; - } - - @Override - public String getName() { - return name; - } - - @Override - public Inlet getTx() { - return tx.getInput(); - } - - @Override - public Outlet getRx() { - return rx.getOutput(); - } - - @Override - public double getBandwidth() { - return model.getBandwidth(); - } - - @Override - protected Outlet getOutlet() { - return tx.getOutput(); - } - - @Override - protected Inlet getInlet() { - return rx.getInput(); - } - - @Override - public String toString() { - return "SimAbstractMachine.NetworkAdapterImpl[name=" + name + ", bandwidth=" + model.getBandwidth() - + "Mbps]"; - } - } - - /** - * A {@link SimStorageInterface} implementation for a machine. - */ - public static class StorageDevice implements SimStorageInterface { - private final org.opendc.simulator.compute.model.StorageDevice model; - private final SimpleFlowSink read; - private final SimpleFlowSink write; - private final String name; - - /** - * Construct a {@link StorageDevice}. - */ - public StorageDevice(FlowGraph graph, org.opendc.simulator.compute.model.StorageDevice model, int index) { - this.model = model; - this.read = new SimpleFlowSink(graph, (float) model.getReadBandwidth()); - this.write = new SimpleFlowSink(graph, (float) model.getWriteBandwidth()); - this.name = "disk" + index; - } - - @Override - public String getName() { - return name; - } - - @Override - public Inlet getRead() { - return read.getInput(); - } - - @Override - public Inlet getWrite() { - return write.getInput(); - } - - @Override - public double getCapacity() { - return model.getCapacity(); - } - - @Override - public String toString() { - return "SimAbstractMachine.StorageDeviceImpl[name=" + name + ", capacity=" + model.getCapacity() + "MB]"; - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimBareMetalMachine.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimBareMetalMachine.java deleted file mode 100644 index 6acc605ef..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimBareMetalMachine.java +++ /dev/null @@ -1,280 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; -import org.opendc.simulator.compute.device.SimPeripheral; -import org.opendc.simulator.compute.model.Cpu; -import org.opendc.simulator.compute.model.MachineModel; -import org.opendc.simulator.compute.workload.SimWorkload; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.InPort; -import org.opendc.simulator.flow2.Inlet; - -/** - * A simulated bare-metal machine that is able to run a single workload. - * - *

- * A {@link SimBareMetalMachine} is a stateful object, and you should be careful when operating this object concurrently. For - * example, the class expects only a single concurrent call to {@link #startWorkload(SimWorkload, Map, Consumer)} )}. - */ -public final class SimBareMetalMachine extends SimAbstractMachine { - /** - * The {@link FlowGraph} in which the simulation takes places. - */ - private final FlowGraph graph; - - /** - * The {@link SimPsu} of this bare metal machine. - */ - private final SimPsu psu; - - /** - * The resources of this machine. - */ - private final SimCpu cpu; - - private final Memory memory; - private final List net; - private final List disk; - - /** - * Construct a {@link SimBareMetalMachine} instance. - * - * @param graph The {@link FlowGraph} to which the machine belongs. - * @param model The machine model to simulate. - * @param psuFactory The {@link SimPsuFactory} to construct the power supply of the machine. - */ - private SimBareMetalMachine(FlowGraph graph, MachineModel model, SimPsuFactory psuFactory) { - super(model); - - this.graph = graph; - this.psu = psuFactory.newPsu(this, graph); - - this.cpu = new SimCpu(psu, model.getCpu(), 0); - this.memory = new Memory(graph, model.getMemory()); - - int netIndex = 0; - final ArrayList net = new ArrayList<>(); - this.net = net; - for (org.opendc.simulator.compute.model.NetworkAdapter adapter : model.getNetwork()) { - net.add(new NetworkAdapter(graph, adapter, netIndex++)); - } - - int diskIndex = 0; - final ArrayList disk = new ArrayList<>(); - this.disk = disk; - for (org.opendc.simulator.compute.model.StorageDevice device : model.getStorage()) { - disk.add(new StorageDevice(graph, device, diskIndex++)); - } - } - - /** - * Create a {@link SimBareMetalMachine} instance. - * - * @param graph The {@link FlowGraph} to which the machine belongs. - * @param model The machine model to simulate. - * @param psuFactory The {@link SimPsuFactory} to construct the power supply of the machine. - */ - public static SimBareMetalMachine create(FlowGraph graph, MachineModel model, SimPsuFactory psuFactory) { - return new SimBareMetalMachine(graph, model, psuFactory); - } - - /** - * Create a {@link SimBareMetalMachine} instance with a no-op PSU. - * - * @param graph The {@link FlowGraph} to which the machine belongs. - * @param model The machine model to simulate. - */ - public static SimBareMetalMachine create(FlowGraph graph, MachineModel model) { - return new SimBareMetalMachine(graph, model, SimPsuFactories.noop()); - } - - /** - * Return the {@link SimPsu} belonging to this bare metal machine. - */ - public SimPsu getPsu() { - return psu; - } - - /** - * Return the list of peripherals attached to this bare metal machine. - */ - @Override - public List getPeripherals() { - return Collections.unmodifiableList(net); - } - - /** - * Return the CPU capacity of the machine in MHz. - */ - public double getCpuCapacity() { - final SimAbstractMachineContext context = (SimAbstractMachineContext) getActiveContext(); - - if (context == null) { - return 0.0; - } - - return cpu.getFrequency(); - } - - /** - * The CPU demand of the machine in MHz. - */ - public double getCpuDemand() { - final SimAbstractMachineContext context = (SimAbstractMachineContext) getActiveContext(); - - if (context == null) { - return 0.0; - } - - return cpu.getDemand(); - } - - /** - * The CPU usage of the machine in MHz. - */ - public double getCpuUsage() { - final SimAbstractMachineContext context = (SimAbstractMachineContext) getActiveContext(); - - if (context == null) { - return 0.0; - } - - return cpu.getSpeed(); - } - - @Override - protected SimAbstractMachine.SimAbstractMachineContext createContext( - SimWorkload workload, Map meta, Consumer completion) { - return new SimAbstractMachineContext(this, workload, meta, completion); - } - - /** - * The execution context for a {@link SimBareMetalMachine}. - */ - private static final class SimAbstractMachineContext extends SimAbstractMachine.SimAbstractMachineContext { - private final FlowGraph graph; - private final SimCpu cpu; - private final Memory memory; - private final List net; - private final List disk; - - private SimAbstractMachineContext( - SimBareMetalMachine machine, - SimWorkload workload, - Map meta, - Consumer completion) { - super(machine, workload, meta, completion); - - this.graph = machine.graph; - this.cpu = machine.cpu; - this.memory = machine.memory; - this.net = machine.net; - this.disk = machine.disk; - } - - @Override - public FlowGraph getGraph() { - return graph; - } - - @Override - public SimCpu getCpu() { - return cpu; - } - - @Override - public SimMemory getMemory() { - return memory; - } - - @Override - public List getNetworkInterfaces() { - return net; - } - - @Override - public List getStorageInterfaces() { - return disk; - } - } - - /** - * A {@link SimProcessingUnit} of a bare-metal machine. - */ - private static final class SimCpu implements SimProcessingUnit { - private final SimPsu psu; - private final Cpu cpuModel; - private final InPort port; - - private SimCpu(SimPsu psu, Cpu cpuModel, int id) { - this.psu = psu; - this.cpuModel = cpuModel; - this.port = psu.getCpuPower(id, cpuModel); - - this.port.pull((float) cpuModel.getTotalCapacity()); - } - - @Override - public double getFrequency() { - return port.getCapacity(); - } - - @Override - public void setFrequency(double frequency) { - // Clamp the capacity of the CPU between [0.0, maxFreq] - frequency = Math.max(0, Math.min(cpuModel.getTotalCapacity(), frequency)); - psu.setCpuFrequency(port, frequency); - } - - @Override - public double getDemand() { - return port.getDemand(); - } - - @Override - public double getSpeed() { - return port.getRate(); - } - - @Override - public org.opendc.simulator.compute.model.Cpu getCpuModel() { - return cpuModel; - } - - @Override - public Inlet getInput() { - return port; - } - - @Override - public String toString() { - return "SimBareMetalMachine.Cpu[model=" + cpuModel + "]"; - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMachine.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMachine.java deleted file mode 100644 index 1f86aa022..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMachine.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; -import org.opendc.simulator.compute.device.SimPeripheral; -import org.opendc.simulator.compute.model.MachineModel; -import org.opendc.simulator.compute.workload.SimWorkload; - -/** - * A generic machine that is able to execute {@link SimWorkload} objects. - */ -public interface SimMachine { - /** - * Return the model of the machine containing its specifications. - */ - MachineModel getModel(); - - /** - * Return the peripherals attached to the machine. - */ - List getPeripherals(); - - /** - * Start the specified {@link SimWorkload} on this machine. - * - * @param workload The workload to start on the machine. - * @param meta The metadata to pass to the workload. - * @param completion A block that is invoked when the workload completes carrying an exception if thrown by the workload. - * @return A {@link SimMachineContext} that represents the execution context for the workload. - * @throws IllegalStateException if a workload is already active on the machine or if the machine is closed. - */ - SimMachineContext startWorkload(SimWorkload workload, Map meta, Consumer completion); - - /** - * Cancel the active workload on this machine (if any). - */ - void cancel(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMachineContext.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMachineContext.java deleted file mode 100644 index 887967fb4..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMachineContext.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import java.util.List; -import java.util.Map; -import java.util.function.Consumer; -import org.opendc.simulator.compute.workload.SimWorkload; -import org.opendc.simulator.flow2.FlowGraph; - -/** - * A simulated execution context in which a bootable image runs. - * - *

- * This interface represents the interface between the running image (e.g. operating system) and the physical - * or virtual firmware on which the image runs. - */ -public interface SimMachineContext { - /** - * Return the {@link FlowGraph} in which the workload executes. - */ - FlowGraph getGraph(); - - /** - * Return the metadata associated with the context. - *

- * Users can pass this metadata to the workload via {@link SimMachine#startWorkload(SimWorkload, Map, Consumer)}. - */ - Map getMeta(); - - /** - * Return the CPUs available on the machine. - */ - SimProcessingUnit getCpu(); - - /** - * Return the memory interface of the machine. - */ - SimMemory getMemory(); - - /** - * Return the network interfaces available to the workload. - */ - List getNetworkInterfaces(); - - /** - * Return the storage devices available to the workload. - */ - List getStorageInterfaces(); - - /** - * Create a snapshot of the {@link SimWorkload} running on this machine. - * - * @throws UnsupportedOperationException if the workload does not support snapshotting. - */ - void makeSnapshot(long now); - - SimWorkload getSnapshot(long now); - - /** - * Reset all resources of the machine. - */ - void reset(); - - /** - * Shutdown the workload. - */ - void shutdown(); - - /** - * Shutdown the workload due to failure. - * - * @param cause The cause for shutting down the workload. - */ - void shutdown(Exception cause); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMemory.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMemory.java deleted file mode 100644 index 85027f284..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimMemory.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import org.opendc.simulator.compute.model.MemoryUnit; -import org.opendc.simulator.flow2.sink.FlowSink; - -/** - * An interface to control the memory usage of simulated workloads. - */ -public interface SimMemory extends FlowSink { - /** - * Return the total capacity of the memory (in MBs). - */ - double getCapacity(); - - /** - * Return the models representing the static information of the memory units supporting this interface. - */ - MemoryUnit getMemoryUnit(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimNetworkInterface.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimNetworkInterface.java deleted file mode 100644 index 4b623e593..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimNetworkInterface.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; - -/** - * A firmware interface to a network adapter. - */ -public interface SimNetworkInterface { - /** - * Return the name of the network interface. - */ - String getName(); - - /** - * Return the unidirectional bandwidth of the network interface in Mbps. - */ - double getBandwidth(); - - /** - * Return the inlet for the "transmit" channel of the network interface. - */ - Inlet getTx(); - - /** - * Return the outlet for the "receive" channel of the network interface. - */ - Outlet getRx(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimProcessingUnit.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimProcessingUnit.java deleted file mode 100644 index 213c3d4f6..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimProcessingUnit.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import org.opendc.simulator.compute.model.Cpu; -import org.opendc.simulator.flow2.sink.FlowSink; - -/** - * A simulated processing unit. - */ -public interface SimProcessingUnit extends FlowSink { - /** - * Return the base clock frequency of the processing unit (in MHz). - */ - double getFrequency(); - - /** - * Adjust the base clock frequency of the processing unit. - * - *

- * The CPU may or may not round the new frequency to one of its pre-defined frequency steps. - * - * @param frequency The new frequency to set the clock of the processing unit to. - * @throws UnsupportedOperationException if the base clock cannot be adjusted. - */ - void setFrequency(double frequency); - - /** - * The demand on the processing unit. - */ - double getDemand(); - - /** - * The speed of the processing unit. - */ - double getSpeed(); - - /** - * The model representing the static properties of the processing unit. - */ - Cpu getCpuModel(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsu.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsu.java deleted file mode 100644 index e77186041..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsu.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import org.opendc.simulator.compute.model.Cpu; -import org.opendc.simulator.flow2.InPort; -import org.opendc.simulator.power.SimPowerInlet; - -/** - * A power supply unit in a {@link SimBareMetalMachine}. - * - *

- * This class manages the computation of power usage for a {@link SimBareMetalMachine} based on the resource usage. - */ -public abstract class SimPsu extends SimPowerInlet { - /** - * Return the power demand of the machine (in W) measured in the PSU. - *

- * This method provides access to the power consumption of the machine before PSU losses are applied. - */ - public abstract double getPowerDemand(); - - /** - * Return the instantaneous power usage of the machine (in W) measured at the inlet of the power supply. - */ - public abstract double getPowerDraw(); - - /** - * Return the cumulated energy usage of the machine (in J) measured at the inlet of the powers supply. - */ - public abstract double getEnergyUsage(); - - /** - * Return an {@link InPort} that converts processing demand (in MHz) into energy demand (J) for the specified CPU - * model. - * - * @param id The unique identifier of the CPU for this machine. - * @param model The details of the processing unit. - */ - abstract InPort getCpuPower(int id, Cpu model); - - /** - * This method is invoked when the CPU frequency is changed for the specified port. - * - * @param port The {@link InPort} for which the capacity is changed. - * @param capacity The capacity to change to. - */ - void setCpuFrequency(InPort port, double capacity) { - port.pull((float) capacity); - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsuFactories.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsuFactories.java deleted file mode 100644 index 273276162..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsuFactories.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import java.time.InstantSource; -import org.jetbrains.annotations.NotNull; -import org.opendc.simulator.compute.model.Cpu; -import org.opendc.simulator.compute.power.CpuPowerModel; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.InHandler; -import org.opendc.simulator.flow2.InPort; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.Outlet; - -/** - * A collection {@link SimPsu} implementations. - */ -public class SimPsuFactories { - private SimPsuFactories() {} - - /** - * Return a {@link SimPsuFactory} of {@link SimPsu} implementations that do not measure any power consumption. - * - *

- * This implementation has the lowest performance impact and users are advised to use this factory if they do not - * consider power consumption in their experiments. - */ - public static SimPsuFactory noop() { - return NoopPsu.FACTORY; - } - - /** - * Return a {@link SimPsuFactory} of {@link SimPsu} implementations that use a {@link CpuPowerModel} to estimate the - * power consumption of a machine based on its CPU utilization. - * - * @param model The power model to estimate the power consumption based on the CPU usage. - */ - public static SimPsuFactory simple(CpuPowerModel model) { - return (machine, graph) -> new SimplePsu(graph, model); - } - - /** - * A {@link SimPsu} implementation that does not attempt to measure power consumption. - */ - private static final class NoopPsu extends SimPsu implements FlowStageLogic { - private static final SimPsuFactory FACTORY = (machine, graph) -> new NoopPsu(graph); - - private final FlowStage stage; - private final OutPort out; - - NoopPsu(FlowGraph graph) { - stage = graph.newStage(this); - out = stage.getOutlet("out"); - out.setMask(true); - } - - @Override - public double getPowerDemand() { - return 0; - } - - @Override - public double getPowerDraw() { - return 0; - } - - @Override - public double getEnergyUsage() { - return 0; - } - - @Override - InPort getCpuPower(int id, Cpu model) { - final InPort port = stage.getInlet("cpu" + id); - port.setMask(true); - return port; - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - return Long.MAX_VALUE; - } - - @NotNull - @Override - public Outlet getFlowOutlet() { - return out; - } - } - - /** - * A {@link SimPsu} implementation that estimates the power consumption based on CPU usage. - */ - private static final class SimplePsu extends SimPsu implements FlowStageLogic { - private final FlowStage stage; - private final OutPort out; - private final CpuPowerModel model; - private final InstantSource clock; - - private double targetFreq; - private double totalUsage; - private long lastUpdate; - - private double powerDraw; - private double energyUsage; - - private final InHandler handler = new InHandler() { - @Override - public void onPush(InPort port, float demand) { - totalUsage += -port.getDemand() + demand; - } - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) { - totalUsage -= port.getDemand(); - } - }; - - SimplePsu(FlowGraph graph, CpuPowerModel model) { - this.stage = graph.newStage(this); - this.model = model; - this.clock = graph.getEngine().getClock(); - this.out = stage.getOutlet("out"); - this.out.setMask(true); - - lastUpdate = graph.getEngine().getClock().millis(); - } - - @Override - public double getPowerDemand() { - return totalUsage; - } - - @Override - public double getPowerDraw() { - return powerDraw; - } - - @Override - public double getEnergyUsage() { - updateEnergyUsage(clock.millis()); - return energyUsage; - } - - @Override - InPort getCpuPower(int id, Cpu model) { - targetFreq += model.getTotalCapacity(); - - final InPort port = stage.getInlet("cpu" + id); - port.setHandler(handler); - return port; - } - - @Override - void setCpuFrequency(InPort port, double capacity) { - targetFreq += -port.getCapacity() + capacity; - - super.setCpuFrequency(port, capacity); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - updateEnergyUsage(now); - - double usage = model.computePower(totalUsage / targetFreq); - out.push((float) usage); - powerDraw = usage; - - return Long.MAX_VALUE; - } - - @NotNull - @Override - public Outlet getFlowOutlet() { - return out; - } - - /** - * Calculate the energy usage up until now. - */ - private void updateEnergyUsage(long now) { - long lastUpdate = this.lastUpdate; - this.lastUpdate = now; - - long duration = now - lastUpdate; - if (duration > 0) { - // Compute the energy usage of the machine - energyUsage += powerDraw * duration * 0.001; - } - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsuFactory.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsuFactory.java deleted file mode 100644 index 872e7016e..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimPsuFactory.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import org.opendc.simulator.flow2.FlowGraph; - -/** - * A factory interface for {@link SimPsu} implementations. - */ -public interface SimPsuFactory { - /** - * Construct a new {@link SimPsu} for the specified machine. - * - * @param machine The machine to construct the power supply for. - * @param graph The {@link FlowGraph} used for the simulation. - */ - SimPsu newPsu(SimMachine machine, FlowGraph graph); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimStorageInterface.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimStorageInterface.java deleted file mode 100644 index 341122dc9..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/SimStorageInterface.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute; - -import org.opendc.simulator.flow2.Inlet; - -/** - * A firmware interface to a storage device. - */ -public interface SimStorageInterface { - /** - * Return the name of the network interface. - */ - String getName(); - - /** - * Return the capacity of the storage device in MBs. - */ - double getCapacity(); - - /** - * Return the inlet for the read operations of the storage device. - */ - Inlet getRead(); - - /** - * Return the inlet for the write operation of the storage device. - */ - Inlet getWrite(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CPUPowerModelsFactory.kt b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CPUPowerModelsFactory.kt similarity index 98% rename from opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CPUPowerModelsFactory.kt rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CPUPowerModelsFactory.kt index 2c64944c4..3600756bc 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CPUPowerModelsFactory.kt +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CPUPowerModelsFactory.kt @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.simulator.compute.power +package org.opendc.simulator.compute.cpu // TODO: couple this correctly public enum class CPUPowerModel { diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CpuPowerModel.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CpuPowerModel.java similarity index 94% rename from opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CpuPowerModel.java rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CpuPowerModel.java index 73f9357d4..4323294e8 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CpuPowerModel.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CpuPowerModel.java @@ -20,9 +20,9 @@ * SOFTWARE. */ -package org.opendc.simulator.compute.power; +package org.opendc.simulator.compute.cpu; -import org.opendc.simulator.compute.SimMachine; +import org.opendc.simulator.compute.machine.SimMachine; /** * A model for estimating the power usage of a {@link SimMachine} based on the CPU usage. diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CpuPowerModels.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CpuPowerModels.java similarity index 99% rename from opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CpuPowerModels.java rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CpuPowerModels.java index 4e62e67fa..b91bd7e26 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/CpuPowerModels.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/CpuPowerModels.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.simulator.compute.power; +package org.opendc.simulator.compute.cpu; import java.util.Arrays; diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/SimCpu.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/SimCpu.java new file mode 100644 index 000000000..60c877e96 --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/cpu/SimCpu.java @@ -0,0 +1,260 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.cpu; + +import org.opendc.simulator.compute.machine.PerformanceCounters; +import org.opendc.simulator.compute.models.CpuModel; +import org.opendc.simulator.engine.FlowConsumer; +import org.opendc.simulator.engine.FlowEdge; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; +import org.opendc.simulator.engine.FlowSupplier; + +/** + * A {@link SimCpu} of a machine. + */ +public final class SimCpu extends FlowNode implements FlowSupplier, FlowConsumer { + private final CpuModel cpuModel; + + private final CpuPowerModel cpuPowerModel; + + private float currentCpuDemand = 0.0f; // cpu capacity demanded by the mux + private float currentCpuUtilization = 0.0f; + private float currentPowerDemand = 0.0f; // power demanded of the psu + private float currentCpuSupplied = 0.0f; // cpu capacity supplied to the mux + private float currentPowerSupplied = 0.0f; // cpu capacity supplied by the psu + + private float maxCapacity; + + private PerformanceCounters performanceCounters = new PerformanceCounters(); + private long lastCounterUpdate; + private final float cpuFrequencyInv; + + private FlowEdge muxEdge; + private FlowEdge psuEdge; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Basic Getters and Setters + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public double getFrequency() { + return cpuModel.getTotalCapacity(); + } + + public void setFrequency(double frequency) { + // Clamp the capacity of the CPU between [0.0, maxFreq] + frequency = Math.max(0, Math.min(this.maxCapacity, frequency)); + // psu.setCpuFrequency(muxInPort, frequency); + } + + @Override + public float getCapacity() { + return maxCapacity; + } + + public PerformanceCounters getPerformanceCounters() { + return performanceCounters; + } + + public double getPowerDraw() { + return this.currentPowerSupplied; + } + + public double getDemand() { + return this.currentCpuDemand; + } + + public double getSpeed() { + return this.currentCpuSupplied; + } + + public CpuModel getCpuModel() { + return cpuModel; + } + + @Override + public String toString() { + return "SimBareMetalMachine.Cpu[model=" + cpuModel + "]"; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructors + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public SimCpu(FlowGraph graph, CpuModel cpuModel, int id) { + super(graph); + this.cpuModel = cpuModel; + this.maxCapacity = this.cpuModel.getTotalCapacity(); + + // TODO: connect this to the front-end + this.cpuPowerModel = CpuPowerModels.linear(400, 200); + + this.lastCounterUpdate = graph.getEngine().getClock().millis(); + + this.cpuFrequencyInv = 1 / this.maxCapacity; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowNode related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public long onUpdate(long now) { + updateCounters(now); + + // Calculate Power Demand and send to PSU + // TODO: look at the float / double thing + float powerDemand = (float) this.cpuPowerModel.computePower((double) this.currentCpuUtilization); + + if (powerDemand != this.currentPowerDemand) { + this.pushDemand(this.psuEdge, powerDemand); + this.currentPowerDemand = powerDemand; + } + + // Calculate the amount of cpu this can provide + // TODO: This should be based on the provided power + float cpuSupply = this.currentCpuDemand; + + if (cpuSupply != this.currentCpuSupplied) { + this.pushSupply(this.muxEdge, cpuSupply); + this.currentCpuSupplied = cpuSupply; + } + + return Long.MAX_VALUE; + } + + public void updateCounters() { + this.updateCounters(this.clock.millis()); + } + + /** + * Update the performance counters of the CPU. + * + * @param now The timestamp at which to update the counter. + */ + public void updateCounters(long now) { + long lastUpdate = this.lastCounterUpdate; + this.lastCounterUpdate = now; + long delta = now - lastUpdate; + + if (delta > 0) { + float demand = this.currentCpuDemand; + float rate = this.currentCpuSupplied; + float capacity = this.maxCapacity; + + final float factor = this.cpuFrequencyInv * delta; + + this.performanceCounters.addCpuActiveTime(Math.round(rate * factor)); + this.performanceCounters.addCpuIdleTime(Math.round((capacity - rate) * factor)); + this.performanceCounters.addCpuStealTime(Math.round((demand - rate) * factor)); + } + + this.performanceCounters.setCpuDemand(this.currentCpuDemand); + this.performanceCounters.setCpuSupply(this.currentCpuSupplied); + this.performanceCounters.setCpuCapacity(this.maxCapacity); + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowGraph Related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Push new demand to the psu + */ + @Override + public void pushDemand(FlowEdge supplierEdge, float newPowerDemand) { + this.psuEdge.pushDemand(newPowerDemand); + } + + /** + * Push updated supply to the mux + */ + @Override + public void pushSupply(FlowEdge consumerEdge, float newCpuSupply) { + updateCounters(); + this.currentCpuSupplied = newCpuSupply; + this.muxEdge.pushSupply(newCpuSupply); + } + + /** + * Handle new demand coming in from the mux + */ + @Override + public void handleDemand(FlowEdge consumerEdge, float newCpuDemand) { + if (newCpuDemand == this.currentCpuDemand) { + return; + } + + updateCounters(); + this.currentCpuDemand = newCpuDemand; + this.currentCpuUtilization = this.currentCpuDemand / this.maxCapacity; + + this.invalidate(); + } + + /** + * Handle updated supply from the psu + */ + @Override + public void handleSupply(FlowEdge supplierEdge, float newPowerSupply) { + // TODO: Implement this + updateCounters(); + this.currentPowerSupplied = newPowerSupply; + + this.invalidate(); + } + + /** + * Add a connection to the mux + */ + @Override + public void addConsumerEdge(FlowEdge consumerEdge) { + this.muxEdge = consumerEdge; + } + + /** + * Add a connection to the psu + */ + @Override + public void addSupplierEdge(FlowEdge supplierEdge) { + this.psuEdge = supplierEdge; + } + + /** + * Remove the connection to the mux + */ + @Override + public void removeConsumerEdge(FlowEdge consumerEdge) { + this.muxEdge = null; + this.invalidate(); + } + + /** + * Remove the connection to the psu + */ + @Override + public void removeSupplierEdge(FlowEdge supplierEdge) { + this.psuEdge = null; + this.invalidate(); + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/device/SimNetworkAdapter.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/device/SimNetworkAdapter.java deleted file mode 100644 index 1c16ceff7..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/device/SimNetworkAdapter.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.device; - -import org.opendc.simulator.compute.SimMachine; -import org.opendc.simulator.network.SimNetworkPort; - -/** - * A simulated network interface card (NIC or network adapter) that can be attached to a {@link SimMachine}. - */ -public abstract class SimNetworkAdapter extends SimNetworkPort implements SimPeripheral { - /** - * Return the unidirectional bandwidth of the network adapter (in Mbps). - */ - public abstract double getBandwidth(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/device/SimPeripheral.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/device/SimPeripheral.java deleted file mode 100644 index 40bd268b2..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/device/SimPeripheral.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.device; - -import org.opendc.simulator.compute.SimMachine; - -/** - * A component that can be attached to a {@link SimMachine}. - *

- * This interface represents the physical view of the peripheral and should be used to configure the physical properties - * of the peripheral. - */ -public interface SimPeripheral {} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/SimHypervisor.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/SimHypervisor.java deleted file mode 100644 index 42750b0fc..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/SimHypervisor.java +++ /dev/null @@ -1,933 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel; - -import java.time.InstantSource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.SplittableRandom; -import java.util.function.Consumer; -import org.opendc.simulator.compute.SimAbstractMachine; -import org.opendc.simulator.compute.SimMachine; -import org.opendc.simulator.compute.SimMachineContext; -import org.opendc.simulator.compute.SimMemory; -import org.opendc.simulator.compute.SimNetworkInterface; -import org.opendc.simulator.compute.SimProcessingUnit; -import org.opendc.simulator.compute.SimStorageInterface; -import org.opendc.simulator.compute.device.SimPeripheral; -import org.opendc.simulator.compute.kernel.cpufreq.ScalingGovernor; -import org.opendc.simulator.compute.kernel.cpufreq.ScalingGovernorFactory; -import org.opendc.simulator.compute.kernel.cpufreq.ScalingPolicy; -import org.opendc.simulator.compute.kernel.interference.VmInterferenceDomain; -import org.opendc.simulator.compute.kernel.interference.VmInterferenceMember; -import org.opendc.simulator.compute.kernel.interference.VmInterferenceProfile; -import org.opendc.simulator.compute.model.Cpu; -import org.opendc.simulator.compute.model.MachineModel; -import org.opendc.simulator.compute.workload.SimWorkload; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.InHandler; -import org.opendc.simulator.flow2.InPort; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.OutHandler; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.mux.FlowMultiplexer; -import org.opendc.simulator.flow2.mux.FlowMultiplexerFactory; - -/** - * A SimHypervisor facilitates the execution of multiple concurrent {@link SimWorkload}s, while acting as a single - * workload to another {@link SimMachine}. - */ -public final class SimHypervisor implements SimWorkload { - private final FlowMultiplexerFactory muxFactory; - private final SplittableRandom random; - private final ScalingGovernorFactory scalingGovernorFactory; - private final VmInterferenceDomain interferenceDomain; - - private SimHyperVisorContext activeContext; - private final ArrayList vms = new ArrayList<>(); - private final HvCounters counters = new HvCounters(); - - @Override - public void setOffset(long now) {} - - /** - * Construct a {@link SimHypervisor} instance. - * - * @param muxFactory The factory for the {@link FlowMultiplexer} to multiplex the workloads. - * @param random A randomness generator for the interference calculations. - * @param scalingGovernorFactory The factory for the scaling governor to use for scaling the CPU frequency. - * @param interferenceDomain The interference domain to which the hypervisor belongs. - */ - private SimHypervisor( - FlowMultiplexerFactory muxFactory, - SplittableRandom random, - ScalingGovernorFactory scalingGovernorFactory, - VmInterferenceDomain interferenceDomain) { - this.muxFactory = muxFactory; - this.random = random; - this.scalingGovernorFactory = scalingGovernorFactory; - this.interferenceDomain = interferenceDomain; - } - - /** - * Create a {@link SimHypervisor} instance. - * - * @param muxFactory The factory for the {@link FlowMultiplexer} to multiplex the workloads. - * @param random A randomness generator for the interference calculations. - * @param scalingGovernorFactory The factory for the scaling governor to use for scaling the CPU frequency. - * @param interferenceDomain The interference domain to which the hypervisor belongs. - */ - public static SimHypervisor create( - FlowMultiplexerFactory muxFactory, - SplittableRandom random, - ScalingGovernorFactory scalingGovernorFactory, - VmInterferenceDomain interferenceDomain) { - return new SimHypervisor(muxFactory, random, scalingGovernorFactory, interferenceDomain); - } - - /** - * Create a {@link SimHypervisor} instance with a default interference domain. - * - * @param muxFactory The factory for the {@link FlowMultiplexer} to multiplex the workloads. - * @param random A randomness generator for the interference calculations. - * @param scalingGovernorFactory The factory for the scaling governor to use for scaling the CPU frequency. - */ - public static SimHypervisor create( - FlowMultiplexerFactory muxFactory, SplittableRandom random, ScalingGovernorFactory scalingGovernorFactory) { - return create(muxFactory, random, scalingGovernorFactory, new VmInterferenceDomain()); - } - - /** - * Create a {@link SimHypervisor} instance with a default interference domain and scaling governor. - * - * @param muxFactory The factory for the {@link FlowMultiplexer} to multiplex the workloads. - * @param random A randomness generator for the interference calculations. - */ - public static SimHypervisor create(FlowMultiplexerFactory muxFactory, SplittableRandom random) { - return create(muxFactory, random, null); - } - - /** - * Return the performance counters of the hypervisor. - */ - public SimHypervisorCounters getCounters() { - return counters; - } - - /** - * Return the virtual machines running on this hypervisor. - */ - public List getVirtualMachines() { - return Collections.unmodifiableList(vms); - } - - /** - * Create a {@link SimVirtualMachine} instance on which users may run a [SimWorkload]. - * - * @param model The machine to create. - */ - public SimVirtualMachine newMachine(MachineModel model) { - if (!canFit(model)) { - throw new IllegalArgumentException("Machine does not fit"); - } - - SimVirtualMachine vm = new SimVirtualMachine(model); - vms.add(vm); - return vm; - } - - /** - * Remove the specified machine from the hypervisor. - * - * @param machine The machine to remove. - */ - public void removeMachine(SimVirtualMachine machine) { - if (vms.remove(machine)) { - // This cast must always succeed, since `_vms` only contains `VirtualMachine` types. - ((SimVirtualMachine) machine).close(); - } - } - - /** - * Return the CPU capacity of the hypervisor in MHz. - */ - public double getCpuCapacity() { - final SimHyperVisorContext context = activeContext; - - if (context == null) { - return 0.0; - } - - return context.previousCapacity; - } - - /** - * The CPU demand of the hypervisor in MHz. - */ - public double getCpuDemand() { - final SimHyperVisorContext context = activeContext; - - if (context == null) { - return 0.0; - } - - return context.previousDemand; - } - - /** - * The CPU usage of the hypervisor in MHz. - */ - public double getCpuUsage() { - final SimHyperVisorContext context = activeContext; - - if (context == null) { - return 0.0; - } - - return context.previousRate; - } - - /** - * Determine whether the specified machine characterized by model can fit on this hypervisor at this - * moment. - */ - public boolean canFit(MachineModel model) { - final SimHyperVisorContext context = activeContext; - if (context == null) { - return false; - } - - final FlowMultiplexer multiplexer = context.multiplexer; - return (multiplexer.getMaxInputs() - multiplexer.getInputCount()) >= 1; - } - - @Override - public void onStart(SimMachineContext ctx) { - final SimHyperVisorContext context = - new SimHyperVisorContext(ctx, muxFactory, scalingGovernorFactory, counters); - context.start(); - activeContext = context; - } - - @Override - public void onStop(SimMachineContext ctx) { - final SimHyperVisorContext context = activeContext; - if (context != null) { - activeContext = null; - context.stop(); - } - } - - @Override - public void makeSnapshot(long now) { - throw new UnsupportedOperationException("Unable to snapshot hypervisor"); - } - - @Override - public SimWorkload getSnapshot() { - throw new UnsupportedOperationException("Unable to snapshot hypervisor"); - } - - @Override - public void createCheckpointModel() { - throw new UnsupportedOperationException("Unable to create a checkpointing system for a hypervisor"); - } - - @Override - public long getCheckpointInterval() { - return -1; - } - - @Override - public long getCheckpointDuration() { - return -1; - } - - @Override - public double getCheckpointIntervalScaling() { - return -1; - } - - /** - * The context which carries the state when the hypervisor is running on a machine. - */ - private static final class SimHyperVisorContext implements FlowStageLogic { - private final SimMachineContext ctx; - private final FlowMultiplexer multiplexer; - private final FlowStage stage; - private final ScalingGovernor scalingGovernor; - private final InstantSource clock; - private final HvCounters counters; - - private long lastCounterUpdate; - private final double d; - private float previousDemand; - private float previousRate; - private float previousCapacity; - - private SimHyperVisorContext( - SimMachineContext ctx, - FlowMultiplexerFactory muxFactory, - ScalingGovernorFactory scalingGovernorFactory, - HvCounters counters) { - - this.ctx = ctx; - this.counters = counters; - - final FlowGraph graph = ctx.getGraph(); - this.multiplexer = muxFactory.newMultiplexer(graph); - this.stage = graph.newStage(this); - this.clock = graph.getEngine().getClock(); - - this.lastCounterUpdate = clock.millis(); - - final SimProcessingUnit cpu = ctx.getCpu(); - - if (scalingGovernorFactory != null) { - this.scalingGovernor = scalingGovernorFactory.newGovernor(new ScalingPolicyImpl(cpu)); - } else { - this.scalingGovernor = null; - } - - this.d = 1 / cpu.getFrequency(); - } - - /** - * Start the hypervisor on a new machine. - */ - void start() { - final FlowGraph graph = ctx.getGraph(); - final FlowMultiplexer multiplexer = this.multiplexer; - - graph.connect(multiplexer.newOutput(), ctx.getCpu().getInput()); - - if (this.scalingGovernor != null) { - this.scalingGovernor.onStart(); - } - } - - /** - * Stop the hypervisor. - */ - void stop() { - // Synchronize the counters before stopping the hypervisor. Otherwise, the last report is missed. - updateCounters(clock.millis()); - - stage.close(); - } - - /** - * Invalidate the {@link FlowStage} of the hypervisor. - */ - void invalidate() { - stage.invalidate(); - } - - /** - * Update the performance counters of the hypervisor. - * - * @param now The timestamp at which to update the counter. - */ - void updateCounters(long now) { - long lastUpdate = this.lastCounterUpdate; - this.lastCounterUpdate = now; - long delta = now - lastUpdate; - - if (delta > 0) { - final HvCounters counters = this.counters; - - float demand = previousDemand; - float rate = previousRate; - float capacity = previousCapacity; - - final double factor = this.d * delta; - - counters.cpuActiveTime += Math.round(rate * factor); - counters.cpuIdleTime += Math.round((capacity - rate) * factor); - counters.cpuStealTime += Math.round((demand - rate) * factor); - } - } - - /** - * Update the performance counters of the hypervisor. - */ - void updateCounters() { - updateCounters(clock.millis()); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - updateCounters(now); - - final FlowMultiplexer multiplexer = this.multiplexer; - final ScalingGovernor scalingGovernors = this.scalingGovernor; - - float demand = multiplexer.getDemand(); - float rate = multiplexer.getRate(); - float capacity = multiplexer.getCapacity(); - - this.previousDemand = demand; - this.previousRate = rate; - this.previousCapacity = capacity; - - double load = rate / Math.min(1.0, capacity); - - if (scalingGovernor != null) { - scalingGovernor.onLimit(load); - } - - return Long.MAX_VALUE; - } - } - - /** - * A {@link ScalingPolicy} for a physical CPU of the hypervisor. - */ - private static final class ScalingPolicyImpl implements ScalingPolicy { - private final SimProcessingUnit cpu; - - private ScalingPolicyImpl(SimProcessingUnit cpu) { - this.cpu = cpu; - } - - @Override - public SimProcessingUnit getCpu() { - return cpu; - } - - @Override - public double getTarget() { - return cpu.getFrequency(); - } - - @Override - public void setTarget(double target) { - cpu.setFrequency(target); - } - - @Override - public double getMin() { - return 0; - } - - @Override - public double getMax() { - return cpu.getCpuModel().getTotalCapacity(); - } - } - - /** - * A virtual machine running on the hypervisor. - */ - public class SimVirtualMachine extends SimAbstractMachine { - private boolean isClosed; - private final VmCounters counters = new VmCounters(this); - - private SimVirtualMachine(MachineModel model) { - super(model); - } - - public SimHypervisorCounters getCounters() { - return counters; - } - - public double getCpuDemand() { - final VmContext context = (VmContext) getActiveContext(); - - if (context == null) { - return 0.0; - } - - return context.previousDemand; - } - - public double getCpuUsage() { - final VmContext context = (VmContext) getActiveContext(); - - if (context == null) { - return 0.0; - } - - return context.usage; - } - - public double getCpuCapacity() { - final VmContext context = (VmContext) getActiveContext(); - - if (context == null) { - return 0.0; - } - - return context.previousCapacity; - } - - @Override - public List getPeripherals() { - return Collections.emptyList(); - } - - @Override - protected SimAbstractMachineContext createContext( - SimWorkload workload, Map meta, Consumer completion) { - if (isClosed) { - throw new IllegalStateException("Virtual machine does not exist anymore"); - } - - final SimHyperVisorContext context = activeContext; - if (context == null) { - throw new IllegalStateException("Hypervisor is inactive"); - } - - return new VmContext( - context, - this, - random, - interferenceDomain, - counters, - SimHypervisor.this.counters, - workload, - meta, - completion); - } - - @Override - public SimAbstractMachineContext getActiveContext() { - return super.getActiveContext(); - } - - void close() { - if (isClosed) { - return; - } - - isClosed = true; - cancel(); - } - } - - /** - * A {@link SimAbstractMachine.SimAbstractMachineContext} for a virtual machine instance. - */ - private static final class VmContext extends SimAbstractMachine.SimAbstractMachineContext - implements FlowStageLogic { - private final SimHyperVisorContext simHyperVisorContext; - private final SplittableRandom random; - private final VmCounters vmCounters; - private final HvCounters hvCounters; - private final VmInterferenceMember interferenceMember; - private final FlowStage stage; - private final FlowMultiplexer multiplexer; - private final InstantSource clock; - - private final VCpu cpu; - private final SimAbstractMachine.Memory memory; - private final List net; - private final List disk; - - private final Inlet[] muxInlets; - private long lastUpdate; - private long lastCounterUpdate; - private final double d; - - private float demand; - private float usage; - private float capacity; - - private float previousDemand; - private float previousCapacity; - - private VmContext( - SimHyperVisorContext simHyperVisorContext, - SimVirtualMachine machine, - SplittableRandom random, - VmInterferenceDomain interferenceDomain, - VmCounters vmCounters, - HvCounters hvCounters, - SimWorkload workload, - Map meta, - Consumer completion) { - super(machine, workload, meta, completion); - - this.simHyperVisorContext = simHyperVisorContext; - this.random = random; - this.vmCounters = vmCounters; - this.hvCounters = hvCounters; - this.clock = simHyperVisorContext.clock; - - final VmInterferenceProfile interferenceProfile = (VmInterferenceProfile) meta.get("interference-profile"); - VmInterferenceMember interferenceMember = null; - if (interferenceDomain != null && interferenceProfile != null) { - interferenceMember = interferenceDomain.join(interferenceProfile); - interferenceMember.activate(); - } - this.interferenceMember = interferenceMember; - - final FlowGraph graph = simHyperVisorContext.ctx.getGraph(); - final FlowStage stage = graph.newStage(this); - this.stage = stage; - this.lastUpdate = clock.millis(); - this.lastCounterUpdate = clock.millis(); - - final FlowMultiplexer multiplexer = simHyperVisorContext.multiplexer; - this.multiplexer = multiplexer; - - final MachineModel model = machine.getModel(); - final Cpu cpuModel = model.getCpu(); - final Inlet[] muxInlets = new Inlet[1]; - - this.muxInlets = muxInlets; - - final Inlet muxInlet = multiplexer.newInput(); - muxInlets[0] = muxInlet; - - final InPort input = stage.getInlet("cpu"); - final OutPort output = stage.getOutlet("mux"); - - final Handler handler = new Handler(this, input, output); - input.setHandler(handler); - output.setHandler(handler); - - this.cpu = new VCpu(cpuModel, input); - - graph.connect(output, muxInlet); - - this.d = 1 / cpuModel.getTotalCapacity(); - - this.memory = new SimAbstractMachine.Memory(graph, model.getMemory()); - - int netIndex = 0; - final ArrayList net = new ArrayList<>(); - this.net = net; - for (org.opendc.simulator.compute.model.NetworkAdapter adapter : model.getNetwork()) { - net.add(new SimAbstractMachine.NetworkAdapter(graph, adapter, netIndex++)); - } - - int diskIndex = 0; - final ArrayList disk = new ArrayList<>(); - this.disk = disk; - for (org.opendc.simulator.compute.model.StorageDevice device : model.getStorage()) { - disk.add(new SimAbstractMachine.StorageDevice(graph, device, diskIndex++)); - } - } - - /** - * Update the performance counters of the virtual machine. - * - * @param now The timestamp at which to update the counter. - */ - void updateCounters(long now) { - long lastUpdate = this.lastCounterUpdate; - this.lastCounterUpdate = now; - long delta = now - lastUpdate; // time between updates - - if (delta > 0) { - final VmCounters counters = this.vmCounters; - - float demand = this.previousDemand; - float rate = this.usage; - float capacity = this.previousCapacity; - - final double factor = this.d * delta; // time between divided by total capacity - final double active = rate * factor; - - counters.cpuActiveTime += Math.round(active); - counters.cpuIdleTime += Math.round((capacity - rate) * factor); - counters.cpuStealTime += Math.round((demand - rate) * factor); - } - } - - /** - * Update the performance counters of the virtual machine. - */ - void updateCounters() { - updateCounters(clock.millis()); - } - - @Override - public FlowGraph getGraph() { - return stage.getGraph(); - } - - @Override - public SimProcessingUnit getCpu() { - return cpu; - } - - @Override - public SimMemory getMemory() { - return memory; - } - - @Override - public List getNetworkInterfaces() { - return net; - } - - @Override - public List getStorageInterfaces() { - return disk; - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - float usage = 0.f; - for (Inlet inlet : muxInlets) { - usage += ((InPort) inlet).getRate(); - } - this.usage = usage; - this.previousDemand = demand; - this.previousCapacity = capacity; - - long lastUpdate = this.lastUpdate; - this.lastUpdate = now; - long delta = now - lastUpdate; - - if (delta > 0) { - final VmInterferenceMember interferenceMember = this.interferenceMember; - double penalty = 0.0; - - if (interferenceMember != null) { - final FlowMultiplexer multiplexer = this.multiplexer; - double load = multiplexer.getRate() / Math.min(1.0, multiplexer.getCapacity()); - penalty = 1 - interferenceMember.apply(random, load); - } - - final double factor = this.d * delta; - final long lostTime = Math.round(factor * usage * penalty); - - this.vmCounters.cpuLostTime += lostTime; - this.hvCounters.cpuLostTime += lostTime; - } - - // Invalidate the FlowStage of the hypervisor to update its counters (via onUpdate) - simHyperVisorContext.invalidate(); - - return Long.MAX_VALUE; - } - - @Override - protected void doCancel() { - super.doCancel(); - - // Synchronize the counters before stopping the hypervisor. Otherwise, the last report is missed. - updateCounters(clock.millis()); - - stage.close(); - - final FlowMultiplexer multiplexer = this.multiplexer; - for (Inlet muxInlet : muxInlets) { - multiplexer.releaseInput(muxInlet); - } - - final VmInterferenceMember interferenceMember = this.interferenceMember; - if (interferenceMember != null) { - interferenceMember.deactivate(); - } - } - } - - /** - * A {@link SimProcessingUnit} of a virtual machine. - */ - private static final class VCpu implements SimProcessingUnit { - private final Cpu model; - private final InPort input; - - private VCpu(Cpu model, InPort input) { - this.model = model; - this.input = input; - - input.pull((float) model.getTotalCapacity()); - } - - @Override - public double getFrequency() { - return input.getCapacity(); - } - - @Override - public void setFrequency(double frequency) { - input.pull((float) frequency); - } - - @Override - public double getDemand() { - return input.getDemand(); - } - - @Override - public double getSpeed() { - return input.getRate(); - } - - @Override - public Cpu getCpuModel() { - return model; - } - - @Override - public Inlet getInput() { - return input; - } - - @Override - public String toString() { - return "SimHypervisor.VCpu[model" + model + "]"; - } - } - - /** - * A handler for forwarding flow between an inlet and outlet. - */ - private static class Handler implements InHandler, OutHandler { - private final InPort input; - private final OutPort output; - private final VmContext context; - - private Handler(VmContext context, InPort input, OutPort output) { - this.context = context; - this.input = input; - this.output = output; - } - - @Override - public void onPush(InPort port, float demand) { - context.demand += -port.getDemand() + demand; - - output.push(demand); - } - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) { - context.demand -= port.getDemand(); - - output.push(0.f); - } - - @Override - public float getRate(InPort port) { - return output.getRate(); - } - - @Override - public void onPull(OutPort port, float capacity) { - context.capacity += -port.getCapacity() + capacity; - - input.pull(capacity); - } - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - context.capacity -= port.getCapacity(); - - input.pull(0.f); - } - } - - /** - * Implementation of {@link SimHypervisorCounters} for the hypervisor. - */ - private class HvCounters implements SimHypervisorCounters { - private long cpuActiveTime; - private long cpuIdleTime; - private long cpuStealTime; - private long cpuLostTime; - - @Override - public long getCpuActiveTime() { - return cpuActiveTime; - } - - @Override - public long getCpuIdleTime() { - return cpuIdleTime; - } - - @Override - public long getCpuStealTime() { - return cpuStealTime; - } - - @Override - public long getCpuLostTime() { - return cpuLostTime; - } - - @Override - public void sync() { - final SimHyperVisorContext context = activeContext; - - if (context != null) { - context.updateCounters(); - } - } - } - - /** - * Implementation of {@link SimHypervisorCounters} for the virtual machine. - */ - private static class VmCounters implements SimHypervisorCounters { - private final SimVirtualMachine vm; - private long cpuActiveTime; - private long cpuIdleTime; - private long cpuStealTime; - private long cpuLostTime; - - private VmCounters(SimVirtualMachine vm) { - this.vm = vm; - } - - @Override - public long getCpuActiveTime() { - return cpuActiveTime; - } - - @Override - public long getCpuIdleTime() { - return cpuIdleTime; - } - - @Override - public long getCpuStealTime() { - return cpuStealTime; - } - - @Override - public long getCpuLostTime() { - return cpuLostTime; - } - - @Override - public void sync() { - final VmContext context = (VmContext) vm.getActiveContext(); - - if (context != null) { - context.updateCounters(); - } - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/SimHypervisorCounters.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/SimHypervisorCounters.java deleted file mode 100644 index fc77e9d61..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/SimHypervisorCounters.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel; - -/** - * Performance counters of a {@link SimHypervisor}. - */ -public interface SimHypervisorCounters { - /** - * Return the amount of time (in milliseconds) the CPUs of the hypervisor were actively running. - */ - long getCpuActiveTime(); - - /** - * Return the amount of time (in milliseconds) the CPUs of the hypervisor were idle. - */ - long getCpuIdleTime(); - - /** - * Return the amount of CPU time (in milliseconds) that virtual machines were ready to run, but were not able to. - */ - long getCpuStealTime(); - - /** - * Return the amount of CPU time (in milliseconds) that was lost due to interference between virtual machines. - */ - long getCpuLostTime(); - - /** - * Synchronize the counter values. - */ - void sync(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernor.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernor.java deleted file mode 100644 index 69a371e11..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernor.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.cpufreq; - -/** - * A [ScalingGovernor] in the CPUFreq subsystem of OpenDC is responsible for scaling the frequency of simulated CPUs - * independent of the particular implementation of the CPU. - * - *

- * Each of the scaling governors implements a single, possibly parametrized, performance scaling algorithm. - * - * @see documentation of the Linux CPUFreq subsystem. - */ -public interface ScalingGovernor { - /** - * This method is invoked when the governor is started. - */ - default void onStart() {} - - /** - * This method is invoked when the governor should re-decide the frequency limits. - * - * @param load The load of the system. - */ - default void onLimit(double load) {} -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernorFactory.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernorFactory.java deleted file mode 100644 index 97a498796..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernorFactory.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.cpufreq; - -/** - * Factory interface for a {@link ScalingGovernor}. - */ -public interface ScalingGovernorFactory { - /** - * Create the scaling logic for the specified {@link ScalingPolicy}. - */ - ScalingGovernor newGovernor(ScalingPolicy policy); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernors.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernors.java deleted file mode 100644 index 2b10ae596..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingGovernors.java +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.cpufreq; - -/** - * Collection of common {@link ScalingGovernor} implementations. - */ -public class ScalingGovernors { - private ScalingGovernors() {} - - /** - * Return a {@link ScalingGovernorFactory} for the performance scaling governor. - * - *

- * This governor causes the highest possible frequency to be requested from the CPUs. - */ - public static ScalingGovernorFactory performance() { - return PerformanceScalingGovernor.FACTORY; - } - - /** - * Return a {@link ScalingGovernorFactory} for the powersave scaling governor. - * - *

- * This governor causes the lowest possible frequency to be requested from the CPUs. - */ - public static ScalingGovernorFactory powerSave() { - return PowerSaveScalingGovernor.FACTORY; - } - - /** - * Return a {@link ScalingGovernorFactory} for the conservative scaling governor from the Linux kernel. - * - * @param threshold The threshold before scaling. - * @param stepSize The size of the frequency steps (use negative value for automatic). - */ - public static ScalingGovernorFactory conservative(double threshold, double stepSize) { - return (policy) -> new ConservativeScalingGovernor(policy, threshold, stepSize); - } - - /** - * Return a {@link ScalingGovernorFactory} for the conservative scaling governor from the Linux kernel. - * - * @param threshold The threshold before scaling. - */ - public static ScalingGovernorFactory conservative(double threshold) { - return conservative(threshold, -1.0); - } - - /** - * Return a {@link ScalingGovernorFactory} for the ondemand scaling governor from the Linux kernel. - * - * @param threshold The threshold before scaling. - */ - public static ScalingGovernorFactory ondemand(double threshold) { - return (policy) -> new OnDemandScalingGovernor(policy, threshold); - } - - private abstract static class AbstractScalingGovernor implements ScalingGovernor { - protected final ScalingPolicy policy; - - AbstractScalingGovernor(ScalingPolicy policy) { - this.policy = policy; - } - } - - private static class PerformanceScalingGovernor extends AbstractScalingGovernor { - static final ScalingGovernorFactory FACTORY = PerformanceScalingGovernor::new; - - private PerformanceScalingGovernor(ScalingPolicy policy) { - super(policy); - } - - @Override - public void onStart() { - policy.setTarget(policy.getMax()); - } - } - - private static class PowerSaveScalingGovernor extends AbstractScalingGovernor { - static final ScalingGovernorFactory FACTORY = PowerSaveScalingGovernor::new; - - private PowerSaveScalingGovernor(ScalingPolicy policy) { - super(policy); - } - - @Override - public void onStart() { - policy.setTarget(policy.getMin()); - } - } - - private static class ConservativeScalingGovernor extends AbstractScalingGovernor { - private final double threshold; - private final double stepSize; - private double previousLoad; - - private ConservativeScalingGovernor(ScalingPolicy policy, double threshold, double stepSize) { - super(policy); - - this.threshold = threshold; - this.previousLoad = threshold; - - if (stepSize < 0) { - // https://github.com/torvalds/linux/blob/master/drivers/cpufreq/cpufreq_conservative.c#L33 - this.stepSize = policy.getMax() * 0.05; - } else { - this.stepSize = Math.min(stepSize, policy.getMax()); - } - } - - @Override - public void onStart() { - policy.setTarget(policy.getMin()); - } - - @Override - public void onLimit(double load) { - final ScalingPolicy policy = this.policy; - double currentTarget = policy.getTarget(); - if (load > threshold) { - // Check for load increase (see: - // https://github.com/torvalds/linux/blob/master/drivers/cpufreq/cpufreq_conservative.c#L102) - double step = 0.0; - - if (load > previousLoad) { - step = stepSize; - } else if (load < previousLoad) { - step = -stepSize; - } - - double target = Math.min(Math.max(currentTarget + step, policy.getMin()), policy.getMax()); - policy.setTarget(target); - } - previousLoad = load; - } - } - - private static class OnDemandScalingGovernor extends AbstractScalingGovernor { - private final double threshold; - private final double multiplier; - - private OnDemandScalingGovernor(ScalingPolicy policy, double threshold) { - super(policy); - - this.threshold = threshold; - this.multiplier = (policy.getMax() - policy.getMin()) / 100; - } - - @Override - public void onStart() { - policy.setTarget(policy.getMin()); - } - - @Override - public void onLimit(double load) { - final ScalingPolicy policy = this.policy; - double target; - - if (load < threshold) { - /* Proportional scaling (see: https://github.com/torvalds/linux/blob/master/drivers/cpufreq/cpufreq_ondemand.c#L151). */ - target = policy.getMin() + load * multiplier; - } else { - target = policy.getMax(); - } - - policy.setTarget(target); - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingPolicy.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingPolicy.java deleted file mode 100644 index 0cdb7a0bd..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/cpufreq/ScalingPolicy.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.cpufreq; - -import org.opendc.simulator.compute.SimProcessingUnit; - -/** - * An interface that holds the state managed by a {@link ScalingGovernor} and used by the underlying machine to control - * the CPU frequencies. - */ -public interface ScalingPolicy { - /** - * The processing unit that is associated with this policy. - */ - SimProcessingUnit getCpu(); - - /** - * Return the target frequency which the CPU should attempt to attain. - */ - double getTarget(); - - /** - * Set the target frequency which the CPU should attempt to attain. - */ - void setTarget(double target); - - /** - * Return the minimum frequency to which the CPU may scale. - */ - double getMin(); - - /** - * Return the maximum frequency to which the CPU may scale. - */ - double getMax(); -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceDomain.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceDomain.java deleted file mode 100644 index cc6713792..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceDomain.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.interference; - -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collections; -import java.util.WeakHashMap; - -/** - * A domain where virtual machines may incur performance variability due to operating on the same resource and - * therefore causing interference. - */ -public final class VmInterferenceDomain { - /** - * A cache to maintain a mapping between the active profiles in this domain. - */ - private final WeakHashMap cache = new WeakHashMap<>(); - - /** - * The set of members active in this domain. - */ - private final ArrayList activeKeys = new ArrayList<>(); - - /** - * Queue of participants that will be removed or added to the active groups. - */ - private final ArrayDeque participants = new ArrayDeque<>(); - - /** - * Join this interference domain with the specified profile and return the {@link VmInterferenceMember} - * associated with the profile. If the member does not exist, it will be created. - */ - public VmInterferenceMember join(VmInterferenceProfile profile) { - return cache.computeIfAbsent(profile, (key) -> key.newMember(this)); - } - - /** - * Mark the specified member as active in this interference domain. - */ - void activate(VmInterferenceMember member) { - final ArrayList activeKeys = this.activeKeys; - int pos = Collections.binarySearch(activeKeys, member); - if (pos < 0) { - activeKeys.add(-pos - 1, member); - } - - computeActiveGroups(activeKeys, member); - } - - /** - * Mark the specified member as inactive in this interference domain. - */ - void deactivate(VmInterferenceMember member) { - final ArrayList activeKeys = this.activeKeys; - activeKeys.remove(member); - computeActiveGroups(activeKeys, member); - } - - /** - * (Re-)compute the active groups. - */ - private void computeActiveGroups(ArrayList activeKeys, VmInterferenceMember member) { - if (activeKeys.isEmpty()) { - return; - } - - final int[] groups = member.membership; - final int[][] members = member.members; - final ArrayDeque participants = this.participants; - - for (int group : groups) { - int[] groupMembers = members[group]; - - int i = 0; - int j = 0; - int intersection = 0; - - // Compute the intersection of the group members and the current active members - while (i < groupMembers.length && j < activeKeys.size()) { - int l = groupMembers[i]; - final VmInterferenceMember rightEntry = activeKeys.get(j); - int r = rightEntry.id; - - if (l < r) { - i++; - } else if (l > r) { - j++; - } else { - if (++intersection > 1) { - rightEntry.addGroup(group); - } else { - participants.add(rightEntry); - } - - i++; - j++; - } - } - - while (true) { - VmInterferenceMember participant = participants.poll(); - - if (participant == null) { - break; - } - - if (intersection <= 1) { - participant.removeGroup(group); - } else { - participant.addGroup(group); - } - } - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceMember.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceMember.java deleted file mode 100644 index 64cd5077e..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceMember.java +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.interference; - -import java.util.Arrays; -import java.util.SplittableRandom; -import org.jetbrains.annotations.NotNull; - -/** - * A participant of an interference domain. - */ -public final class VmInterferenceMember implements Comparable { - private final VmInterferenceDomain domain; - private final VmInterferenceModel model; - final int id; - final int[] membership; - final int[][] members; - private final double[] targets; - private final double[] scores; - - private int[] groups = new int[2]; - private int groupsSize = 0; - - private int refCount = 0; - - VmInterferenceMember( - VmInterferenceDomain domain, - VmInterferenceModel model, - int id, - int[] membership, - int[][] members, - double[] targets, - double[] scores) { - this.domain = domain; - this.model = model; - this.id = id; - this.membership = membership; - this.members = members; - this.targets = targets; - this.scores = scores; - } - - /** - * Mark this member as active in this interference domain. - */ - public void activate() { - if (refCount++ <= 0) { - domain.activate(this); - } - } - - /** - * Mark this member as inactive in this interference domain. - */ - public void deactivate() { - if (--refCount <= 0) { - domain.deactivate(this); - } - } - - /** - * Compute the performance score of the member in this interference domain. - * - * @param random The source of randomness to apply when computing the performance score. - * @param load The overall load on the interference domain. - * @return A score representing the performance score to be applied to the member, with 1 - * meaning no influence, <1 means that performance degrades, and >1 means that performance improves. - */ - public double apply(SplittableRandom random, double load) { - int groupsSize = this.groupsSize; - - if (groupsSize == 0) { - return 1.0; - } - - int[] groups = this.groups; - double[] targets = this.targets; - - int low = 0; - int high = groupsSize - 1; - int group = -1; - - // Perform binary search over the groups based on target load - while (low <= high) { - int mid = low + high >>> 1; - int midGroup = groups[mid]; - double target = targets[midGroup]; - - if (target < load) { - low = mid + 1; - group = midGroup; - } else if (target > load) { - high = mid - 1; - } else { - group = midGroup; - break; - } - } - - if (group >= 0 && random.nextInt(members[group].length) == 0) { - return scores[group]; - } - - return 1.0; - } - - /** - * Add an active group to this member. - */ - void addGroup(int group) { - int[] groups = this.groups; - int groupsSize = this.groupsSize; - int pos = Arrays.binarySearch(groups, 0, groupsSize, group); - - if (pos >= 0) { - return; - } - - int idx = -pos - 1; - - if (groups.length == groupsSize) { - int newSize = groupsSize + (groupsSize >> 1); - groups = Arrays.copyOf(groups, newSize); - this.groups = groups; - } - - System.arraycopy(groups, idx, groups, idx + 1, groupsSize - idx); - groups[idx] = group; - this.groupsSize += 1; - } - - /** - * Remove an active group from this member. - */ - void removeGroup(int group) { - int[] groups = this.groups; - int groupsSize = this.groupsSize; - int pos = Arrays.binarySearch(groups, 0, groupsSize, group); - - if (pos < 0) { - return; - } - - System.arraycopy(groups, pos + 1, groups, pos, groupsSize - pos - 1); - this.groupsSize -= 1; - } - - @Override - public int compareTo(@NotNull VmInterferenceMember member) { - int cmp = Integer.compare(model.hashCode(), member.model.hashCode()); - if (cmp != 0) { - return cmp; - } - - return Integer.compare(id, member.id); - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceModel.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceModel.java deleted file mode 100644 index e20932666..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceModel.java +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.interference; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Comparator; -import java.util.HashMap; -import java.util.Map; -import java.util.Set; -import java.util.TreeMap; -import java.util.TreeSet; -import org.jetbrains.annotations.Nullable; - -/** - * An interference model that models the resource interference between virtual machines on a host. - */ -public final class VmInterferenceModel { - private final Map idMapping; - private final int[][] members; - private final int[][] membership; - private final double[] targets; - private final double[] scores; - - private VmInterferenceModel( - Map idMapping, int[][] members, int[][] membership, double[] targets, double[] scores) { - this.idMapping = idMapping; - this.members = members; - this.membership = membership; - this.targets = targets; - this.scores = scores; - } - - /** - * Create a {@link Builder} for constructing a {@link VmInterferenceModel}. - */ - public static Builder builder() { - return new Builder(256); - } - - /** - * Return the {@link VmInterferenceProfile} associated with the specified id. - * - * @param id The identifier of the virtual machine. - * @return A {@link VmInterferenceProfile} representing the virtual machine as part of interference model or - * null if there is no profile for the virtual machine. - */ - @Nullable - public VmInterferenceProfile getProfile(String id) { - Integer intId = idMapping.get(id); - if (intId == null) { - return null; - } - return new VmInterferenceProfile(this, intId, membership[intId], members, targets, scores); - } - - /** - * Builder class for a {@link VmInterferenceModel}. - */ - public static final class Builder { - private double[] targets; - private double[] scores; - private final ArrayList> members; - private final TreeSet ids; - private int size; - - private Builder(int initialCapacity) { - this.targets = new double[initialCapacity]; - this.scores = new double[initialCapacity]; - this.members = new ArrayList<>(initialCapacity); - this.ids = new TreeSet<>(); - } - - /** - * Add the specified group to the model. - */ - public Builder addGroup(Set members, double targetLoad, double score) { - int size = this.size; - - if (size == targets.length) { - grow(); - } - - targets[size] = targetLoad; - scores[size] = score; - this.members.add(members); - ids.addAll(members); - - this.size++; - - return this; - } - - /** - * Build the {@link VmInterferenceModel}. - */ - public VmInterferenceModel build() { - int size = this.size; - double[] targets = this.targets; - double[] scores = this.scores; - ArrayList> members = this.members; - - Integer[] indices = new Integer[size]; - Arrays.setAll(indices, (i) -> i); - Arrays.sort( - indices, - Comparator.comparingDouble((Integer l) -> targets[l]) - .thenComparingDouble(l -> scores[l]) - .thenComparingInt(l -> l)); - - double[] newTargets = new double[size]; - double[] newScores = new double[size]; - int[][] newMembers = new int[size][]; - - int nextId = 0; - - Map idMapping = new HashMap<>(); - TreeMap> membership = new TreeMap<>(); - for (String id : ids) { - idMapping.put(id, nextId++); - membership.put(id, new ArrayList<>()); - } - - for (int group = 0; group < indices.length; group++) { - int j = indices[group]; - newTargets[group] = targets[j]; - newScores[group] = scores[j]; - - Set groupMembers = members.get(j); - int[] newGroupMembers = new int[groupMembers.size()]; - int k = 0; - - for (String groupMember : groupMembers) { - newGroupMembers[k++] = idMapping.get(groupMember); - } - - Arrays.sort(newGroupMembers); - newMembers[group] = newGroupMembers; - - for (String member : groupMembers) { - membership.get(member).add(group); - } - } - - int[][] newMembership = new int[membership.size()][]; - int k = 0; - for (ArrayList value : membership.values()) { - newMembership[k++] = value.stream().mapToInt(i -> i).toArray(); - } - - return new VmInterferenceModel(idMapping, newMembers, newMembership, newTargets, newScores); - } - - /** - * Helper function to grow the capacity of the internal arrays. - */ - private void grow() { - int oldSize = targets.length; - int newSize = oldSize + (oldSize >> 1); - - targets = Arrays.copyOf(targets, newSize); - scores = Arrays.copyOf(scores, newSize); - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceProfile.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceProfile.java deleted file mode 100644 index 3f0c0a888..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/kernel/interference/VmInterferenceProfile.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.interference; - -/** - * A profile of a particular virtual machine describing its interference pattern with other virtual machines. - */ -public final class VmInterferenceProfile { - private final VmInterferenceModel model; - private final int id; - private final int[] membership; - private final int[][] members; - private final double[] targets; - private final double[] scores; - - /** - * Construct a {@link VmInterferenceProfile}. - */ - VmInterferenceProfile( - VmInterferenceModel model, int id, int[] membership, int[][] members, double[] targets, double[] scores) { - this.model = model; - this.id = id; - this.membership = membership; - this.members = members; - this.targets = targets; - this.scores = scores; - } - - /** - * Create a new {@link VmInterferenceMember} based on this profile for the specified domain. - */ - VmInterferenceMember newMember(VmInterferenceDomain domain) { - return new VmInterferenceMember(domain, model, id, membership, members, targets, scores); - } - - @Override - public String toString() { - return "VmInterferenceProfile[id=" + id + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/PerformanceCounters.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/PerformanceCounters.java new file mode 100644 index 000000000..b1e30e5c5 --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/PerformanceCounters.java @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.machine; + +public class PerformanceCounters { + private long cpuActiveTime = 0; + private long cpuIdleTime = 0; + private long cpuStealTime = 0; + private long cpuLostTime = 0; + + private float cpuCapacity = 0.0f; + private float cpuDemand = 0.0f; + private float cpuSupply = 0.0f; + + public long getCpuActiveTime() { + return cpuActiveTime; + } + + public void setCpuActiveTime(long cpuActiveTime) { + this.cpuActiveTime = cpuActiveTime; + } + + public void addCpuActiveTime(long cpuActiveTime) { + this.cpuActiveTime += cpuActiveTime; + } + + public long getCpuIdleTime() { + return cpuIdleTime; + } + + public void setCpuIdleTime(long cpuIdleTime) { + this.cpuIdleTime = cpuIdleTime; + } + + public void addCpuIdleTime(long cpuIdleTime) { + this.cpuIdleTime += cpuIdleTime; + } + + public long getCpuStealTime() { + return cpuStealTime; + } + + public void setCpuStealTime(long cpuStealTime) { + this.cpuStealTime = cpuStealTime; + } + + public void addCpuStealTime(long cpuStealTime) { + this.cpuStealTime += cpuStealTime; + } + + public long getCpuLostTime() { + return cpuLostTime; + } + + public void setCpuLostTime(long cpuLostTime) { + this.cpuLostTime = cpuLostTime; + } + + public float getCpuCapacity() { + return cpuCapacity; + } + + public void setCpuCapacity(float cpuCapacity) { + this.cpuCapacity = cpuCapacity; + } + + public float getCpuDemand() { + return cpuDemand; + } + + public void setCpuDemand(float cpuDemand) { + this.cpuDemand = cpuDemand; + } + + public float getCpuSupply() { + return cpuSupply; + } + + public void setCpuSupply(float cpuSupply) { + this.cpuSupply = cpuSupply; + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/SimMachine.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/SimMachine.java new file mode 100644 index 000000000..00a69efe2 --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/SimMachine.java @@ -0,0 +1,184 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.machine; + +import java.time.InstantSource; +import java.util.function.Consumer; +import org.opendc.simulator.Multiplexer; +import org.opendc.simulator.compute.cpu.CpuPowerModel; +import org.opendc.simulator.compute.cpu.SimCpu; +import org.opendc.simulator.compute.memory.Memory; +import org.opendc.simulator.compute.models.MachineModel; +import org.opendc.simulator.compute.power.SimPsu; +import org.opendc.simulator.compute.workload.SimWorkload; +import org.opendc.simulator.compute.workload.Workload; +import org.opendc.simulator.engine.FlowGraph; + +/** + * A machine that is able to execute {@link SimWorkload} objects. + */ +public class SimMachine { + private final MachineModel machineModel; + private final FlowGraph graph; + + private final InstantSource clock; + + private SimCpu cpu; + private Multiplexer cpuMux; + private SimPsu psu; + private Memory memory; + + private Consumer completion; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Basic Getters and Setters + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public PerformanceCounters getPerformanceCounters() { + return this.cpu.getPerformanceCounters(); + } + + public MachineModel getMachineModel() { + return machineModel; + } + + public FlowGraph getGraph() { + return graph; + } + + public InstantSource getClock() { + return clock; + } + + public SimCpu getCpu() { + return cpu; + } + + public Multiplexer getCpuMux() { + return cpuMux; + } + + public Memory getMemory() { + return memory; + } + + public SimPsu getPsu() { + return psu; + } + + /** + * Return the CPU capacity of the hypervisor in MHz. + */ + public double getCpuCapacity() { + return 0.0; + } + + /** + * The CPU demand of the hypervisor in MHz. + */ + public double getCpuDemand() { + return 0.0; + } + + /** + * The CPU usage of the hypervisor in MHz. + */ + public double getCpuUsage() { + return 0.0; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructors + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public SimMachine( + FlowGraph graph, MachineModel machineModel, CpuPowerModel cpuPowerModel, Consumer completion) { + this.graph = graph; + this.machineModel = machineModel; + this.clock = graph.getEngine().getClock(); + + // Create the psu and cpu and connect them + this.psu = new SimPsu(graph); + this.cpu = new SimCpu(graph, this.machineModel.getCpu(), 0); + + graph.addEdge(this.cpu, this.psu); + + this.memory = new Memory(graph, this.machineModel.getMemory()); + + // Create a Multiplexer and add the cpu as supplier + this.cpuMux = new Multiplexer(this.graph); + graph.addEdge(this.cpuMux, this.cpu); + + this.completion = completion; + } + + public void shutdown() { + shutdown(null); + } + + /** + * Close all related hardware + */ + public void shutdown(Exception cause) { + this.graph.removeNode(this.psu); + this.psu = null; + + this.graph.removeNode(this.cpu); + this.cpu = null; + + this.graph.removeNode(this.cpuMux); + this.cpuMux = null; + + this.memory = null; + + this.completion.accept(cause); + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Workload related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Determine whether the specified machine characterized by model can fit on this hypervisor at this + * moment. + * TODO: This currently alwasy returns True, maybe remove? + */ + public boolean canFit(MachineModel model) { + return true; + } + + /** + * Create a Virtual Machine, and start the given workload on it. + * + * @param workload + * @param completion + * @return + */ + public VirtualMachine startWorkload(Workload workload, Consumer completion) { + final VirtualMachine vm = new VirtualMachine(this); + + vm.startWorkload(workload, completion); + + return vm; + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/VirtualMachine.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/VirtualMachine.java new file mode 100644 index 000000000..3bc3d2b4a --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/machine/VirtualMachine.java @@ -0,0 +1,246 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.machine; + +import java.util.function.Consumer; +import org.opendc.simulator.compute.cpu.SimCpu; +import org.opendc.simulator.compute.workload.SimWorkload; +import org.opendc.simulator.compute.workload.Workload; +import org.opendc.simulator.engine.FlowConsumer; +import org.opendc.simulator.engine.FlowEdge; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; +import org.opendc.simulator.engine.FlowSupplier; + +/* + A virtual Machine created to run a single workload +*/ +public class VirtualMachine extends FlowNode implements FlowConsumer, FlowSupplier { + private SimMachine machine; + + private SimWorkload activeWorkload; + + private long lastUpdate; + private final double d; + + private FlowEdge cpuEdge; // The edge to the cpu + private FlowEdge workloadEdge; // The edge to the workload + + private float cpuDemand; + private float cpuSupply; + private float cpuCapacity; + + private PerformanceCounters performanceCounters = new PerformanceCounters(); + + private Consumer completion; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Basic Getters and Setters + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public PerformanceCounters getPerformanceCounters() { + return performanceCounters; + } + + public SimWorkload getActiveWorkload() { + return activeWorkload; + } + + public float getDemand() { + return cpuDemand; + } + + public void setDemand(float demand) { + this.cpuDemand = demand; + } + + public float getCpuCapacity() { + return cpuCapacity; + } + + public void setCpuCapacity(float cpuCapacity) { + this.cpuCapacity = cpuCapacity; + } + + public FlowGraph getGraph() { + return this.parentGraph; + } + + public SimCpu getCpu() { + return machine.getCpu(); + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructors + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public VirtualMachine(SimMachine machine) { + super(machine.getGraph()); + this.machine = machine; + this.clock = this.machine.getClock(); + + this.parentGraph = machine.getGraph(); + this.parentGraph.addEdge(this, this.machine.getCpuMux()); + + this.lastUpdate = clock.millis(); + this.lastUpdate = clock.millis(); + + this.d = 1 / machine.getCpu().getFrequency(); + } + + public void shutdown() { + this.shutdown(null); + } + + public void shutdown(Exception cause) { + if (this.nodeState == NodeState.CLOSED) { + return; + } + + super.closeNode(); + + this.activeWorkload = null; + this.performanceCounters = null; + + this.completion.accept(cause); + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Workload related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public void startWorkload(Workload workload, Consumer completion) { + this.completion = completion; + this.activeWorkload = workload.startWorkload(this, this.clock.millis()); + } + + public void updateCounters(long now) { + long lastUpdate = this.lastUpdate; + this.lastUpdate = now; + long delta = now - lastUpdate; + + if (delta > 0) { + final double factor = this.d * delta; + + this.performanceCounters.addCpuActiveTime(Math.round(this.cpuSupply * factor)); + this.performanceCounters.setCpuIdleTime(Math.round((this.cpuCapacity - this.cpuSupply) * factor)); + this.performanceCounters.addCpuStealTime(Math.round((this.cpuDemand - this.cpuSupply) * factor)); + } + + this.performanceCounters.setCpuDemand(this.cpuDemand); + this.performanceCounters.setCpuSupply(this.cpuSupply); + this.performanceCounters.setCpuCapacity(this.cpuCapacity); + } + + @Override + public long onUpdate(long now) { + updateCounters(now); + + return Long.MAX_VALUE; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowGraph Related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Add an edge to the workload + * TODO: maybe add a check if there is already an edge + */ + @Override + public void addConsumerEdge(FlowEdge consumerEdge) { + this.workloadEdge = consumerEdge; + } + + /** + * Add an edge to the cpuMux + * TODO: maybe add a check if there is already an edge + */ + @Override + public void addSupplierEdge(FlowEdge supplierEdge) { + this.cpuEdge = supplierEdge; + } + + /** + * Push demand to the cpuMux if the demand has changed + **/ + @Override + public void pushDemand(FlowEdge supplierEdge, float newDemand) { + this.cpuEdge.pushDemand(newDemand); + } + + /** + * Push supply to the workload if the supply has changed + **/ + @Override + public void pushSupply(FlowEdge consumerEdge, float newSupply) { + this.workloadEdge.pushDemand(newSupply); + } + + /** + * Handle new demand from the workload by sending it through to the cpuMux + **/ + @Override + public void handleDemand(FlowEdge consumerEdge, float newDemand) { + if (this.cpuDemand == newDemand) { + return; + } + + updateCounters(this.clock.millis()); + this.cpuDemand = newDemand; + + pushDemand(this.cpuEdge, newDemand); + } + + /** + * Handle a new supply pushed by the cpuMux by sending it through to the workload + **/ + @Override + public void handleSupply(FlowEdge supplierEdge, float newCpuSupply) { + if (newCpuSupply == this.cpuSupply) { + return; + } + + updateCounters(this.clock.millis()); + this.cpuSupply = newCpuSupply; + + pushSupply(this.workloadEdge, newCpuSupply); + } + + @Override + public void removeConsumerEdge(FlowEdge consumerEdge) { + this.workloadEdge = null; + this.shutdown(); + } + + @Override + public float getCapacity() { + return this.cpuCapacity; + } + + @Override + public void removeSupplierEdge(FlowEdge supplierEdge) { + this.cpuEdge = null; + this.shutdown(); + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/PerformanceScalingGovernorTest.kt b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/memory/Memory.java similarity index 57% rename from opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/PerformanceScalingGovernorTest.kt rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/memory/Memory.java index f03f41fea..2656a99a7 100644 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/PerformanceScalingGovernorTest.kt +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/memory/Memory.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 AtLarge Research + * Copyright (c) 2024 AtLarge Research * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,31 +20,36 @@ * SOFTWARE. */ -package org.opendc.simulator.compute.kernel.cpufreq +package org.opendc.simulator.compute.memory; -import io.mockk.every -import io.mockk.spyk -import io.mockk.verify -import org.junit.jupiter.api.Test +import org.opendc.simulator.compute.models.MemoryUnit; +import org.opendc.simulator.engine.FlowGraph; /** - * Test suite for the [PerformanceScalingGovernor] + * The [SimMemory] implementation for a machine. */ -internal class PerformanceScalingGovernorTest { - @Test - fun testSetStartLimit() { - val policy = spyk() - val logic = ScalingGovernors.performance().newGovernor(policy) +public final class Memory { + // private final SimpleFlowSink sink; + private final MemoryUnit memoryUnit; - every { policy.max } returns 4100.0 + public Memory(FlowGraph graph, MemoryUnit memoryUnit) { - logic.onStart() - verify(exactly = 1) { policy.target = 4100.0 } + this.memoryUnit = memoryUnit; + // TODO: Fix this + // this.sink = new SimpleFlowSink(graph, (float) memoryUnit.getSize()); + } + + public double getCapacity() { + // return sink.getCapacity(); + return 0.0f; + } - logic.onLimit(0.0) - verify(exactly = 1) { policy.target = 4100.0 } + public MemoryUnit getMemoryUnit() { + return memoryUnit; + } - logic.onLimit(1.0) - verify(exactly = 1) { policy.target = 4100.0 } + @Override + public String toString() { + return "SimAbstractMachine.Memory"; } } diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/NetworkAdapter.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/NetworkAdapter.java deleted file mode 100644 index ff3daa404..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/NetworkAdapter.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.model; - -import java.util.Objects; - -/** - * A description of a network adapter - */ -public final class NetworkAdapter { - private final String vendor; - private final String modelName; - private final double bandwidth; - - /** - * Construct a {@link NetworkAdapter} instance. - * - * @param vendor The vendor of the storage device. - * @param modelName The model name of the device. - * @param bandwidth The bandwidth of the network adapter in Mbps. - */ - public NetworkAdapter(String vendor, String modelName, double bandwidth) { - this.vendor = vendor; - this.modelName = modelName; - this.bandwidth = bandwidth; - } - - /** - * Return the vendor of the storage device. - */ - public String getVendor() { - return vendor; - } - - /** - * Return the model name of the device. - */ - public String getModelName() { - return modelName; - } - - /** - * Return the bandwidth of the network adapter in Mbps. - */ - public double getBandwidth() { - return bandwidth; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - NetworkAdapter that = (NetworkAdapter) o; - return Double.compare(that.bandwidth, bandwidth) == 0 - && vendor.equals(that.vendor) - && modelName.equals(that.modelName); - } - - @Override - public int hashCode() { - return Objects.hash(vendor, modelName, bandwidth); - } - - @Override - public String toString() { - return "NetworkAdapter[vendor='" + vendor + "',modelName='" + modelName + "',bandwidth=" + bandwidth + "Mbps]"; - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/ProcessingNode.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/ProcessingNode.java deleted file mode 100644 index 01a87b969..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/ProcessingNode.java +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.model; - -import java.util.Objects; - -/** - * A processing node/package/socket containing possibly several CPU cores. - */ -public final class ProcessingNode { - private final String vendor; - private final String modelName; - private final String arch; - private final int coreCount; - - /** - * Construct a {@link ProcessingNode} instance. - * - * @param vendor The vendor of the storage device. - * @param modelName The model name of the device. - * @param arch The micro-architecture of the processor node. - * @param coreCount The number of logical CPUs in the processor node. - */ - public ProcessingNode(String vendor, String modelName, String arch, int coreCount) { - this.vendor = vendor; - this.modelName = modelName; - this.arch = arch; - this.coreCount = coreCount; - } - - /** - * Return the vendor of the storage device. - */ - public String getVendor() { - return vendor; - } - - /** - * Return the model name of the device. - */ - public String getModelName() { - return modelName; - } - - /** - * Return the micro-architecture of the processor node. - */ - public String getArchitecture() { - return arch; - } - - /** - * Return the number of logical CPUs in the processor node. - */ - public int getCoreCount() { - return coreCount; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - ProcessingNode that = (ProcessingNode) o; - return coreCount == that.coreCount - && vendor.equals(that.vendor) - && modelName.equals(that.modelName) - && arch.equals(that.arch); - } - - @Override - public int hashCode() { - return Objects.hash(vendor, modelName, arch, coreCount); - } - - @Override - public String toString() { - return "ProcessingNode[vendor='" + vendor + "',modelName='" + modelName + "',arch=" + arch + ",coreCount=" - + coreCount + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/StorageDevice.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/StorageDevice.java deleted file mode 100644 index 549ccc7e7..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/StorageDevice.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.model; - -import java.util.Objects; - -/** - * Model for a physical storage device attached to a machine. - */ -public final class StorageDevice { - private final String vendor; - private final String modelName; - private final double capacity; - private final double readBandwidth; - private final double writeBandwidth; - - /** - * Construct a {@link StorageDevice} instance. - * - * @param vendor The vendor of the storage device. - * @param modelName The model name of the device. - * @param capacity The capacity of the device. - * @param readBandwidth The read bandwidth of the device in MBps. - * @param writeBandwidth The write bandwidth of the device in MBps. - */ - public StorageDevice( - String vendor, String modelName, double capacity, double readBandwidth, double writeBandwidth) { - this.vendor = vendor; - this.modelName = modelName; - this.capacity = capacity; - this.readBandwidth = readBandwidth; - this.writeBandwidth = writeBandwidth; - } - - /** - * Return the vendor of the storage device. - */ - public String getVendor() { - return vendor; - } - - /** - * Return the model name of the device. - */ - public String getModelName() { - return modelName; - } - - /** - * Return the capacity of the device. - */ - public double getCapacity() { - return capacity; - } - - /** - * Return the read bandwidth of the device in MBps. - */ - public double getReadBandwidth() { - return readBandwidth; - } - - /** - * Return the write bandwidth of the device in MBps. - */ - public double getWriteBandwidth() { - return writeBandwidth; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - StorageDevice that = (StorageDevice) o; - return Double.compare(that.capacity, capacity) == 0 - && Double.compare(that.readBandwidth, readBandwidth) == 0 - && Double.compare(that.writeBandwidth, writeBandwidth) == 0 - && vendor.equals(that.vendor) - && modelName.equals(that.modelName); - } - - @Override - public int hashCode() { - return Objects.hash(vendor, modelName, capacity, readBandwidth, writeBandwidth); - } - - @Override - public String toString() { - return "StorageDevice[vendor='" + vendor + "',modelName='" + modelName + "',capacity=" + capacity - + ",readBandwidth=" + readBandwidth + ",writeBandwidth=" + writeBandwidth + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/Cpu.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/CpuModel.java similarity index 89% rename from opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/Cpu.java rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/CpuModel.java index c319ae1ac..88e179418 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/Cpu.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/CpuModel.java @@ -20,25 +20,25 @@ * SOFTWARE. */ -package org.opendc.simulator.compute.model; +package org.opendc.simulator.compute.models; import java.util.Objects; /** * A single logical compute unit of processor node, either virtual or physical. */ -public final class Cpu { +public final class CpuModel { private final int id; private final int coreCount; - private final double coreSpeed; - private final double totalCapacity; + private final float coreSpeed; + private final float totalCapacity; private final String vendor; private final String modelName; private final String arch; /** - * Construct a {@link Cpu} instance. + * Construct a {@link CpuModel} instance. * * @param id The identifier of the CPU core within the processing node. * @param coreCount The number of cores present in the CPU @@ -47,7 +47,7 @@ public final class Cpu { * @param modelName The name of the CPU * @param arch The architecture of the CPU */ - public Cpu(int id, int coreCount, double coreSpeed, String vendor, String modelName, String arch) { + public CpuModel(int id, int coreCount, float coreSpeed, String vendor, String modelName, String arch) { this.id = id; this.coreCount = coreCount; this.coreSpeed = coreSpeed; @@ -57,7 +57,7 @@ public Cpu(int id, int coreCount, double coreSpeed, String vendor, String modelN this.arch = arch; } - public Cpu(int id, int coreCount, double coreSpeed) { + public CpuModel(int id, int coreCount, float coreSpeed) { this(id, coreCount, coreSpeed, "unkown", "unkown", "unkown"); } @@ -78,14 +78,14 @@ public int getCoreCount() { /** * Return the clock rate of a single core of the CPU MHz. */ - public double getCoreSpeed() { + public float getCoreSpeed() { return coreSpeed; } /** * Return the clock rate of the CPU in MHz. */ - public double getTotalCapacity() { + public float getTotalCapacity() { return totalCapacity; } @@ -114,7 +114,7 @@ public String getArchitecture() { public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; - Cpu that = (Cpu) o; + CpuModel that = (CpuModel) o; return id == that.id && Double.compare(that.totalCapacity, totalCapacity) == 0 && Double.compare(that.coreSpeed, coreSpeed) == 0 diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/MachineModel.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/MachineModel.java similarity index 58% rename from opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/MachineModel.java rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/MachineModel.java index e4019dacb..d6d139d7b 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/MachineModel.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/MachineModel.java @@ -20,10 +20,8 @@ * SOFTWARE. */ -package org.opendc.simulator.compute.model; +package org.opendc.simulator.compute.models; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -31,33 +29,18 @@ * A description of the physical or virtual machine on which a bootable image runs. */ public final class MachineModel { - private final Cpu cpu; + private final CpuModel cpuModel; private final MemoryUnit memory; - private final List net; - private final List storage; /** * Construct a {@link MachineModel} instance. * - * @param cpu The cpu available to the image. + * @param cpuModel The cpu available to the image. * @param memory The list of memory units available to the image. - * @param net A list of network adapters available to the machine. - * @param storage A list of storage devices available to the machine. */ - public MachineModel(Cpu cpu, MemoryUnit memory, Iterable net, Iterable storage) { - this.cpu = cpu; - + public MachineModel(CpuModel cpuModel, MemoryUnit memory) { + this.cpuModel = cpuModel; this.memory = memory; - - this.net = new ArrayList<>(); - net.forEach(this.net::add); - - this.storage = new ArrayList<>(); - storage.forEach(this.storage::add); - } - - public MachineModel(Cpu cpu, MemoryUnit memory) { - this(cpu, memory, Collections.emptyList(), Collections.emptyList()); } /** @@ -68,31 +51,24 @@ public MachineModel(Cpu cpu, MemoryUnit memory) { * @param cpus The list of processing units available to the image. * @param memory The list of memory units available to the image. */ - public MachineModel( - List cpus, MemoryUnit memory, Iterable net, Iterable storage) { + public MachineModel(List cpus, MemoryUnit memory) { this( - new Cpu( + new CpuModel( cpus.get(0).getId(), cpus.get(0).getCoreCount() * cpus.size(), cpus.get(0).getCoreSpeed(), cpus.get(0).getVendor(), cpus.get(0).getModelName(), cpus.get(0).getArchitecture()), - memory, - net, - storage); - } - - public MachineModel(List cpus, MemoryUnit memory) { - this(cpus, memory, Collections.emptyList(), Collections.emptyList()); + memory); } /** * Return the processing units of this machine. */ - public Cpu getCpu() { - return this.cpu; + public CpuModel getCpu() { + return this.cpuModel; } /** @@ -102,38 +78,21 @@ public MemoryUnit getMemory() { return memory; } - /** - * Return the network adapters of this machine. - */ - public List getNetwork() { - return Collections.unmodifiableList(net); - } - - /** - * Return the storage devices of this machine. - */ - public List getStorage() { - return Collections.unmodifiableList(storage); - } - @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; MachineModel that = (MachineModel) o; - return cpu.equals(that.cpu) - && memory.equals(that.memory) - && net.equals(that.net) - && storage.equals(that.storage); + return cpuModel.equals(that.cpuModel) && memory.equals(that.memory); } @Override public int hashCode() { - return Objects.hash(cpu, memory, net, storage); + return Objects.hash(cpuModel, memory); } @Override public String toString() { - return "MachineModel[cpus=" + cpu + ",memory=" + memory + ",net=" + net + ",storage=" + storage + "]"; + return "MachineModel[cpus=" + cpuModel + ",memory=" + memory + "]"; } } diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/MemoryUnit.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/MemoryUnit.java similarity index 96% rename from opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/MemoryUnit.java rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/MemoryUnit.java index dbd3f89a5..c3af2bcd3 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/model/MemoryUnit.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/models/MemoryUnit.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.simulator.compute.model; +package org.opendc.simulator.compute.models; import java.util.Objects; @@ -34,7 +34,7 @@ public final class MemoryUnit { private final long size; /** - * Construct a {@link ProcessingNode} instance. + * Construct a {@link MemoryUnit} instance. * * @param vendor The vendor of the storage device. * @param modelName The model name of the device. diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/SimPowerSource.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/SimPowerSource.java new file mode 100644 index 000000000..9b4d6a33b --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/SimPowerSource.java @@ -0,0 +1,169 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.power; + +import java.time.InstantSource; +import org.opendc.simulator.compute.cpu.SimCpu; +import org.opendc.simulator.engine.FlowEdge; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; +import org.opendc.simulator.engine.FlowSupplier; + +/** + * A {@link SimPsu} implementation that estimates the power consumption based on CPU usage. + */ +public final class SimPowerSource extends FlowNode implements FlowSupplier { + private final InstantSource clock; + + private long lastUpdate; + + private float powerDemand = 0.0f; + private float powerSupplied = 0.0f; + private float totalEnergyUsage = 0.0f; + + private FlowEdge cpuEdge; + + private float capacity = Long.MAX_VALUE; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Basic Getters and Setters + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Determine whether the InPort is connected to a {@link SimCpu}. + * + * @return true if the InPort is connected to an OutPort, false otherwise. + */ + public boolean isConnected() { + return cpuEdge != null; + } + + /** + * Return the power demand of the machine (in W) measured in the PSU. + *

+ * This method provides access to the power consumption of the machine before PSU losses are applied. + */ + public double getPowerDemand() { + return this.powerDemand; + } + + /** + * Return the instantaneous power usage of the machine (in W) measured at the InPort of the power supply. + */ + public float getPowerDraw() { + return this.powerSupplied; + } + + /** + * Return the cumulated energy usage of the machine (in J) measured at the InPort of the powers supply. + */ + public float getEnergyUsage() { + updateCounters(); + return totalEnergyUsage; + } + + @Override + public float getCapacity() { + return this.capacity; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructors + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public SimPowerSource(FlowGraph graph) { + super(graph); + + this.clock = graph.getEngine().getClock(); + + lastUpdate = graph.getEngine().getClock().millis(); + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowNode related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public long onUpdate(long now) { + updateCounters(); + float powerSupply = this.powerDemand; + + if (powerSupply != this.powerSupplied) { + this.pushSupply(this.cpuEdge, powerSupply); + } + + return Long.MAX_VALUE; + } + + public void updateCounters() { + updateCounters(clock.millis()); + } + + /** + * Calculate the energy usage up until now. + */ + public void updateCounters(long now) { + long lastUpdate = this.lastUpdate; + this.lastUpdate = now; + + long duration = now - lastUpdate; + if (duration > 0) { + // Compute the energy usage of the machine + this.totalEnergyUsage += (float) (this.powerSupplied * duration * 0.001); + } + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowGraph Related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void handleDemand(FlowEdge consumerEdge, float newPowerDemand) { + if (newPowerDemand == this.powerDemand) { + return; + } + + this.powerDemand = newPowerDemand; + this.invalidate(); + } + + @Override + public void pushSupply(FlowEdge consumerEdge, float newSupply) { + if (newSupply == this.powerSupplied) { + return; + } + + this.powerSupplied = newSupply; + consumerEdge.pushSupply(newSupply); + } + + @Override + public void addConsumerEdge(FlowEdge consumerEdge) { + this.cpuEdge = consumerEdge; + } + + @Override + public void removeConsumerEdge(FlowEdge consumerEdge) { + this.cpuEdge = null; + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/SimPsu.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/SimPsu.java new file mode 100644 index 000000000..8f0fb1300 --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/power/SimPsu.java @@ -0,0 +1,196 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.power; + +import org.opendc.simulator.compute.cpu.SimCpu; +import org.opendc.simulator.engine.FlowConsumer; +import org.opendc.simulator.engine.FlowEdge; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; +import org.opendc.simulator.engine.FlowSupplier; + +/** + * A {@link SimPsu} implementation that estimates the power consumption based on CPU usage. + */ +public final class SimPsu extends FlowNode implements FlowSupplier, FlowConsumer { + private long lastUpdate; + + private float powerDemand = 0.0f; + private float powerSupplied = 0.0f; + private float totalEnergyUsage = 0.0f; + + private FlowEdge cpuEdge; + private FlowEdge powerEdge; + + private float capacity = Long.MAX_VALUE; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Basic Getters and Setters + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Determine whether the InPort is connected to a {@link SimCpu}. + * + * @return true if the InPort is connected to an OutPort, false otherwise. + */ + public boolean isConnected() { + return cpuEdge != null; + } + + /** + * Return the power demand of the machine (in W) measured in the PSU. + *

+ * This method provides access to the power consumption of the machine before PSU losses are applied. + */ + public double getPowerDemand() { + return this.powerDemand; + } + + /** + * Return the instantaneous power usage of the machine (in W) measured at the InPort of the power supply. + */ + public float getPowerDraw() { + return this.powerSupplied; + } + + /** + * Return the cumulated energy usage of the machine (in J) measured at the InPort of the powers supply. + */ + public float getEnergyUsage() { + updateCounters(); + return totalEnergyUsage; + } + + @Override + public float getCapacity() { + return this.capacity; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructors + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public SimPsu(FlowGraph graph) { + super(graph); + + lastUpdate = this.clock.millis(); + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowNode related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public long onUpdate(long now) { + updateCounters(); + float powerSupply = this.powerDemand; + + if (powerSupply != this.powerSupplied) { + this.pushSupply(this.cpuEdge, powerSupply); + } + + return Long.MAX_VALUE; + } + + public void updateCounters() { + updateCounters(clock.millis()); + } + + /** + * Calculate the energy usage up until now. + */ + public void updateCounters(long now) { + long lastUpdate = this.lastUpdate; + this.lastUpdate = now; + + long duration = now - lastUpdate; + if (duration > 0) { + // Compute the energy usage of the psu + this.totalEnergyUsage += (float) (this.powerSupplied * duration * 0.001); + } + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowGraph Related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public void pushDemand(FlowEdge supplierEdge, float newDemand) { + if (newDemand == this.powerDemand) { + return; + } + + this.powerDemand = newDemand; + powerEdge.pushSupply(newDemand); + } + + @Override + public void pushSupply(FlowEdge consumerEdge, float newSupply) { + if (newSupply == this.powerSupplied) { + return; + } + + this.powerSupplied = newSupply; + cpuEdge.pushSupply(newSupply); + } + + @Override + public void handleDemand(FlowEdge consumerEdge, float newPowerDemand) { + if (newPowerDemand == this.powerDemand) { + return; + } + + this.powerDemand = newPowerDemand; + this.invalidate(); + } + + @Override + public void handleSupply(FlowEdge supplierEdge, float newPowerSupply) { + if (newPowerSupply == this.powerSupplied) { + return; + } + + this.powerSupplied = newPowerSupply; + this.invalidate(); + } + + @Override + public void addConsumerEdge(FlowEdge consumerEdge) { + this.cpuEdge = consumerEdge; + } + + @Override + public void addSupplierEdge(FlowEdge supplierEdge) { + this.powerEdge = supplierEdge; + } + + @Override + public void removeConsumerEdge(FlowEdge consumerEdge) { + this.cpuEdge = null; + } + + @Override + public void removeSupplierEdge(FlowEdge supplierEdge) { + this.powerEdge = null; + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/ChainWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/ChainWorkload.java new file mode 100644 index 000000000..78e8b5d48 --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/ChainWorkload.java @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.workload; + +import java.util.ArrayList; +import org.opendc.simulator.engine.FlowSupplier; + +public class ChainWorkload implements Workload { + private ArrayList workloads; + private final long checkpointInterval; + private final long checkpointDuration; + private final double checkpointIntervalScaling; + + public ChainWorkload( + ArrayList workloads, + long checkpointInterval, + long checkpointDuration, + double checkpointIntervalScaling) { + this.workloads = workloads; + this.checkpointInterval = checkpointInterval; + this.checkpointDuration = checkpointDuration; + this.checkpointIntervalScaling = checkpointIntervalScaling; + } + + public ArrayList getWorkloads() { + return workloads; + } + + public long getCheckpointInterval() { + return checkpointInterval; + } + + public long getCheckpointDuration() { + return checkpointDuration; + } + + public double getCheckpointIntervalScaling() { + return checkpointIntervalScaling; + } + + public void removeWorkloads(int numberOfWorkloads) { + if (numberOfWorkloads <= 0) { + return; + } + this.workloads.subList(0, numberOfWorkloads).clear(); + } + + @Override + public SimWorkload startWorkload(FlowSupplier supplier, long now) { + return new SimChainWorkload(supplier, this, now); + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/CheckpointModel.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/CheckpointModel.java new file mode 100644 index 000000000..723c450de --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/CheckpointModel.java @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.workload; + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// CheckPoint Model +// TODO: Move this to a separate file +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +import java.time.InstantSource; +import org.jetbrains.annotations.NotNull; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; + +public class CheckpointModel extends FlowNode { + private SimWorkload simWorkload; + private long checkpointInterval; + private final long checkpointDuration; + private double checkpointIntervalScaling; + private FlowGraph graph; + + private long startOfInterval; + + public CheckpointModel(@NotNull SimWorkload simWorkload) { + super(simWorkload.getGraph()); + + this.checkpointInterval = simWorkload.getCheckpointInterval(); + this.checkpointDuration = simWorkload.getCheckpointDuration(); + this.checkpointIntervalScaling = simWorkload.getCheckpointIntervalScaling(); + this.simWorkload = simWorkload; + + this.graph = simWorkload.getGraph(); + + InstantSource clock = graph.getEngine().getClock(); + + this.startOfInterval = clock.millis(); + } + + @Override + public long onUpdate(long now) { + if (this.simWorkload == null) { + return Long.MAX_VALUE; + } + + long passedTime = now - startOfInterval; + long remainingTime = this.checkpointInterval - passedTime; + + // Interval not completed + if (remainingTime > 0) { + return now + remainingTime; + } + + simWorkload.makeSnapshot(now); + + // start new fragment + this.startOfInterval = now - passedTime; + + // Scale the interval time between checkpoints based on the provided scaling + this.checkpointInterval = (long) (this.checkpointInterval * this.checkpointIntervalScaling); + + return now + this.checkpointInterval + this.checkpointDuration; + } + + public void start() { + this.invalidate(); + } + + public void close() { + this.closeNode(); + + this.simWorkload = null; + this.graph = null; + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java index 1dcb3674b..7f1cf060e 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimChainWorkload.java @@ -22,59 +22,46 @@ package org.opendc.simulator.compute.workload; -import java.time.InstantSource; -import java.util.List; -import java.util.Map; -import org.opendc.simulator.compute.SimMachineContext; -import org.opendc.simulator.compute.SimMemory; -import org.opendc.simulator.compute.SimNetworkInterface; -import org.opendc.simulator.compute.SimProcessingUnit; -import org.opendc.simulator.compute.SimStorageInterface; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; +import java.util.LinkedList; +import org.opendc.simulator.engine.FlowEdge; +import org.opendc.simulator.engine.FlowNode; +import org.opendc.simulator.engine.FlowSupplier; /** - * A {@link SimWorkload} that composes two {@link SimWorkload}s. + * A {@link SimChainWorkload} that composes multiple {@link SimWorkload}s. */ -final class SimChainWorkload implements SimWorkload { - private final SimWorkload[] workloads; - private int activeWorkloadIndex; +final class SimChainWorkload extends SimWorkload implements FlowSupplier { + private final LinkedList workloads; + private int workloadIndex; - private SimChainWorkloadContext activeContext; + private SimWorkload activeWorkload; + private float demand = 0.0f; + private float supply = 0.0f; + + private FlowEdge workloadEdge; + private FlowEdge machineEdge; + + private float capacity = 0; private long checkpointInterval = 0; private long checkpointDuration = 0; - private double checkpointIntervalScaling = 1.0; - private CheckPointModel checkpointModel; - private SimChainWorkload snapshot; + private CheckpointModel checkpointModel; - /** - * Construct a {@link SimChainWorkload} instance. - * - * @param workloads The workloads to chain. - * @param activeWorkloadIndex The index of the active workload. - */ - SimChainWorkload(SimWorkload[] workloads, int activeWorkloadIndex) { - this.workloads = workloads; + private ChainWorkload snapshot; - if (this.workloads.length > 1) { - checkpointInterval = this.workloads[1].getCheckpointInterval(); - checkpointDuration = this.workloads[1].getCheckpointDuration(); - checkpointIntervalScaling = this.workloads[1].getCheckpointIntervalScaling(); - } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Basic Getters and Setters + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - this.activeWorkloadIndex = activeWorkloadIndex; + @Override + public float getCapacity() { + return this.capacity; } - /** - * Construct a {@link SimChainWorkload} instance. - * - * @param workloads The workloads to chain. - */ - SimChainWorkload(SimWorkload... workloads) { - this(workloads, 0); + @Override + public ChainWorkload getSnapshot() { + return this.snapshot; } @Override @@ -92,270 +79,202 @@ public double getCheckpointIntervalScaling() { return checkpointIntervalScaling; } - @Override - public void setOffset(long now) { - for (SimWorkload workload : this.workloads) { - workload.setOffset(now); - } - } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructors + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - @Override - public void onStart(SimMachineContext ctx) { - final SimWorkload[] workloads = this.workloads; - final int activeWorkloadIndex = this.activeWorkloadIndex; + SimChainWorkload(FlowSupplier supplier, ChainWorkload workload, long now) { + super(((FlowNode) supplier).getGraph()); - if (activeWorkloadIndex >= workloads.length) { - return; - } + this.snapshot = workload; + + this.parentGraph = ((FlowNode) supplier).getGraph(); + this.parentGraph.addEdge(this, supplier); - final SimChainWorkloadContext context = new SimChainWorkloadContext(ctx); - activeContext = context; + this.clock = this.parentGraph.getEngine().getClock(); + this.workloads = new LinkedList<>(workload.getWorkloads()); + this.checkpointInterval = workload.getCheckpointInterval(); + this.checkpointDuration = workload.getCheckpointDuration(); + this.checkpointIntervalScaling = workload.getCheckpointIntervalScaling(); if (checkpointInterval > 0) { this.createCheckpointModel(); - this.checkpointModel.start(); } - tryThrow(context.doStart(workloads[activeWorkloadIndex])); + this.workloadIndex = -1; + + this.onStart(); } - @Override - public void onStop(SimMachineContext ctx) { - final SimWorkload[] workloads = this.workloads; - final int activeWorkloadIndex = this.activeWorkloadIndex; + public Workload getNextWorkload() { + this.workloadIndex++; + return workloads.pop(); + } - if (activeWorkloadIndex >= workloads.length) { + // TODO: Combine with Constructor + public void onStart() { + if (this.workloads.isEmpty()) { return; } - final SimChainWorkloadContext context = activeContext; - activeContext = null; - - if (this.checkpointModel != null) { - this.checkpointModel.stop(); + // Create and start a checkpoint model if initiated + if (checkpointInterval > 0) { + this.checkpointModel.start(); } - tryThrow(context.doStop(workloads[activeWorkloadIndex])); + this.activeWorkload = this.getNextWorkload().startWorkload(this, this.clock.millis()); } @Override - public void makeSnapshot(long now) { - final int activeWorkloadIndex = this.activeWorkloadIndex; - final SimWorkload[] workloads = this.workloads; - final SimWorkload[] newWorkloads = new SimWorkload[workloads.length - activeWorkloadIndex]; + public long onUpdate(long now) { + return Long.MAX_VALUE; + } - for (int i = 0; i < newWorkloads.length; i++) { - workloads[activeWorkloadIndex + i].makeSnapshot(now); - newWorkloads[i] = workloads[activeWorkloadIndex + i].getSnapshot(); + @Override + public void stopWorkload() { + if (this.checkpointModel != null) { + this.checkpointModel.close(); + this.checkpointModel = null; } - this.snapshot = new SimChainWorkload(newWorkloads, 0); - } + if (this.activeWorkload != null) { + this.activeWorkload.stopWorkload(); + this.activeWorkload = null; + } - @Override - public SimChainWorkload getSnapshot() { - return this.snapshot; + this.closeNode(); } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Checkpoint related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + @Override public void createCheckpointModel() { - this.checkpointModel = new CheckPointModel( - activeContext, this, this.checkpointInterval, this.checkpointDuration, this.checkpointIntervalScaling); + this.checkpointModel = new CheckpointModel(this); } - private class CheckPointModel implements FlowStageLogic { - private SimChainWorkload workload; - private long checkpointInterval; - private long checkpointDuration; - private double checkpointIntervalScaling; - private FlowStage stage; - - private long startOfInterval; - private Boolean firstCheckPoint = true; - - CheckPointModel( - SimChainWorkloadContext context, - SimChainWorkload workload, - long checkpointInterval, - long checkpointDuration, - double checkpointIntervalScaling) { - this.checkpointInterval = checkpointInterval; - this.checkpointDuration = checkpointDuration; - this.checkpointIntervalScaling = checkpointIntervalScaling; - this.workload = workload; - - this.stage = context.getGraph().newStage(this); - - InstantSource clock = this.stage.getGraph().getEngine().getClock(); - - this.startOfInterval = clock.millis(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - long passedTime = now - startOfInterval; - long remainingTime = this.checkpointInterval - passedTime; - - if (!this.firstCheckPoint) { - remainingTime += this.checkpointDuration; - } - - // Interval not completed - if (remainingTime > 0) { - return now + remainingTime; - } - - workload.makeSnapshot(now); - if (firstCheckPoint) { - this.firstCheckPoint = false; - } + @Override + public void makeSnapshot(long now) { - // Scale the interval time between checkpoints based on the provided scaling - this.checkpointInterval = (long) (this.checkpointInterval * this.checkpointIntervalScaling); + this.snapshot.removeWorkloads(this.workloadIndex); + this.workloadIndex = 0; - return now + this.checkpointInterval + this.checkpointDuration; - } + activeWorkload.makeSnapshot(now); + } - public void start() { - this.stage.sync(); - } + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowGraph Related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - public void stop() { - this.stage.close(); - } + /** + * Add connection to the active workload + * + * @param consumerEdge + */ + @Override + public void addConsumerEdge(FlowEdge consumerEdge) { + this.workloadEdge = consumerEdge; } /** - * A {@link SimMachineContext} that intercepts the shutdown calls. + * Add Connection to the cpuMux + * @param supplierEdge */ - private class SimChainWorkloadContext implements SimMachineContext { - private final SimMachineContext ctx; - private SimWorkload snapshot; - - private SimChainWorkloadContext(SimMachineContext ctx) { - this.ctx = ctx; - } - - @Override - public FlowGraph getGraph() { - return ctx.getGraph(); - } - - @Override - public Map getMeta() { - return ctx.getMeta(); - } + @Override + public void addSupplierEdge(FlowEdge supplierEdge) { + this.machineEdge = supplierEdge; + this.capacity = supplierEdge.getCapacity(); + } - @Override - public SimProcessingUnit getCpu() { - return ctx.getCpu(); - } + /** + * Push demand to the cpuMux + * + * @param supplierEdge + * @param newDemand + */ + @Override + public void pushDemand(FlowEdge supplierEdge, float newDemand) { + this.machineEdge.pushDemand(newDemand); + } - @Override - public SimMemory getMemory() { - return ctx.getMemory(); - } + /** + * Push supply to the workload + * + * @param consumerEdge + * @param newSupply + */ + @Override + public void pushSupply(FlowEdge consumerEdge, float newSupply) { + this.workloadEdge.pushSupply(newSupply); + } - @Override - public List getNetworkInterfaces() { - return ctx.getNetworkInterfaces(); + /** + * Handle new demand coming from the workload + * + * @param consumerEdge + * @param newDemand + */ + @Override + public void handleDemand(FlowEdge consumerEdge, float newDemand) { + if (newDemand == this.demand) { + return; } - @Override - public List getStorageInterfaces() { - return ctx.getStorageInterfaces(); - } + this.demand = newDemand; + this.pushDemand(this.machineEdge, newDemand); + } - @Override - public void makeSnapshot(long now) { - final SimWorkload workload = workloads[activeWorkloadIndex]; - this.snapshot = workload.getSnapshot(); + /** + * Handle new supply coming from the cpuMux + * + * @param supplierEdge + * @param newSupply + */ + @Override + public void handleSupply(FlowEdge supplierEdge, float newSupply) { + if (newSupply == this.supply) { + return; } - @Override - public SimWorkload getSnapshot(long now) { - this.makeSnapshot(now); - - return this.snapshot; - } + this.pushSupply(this.machineEdge, newSupply); + } - @Override - public void reset() { - ctx.reset(); + /** + * Handle the removal of the workload. + * If there is a next workload available, start this workload + * Otherwise, close this SimChainWorkload + * + * @param consumerEdge + */ + @Override + public void removeConsumerEdge(FlowEdge consumerEdge) { + if (this.workloadEdge == null) { + return; } - @Override - public void shutdown() { - shutdown(null); - } + // Remove the connection to the active workload + this.activeWorkload = null; + this.workloadEdge = null; - @Override - public void shutdown(Exception cause) { - final SimWorkload[] workloads = SimChainWorkload.this.workloads; - final int activeWorkloadIndex = ++SimChainWorkload.this.activeWorkloadIndex; - - final Exception stopException = doStop(workloads[activeWorkloadIndex - 1]); - if (cause == null) { - cause = stopException; - } else if (stopException != null) { - cause.addSuppressed(stopException); - } - - if (stopException == null && activeWorkloadIndex < workloads.length) { - ctx.reset(); - - final Exception startException = doStart(workloads[activeWorkloadIndex]); - - if (startException == null) { - return; - } else if (cause == null) { - cause = startException; - } else { - cause.addSuppressed(startException); - } - } - - if (SimChainWorkload.this.checkpointModel != null) { - SimChainWorkload.this.checkpointModel.stop(); - } - ctx.shutdown(cause); + // Start next workload + if (!this.workloads.isEmpty()) { + this.activeWorkload = getNextWorkload().startWorkload(this, this.clock.millis()); + return; } - /** - * Start the specified workload. - * - * @return The {@link Exception} that occurred while starting the workload or null if the workload - * started successfully. - */ - private Exception doStart(SimWorkload workload) { - try { - workload.onStart(this); - } catch (Exception cause) { - final Exception stopException = doStop(workload); - if (stopException != null) { - cause.addSuppressed(stopException); - } - return cause; - } - - return null; - } + this.stopWorkload(); + } - /** - * Stop the specified workload. - * - * @return The {@link Exception} that occurred while stopping the workload or null if the workload - * stopped successfully. - */ - private Exception doStop(SimWorkload workload) { - try { - workload.onStop(this); - } catch (Exception cause) { - return cause; - } - - return null; - } + /** + * Handle the removal of the connection to the cpuMux + * When this happens, close the SimChainWorkload + * + * @param supplierEdge + */ + @Override + public void removeSupplierEdge(FlowEdge supplierEdge) { + this.stopWorkload(); } @SuppressWarnings("unchecked") diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimFlopsWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimFlopsWorkload.java deleted file mode 100644 index 5311fa380..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimFlopsWorkload.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.workload; - -import org.opendc.simulator.compute.SimMachineContext; -import org.opendc.simulator.compute.SimProcessingUnit; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.OutPort; - -/** - * A {@link SimWorkload} that models applications as a static number of floating point operations executed on - * multiple cores of a compute resource. - */ -public class SimFlopsWorkload implements SimWorkload, FlowStageLogic { - private final long flops; - private final double utilization; - - private SimMachineContext ctx; - private FlowStage stage; - private OutPort[] outputs; - - private float remainingAmount; - private long lastUpdate; - private SimFlopsWorkload snapshot; - - /** - * Construct a new {@link SimFlopsWorkload}. - * - * @param flops The number of floating point operations to perform for this task in MFLOPs. - * @param utilization The CPU utilization of the workload. - */ - SimFlopsWorkload(long flops, double utilization) { - if (flops < 0) { - throw new IllegalArgumentException("Number of FLOPs must be positive"); - } else if (utilization <= 0.0 || utilization > 1.0) { - throw new IllegalArgumentException("Utilization must be in (0, 1]"); - } - - this.flops = flops; - this.utilization = utilization; - this.remainingAmount = flops; - } - - @Override - public long getCheckpointInterval() { - return -1; - } - ; - - @Override - public long getCheckpointDuration() { - return -1; - } - - @Override - public double getCheckpointIntervalScaling() { - return -1; - } - ; - - @Override - public void setOffset(long now) {} - - @Override - public void onStart(SimMachineContext ctx) { - this.ctx = ctx; - - final FlowGraph graph = ctx.getGraph(); - final FlowStage stage = graph.newStage(this); - this.stage = stage; - - final SimProcessingUnit cpu = ctx.getCpu(); - final OutPort[] outputs = new OutPort[1]; - this.outputs = outputs; - - final OutPort output = stage.getOutlet("cpu"); - - graph.connect(output, cpu.getInput()); - outputs[0] = output; - - this.remainingAmount = flops; - this.lastUpdate = graph.getEngine().getClock().millis(); - } - - @Override - public void onStop(SimMachineContext ctx) { - this.ctx = null; - - final FlowStage stage = this.stage; - if (stage != null) { - this.stage = null; - stage.close(); - } - } - - @Override - public void makeSnapshot(long now) { - final FlowStage stage = this.stage; - if (stage != null) { - stage.sync(); - } - - this.snapshot = new SimFlopsWorkload((long) remainingAmount, utilization); - } - - @Override - public SimFlopsWorkload getSnapshot() { - this.makeSnapshot(0); - - return this.snapshot; - } - - @Override - public void createCheckpointModel() {} - - @Override - public long onUpdate(FlowStage ctx, long now) { - long lastUpdate = this.lastUpdate; - this.lastUpdate = now; - - long delta = Math.max(0, now - lastUpdate); - - float consumed = 0.f; - float limit = 0.f; - - for (final OutPort output : outputs) { - consumed += output.getRate() * delta; - - float outputLimit = (float) (output.getCapacity() * utilization); - limit += outputLimit; - - output.push(outputLimit); - } - consumed = (float) (consumed * 0.001); - - float remainingAmount = this.remainingAmount - consumed; - this.remainingAmount = remainingAmount; - - long duration = (long) Math.ceil(remainingAmount / limit * 1000); - - if (duration <= 0) { - final SimMachineContext machineContext = this.ctx; - if (machineContext != null) { - machineContext.shutdown(); - } - ctx.close(); - return Long.MAX_VALUE; - } - - return now + duration; - } - - @Override - public String toString() { - return "SimFlopsWorkload[FLOPs=" + flops + ",utilization=" + utilization + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimRuntimeWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimRuntimeWorkload.java deleted file mode 100644 index be4cc2f56..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimRuntimeWorkload.java +++ /dev/null @@ -1,227 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.workload; - -import org.opendc.simulator.compute.SimMachineContext; -import org.opendc.simulator.compute.SimProcessingUnit; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.OutPort; - -/** - * A [SimWorkload] that models application execution as a single duration. - */ -public class SimRuntimeWorkload implements SimWorkload, FlowStageLogic { - private long duration; - private final double utilization; - - private SimMachineContext ctx; - private FlowStage stage; - private OutPort[] outputs; - - private long remainingDuration; - private long lastUpdate; - - private long checkpointDuration; // How long does it take to make a checkpoint? - private long checkpointInterval; // How long to wait until a new checkpoint is made? - private double checkpointIntervalScaling; - private long totalChecks; - private SimRuntimeWorkload snapshot; - - public SimRuntimeWorkload(long duration, double utilization) { - this(duration, utilization, 0, 0); - // if (duration < 0) { - // throw new IllegalArgumentException("Duration must be positive"); - // } else if (utilization <= 0.0 || utilization > 1.0) { - // throw new IllegalArgumentException("Utilization must be in (0, 1]"); - // } - // - // this.checkpointTime = 0L; - // this.checkpointWait = 0L; - // this.duration = duration; - // - // this.utilization = utilization; - // this.remainingDuration = duration; - } - - /** - * Construct a new {@link SimRuntimeWorkload}. - * - * @param duration The duration of the workload in milliseconds. - * @param utilization The CPU utilization of the workload. - */ - public SimRuntimeWorkload(long duration, double utilization, long checkpointInterval, long checkpointDuration) { - if (duration < 0) { - throw new IllegalArgumentException("Duration must be positive"); - } else if (utilization <= 0.0 || utilization > 1.0) { - throw new IllegalArgumentException("Utilization must be in (0, 1]"); - } - - this.checkpointDuration = checkpointDuration; - this.checkpointInterval = checkpointInterval; - this.duration = duration; - - if (this.checkpointInterval > 0) { - // Determine the number of checkpoints that need to be made during the workload - // If the total duration is divisible by the wait time between checkpoints, we can remove the last - // checkpoint - int to_remove = ((this.duration % this.checkpointInterval == 0) ? 1 : 0); - this.totalChecks = this.duration / this.checkpointInterval - to_remove; - this.duration += (this.checkpointDuration * totalChecks); - } - - this.utilization = utilization; - this.remainingDuration = duration; - } - - @Override - public long getCheckpointInterval() { - return checkpointInterval; - } - - @Override - public long getCheckpointDuration() { - return checkpointDuration; - } - - @Override - public double getCheckpointIntervalScaling() { - return checkpointIntervalScaling; - } - - @Override - public void setOffset(long now) {} - - @Override - public void onStart(SimMachineContext ctx) { - this.ctx = ctx; - - final FlowGraph graph = ctx.getGraph(); - final FlowStage stage = graph.newStage(this); - this.stage = stage; - - final OutPort[] outputs = new OutPort[1]; - this.outputs = outputs; - - final SimProcessingUnit cpu = ctx.getCpu(); - final OutPort output = stage.getOutlet("cpu"); - - graph.connect(output, cpu.getInput()); - outputs[0] = output; - - this.remainingDuration = duration; - this.lastUpdate = graph.getEngine().getClock().millis(); - } - - @Override - public void onStop(SimMachineContext ctx) { - this.ctx = null; - - final FlowStage stage = this.stage; - if (stage != null) { - this.stage = null; - this.outputs = null; - stage.close(); - } - } - - @Override - public void makeSnapshot(long now) { - System.out.printf("SimRuntimeWorkload -> makeSnapshot(%d)%n", now); - - final FlowStage stage = this.stage; - if (stage != null) { - stage.sync(); - } - - var remaining_time = this.remainingDuration; - - if (this.checkpointInterval > 0) { - // Calculate last checkpoint - var total_check_time = this.checkpointInterval + this.checkpointDuration; - var processed_time = this.duration - this.remainingDuration; - var processed_checks = (int) (processed_time / total_check_time); - var processed_time_last_check = - (processed_checks * total_check_time); // The processed time after the last checkpoint - - remaining_time = this.duration - - processed_time_last_check; // The remaining duration to process after last checkpoint - var remaining_checks = (int) (remaining_time / total_check_time); - remaining_time -= (remaining_checks * checkpointDuration); - } else { - remaining_time = duration; - } - - this.snapshot = - new SimRuntimeWorkload(remaining_time, utilization, this.checkpointInterval, this.checkpointDuration); - } - - @Override - public SimRuntimeWorkload getSnapshot() { - System.out.println("SimRuntimeWorkload -> getSnapshot()"); - - return this.snapshot; - } - - @Override - public void createCheckpointModel() {} - - @Override - public long onUpdate(FlowStage ctx, long now) { - long lastUpdate = this.lastUpdate; - this.lastUpdate = now; - - long delta = now - lastUpdate; - long duration = this.remainingDuration - delta; - - if (delta == 0 && this.ctx == null) { - // This means the workload has been terminated - // But, has not executed to completion - return Long.MAX_VALUE; - } - - if (duration <= 0) { - final SimMachineContext machineContext = this.ctx; - if (machineContext != null) { - machineContext.shutdown(); - } - ctx.close(); - return Long.MAX_VALUE; - } - - this.remainingDuration = duration; - - for (final OutPort output : outputs) { - float limit = (float) (output.getCapacity() * utilization); - output.push(limit); - } - - return now + duration; - } - - @Override - public String toString() { - return "SimDurationWorkload[duration=" + duration + "ms,utilization=" + utilization + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTrace.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTrace.java deleted file mode 100644 index b8445a9c3..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTrace.java +++ /dev/null @@ -1,413 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.workload; - -import java.util.ArrayDeque; -import java.util.Iterator; -import java.util.List; -import org.opendc.simulator.compute.SimMachineContext; -import org.opendc.simulator.compute.SimProcessingUnit; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.OutPort; - -/** - * A workload trace that describes the resource utilization over time in a collection of {@link SimTraceFragment}s. - */ -public final class SimTrace { - private final ArrayDeque fragments; - /** - * Construct a {@link SimTrace} instance. - * - */ - private SimTrace(ArrayDeque fragments) { - if (fragments.isEmpty()) { - throw new IllegalArgumentException("No Fragments found for the Trace"); - } - this.fragments = fragments; - } - - /** - * Construct a {@link SimWorkload} for this trace. - * - * // * @param offset The offset for the timestamps. - */ - public SimWorkload createWorkload(long start) { - return createWorkload(start, 0, 0, 1); - } - - /** - * Construct a {@link SimWorkload} for this trace. - * - * // * @param offset The offset for the timestamps. - */ - public SimWorkload createWorkload( - long start, long checkpointInterval, long checkpointDuration, double checkpointIntervalScaling) { - return new Workload(start, fragments, checkpointInterval, checkpointDuration, checkpointIntervalScaling); - } - - // /** - // * Create a new {@link Builder} instance with a default initial capacity. - // */ - public static Builder builder() { - return new Builder(); - } - - /** - * Construct a {@link SimTrace} from the specified fragments. - * - * @param fragments The array of fragments to construct the trace from. - */ - public static SimTrace ofFragments(SimTraceFragment... fragments) { - final Builder builder = builder(); - - for (SimTraceFragment fragment : fragments) { - builder.add(fragment.duration(), fragment.cpuUsage(), fragment.coreCount()); - } - - return builder.build(); - } - - /** - * Construct a {@link SimTrace} from the specified fragments. - * - * @param fragments The fragments to construct the trace from. - */ - public static SimTrace ofFragments(List fragments) { - final Builder builder = builder(); - - for (SimTraceFragment fragment : fragments) { - builder.add(fragment.duration(), fragment.cpuUsage(), fragment.coreCount()); - } - - return builder.build(); - } - - /** - * Builder class for a {@link SimTrace}. - */ - public static final class Builder { - private final ArrayDeque fragments; - - private boolean isBuilt; - - /** - * Construct a new {@link Builder} instance. - */ - private Builder() { - this.fragments = new ArrayDeque<>(); - } - - /** - * Add a fragment to the trace. - * - * @param duration The timestamp at which the fragment ends (in epoch millis). - * @param usage The CPU usage at this fragment. - * @param cores The number of cores used during this fragment. - */ - public void add(long duration, double usage, int cores) { - if (isBuilt) { - recreate(); - } - - fragments.add(new SimTraceFragment(duration, usage, cores)); - } - - /** - * Build the {@link SimTrace} instance. - */ - public SimTrace build() { - isBuilt = true; - return new SimTrace(fragments); - } - - /** - * Clone the columns of the trace. - * - *

- * This is necessary when a {@link SimTrace} has been built already, but the user is again adding entries to - * the builder. - */ - private void recreate() { - isBuilt = false; - this.fragments.clear(); - } - } - - /** - * Implementation of {@link SimWorkload} that executes a trace. - */ - private static class Workload implements SimWorkload { - private WorkloadStageLogic logic; - - private long offset; - - private final long start; - private ArrayDeque fragments; - - private long checkpointInterval; // How long to wait until a new checkpoint is made - private long checkpointDuration; // How long does it take to make a checkpoint - private double checkpointIntervalScaling; - private SimWorkload snapshot; - - private Workload( - long start, - ArrayDeque fragments, - long checkpointInterval, - long checkpointDuration, - double checkpointIntervalScaling) { - this.start = start; - this.checkpointInterval = checkpointInterval; - this.checkpointDuration = checkpointDuration; - this.checkpointIntervalScaling = checkpointIntervalScaling; - - this.fragments = fragments; - - this.snapshot = this; - } - - @Override - public long getCheckpointInterval() { - return checkpointInterval; - } - - @Override - public long getCheckpointDuration() { - return checkpointDuration; - } - - @Override - public double getCheckpointIntervalScaling() { - return checkpointIntervalScaling; - } - - @Override - public void setOffset(long now) { - this.offset = now; - } - - @Override - public void onStart(SimMachineContext ctx) { - final WorkloadStageLogic logic; - logic = new SingleWorkloadLogic(ctx, offset, fragments.iterator()); - this.logic = logic; - } - - @Override - public void onStop(SimMachineContext ctx) { - final WorkloadStageLogic logic = this.logic; - - if (logic != null) { - this.logic = null; - logic.getStage().close(); - } - } - - @Override - public void makeSnapshot(long now) { - final WorkloadStageLogic logic = this.logic; - final ArrayDeque newFragments = this.fragments; - - if (logic != null) { - int index = logic.getIndex(); - - if (index == 0 && (logic.getPassedTime(now) == 0)) { - this.snapshot = this; - return; - } - - // Remove all finished fragments - for (int i = 0; i < index; i++) { - newFragments.removeFirst(); - } - } else { - return; - } - - // Reduce the current Fragment to a fragment with the remaining time. - SimTraceFragment currentFragment = newFragments.pop(); - long passedTime = logic.getPassedTime(now); - long remainingTime = currentFragment.duration() - passedTime; - - if (remainingTime > 0) { - SimTraceFragment newFragment = - new SimTraceFragment(remainingTime, currentFragment.cpuUsage(), currentFragment.coreCount()); - - newFragments.addFirst(newFragment); - } - - // Add snapshot Fragment - // TODO: improve CPUUsage and coreCount here - SimTraceFragment snapshotFragment = new SimTraceFragment(checkpointDuration, 123456, 1); - newFragments.addFirst(snapshotFragment); - - // Update the logic - this.logic.updateFragments(newFragments.iterator(), now); - - // remove the snapshot Fragment and update fragments - newFragments.removeFirst(); - this.fragments = newFragments; - - this.snapshot = new Workload( - start, this.fragments, checkpointInterval, checkpointDuration, checkpointIntervalScaling); - } - - @Override - public SimWorkload getSnapshot() { - return this.snapshot; - } - - @Override - public void createCheckpointModel() {} - } - - /** - * Interface to represent the {@link FlowStage} that simulates the trace workload. - */ - private interface WorkloadStageLogic extends FlowStageLogic { - /** - * Return the {@link FlowStage} belonging to this instance. - */ - FlowStage getStage(); - - long getPassedTime(long now); - - void updateFragments(Iterator newFragments, long offset); - - /** - * Return the current index of the workload. - */ - int getIndex(); - } - - /** - * Implementation of {@link FlowStageLogic} for just a single CPU resource. - */ - private static class SingleWorkloadLogic implements WorkloadStageLogic { - private final FlowStage stage; - private final OutPort output; - private int index = 0; - - private final SimMachineContext ctx; - - private Iterator fragments; - private SimTraceFragment currentFragment; - private long startOffFragment; - - private SingleWorkloadLogic(SimMachineContext ctx, long offset, Iterator fragments) { - this.ctx = ctx; - - this.fragments = fragments; - - final FlowGraph graph = ctx.getGraph(); - stage = graph.newStage(this); - - final SimProcessingUnit cpu = ctx.getCpu(); - final OutPort output = stage.getOutlet("cpu"); - this.output = output; - - graph.connect(output, cpu.getInput()); - - // Start the first Fragment - this.currentFragment = this.fragments.next(); - this.output.push((float) currentFragment.cpuUsage()); - this.startOffFragment = offset; - } - - public long getPassedTime(long now) { - return now - this.startOffFragment; - } - - @Override - public void updateFragments(Iterator newFragments, long offset) { - this.fragments = newFragments; - - // Start the first Fragment - this.currentFragment = this.fragments.next(); - this.output.push((float) currentFragment.cpuUsage()); - this.startOffFragment = offset; - - this.index = -1; - - this.stage.invalidate(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - long passedTime = getPassedTime(now); - long duration = this.currentFragment.duration(); - - // The current Fragment has not yet been finished, continue - if (passedTime < duration) { - return now + (duration - passedTime); - } - - // Loop through fragments until the passed time is filled. - // We need a while loop to account for skipping of fragments. - while (passedTime >= duration) { - if (!this.fragments.hasNext()) { - return doStop(ctx); - } - - passedTime = passedTime - duration; - - // get next Fragment - this.index++; - currentFragment = this.fragments.next(); - duration = currentFragment.duration(); - } - - // start new fragment - this.startOffFragment = now - passedTime; - - // Change the cpu Usage to the new Fragment - this.output.push((float) currentFragment.cpuUsage()); - - // Return the time when the current fragment will complete - return this.startOffFragment + duration; - } - - @Override - public FlowStage getStage() { - return stage; - } - - @Override - public int getIndex() { - return index; - } - - /** - * Helper method to stop the execution of the workload. - */ - private long doStop(FlowStage ctx) { - final SimMachineContext machineContext = this.ctx; - if (machineContext != null) { - machineContext.shutdown(); - } - ctx.close(); - return Long.MAX_VALUE; - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceWorkload.java new file mode 100644 index 000000000..b6f98344b --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceWorkload.java @@ -0,0 +1,270 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.workload; + +import java.util.LinkedList; +import org.opendc.simulator.engine.FlowConsumer; +import org.opendc.simulator.engine.FlowEdge; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; +import org.opendc.simulator.engine.FlowSupplier; + +public class SimTraceWorkload extends SimWorkload implements FlowConsumer { + private LinkedList remainingFragments; + private int fragmentIndex; + + private TraceFragment currentFragment; + private long startOfFragment; + + private FlowEdge machineEdge; + private float currentDemand; + private float currentSupply; + + private long checkpointInterval; + private long checkpointDuration; + private double checkpointIntervalScaling; + + private TraceWorkload snapshot; + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Basic Getters and Setters + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public long getPassedTime(long now) { + return now - this.startOfFragment; + } + + public TraceWorkload getSnapshot() { + return snapshot; + } + + @Override + long getCheckpointInterval() { + return 0; + } + + @Override + long getCheckpointDuration() { + return 0; + } + + @Override + double getCheckpointIntervalScaling() { + return 0; + } + + public TraceFragment getNextFragment() { + this.currentFragment = this.remainingFragments.pop(); + this.fragmentIndex++; + + return this.currentFragment; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Constructors + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + public SimTraceWorkload(FlowSupplier supplier, TraceWorkload workload, long now) { + super(((FlowNode) supplier).getGraph()); + + this.snapshot = workload; + this.checkpointInterval = workload.getCheckpointInterval(); + this.checkpointDuration = workload.getCheckpointDuration(); + this.checkpointIntervalScaling = workload.getCheckpointIntervalScaling(); + this.remainingFragments = new LinkedList<>(workload.getFragments()); + this.fragmentIndex = 0; + + final FlowGraph graph = ((FlowNode) supplier).getGraph(); + graph.addEdge(this, supplier); + + this.currentFragment = this.getNextFragment(); + pushDemand(machineEdge, (float) this.currentFragment.cpuUsage()); + this.startOfFragment = now; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Fragment related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + @Override + public long onUpdate(long now) { + long passedTime = getPassedTime(now); + long duration = this.currentFragment.duration(); + + // The current Fragment has not yet been finished, continue + if (passedTime < duration) { + return now + (duration - passedTime); + } + + // Loop through fragments until the passed time is filled. + // We need a while loop to account for skipping of fragments. + while (passedTime >= duration) { + if (this.remainingFragments.isEmpty()) { + this.stopWorkload(); + return Long.MAX_VALUE; + } + + passedTime = passedTime - duration; + + // get next Fragment + currentFragment = this.getNextFragment(); + duration = currentFragment.duration(); + } + + // start new fragment + this.startOfFragment = now - passedTime; + + // Change the cpu Usage to the new Fragment + pushDemand(machineEdge, (float) this.currentFragment.cpuUsage()); + + // Return the time when the current fragment will complete + return this.startOfFragment + duration; + } + + @Override + public void stopWorkload() { + this.closeNode(); + + this.machineEdge = null; + this.remainingFragments = null; + this.currentFragment = null; + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // Checkpoint related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * SimTraceWorkload does not make a checkpoint, checkpointing is handled by SimChainWorkload + * TODO: Maybe add checkpoint models for SimTraceWorkload + */ + @Override + void createCheckpointModel() {} + + /** + * Create a new snapshot based on the current status of the workload. + * @param now + */ + public void makeSnapshot(long now) { + + // Check if fragments is empty + + // Get remaining time of current fragment + long passedTime = getPassedTime(now); + long remainingTime = currentFragment.duration() - passedTime; + + // Create a new fragment based on the current fragment and remaining duration + TraceFragment newFragment = + new TraceFragment(remainingTime, currentFragment.cpuUsage(), currentFragment.coreCount()); + + // Alter the snapshot by removing finished fragments + this.snapshot.removeFragments(this.fragmentIndex); + this.snapshot.addFirst(newFragment); + + this.remainingFragments.addFirst(newFragment); + + // Create and add a fragment for processing the snapshot process + // TODO: improve the implementation of cpuUsage and coreCount + TraceFragment snapshotFragment = new TraceFragment(this.checkpointDuration, 123456, 1); + this.remainingFragments.addFirst(snapshotFragment); + + this.fragmentIndex = -1; + this.currentFragment = getNextFragment(); + pushDemand(this.machineEdge, (float) this.currentFragment.cpuUsage()); + this.startOfFragment = now; + + this.invalidate(); + } + + /** + * Update the Fragments that are being used by the SimTraceWorkload + * @param newFragments + * @param offset + */ + public void updateFragments(LinkedList newFragments, long offset) { + this.remainingFragments = newFragments; + + // Start the first Fragment + this.currentFragment = this.remainingFragments.pop(); + pushDemand(this.machineEdge, (float) this.currentFragment.cpuUsage()); + this.startOfFragment = offset; + + this.invalidate(); + } + + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + // FlowGraph Related functionality + //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + /** + * Handle updates in supply from the Virtual Machine + * + * @param supplierEdge + * @param newSupply + */ + @Override + public void handleSupply(FlowEdge supplierEdge, float newSupply) { + if (newSupply == this.currentSupply) { + return; + } + + this.currentSupply = newSupply; + } + + /** + * Push a new demand to the Virtual Machine + * + * @param supplierEdge + * @param newDemand + */ + @Override + public void pushDemand(FlowEdge supplierEdge, float newDemand) { + if (newDemand == this.currentDemand) { + return; + } + + this.currentDemand = newDemand; + this.machineEdge.pushDemand(newDemand); + } + + /** + * Add the connection to the Virtual Machine + * + * @param supplierEdge + */ + @Override + public void addSupplierEdge(FlowEdge supplierEdge) { + this.machineEdge = supplierEdge; + } + + /** + * Handle the removal of the connection to the Virtual Machine + * When the connection to the Virtual Machine is removed, the SimTraceWorkload is removed + * + * @param supplierEdge + */ + @Override + public void removeSupplierEdge(FlowEdge supplierEdge) { + this.stopWorkload(); + } +} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimWorkload.java index f4f3ff58a..b5c899417 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimWorkload.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimWorkload.java @@ -22,7 +22,9 @@ package org.opendc.simulator.compute.workload; -import org.opendc.simulator.compute.SimMachineContext; +import org.opendc.simulator.engine.FlowConsumer; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; /** * A model that characterizes the runtime behavior of some particular workload. @@ -31,35 +33,33 @@ * Workloads are stateful objects that may be paused and resumed at a later moment. As such, be careful when using the * same {@link SimWorkload} from multiple contexts. */ -public interface SimWorkload { +public abstract class SimWorkload extends FlowNode implements FlowConsumer { /** - * This method is invoked when the workload is started. + * Construct a new {@link FlowNode} instance. * - * @param ctx The execution context in which the machine runs. + * @param parentGraph The {@link FlowGraph} this stage belongs to. */ - void onStart(SimMachineContext ctx); + public SimWorkload(FlowGraph parentGraph) { + super(parentGraph); + } /** * This method is invoked when the workload is stopped. - * - * @param ctx The execution context in which the machine runs. */ - void onStop(SimMachineContext ctx); + public abstract void stopWorkload(); /** * Create a snapshot of this workload. */ - void makeSnapshot(long now); - - SimWorkload getSnapshot(); + public abstract void makeSnapshot(long now); - void createCheckpointModel(); + public abstract Workload getSnapshot(); - long getCheckpointInterval(); + abstract void createCheckpointModel(); - long getCheckpointDuration(); + abstract long getCheckpointInterval(); - double getCheckpointIntervalScaling(); + abstract long getCheckpointDuration(); - void setOffset(long now); + abstract double getCheckpointIntervalScaling(); } diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimWorkloads.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimWorkloads.java deleted file mode 100644 index 34202945a..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimWorkloads.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.workload; - -import java.time.Duration; - -/** - * Helper methods for constructing {@link SimWorkload}s. - */ -public class SimWorkloads { - private SimWorkloads() {} - - /** - * Create a {@link SimWorkload} that executes a specified number of floating point operations (FLOPs) at the given - * utilization. - * - * @param flops The number of floating point operations to perform for this task in MFLOPs. - * @param utilization The CPU utilization of the workload. - */ - public static SimWorkload flops(long flops, double utilization) { - return new SimFlopsWorkload(flops, utilization); - } - - /** - * Create a {@link SimWorkload} that consumes the CPU resources for a specified duration at the given utilization. - * - * @param duration The duration of the workload in milliseconds. - * @param utilization The CPU utilization of the workload. - */ - public static SimWorkload runtime(long duration, double utilization) { - return runtime(duration, utilization, 0, 0); - } - - /** - * Create a {@link SimWorkload} that consumes the CPU resources for a specified duration at the given utilization. - * - * @param duration The duration of the workload in milliseconds. - * @param utilization The CPU utilization of the workload. - */ - public static SimWorkload runtime( - long duration, double utilization, long checkpointInterval, long checkpointDuration) { - return new SimRuntimeWorkload(duration, utilization, checkpointInterval, checkpointDuration); - } - - /** - * Create a {@link SimWorkload} that consumes the CPU resources for a specified duration at the given utilization. - * - * @param duration The duration of the workload. - * @param utilization The CPU utilization of the workload. - */ - public static SimWorkload runtime( - Duration duration, double utilization, long checkpointInterval, long checkpointDuration) { - return runtime(duration.toMillis(), utilization, checkpointInterval, checkpointDuration); - } - - /** - * Chain the specified workloads into a single {@link SimWorkload}. - */ - public static SimWorkload chain(SimWorkload... workloads) { - return new SimChainWorkload(workloads); - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceFragment.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/TraceFragment.java similarity index 87% rename from opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceFragment.java rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/TraceFragment.java index 374e97328..550c2135d 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/SimTraceFragment.java +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/TraceFragment.java @@ -22,9 +22,9 @@ package org.opendc.simulator.compute.workload; -public record SimTraceFragment(long duration, double cpuUsage, int coreCount) { +public record TraceFragment(long duration, double cpuUsage, int coreCount) { - public SimTraceFragment(long start, long duration, double cpuUsage, int coreCount) { + public TraceFragment(long start, long duration, double cpuUsage, int coreCount) { this(duration, cpuUsage, coreCount); } } diff --git a/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/TraceWorkload.java b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/TraceWorkload.java new file mode 100644 index 000000000..115689df4 --- /dev/null +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/TraceWorkload.java @@ -0,0 +1,154 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.compute.workload; + +import java.util.ArrayList; +import java.util.List; +import org.opendc.simulator.engine.FlowSupplier; + +public class TraceWorkload implements Workload { + private ArrayList fragments; + private final long checkpointInterval; + private final long checkpointDuration; + private final double checkpointIntervalScaling; + + public TraceWorkload( + ArrayList fragments, + long checkpointInterval, + long checkpointDuration, + double checkpointIntervalScaling) { + this.fragments = fragments; + this.checkpointInterval = checkpointInterval; + this.checkpointDuration = checkpointDuration; + this.checkpointIntervalScaling = checkpointIntervalScaling; + } + + public ArrayList getFragments() { + return fragments; + } + + @Override + public long getCheckpointInterval() { + return checkpointInterval; + } + + @Override + public long getCheckpointDuration() { + return checkpointDuration; + } + + @Override + public double getCheckpointIntervalScaling() { + return checkpointIntervalScaling; + } + + public void removeFragments(int numberOfFragments) { + if (numberOfFragments <= 0) { + return; + } + this.fragments.subList(0, numberOfFragments).clear(); + } + + public void addFirst(TraceFragment fragment) { + this.fragments.add(0, fragment); + } + + @Override + public SimWorkload startWorkload(FlowSupplier supplier, long now) { + return new SimTraceWorkload(supplier, this, now); + } + + public static Builder builder() { + return builder(0L, 0L, 0L); + } + + public static Builder builder(long checkpointInterval, long checkpointDuration, double checkpointIntervalScaling) { + return new Builder(checkpointInterval, checkpointDuration, checkpointIntervalScaling); + } + + /** + * Construct a {@link TraceWorkload} from the specified fragments. + * + * @param fragments The array of fragments to construct the trace from. + */ + public static TraceWorkload ofFragments(TraceFragment... fragments) { + final Builder builder = builder(); + + for (TraceFragment fragment : fragments) { + builder.add(fragment.duration(), fragment.cpuUsage(), fragment.coreCount()); + } + + return builder.build(); + } + + /** + * Construct a {@link TraceWorkload} from the specified fragments. + * + * @param fragments The fragments to construct the trace from. + */ + public static TraceWorkload ofFragments(List fragments) { + final Builder builder = builder(); + + for (TraceFragment fragment : fragments) { + builder.add(fragment.duration(), fragment.cpuUsage(), fragment.coreCount()); + } + + return builder.build(); + } + + public static final class Builder { + private final ArrayList fragments; + private final long checkpointInterval; + private final long checkpointDuration; + private final double checkpointIntervalScaling; + + /** + * Construct a new {@link Builder} instance. + */ + private Builder(long checkpointInterval, long checkpointDuration, double checkpointIntervalScaling) { + this.fragments = new ArrayList<>(); + this.checkpointInterval = checkpointInterval; + this.checkpointDuration = checkpointDuration; + this.checkpointIntervalScaling = checkpointIntervalScaling; + } + + /** + * Add a fragment to the trace. + * + * @param duration The timestamp at which the fragment ends (in epoch millis). + * @param usage The CPU usage at this fragment. + * @param cores The number of cores used during this fragment. + */ + public void add(long duration, double usage, int cores) { + fragments.add(0, new TraceFragment(duration, usage, cores)); + } + + /** + * Build the {@link TraceWorkload} instance. + */ + public TraceWorkload build() { + return new TraceWorkload( + this.fragments, this.checkpointInterval, this.checkpointDuration, this.checkpointIntervalScaling); + } + } +} diff --git a/opendc-simulator/opendc-simulator-power/build.gradle.kts b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/Workload.java similarity index 76% rename from opendc-simulator/opendc-simulator-power/build.gradle.kts rename to opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/Workload.java index ea36ce759..cd34921a3 100644 --- a/opendc-simulator/opendc-simulator-power/build.gradle.kts +++ b/opendc-simulator/opendc-simulator-compute/src/main/java/org/opendc/simulator/compute/workload/Workload.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 AtLarge Research + * Copyright (c) 2024 AtLarge Research * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,15 +20,17 @@ * SOFTWARE. */ -description = "Library for simulating datacenter power components" +package org.opendc.simulator.compute.workload; -plugins { - `kotlin-library-conventions` -} +import org.opendc.simulator.engine.FlowSupplier; + +public interface Workload { + + long getCheckpointInterval(); + + long getCheckpointDuration(); -dependencies { - api(projects.opendcSimulator.opendcSimulatorFlow) - implementation(projects.opendcSimulator.opendcSimulatorCore) + double getCheckpointIntervalScaling(); - testImplementation(libs.slf4j.simple) + SimWorkload startWorkload(FlowSupplier supplier, long now); } diff --git a/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/Coroutines.kt b/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/Coroutines.kt index 63af20489..ad69a3d62 100644 --- a/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/Coroutines.kt +++ b/opendc-simulator/opendc-simulator-compute/src/main/kotlin/org/opendc/simulator/compute/Coroutines.kt @@ -23,12 +23,13 @@ package org.opendc.simulator.compute import kotlinx.coroutines.suspendCancellableCoroutine -import org.opendc.simulator.compute.workload.SimWorkload +import org.opendc.simulator.compute.machine.SimMachine +import org.opendc.simulator.compute.workload.TraceWorkload import kotlin.coroutines.resume import kotlin.coroutines.resumeWithException /** - * Run the specified [SimWorkload] on this machine and suspend execution util [workload] has finished. + * Run the specified [SimWorkloadNew] on this machine and suspend execution util [workload] has finished. * * @param workload The workload to start on the machine. * @param meta The metadata to pass to the workload. @@ -36,13 +37,13 @@ import kotlin.coroutines.resumeWithException * @throws IllegalStateException if a workload is already active on the machine or if the machine is closed. */ public suspend fun SimMachine.runWorkload( - workload: SimWorkload, + workload: TraceWorkload, meta: Map = emptyMap(), ) { return suspendCancellableCoroutine { cont -> - cont.invokeOnCancellation { this@runWorkload.cancel() } + cont.invokeOnCancellation { this@runWorkload.shutdown() } - startWorkload(workload, meta) { cause -> + startWorkload(workload) { cause -> if (cause != null) cont.resumeWithException(cause) else cont.resume(Unit) } } diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt index be6d289cc..2b6a922ec 100644 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt +++ b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/SimMachineTest.kt @@ -22,33 +22,17 @@ package org.opendc.simulator.compute -import io.mockk.every -import io.mockk.mockk -import kotlinx.coroutines.CancellationException -import kotlinx.coroutines.cancel -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.launch -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertAll import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.BeforeEach import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.compute.device.SimNetworkAdapter -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.model.NetworkAdapter -import org.opendc.simulator.compute.model.StorageDevice -import org.opendc.simulator.compute.power.CpuPowerModels -import org.opendc.simulator.compute.workload.SimTrace -import org.opendc.simulator.compute.workload.SimWorkload -import org.opendc.simulator.compute.workload.SimWorkloads -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.source.SimpleFlowSource +import org.opendc.simulator.compute.cpu.CpuPowerModels +import org.opendc.simulator.compute.machine.SimMachine +import org.opendc.simulator.compute.models.CpuModel +import org.opendc.simulator.compute.models.MachineModel +import org.opendc.simulator.compute.models.MemoryUnit +import org.opendc.simulator.compute.workload.TraceWorkload +import org.opendc.simulator.engine.FlowEngine import org.opendc.simulator.kotlin.runSimulation -import org.opendc.simulator.network.SimNetworkSink -import org.opendc.simulator.power.SimPowerSource import java.util.concurrent.ThreadLocalRandom /** @@ -61,529 +45,390 @@ class SimMachineTest { fun setUp() { machineModel = MachineModel( - Cpu( + CpuModel( 0, 2, - 1000.0, + 1000.0f, "Intel", "Xeon", "amd64", ), MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - listOf(NetworkAdapter("Mellanox", "ConnectX-5", 25000.0)), - listOf(StorageDevice("Samsung", "EVO", 1000.0, 250.0, 250.0)), ) } // @Test - fun testFlopsWorkload() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) - - // Two cores execute 1000 MFlOps per second (1000 ms) - assertEquals(1000, timeSource.millis()) - } +// fun testFlopsWorkload() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// ) +// +// machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) +// +// // Two cores execute 1000 MFlOps per second (1000 ms) +// assertEquals(1000, timeSource.millis()) +// } @Test fun testTraceWorkload() = runSimulation { val random = ThreadLocalRandom.current() - val builder = SimTrace.builder() - repeat(1000000) { -// val timestamp = it.toLong() * 1000 -// val deadline = timestamp + 1000 + val builder = TraceWorkload.builder() + repeat(100) { builder.add(1000, random.nextDouble(0.0, 4500.0), 1) } - val trace = builder.build() - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) + val traceWorkload = builder.build() - machine.runWorkload(trace.createWorkload(0)) - - // Two cores execute 1000 MFlOps per second (1000 ms) - assertEquals(1000000000, timeSource.millis()) - } - -// @Test - fun testDualSocketMachine() = - runSimulation { val engine = FlowEngine.create(dispatcher) val graph = engine.newGraph() - - val cpuNode = machineModel.cpu - val machineModel = - MachineModel( - List(cpuNode.coreCount * 2) { - Cpu( - it, - cpuNode.coreCount, - 1000.0, - ) - }, - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - val machine = - SimBareMetalMachine.create( + val simMachine = + SimMachine( graph, machineModel, - ) - - machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) - - // Two sockets with two cores execute 2000 MFlOps per second (500 ms) - assertEquals(500, timeSource.millis()) - } - - @Test - fun testPower() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - SimPsuFactories.simple(CpuPowerModels.linear(100.0, 50.0)), - ) - val source = SimPowerSource(graph, 1000.0f) - source.connect(machine.psu) - - coroutineScope { - launch { machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) } - - yield() - assertAll( - { assertEquals(100.0, machine.psu.powerDraw) }, - { assertEquals(100.0f, source.powerDraw) }, - ) - } - } - - @Test - fun testCapacityClamp() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - machine.runWorkload( - object : SimWorkload { - override fun onStart(ctx: SimMachineContext) { - val cpu = ctx.cpu - - cpu.frequency = (cpu.cpuModel.totalCapacity + 1000.0) - assertEquals(cpu.cpuModel.totalCapacity, cpu.frequency) - cpu.frequency = -1.0 - assertEquals(0.0, cpu.frequency) - - ctx.shutdown() - } - - override fun setOffset(now: Long) {} - - override fun onStop(ctx: SimMachineContext) {} - - override fun makeSnapshot(now: Long) { - } - - override fun getSnapshot(): SimWorkload = this - - override fun createCheckpointModel() {} - - override fun getCheckpointInterval(): Long { - return -1 - } - - override fun getCheckpointDuration(): Long { - return -1 - } - - override fun getCheckpointIntervalScaling(): Double { - return -1.0 - } - }, - ) - } - - @Test - fun testMemory() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - machine.runWorkload( - object : SimWorkload { - override fun onStart(ctx: SimMachineContext) { - assertEquals(32_000 * 4.0, ctx.memory.capacity) - ctx.shutdown() - } - - override fun setOffset(now: Long) {} - - override fun onStop(ctx: SimMachineContext) {} - - override fun makeSnapshot(now: Long) {} - - override fun getSnapshot(): SimWorkload = this - - override fun createCheckpointModel() {} - - override fun getCheckpointInterval(): Long { - return -1 - } - - override fun getCheckpointDuration(): Long { - return -1 - } - - override fun getCheckpointIntervalScaling(): Double { - return -1.0 - } - }, - ) - } - - @Test - fun testMemoryUsage() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - machine.runWorkload( - object : SimWorkload { - override fun onStart(ctx: SimMachineContext) { - val source = SimpleFlowSource(ctx.graph, ctx.memory.capacity.toFloat(), 1.0f) { ctx.shutdown() } - ctx.graph.connect(source.output, ctx.memory.input) - } - - override fun setOffset(now: Long) {} - - override fun onStop(ctx: SimMachineContext) {} - - override fun makeSnapshot(now: Long) { - } - - override fun getSnapshot(): SimWorkload = this - - override fun createCheckpointModel() {} - - override fun getCheckpointInterval(): Long { - return -1 - } - - override fun getCheckpointDuration(): Long { - return -1 - } - - override fun getCheckpointIntervalScaling(): Double { - return -1.0 - } - }, - ) - - assertEquals(1000, timeSource.millis()) - } - - @Test - fun testNetUsage() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val adapter = (machine.peripherals[0] as SimNetworkAdapter) - adapter.connect(SimNetworkSink(graph, adapter.bandwidth.toFloat())) - - machine.runWorkload( - object : SimWorkload { - override fun onStart(ctx: SimMachineContext) { - val iface = ctx.networkInterfaces[0] - val source = - SimpleFlowSource(ctx.graph, 800.0f, 0.8f) { - ctx.shutdown() - it.close() - } - ctx.graph.connect(source.output, iface.tx) - } - - override fun setOffset(now: Long) {} - - override fun onStop(ctx: SimMachineContext) {} - - override fun makeSnapshot(now: Long) { - } - - override fun getSnapshot(): SimWorkload = this - - override fun createCheckpointModel() {} - - override fun getCheckpointInterval(): Long { - return -1 - } - - override fun getCheckpointDuration(): Long { - return -1 - } - - override fun getCheckpointIntervalScaling(): Double { - return -1.0 - } - }, - ) - - assertEquals(40, timeSource.millis()) - } - - @Test - fun testDiskReadUsage() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - machine.runWorkload( - object : SimWorkload { - override fun onStart(ctx: SimMachineContext) { - val disk = ctx.storageInterfaces[0] - val source = SimpleFlowSource(ctx.graph, 800.0f, 0.8f) { ctx.shutdown() } - ctx.graph.connect(source.output, disk.read) - } - - override fun setOffset(now: Long) {} - - override fun onStop(ctx: SimMachineContext) {} - - override fun makeSnapshot(now: Long) {} - - override fun getSnapshot(): SimWorkload = this - - override fun createCheckpointModel() {} - - override fun getCheckpointInterval(): Long { - return -1 - } - - override fun getCheckpointDuration(): Long { - return -1 - } - - override fun getCheckpointIntervalScaling(): Double { - return -1.0 - } - }, - ) - - assertEquals(4000, timeSource.millis()) - } - - @Test - fun testDiskWriteUsage() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - machine.runWorkload( - object : SimWorkload { - override fun onStart(ctx: SimMachineContext) { - val disk = ctx.storageInterfaces[0] - val source = SimpleFlowSource(ctx.graph, 800.0f, 0.8f) { ctx.shutdown() } - ctx.graph.connect(source.output, disk.write) - } - - override fun setOffset(now: Long) {} - - override fun onStop(ctx: SimMachineContext) {} - - override fun makeSnapshot(now: Long) {} - - override fun getSnapshot(): SimWorkload = this - - override fun createCheckpointModel() {} - - override fun getCheckpointInterval(): Long { - return -1 - } - - override fun getCheckpointDuration(): Long { - return -1 - } - - override fun getCheckpointIntervalScaling(): Double { - return -1.0 - } - }, - ) - - assertEquals(4000, timeSource.millis()) - } - - @Test - fun testCancellation() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - try { - coroutineScope { - launch { machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) } - cancel() - } - } catch (_: CancellationException) { - // Ignore - } - - assertEquals(0, timeSource.millis()) - } - - @Test - fun testConcurrentRuns() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - coroutineScope { - launch { - machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) + CpuPowerModels.constant(0.0), + ) { cause -> } - assertThrows { - machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) + val virtualMachine = + simMachine.startWorkload(traceWorkload) { cause -> + assertEquals(100000, timeSource.millis()) } - } - } - - @Test - fun testCatchStartFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = mockk() - every { workload.onStart(any()) } throws IllegalStateException() - - assertThrows { machine.runWorkload(workload) } - } - - @Test - fun testCatchStopFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = mockk() - every { workload.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown() } - every { workload.onStop(any()) } throws IllegalStateException() - - assertThrows { machine.runWorkload(workload) } - } - - @Test - fun testCatchShutdownFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = mockk() - every { workload.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown(IllegalStateException()) } - assertThrows { machine.runWorkload(workload) } + // Two cores execute 1000 MFlOps per second (1000 ms) } - @Test - fun testCatchNestedFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = mockk() - every { workload.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown(IllegalStateException()) } - every { workload.onStop(any()) } throws IllegalStateException() - - val exc = assertThrows { machine.runWorkload(workload) } - assertEquals(1, exc.cause!!.suppressedExceptions.size) - } +// @Test +// fun testDualSocketMachine() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val cpuNode = machineModel.cpu +// val machineModel = +// MachineModel( +// List(cpuNode.coreCount * 2) { +// CpuModel( +// it, +// cpuNode.coreCount, +// 1000.0, +// ) +// }, +// MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), +// ) +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) +// +// // Two sockets with two cores execute 2000 MFlOps per second (500 ms) +// assertEquals(500, timeSource.millis()) +// } +// +// // @Test +// // fun testPower() = +// // runSimulation { +// // val engine = FlowEngine.create(dispatcher) +// // val graph = engine.newGraph() +// // val machine = +// // SimBareMetalMachine.create( +// // graph, +// // machineModel, +// // CpuPowerModels.linear(100.0, 50.0), +// // ) +// // val source = SimPowerSource(graph, 1000.0f) +// // source.connect(machine.psu) +// // +// // coroutineScope { +// // launch { machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) } +// // +// // yield() +// // assertAll( +// // { assertEquals(100.0, machine.psu.powerDraw) }, +// // { assertEquals(100.0f, source.powerDraw) }, +// // ) +// // } +// // } +// +// @Test +// fun testCapacityClamp() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// machine.runWorkload( +// object : SimWorkload { +// override fun onStart(ctx: SimMachineContext) { +// val cpu = ctx.cpu +// +// cpu.frequency = (cpu.cpuModel.totalCapacity + 1000.0) +// assertEquals(cpu.cpuModel.totalCapacity, cpu.frequency) +// cpu.frequency = -1.0 +// assertEquals(0.0, cpu.frequency) +// +// ctx.shutdown() +// } +// +// override fun setOffset(now: Long) {} +// +// override fun onStop(ctx: SimMachineContext) {} +// +// override fun makeSnapshot(now: Long) { +// } +// +// override fun getSnapshot(): SimWorkload = this +// +// override fun createCheckpointModel() {} +// +// override fun getCheckpointInterval(): Long { +// return -1 +// } +// +// override fun getCheckpointDuration(): Long { +// return -1 +// } +// +// override fun getCheckpointIntervalScaling(): Double { +// return -1.0 +// } +// }, +// ) +// } +// +// @Test +// fun testMemory() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// machine.runWorkload( +// object : SimWorkload { +// override fun onStart(ctx: SimMachineContext) { +// assertEquals(32_000 * 4.0, ctx.memory.capacity) +// ctx.shutdown() +// } +// +// override fun setOffset(now: Long) {} +// +// override fun onStop(ctx: SimMachineContext) {} +// +// override fun makeSnapshot(now: Long) {} +// +// override fun getSnapshot(): SimWorkload = this +// +// override fun createCheckpointModel() {} +// +// override fun getCheckpointInterval(): Long { +// return -1 +// } +// +// override fun getCheckpointDuration(): Long { +// return -1 +// } +// +// override fun getCheckpointIntervalScaling(): Double { +// return -1.0 +// } +// }, +// ) +// } +// +// @Test +// fun testMemoryUsage() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// machine.runWorkload( +// object : SimWorkload { +// override fun onStart(ctx: SimMachineContext) { +// val source = SimpleFlowSource(ctx.graph, ctx.memory.capacity.toFloat(), 1.0f) { ctx.shutdown() } +// ctx.graph.connect(source.output, ctx.memory.input) +// } +// +// override fun setOffset(now: Long) {} +// +// override fun onStop(ctx: SimMachineContext) {} +// +// override fun makeSnapshot(now: Long) { +// } +// +// override fun getSnapshot(): SimWorkload = this +// +// override fun createCheckpointModel() {} +// +// override fun getCheckpointInterval(): Long { +// return -1 +// } +// +// override fun getCheckpointDuration(): Long { +// return -1 +// } +// +// override fun getCheckpointIntervalScaling(): Double { +// return -1.0 +// } +// }, +// ) +// +// assertEquals(1000, timeSource.millis()) +// } +// +// @Test +// fun testCancellation() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// try { +// coroutineScope { +// launch { machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) } +// cancel() +// } +// } catch (_: CancellationException) { +// // Ignore +// } +// +// assertEquals(0, timeSource.millis()) +// } +// +// @Test +// fun testConcurrentRuns() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// coroutineScope { +// launch { +// machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) +// } +// +// assertThrows { +// machine.runWorkload(SimWorkloads.flops(2_000, 1.0)) +// } +// } +// } +// +// @Test +// fun testCatchStartFailure() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// val workload = mockk() +// every { workload.onStart(any()) } throws IllegalStateException() +// +// assertThrows { machine.runWorkload(workload) } +// } +// +// @Test +// fun testCatchStopFailure() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// val workload = mockk() +// every { workload.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown() } +// every { workload.onStop(any()) } throws IllegalStateException() +// +// assertThrows { machine.runWorkload(workload) } +// } +// +// @Test +// fun testCatchShutdownFailure() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// val workload = mockk() +// every { workload.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown(IllegalStateException()) } +// +// assertThrows { machine.runWorkload(workload) } +// } +// +// @Test +// fun testCatchNestedFailure() = +// runSimulation { +// val engine = FlowEngine.create(dispatcher) +// val graph = engine.newGraph() +// +// val machine = +// SimBareMetalMachine.create( +// graph, +// machineModel, +// CpuPowerModels.constant(0.0) +// ) +// +// val workload = mockk() +// every { workload.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown(IllegalStateException()) } +// every { workload.onStop(any()) } throws IllegalStateException() +// +// val exc = assertThrows { machine.runWorkload(workload) } +// assertEquals(1, exc.cause!!.suppressedExceptions.size) +// } } diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimFairShareHypervisorTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimFairShareHypervisorTest.kt deleted file mode 100644 index 6cebc46fa..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimFairShareHypervisorTest.kt +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel - -import kotlinx.coroutines.coroutineScope -import kotlinx.coroutines.launch -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertAll -import org.junit.jupiter.api.assertDoesNotThrow -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.kernel.cpufreq.ScalingGovernors -import org.opendc.simulator.compute.kernel.interference.VmInterferenceModel -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.runWorkload -import org.opendc.simulator.compute.workload.SimTrace -import org.opendc.simulator.compute.workload.SimTraceFragment -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.mux.FlowMultiplexerFactory -import org.opendc.simulator.kotlin.runSimulation -import java.util.SplittableRandom - -/** - * Test suite for the [SimHypervisor] class. - */ -internal class SimFairShareHypervisorTest { - private lateinit var model: MachineModel - - @BeforeEach - fun setUp() { - model = - MachineModel( - Cpu( - 0, - 1, - 3200.0, - "Intel", - "Xeon", - "amd64", - ), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - } - - /** - * Test overcommitting of resources via the hypervisor with a single VM. - */ - @Test - fun testOvercommittedSingle() = - runSimulation { - val duration = 5 * 60L - val workloadA = - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 28.0, 1), - SimTraceFragment(duration * 1000, duration * 1000, 3500.0, 1), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 1), - SimTraceFragment(duration * 3000, duration * 1000, 183.0, 1), - ).createWorkload(0) - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, model) - val hypervisor = - SimHypervisor.create( - FlowMultiplexerFactory.maxMinMultiplexer(), - SplittableRandom(0L), - ScalingGovernors.performance(), - ) - - launch { machine.runWorkload(hypervisor) } - yield() - - val vm = hypervisor.newMachine(model) - vm.runWorkload(workloadA) - - yield() - machine.cancel() - - assertAll( - { assertEquals(319781, hypervisor.counters.cpuActiveTime, "Active time does not match") }, - { assertEquals(880219, hypervisor.counters.cpuIdleTime, "Idle time does not match") }, - { assertEquals(28125, hypervisor.counters.cpuStealTime, "Steal time does not match") }, - { assertEquals(1200000, timeSource.millis()) { "Current time is correct" } }, - ) - } - - /** - * Test overcommitting of resources via the hypervisor with two VMs. - */ - @Test - fun testOvercommittedDual() = - runSimulation { - val duration = 5 * 60L - val workloadA = - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 28.0, 1), - SimTraceFragment(duration * 1000, duration * 1000, 3500.0, 1), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 1), - SimTraceFragment(duration * 3000, duration * 1000, 183.0, 1), - ).createWorkload(0) - val workloadB = - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 28.0, 1), - SimTraceFragment(duration * 1000, duration * 1000, 3100.0, 1), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 1), - SimTraceFragment(duration * 3000, duration * 1000, 73.0, 1), - ).createWorkload(0) - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, model) - val hypervisor = - SimHypervisor.create( - FlowMultiplexerFactory.maxMinMultiplexer(), - SplittableRandom(0L), - ScalingGovernors.performance(), - ) - - launch { machine.runWorkload(hypervisor) } - - yield() - coroutineScope { - launch { - val vm = hypervisor.newMachine(model) - vm.runWorkload(workloadA) - hypervisor.removeMachine(vm) - } - val vm = hypervisor.newMachine(model) - vm.runWorkload(workloadB) - hypervisor.removeMachine(vm) - } - yield() - machine.cancel() - yield() - - assertAll( - { assertEquals(329250, hypervisor.counters.cpuActiveTime, "Active time does not match") }, - { assertEquals(870750, hypervisor.counters.cpuIdleTime, "Idle time does not match") }, - { assertEquals(318750, hypervisor.counters.cpuStealTime, "Steal time does not match") }, - { assertEquals(1200000, timeSource.millis()) }, - ) - } - - @Test - fun testMultipleCPUs() = - runSimulation { - val model = - MachineModel( - Cpu( - 0, - 2, - 3200.0, - "Intel", - "Xeon", - "amd64", - ), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, model) - val hypervisor = - SimHypervisor.create( - FlowMultiplexerFactory.maxMinMultiplexer(), - SplittableRandom(0L), - ScalingGovernors.performance(), - ) - - assertDoesNotThrow { - launch { machine.runWorkload(hypervisor) } - } - - machine.cancel() - } - - @Test - fun testInterference() = - runSimulation { - val model = - MachineModel( - Cpu( - 0, - 2, - 3200.0, - "Intel", - "Xeon", - "amd64", - ), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - - val interferenceModel = - VmInterferenceModel.builder() - .addGroup(setOf("a", "b"), 0.0, 0.9) - .addGroup(setOf("a", "c"), 0.0, 0.6) - .addGroup(setOf("a", "n"), 0.1, 0.8) - .build() - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, model) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.maxMinMultiplexer(), SplittableRandom(0L)) - - val duration = 5 * 60L - val workloadA = - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 0.0, 1), - SimTraceFragment(duration * 1000, duration * 1000, 28.0, 1), - SimTraceFragment(duration * 2000, duration * 1000, 3500.0, 1), - SimTraceFragment(duration * 3000, duration * 1000, 183.0, 1), - ).createWorkload(0) - val workloadB = - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 0.0, 1), - SimTraceFragment(duration * 1000, duration * 1000, 28.0, 1), - SimTraceFragment(duration * 2000, duration * 1000, 3100.0, 1), - SimTraceFragment(duration * 3000, duration * 1000, 73.0, 1), - ).createWorkload(0) - - launch { - machine.runWorkload(hypervisor) - } - - coroutineScope { - launch { - val vm = hypervisor.newMachine(model) - vm.runWorkload(workloadA, meta = mapOf("interference-model" to interferenceModel.getProfile("a")!!)) - hypervisor.removeMachine(vm) - } - val vm = hypervisor.newMachine(model) - vm.runWorkload(workloadB, meta = mapOf("interference-model" to interferenceModel.getProfile("b")!!)) - hypervisor.removeMachine(vm) - } - - machine.cancel() - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt deleted file mode 100644 index b4ae372cb..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/SimSpaceSharedHypervisorTest.kt +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel - -import kotlinx.coroutines.launch -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertDoesNotThrow -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertFalse -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.runWorkload -import org.opendc.simulator.compute.workload.SimTrace -import org.opendc.simulator.compute.workload.SimTraceFragment -import org.opendc.simulator.compute.workload.SimWorkloads -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.mux.FlowMultiplexerFactory -import org.opendc.simulator.kotlin.runSimulation -import java.util.SplittableRandom - -/** - * A test suite for a space-shared [SimHypervisor]. - */ -internal class SimSpaceSharedHypervisorTest { - private lateinit var machineModel: MachineModel - - @BeforeEach - fun setUp() { - machineModel = - MachineModel( - Cpu( - 0, - 1, - 3200.0, - "Intel", - "Xeon", - "amd64", - ), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - } - - /** - * Test a trace workload. - */ - @Test - fun testTrace() = - runSimulation { - val duration = 5 * 60L - val workloadA = - SimTrace.ofFragments( - SimTraceFragment(0, duration * 1000, 28.0, 1), - SimTraceFragment(duration * 1000, duration * 1000, 3500.0, 1), - SimTraceFragment(duration * 2000, duration * 1000, 0.0, 1), - SimTraceFragment(duration * 3000, duration * 1000, 183.0, 1), - ).createWorkload(0) - - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.forwardingMultiplexer(), SplittableRandom(0L)) - - launch { machine.runWorkload(hypervisor) } - val vm = hypervisor.newMachine(machineModel) - vm.runWorkload(workloadA) - yield() - - hypervisor.removeMachine(vm) - machine.cancel() - - assertEquals(5 * 60L * 4000, timeSource.millis()) { "Took enough time" } - } - - /** - * Test runtime workload on hypervisor. - */ - @Test - fun testRuntimeWorkload() = - runSimulation { - val duration = 5 * 60L * 1000 - val workload = SimWorkloads.runtime(duration, 1.0) - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.forwardingMultiplexer(), SplittableRandom(0L)) - - launch { machine.runWorkload(hypervisor) } - yield() - val vm = hypervisor.newMachine(machineModel) - vm.runWorkload(workload) - hypervisor.removeMachine(vm) - - machine.cancel() - - assertEquals(duration, timeSource.millis()) { "Took enough time" } - } - - /** - * Test FLOPs workload on hypervisor. - */ - @Test - fun testFlopsWorkload() = - runSimulation { - val duration = 5 * 60L * 1000 - val workload = SimWorkloads.flops((duration * 3.2).toLong(), 1.0) - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.forwardingMultiplexer(), SplittableRandom(0L)) - - launch { machine.runWorkload(hypervisor) } - yield() - val vm = hypervisor.newMachine(machineModel) - vm.runWorkload(workload) - machine.cancel() - - assertEquals(duration, timeSource.millis()) { "Took enough time" } - } - - /** - * Test two workloads running sequentially. - */ - @Test - fun testTwoWorkloads() = - runSimulation { - val duration = 5 * 60L * 1000 - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.forwardingMultiplexer(), SplittableRandom(0L)) - - launch { machine.runWorkload(hypervisor) } - yield() - - val vm = hypervisor.newMachine(machineModel) - vm.runWorkload(SimWorkloads.runtime(duration, 1.0)) - hypervisor.removeMachine(vm) - - yield() - - val vm2 = hypervisor.newMachine(machineModel) - vm2.runWorkload(SimWorkloads.runtime(duration, 1.0)) - hypervisor.removeMachine(vm2) - - machine.cancel() - - assertEquals(duration * 2, timeSource.millis()) { "Took enough time" } - } - - /** - * Test concurrent workloads on the machine. - */ - @Test - fun testConcurrentWorkloadFails() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.forwardingMultiplexer(), SplittableRandom(0L)) - - launch { machine.runWorkload(hypervisor) } - yield() - - val vm = hypervisor.newMachine(machineModel) - launch { vm.runWorkload(SimWorkloads.runtime(10_000, 1.0)) } - yield() - - assertAll( - { assertFalse(hypervisor.canFit(machineModel)) }, - { assertThrows { hypervisor.newMachine(machineModel) } }, - ) - - machine.cancel() - vm.cancel() - } - - /** - * Test concurrent workloads on the machine. - */ - @Test - fun testConcurrentWorkloadSucceeds() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val hypervisor = SimHypervisor.create(FlowMultiplexerFactory.forwardingMultiplexer(), SplittableRandom(0L)) - - launch { machine.runWorkload(hypervisor) } - yield() - - hypervisor.removeMachine(hypervisor.newMachine(machineModel)) - - assertAll( - { assertTrue(hypervisor.canFit(machineModel)) }, - { assertDoesNotThrow { hypervisor.newMachine(machineModel) } }, - ) - - machine.cancel() - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/ConservativeScalingGovernorTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/ConservativeScalingGovernorTest.kt deleted file mode 100644 index 4a930df64..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/ConservativeScalingGovernorTest.kt +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.cpufreq - -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify -import org.junit.jupiter.api.Test - -/** - * Test suite for the conservative [ScalingGovernor]. - */ -internal class ConservativeScalingGovernorTest { - @Test - fun testSetStartLimitWithoutPStates() { - val cpuCapacity = 4100.0 - val minSpeed = cpuCapacity / 2 - val defaultThreshold = 0.8 - val defaultStepSize = 0.05 * cpuCapacity - val governor = ScalingGovernors.conservative(defaultThreshold) - - val policy = mockk(relaxUnitFun = true) - every { policy.max } returns cpuCapacity - every { policy.min } returns minSpeed - - var target = 0.0 - every { policy.target } answers { target } - every { policy.target = any() } propertyType Double::class answers { target = value } - - val logic = governor.newGovernor(policy) - logic.onStart() - logic.onLimit(0.5) - - // Upwards scaling - logic.onLimit(defaultThreshold + 0.2) - - // Downwards scaling - logic.onLimit(defaultThreshold + 0.1) - - verify(exactly = 2) { policy.target = minSpeed } - verify(exactly = 1) { policy.target = minSpeed + defaultStepSize } - } - - @Test - fun testSetStartLimitWithPStatesAndParams() { - val firstPState = 1000.0 - val cpuCapacity = 4100.0 - val minSpeed = firstPState - val threshold = 0.5 - val stepSize = 0.02 * cpuCapacity - val governor = ScalingGovernors.conservative(threshold, stepSize) - - val policy = mockk(relaxUnitFun = true) - every { policy.max } returns cpuCapacity - every { policy.min } returns firstPState - - var target = 0.0 - every { policy.target } answers { target } - every { policy.target = any() } propertyType Double::class answers { target = value } - - val logic = governor.newGovernor(policy) - logic.onStart() - logic.onLimit(0.5) - - // Upwards scaling - logic.onLimit(threshold + 0.2) - - // Downwards scaling - logic.onLimit(threshold + 0.1) - - verify(exactly = 2) { policy.target = minSpeed } - verify(exactly = 1) { policy.target = minSpeed + stepSize } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/OnDemandScalingGovernorTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/OnDemandScalingGovernorTest.kt deleted file mode 100644 index d6a7090bd..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/OnDemandScalingGovernorTest.kt +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.cpufreq - -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify -import org.junit.jupiter.api.Test - -/** - * Test suite for the on-demand [ScalingGovernor]. - */ -internal class OnDemandScalingGovernorTest { - @Test - fun testSetStartLimitWithoutPStates() { - val cpuCapacity = 4100.0 - val minSpeed = cpuCapacity / 2 - val defaultThreshold = 0.8 - val governor = ScalingGovernors.ondemand(defaultThreshold) - - val policy = mockk(relaxUnitFun = true) - every { policy.min } returns minSpeed - every { policy.max } returns cpuCapacity - - val logic = governor.newGovernor(policy) - logic.onStart() - verify(exactly = 1) { policy.target = minSpeed } - - logic.onLimit(0.5) - verify(exactly = 1) { policy.target = minSpeed + 0.5 * (cpuCapacity - minSpeed) / 100 } - - logic.onLimit(defaultThreshold) - verify(exactly = 1) { policy.target = cpuCapacity } - } - - @Test - fun testSetStartLimitWithPStatesAndParams() { - val firstPState = 1000.0 - val cpuCapacity = 4100.0 - val threshold = 0.5 - val governor = ScalingGovernors.ondemand(threshold) - - val policy = mockk(relaxUnitFun = true) - every { policy.max } returns cpuCapacity - every { policy.min } returns firstPState - - val logic = governor.newGovernor(policy) - - logic.onStart() - verify(exactly = 1) { policy.target = firstPState } - - logic.onLimit(0.1) - verify(exactly = 1) { policy.target = firstPState + 0.1 * (cpuCapacity - firstPState) / 100 } - - logic.onLimit(threshold) - verify(exactly = 1) { policy.target = cpuCapacity } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/PowerSaveScalingGovernorTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/PowerSaveScalingGovernorTest.kt deleted file mode 100644 index 4cee81999..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/kernel/cpufreq/PowerSaveScalingGovernorTest.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.kernel.cpufreq - -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify -import org.junit.jupiter.api.Test - -/** - * Test suite for the [PowerSaveScalingGovernor] - */ -internal class PowerSaveScalingGovernorTest { - @Test - fun testSetStartLimitWithoutPStates() { - val cpuCapacity = 4100.0 - val minSpeed = cpuCapacity / 2 - val policy = mockk(relaxUnitFun = true) - val logic = ScalingGovernors.powerSave().newGovernor(policy) - - every { policy.max } returns cpuCapacity - every { policy.min } returns minSpeed - - logic.onStart() - - logic.onLimit(0.0) - verify(exactly = 1) { policy.target = minSpeed } - - logic.onLimit(1.0) - verify(exactly = 1) { policy.target = minSpeed } - } - - @Test - fun testSetStartLimitWithPStates() { - val cpuCapacity = 4100.0 - val firstPState = 1000.0 - val policy = mockk(relaxUnitFun = true) - val logic = ScalingGovernors.powerSave().newGovernor(policy) - - every { policy.max } returns cpuCapacity - every { policy.min } returns firstPState - - logic.onStart() - verify(exactly = 1) { policy.target = firstPState } - - logic.onLimit(0.0) - verify(exactly = 1) { policy.target = firstPState } - - logic.onLimit(1.0) - verify(exactly = 1) { policy.target = firstPState } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt deleted file mode 100644 index e3bea821a..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/power/PowerModelTest.kt +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.power - -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.junit.jupiter.params.ParameterizedTest -import org.junit.jupiter.params.provider.Arguments -import org.junit.jupiter.params.provider.MethodSource -import java.util.stream.Stream -import kotlin.math.pow - -internal class PowerModelTest { - private val epsilon = 10.0.pow(-3) - private val cpuUtil = 0.9 - - @ParameterizedTest - @MethodSource("machinePowerModelArgs") - fun `compute power consumption given CPU loads`( - powerModel: CpuPowerModel, - expectedPowerConsumption: Double, - ) { - val computedPowerConsumption = powerModel.computePower(cpuUtil) - assertEquals(expectedPowerConsumption, computedPowerConsumption, epsilon) - } - - @ParameterizedTest - @MethodSource("machinePowerModelArgs") - fun `ignore idle power when computing power consumptions`( - powerModel: CpuPowerModel, - expectedPowerConsumption: Double, - ) { - val zeroPowerModel = CpuPowerModels.zeroIdle(powerModel) - - assertAll( - { assertEquals(expectedPowerConsumption, zeroPowerModel.computePower(cpuUtil), epsilon) }, - { assertEquals(0.0, zeroPowerModel.computePower(0.0)) }, - ) - } - - @Test - fun `compute power draw by the SPEC benchmark model`() { - val powerModel = - CpuPowerModels.interpolate( - 58.4, 98.0, 109.0, 118.0, 128.0, 140.0, 153.0, 170.0, 189.0, 205.0, 222.0, - ) - - assertAll( - { assertEquals(58.4, powerModel.computePower(0.0)) }, - { assertEquals(58.4 + (98 - 58.4) / 5, powerModel.computePower(0.02)) }, - { assertEquals(98.0, powerModel.computePower(0.1)) }, - { assertEquals(140.0, powerModel.computePower(0.5)) }, - { assertEquals(189.0, powerModel.computePower(0.8)) }, - { assertEquals(189.0 + 0.7 * 10 * (205 - 189) / 10, powerModel.computePower(0.87)) }, - { assertEquals(205.0, powerModel.computePower(0.9)) }, - { assertEquals(222.0, powerModel.computePower(1.0)) }, - ) - } - - @Test - fun `test linear model`() { - val powerModel = CpuPowerModels.linear(400.0, 200.0) - - assertAll( - { assertEquals(200.0, powerModel.computePower(-0.1)) }, - { assertEquals(200.0, powerModel.computePower(0.0)) }, - { assertEquals(220.0, powerModel.computePower(0.1)) }, - { assertEquals(240.0, powerModel.computePower(0.2)) }, - { assertEquals(260.0, powerModel.computePower(0.3)) }, - { assertEquals(280.0, powerModel.computePower(0.4)) }, - { assertEquals(300.0, powerModel.computePower(0.5)) }, - { assertEquals(320.0, powerModel.computePower(0.6)) }, - { assertEquals(340.0, powerModel.computePower(0.7)) }, - { assertEquals(360.0, powerModel.computePower(0.8)) }, - { assertEquals(380.0, powerModel.computePower(0.9)) }, - { assertEquals(400.0, powerModel.computePower(1.0)) }, - { assertEquals(400.0, powerModel.computePower(1.1)) }, - ) - } - - @Test - fun `test sqrt model`() { - val powerModel = CpuPowerModels.sqrt(400.0, 200.0) - - assertAll( - { assertEquals(200.0, powerModel.computePower(-1.0), 1.0) }, - { assertEquals(200.0, powerModel.computePower(0.0), 1.0) }, - { assertEquals(263.0, powerModel.computePower(0.1), 1.0) }, - { assertEquals(289.0, powerModel.computePower(0.2), 1.0) }, - { assertEquals(309.0, powerModel.computePower(0.3), 1.0) }, - { assertEquals(326.0, powerModel.computePower(0.4), 1.0) }, - { assertEquals(341.0, powerModel.computePower(0.5), 1.0) }, - { assertEquals(354.0, powerModel.computePower(0.6), 1.0) }, - { assertEquals(367.0, powerModel.computePower(0.7), 1.0) }, - { assertEquals(378.0, powerModel.computePower(0.8), 1.0) }, - { assertEquals(389.0, powerModel.computePower(0.9), 1.0) }, - { assertEquals(400.0, powerModel.computePower(1.0), 1.0) }, - { assertEquals(400.0, powerModel.computePower(1.1), 1.0) }, - ) - } - - @Test - fun `test square model`() { - val powerModel = CpuPowerModels.square(400.0, 200.0) - - assertAll( - { assertEquals(200.0, powerModel.computePower(-1.0), 1.0) }, - { assertEquals(200.0, powerModel.computePower(0.0), 1.0) }, - { assertEquals(202.0, powerModel.computePower(0.1), 1.0) }, - { assertEquals(208.0, powerModel.computePower(0.2), 1.0) }, - { assertEquals(218.0, powerModel.computePower(0.3), 1.0) }, - { assertEquals(232.0, powerModel.computePower(0.4), 1.0) }, - { assertEquals(250.0, powerModel.computePower(0.5), 1.0) }, - { assertEquals(272.0, powerModel.computePower(0.6), 1.0) }, - { assertEquals(298.0, powerModel.computePower(0.7), 1.0) }, - { assertEquals(328.0, powerModel.computePower(0.8), 1.0) }, - { assertEquals(362.0, powerModel.computePower(0.9), 1.0) }, - { assertEquals(400.0, powerModel.computePower(1.0), 1.0) }, - { assertEquals(400.0, powerModel.computePower(1.1), 1.0) }, - ) - } - - @Test - fun `test cubic model`() { - val powerModel = CpuPowerModels.cubic(400.0, 200.0) - - assertAll( - { assertEquals(200.0, powerModel.computePower(-1.0), 1.0) }, - { assertEquals(200.0, powerModel.computePower(0.0), 1.0) }, - { assertEquals(200.0, powerModel.computePower(0.1), 1.0) }, - { assertEquals(201.0, powerModel.computePower(0.2), 1.0) }, - { assertEquals(205.0, powerModel.computePower(0.3), 1.0) }, - { assertEquals(212.0, powerModel.computePower(0.4), 1.0) }, - { assertEquals(225.0, powerModel.computePower(0.5), 1.0) }, - { assertEquals(243.0, powerModel.computePower(0.6), 1.0) }, - { assertEquals(268.0, powerModel.computePower(0.7), 1.0) }, - { assertEquals(302.0, powerModel.computePower(0.8), 1.0) }, - { assertEquals(345.0, powerModel.computePower(0.9), 1.0) }, - { assertEquals(400.0, powerModel.computePower(1.0), 1.0) }, - { assertEquals(400.0, powerModel.computePower(1.1), 1.0) }, - ) - } - - @Suppress("unused") - private companion object { - @JvmStatic - fun machinePowerModelArgs(): Stream = - Stream.of( - Arguments.of(CpuPowerModels.constant(0.0), 0.0), - Arguments.of(CpuPowerModels.linear(350.0, 200.0), 335.0), - Arguments.of(CpuPowerModels.square(350.0, 200.0), 321.5), - Arguments.of(CpuPowerModels.cubic(350.0, 200.0), 309.35), - Arguments.of(CpuPowerModels.sqrt(350.0, 200.0), 342.302), - Arguments.of(CpuPowerModels.mse(350.0, 200.0, 1.4), 340.571), - Arguments.of(CpuPowerModels.asymptotic(350.0, 200.0, 0.3, false), 338.765), - Arguments.of(CpuPowerModels.asymptotic(350.0, 200.0, 0.3, true), 323.072), - ) - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimChainWorkloadTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimChainWorkloadTest.kt deleted file mode 100644 index 582635fc9..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimChainWorkloadTest.kt +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.workload - -import io.mockk.every -import io.mockk.mockk -import io.mockk.spyk -import kotlinx.coroutines.delay -import kotlinx.coroutines.launch -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.SimMachineContext -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.runWorkload -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [SimChainWorkload] class. - */ -class SimChainWorkloadTest { - private lateinit var machineModel: MachineModel - - @BeforeEach - fun setUp() { - machineModel = - MachineModel( - Cpu( - 0, - 2, - 1000.0, - "Intel", - "Xeon", - "amd64", - ), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - } - - @Test - fun testMultipleWorkloads() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = - SimWorkloads.chain( - SimWorkloads.runtime(1000, 1.0, 0L, 0L), - SimWorkloads.runtime(1000, 1.0, 0L, 0L), - ) - - machine.runWorkload(workload) - - assertEquals(2000, timeSource.millis()) - } - - @Test - fun testStartFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workloadA = mockk() - every { workloadA.onStart(any()) } throws IllegalStateException("Staged") - every { workloadA.onStop(any()) } returns Unit - - val workload = - SimWorkloads.chain( - workloadA, - SimWorkloads.runtime(1000, 1.0, 0L, 0L), - ) - - assertThrows { machine.runWorkload(workload) } - - assertEquals(0, timeSource.millis()) - } - -// @Test - fun testStartFailureSecond() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workloadA = mockk() - every { workloadA.onStart(any()) } throws IllegalStateException("Staged") - every { workloadA.onStop(any()) } returns Unit - - val workload = - SimWorkloads.chain( - SimWorkloads.runtime(1000, 1.0), - workloadA, - SimWorkloads.runtime(1000, 1.0), - ) - - assertThrows { machine.runWorkload(workload) } - - assertEquals(1000, timeSource.millis()) - } - - @Test - fun testStopFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workloadA = spyk(SimRuntimeWorkload(1000, 1.0)) - every { workloadA.onStop(any()) } throws IllegalStateException("Staged") - - val workload = - SimWorkloads.chain( - workloadA, - SimWorkloads.runtime(1000, 1.0), - ) - - assertThrows { machine.runWorkload(workload) } - - assertEquals(1000, timeSource.millis()) - } - - @Test - fun testStopFailureSecond() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workloadA = spyk(SimRuntimeWorkload(1000, 1.0)) - every { workloadA.onStop(any()) } throws IllegalStateException("Staged") - - val workload = - SimWorkloads.chain( - SimWorkloads.runtime(1000, 1.0), - workloadA, - SimWorkloads.runtime(1000, 1.0), - ) - - assertThrows { machine.runWorkload(workload) } - - assertEquals(2000, timeSource.millis()) - } - -// @Test - fun testStartAndStopFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workloadA = mockk() - every { workloadA.onStart(any()) } throws IllegalStateException() - every { workloadA.onStop(any()) } throws IllegalStateException() - - val workload = - SimWorkloads.chain( - SimRuntimeWorkload(1000, 1.0), - workloadA, - ) - - val exc = assertThrows { machine.runWorkload(workload) } - - assertEquals(2, exc.cause!!.suppressedExceptions.size) - assertEquals(1000, timeSource.millis()) - } - -// @Test - fun testShutdownAndStopFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workloadA = mockk() - every { workloadA.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown(IllegalStateException()) } - every { workloadA.onStop(any()) } throws IllegalStateException() - - val workload = - SimWorkloads.chain( - SimRuntimeWorkload(1000, 1.0), - workloadA, - ) - - val exc = assertThrows { machine.runWorkload(workload) } - - assertEquals(1, exc.cause!!.suppressedExceptions.size) - assertEquals(1000, timeSource.millis()) - } - -// @Test - fun testShutdownAndStartFailure() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workloadA = mockk(relaxUnitFun = true) - every { workloadA.onStart(any()) } answers { (it.invocation.args[0] as SimMachineContext).shutdown(IllegalStateException()) } - - val workloadB = mockk(relaxUnitFun = true) - every { workloadB.onStart(any()) } throws IllegalStateException() - - val workload = - SimWorkloads.chain( - SimRuntimeWorkload(1000, 1.0), - workloadA, - workloadB, - ) - - val exc = assertThrows { machine.runWorkload(workload) } - assertEquals(1, exc.cause!!.suppressedExceptions.size) - assertEquals(1000, timeSource.millis()) - } - - @Test - fun testSnapshot() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = SimBareMetalMachine.create(graph, machineModel) - val workload = - SimWorkloads.chain( - SimWorkloads.runtime(1000, 1.0), - SimWorkloads.runtime(1000, 1.0), - ) - - val job = launch { machine.runWorkload(workload) } - delay(500L) - - workload.makeSnapshot(500L) - val snapshot = workload.getSnapshot() - - job.join() - - assertEquals(2000, timeSource.millis()) - - machine.runWorkload(snapshot) - - assertEquals(4000, timeSource.millis()) - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimFlopsWorkloadTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimFlopsWorkloadTest.kt deleted file mode 100644 index edbc05718..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimFlopsWorkloadTest.kt +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (c) 2020 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.workload - -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows - -/** - * Test suite for [SimFlopsWorkload] class. - */ -class SimFlopsWorkloadTest { - @Test - fun testFlopsNonNegative() { - assertThrows("FLOPs must be non-negative") { - SimFlopsWorkload(-1, 1.0) - } - } - - @Test - fun testUtilizationNonZero() { - assertThrows("Utilization cannot be zero") { - SimFlopsWorkload(1, 0.0) - } - } - - @Test - fun testUtilizationPositive() { - assertThrows("Utilization cannot be negative") { - SimFlopsWorkload(1, -1.0) - } - } - - @Test - fun testUtilizationNotLargerThanOne() { - assertThrows("Utilization cannot be larger than one") { - SimFlopsWorkload(1, 2.0) - } - } -} diff --git a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimTraceWorkloadTest.kt b/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimTraceWorkloadTest.kt deleted file mode 100644 index a53f6c656..000000000 --- a/opendc-simulator/opendc-simulator-compute/src/test/kotlin/org/opendc/simulator/compute/workload/SimTraceWorkloadTest.kt +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.compute.workload - -import kotlinx.coroutines.delay -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test -import org.opendc.simulator.compute.SimBareMetalMachine -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.runWorkload -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [SimTraceWorkloadTest] class. - */ -class SimTraceWorkloadTest { - private lateinit var machineModel: MachineModel - - @BeforeEach - fun setUp() { - machineModel = - MachineModel( - Cpu( - 0, - 2, - 1000.0, - "Intel", - "Xeon", - "amd64", - ), - // memory - MemoryUnit("Crucial", "MTA18ASF4G72AZ-3G2B1", 3200.0, 32_000 * 4), - ) - } - - @Test - fun testSmoke() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = - SimTrace.ofFragments( - SimTraceFragment(0, 1000, 2 * 28.0, 2), - SimTraceFragment(1000, 1000, 2 * 3100.0, 2), - SimTraceFragment(2000, 1000, 0.0, 2), - SimTraceFragment(3000, 1000, 2 * 73.0, 2), - ).createWorkload(0) - - machine.runWorkload(workload) - - assertEquals(4000, timeSource.millis()) - } - -// @Test // fixme: Fix delayed start and enable test - fun testOffset() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = - SimTrace.ofFragments( - SimTraceFragment(0, 1000, 2 * 28.0, 2), - SimTraceFragment(1000, 1000, 2 * 3100.0, 2), - SimTraceFragment(2000, 1000, 0.0, 2), - SimTraceFragment(3000, 1000, 2 * 73.0, 2), - ).createWorkload(1000) - - machine.runWorkload(workload) - - assertEquals(5000, timeSource.millis()) // fixme: should be 5000 but this is 4000 for now to make all tests succeed - } - - @Test - fun testSkipFragment() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = - SimTrace.ofFragments( - SimTraceFragment(0, 1000, 2 * 28.0, 2), - SimTraceFragment(1000, 1000, 2 * 3100.0, 2), - SimTraceFragment(2000, 1000, 0.0, 2), - SimTraceFragment(3000, 1000, 2 * 73.0, 2), - ).createWorkload(0) - - delay(1000L) - machine.runWorkload(workload) - - assertEquals(4000, timeSource.millis()) - } - - @Test - fun testZeroCores() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val machine = - SimBareMetalMachine.create( - graph, - machineModel, - ) - - val workload = - SimTrace.ofFragments( - SimTraceFragment(0, 1000, 2 * 28.0, 2), - SimTraceFragment(1000, 1000, 2 * 3100.0, 2), - SimTraceFragment(2000, 1000, 0.0, 0), - SimTraceFragment(3000, 1000, 2 * 73.0, 2), - ).createWorkload(0) - - machine.runWorkload(workload) - - assertEquals(4000, timeSource.millis()) - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/jmh/kotlin/org/opendc/simulator/flow2/FlowBenchmarks.kt b/opendc-simulator/opendc-simulator-flow/src/jmh/kotlin/org/opendc/simulator/flow2/FlowBenchmarks.kt index 6bf9c2a21..0ab051a4f 100644 --- a/opendc-simulator/opendc-simulator-flow/src/jmh/kotlin/org/opendc/simulator/flow2/FlowBenchmarks.kt +++ b/opendc-simulator/opendc-simulator-flow/src/jmh/kotlin/org/opendc/simulator/flow2/FlowBenchmarks.kt @@ -93,8 +93,8 @@ class FlowBenchmarks { val sinkA = SimpleFlowSink(graph, 3000.0f) val sinkB = SimpleFlowSink(graph, 3000.0f) - graph.connect(switch.newOutput(), sinkA.input) - graph.connect(switch.newOutput(), sinkB.input) + graph.connect(switch.newOutPort(), sinkA.input) + graph.connect(switch.newOutPort(), sinkB.input) val source = TraceFlowSource(graph, trace) graph.connect(source.output, switch.newInput()) @@ -111,8 +111,8 @@ class FlowBenchmarks { val sinkA = SimpleFlowSink(graph, 3000.0f) val sinkB = SimpleFlowSink(graph, 3000.0f) - graph.connect(switch.newOutput(), sinkA.input) - graph.connect(switch.newOutput(), sinkB.input) + graph.connect(switch.newOutPort(), sinkA.input) + graph.connect(switch.newOutPort(), sinkB.input) repeat(3) { launch { diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/Multiplexer.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/Multiplexer.java new file mode 100644 index 000000000..0af2499a2 --- /dev/null +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/Multiplexer.java @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator; + +import java.util.ArrayList; +import java.util.Arrays; +import org.opendc.simulator.engine.FlowConsumer; +import org.opendc.simulator.engine.FlowEdge; +import org.opendc.simulator.engine.FlowGraph; +import org.opendc.simulator.engine.FlowNode; +import org.opendc.simulator.engine.FlowSupplier; + +public class Multiplexer extends FlowNode implements FlowSupplier, FlowConsumer { + private ArrayList consumerEdges = new ArrayList<>(); + private FlowEdge supplierEdge; + + private ArrayList demands = new ArrayList<>(); // What is demanded by the consumers + private ArrayList supplies = new ArrayList<>(); // What is supplied to the consumers + + private float totalDemand; // The total demand of all the consumers + private float totalSupply; // The total supply from the supplier + private float capacity; // What is the max capacity + + public Multiplexer(FlowGraph graph) { + super(graph); + } + + public float getTotalDemand() { + return totalDemand; + } + + public float getTotalSupply() { + return totalSupply; + } + + public float getCapacity() { + return capacity; + } + + public long onUpdate(long now) { + + if (this.totalDemand > this.capacity) { + redistributeSupply(this.consumerEdges, this.supplies, this.capacity); + } else { + for (int i = 0; i < this.demands.size(); i++) { + this.supplies.set(i, this.demands.get(i)); + } + } + + float totalSupply = 0; + for (int i = 0; i < this.consumerEdges.size(); i++) { + this.pushSupply(this.consumerEdges.get(i), this.supplies.get(i)); + totalSupply += this.supplies.get(i); + } + + // Only update supplier if supply has changed + if (this.totalSupply != totalSupply) { + this.totalSupply = totalSupply; + + pushDemand(this.supplierEdge, this.totalSupply); + } + + return Long.MAX_VALUE; + } + + private static float redistributeSupply( + ArrayList consumerEdges, ArrayList supplies, float capacity) { + final long[] consumers = new long[consumerEdges.size()]; + + for (int i = 0; i < consumers.length; i++) { + FlowEdge consumer = consumerEdges.get(i); + + if (consumer == null) { + break; + } + + consumers[i] = ((long) Float.floatToRawIntBits(consumer.getDemand()) << 32) | (i & 0xFFFFFFFFL); + } + Arrays.sort(consumers); + + float availableCapacity = capacity; + int inputSize = consumers.length; + + for (int i = 0; i < inputSize; i++) { + long v = consumers[i]; + int slot = (int) v; + float d = Float.intBitsToFloat((int) (v >> 32)); + + if (d == 0.0) { + continue; + } + + float availableShare = availableCapacity / (inputSize - i); + float r = Math.min(d, availableShare); + + supplies.set(slot, r); // Update the rates + availableCapacity -= r; + } + + // Return the used capacity + return capacity - availableCapacity; + } + + /** + * Add a new consumer. + * Set its demand and supply to 0.0 + */ + @Override + public void addConsumerEdge(FlowEdge consumerEdge) { + this.consumerEdges.add(consumerEdge); + this.demands.add(0f); + this.supplies.add(0f); + } + + @Override + public void addSupplierEdge(FlowEdge supplierEdge) { + this.supplierEdge = supplierEdge; + this.capacity = supplierEdge.getCapacity(); + this.totalSupply = 0; + } + + @Override + public void removeConsumerEdge(FlowEdge consumerEdge) { + int idx = this.consumerEdges.indexOf(consumerEdge); + + if (idx == -1) { + return; + } + + this.totalDemand -= consumerEdge.getDemand(); + + this.consumerEdges.remove(idx); + this.demands.remove(idx); + this.supplies.remove(idx); + + this.invalidate(); + } + + @Override + public void removeSupplierEdge(FlowEdge supplierEdge) { + this.supplierEdge = null; + this.capacity = 0; + this.totalSupply = 0; + } + + @Override + public void handleDemand(FlowEdge consumerEdge, float newDemand) { + int idx = consumerEdges.indexOf(consumerEdge); + + if (idx == -1) { + System.out.println("Error (Multiplexer): Demand pushed by an unknown consumer"); + return; + } + + float prevDemand = demands.get(idx); + demands.set(idx, newDemand); + + this.totalDemand += (newDemand - prevDemand); + } + + @Override + public void handleSupply(FlowEdge supplierEdge, float newSupply) { + if (newSupply == this.totalSupply) { + return; + } + + this.totalSupply = newSupply; + } + + @Override + public void pushDemand(FlowEdge supplierEdge, float newDemand) { + this.supplierEdge.pushDemand(newDemand); + } + + @Override + public void pushSupply(FlowEdge consumerEdge, float newSupply) { + int idx = consumerEdges.indexOf(consumerEdge); + + if (idx == -1) { + System.out.println("Error (Multiplexer): pushing supply to an unknown consumer"); + } + + if (newSupply == supplies.get(idx)) { + return; + } + + supplies.set(idx, newSupply); + consumerEdge.pushSupply(newSupply); + } +} diff --git a/opendc-simulator/opendc-simulator-network/build.gradle.kts b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowConsumer.java similarity index 76% rename from opendc-simulator/opendc-simulator-network/build.gradle.kts rename to opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowConsumer.java index a7f309c07..7ba5dea73 100644 --- a/opendc-simulator/opendc-simulator-network/build.gradle.kts +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowConsumer.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 AtLarge Research + * Copyright (c) 2024 AtLarge Research * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,15 +20,15 @@ * SOFTWARE. */ -description = "Library for simulating datacenter network components" +package org.opendc.simulator.engine; -plugins { - `kotlin-library-conventions` -} +public interface FlowConsumer { + + void handleSupply(FlowEdge supplierEdge, float newSupply); + + void pushDemand(FlowEdge supplierEdge, float newDemand); -dependencies { - api(projects.opendcSimulator.opendcSimulatorFlow) - implementation(projects.opendcSimulator.opendcSimulatorCore) + void addSupplierEdge(FlowEdge supplierEdge); - testImplementation(libs.slf4j.simple) + void removeSupplierEdge(FlowEdge supplierEdge); } diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowEdge.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowEdge.java new file mode 100644 index 000000000..0edc9e680 --- /dev/null +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowEdge.java @@ -0,0 +1,114 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.engine; + +/** + * An edge that connects two FlowStages. + * A connection between FlowStages always consist of a FlowStage that demands + * something, and a FlowStage that Delivers something + * For instance, this could be the connection between a workload, and its machine + */ +public class FlowEdge { + private FlowConsumer consumer; + private FlowSupplier supplier; + + private float demand = 0.0f; + private float supply = 0.0f; + + private float capacity; + + public FlowEdge(FlowConsumer consumer, FlowSupplier supplier) { + if (!(consumer instanceof FlowNode)) { + throw new IllegalArgumentException("Flow consumer is not a FlowNode"); + } + if (!(supplier instanceof FlowNode)) { + throw new IllegalArgumentException("Flow consumer is not a FlowNode"); + } + + this.consumer = consumer; + this.supplier = supplier; + + this.capacity = supplier.getCapacity(); + + this.consumer.addSupplierEdge(this); + this.supplier.addConsumerEdge(this); + } + + public void close() { + if (this.consumer != null) { + this.consumer.removeSupplierEdge(this); + this.consumer = null; + } + + if (this.supplier != null) { + this.supplier.removeConsumerEdge(this); + this.supplier = null; + } + } + + public FlowConsumer getConsumer() { + return consumer; + } + + public FlowSupplier getSupplier() { + return supplier; + } + + public float getCapacity() { + return capacity; + } + + public float getDemand() { + return this.demand; + } + + public float getSupply() { + return this.supply; + } + + /** + * Push new demand from the Consumer to the Supplier + */ + public void pushDemand(float newDemand) { + if (newDemand == this.demand) { + return; + } + + this.demand = newDemand; + this.supplier.handleDemand(this, newDemand); + ((FlowNode) this.supplier).invalidate(); + } + + /** + * Push new supply from the Supplier to the Consumer + */ + public void pushSupply(float newSupply) { + if (newSupply == this.supply) { + return; + } + + this.supply = newSupply; + this.consumer.handleSupply(this, newSupply); + ((FlowNode) this.consumer).invalidate(); + } +} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowEngine.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowEngine.java similarity index 69% rename from opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowEngine.java rename to opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowEngine.java index c0f52505e..10af7c510 100644 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowEngine.java +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowEngine.java @@ -20,12 +20,10 @@ * SOFTWARE. */ -package org.opendc.simulator.flow2; +package org.opendc.simulator.engine; import java.time.Clock; import java.time.InstantSource; -import java.util.ArrayList; -import java.util.List; import kotlin.coroutines.CoroutineContext; import org.opendc.common.Dispatcher; @@ -37,12 +35,12 @@ */ public final class FlowEngine implements Runnable { /** - * The queue of {@link FlowStage} updates that are scheduled for immediate execution. + * The queue of {@link FlowNode} updates that are scheduled for immediate execution. */ - private final FlowStageQueue queue = new FlowStageQueue(256); + private final FlowNodeQueue queue = new FlowNodeQueue(256); /** - * A priority queue containing the {@link FlowStage} updates to be scheduled in the future. + * A priority queue containing the {@link FlowNode} updates to be scheduled in the future. */ private final FlowTimerQueue timerQueue = new FlowTimerQueue(256); @@ -82,16 +80,16 @@ public InstantSource getClock() { * Return a new {@link FlowGraph} that can be used to build a flow network. */ public FlowGraph newGraph() { - return new RootGraph(this); + return new FlowGraph(this); } /** - * Enqueue the specified {@link FlowStage} to be updated immediately during the active engine cycle. + * Enqueue the specified {@link FlowNode} to be updated immediately during the active engine cycle. *

* This method should be used when the state of a flow context is invalidated/interrupted and needs to be * re-computed. */ - void scheduleImmediate(long now, FlowStage ctx) { + void scheduleImmediate(long now, FlowNode ctx) { scheduleImmediateInContext(ctx); // In-case the engine is already running in the call-stack, return immediately. The changes will be picked @@ -104,21 +102,21 @@ void scheduleImmediate(long now, FlowStage ctx) { } /** - * Enqueue the specified {@link FlowStage} to be updated immediately during the active engine cycle. + * Enqueue the specified {@link FlowNode} to be updated immediately during the active engine cycle. *

* This method should be used when the state of a flow context is invalidated/interrupted and needs to be * re-computed. *

* This method should only be invoked while inside an engine cycle. */ - void scheduleImmediateInContext(FlowStage ctx) { + void scheduleImmediateInContext(FlowNode ctx) { queue.add(ctx); } /** - * Enqueue the specified {@link FlowStage} to be updated at its updated deadline. + * Enqueue the specified {@link FlowNode} to be updated at its updated deadline. */ - void scheduleDelayed(FlowStage ctx) { + void scheduleDelayed(FlowNode ctx) { scheduleDelayedInContext(ctx); // In-case the engine is already running in the call-stack, return immediately. The changes will be picked @@ -134,11 +132,11 @@ void scheduleDelayed(FlowStage ctx) { } /** - * Enqueue the specified {@link FlowStage} to be updated at its updated deadline. + * Enqueue the specified {@link FlowNode} to be updated at its updated deadline. *

* This method should only be invoked while inside an engine cycle. */ - void scheduleDelayedInContext(FlowStage ctx) { + void scheduleDelayedInContext(FlowNode ctx) { FlowTimerQueue timerQueue = this.timerQueue; timerQueue.enqueue(ctx); } @@ -147,7 +145,7 @@ void scheduleDelayedInContext(FlowStage ctx) { * Run all the enqueued actions for the specified timestamp (now). */ private void doRunEngine(long now) { - final FlowStageQueue queue = this.queue; + final FlowNodeQueue queue = this.queue; final FlowTimerQueue timerQueue = this.timerQueue; try { @@ -156,22 +154,22 @@ private void doRunEngine(long now) { // Execute all scheduled updates at current timestamp while (true) { - final FlowStage ctx = timerQueue.poll(now); + final FlowNode ctx = timerQueue.poll(now); if (ctx == null) { break; } - ctx.onUpdate(now); + ctx.update(now); } // Execute all immediate updates while (true) { - final FlowStage ctx = queue.poll(); + final FlowNode ctx = queue.poll(); if (ctx == null) { break; } - ctx.onUpdate(now); + ctx.update(now); } } finally { active = false; @@ -203,54 +201,4 @@ private void trySchedule(InvocationStack scheduled, long now, long target) { dispatcher.schedule(target - now, this); } } - - /** - * Internal implementation of a root {@link FlowGraph}. - */ - private static final class RootGraph implements FlowGraphInternal { - private final FlowEngine engine; - private final List stages = new ArrayList<>(); - - public RootGraph(FlowEngine engine) { - this.engine = engine; - } - - @Override - public FlowEngine getEngine() { - return engine; - } - - @Override - public FlowStage newStage(FlowStageLogic logic) { - final FlowEngine engine = this.engine; - final FlowStage stage = new FlowStage(this, logic); - stages.add(stage); - long now = engine.getClock().millis(); - stage.invalidate(now); - return stage; - } - - @Override - public void connect(Outlet outlet, Inlet inlet) { - FlowGraphInternal.connect(this, outlet, inlet); - } - - @Override - public void disconnect(Outlet outlet) { - FlowGraphInternal.disconnect(this, outlet); - } - - @Override - public void disconnect(Inlet inlet) { - FlowGraphInternal.disconnect(this, inlet); - } - - /** - * Internal method to remove the specified {@link FlowStage} from the graph. - */ - @Override - public void detach(FlowStage stage) { - stages.remove(stage); - } - } } diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowGraph.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowGraph.java new file mode 100644 index 000000000..d82b542bd --- /dev/null +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowGraph.java @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2024 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.engine; + +import java.util.ArrayList; +import java.util.HashMap; + +public class FlowGraph { + private final FlowEngine engine; + private final ArrayList nodes = new ArrayList<>(); + private final ArrayList edges = new ArrayList<>(); + private final HashMap> nodeToEdge = new HashMap<>(); + + public FlowGraph(FlowEngine engine) { + this.engine = engine; + } + + /** + * Return the {@link FlowEngine} driving the simulation of the graph. + */ + public FlowEngine getEngine() { + return engine; + } + + /** + * Create a new {@link FlowNode} representing a node in the flow network. + */ + public void addNode(FlowNode node) { + if (nodes.contains(node)) { + System.out.println("Node already exists"); + } + nodes.add(node); + nodeToEdge.put(node, new ArrayList<>()); + long now = this.engine.getClock().millis(); + node.invalidate(now); + } + + /** + * Internal method to remove the specified {@link FlowNode} from the graph. + */ + public void removeNode(FlowNode node) { + + // Remove all edges connected to node + final ArrayList connectedEdges = nodeToEdge.get(node); + while (connectedEdges.size() > 0) { + removeEdge(connectedEdges.get(0)); + } + + nodeToEdge.remove(node); + + // remove the node + nodes.remove(node); + } + + /** + * Add an edge between the specified consumer and supplier in this graph. + */ + public void addEdge(FlowConsumer flowConsumer, FlowSupplier flowSupplier) { + // Check if the consumer and supplier are both FlowNodes + if (!(flowConsumer instanceof FlowNode)) { + throw new IllegalArgumentException("Flow consumer is not a FlowNode"); + } + if (!(flowSupplier instanceof FlowNode)) { + throw new IllegalArgumentException("Flow consumer is not a FlowNode"); + } + + // Check of the consumer and supplier are present in this graph + if (!(this.nodes.contains((FlowNode) flowConsumer))) { + throw new IllegalArgumentException("The consumer is not a node in this graph"); + } + if (!(this.nodes.contains((FlowNode) flowSupplier))) { + throw new IllegalArgumentException("The consumer is not a node in this graph"); + } + + final FlowEdge flowEdge = new FlowEdge(flowConsumer, flowSupplier); + + edges.add(flowEdge); + + nodeToEdge.get((FlowNode) flowConsumer).add(flowEdge); + nodeToEdge.get((FlowNode) flowSupplier).add(flowEdge); + } + + public void removeEdge(FlowEdge flowEdge) { + final FlowConsumer consumer = flowEdge.getConsumer(); + final FlowSupplier supplier = flowEdge.getSupplier(); + nodeToEdge.get((FlowNode) consumer).remove(flowEdge); + nodeToEdge.get((FlowNode) supplier).remove(flowEdge); + + edges.remove(flowEdge); + flowEdge.close(); + } +} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowNode.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowNode.java new file mode 100644 index 000000000..d1faf4655 --- /dev/null +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowNode.java @@ -0,0 +1,191 @@ +/* + * Copyright (c) 2022 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package org.opendc.simulator.engine; + +import java.time.InstantSource; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * A {@link FlowNode} represents a node in a {@link FlowGraph}. + */ +public abstract class FlowNode { + private static final Logger LOGGER = LoggerFactory.getLogger(FlowNode.class); + + protected enum NodeState { + PENDING, // Stage is active, but is not running any updates + UPDATING, // Stage is active, and running an update + INVALIDATED, // Stage is deemed invalid, and should run an update + CLOSING, // Stage is being closed, final updates can still be run + CLOSED // Stage is closed and should not run any updates + } + + protected NodeState nodeState = NodeState.PENDING; + + /** + * The deadline of the stage after which an update should run. + */ + long deadline = Long.MAX_VALUE; + + /** + * The index of the timer in the {@link FlowTimerQueue}. + */ + int timerIndex = -1; + + protected InstantSource clock; + protected FlowGraph parentGraph; + protected FlowEngine engine; + + /** + * Construct a new {@link FlowNode} instance. + * + * @param parentGraph The {@link FlowGraph} this stage belongs to. + */ + public FlowNode(FlowGraph parentGraph) { + this.parentGraph = parentGraph; + this.engine = parentGraph.getEngine(); + this.clock = engine.getClock(); + + this.parentGraph.addNode(this); + } + + /** + * Return the {@link FlowGraph} to which this stage belongs. + */ + public FlowGraph getGraph() { + return parentGraph; + } + + /** + * Return the current deadline of the {@link FlowNode}'s timer (in milliseconds after epoch). + */ + public long getDeadline() { + return deadline; + } + + public void setDeadline(long deadline) { + this.deadline = deadline; + } + + public void setTimerIndex(int index) { + this.timerIndex = index; + } + /** + * Invalidate the {@link FlowNode} forcing the stage to update. + * + *

+ * This method is similar to {@link #invalidate()}, but allows the user to manually pass the current timestamp to + * prevent having to re-query the clock. This method should not be called during an update. + */ + public void invalidate(long now) { + // If there is already an update running, + // notify the update, that a next update should be run after + if (this.nodeState == NodeState.UPDATING) { + this.nodeState = NodeState.INVALIDATED; + } else { + engine.scheduleImmediate(now, this); + } + } + + /** + * Invalidate the {@link FlowNode} forcing the stage to update. + */ + public void invalidate() { + invalidate(clock.millis()); + } + + /** + * Update the state of the stage. + */ + public void update(long now) { + this.nodeState = NodeState.UPDATING; + + long newDeadline = this.deadline; + + try { + newDeadline = this.onUpdate(now); + } catch (Exception e) { + doFail(e); + } + + // Check whether the stage is marked as closing. + if (this.nodeState == NodeState.INVALIDATED) { + newDeadline = now; + } + if (this.nodeState == NodeState.CLOSING) { + closeNode(); + return; + } + + this.deadline = newDeadline; + + // Update the timer queue with the new deadline + engine.scheduleDelayedInContext(this); + + this.nodeState = NodeState.PENDING; + } + + /** + * This method is invoked when the one of the stage's InPorts or OutPorts is invalidated. + * + * @param now The virtual timestamp in milliseconds after epoch at which the update is occurring. + * @return The next deadline for the stage. + */ + public abstract long onUpdate(long now); + + /** + * This method is invoked when an uncaught exception is caught by the engine. When this happens, the + */ + void doFail(Throwable cause) { + LOGGER.warn("Uncaught exception (closing stage)", cause); + + closeNode(); + } + + /** + * This method is invoked when the {@link FlowNode} exits successfully or due to failure. + */ + public void closeNode() { + if (this.nodeState == NodeState.CLOSED) { + // LOGGER.warn("Flowstage:doClose() => Tried closing a stage that was already closed"); + return; + } + + // If this stage is running an update, notify it that is should close after. + if (this.nodeState == NodeState.UPDATING) { + // LOGGER.warn("Flowstage:doClose() => Tried closing a stage, but update was active"); + this.nodeState = NodeState.CLOSING; + return; + } + + // Mark the stage as closed + this.nodeState = NodeState.CLOSED; + + // Remove stage from parent graph + this.parentGraph.removeNode(this); + + // Remove stage from the timer queue + this.deadline = Long.MAX_VALUE; + this.engine.scheduleDelayedInContext(this); + } +} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStageQueue.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowNodeQueue.java similarity index 83% rename from opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStageQueue.java rename to opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowNodeQueue.java index 56ec77021..37b3c65b8 100644 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStageQueue.java +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowNodeQueue.java @@ -20,35 +20,35 @@ * SOFTWARE. */ -package org.opendc.simulator.flow2; +package org.opendc.simulator.engine; import java.util.ArrayDeque; import java.util.Arrays; /** - * A specialized {@link ArrayDeque} implementation that contains the {@link FlowStageLogic}s + * A specialized {@link ArrayDeque} implementation that contains the {@link FlowNode}s * that have been updated during the engine cycle and should converge. *

* By using a specialized class, we reduce the overhead caused by type-erasure. */ -final class FlowStageQueue { +final class FlowNodeQueue { /** * The array of elements in the queue. */ - private FlowStage[] elements; + private FlowNode[] elements; private int head = 0; private int tail = 0; - public FlowStageQueue(int initialCapacity) { - elements = new FlowStage[initialCapacity]; + public FlowNodeQueue(int initialCapacity) { + elements = new FlowNode[initialCapacity]; } /** * Add the specified context to the queue. */ - void add(FlowStage ctx) { - final FlowStage[] es = elements; + void add(FlowNode ctx) { + final FlowNode[] es = elements; int tail = this.tail; es[tail] = ctx; @@ -62,12 +62,12 @@ void add(FlowStage ctx) { } /** - * Remove a {@link FlowStage} from the queue or null if the queue is empty. + * Remove a {@link FlowNode} from the queue or null if the queue is empty. */ - FlowStage poll() { - final FlowStage[] es = elements; + FlowNode poll() { + final FlowNode[] es = elements; int head = this.head; - FlowStage ctx = es[head]; + FlowNode ctx = es[head]; if (ctx != null) { es[head] = null; @@ -87,7 +87,7 @@ private void doubleCapacity() { throw new IllegalStateException("Sorry, deque too big"); } - final FlowStage[] es = elements = Arrays.copyOf(elements, newCapacity); + final FlowNode[] es = elements = Arrays.copyOf(elements, newCapacity); // Exceptionally, here tail == head needs to be disambiguated if (tail < head || (tail == head && es[head] != null)) { diff --git a/opendc-faas/build.gradle.kts b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowSupplier.java similarity index 75% rename from opendc-faas/build.gradle.kts rename to opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowSupplier.java index 002582bba..87729fca8 100644 --- a/opendc-faas/build.gradle.kts +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowSupplier.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 AtLarge Research + * Copyright (c) 2024 AtLarge Research * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -20,8 +20,17 @@ * SOFTWARE. */ -description = "Function-as-a-Service (FaaS) platform for OpenDC" +package org.opendc.simulator.engine; -subprojects { - group = "org.opendc.faas" +public interface FlowSupplier { + + void handleDemand(FlowEdge consumerEdge, float newDemand); + + void pushSupply(FlowEdge consumerEdge, float newSupply); + + void addConsumerEdge(FlowEdge consumerEdge); + + void removeConsumerEdge(FlowEdge consumerEdge); + + float getCapacity(); } diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowTimerQueue.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowTimerQueue.java similarity index 73% rename from opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowTimerQueue.java rename to opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowTimerQueue.java index 4b7462026..1e348b109 100644 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowTimerQueue.java +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/FlowTimerQueue.java @@ -20,21 +20,21 @@ * SOFTWARE. */ -package org.opendc.simulator.flow2; +package org.opendc.simulator.engine; import java.util.Arrays; /** - * A specialized priority queue for timers of {@link FlowStageLogic}s. + * A specialized priority queue for timers of {@link FlowNode}s. *

* By using a specialized priority queue, we reduce the overhead caused by the default priority queue implementation * being generic. */ -final class FlowTimerQueue { +public final class FlowTimerQueue { /** - * Array representation of binary heap of {@link FlowStage} instances. + * Array representation of binary heap of {@link FlowNode} instances. */ - private FlowStage[] queue; + private FlowNode[] queue; /** * The number of elements in the priority queue. @@ -47,21 +47,21 @@ final class FlowTimerQueue { * @param initialCapacity The initial capacity of the queue. */ public FlowTimerQueue(int initialCapacity) { - this.queue = new FlowStage[initialCapacity]; + this.queue = new FlowNode[initialCapacity]; } /** * Enqueue a timer for the specified context or update the existing timer. */ - void enqueue(FlowStage ctx) { - FlowStage[] es = queue; - int k = ctx.timerIndex; + public void enqueue(FlowNode node) { + FlowNode[] es = queue; + int k = node.timerIndex; - if (ctx.deadline != Long.MAX_VALUE) { + if (node.deadline != Long.MAX_VALUE) { if (k >= 0) { - update(es, ctx, k); + update(es, node, k); } else { - add(es, ctx); + add(es, node); } } else if (k >= 0) { delete(es, k); @@ -74,14 +74,13 @@ void enqueue(FlowStage ctx) { * @param now The timestamp that the deadline of the head of the queue should not exceed. * @return The head of the queue if its deadline does not exceed now, otherwise null. */ - FlowStage poll(long now) { - int size = this.size; - if (size == 0) { + public FlowNode poll(long now) { + if (this.size == 0) { return null; } - final FlowStage[] es = queue; - final FlowStage head = es[0]; + final FlowNode[] es = queue; + final FlowNode head = es[0]; if (now < head.deadline) { return null; @@ -89,7 +88,7 @@ FlowStage poll(long now) { int n = size - 1; this.size = n; - final FlowStage next = es[n]; + final FlowNode next = es[n]; es[n] = null; // Clear the last element of the queue if (n > 0) { @@ -103,9 +102,9 @@ FlowStage poll(long now) { /** * Find the earliest deadline in the queue. */ - long peekDeadline() { - if (size > 0) { - return queue[0].deadline; + public long peekDeadline() { + if (this.size > 0) { + return this.queue[0].deadline; } return Long.MAX_VALUE; @@ -114,43 +113,41 @@ long peekDeadline() { /** * Add a new entry to the queue. */ - private void add(FlowStage[] es, FlowStage ctx) { - int i = size; - - if (i >= es.length) { + private void add(FlowNode[] es, FlowNode node) { + if (this.size >= es.length) { // Re-fetch the resized array es = grow(); } - siftUp(i, ctx, es); + siftUp(this.size, node, es); - size = i + 1; + this.size++; } /** * Update the deadline of an existing entry in the queue. */ - private void update(FlowStage[] es, FlowStage ctx, int k) { + private void update(FlowNode[] es, FlowNode node, int k) { if (k > 0) { int parent = (k - 1) >>> 1; - if (es[parent].deadline > ctx.deadline) { - siftUp(k, ctx, es); + if (es[parent].deadline > node.deadline) { + siftUp(k, node, es); return; } } - siftDown(k, ctx, es, size); + siftDown(k, node, es, this.size); } /** * Deadline an entry from the queue. */ - private void delete(FlowStage[] es, int k) { - int s = --size; + private void delete(FlowNode[] es, int k) { + int s = --this.size; if (s == k) { es[k] = null; // Element is last in the queue } else { - FlowStage moved = es[s]; + FlowNode moved = es[s]; es[s] = null; siftDown(k, moved, es, s); @@ -164,8 +161,8 @@ private void delete(FlowStage[] es, int k) { /** * Increases the capacity of the array. */ - private FlowStage[] grow() { - FlowStage[] queue = this.queue; + private FlowNode[] grow() { + FlowNode[] queue = this.queue; int oldCapacity = queue.length; int newCapacity = oldCapacity + (oldCapacity >> 1); @@ -174,10 +171,10 @@ private FlowStage[] grow() { return queue; } - private static void siftUp(int k, FlowStage key, FlowStage[] es) { + private static void siftUp(int k, FlowNode key, FlowNode[] es) { while (k > 0) { int parent = (k - 1) >>> 1; - FlowStage e = es[parent]; + FlowNode e = es[parent]; if (key.deadline >= e.deadline) break; es[k] = e; e.timerIndex = k; @@ -187,11 +184,11 @@ private static void siftUp(int k, FlowStage key, FlowStage[] es) { key.timerIndex = k; } - private static void siftDown(int k, FlowStage key, FlowStage[] es, int n) { + private static void siftDown(int k, FlowNode key, FlowNode[] es, int n) { int half = n >>> 1; // loop while a non-leaf while (k < half) { int child = (k << 1) + 1; // assume left child is least - FlowStage c = es[child]; + FlowNode c = es[child]; int right = child + 1; if (right < n && c.deadline > es[right].deadline) c = es[child = right]; diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InvocationStack.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/InvocationStack.java similarity index 85% rename from opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InvocationStack.java rename to opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/InvocationStack.java index a5b5114b4..15da2f235 100644 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InvocationStack.java +++ b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/engine/InvocationStack.java @@ -20,7 +20,7 @@ * SOFTWARE. */ -package org.opendc.simulator.flow2; +package org.opendc.simulator.engine; import java.util.Arrays; @@ -29,7 +29,7 @@ *

* By using a specialized class, we reduce the overhead caused by type-erasure. */ -final class InvocationStack { +public final class InvocationStack { /** * The array of elements in the stack. */ @@ -38,8 +38,8 @@ final class InvocationStack { private int head = -1; public InvocationStack(int initialCapacity) { - elements = new long[initialCapacity]; - Arrays.fill(elements, Long.MIN_VALUE); + this.elements = new long[initialCapacity]; + Arrays.fill(this.elements, Long.MIN_VALUE); } /** @@ -48,8 +48,8 @@ public InvocationStack(int initialCapacity) { * @param invocation The timestamp of the invocation. * @return true if the invocation was added, false otherwise. */ - boolean tryAdd(long invocation) { - final long[] es = elements; + public boolean tryAdd(long invocation) { + final long[] es = this.elements; int head = this.head; if (head < 0 || es[head] > invocation) { @@ -69,12 +69,11 @@ boolean tryAdd(long invocation) { /** * Remove the head invocation from the stack or return {@link Long#MAX_VALUE} if the stack is empty. */ - long poll() { - final long[] es = elements; + public long poll() { int head = this.head--; if (head >= 0) { - return es[head]; + return this.elements[head]; } return Long.MAX_VALUE; @@ -84,12 +83,12 @@ long poll() { * Doubles the capacity of this deque */ private void doubleCapacity() { - int oldCapacity = elements.length; + int oldCapacity = this.elements.length; int newCapacity = oldCapacity + (oldCapacity >> 1); if (newCapacity < 0) { throw new IllegalStateException("Sorry, deque too big"); } - elements = Arrays.copyOf(elements, newCapacity); + this.elements = Arrays.copyOf(this.elements, newCapacity); } } diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowGraph.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowGraph.java deleted file mode 100644 index f45be6cd5..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowGraph.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * A representation of a flow network. A flow network is a directed graph where each edge has a capacity and receives an - * amount of flow that cannot exceed the edge's capacity. - */ -public interface FlowGraph { - /** - * Return the {@link FlowEngine} driving the simulation of the graph. - */ - FlowEngine getEngine(); - - /** - * Create a new {@link FlowStage} representing a node in the flow network. - * - * @param logic The logic for handling the events of the stage. - */ - FlowStage newStage(FlowStageLogic logic); - - /** - * Add an edge between the specified outlet port and inlet port in this graph. - * - * @param outlet The outlet of the source from which the flow originates. - * @param inlet The inlet of the sink that should receive the flow. - */ - void connect(Outlet outlet, Inlet inlet); - - /** - * Disconnect the specified {@link Outlet} (if connected). - * - * @param outlet The outlet to disconnect. - */ - void disconnect(Outlet outlet); - - /** - * Disconnect the specified {@link Inlet} (if connected). - * - * @param inlet The inlet to disconnect. - */ - void disconnect(Inlet inlet); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowGraphInternal.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowGraphInternal.java deleted file mode 100644 index 0f608b60d..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowGraphInternal.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * Interface implemented by {@link FlowGraph} implementations. - */ -interface FlowGraphInternal extends FlowGraph { - /** - * Internal method to remove the specified {@link FlowStage} from the graph. - */ - void detach(FlowStage stage); - - /** - * Helper method to connect an outlet to an inlet. - */ - static void connect(FlowGraph graph, Outlet outlet, Inlet inlet) { - if (!(outlet instanceof OutPort) || !(inlet instanceof InPort)) { - throw new IllegalArgumentException("Invalid outlet or inlet passed to graph"); - } - - InPort inPort = (InPort) inlet; - OutPort outPort = (OutPort) outlet; - - if (!graph.equals(outPort.getGraph()) || !graph.equals(inPort.getGraph())) { - throw new IllegalArgumentException("Outlet or inlet does not belong to graph"); - } else if (outPort.input != null || inPort.output != null) { - throw new IllegalStateException("Inlet or outlet already connected"); - } - - outPort.input = inPort; - inPort.output = outPort; - - inPort.connect(); - outPort.connect(); - } - - /** - * Helper method to disconnect an outlet. - */ - static void disconnect(FlowGraph graph, Outlet outlet) { - if (!(outlet instanceof OutPort)) { - throw new IllegalArgumentException("Invalid outlet passed to graph"); - } - - OutPort outPort = (OutPort) outlet; - - if (!graph.equals(outPort.getGraph())) { - throw new IllegalArgumentException("Outlet or inlet does not belong to graph"); - } - - outPort.cancel(null); - outPort.complete(); - } - - /** - * Helper method to disconnect an inlet. - */ - static void disconnect(FlowGraph graph, Inlet inlet) { - if (!(inlet instanceof InPort)) { - throw new IllegalArgumentException("Invalid outlet passed to graph"); - } - - InPort inPort = (InPort) inlet; - - if (!graph.equals(inPort.getGraph())) { - throw new IllegalArgumentException("Outlet or inlet does not belong to graph"); - } - - inPort.finish(null); - inPort.cancel(null); - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStage.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStage.java deleted file mode 100644 index 25f87e045..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStage.java +++ /dev/null @@ -1,312 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -import java.time.InstantSource; -import java.util.HashMap; -import java.util.Map; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * A {@link FlowStage} represents a node in a {@link FlowGraph}. - */ -public final class FlowStage { - private static final Logger LOGGER = LoggerFactory.getLogger(FlowStage.class); - - /** - * States of the flow stage. - */ - private static final int STAGE_PENDING = 0; // Stage is pending to be started - - private static final int STAGE_ACTIVE = 1; // Stage is actively running - private static final int STAGE_CLOSED = 2; // Stage is closed - private static final int STAGE_STATE = 0b11; // Mask for accessing the state of the flow stage - - /** - * Flags of the flow connection - */ - private static final int STAGE_INVALIDATE = 1 << 2; // The stage is invalidated - - private static final int STAGE_CLOSE = 1 << 3; // The stage should be closed - private static final int STAGE_UPDATE_ACTIVE = 1 << 4; // An update for the connection is active - private static final int STAGE_UPDATE_PENDING = 1 << 5; // An (immediate) update of the connection is pending - - /** - * The flags representing the state and pending actions for the stage. - */ - private int flags = STAGE_PENDING; - - /** - * The deadline of the stage after which an update should run. - */ - long deadline = Long.MAX_VALUE; - - /** - * The index of the timer in the {@link FlowTimerQueue}. - */ - int timerIndex = -1; - - final InstantSource clock; - private final FlowStageLogic logic; - final FlowGraphInternal parentGraph; - private final FlowEngine engine; - - private final Map inlets = new HashMap<>(); - private final Map outlets = new HashMap<>(); - private int nextInlet = 0; - private int nextOutlet = 0; - - /** - * Construct a new {@link FlowStage} instance. - * - * @param parentGraph The {@link FlowGraph} this stage belongs to. - * @param logic The logic of the stage. - */ - FlowStage(FlowGraphInternal parentGraph, FlowStageLogic logic) { - this.parentGraph = parentGraph; - this.logic = logic; - this.engine = parentGraph.getEngine(); - this.clock = engine.getClock(); - } - - /** - * Return the {@link FlowGraph} to which this stage belongs. - */ - public FlowGraph getGraph() { - return parentGraph; - } - - /** - * Return the {@link Inlet} (an in-going edge) with the specified name for this {@link FlowStage}. - * If an inlet with that name does not exist, a new one is allocated for the stage. - * - * @param name The name of the inlet. - * @return The {@link InPort} representing an {@link Inlet} with the specified name. - */ - public InPort getInlet(String name) { - return inlets.computeIfAbsent(name, (key) -> new InPort(this, key, nextInlet++)); - } - - /** - * Return the {@link Outlet} (an out-going edge) with the specified name for this {@link FlowStage}. - * If an outlet with that name does not exist, a new one is allocated for the stage. - * - * @param name The name of the outlet. - * @return The {@link OutPort} representing an {@link Outlet} with the specified name. - */ - public OutPort getOutlet(String name) { - return outlets.computeIfAbsent(name, (key) -> new OutPort(this, key, nextOutlet++)); - } - - /** - * Return the current deadline of the {@link FlowStage}'s timer (in milliseconds after epoch). - */ - public long getDeadline() { - return deadline; - } - - /** - * Set the deadline of the {@link FlowStage}'s timer. - * - * @param deadline The new deadline (in milliseconds after epoch) when the stage should be interrupted. - */ - public void setDeadline(long deadline) { - this.deadline = deadline; - - if ((flags & STAGE_UPDATE_ACTIVE) == 0) { - // Update the timer queue with the new deadline - engine.scheduleDelayed(this); - } - } - - /** - * Invalidate the {@link FlowStage} forcing the stage to update. - */ - public void invalidate() { - int flags = this.flags; - - if ((flags & STAGE_UPDATE_ACTIVE) == 0) { - scheduleImmediate(clock.millis(), flags | STAGE_INVALIDATE); - } - } - - /** - * Synchronously update the {@link FlowStage} at the current timestamp. - */ - public void sync() { - this.flags |= STAGE_INVALIDATE; - onUpdate(clock.millis()); - engine.scheduleDelayed(this); - } - - /** - * Close the {@link FlowStage} and disconnect all inlets and outlets. - */ - public void close() { - int flags = this.flags; - - if ((flags & STAGE_STATE) == STAGE_CLOSED) { - return; - } - - // Toggle the close bit. In case no update is active, schedule a new update. - if ((flags & STAGE_UPDATE_ACTIVE) != 0) { - this.flags = flags | STAGE_CLOSE; - } else { - scheduleImmediate(clock.millis(), flags | STAGE_CLOSE); - } - } - - /** - * Update the state of the flow stage. - * - * @param now The current virtual timestamp. - */ - void onUpdate(long now) { - int flags = this.flags; - int state = flags & STAGE_STATE; - - if (state == STAGE_ACTIVE) { - doUpdate(now, flags); - } else if (state == STAGE_PENDING) { - doStart(now, flags); - } - } - - /** - * Invalidate the {@link FlowStage} forcing the stage to update. - * - *

- * This method is similar to {@link #invalidate()}, but allows the user to manually pass the current timestamp to - * prevent having to re-query the clock. This method should not be called during an update. - */ - void invalidate(long now) { - scheduleImmediate(now, flags | STAGE_INVALIDATE); - } - - /** - * Schedule an immediate update for this stage. - */ - private void scheduleImmediate(long now, int flags) { - // In case an immediate update is already scheduled, no need to do anything - if ((flags & STAGE_UPDATE_PENDING) != 0) { - this.flags = flags; - return; - } - - // Mark the stage that there is an update pending - this.flags = flags | STAGE_UPDATE_PENDING; - - engine.scheduleImmediate(now, this); - } - - /** - * Start the stage. - */ - private void doStart(long now, int flags) { - // Update state before calling into the outside world, so it observes a consistent state - flags = flags | STAGE_ACTIVE | STAGE_UPDATE_ACTIVE; - - doUpdate(now, flags); - } - - /** - * Update the state of the stage. - */ - private void doUpdate(long now, int flags) { - long deadline = this.deadline; - long newDeadline = deadline; - - // Update the stage if: - // (1) the timer of the stage has expired. - // (2) one of the input ports is pushed, - // (3) one of the output ports is pulled, - if ((flags & STAGE_INVALIDATE) != 0 || deadline == now) { - // Update state before calling into the outside world, so it observes a consistent state - this.flags = (flags & ~STAGE_INVALIDATE) | STAGE_UPDATE_ACTIVE; - - try { - newDeadline = logic.onUpdate(this, now); - - // IMPORTANT: Re-fetch the flags after the callback might have changed those - flags = this.flags; - } catch (Exception e) { - doFail(e); - } - } - - // Check whether the stage is marked as closing. - if ((flags & STAGE_CLOSE) != 0) { - doClose(flags, null); - - // IMPORTANT: Re-fetch the flags after the callback might have changed those - flags = this.flags; - } - - // Indicate that no update is active anymore and flush the flags - this.flags = flags & ~(STAGE_UPDATE_ACTIVE | STAGE_UPDATE_PENDING); - this.deadline = newDeadline; - - // Update the timer queue with the new deadline - engine.scheduleDelayedInContext(this); - } - - /** - * This method is invoked when an uncaught exception is caught by the engine. When this happens, the - * {@link FlowStageLogic} "fails" and disconnects all its inputs and outputs. - */ - void doFail(Throwable cause) { - LOGGER.warn("Uncaught exception (closing stage)", cause); - - doClose(flags, cause); - } - - /** - * This method is invoked when the {@link FlowStageLogic} exits successfully or due to failure. - */ - private void doClose(int flags, Throwable cause) { - // Mark the stage as closed - this.flags = flags & ~(STAGE_STATE | STAGE_INVALIDATE | STAGE_CLOSE) | STAGE_CLOSED; - - // Remove stage from parent graph - parentGraph.detach(this); - - // Remove stage from the timer queue - setDeadline(Long.MAX_VALUE); - - // Cancel all input ports - for (InPort port : inlets.values()) { - if (port != null) { - port.cancel(cause); - } - } - - // Cancel all output ports - for (OutPort port : outlets.values()) { - if (port != null) { - port.fail(cause); - } - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStageLogic.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStageLogic.java deleted file mode 100644 index 70986a35b..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/FlowStageLogic.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * The {@link FlowStageLogic} interface is responsible for describing the behaviour of a {@link FlowStage} via - * out-going flows based on its potential inputs. - */ -public interface FlowStageLogic { - /** - * This method is invoked when the one of the stage's inlets or outlets is invalidated. - * - * @param ctx The context in which the stage runs. - * @param now The virtual timestamp in milliseconds after epoch at which the update is occurring. - * @return The next deadline for the stage. - */ - long onUpdate(FlowStage ctx, long now); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InHandler.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InHandler.java deleted file mode 100644 index 839b01db9..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InHandler.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * Collection of callbacks for the input port (a {@link InPort}) of a {@link FlowStageLogic}. - */ -public interface InHandler { - /** - * Return the actual flow rate over the input port. - * - * @param port The input port to which the flow was pushed. - * @return The actual flow rate over the port. - */ - default float getRate(InPort port) { - return Math.min(port.getDemand(), port.getCapacity()); - } - - /** - * This method is invoked when another {@link FlowStageLogic} changes the rate of flow to the specified inlet. - * - * @param port The input port to which the flow was pushed. - * @param demand The rate of flow the output attempted to push to the port. - */ - void onPush(InPort port, float demand); - - /** - * This method is invoked when the input port is finished. - * - * @param port The input port that has finished. - * @param cause The cause of the input port being finished or null if the port completed successfully. - */ - void onUpstreamFinish(InPort port, Throwable cause); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InHandlers.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InHandlers.java deleted file mode 100644 index 9d5b4bef1..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InHandlers.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * A collection of common {@link InHandler} implementations. - */ -public class InHandlers { - /** - * Prevent construction of this class. - */ - private InHandlers() {} - - /** - * Return an {@link InHandler} that does nothing. - */ - public static InHandler noop() { - return NoopInHandler.INSTANCE; - } - - /** - * No-op implementation of {@link InHandler}. - */ - private static final class NoopInHandler implements InHandler { - public static final InHandler INSTANCE = new NoopInHandler(); - - @Override - public void onPush(InPort port, float demand) {} - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) {} - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InPort.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InPort.java deleted file mode 100644 index 16fed4eb6..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/InPort.java +++ /dev/null @@ -1,214 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -import java.time.InstantSource; -import java.util.Objects; - -/** - * A port that consumes a flow. - *

- * Input ports are represented as in-going edges in the flow graph. - */ -public final class InPort implements Inlet { - private final int id; - - private float capacity; - private float demand; - - private boolean mask; - - OutPort output; - private InHandler handler = InHandlers.noop(); - private final InstantSource clock; - private final String name; - private final FlowStage stage; - - InPort(FlowStage stage, String name, int id) { - this.name = name; - this.id = id; - this.stage = stage; - this.clock = stage.clock; - } - - @Override - public FlowGraph getGraph() { - return stage.parentGraph; - } - - @Override - public String getName() { - return name; - } - - /** - * Return the identifier of the {@link InPort} with respect to its stage. - */ - public int getId() { - return id; - } - - /** - * Return the current capacity of the input port. - */ - public float getCapacity() { - return capacity; - } - - /** - * Return the current demand of flow of the input port. - */ - public float getDemand() { - return demand; - } - - /** - * Return the current rate of flow of the input port. - */ - public float getRate() { - return handler.getRate(this); - } - - /** - * Pull the flow with the specified capacity from the input port. - * - * @param capacity The maximum throughput that the stage can receive from the input port. - */ - public void pull(float capacity) { - this.capacity = capacity; - - OutPort output = this.output; - if (output != null) { - output.pull(capacity); - } - } - - /** - * Return the current {@link InHandler} of the input port. - */ - public InHandler getHandler() { - return handler; - } - - /** - * Set the {@link InHandler} of the input port. - */ - public void setHandler(InHandler handler) { - this.handler = handler; - } - - /** - * Return the mask of this port. - *

- * Stages ignore events originating from masked ports. - */ - public boolean getMask() { - return mask; - } - - /** - * (Un)mask the port. - */ - public void setMask(boolean mask) { - this.mask = mask; - } - - /** - * Disconnect the input port from its (potentially) connected outlet. - *

- * The inlet can still be used and re-connected to another outlet. - * - * @param cause The cause for disconnecting the port or null when no more flow is needed. - */ - public void cancel(Throwable cause) { - demand = 0.f; - - OutPort output = this.output; - if (output != null) { - this.output = null; - output.input = null; - output.cancel(cause); - } - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - InPort port = (InPort) o; - return stage.equals(port.stage) && name.equals(port.name); - } - - @Override - public int hashCode() { - return Objects.hash(stage.parentGraph, name); - } - - /** - * This method is invoked when the inlet is connected to an outlet. - */ - void connect() { - OutPort output = this.output; - output.pull(capacity); - } - - /** - * Push a flow from an outlet to this inlet. - * - * @param demand The rate of flow to push. - */ - void push(float demand) { - // No-op when the rate is unchanged - if (this.demand == demand) { - return; - } - - try { - handler.onPush(this, demand); - this.demand = demand; - - if (!mask) { - stage.invalidate(clock.millis()); - } - } catch (Exception e) { - stage.doFail(e); - } - } - - /** - * This method is invoked by the connected {@link OutPort} when it finishes. - */ - void finish(Throwable cause) { - try { - long now = clock.millis(); - handler.onUpstreamFinish(this, cause); - this.demand = 0.f; - - if (!mask) { - stage.invalidate(now); - } - } catch (Exception e) { - stage.doFail(e); - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/Inlet.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/Inlet.java deleted file mode 100644 index 4a9ea6a57..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/Inlet.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * An in-going edge in a {@link FlowGraph}. - */ -public interface Inlet { - /** - * Return the {@link FlowGraph} to which the inlet is exposed. - */ - FlowGraph getGraph(); - - /** - * Return the name of the inlet. - */ - String getName(); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutHandler.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutHandler.java deleted file mode 100644 index 723c6d6bb..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutHandler.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * Collection of callbacks for the output port (a {@link OutPort}) of a {@link FlowStageLogic}. - */ -public interface OutHandler { - /** - * This method is invoked when another {@link FlowStageLogic} changes the capacity of the outlet. - * - * @param port The output port of which the capacity was changed. - * @param capacity The new capacity of the outlet. - */ - void onPull(OutPort port, float capacity); - - /** - * This method is invoked when the output port no longer accepts any flow. - *

- * After this callback no other callbacks will be called for this port. - * - * @param port The outlet that no longer accepts any flow. - * @param cause The cause of the output port no longer accepting any flow or null if the port closed - * successfully. - */ - void onDownstreamFinish(OutPort port, Throwable cause); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutHandlers.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutHandlers.java deleted file mode 100644 index 8fbfda0d0..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutHandlers.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * A collection of common {@link OutHandler} implementations. - */ -public class OutHandlers { - /** - * Prevent construction of this class. - */ - private OutHandlers() {} - - /** - * Return an {@link OutHandler} that does nothing. - */ - public static OutHandler noop() { - return NoopOutHandler.INSTANCE; - } - - /** - * No-op implementation of {@link OutHandler}. - */ - private static final class NoopOutHandler implements OutHandler { - public static final OutHandler INSTANCE = new NoopOutHandler(); - - @Override - public void onPull(OutPort port, float capacity) {} - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) {} - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutPort.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutPort.java deleted file mode 100644 index 1f7ed4ee9..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/OutPort.java +++ /dev/null @@ -1,224 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -import java.time.InstantSource; -import java.util.Objects; - -/** - * A port that outputs a flow. - *

- * Output ports are represented as out-going edges in the flow graph. - */ -public final class OutPort implements Outlet { - private final int id; - - private float capacity; - private float demand; - - private boolean mask; - - InPort input; - private OutHandler handler = OutHandlers.noop(); - private final String name; - private final FlowStage stage; - private final InstantSource clock; - - OutPort(FlowStage stage, String name, int id) { - this.name = name; - this.id = id; - this.stage = stage; - this.clock = stage.clock; - } - - @Override - public FlowGraph getGraph() { - return stage.parentGraph; - } - - @Override - public String getName() { - return name; - } - - /** - * Return the identifier of the {@link OutPort} with respect to its stage. - */ - public int getId() { - return id; - } - - /** - * Return the capacity of the output port. - */ - public float getCapacity() { - return capacity; - } - - /** - * Return the current demand of flow of the output port. - */ - public float getDemand() { - return demand; - } - - /** - * Return the current rate of flow of the input port. - */ - public float getRate() { - InPort input = this.input; - if (input != null) { - return input.getRate(); - } - - return 0.f; - } - - /** - * Return the current {@link OutHandler} of the output port. - */ - public OutHandler getHandler() { - return handler; - } - - /** - * Set the {@link OutHandler} of the output port. - */ - public void setHandler(OutHandler handler) { - this.handler = handler; - } - - /** - * Return the mask of this port. - *

- * Stages ignore events originating from masked ports. - */ - public boolean getMask() { - return mask; - } - - /** - * (Un)mask the port. - */ - public void setMask(boolean mask) { - this.mask = mask; - } - - /** - * Push the given flow rate over output port. - * - * @param rate The rate of the flow to push. - */ - public void push(float rate) { - demand = rate; - InPort input = this.input; - - if (input != null) { - input.push(rate); - } - } - - /** - * Signal to the downstream port that the output has completed successfully and disconnect the port from its input. - *

- * The output port can still be used and re-connected to another input. - */ - public void complete() { - fail(null); - } - - /** - * Signal a failure to the downstream port and disconnect the port from its input. - *

- * The output can still be used and re-connected to another input. - */ - public void fail(Throwable cause) { - capacity = 0.f; - - InPort input = this.input; - if (input != null) { - this.input = null; - input.output = null; - input.finish(cause); - } - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - OutPort port = (OutPort) o; - return stage.equals(port.stage) && name.equals(port.name); - } - - @Override - public int hashCode() { - return Objects.hash(stage.parentGraph, name); - } - - /** - * This method is invoked when the outlet is connected to an inlet. - */ - void connect() { - input.push(demand); - } - - /** - * Pull from this outlet with a specified capacity. - * - * @param capacity The capacity of the inlet. - */ - void pull(float capacity) { - // No-op when outlet is not active or the rate is unchanged - if (this.capacity == capacity) { - return; - } - - try { - handler.onPull(this, capacity); - this.capacity = capacity; - - if (!mask) { - stage.invalidate(clock.millis()); - } - } catch (Exception e) { - stage.doFail(e); - } - } - - /** - * This method is invoked by the connected {@link InPort} when downstream cancels the connection. - */ - void cancel(Throwable cause) { - try { - handler.onDownstreamFinish(this, cause); - this.capacity = 0.f; - - if (!mask) { - stage.invalidate(clock.millis()); - } - } catch (Exception e) { - stage.doFail(e); - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/Outlet.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/Outlet.java deleted file mode 100644 index 32e19a3b3..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/Outlet.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2; - -/** - * An out-going edge in a {@link FlowGraph}. - */ -public interface Outlet { - /** - * Return the {@link FlowGraph} to which the outlet is exposed. - */ - FlowGraph getGraph(); - - /** - * Return the name of the outlet. - */ - String getName(); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/FlowMultiplexer.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/FlowMultiplexer.java deleted file mode 100644 index dec98955d..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/FlowMultiplexer.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.mux; - -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; - -/** - * A {@link FlowStageLogic} that multiplexes multiple inputs over (possibly) multiple outputs. - */ -public interface FlowMultiplexer { - /** - * Return maximum number of inputs supported by the multiplexer. - */ - int getMaxInputs(); - - /** - * Return maximum number of outputs supported by the multiplexer. - */ - int getMaxOutputs(); - - /** - * Return the number of active inputs on this multiplexer. - */ - int getInputCount(); - - /** - * Allocate a new input on this multiplexer with the specified capacity.. - * - * @return The identifier of the input for this stage. - */ - Inlet newInput(); - - /** - * Release the input at the specified slot. - * - * @param inlet The inlet to release. - */ - void releaseInput(Inlet inlet); - - /** - * Return the number of active outputs on this multiplexer. - */ - int getOutputCount(); - - /** - * Allocate a new output on this multiplexer. - * - * @return The outlet for this stage. - */ - Outlet newOutput(); - - /** - * Release the output at the specified slot. - * - * @param outlet The outlet to release. - */ - void releaseOutput(Outlet outlet); - - /** - * Return the total input capacity of the {@link FlowMultiplexer}. - */ - float getCapacity(); - - /** - * Return the total input demand for the {@link FlowMultiplexer}. - */ - float getDemand(); - - /** - * Return the total input rate for the {@link FlowMultiplexer}. - */ - float getRate(); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/FlowMultiplexerFactory.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/FlowMultiplexerFactory.java deleted file mode 100644 index 0b5b9141d..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/FlowMultiplexerFactory.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.mux; - -import org.opendc.simulator.flow2.FlowGraph; - -/** - * Factory interface for a {@link FlowMultiplexer} implementation. - */ -public interface FlowMultiplexerFactory { - /** - * Construct a new {@link FlowMultiplexer} belonging to the specified {@link FlowGraph}. - * - * @param graph The graph to which the multiplexer belongs. - */ - FlowMultiplexer newMultiplexer(FlowGraph graph); - - /** - * Return a {@link FlowMultiplexerFactory} for {@link ForwardingFlowMultiplexer} instances. - */ - static FlowMultiplexerFactory forwardingMultiplexer() { - return ForwardingFlowMultiplexer.FACTORY; - } - - /** - * Return a {@link FlowMultiplexerFactory} for {@link MaxMinFlowMultiplexer} instances. - */ - static FlowMultiplexerFactory maxMinMultiplexer() { - return MaxMinFlowMultiplexer.FACTORY; - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/ForwardingFlowMultiplexer.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/ForwardingFlowMultiplexer.java deleted file mode 100644 index e0564cd21..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/ForwardingFlowMultiplexer.java +++ /dev/null @@ -1,287 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.mux; - -import java.util.Arrays; -import java.util.BitSet; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.InHandler; -import org.opendc.simulator.flow2.InPort; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.OutHandler; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.Outlet; - -/** - * A {@link FlowMultiplexer} implementation that allocates inputs to the outputs of the multiplexer exclusively. - * This means that a single input is directly connected to an output and that the multiplexer can only support as many - * inputs as outputs. - */ -public final class ForwardingFlowMultiplexer implements FlowMultiplexer, FlowStageLogic { - /** - * Factory implementation for this implementation. - */ - static FlowMultiplexerFactory FACTORY = ForwardingFlowMultiplexer::new; - - public final IdleInHandler IDLE_IN_HANDLER = new IdleInHandler(); - public final IdleOutHandler IDLE_OUT_HANDLER = new IdleOutHandler(); - - private final FlowStage stage; - - private InPort[] inlets; - private OutPort[] outlets; - private final BitSet activeInputs; - private final BitSet activeOutputs; - private final BitSet availableOutputs; - - private float capacity = 0.f; - private float demand = 0.f; - - public ForwardingFlowMultiplexer(FlowGraph graph) { - this.stage = graph.newStage(this); - - this.inlets = new InPort[4]; - this.activeInputs = new BitSet(); - this.outlets = new OutPort[4]; - this.activeOutputs = new BitSet(); - this.availableOutputs = new BitSet(); - } - - @Override - public float getCapacity() { - return capacity; - } - - @Override - public float getDemand() { - return demand; - } - - @Override - public float getRate() { - final BitSet activeOutputs = this.activeOutputs; - final OutPort[] outlets = this.outlets; - float rate = 0.f; - for (int i = activeOutputs.nextSetBit(0); i != -1; i = activeOutputs.nextSetBit(i + 1)) { - rate += outlets[i].getRate(); - } - return rate; - } - - @Override - public int getMaxInputs() { - return getOutputCount(); - } - - @Override - public int getMaxOutputs() { - return Integer.MAX_VALUE; - } - - @Override - public int getInputCount() { - return activeInputs.length(); - } - - @Override - public Inlet newInput() { - final BitSet activeInputs = this.activeInputs; - int slot = activeInputs.nextClearBit(0); - - InPort inPort = stage.getInlet("in" + slot); - inPort.setMask(true); - - InPort[] inlets = this.inlets; - if (slot >= inlets.length) { - int newLength = inlets.length + (inlets.length >> 1); - inlets = Arrays.copyOf(inlets, newLength); - this.inlets = inlets; - } - - final BitSet availableOutputs = this.availableOutputs; - int outSlot = availableOutputs.nextSetBit(0); - - if (outSlot < 0) { - throw new IllegalStateException("No capacity available for a new input"); - } - - inlets[slot] = inPort; - activeInputs.set(slot); - - OutPort outPort = outlets[outSlot]; - availableOutputs.clear(outSlot); - - inPort.setHandler(new ForwardingInHandler(outPort)); - outPort.setHandler(new ForwardingOutHandler(inPort)); - - inPort.pull(outPort.getCapacity()); - - return inPort; - } - - @Override - public void releaseInput(Inlet inlet) { - InPort port = (InPort) inlet; - int slot = port.getId(); - - final BitSet activeInputs = this.activeInputs; - - if (!activeInputs.get(slot)) { - return; - } - - port.cancel(null); - activeInputs.clear(slot); - - ForwardingInHandler inHandler = (ForwardingInHandler) port.getHandler(); - availableOutputs.set(inHandler.output.getId()); - - port.setHandler(IDLE_IN_HANDLER); - } - - @Override - public int getOutputCount() { - return activeOutputs.length(); - } - - @Override - public Outlet newOutput() { - final BitSet activeOutputs = this.activeOutputs; - int slot = activeOutputs.nextClearBit(0); - - OutPort port = stage.getOutlet("out" + slot); - OutPort[] outlets = this.outlets; - if (slot >= outlets.length) { - int newLength = outlets.length + (outlets.length >> 1); - outlets = Arrays.copyOf(outlets, newLength); - this.outlets = outlets; - } - outlets[slot] = port; - - activeOutputs.set(slot); - availableOutputs.set(slot); - - port.setHandler(IDLE_OUT_HANDLER); - - return port; - } - - @Override - public void releaseOutput(Outlet outlet) { - OutPort port = (OutPort) outlet; - int slot = port.getId(); - activeInputs.clear(slot); - availableOutputs.clear(slot); - port.complete(); - - port.setHandler(IDLE_OUT_HANDLER); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - return Long.MAX_VALUE; - } - - class ForwardingInHandler implements InHandler { - final OutPort output; - - ForwardingInHandler(OutPort output) { - this.output = output; - } - - @Override - public float getRate(InPort port) { - return output.getRate(); - } - - @Override - public void onPush(InPort port, float rate) { - ForwardingFlowMultiplexer.this.demand += -port.getDemand() + rate; - - output.push(rate); - } - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) { - ForwardingFlowMultiplexer.this.demand -= port.getDemand(); - - final OutPort output = this.output; - output.push(0.f); - - releaseInput(port); - } - } - - private class ForwardingOutHandler implements OutHandler { - private final InPort input; - - ForwardingOutHandler(InPort input) { - this.input = input; - } - - @Override - public void onPull(OutPort port, float capacity) { - ForwardingFlowMultiplexer.this.capacity += -port.getCapacity() + capacity; - - input.pull(capacity); - } - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - ForwardingFlowMultiplexer.this.capacity -= port.getCapacity(); - - input.cancel(cause); - - releaseOutput(port); - } - } - - private static class IdleInHandler implements InHandler { - @Override - public float getRate(InPort port) { - return 0.f; - } - - @Override - public void onPush(InPort port, float rate) { - port.cancel(new IllegalStateException("Inlet is not allocated")); - } - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) {} - } - - private class IdleOutHandler implements OutHandler { - @Override - public void onPull(OutPort port, float capacity) { - ForwardingFlowMultiplexer.this.capacity += -port.getCapacity() + capacity; - } - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - ForwardingFlowMultiplexer.this.capacity -= port.getCapacity(); - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/MaxMinFlowMultiplexer.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/MaxMinFlowMultiplexer.java deleted file mode 100644 index ac5c4f5c0..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/mux/MaxMinFlowMultiplexer.java +++ /dev/null @@ -1,297 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.mux; - -import java.util.Arrays; -import java.util.BitSet; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.InHandler; -import org.opendc.simulator.flow2.InPort; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.OutHandler; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.Outlet; - -/** - * A {@link FlowMultiplexer} implementation that distributes the available capacity of the outputs over the inputs - * using max-min fair sharing. - *

- * The max-min fair sharing algorithm of this multiplexer ensures that each input receives a fair share of the combined - * output capacity, but allows individual inputs to use more capacity if there is still capacity left. - */ -public final class MaxMinFlowMultiplexer implements FlowMultiplexer, FlowStageLogic { - /** - * Factory implementation for this implementation. - */ - static FlowMultiplexerFactory FACTORY = MaxMinFlowMultiplexer::new; - - private final FlowStage stage; - private final BitSet activeInputs; - private final BitSet activeOutputs; - - private float capacity = 0.f; - private float demand = 0.f; - private float rate = 0.f; - - private InPort[] inlets; - private long[] inputs; - private float[] rates; - private OutPort[] outlets; - - private final MultiplexerInHandler inHandler = new MultiplexerInHandler(); - private final MultiplexerOutHandler outHandler = new MultiplexerOutHandler(); - - /** - * Construct a {@link MaxMinFlowMultiplexer} instance. - * - * @param graph The {@link FlowGraph} to add the multiplexer to. - */ - public MaxMinFlowMultiplexer(FlowGraph graph) { - this.stage = graph.newStage(this); - this.activeInputs = new BitSet(); - this.activeOutputs = new BitSet(); - - this.inlets = new InPort[4]; - this.inputs = new long[4]; - this.rates = new float[4]; - this.outlets = new OutPort[4]; - } - - @Override - public float getCapacity() { - return capacity; - } - - @Override - public float getDemand() { - return demand; - } - - @Override - public float getRate() { - return rate; - } - - @Override - public int getMaxInputs() { - return Integer.MAX_VALUE; - } - - @Override - public int getMaxOutputs() { - return Integer.MAX_VALUE; - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - float capacity = this.capacity; - float demand = this.demand; - float rate = demand; - - if (demand > capacity) { - rate = redistributeCapacity(inlets, inputs, rates, capacity); - } - - if (this.rate != rate) { - // Only update the outputs if the output rate has changed - this.rate = rate; - - changeRate(activeOutputs, outlets, capacity, rate); - } - - return Long.MAX_VALUE; - } - - @Override - public int getInputCount() { - return activeInputs.length(); - } - - @Override - public Inlet newInput() { - final BitSet activeInputs = this.activeInputs; - int slot = activeInputs.nextClearBit(0); - - InPort port = stage.getInlet("in" + slot); - port.setHandler(inHandler); - port.pull(this.capacity); - - InPort[] inlets = this.inlets; - if (slot >= inlets.length) { - int newLength = inlets.length + (inlets.length >> 1); - inlets = Arrays.copyOf(inlets, newLength); - inputs = Arrays.copyOf(inputs, newLength); - rates = Arrays.copyOf(rates, newLength); - this.inlets = inlets; - } - inlets[slot] = port; - - activeInputs.set(slot); - return port; - } - - @Override - public void releaseInput(Inlet inlet) { - InPort port = (InPort) inlet; - - activeInputs.clear(port.getId()); - port.cancel(null); - } - - @Override - public int getOutputCount() { - return activeOutputs.length(); - } - - @Override - public Outlet newOutput() { - final BitSet activeOutputs = this.activeOutputs; - int slot = activeOutputs.nextClearBit(0); - - OutPort port = stage.getOutlet("out" + slot); - port.setHandler(outHandler); - - OutPort[] outlets = this.outlets; - if (slot >= outlets.length) { - int newLength = outlets.length + (outlets.length >> 1); - outlets = Arrays.copyOf(outlets, newLength); - this.outlets = outlets; - } - outlets[slot] = port; - - activeOutputs.set(slot); - return port; - } - - @Override - public void releaseOutput(Outlet outlet) { - OutPort port = (OutPort) outlet; - activeInputs.clear(port.getId()); - port.complete(); - } - - /** - * Helper function to redistribute the specified capacity across the inlets. - */ - private static float redistributeCapacity(InPort[] inlets, long[] inputs, float[] rates, float capacity) { - // If the demand is higher than the capacity, we need use max-min fair sharing to distribute the - // constrained capacity across the inputs. - for (int i = 0; i < inputs.length; i++) { - InPort inlet = inlets[i]; - if (inlet == null) { - break; - } - - inputs[i] = ((long) Float.floatToRawIntBits(inlet.getDemand()) << 32) | (i & 0xFFFFFFFFL); - } - Arrays.sort(inputs); - - float availableCapacity = capacity; - int inputSize = inputs.length; - - // Divide the available output capacity fairly over the inputs using max-min fair sharing - for (int i = 0; i < inputs.length; i++) { - long v = inputs[i]; - int slot = (int) v; - float d = Float.intBitsToFloat((int) (v >> 32)); - - if (d == 0.0) { - continue; - } - - float availableShare = availableCapacity / (inputSize - i); - float r = Math.min(d, availableShare); - - rates[slot] = r; - availableCapacity -= r; - } - - return capacity - availableCapacity; - } - - /** - * Helper method to change the rate of the outlets. - */ - private static void changeRate(BitSet activeOutputs, OutPort[] outlets, float capacity, float rate) { - // Divide the requests over the available capacity of the input resources fairly - for (int i = activeOutputs.nextSetBit(0); i != -1; i = activeOutputs.nextSetBit(i + 1)) { - OutPort outlet = outlets[i]; - float fraction = outlet.getCapacity() / capacity; - outlet.push(rate * fraction); - } - } - - /** - * A {@link InHandler} implementation for the multiplexer inputs. - */ - private class MultiplexerInHandler implements InHandler { - @Override - public float getRate(InPort port) { - return rates[port.getId()]; - } - - @Override - public void onPush(InPort port, float demand) { - MaxMinFlowMultiplexer.this.demand += -port.getDemand() + demand; - rates[port.getId()] = demand; - } - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) { - MaxMinFlowMultiplexer.this.demand -= port.getDemand(); - releaseInput(port); - rates[port.getId()] = 0.f; - } - } - - /** - * A {@link OutHandler} implementation for the multiplexer outputs. - */ - private class MultiplexerOutHandler implements OutHandler { - @Override - public void onPull(OutPort port, float capacity) { - float newCapacity = MaxMinFlowMultiplexer.this.capacity - port.getCapacity() + capacity; - MaxMinFlowMultiplexer.this.capacity = newCapacity; - changeInletCapacity(newCapacity); - } - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - float newCapacity = MaxMinFlowMultiplexer.this.capacity - port.getCapacity(); - MaxMinFlowMultiplexer.this.capacity = newCapacity; - releaseOutput(port); - changeInletCapacity(newCapacity); - } - - private void changeInletCapacity(float capacity) { - BitSet activeInputs = MaxMinFlowMultiplexer.this.activeInputs; - InPort[] inlets = MaxMinFlowMultiplexer.this.inlets; - - for (int i = activeInputs.nextSetBit(0); i != -1; i = activeInputs.nextSetBit(i + 1)) { - inlets[i].pull(capacity); - } - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/sink/FlowSink.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/sink/FlowSink.java deleted file mode 100644 index 69c94708e..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/sink/FlowSink.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.sink; - -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.Inlet; - -/** - * A {@link FlowStage} with a single input. - */ -public interface FlowSink { - /** - * Return the input of this {@link FlowSink}. - */ - Inlet getInput(); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/sink/SimpleFlowSink.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/sink/SimpleFlowSink.java deleted file mode 100644 index fdfe5ee87..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/sink/SimpleFlowSink.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.sink; - -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.InHandler; -import org.opendc.simulator.flow2.InPort; -import org.opendc.simulator.flow2.Inlet; - -/** - * A sink with a fixed capacity. - */ -public final class SimpleFlowSink implements FlowSink, FlowStageLogic { - private final FlowStage stage; - private final InPort input; - private final Handler handler; - - /** - * Construct a new {@link SimpleFlowSink} with the specified initial capacity. - * - * @param graph The graph to add the sink to. - * @param initialCapacity The initial capacity of the sink. - */ - public SimpleFlowSink(FlowGraph graph, float initialCapacity) { - this.stage = graph.newStage(this); - this.handler = new Handler(); - this.input = stage.getInlet("in"); - this.input.pull(initialCapacity); - this.input.setMask(true); - this.input.setHandler(handler); - } - - /** - * Return the {@link Inlet} of this sink. - */ - @Override - public Inlet getInput() { - return input; - } - - /** - * Return the capacity of the sink. - */ - public float getCapacity() { - return input.getCapacity(); - } - - /** - * Update the capacity of the sink. - * - * @param capacity The new capacity to update the sink to. - */ - public void setCapacity(float capacity) { - input.pull(capacity); - stage.invalidate(); - } - - /** - * Return the flow rate of the sink. - */ - public float getRate() { - return input.getRate(); - } - - /** - * Remove this node from the graph. - */ - public void close() { - stage.close(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - InPort input = this.input; - handler.rate = Math.min(input.getDemand(), input.getCapacity()); - return Long.MAX_VALUE; - } - - /** - * The {@link InHandler} implementation for the sink. - */ - private static final class Handler implements InHandler { - float rate; - - @Override - public float getRate(InPort port) { - return rate; - } - - @Override - public void onPush(InPort port, float demand) { - float capacity = port.getCapacity(); - rate = Math.min(demand, capacity); - } - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) { - rate = 0.f; - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/EmptyFlowSource.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/EmptyFlowSource.java deleted file mode 100644 index 2dcc66e44..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/EmptyFlowSource.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.source; - -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.Outlet; - -/** - * An empty {@link FlowSource}. - */ -public final class EmptyFlowSource implements FlowSource, FlowStageLogic { - private final FlowStage stage; - private final OutPort output; - - /** - * Construct a new {@link EmptyFlowSource}. - */ - public EmptyFlowSource(FlowGraph graph) { - this.stage = graph.newStage(this); - this.output = stage.getOutlet("out"); - } - - /** - * Return the {@link Outlet} of the source. - */ - @Override - public Outlet getOutput() { - return output; - } - - /** - * Remove this node from the graph. - */ - public void close() { - stage.close(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - return Long.MAX_VALUE; - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/FlowSource.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/FlowSource.java deleted file mode 100644 index f9432c331..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/FlowSource.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.source; - -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.Outlet; - -/** - * A {@link FlowStage} with a single output. - */ -public interface FlowSource { - /** - * Return the output of this {@link FlowSource}. - */ - Outlet getOutput(); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/RuntimeFlowSource.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/RuntimeFlowSource.java deleted file mode 100644 index c09987cdc..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/RuntimeFlowSource.java +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.source; - -import java.util.function.Consumer; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.OutHandler; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.Outlet; - -/** - * A {@link FlowSource} that ensures a flow is emitted for a specified amount of time at some utilization. - */ -public class RuntimeFlowSource implements FlowSource, FlowStageLogic { - private final float utilization; - - private final FlowStage stage; - private final OutPort output; - private final Consumer completionHandler; - - private long duration; - private long lastPull; - - /** - * Construct a {@link RuntimeFlowSource} instance. - * - * @param graph The {@link FlowGraph} to which this source belongs. - * @param duration The duration of the source. - * @param utilization The utilization of the capacity of the outlet. - * @param completionHandler A callback invoked when the source completes. - */ - public RuntimeFlowSource( - FlowGraph graph, long duration, float utilization, Consumer completionHandler) { - if (duration <= 0) { - throw new IllegalArgumentException("Duration must be positive and non-zero"); - } - - if (utilization <= 0.0) { - throw new IllegalArgumentException("Utilization must be positive and non-zero"); - } - - this.stage = graph.newStage(this); - this.output = stage.getOutlet("out"); - this.output.setHandler(new OutHandler() { - @Override - public void onPull(OutPort port, float capacity) {} - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - // Source cannot complete without re-connecting to another sink, so mark the source as completed - completionHandler.accept(RuntimeFlowSource.this); - } - }); - this.duration = duration; - this.utilization = utilization; - this.completionHandler = completionHandler; - this.lastPull = graph.getEngine().getClock().millis(); - } - - /** - * Construct a new {@link RuntimeFlowSource}. - * - * @param graph The {@link FlowGraph} to which this source belongs. - * @param duration The duration of the source. - * @param utilization The utilization of the capacity of the outlet. - */ - public RuntimeFlowSource(FlowGraph graph, long duration, float utilization) { - this(graph, duration, utilization, RuntimeFlowSource::close); - } - - /** - * Return the {@link Outlet} of the source. - */ - @Override - public Outlet getOutput() { - return output; - } - - /** - * Remove this node from the graph. - */ - public void close() { - stage.close(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - long lastPull = this.lastPull; - this.lastPull = now; - - long delta = Math.max(0, now - lastPull); - - OutPort output = this.output; - float limit = output.getCapacity() * utilization; - long duration = this.duration - delta; - - if (duration <= 0) { - completionHandler.accept(this); - return Long.MAX_VALUE; - } - - this.duration = duration; - output.push(limit); - return now + duration; - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/SimpleFlowSource.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/SimpleFlowSource.java deleted file mode 100644 index a0e9cb9d5..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/SimpleFlowSource.java +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.source; - -import java.util.function.Consumer; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.OutHandler; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.Outlet; - -/** - * A flow source that contains a fixed amount and is pushed with a given utilization. - */ -public final class SimpleFlowSource implements FlowSource, FlowStageLogic { - private final float utilization; - private float remainingAmount; - private long lastPull; - - private final FlowStage stage; - private final OutPort output; - private final Consumer completionHandler; - - /** - * Construct a new {@link SimpleFlowSource}. - * - * @param graph The {@link FlowGraph} to which this source belongs. - * @param amount The amount to transfer via the outlet. - * @param utilization The utilization of the capacity of the outlet. - * @param completionHandler A callback invoked when the source completes. - */ - public SimpleFlowSource( - FlowGraph graph, float amount, float utilization, Consumer completionHandler) { - if (amount < 0.0) { - throw new IllegalArgumentException("Amount must be non-negative"); - } - - if (utilization <= 0.0) { - throw new IllegalArgumentException("Utilization must be positive and non-zero"); - } - - this.stage = graph.newStage(this); - this.output = stage.getOutlet("out"); - this.output.setHandler(new OutHandler() { - @Override - public void onPull(OutPort port, float capacity) {} - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - // Source cannot complete without re-connecting to another sink, so mark the source as completed - completionHandler.accept(SimpleFlowSource.this); - } - }); - this.completionHandler = completionHandler; - this.utilization = utilization; - this.remainingAmount = amount; - this.lastPull = graph.getEngine().getClock().millis(); - } - - /** - * Construct a new {@link SimpleFlowSource}. - * - * @param graph The {@link FlowGraph} to which this source belongs. - * @param amount The amount to transfer via the outlet. - * @param utilization The utilization of the capacity of the outlet. - */ - public SimpleFlowSource(FlowGraph graph, float amount, float utilization) { - this(graph, amount, utilization, SimpleFlowSource::close); - } - - /** - * Return the {@link Outlet} of the source. - */ - @Override - public Outlet getOutput() { - return output; - } - - /** - * Remove this node from the graph. - */ - public void close() { - stage.close(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - long lastPull = this.lastPull; - this.lastPull = now; - - long delta = Math.max(0, now - lastPull); - - OutPort output = this.output; - float consumed = output.getRate() * delta / 1000.f; - float limit = output.getCapacity() * utilization; - - float remainingAmount = this.remainingAmount - consumed; - this.remainingAmount = remainingAmount; - - long duration = (long) Math.ceil(remainingAmount / limit * 1000); - - if (duration <= 0) { - completionHandler.accept(this); - return Long.MAX_VALUE; - } - - output.push(limit); - return now + duration; - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/TraceFlowSource.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/TraceFlowSource.java deleted file mode 100644 index e8abc2d73..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/source/TraceFlowSource.java +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.source; - -import java.util.function.Consumer; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.FlowStage; -import org.opendc.simulator.flow2.FlowStageLogic; -import org.opendc.simulator.flow2.OutHandler; -import org.opendc.simulator.flow2.OutPort; -import org.opendc.simulator.flow2.Outlet; - -/** - * A flow source that replays a sequence of fragments, each indicating the flow rate for some period of time. - */ -public final class TraceFlowSource implements FlowSource, FlowStageLogic { - private final OutPort output; - private final long[] deadlines; - private final float[] usages; - private final int size; - private int index; - - private final FlowStage stage; - private final Consumer completionHandler; - - /** - * Construct a {@link TraceFlowSource}. - * - * @param graph The {@link FlowGraph} to which the source belongs. - * @param trace The {@link Trace} to replay. - * @param completionHandler The completion handler to invoke when the source finishes. - */ - public TraceFlowSource(FlowGraph graph, Trace trace, Consumer completionHandler) { - this.stage = graph.newStage(this); - this.output = stage.getOutlet("out"); - this.output.setHandler(new OutHandler() { - @Override - public void onPull(OutPort port, float capacity) {} - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - // Source cannot complete without re-connecting to another sink, so mark the source as completed - completionHandler.accept(TraceFlowSource.this); - } - }); - this.deadlines = trace.deadlines; - this.usages = trace.usages; - this.size = trace.size; - this.completionHandler = completionHandler; - } - - /** - * Construct a {@link TraceFlowSource}. - * - * @param graph The {@link FlowGraph} to which the source belongs. - * @param trace The {@link Trace} to replay. - */ - public TraceFlowSource(FlowGraph graph, Trace trace) { - this(graph, trace, TraceFlowSource::close); - } - - @Override - public Outlet getOutput() { - return output; - } - - /** - * Remove this node from the graph. - */ - public void close() { - stage.close(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - int size = this.size; - int index = this.index; - long[] deadlines = this.deadlines; - long deadline; - - do { - deadline = deadlines[index]; - } while (deadline <= now && ++index < size); - - if (index >= size) { - output.push(0.0f); - completionHandler.accept(this); - return Long.MAX_VALUE; - } - - this.index = index; - float usage = usages[index]; - output.push(usage); - - return deadline; - } - - /** - * A trace describes the workload over time. - */ - public static final class Trace { - private final long[] deadlines; - private final float[] usages; - private final int size; - - /** - * Construct a {@link Trace}. - * - * @param deadlines The deadlines of the trace fragments. - * @param usages The usages of the trace fragments. - * @param size The size of the trace. - */ - public Trace(long[] deadlines, float[] usages, int size) { - this.deadlines = deadlines; - this.usages = usages; - this.size = size; - } - - public long[] getDeadlines() { - return deadlines; - } - - public float[] getUsages() { - return usages; - } - - public int getSize() { - return size; - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransform.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransform.java deleted file mode 100644 index 51ea7df34..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransform.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.util; - -import org.opendc.simulator.flow2.FlowGraph; - -/** - * A {@link FlowTransform} describes a transformation between two components in a {@link FlowGraph} that might operate - * at different units of flow. - */ -public interface FlowTransform { - /** - * Apply the transform to the specified flow rate. - */ - float apply(float value); - - /** - * Apply the inverse of the transformation to the specified flow rate. - */ - float applyInverse(float value); -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransformer.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransformer.java deleted file mode 100644 index 852240d8d..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransformer.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.util; - -import org.opendc.simulator.flow2.*; -import org.opendc.simulator.flow2.sink.FlowSink; -import org.opendc.simulator.flow2.source.FlowSource; - -/** - * Helper class to transform flow from outlet to inlet. - */ -public final class FlowTransformer implements FlowStageLogic, FlowSource, FlowSink { - private final FlowStage stage; - private final InPort input; - private final OutPort output; - - /** - * Construct a new {@link FlowTransformer}. - */ - public FlowTransformer(FlowGraph graph, FlowTransform transform) { - this.stage = graph.newStage(this); - this.input = stage.getInlet("in"); - this.output = stage.getOutlet("out"); - - this.input.setHandler(new ForwardInHandler(output, transform)); - this.input.setMask(true); - this.output.setHandler(new ForwardOutHandler(input, transform)); - this.output.setMask(true); - } - - /** - * Return the {@link Outlet} of the transformer. - */ - @Override - public Outlet getOutput() { - return output; - } - - /** - * Return the {@link Inlet} of the transformer. - */ - @Override - public Inlet getInput() { - return input; - } - - /** - * Close the transformer. - */ - void close() { - stage.close(); - } - - @Override - public long onUpdate(FlowStage ctx, long now) { - return Long.MAX_VALUE; - } - - private static class ForwardInHandler implements InHandler { - private final OutPort output; - private final FlowTransform transform; - - ForwardInHandler(OutPort output, FlowTransform transform) { - this.output = output; - this.transform = transform; - } - - @Override - public float getRate(InPort port) { - return transform.applyInverse(output.getRate()); - } - - @Override - public void onPush(InPort port, float demand) { - float rate = transform.apply(demand); - output.push(rate); - } - - @Override - public void onUpstreamFinish(InPort port, Throwable cause) { - output.fail(cause); - } - } - - private static class ForwardOutHandler implements OutHandler { - private final InPort input; - private final FlowTransform transform; - - ForwardOutHandler(InPort input, FlowTransform transform) { - this.input = input; - this.transform = transform; - } - - @Override - public void onPull(OutPort port, float capacity) { - input.pull(transform.applyInverse(capacity)); - } - - @Override - public void onDownstreamFinish(OutPort port, Throwable cause) { - input.cancel(cause); - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransforms.java b/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransforms.java deleted file mode 100644 index 428dbfcae..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/main/java/org/opendc/simulator/flow2/util/FlowTransforms.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.util; - -/** - * A collection of common {@link FlowTransform} implementations. - */ -public class FlowTransforms { - /** - * Prevent construction of this class. - */ - private FlowTransforms() {} - - /** - * Return a {@link FlowTransform} that forwards the flow rate unmodified. - */ - public static FlowTransform noop() { - return NoopFlowTransform.INSTANCE; - } - - /** - * No-op implementation of a {@link FlowTransform}. - */ - private static final class NoopFlowTransform implements FlowTransform { - static final NoopFlowTransform INSTANCE = new NoopFlowTransform(); - - @Override - public float apply(float value) { - return value; - } - - @Override - public float applyInverse(float value) { - return value; - } - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/InvocationStackTest.kt b/opendc-simulator/opendc-simulator-flow/src/test/kotlin/InvocationStackTest.kt similarity index 97% rename from opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/InvocationStackTest.kt rename to opendc-simulator/opendc-simulator-flow/src/test/kotlin/InvocationStackTest.kt index 2250fe871..7744d7b21 100644 --- a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/InvocationStackTest.kt +++ b/opendc-simulator/opendc-simulator-flow/src/test/kotlin/InvocationStackTest.kt @@ -20,12 +20,11 @@ * SOFTWARE. */ -package org.opendc.simulator.flow2 - import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Assertions.assertFalse import org.junit.jupiter.api.Assertions.assertTrue import org.junit.jupiter.api.Test +import org.opendc.simulator.engine.InvocationStack /** * Test suite for the [InvocationStack] class. diff --git a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/FlowEngineTest.kt b/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/FlowEngineTest.kt deleted file mode 100644 index 413a58782..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/FlowEngineTest.kt +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2 - -import io.mockk.mockk -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNotEquals -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.flow2.mux.MaxMinFlowMultiplexer -import org.opendc.simulator.flow2.sink.SimpleFlowSink -import org.opendc.simulator.flow2.source.SimpleFlowSource -import org.opendc.simulator.kotlin.runSimulation - -/** - * Smoke tests for the Flow API. - */ -class FlowEngineTest { - @Test - fun testSmoke() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val multiplexer = MaxMinFlowMultiplexer(graph) - val sink = SimpleFlowSink(graph, 2.0f) - - graph.connect(multiplexer.newOutput(), sink.input) - - val sourceA = SimpleFlowSource(graph, 2000.0f, 0.8f) - val sourceB = SimpleFlowSource(graph, 2000.0f, 0.8f) - - graph.connect(sourceA.output, multiplexer.newInput()) - graph.connect(sourceB.output, multiplexer.newInput()) - } - - @Test - fun testConnectInvalidInlet() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val inlet = mockk() - val source = SimpleFlowSource(graph, 2000.0f, 0.8f) - assertThrows { graph.connect(source.output, inlet) } - } - - @Test - fun testConnectInvalidOutlet() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val outlet = mockk() - val sink = SimpleFlowSink(graph, 2.0f) - assertThrows { graph.connect(outlet, sink.input) } - } - - @Test - fun testConnectInletBelongsToDifferentGraph() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graphA = engine.newGraph() - val graphB = engine.newGraph() - - val sink = SimpleFlowSink(graphB, 2.0f) - val source = SimpleFlowSource(graphA, 2000.0f, 0.8f) - - assertThrows { graphA.connect(source.output, sink.input) } - } - - @Test - fun testConnectOutletBelongsToDifferentGraph() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graphA = engine.newGraph() - val graphB = engine.newGraph() - - val sink = SimpleFlowSink(graphA, 2.0f) - val source = SimpleFlowSource(graphB, 2000.0f, 0.8f) - - assertThrows { graphA.connect(source.output, sink.input) } - } - - @Test - fun testConnectInletAlreadyConnected() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sink = SimpleFlowSink(graph, 2.0f) - val sourceA = SimpleFlowSource(graph, 2000.0f, 0.8f) - val sourceB = SimpleFlowSource(graph, 2000.0f, 0.8f) - - graph.connect(sourceA.output, sink.input) - assertThrows { graph.connect(sourceB.output, sink.input) } - } - - @Test - fun testConnectOutletAlreadyConnected() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sinkA = SimpleFlowSink(graph, 2.0f) - val sinkB = SimpleFlowSink(graph, 2.0f) - val source = SimpleFlowSource(graph, 2000.0f, 0.8f) - - graph.connect(source.output, sinkA.input) - assertThrows { graph.connect(source.output, sinkB.input) } - } - - @Test - fun testDisconnectInletInvalid() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val inlet = mockk() - assertThrows { graph.disconnect(inlet) } - } - - @Test - fun testDisconnectOutletInvalid() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val outlet = mockk() - assertThrows { graph.disconnect(outlet) } - } - - @Test - fun testDisconnectInletInvalidGraph() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graphA = engine.newGraph() - val graphB = engine.newGraph() - - val sink = SimpleFlowSink(graphA, 2.0f) - - assertThrows { graphB.disconnect(sink.input) } - } - - @Test - fun testDisconnectOutletInvalidGraph() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graphA = engine.newGraph() - val graphB = engine.newGraph() - - val source = SimpleFlowSource(graphA, 2000.0f, 0.8f) - - assertThrows { graphB.disconnect(source.output) } - } - - @Test - fun testInletEquality() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sinkA = SimpleFlowSink(graph, 2.0f) - val sinkB = SimpleFlowSink(graph, 2.0f) - - val multiplexer = MaxMinFlowMultiplexer(graph) - - assertEquals(sinkA.input, sinkA.input) - assertNotEquals(sinkA.input, sinkB.input) - - assertNotEquals(multiplexer.newInput(), multiplexer.newInput()) - } - - @Test - fun testOutletEquality() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sourceA = SimpleFlowSource(graph, 2000.0f, 0.8f) - val sourceB = SimpleFlowSource(graph, 2000.0f, 0.8f) - - val multiplexer = MaxMinFlowMultiplexer(graph) - - assertEquals(sourceA.output, sourceA.output) - assertNotEquals(sourceA.output, sourceB.output) - - assertNotEquals(multiplexer.newOutput(), multiplexer.newOutput()) - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/FlowTimerQueueTest.kt b/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/FlowTimerQueueTest.kt deleted file mode 100644 index 059bd5f56..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/FlowTimerQueueTest.kt +++ /dev/null @@ -1,385 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2 - -import io.mockk.mockk -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertNull -import org.junit.jupiter.api.BeforeEach -import org.junit.jupiter.api.Test - -/** - * Test suite for the [FlowTimerQueue] class. - */ -class FlowTimerQueueTest { - private lateinit var queue: FlowTimerQueue - - @BeforeEach - fun setUp() { - queue = FlowTimerQueue(3) - } - - /** - * Test whether a call to [FlowTimerQueue.poll] returns `null` for an empty queue. - */ - @Test - fun testPollEmpty() { - assertAll( - { assertEquals(Long.MAX_VALUE, queue.peekDeadline()) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test whether a call to [FlowTimerQueue.poll] returns the proper value for a queue with a single entry. - */ - @Test - fun testSingleEntry() { - val entry = mockk() - entry.deadline = 100 - entry.timerIndex = -1 - - queue.enqueue(entry) - - assertAll( - { assertEquals(100, queue.peekDeadline()) }, - { assertNull(queue.poll(10L)) }, - { assertEquals(entry, queue.poll(200L)) }, - { assertNull(queue.poll(200L)) }, - ) - } - - /** - * Test whether [FlowTimerQueue.poll] returns values in the queue in the proper order. - */ - @Test - fun testMultipleEntries() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 10 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - assertAll( - { assertEquals(10, queue.peekDeadline()) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryC, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test that the queue is properly resized when the number of entries exceed the capacity. - */ - @Test - fun testResize() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - val entryD = mockk() - entryD.deadline = 31 - entryD.timerIndex = -1 - - queue.enqueue(entryD) - - assertAll( - { assertEquals(20, queue.peekDeadline()) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryD, queue.poll(100L)) }, - { assertEquals(entryC, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test to verify that we can change the deadline of the last element in the queue. - */ - @Test - fun testChangeDeadlineTail() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - entryA.deadline = 10 - queue.enqueue(entryA) - - assertAll( - { assertEquals(10, queue.peekDeadline()) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryC, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test that we can change the deadline of the head entry in the queue. - */ - @Test - fun testChangeDeadlineMiddle() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - entryC.deadline = 10 - queue.enqueue(entryC) - - assertAll( - { assertEquals(10, queue.peekDeadline()) }, - { assertEquals(entryC, queue.poll(100L)) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test that we can change the deadline of the head entry in the queue. - */ - @Test - fun testChangeDeadlineHead() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - entryB.deadline = 30 - queue.enqueue(entryB) - - assertAll( - { assertEquals(30, queue.peekDeadline()) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryC, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test that an unchanged deadline results in a no-op. - */ - @Test - fun testChangeDeadlineNop() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - // Should be a no-op - queue.enqueue(entryA) - - assertAll( - { assertEquals(20, queue.peekDeadline()) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryC, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test that we can remove an entry from the end of the queue. - */ - @Test - fun testRemoveEntryTail() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - entryC.deadline = Long.MAX_VALUE - queue.enqueue(entryC) - - assertAll( - { assertEquals(20, queue.peekDeadline()) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test that we can remove an entry from the head of the queue. - */ - @Test - fun testRemoveEntryHead() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - entryB.deadline = Long.MAX_VALUE - queue.enqueue(entryB) - - assertAll( - { assertEquals(58, queue.peekDeadline()) }, - { assertEquals(entryC, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } - - /** - * Test that we can remove an entry from the middle of a queue. - */ - @Test - fun testRemoveEntryMiddle() { - val entryA = mockk() - entryA.deadline = 100 - entryA.timerIndex = -1 - - queue.enqueue(entryA) - - val entryB = mockk() - entryB.deadline = 20 - entryB.timerIndex = -1 - - queue.enqueue(entryB) - - val entryC = mockk() - entryC.deadline = 58 - entryC.timerIndex = -1 - - queue.enqueue(entryC) - - entryC.deadline = Long.MAX_VALUE - queue.enqueue(entryC) - - assertAll( - { assertEquals(20, queue.peekDeadline()) }, - { assertEquals(entryB, queue.poll(100L)) }, - { assertEquals(entryA, queue.poll(100L)) }, - { assertNull(queue.poll(100L)) }, - ) - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/mux/ForwardingFlowMultiplexerTest.kt b/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/mux/ForwardingFlowMultiplexerTest.kt deleted file mode 100644 index 2aef51743..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/mux/ForwardingFlowMultiplexerTest.kt +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.mux - -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertAll -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.sink.SimpleFlowSink -import org.opendc.simulator.flow2.source.TraceFlowSource -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [ForwardingFlowMultiplexer] class. - */ -class ForwardingFlowMultiplexerTest { - /** - * Test a trace workload. - */ - @Test - fun testTrace() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val switch = ForwardingFlowMultiplexer(graph) - val sink = SimpleFlowSink(graph, 3200.0f) - graph.connect(switch.newOutput(), sink.input) - - yield() - - assertEquals(sink.capacity, switch.capacity) { "Capacity is not detected" } - - val workload = - TraceFlowSource( - graph, - TraceFlowSource.Trace( - longArrayOf(1000, 2000, 3000, 4000), - floatArrayOf(28.0f, 3500.0f, 0.0f, 183.0f), - 4, - ), - ) - graph.connect(workload.output, switch.newInput()) - - advanceUntilIdle() - - assertAll( - { assertEquals(4000, timeSource.millis()) { "Took enough time" } }, - ) - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/mux/MaxMinFlowMultiplexerTest.kt b/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/mux/MaxMinFlowMultiplexerTest.kt deleted file mode 100644 index 0bcf4a3fe..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/mux/MaxMinFlowMultiplexerTest.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.mux - -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.sink.SimpleFlowSink -import org.opendc.simulator.flow2.source.SimpleFlowSource -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [MaxMinFlowMultiplexer] class. - */ -class MaxMinFlowMultiplexerTest { - @Test - fun testSmoke() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val switch = MaxMinFlowMultiplexer(graph) - - val sinks = List(2) { SimpleFlowSink(graph, 2000.0f) } - for (source in sinks) { - graph.connect(switch.newOutput(), source.input) - } - - val source = SimpleFlowSource(graph, 2000.0f, 1.0f) - graph.connect(source.output, switch.newInput()) - - advanceUntilIdle() - - assertEquals(500, timeSource.millis()) - } -} diff --git a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/sink/FlowSinkTest.kt b/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/sink/FlowSinkTest.kt deleted file mode 100644 index 7085a4b90..000000000 --- a/opendc-simulator/opendc-simulator-flow/src/test/kotlin/org/opendc/simulator/flow2/sink/FlowSinkTest.kt +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.flow2.sink - -import kotlinx.coroutines.delay -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.flow2.source.SimpleFlowSource -import org.opendc.simulator.flow2.source.TraceFlowSource -import org.opendc.simulator.kotlin.runSimulation -import java.util.concurrent.ThreadLocalRandom - -/** - * Test suite for the [SimpleFlowSink] class. - */ -class FlowSinkTest { - @Test - fun testSmoke() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sink = SimpleFlowSink(graph, 1.0f) - val source = SimpleFlowSource(graph, 2.0f, 1.0f) - - graph.connect(source.output, sink.input) - advanceUntilIdle() - - assertEquals(2000, timeSource.millis()) - } - - @Test - fun testAdjustCapacity() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sink = SimpleFlowSink(graph, 1.0f) - val source = SimpleFlowSource(graph, 2.0f, 1.0f) - - graph.connect(source.output, sink.input) - - delay(1000) - sink.capacity = 0.5f - - advanceUntilIdle() - - assertEquals(3000, timeSource.millis()) - } - - @Test - fun testUtilization() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sink = SimpleFlowSink(graph, 1.0f) - val source = SimpleFlowSource(graph, 2.0f, 0.5f) - - graph.connect(source.output, sink.input) - advanceUntilIdle() - - assertEquals(4000, timeSource.millis()) - } - - @Test - fun testFragments() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - - val sink = SimpleFlowSink(graph, 1.0f) - val trace = - TraceFlowSource.Trace( - longArrayOf(1000, 2000, 3000, 4000), - floatArrayOf(1.0f, 0.5f, 2.0f, 1.0f), - 4, - ) - val source = - TraceFlowSource( - graph, - trace, - ) - - graph.connect(source.output, sink.input) - advanceUntilIdle() - - assertEquals(4000, timeSource.millis()) - } - - @Test - fun benchmarkSink() { - val random = ThreadLocalRandom.current() - val traceSize = 10000000 - val trace = - TraceFlowSource.Trace( - LongArray(traceSize) { it * 1000L }, - FloatArray(traceSize) { random.nextDouble(0.0, 4500.0).toFloat() }, - traceSize, - ) - - return runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimpleFlowSink(graph, 4200.0f) - val source = TraceFlowSource(graph, trace) - graph.connect(source.output, sink.input) - } - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkLink.java b/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkLink.java deleted file mode 100644 index 1ea9cb0e7..000000000 --- a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkLink.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network; - -/** - * A physical bidirectional communication link between two [SimNetworkPort]s. - */ -public final class SimNetworkLink { - private final SimNetworkPort left; - private final SimNetworkPort right; - - SimNetworkLink(SimNetworkPort left, SimNetworkPort right) { - this.left = left; - this.right = right; - } - - /** - * Determine whether the specified port participates in this network link. - * - * @return true if the port participates in this link, false otherwise. - */ - public boolean contains(SimNetworkPort port) { - return port == left || port == right; - } - - /** - * Obtain the opposite port to which the specified port is connected through this link. - */ - public SimNetworkPort opposite(SimNetworkPort port) { - if (port == left) { - return right; - } else if (port == right) { - return left; - } - - throw new IllegalArgumentException("Invalid port given"); - } - - /** - * Return the first port of the link. - */ - public SimNetworkPort getLeft() { - return left; - } - - /** - * Return the second port of the link. - */ - public SimNetworkPort getRight() { - return right; - } - - @Override - public String toString() { - return "SimNetworkLink[left=" + left + ",right=" + right + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkPort.java b/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkPort.java deleted file mode 100644 index b5e09b9b8..000000000 --- a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkPort.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network; - -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; - -/** - * A network port allows network devices to be connected to network through links. - */ -public abstract class SimNetworkPort { - SimNetworkLink link; - - /** - * Determine whether the network port is connected to another port. - * - * @return true if the network port is connected, false otherwise. - */ - public boolean isConnected() { - return link != null; - } - - /** - * Return network link which connects this port to another port. - */ - public SimNetworkLink getLink() { - return link; - } - - /** - * Connect this port to the specified port. - */ - public void connect(SimNetworkPort port) { - if (port == this) { - throw new IllegalArgumentException("Circular reference"); - } - if (isConnected()) { - throw new IllegalStateException("Port already connected"); - } - if (port.isConnected()) { - throw new IllegalStateException("Target port already connected"); - } - - final SimNetworkLink link = new SimNetworkLink(this, port); - this.link = link; - port.link = link; - - // Start bidirectional flow channel between the two ports - final Outlet outlet = getOutlet(); - final Inlet inlet = getInlet(); - - outlet.getGraph().connect(outlet, port.getInlet()); - inlet.getGraph().connect(port.getOutlet(), inlet); - } - - /** - * Disconnect the current network link if it exists. - */ - public void disconnect() { - final SimNetworkLink link = this.link; - if (link == null) { - return; - } - - final SimNetworkPort opposite = link.opposite(this); - this.link = null; - opposite.link = null; - - final Outlet outlet = getOutlet(); - final Inlet inlet = getInlet(); - - outlet.getGraph().disconnect(outlet); - inlet.getGraph().disconnect(inlet); - } - - /** - * Return the {@link Outlet} representing the outgoing traffic of this port. - */ - protected abstract Outlet getOutlet(); - - /** - * An [Inlet] representing the ingoing traffic of this port. - */ - protected abstract Inlet getInlet(); - - @Override - public String toString() { - return "SimNetworkPort[isConnected=" + isConnected() + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSink.java b/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSink.java deleted file mode 100644 index f8918328c..000000000 --- a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSink.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network; - -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; -import org.opendc.simulator.flow2.sink.SimpleFlowSink; -import org.opendc.simulator.flow2.source.EmptyFlowSource; - -/** - * A network sink which discards all received traffic and does not generate any traffic itself. - */ -public final class SimNetworkSink extends SimNetworkPort { - private final EmptyFlowSource source; - private final SimpleFlowSink sink; - - /** - * Construct a {@link SimNetworkSink} instance. - * - * @param graph The {@link FlowGraph} to which the sink belongs. - * @param capacity The capacity of the sink in terms of processed data. - */ - public SimNetworkSink(FlowGraph graph, float capacity) { - this.source = new EmptyFlowSource(graph); - this.sink = new SimpleFlowSink(graph, capacity); - } - - /** - * Return the capacity of the sink. - */ - public float getCapacity() { - return sink.getCapacity(); - } - - @Override - protected Outlet getOutlet() { - return source.getOutput(); - } - - @Override - protected Inlet getInlet() { - return sink.getInput(); - } - - @Override - public String toString() { - return "SimNetworkSink[capacity=" + getCapacity() + "]"; - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSwitch.java b/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSwitch.java deleted file mode 100644 index b05dc53d4..000000000 --- a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSwitch.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network; - -import java.util.List; - -/** - * A network device connects devices on a network by switching the traffic over its ports. - */ -public interface SimNetworkSwitch { - /** - * Return the ports of the switch. - */ - List getPorts(); -} diff --git a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSwitchVirtual.java b/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSwitchVirtual.java deleted file mode 100644 index a94bf7998..000000000 --- a/opendc-simulator/opendc-simulator-network/src/main/java/org/opendc/simulator/network/SimNetworkSwitchVirtual.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; -import org.opendc.simulator.flow2.mux.FlowMultiplexer; -import org.opendc.simulator.flow2.mux.MaxMinFlowMultiplexer; - -/** - * A {@link SimNetworkSwitch} that can support new networking ports on demand. - */ -public final class SimNetworkSwitchVirtual implements SimNetworkSwitch { - private final List ports = new ArrayList<>(); - - /** - * The {@link MaxMinFlowMultiplexer} to actually perform the switching. - */ - private final MaxMinFlowMultiplexer mux; - - /** - * Construct a {@link SimNetworkSwitchVirtual} instance. - * - * @param graph The {@link FlowGraph} to drive the simulation. - */ - public SimNetworkSwitchVirtual(FlowGraph graph) { - this.mux = new MaxMinFlowMultiplexer(graph); - } - - /** - * Open a new port on the switch. - */ - public Port newPort() { - final Port port = new Port(mux); - ports.add(port); - return port; - } - - @Override - public List getPorts() { - return Collections.unmodifiableList(ports); - } - - /** - * A port on the network switch. - */ - public class Port extends SimNetworkPort implements AutoCloseable { - private final FlowMultiplexer mux; - private final Inlet inlet; - private final Outlet outlet; - private boolean isClosed; - - private Port(FlowMultiplexer mux) { - this.mux = mux; - this.inlet = mux.newInput(); - this.outlet = mux.newOutput(); - } - - @Override - protected Outlet getOutlet() { - if (isClosed) { - throw new IllegalStateException("Port is closed"); - } - return outlet; - } - - @Override - protected Inlet getInlet() { - if (isClosed) { - throw new IllegalStateException("Port is closed"); - } - return inlet; - } - - @Override - public void close() { - isClosed = true; - mux.releaseInput(inlet); - mux.releaseOutput(outlet); - ports.remove(this); - } - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkLinkTest.kt b/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkLinkTest.kt deleted file mode 100644 index 9863507d3..000000000 --- a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkLinkTest.kt +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network - -import io.mockk.mockk -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertFalse -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows - -/** - * Test suite for [SimNetworkLink] class. - */ -class SimNetworkLinkTest { - @Test - fun testContainsLeft() { - val left = mockk() - val right = mockk() - - val link = SimNetworkLink(left, right) - assertTrue(left in link) - } - - @Test - fun testContainsRight() { - val left = mockk() - val right = mockk() - - val link = SimNetworkLink(left, right) - assertTrue(right in link) - } - - @Test - fun testContainsNone() { - val left = mockk() - val right = mockk() - val none = mockk() - - val link = SimNetworkLink(left, right) - assertFalse(none in link) - } - - @Test - fun testOppositeLeft() { - val left = mockk() - val right = mockk() - - val link = SimNetworkLink(left, right) - assertEquals(right, link.opposite(left)) - } - - @Test - fun testOppositeRight() { - val left = mockk() - val right = mockk() - - val link = SimNetworkLink(left, right) - assertEquals(left, link.opposite(right)) - } - - @Test - fun testOppositeNone() { - val left = mockk() - val right = mockk() - val none = mockk() - - val link = SimNetworkLink(left, right) - assertThrows { link.opposite(none) } - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkSinkTest.kt b/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkSinkTest.kt deleted file mode 100644 index 4655bfeaf..000000000 --- a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkSinkTest.kt +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network - -import io.mockk.every -import io.mockk.mockk -import io.mockk.verify -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertFalse -import org.junit.jupiter.api.Assertions.assertNull -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertDoesNotThrow -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [SimNetworkSink] class. - */ -class SimNetworkSinkTest { - @Test - fun testInitialState() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - - assertAll( - { assertFalse(sink.isConnected) }, - { assertNull(sink.link) }, - { assertEquals(100.0f, sink.capacity) }, - ) - } - - @Test - fun testDisconnectIdempotent() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - - assertDoesNotThrow { sink.disconnect() } - assertFalse(sink.isConnected) - } - - @Test - fun testConnectCircular() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - - assertThrows { - sink.connect(sink) - } - } - - @Test - fun testConnectAlreadyConnectedTarget() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - val source = mockk(relaxUnitFun = true) - every { source.isConnected } returns true - - assertThrows { - sink.connect(source) - } - } - - @Test - fun testConnectAlreadyConnected() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - val source1 = TestSource(graph) - - val source2 = mockk(relaxUnitFun = true) - - every { source2.isConnected } returns false - - sink.connect(source1) - assertThrows { - sink.connect(source2) - } - } - - @Test - fun testConnect() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - val source = TestSource(graph) - - sink.connect(source) - - yield() - - assertAll( - { assertTrue(sink.isConnected) }, - { assertTrue(source.isConnected) }, - { assertEquals(100.0f, source.outlet.capacity) }, - ) - - verify { source.logic.onUpdate(any(), any()) } - } - - @Test - fun testDisconnect() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - val source = TestSource(graph) - - sink.connect(source) - sink.disconnect() - - yield() - - assertAll( - { assertFalse(sink.isConnected) }, - { assertFalse(source.isConnected) }, - { assertEquals(0.0f, source.outlet.capacity) }, - ) - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkSwitchVirtualTest.kt b/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkSwitchVirtualTest.kt deleted file mode 100644 index b5a00ffcd..000000000 --- a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/SimNetworkSwitchVirtualTest.kt +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network - -import io.mockk.verify -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [SimNetworkSwitchVirtual] class. - */ -class SimNetworkSwitchVirtualTest { - @Test - fun testConnect() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - val source = TestSource(graph) - val switch = SimNetworkSwitchVirtual(graph) - - switch.newPort().connect(sink) - switch.newPort().connect(source) - - yield() - - assertAll( - { assertTrue(sink.isConnected) }, - { assertTrue(source.isConnected) }, - { assertEquals(100.0f, source.outlet.capacity) }, - ) - - verify { source.logic.onUpdate(any(), any()) } - } - - @Test - fun testConnectClosedPort() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val sink = SimNetworkSink(graph, 100.0f) - val switch = SimNetworkSwitchVirtual(graph) - - val port = switch.newPort() - port.close() - - assertThrows { - port.connect(sink) - } - } -} diff --git a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/TestSource.kt b/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/TestSource.kt deleted file mode 100644 index 298a5d486..000000000 --- a/opendc-simulator/opendc-simulator-network/src/test/kotlin/org/opendc/simulator/network/TestSource.kt +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.network - -import io.mockk.spyk -import org.opendc.simulator.flow2.FlowGraph -import org.opendc.simulator.flow2.FlowStage -import org.opendc.simulator.flow2.FlowStageLogic -import org.opendc.simulator.flow2.InPort -import org.opendc.simulator.flow2.Inlet -import org.opendc.simulator.flow2.OutPort -import org.opendc.simulator.flow2.Outlet - -/** - * A [SimNetworkPort] that acts as a test source. - */ -class TestSource(graph: FlowGraph) : SimNetworkPort(), FlowStageLogic { - val logic = spyk(this) - private val stage = graph.newStage(logic) - - val outlet: OutPort = stage.getOutlet("out") - val inlet: InPort = stage.getInlet("in") - - init { - outlet.push(80.0f) - } - - override fun onUpdate( - ctx: FlowStage, - now: Long, - ): Long = Long.MAX_VALUE - - override fun getOutlet(): Outlet = outlet - - override fun getInlet(): Inlet = inlet -} diff --git a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPdu.java b/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPdu.java deleted file mode 100644 index 8790a2d7f..000000000 --- a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPdu.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power; - -import org.jetbrains.annotations.NotNull; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; -import org.opendc.simulator.flow2.mux.FlowMultiplexer; -import org.opendc.simulator.flow2.mux.MaxMinFlowMultiplexer; -import org.opendc.simulator.flow2.util.FlowTransform; -import org.opendc.simulator.flow2.util.FlowTransformer; - -/** - * A model of a Power Distribution Unit (PDU). - */ -public final class SimPdu extends SimPowerInlet { - /** - * The {@link FlowMultiplexer} that distributes the electricity over the PDU outlets. - */ - private final MaxMinFlowMultiplexer mux; - - /** - * A {@link FlowTransformer} that applies the power loss to the PDU's power inlet. - */ - private final FlowTransformer transformer; - - /** - * Construct a {@link SimPdu} instance. - * - * @param graph The underlying {@link FlowGraph} to which the PDU belongs. - * @param idlePower The idle power consumption of the PDU independent of the load on the PDU. - * @param lossCoefficient The coefficient for the power loss of the PDU proportional to the square load. - */ - public SimPdu(FlowGraph graph, float idlePower, float lossCoefficient) { - this.mux = new MaxMinFlowMultiplexer(graph); - this.transformer = new FlowTransformer(graph, new FlowTransform() { - @Override - public float apply(float value) { - // See https://download.schneider-electric.com/files?p_Doc_Ref=SPD_NRAN-66CK3D_EN - return value * (lossCoefficient * value + 1) + idlePower; - } - - @Override - public float applyInverse(float value) { - float c = lossCoefficient; - if (c != 0.f) { - return (float) (1 + Math.sqrt(4 * value * c - 4 * idlePower * c + 1)) / (2 * c); - } else { - return value - idlePower; - } - } - }); - - graph.connect(mux.newOutput(), transformer.getInput()); - } - - /** - * Construct a {@link SimPdu} instance without any loss. - * - * @param graph The underlying {@link FlowGraph} to which the PDU belongs. - */ - public SimPdu(FlowGraph graph) { - this(graph, 0.f, 0.f); - } - - /** - * Create a new PDU outlet. - */ - public PowerOutlet newOutlet() { - return new PowerOutlet(mux); - } - - @NotNull - @Override - public Outlet getFlowOutlet() { - return transformer.getOutput(); - } - - @Override - public String toString() { - return "SimPdu"; - } - - /** - * A PDU outlet. - */ - public static final class PowerOutlet extends SimPowerOutlet implements AutoCloseable { - private final FlowMultiplexer mux; - private final Inlet inlet; - private boolean isClosed; - - private PowerOutlet(FlowMultiplexer mux) { - this.mux = mux; - this.inlet = mux.newInput(); - } - - /** - * Remove the outlet from the PDU. - */ - @Override - public void close() { - isClosed = true; - mux.releaseInput(inlet); - } - - @Override - public String toString() { - return "SimPdu.Outlet"; - } - - @NotNull - @Override - protected Inlet getFlowInlet() { - if (isClosed) { - throw new IllegalStateException("Outlet is closed"); - } - return inlet; - } - } -} diff --git a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerInlet.java b/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerInlet.java deleted file mode 100644 index a6e167c25..000000000 --- a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerInlet.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power; - -import org.opendc.simulator.flow2.Outlet; - -/** - * An abstract inlet that consumes electricity from a power outlet. - */ -public abstract class SimPowerInlet { - SimPowerOutlet outlet; - - /** - * Determine whether the inlet is connected to a {@link SimPowerOutlet}. - * - * @return true if the inlet is connected to an outlet, false otherwise. - */ - public boolean isConnected() { - return outlet != null; - } - - /** - * Return the {@link SimPowerOutlet} to which the inlet is connected. - */ - public SimPowerOutlet getOutlet() { - return outlet; - } - - /** - * Return the flow {@link Outlet} that models the consumption of a power inlet as flow output. - */ - protected abstract Outlet getFlowOutlet(); -} diff --git a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerOutlet.java b/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerOutlet.java deleted file mode 100644 index e33d35d09..000000000 --- a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerOutlet.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power; - -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; - -/** - * An abstract outlet that provides a source of electricity for datacenter components. - */ -public abstract class SimPowerOutlet { - private SimPowerInlet inlet; - - /** - * Determine whether the outlet is connected to a {@link SimPowerInlet}. - * - * @return true if the outlet is connected to an inlet, false otherwise. - */ - public boolean isConnected() { - return inlet != null; - } - - /** - * Return the {@link SimPowerInlet} to which the outlet is connected. - */ - public SimPowerInlet getInlet() { - return inlet; - } - - /** - * Connect the specified power [inlet] to this outlet. - * - * @param inlet The inlet to connect to the outlet. - */ - public void connect(SimPowerInlet inlet) { - if (isConnected()) { - throw new IllegalStateException("Outlet already connected"); - } - if (inlet.isConnected()) { - throw new IllegalStateException("Inlet already connected"); - } - - this.inlet = inlet; - this.inlet.outlet = this; - - final Inlet flowInlet = getFlowInlet(); - final Outlet flowOutlet = inlet.getFlowOutlet(); - - flowInlet.getGraph().connect(flowOutlet, flowInlet); - } - - /** - * Disconnect the connected power outlet from this inlet - */ - public void disconnect() { - SimPowerInlet inlet = this.inlet; - if (inlet != null) { - this.inlet = null; - assert inlet.outlet == this : "Inlet state incorrect"; - inlet.outlet = null; - - final Inlet flowInlet = getFlowInlet(); - flowInlet.getGraph().disconnect(flowInlet); - } - } - - /** - * Return the flow {@link Inlet} that models the consumption of a power outlet as flow input. - */ - protected abstract Inlet getFlowInlet(); -} diff --git a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerSource.java b/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerSource.java deleted file mode 100644 index a2d62c48c..000000000 --- a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimPowerSource.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power; - -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.sink.SimpleFlowSink; - -/** - * A {@link SimPowerOutlet} that represents a source of electricity with a maximum capacity. - */ -public final class SimPowerSource extends SimPowerOutlet { - /** - * The resource source that drives this power source. - */ - private final SimpleFlowSink sink; - - /** - * Construct a {@link SimPowerSource} instance. - * - * @param graph The underlying {@link FlowGraph} to which the power source belongs. - * @param capacity The maximum amount of power provided by the source. - */ - public SimPowerSource(FlowGraph graph, float capacity) { - this.sink = new SimpleFlowSink(graph, capacity); - } - - /** - * Return the capacity of the power source. - */ - public float getCapacity() { - return sink.getCapacity(); - } - - /** - * Return the power draw at this instant. - */ - public float getPowerDraw() { - return sink.getRate(); - } - - @Override - protected Inlet getFlowInlet() { - return sink.getInput(); - } - - @Override - public String toString() { - return "SimPowerSource"; - } -} diff --git a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimUps.java b/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimUps.java deleted file mode 100644 index df7508d99..000000000 --- a/opendc-simulator/opendc-simulator-power/src/main/java/org/opendc/simulator/power/SimUps.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power; - -import org.jetbrains.annotations.NotNull; -import org.opendc.simulator.flow2.FlowGraph; -import org.opendc.simulator.flow2.Inlet; -import org.opendc.simulator.flow2.Outlet; -import org.opendc.simulator.flow2.mux.FlowMultiplexer; -import org.opendc.simulator.flow2.mux.MaxMinFlowMultiplexer; -import org.opendc.simulator.flow2.util.FlowTransform; -import org.opendc.simulator.flow2.util.FlowTransformer; - -/** - * A model of an Uninterruptible Power Supply (UPS). - *

- * This model aggregates multiple power sources into a single source in order to ensure that power is always available. - */ -public final class SimUps extends SimPowerOutlet { - /** - * The {@link FlowMultiplexer} that distributes the electricity over the PDU outlets. - */ - private final MaxMinFlowMultiplexer mux; - - /** - * A {@link FlowTransformer} that applies the power loss to the PDU's power inlet. - */ - private final FlowTransformer transformer; - - /** - * Construct a {@link SimUps} instance. - * - * @param graph The underlying {@link FlowGraph} to which the UPS belongs. - * @param idlePower The idle power consumption of the UPS independent of the load. - * @param lossCoefficient The coefficient for the power loss of the UPS proportional to the load. - */ - public SimUps(FlowGraph graph, float idlePower, float lossCoefficient) { - this.mux = new MaxMinFlowMultiplexer(graph); - this.transformer = new FlowTransformer(graph, new FlowTransform() { - @Override - public float apply(float value) { - // See https://download.schneider-electric.com/files?p_Doc_Ref=SPD_NRAN-66CK3D_EN - return value * (lossCoefficient + 1) + idlePower; - } - - @Override - public float applyInverse(float value) { - return (value - idlePower) / (lossCoefficient + 1); - } - }); - - graph.connect(transformer.getOutput(), mux.newInput()); - } - - /** - * Construct a {@link SimUps} instance without any loss. - * - * @param graph The underlying {@link FlowGraph} to which the UPS belongs. - */ - public SimUps(FlowGraph graph) { - this(graph, 0.f, 0.f); - } - - /** - * Create a new UPS inlet. - */ - public PowerInlet newInlet() { - return new PowerInlet(mux); - } - - @Override - protected Inlet getFlowInlet() { - return transformer.getInput(); - } - - @Override - public String toString() { - return "SimUps"; - } - - /** - * A UPS inlet. - */ - public static final class PowerInlet extends SimPowerInlet implements AutoCloseable { - private final FlowMultiplexer mux; - private final Outlet outlet; - private boolean isClosed; - - private PowerInlet(FlowMultiplexer mux) { - this.mux = mux; - this.outlet = mux.newOutput(); - } - - /** - * Remove the inlet from the PDU. - */ - @Override - public void close() { - isClosed = true; - mux.releaseOutput(outlet); - } - - @Override - public String toString() { - return "SimPdu.Inlet"; - } - - @NotNull - @Override - protected Outlet getFlowOutlet() { - if (isClosed) { - throw new IllegalStateException("Inlet is closed"); - } - return outlet; - } - } -} diff --git a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimPduTest.kt b/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimPduTest.kt deleted file mode 100644 index 9df72c49f..000000000 --- a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimPduTest.kt +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power - -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [SimPdu] class. - */ -internal class SimPduTest { - @Test - fun testZeroOutlets() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - val pdu = SimPdu(graph) - source.connect(pdu) - - yield() - - assertEquals(0.0f, source.powerDraw) - } - - @Test - fun testSingleOutlet() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - val pdu = SimPdu(graph) - source.connect(pdu) - pdu.newOutlet().connect(TestInlet(graph)) - - yield() - - assertEquals(100.0f, source.powerDraw) - } - - @Test - fun testDoubleOutlet() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 200.0f) - val pdu = SimPdu(graph) - source.connect(pdu) - - pdu.newOutlet().connect(TestInlet(graph)) - pdu.newOutlet().connect(TestInlet(graph)) - - yield() - - assertEquals(200.0f, source.powerDraw) - } - - @Test - fun testDisconnect() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 300.0f) - val pdu = SimPdu(graph) - source.connect(pdu) - - val outlet = pdu.newOutlet() - outlet.connect(TestInlet(graph)) - outlet.disconnect() - - yield() - - assertEquals(0.0f, source.powerDraw) - } - - @Test - fun testLoss() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 500.0f) - // https://download.schneider-electric.com/files?p_Doc_Ref=SPD_NRAN-66CK3D_EN - val pdu = SimPdu(graph, 1.5f, 0.015f) - source.connect(pdu) - pdu.newOutlet().connect(TestInlet(graph)) - - yield() - - assertEquals(251.5f, source.powerDraw, 0.01f) - } - - @Test - fun testOutletClose() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - val pdu = SimPdu(graph) - source.connect(pdu) - val outlet = pdu.newOutlet() - outlet.close() - - yield() - - assertThrows { - outlet.connect(TestInlet(graph)) - } - } -} diff --git a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimPowerSourceTest.kt b/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimPowerSourceTest.kt deleted file mode 100644 index bbc9ad92d..000000000 --- a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimPowerSourceTest.kt +++ /dev/null @@ -1,155 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power - -import io.mockk.every -import io.mockk.mockk -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Assertions.assertFalse -import org.junit.jupiter.api.Assertions.assertNull -import org.junit.jupiter.api.Assertions.assertTrue -import org.junit.jupiter.api.Test -import org.junit.jupiter.api.assertDoesNotThrow -import org.junit.jupiter.api.assertThrows -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [SimPowerSource] - */ -internal class SimPowerSourceTest { - @Test - fun testInitialState() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - - yield() - - assertAll( - { assertFalse(source.isConnected) }, - { assertNull(source.inlet) }, - { assertEquals(100.0f, source.capacity) }, - ) - } - - @Test - fun testDisconnectIdempotent() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - - assertDoesNotThrow { source.disconnect() } - assertFalse(source.isConnected) - } - - @Test - fun testConnect() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - val inlet = TestInlet(graph) - - source.connect(inlet) - - yield() - - assertAll( - { assertTrue(source.isConnected) }, - { assertEquals(inlet, source.inlet) }, - { assertTrue(inlet.isConnected) }, - { assertEquals(source, inlet.outlet) }, - { assertEquals(100.0f, source.powerDraw) }, - ) - } - - @Test - fun testDisconnect() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - val inlet = TestInlet(graph) - - source.connect(inlet) - source.disconnect() - - yield() - - assertEquals(0.0f, inlet.flowOutlet.capacity) - } - - @Test - fun testDisconnectAssertion() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - - val inlet = mockk(relaxUnitFun = true) - every { inlet.isConnected } returns false - every { inlet.flowOutlet } returns TestInlet(graph).flowOutlet - - source.connect(inlet) - inlet.outlet = null - - assertThrows { - source.disconnect() - } - } - - @Test - fun testOutletAlreadyConnected() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - val inlet = TestInlet(graph) - - source.connect(inlet) - assertThrows { - source.connect(TestInlet(graph)) - } - - assertEquals(inlet, source.inlet) - } - - @Test - fun testInletAlreadyConnected() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 100.0f) - val inlet = mockk(relaxUnitFun = true) - every { inlet.isConnected } returns true - - assertThrows { - source.connect(inlet) - } - } -} diff --git a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimUpsTest.kt b/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimUpsTest.kt deleted file mode 100644 index cbd23887c..000000000 --- a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/SimUpsTest.kt +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2021 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power - -import kotlinx.coroutines.yield -import org.junit.jupiter.api.Assertions.assertAll -import org.junit.jupiter.api.Assertions.assertEquals -import org.junit.jupiter.api.Test -import org.opendc.simulator.flow2.FlowEngine -import org.opendc.simulator.kotlin.runSimulation - -/** - * Test suite for the [SimUps] class. - */ -internal class SimUpsTest { - @Test - fun testSingleInlet() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 200.0f) - val ups = SimUps(graph) - source.connect(ups.newInlet()) - ups.connect(TestInlet(graph)) - - yield() - - assertEquals(100.0f, source.powerDraw) - } - - @Test - fun testDoubleInlet() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source1 = SimPowerSource(graph, 200.0f) - val source2 = SimPowerSource(graph, 200.0f) - val ups = SimUps(graph) - source1.connect(ups.newInlet()) - source2.connect(ups.newInlet()) - - ups.connect(TestInlet(graph)) - - yield() - - assertAll( - { assertEquals(50.0f, source1.powerDraw) }, - { assertEquals(50.0f, source2.powerDraw) }, - ) - } - - @Test - fun testLoss() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source = SimPowerSource(graph, 500.0f) - // https://download.schneider-electric.com/files?p_Doc_Ref=SPD_NRAN-66CK3D_EN - val ups = SimUps(graph, 4.0f, 0.05f) - source.connect(ups.newInlet()) - ups.connect(TestInlet(graph)) - - yield() - - assertEquals(109.0f, source.powerDraw, 0.01f) - } - - @Test - fun testDisconnect() = - runSimulation { - val engine = FlowEngine.create(dispatcher) - val graph = engine.newGraph() - val source1 = SimPowerSource(graph, 200.0f) - val source2 = SimPowerSource(graph, 200.0f) - val ups = SimUps(graph) - source1.connect(ups.newInlet()) - source2.connect(ups.newInlet()) - - val inlet = TestInlet(graph) - - ups.connect(inlet) - ups.disconnect() - - yield() - - assertEquals(0.0f, inlet.flowOutlet.capacity) - } -} diff --git a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/TestInlet.kt b/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/TestInlet.kt deleted file mode 100644 index 1c06acf4a..000000000 --- a/opendc-simulator/opendc-simulator-power/src/test/kotlin/org/opendc/simulator/power/TestInlet.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2022 AtLarge Research - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package org.opendc.simulator.power - -import org.opendc.simulator.flow2.FlowGraph -import org.opendc.simulator.flow2.FlowStage -import org.opendc.simulator.flow2.FlowStageLogic -import org.opendc.simulator.flow2.Outlet - -/** - * A test inlet. - */ -class TestInlet(graph: FlowGraph) : SimPowerInlet(), FlowStageLogic { - private val stage = graph.newStage(this) - val flowOutlet = stage.getOutlet("out") - - init { - flowOutlet.push(100.0f) - } - - override fun onUpdate( - ctx: FlowStage, - now: Long, - ): Long = Long.MAX_VALUE - - override fun getFlowOutlet(): Outlet { - return flowOutlet - } -} diff --git a/opendc-web/opendc-web-runner/build.gradle.kts b/opendc-web/opendc-web-runner/build.gradle.kts index 40f94644f..97328324a 100644 --- a/opendc-web/opendc-web-runner/build.gradle.kts +++ b/opendc-web/opendc-web-runner/build.gradle.kts @@ -57,7 +57,6 @@ dependencies { implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-carbon"))) implementation(project(mapOf("path" to ":opendc-experiments:opendc-experiments-base"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-topology"))) - implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-telemetry"))) implementation(project(mapOf("path" to ":opendc-compute:opendc-compute-failure"))) cliImplementation(libs.clikt) diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt index af9d55290..2dd0c20fc 100644 --- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt +++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/OpenDCRunner.kt @@ -25,22 +25,21 @@ package org.opendc.web.runner import mu.KotlinLogging import org.opendc.compute.failure.prefab.FailurePrefab import org.opendc.compute.failure.prefab.createFailureModelPrefab -import org.opendc.compute.service.ComputeService -import org.opendc.compute.service.scheduler.createComputeScheduler import org.opendc.compute.simulator.provisioner.Provisioner import org.opendc.compute.simulator.provisioner.registerComputeMonitor import org.opendc.compute.simulator.provisioner.setupComputeService import org.opendc.compute.simulator.provisioner.setupHosts +import org.opendc.compute.simulator.scheduler.createComputeScheduler +import org.opendc.compute.simulator.service.ComputeService import org.opendc.compute.topology.specs.HostSpec import org.opendc.compute.workload.ComputeWorkloadLoader import org.opendc.compute.workload.sampleByLoad import org.opendc.compute.workload.trace import org.opendc.experiments.base.runner.replay -import org.opendc.simulator.compute.SimPsuFactories -import org.opendc.simulator.compute.model.Cpu -import org.opendc.simulator.compute.model.MachineModel -import org.opendc.simulator.compute.model.MemoryUnit -import org.opendc.simulator.compute.power.CpuPowerModels +import org.opendc.simulator.compute.cpu.CpuPowerModels +import org.opendc.simulator.compute.models.CpuModel +import org.opendc.simulator.compute.models.MachineModel +import org.opendc.simulator.compute.models.MemoryUnit import org.opendc.simulator.kotlin.runSimulation import org.opendc.web.proto.runner.Job import org.opendc.web.proto.runner.Scenario @@ -86,7 +85,7 @@ public class OpenDCRunner( /** * Helper class to load the workloads. */ - private val workloadLoader = ComputeWorkloadLoader(tracePath) + private val workloadLoader = ComputeWorkloadLoader(tracePath, 0L, 0L, 0.0) /** * The [ForkJoinPool] that is used to execute the simulation jobs. @@ -295,7 +294,6 @@ public class OpenDCRunner( "Scheduler " + "Success=${serviceMetrics.attemptsSuccess} " + "Failure=${serviceMetrics.attemptsFailure} " + - "Error=${serviceMetrics.attemptsError} " + "Pending=${serviceMetrics.tasksPending} " + "Active=${serviceMetrics.tasksActive}" } @@ -325,7 +323,14 @@ public class OpenDCRunner( val processors = machine.cpus.map { cpu -> - Cpu(0, cpu.numberOfCores, cpu.clockRateMhz, "Intel", "amd64", cpu.name) + CpuModel( + 0, + cpu.numberOfCores, + cpu.clockRateMhz.toFloat(), + "Intel", + "amd64", + cpu.name, + ) } val memoryUnits = @@ -347,7 +352,7 @@ public class OpenDCRunner( "node-$clusterId-$position", mapOf("cluster" to clusterId), MachineModel(processors, memoryUnits[0]), - SimPsuFactories.simple(powerModel), + powerModel, ) res += spec diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt index 96b42ac8c..7e09e9e94 100644 --- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt +++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/runner/internal/WebComputeMonitor.kt @@ -22,11 +22,11 @@ package org.opendc.web.runner.internal -import org.opendc.compute.telemetry.ComputeMonitor -import org.opendc.compute.telemetry.table.HostTableReader -import org.opendc.compute.telemetry.table.ServiceData -import org.opendc.compute.telemetry.table.ServiceTableReader -import org.opendc.compute.telemetry.table.toServiceData +import org.opendc.compute.simulator.telemetry.ComputeMonitor +import org.opendc.compute.simulator.telemetry.table.HostTableReader +import org.opendc.compute.simulator.telemetry.table.ServiceData +import org.opendc.compute.simulator.telemetry.table.ServiceTableReader +import org.opendc.compute.simulator.telemetry.table.toServiceData import kotlin.math.roundToLong /** @@ -107,7 +107,7 @@ internal class WebComputeMonitor : ComputeMonitor { serviceData.tasksTotal, serviceData.tasksPending, serviceData.tasksTotal - serviceData.tasksPending - serviceData.tasksActive, - serviceData.attemptsError + serviceData.attemptsFailure, + serviceData.attemptsTerminated, ) } diff --git a/opendc-web/opendc-web-ui/src/components/topologies/sidebar/machine/UnitTabsComponent.js b/opendc-web/opendc-web-ui/src/components/topologies/sidebar/machine/UnitTabsComponent.js index b800e9d47..4032d6078 100644 --- a/opendc-web/opendc-web-ui/src/components/topologies/sidebar/machine/UnitTabsComponent.js +++ b/opendc-web/opendc-web-ui/src/components/topologies/sidebar/machine/UnitTabsComponent.js @@ -5,11 +5,11 @@ import UnitAddContainer from './UnitAddContainer' import UnitListContainer from './UnitListContainer' function UnitTabsComponent({ machineId }) { - const [activeTab, setActiveTab] = useState('cpu-units') + const [activeTab, setActiveTab] = useState('cpuModel-units') return ( setActiveTab(tab)}> - CPU}> + CPU}> diff --git a/opendc-web/opendc-web-ui/src/components/topologies/sidebar/rack/MachineComponent.js b/opendc-web/opendc-web-ui/src/components/topologies/sidebar/rack/MachineComponent.js index 18c3db3c6..b0a96a9ff 100644 --- a/opendc-web/opendc-web-ui/src/components/topologies/sidebar/rack/MachineComponent.js +++ b/opendc-web/opendc-web-ui/src/components/topologies/sidebar/rack/MachineComponent.js @@ -19,7 +19,7 @@ function MachineComponent({ machine, onClick }) { return ( onClick()}> - {machine.cpus.length > 0 ? : undefined} + {machine.cpus.length > 0 ? : undefined} {machine.gpus.length > 0 ? : undefined} {machine.memories.length > 0 ? : undefined} {machine.storages.length > 0 ? : undefined} diff --git a/settings.gradle.kts b/settings.gradle.kts index e079346b1..6b838108d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -26,9 +26,7 @@ include(":opendc-common") include(":opendc-compute:opendc-compute-api") include(":opendc-compute:opendc-compute-carbon") include(":opendc-compute:opendc-compute-failure") -include(":opendc-compute:opendc-compute-service") include(":opendc-compute:opendc-compute-simulator") -include(":opendc-compute:opendc-compute-telemetry") include(":opendc-compute:opendc-compute-topology") include(":opendc-compute:opendc-compute-workload") include(":opendc-workflow:opendc-workflow-api") @@ -53,8 +51,6 @@ include(":opendc-web:opendc-web-runner-quarkus") include(":opendc-web:opendc-web-runner-quarkus-deployment") include(":opendc-simulator:opendc-simulator-core") include(":opendc-simulator:opendc-simulator-flow") -include(":opendc-simulator:opendc-simulator-power") -include(":opendc-simulator:opendc-simulator-network") include(":opendc-simulator:opendc-simulator-compute") include(":opendc-trace:opendc-trace-api") include(":opendc-trace:opendc-trace-calcite") diff --git a/site/docs/documentation/Input/Topology.md b/site/docs/documentation/Input/Topology.md index 12e9c4850..cf7266169 100644 --- a/site/docs/documentation/Input/Topology.md +++ b/site/docs/documentation/Input/Topology.md @@ -21,7 +21,7 @@ In the following section, we describe the different components of the schema. |------------|-----------------------|-----------|---------|--------------------------------------------------------------------------------| | name | string | no | Host | The name of the host. This is only important for debugging and post-processing | | count | integer | no | 1 | The amount of hosts of this type are in the cluster | -| cpu | [CPU](#cpu) | yes | N/A | The CPUs in the host | +| cpuModel | [CPU](#cpuModel) | yes | N/A | The CPUs in the host | | memory | [Memory](#memory) | yes | N/A | The memory used by the host | | power model | [Power Model](#power-model) | yes | N/A | The power model used to determine the power draw of the host | @@ -192,7 +192,7 @@ Aside from using number to indicate values it is also possible to define values [ { "name": "H01", - "cpu": + "cpuModel": { "coreCount": 8, "coreSpeed": "3.2 Ghz" diff --git a/site/docs/documentation/Input/TopologySchema.md b/site/docs/documentation/Input/TopologySchema.md index 9c4e0c400..d01995684 100644 --- a/site/docs/documentation/Input/TopologySchema.md +++ b/site/docs/documentation/Input/TopologySchema.md @@ -5,8 +5,8 @@ A topology file can be validated using a JSON schema validator, such as https:// { "$schema": "OpenDC/Topology", "$defs": { - "cpu": { - "description": "definition of a cpu", + "cpuModel": { + "description": "definition of a cpuModel", "type": "object", "properties": { "vendor": { @@ -25,7 +25,7 @@ A topology file can be validated using a JSON schema validator, such as https:// "type": "integer" }, "coreSpeed": { - "description": "The core speed of the cpu in Mhz", + "description": "The core speed of the cpuModel in Mhz", "type": "number" }, "count": { @@ -106,15 +106,15 @@ A topology file can be validated using a JSON schema validator, such as https:// "type": "integer", "default": 1 }, - "cpu": { - "$ref": "#/$defs/cpu" + "cpuModel": { + "$ref": "#/$defs/cpuModel" }, "memory": { "$ref": "#/$defs/memory" } }, "required": [ - "cpu", + "cpuModel", "memory" ] }, diff --git a/site/docs/documentation/Output.md b/site/docs/documentation/Output.md index 176c87212..dbc2a7654 100644 --- a/site/docs/documentation/Output.md +++ b/site/docs/documentation/Output.md @@ -33,7 +33,7 @@ The host output file, contains all metrics of related to the host run. | timestamp | int64 | ms | Timestamp of the sample | | absolute timestamp | int64 | ms | The absolute timestamp based on the given workload | | host_id | binary | string | The id of the host given by OpenDC | -| cpu_count | int32 | count | The number of available cpu cores | +| cpu_count | int32 | count | The number of available cpuModel cores | | mem_capacity | int64 | Mb | The amount of available memory | | guests_terminated | int32 | count | The number of guests that are in a terminated state. | | guests_running | int32 | count | The number of guests that are in a running state. |