grail-3.1.0+16.04.20160125/0000755000015600001650000000000012651522501015151 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/docs/0000755000015600001650000000000012651522501016101 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/docs/pivot.txt0000644000015600001650000000572412651522342020016 0ustar pbuserpbgroup00000000000000The pivot, p, is defined as the point, within the convex hull of the contacts, which, after rotation and scaling, leaves the transformed contacts as close to the actual positions as possible. Let r_i be the starting points and s_i the actual ending points in a transformation. Let D be the scaling, and R the rotation. Then, minimizing L(p) = sum_i |D R (r_i - p) + p - s_i|^2 / N yields the pivot. Let rm = sum_i r_i / N, p = rm + u, q_i = s_i - rm - D R (r_i - rm), and we get L(p) = sum_i |(1 - D R) u - q_i|^2 / N. With L0 = sum_i norm2(q_i) / N, T = (1 - D R)' (1 - D R), m = sum_i q_i / N, we can write this as L(p) = L0 + u' T u - 2 m' (1 - D R) u. To handle the constraint, we can approximate the hull with a circle centered at rm. If we pick the average radius, P, the constraint becomes |u| < P. Relaxing [1] the expression (h >= 0) yields L(p, h) = L0 + u' T u - 2 m' (1 - D R) u + h (|u|^2 - P^2), leading to the linear equation (T + h) u = (1 - D R)' m. Further, sm = sum_i s_i / N, m = sum_i (s_i - rm - D R (r_i - rm)) / N = sm - rm, thus m is the average displacement. In words, the pivot is the average position plus a correction depending on the average displacement. * Some algebra solves the equation, D' = D, [D, R] = 0, R = S + C, S' = -S, C' = C, R + R' = 2 C, T = (1 - D R)' (1 - D R) = 1 + D^2 - 2 D C, which is a simple diagonal scaling operator. With a = 1 - D C, b = D S, we can write this as T = (1 - DC)^2 + D^2(1 - C^2) = (1 - DC)^2 + D^2 S^2 = a^2 + b^2. Similarly, we can write (1 - D R)' = ((a, b), (-b, a)), and thusly, u = Q(h) m, with Q(h) = ((a, b), (-b, a)) / (a^2 + b^2 + h). When D R = 1, it follows that a^2 + b^2 = 0, and the relaxation ensures that u is finite. * The drag is found by minimizing E(d) = sum_i | D R (r_i - p) + p + d - s_i |^2 / N, E(d) = d^2 + 2 d' ((1 - D R) u - m) + E0, which leads to the linear equation d = m - (1 - D R) u. Explicitly, d = m - (a ux - b uy, a uy + b ux). Inserting the expression for u yields, after some algebra, d = m (1 - (a^2 + b^2) / (a^2 + b^2 + h)). When h = 0, d = 0, as expected. When a^2 + b^2 = 0, d = m, also as expected. For constrained cases, the drag is a fraction of the average displacement. * Time to look at measures for the relaxation parameter. Since d depends on h, we can write the correction u(h) in terms of d instead. After som algebra, |u(h)| = (|m| - |d|) / sqrt(a^2 + b^2). Conversely, d(h) can be written in terms of the constrained u(h) as d(h) = m (1 - sqrt(a^2 + b^2) |u(h)| / |m|). Since |u(0)| = |m| / sqrt(a^2 + b^2), we obtain d(h) = m (1 - |u(h)| / |u(0)|). * We can now write down an explicit recipe for determining the pivot (p) and drag (d), given the transformation parameters a and b. w = (a mx + b my, a my - b mx). If |w| = 0, then u = 0. Consequently p = rm, d = m, and we are done. Else, u = w |m|^2 / |w|^2, t = P / |u|. If t >= 1, then p = rm + u, d = 0, and we are done. Else, p = rm + t u, d = (1 - t) m. [1] See Lagrange relaxation grail-3.1.0+16.04.20160125/docs/gestures.txt0000644000015600001650000000560212651522342020511 0ustar pbuserpbgroup00000000000000Introduction ------------ This document describes how the gestures are extracted from multi-finger actions. The process is divided into gestural transformations, gesture recognition, and gesture instantiation. Gestural Transformations ------------------------ All two-finger transformations are extracted. These are all exact, in the sense that continuously transforming the original finger positions, frame per frame, will exactly follow the actual finger positions. In addition to two-finger transformations, a global gesture is also extracted. The rotation and scaling is taken from the contact pair with the longest distance between contacts. This approximates the behavior of a region, such that complex transformations could, in principle, be happening inside the region, but at a distance, the transformation will look like it was performed with two fingers. At each time step, a gestural transformation is goverened by rotation, scaling and translation. The point around which rotation and scaling is performed is called the pivot. To form as natural gestures as possible, this point always lies within the area formed by the contacts themselves. It is placed at the point which, after rotation and scaling, leaves the transformed contacts as close to the actual positions as possible. The translation, or drag, is always a fraction of the movement of the center point. The fraction is called moveness, and is related to the distance between the pivot and the center point. When the pivot is at the center point, the moveness is one and the drag is the same as the center movement. When the pivot is at one of the contacts, as in rotation around a finger, the moveness is zero, and consequently the drag is zero. The relations between the pivot, the moveness and the drag are detailed in the document pivot.txt. Gesture Recognition ------------------- Each gestural transformation can give rise to one or several gesture primitives. Based on the rotation, scaling, moveness and drag values, the gesture primitives drag, pinch and rotate are recognized. The onset of a gesture primitive is governed by a threshold and a timeout. Basically, if performed distinctly enough, the gesture will be triggered, and will remain active until a finger is lifted or added. Gesture Instantiation --------------------- Given a set of detected gesture primitives, only some will trigger actual gesture events. First, the set of available primitives are matched against available listeners. Primitives not listened for are dropped. The remaining set is arranged according to priority. A pointer gesture has lower priority than a two-finger gesture, which has lower priority than a tap, for instance. As long as the gesture primitives of higher priority are expected but not activated, all gestures are held back. Once one of the highest priority primitives are activated, all primitives of lower priority are cancelled, and events are emitted. grail-3.1.0+16.04.20160125/docs/grail-problems.txt0000644000015600001650000000476412651522342021577 0ustar pbuserpbgroup00000000000000Split gestures into recognition and application ----------------------------------------------- Gesture detection is not an exact science, but the algorithms inevitably involve decisions influenced by what gestures are available to choose from. Therefore, the recognition should be considered an inherent property of the device itself, regardless of user interaction context. Just imagine having a keyboard that resized slightly everytime you switched from chrome to gimp. Tag events as being part of a gesture ------------------------------------- One of the problems faced when replacing one set of events with another is where and how this filtering should take place. One window might listen for spiral gestures, whereas another window is a paint program where you actually want to draw a spiral. By introducing a relation between a gesture and an event, filtering becomes something simple that can be performed close to the window. The relation can be implemented as a bitmask representing what gestures the event is part of. Help the client to keep track of active gestures ------------------------------------------------ A gesture starts, continues, and either completes or aborts. A client that listens to a subset of gestures will have to keep track. Compatible to Qt approach. Allow clients to listen to different gestures --------------------------------------------- Clients listening on certain gestures will get those gesture events that apply to the client, which makes it possible for different clients to listen to different types of gestures. For instance, having an MT drawing program next to a web browser, a two finger stroke in the drawing program will result in two lines, whereas in the web browser, it will scroll the text. Propagate gesture events based on the focus point ------------------------------------------------- Like pointer events, a gesture applies to a window or a window manager, based on where it is performed on the screen. In order to route the gesture events to the right window, we propagate them through the window hierarchy based on the gesture focus points. Based on the target windows, their respective gesture type masks, and the active set of gestures, final gesture events are emitted to the right windows. Allow Window Manager to grab system-wide gestures ------------------------------------------------- Even if clients are not listening to global window-manager gestures, it could well be that no other gestures should be displayed while the global gesture is taking place. grail-3.1.0+16.04.20160125/autogen.sh0000755000015600001650000000031312651522342017152 0ustar pbuserpbgroup00000000000000#! /bin/sh srcdir=`dirname $0` test -z "$srcdir" && srcdir=. ORIGDIR=`pwd` cd $srcdir autoreconf --force --install || exit 1 cd $ORIGDIR || exit $? test -n "$NOCONFIGURE" || "$srcdir/configure" "$@" grail-3.1.0+16.04.20160125/include/0000755000015600001650000000000012651522500016573 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/include/oif/0000755000015600001650000000000012651522501017351 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/include/oif/grail.h0000644000015600001650000005177612651522342020643 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation, either version 3 of the License, or (at your * option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @file oif/grail.h * Definitions of the main and platform-generic API */ #ifndef GRAIL_OIF_GRAIL_H_ #define GRAIL_OIF_GRAIL_H_ /* Macros that set symbol visibilities in shared libraries properly. * Adapted from http://gcc.gnu.org/wiki/Visibility */ #if defined _WIN32 || defined __CYGWIN__ #ifdef BUILDING_GRAIL #define GRAIL_PUBLIC __declspec(dllexport) #else #define GRAIL_PUBLIC __declspec(dllimport) #endif #else #if defined __GNUC__ #define GRAIL_PUBLIC __attribute__ ((visibility("default"))) #else #pragma message ("Compiler does not support symbol visibility.") #define GRAIL_PUBLIC #endif #endif #include #include #ifdef __cplusplus extern "C" { #endif /** * @defgroup v3 Grail 3.x * @{ */ /** An object for the context of the grail instance */ typedef struct UGHandle_* UGHandle; /** An object for a gesture subscription */ typedef struct UGSubscription_* UGSubscription; /** An object for an event */ typedef struct UGEvent_* UGEvent; /** An object for a gesture state in time */ typedef const struct UGSlice_* UGSlice; /** The status code denoting the result of a function call */ typedef enum UGStatus { UGStatusSuccess = 0, /**< The call was successful */ UGStatusErrorGeneric, /**< A platform-dependent error occurred */ UGStatusErrorResources, /**< An error occurred due to insufficient resources */ UGStatusErrorNoEvent, /**< No events were available to get */ UGStatusErrorUnknownProperty, /**< The requested property value was not set */ UGStatusErrorInvalidValue, /**< The property value passed in is invalid */ UGStatusErrorInvalidDevice, /**< The requested device does not exist */ UGStatusErrorInvalidSubscription, /**< The subscription is invalid */ UGStatusErrorInvalidGesture, /**< The requested gesture does not exist */ UGStatusErrorInvalidIndex, /**< The requested touch index is invalid */ UGStatusErrorAtomicity, /**< The subscription has a different value for UGSubscriptionPropertyAtomicGestures than other subscriptions active on the window */ } UGStatus; /** Subscription properties */ typedef enum UGSubscriptionProperty { /** * Device to subscribe to gesture events for * * Value type: UFDevice */ UGSubscriptionPropertyDevice, /** * Window to subscribe to gesture events for * * Value type: UFWindowId */ UGSubscriptionPropertyWindow, /** * Gesture types to subscribe for * * Value type: UGGestureTypeMask */ UGSubscriptionPropertyMask, /** * Number of touches required to begin gesture * * Value type: unsigned int * Default value: 2 touches */ UGSubscriptionPropertyTouchesStart, /** * Minimum number of touches for gesture * * Value type: unsigned int * Default value: 2 touches */ UGSubscriptionPropertyTouchesMinimum, /** * Maximum number of touches for gesture * * Value type: unsigned int * Default value: 2 touches */ UGSubscriptionPropertyTouchesMaximum, /** * Timeout for recognizing a drag gesture * * Value type: 64-bit unsigned integer * Default value: 300 ms */ UGSubscriptionPropertyDragTimeout, /** * Threshold value for recognizing a drag gesture * * Value type: float * Default value: 0.0026 m * * The value is in units of meters. */ UGSubscriptionPropertyDragThreshold, /** * Timeout for recognizing a pinch gesture * * Value type: 64-bit unsigned integer * Default value: 300 ms */ UGSubscriptionPropertyPinchTimeout, /** * Threshold value for recognizing a pinch gesture * * Value type: float * Default value: 1.1 * * The value is a proportionality representing how much a group of touches * have moved closer or farther apart. For example, a threshold of 1.1 would * be met if two touches moved from 1000 pixels apart to either 1100 or 909 * pixels apart. */ UGSubscriptionPropertyPinchThreshold, /** * Timeout for recognizing a rotate gesture * * Value type: 64-bit unsigned integer * Default value: 500 ms */ UGSubscriptionPropertyRotateTimeout, /** * Threshold value for recognizing a rotate gesture * * Value type: float * Default value: 0.125663706 (1/50th of a revolution) * * The value is in units of radians. */ UGSubscriptionPropertyRotateThreshold, /** * Timeout for recognizing a tap gesture * * Value type: 64-bit unsigned integer * Default value: 300 ms */ UGSubscriptionPropertyTapTimeout, /** * Threshold value for recognizing a tap gesture * * Value type: float * Default value: 0.0026 m * * For a tap to be recognized, the touches must not move more than the * threshold value in any direction. */ UGSubscriptionPropertyTapThreshold, /** * Only support one gesture at a time * * Value type: int with boolean semantics * Default value: False * * The first version of grail supported only one gesture at a time. When this * property is true, grail will mimic this behavior. This results in the * following: * * - The grail client must not attempt to accept or reject a gesture * - If a gesture is active for a maximum of N touches, the addition of * another touch will end the gesture. A new gesture is begun if another * subscription's TouchesStart property equals the new number of touches. * - All subscriptions for a window must have the same value for this * property. If a client attempts to activate a subscription with a * different value for this property than the already activated * subscriptions for the window, UGStatusErrorAtomicity will be returned. * - Gestures from multiple subscriptions may be active at the same time. * * There is one key difference between grail v1 behavior and the use of this * option. The v1 behavior only supported one gesture per device. The use of * this option only supports one gesture per device per window. The beginning * of a gesture in a window does not inhibit gestures in other windows. It * also does not guarantee that there are no active touches outside the * window. */ UGSubscriptionPropertyAtomicGestures, } UGSubscriptionProperty; /** Event type */ typedef enum UGEventType { UGEventTypeSlice = 0, /**< A new gesture slice */ } UGEventType; /** Event properties */ typedef enum UGEventProperty { /** * Type of event * * Value type: UGEventType */ UGEventPropertyType = 0, /** * Slice of a gesture * * Value type: UGSlice */ UGEventPropertySlice, /** * Event time * * Value type: 64-bit unsigned int * * This property holds the time the event occurred in display server * timespace. The time is provided in milliseconds (ms). */ UGEventPropertyTime, } UGEventProperty; /** Gesture type bit indices */ typedef enum UGGestureType { UGGestureTypeDrag = 0x1, /**< Drag gesture */ UGGestureTypePinch = 0x2, /**< Pinch gesture */ UGGestureTypeRotate = 0x4, /**< Rotate gesture */ UGGestureTypeTap = 0x8, /**< Tap gesture */ UGGestureTypeTouch = 0x10, /**< Touch gesture */ } UGGestureType; /** Bit-mask of gesture types */ typedef uint32_t UGGestureTypeMask; /** 2D affine transformation */ typedef const float UGTransform[3][3]; /** Gesture slice state */ typedef enum UGGestureState { UGGestureStateBegin = 0, /**< Gesture slice begin */ UGGestureStateUpdate, /**< Gesture slice update */ UGGestureStateEnd, /**< Gesture slice end */ } UGGestureState; /** * Gesture slice properties * * The coordinate system for gesture properties is determined by the device * type. Direct devices provide screen coordinates. Indirect devices provide * device coordinates. */ typedef enum UGSliceProperty { /** * Gesture ID * * Value type: unsigned int */ UGSlicePropertyId = 0, /** * Gesture set state * * Value type: UGGestureState */ UGSlicePropertyState, /** * Gesture subscription * * Value type: UGSubscription */ UGSlicePropertySubscription, /** * Recognized gestures * * Value type: UGGestureTypeMask */ UGSlicePropertyRecognized, /** * Number of touches * * Value type: unsigned int */ UGSlicePropertyNumTouches, /** * Touch frame * * Value type: UFFrame */ UGSlicePropertyFrame, /** * Original gesture center along the X axis * * Value type: float * * This value represents the original geometric center of the touches. */ UGSlicePropertyOriginalCenterX, /** * Original gesture center along the Y axis * * Value type: float * * This value represents the original geometric center of the touches. */ UGSlicePropertyOriginalCenterY, /** * Original radius of touches * * Value type: float * * This value represents the average of the square of the euclidean distance * from the geometric center of the original touches to each touch. */ UGSlicePropertyOriginalRadius, /** * Best-fit 2D affine transformation of previous to current touch locations * * Value type: pointer to UGTransform * * The transformation is relative to the previous geometric center of the * touches. */ UGSlicePropertyTransform, /** * Best-fit 2D affine transformation of original to current touch locations * * Value type: pointer to UGTransform * * The transformation is relative to the original geometric center of the * touches. */ UGSlicePropertyCumulativeTransform, /** * Best-fit instant center of rotation along the X axis * * Value type: float */ UGSlicePropertyCenterOfRotationX, /** * Best-fit instant center of rotation along the Y axis * * Value type: float */ UGSlicePropertyCenterOfRotationY, /** * Whether the construction of all gestures containing the same touches is * finished * * Value type: int with boolean semantics * * Grail events are serial. This property allows the client to determine if * all the possible gestures from the set of touches in this gesture have been * sent. When this value is true, the client will have received all the * information needed to make a gesture accept and reject decision based on * potentially overlapping gestures. An example is when both one and two touch * gestures are subscribed on the same window with the same gesture types and * thresholds. When this property is true for one touch gesture events, the * client can be sure there are no other touches unless a two touch gesture * event has already been sent. */ UGSlicePropertyConstructionFinished, } UGSliceProperty; /** * Create a new grail context * * @param [out] handle The new grail context object * @return UGStatusSuccess or UGStatusErrorResources */ GRAIL_PUBLIC UGStatus grail_new(UGHandle *handle); /** * Delete a grail context * * @param [in] handle The grail context object */ GRAIL_PUBLIC void grail_delete(UGHandle handle); /** * Get the event file descriptor for the frame context * * @param [in] handle The grail context object * @return A file descriptor for the context * * When events are available for processing, the file descriptor will be * readable. Perform an 8-byte read from the file descriptor to clear the state. * Refer to the EVENTFD(2) man page for more details. */ GRAIL_PUBLIC int grail_get_fd(UGHandle handle); /** * Create a new subscription object * * @param [out] subscription The new subscription object * @return UGStatusSuccess or UGStatusErrorResources */ GRAIL_PUBLIC UGStatus grail_subscription_new(UGSubscription* subscription); /** * Delete a subscription object * * @param [in] subscription The subscription object */ GRAIL_PUBLIC void grail_subscription_delete(UGSubscription subscription); /** * Set a subscription property * * @param [in] subscription The subscription object * @param [in] property The subscription property * @param [in] value The new value of the property * @return UGStatusSuccess or UGStatusInvalidProperty */ GRAIL_PUBLIC UGStatus grail_subscription_set_property(UGSubscription subscription, UGSubscriptionProperty property, const void* value); /** * Get a subscription property * * @param [in] subscription The subscription object * @param [in] property The subscription property * @param [out] value The value of the property * @return UGStatusSuccess or UGStatusInvalidProperty */ GRAIL_PUBLIC UGStatus grail_subscription_get_property(UGSubscription subscription, UGSubscriptionProperty property, void* value); /** * Activate a subscription * * @param [in] handle The context object * @param [in] subscription The subscription object * @return UGStatusSuccess or UGStatusErrorInvalidDevice */ GRAIL_PUBLIC UGStatus grail_subscription_activate(UGHandle handle, UGSubscription subscription); /** * Deactivate a subscription * * @param [in] handle The context object * @param [in] subscription The subscription object */ GRAIL_PUBLIC void grail_subscription_deactivate(UGHandle handle, UGSubscription subscription); /** * Process a frame event * * @param [in] handle The context object * @param [in] event The frame event */ GRAIL_PUBLIC void grail_process_frame_event(UGHandle handle, const UFEvent event); /** * Get an event from the grail context * * @param [in] handle The context object * @param [out] event The retrieved event * @return UGStatusSuccess or UGStatusErrorNoEvent */ GRAIL_PUBLIC UGStatus grail_get_event(UGHandle handle, UGEvent *event); /** * Update the grail state for the given server time * * @param [in] handle The context object * @param [in] time The current server time * * The recognizer uses timeouts for deciding whether to accept or reject * touches. Calling this function will perform any pending decisions based on * the current server time. */ GRAIL_PUBLIC void grail_update_time(UGHandle handle, uint64_t time); /** * Get the next timeout at which to update the grail state * * @param [in] handle The context object * @return The next server time at which the grail state should be updated * * To update the grail state, call grail_update_time(). */ GRAIL_PUBLIC uint64_t grail_next_timeout(UGHandle handle); /** * Increment the reference count of an event * * @param [in] event The event object */ GRAIL_PUBLIC void grail_event_ref(UGEvent event); /** * Decrement the reference count of an event * * @param [in] event The event object * * When the reference count reaches zero, the event is freed. */ GRAIL_PUBLIC void grail_event_unref(UGEvent event); /** * Get the value of a property of an event * * @param [in] event The event object * @param [in] property The property to retrieve a value for * @param [out] value The value retrieved * @return UGStatusSuccess or UGStatusErrorUnknownProperty */ GRAIL_PUBLIC UGStatus grail_event_get_property(const UGEvent event, UGEventProperty property, void *value); /** * Get the touch ID of a touch in a slice * * @param [in] slice The gesture slcie object * @param [in] index The index of the touch in the slice * @param [out] touch_id The touch ID of the touch */ GRAIL_PUBLIC UGStatus grail_slice_get_touch_id(const UGSlice slice, unsigned int index, UFTouchId *touch_id); /** * Get the value of a property of a gesture slice * * @param [in] slice The gesture slice object * @param [in] property The property to retrieve a value for * @param [out] value The value retrieved * @return UGStatusSuccess or UGStatusErrorUnknownProperty */ GRAIL_PUBLIC UGStatus grail_slice_get_property(const UGSlice slice, UGSliceProperty property, void *value); /** * Accept gesture associated with gesture slice * * @param [in] handle The context object * @param [in] id The ID of the gesture to accept * @return UGStatusSuccess or UGStatusErrorInvalidGesture */ GRAIL_PUBLIC UGStatus grail_accept_gesture(UGHandle handle, unsigned int id); /** * Reject gesture associated with gesture slice * * @param [in] handle The context object * @param [in] id The ID of the gesture to reject * @return UGStatusSuccess or UGStatusErrorInvalidGesture */ GRAIL_PUBLIC UGStatus grail_reject_gesture(UGHandle handle, unsigned int id); /** * @defgroup v3-helpers Helper Functions * These helper functions may be used in place of the generic property getters. * They are limited to properties that are guaranteed to exist in all instances * of the objects. * @{ */ /** * Get the type of an event * * @param [in] event The event object * @return The type of the event */ GRAIL_PUBLIC UGEventType grail_event_get_type(const UGEvent event); /** * Get the time of an event * * @param [in] event The event object * @return The time of the event */ GRAIL_PUBLIC uint64_t grail_event_get_time(const UGEvent event); /** * Get the ID of a gesture from a slice * * @param [in] slice The gesture slice object * @return The ID of the gesture */ GRAIL_PUBLIC unsigned int grail_slice_get_id(const UGSlice slice); /** * Get the state of a gesture in a slice * * @param [in] slice The gesture slice object * @return The state of the gesture in the slice */ GRAIL_PUBLIC UGGestureState grail_slice_get_state(const UGSlice slice); /** * Get the subscription for the gesture from the slice * * @param [in] slice The gesture slice object * @return The subscription */ GRAIL_PUBLIC UGSubscription grail_slice_get_subscription(const UGSlice slice); /** * Get the gestures recognized through the slice * * @param [in] slice The gesture slice object * @return The recognized gestures */ GRAIL_PUBLIC UGGestureTypeMask grail_slice_get_recognized(const UGSlice slice); /** * Get the current number of touches in the slice * * @param [in] slice The gesture slice object * @return The number of touches */ GRAIL_PUBLIC unsigned int grail_slice_get_num_touches(const UGSlice slice); /** * Get the original centroid position of the gesture along the X axis * * @param [in] slice The gesture slice object * @return The position */ GRAIL_PUBLIC float grail_slice_get_original_center_x(const UGSlice slice); /** * Get the original centroid position of the gesture along the Y axis * * @param [in] slice The gesture slice object * @return The position */ GRAIL_PUBLIC float grail_slice_get_original_center_y(const UGSlice slice); /** * Get the original radius of the gesture * * @param [in] slice The gesture slice object * @return The position */ GRAIL_PUBLIC float grail_slice_get_original_radius(const UGSlice slice); /** * Get the instantaneous center of rotation of the gesture along the X axis * * @param [in] slice The gesture slice object * @return The position */ GRAIL_PUBLIC float grail_slice_get_center_of_rotation_x(const UGSlice slice); /** * Get the instantaneous center of rotation of the gesture along the Y axis * * @param [in] slice The gesture slice object * @return The position */ GRAIL_PUBLIC float grail_slice_get_center_of_rotation_y(const UGSlice slice); /** * Get the best-fit instantaneous 2D affine transformation for the gesture slice * * @param [in] slice The gesture slice object * @return the transformation * * The returned transformation is owned by the gesture slice. */ GRAIL_PUBLIC const UGTransform *grail_slice_get_transform(const UGSlice slice); /** * Get the best-fit cumulative 2D affine transformation for the gesture slice * * @param [in] slice The gesture slice object * @return the transformation * * The returned transformation is owned by the gesture slice. */ GRAIL_PUBLIC const UGTransform *grail_slice_get_cumulative_transform(const UGSlice slice); /** * Get the frame frame for the slice * * @param [in] slice The gesture slice object * @return the frame */ GRAIL_PUBLIC const UFFrame grail_slice_get_frame(const UGSlice slice); /** * Get whether construction has finished for all touches in the gesture * * @param [in] slice The gesture slice object * @return whether construction has finished */ GRAIL_PUBLIC int grail_slice_get_construction_finished(const UGSlice slice); /** @} */ /** @} */ #ifdef __cplusplus } #endif #endif // GRAIL_OIF_GRAIL_H_ grail-3.1.0+16.04.20160125/src/0000755000015600001650000000000012651522501015740 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/src/slice.cpp0000644000015600001650000005405312651522342017555 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2010-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "config.h" #include "slice.h" #include #include #include #include #include #include #include "gesture.h" #include "log.h" #include "recognizer.h" #include "subscription.h" #include "touch.h" namespace { const UGTransform IDENTITY_TRANSFORM = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } }; } // namespace namespace oif { namespace grail { /** * @internal * Create a gesture begin slice */ UGSlice::UGSlice(Gesture& gesture, UFEvent event, const TouchMap& touches, UGGestureTypeMask recognized) : id_(gesture.id()), event_(event), frame_(NULL), touches_(touches), time_(frame_event_get_time(event)), state_(UGGestureStateBegin), physically_ended_(false), original_center_x_(0), original_center_y_(0), original_radius_(0), original_angle_(0), radius_(0), angle_(0), center_of_rotation_x_(0), center_of_rotation_y_(0), recognized_(recognized), construction_finished_(false), touch_count_changed_(false), subscription_(gesture.subscription()) { std::memcpy(transform_, IDENTITY_TRANSFORM, sizeof(IDENTITY_TRANSFORM)); std::memcpy(cumulative_transform_, IDENTITY_TRANSFORM, sizeof(IDENTITY_TRANSFORM)); UFStatus status = frame_event_get_property(event, UFEventPropertyFrame, &frame_); if (status != UFStatusSuccess) throw std::runtime_error("Warning: failed to get frame from event\n"); /* Hold a reference to the frame event */ frame_event_ref(event); /* Compute initial gesture slice properties */ GetValues(gesture, touches, &original_center_x_, &original_center_y_, &original_radius_, &original_angle_, true); radius_ = original_radius_; angle_ = original_angle_; } /** * @internal * Copy a gesture slice */ UGSlice::UGSlice(const SharedUGSlice& prev, bool end) : id_(prev->id_), event_(prev->event_), frame_(prev->frame_), touches_(prev->touches_), time_(frame_event_get_time(event_)), state_(end ? UGGestureStateEnd : UGGestureStateUpdate), physically_ended_(end ? true : prev->physically_ended_), original_center_x_(prev->original_center_x_), original_center_y_(prev->original_center_y_), original_radius_(prev->original_radius_), original_angle_(prev->original_angle_), radius_(prev->radius_), angle_(prev->angle_), center_of_rotation_x_(0), center_of_rotation_y_(0), recognized_(prev->recognized_), construction_finished_(prev->construction_finished_), touch_count_changed_(false), subscription_(prev->subscription_) { std::memcpy(transform_, IDENTITY_TRANSFORM, sizeof(IDENTITY_TRANSFORM)); std::memcpy(cumulative_transform_, prev->cumulative_transform_, sizeof(prev->cumulative_transform_)); UFStatus status = frame_event_get_property(event_, UFEventPropertyFrame, &frame_); if (status != UFStatusSuccess) throw std::runtime_error("Warning: failed to copy gesture slice\n"); /* Hold a reference to the frame event */ frame_event_ref(event_); } /** * @internal * Create a gesture update or end slice based on new touch frame */ UGSlice::UGSlice(const SharedUGSlice& prev, Gesture &gesture, UFEvent event, const TouchMap& touches) : id_(prev->id_), event_(event ? : NULL), frame_(NULL), touches_(touches), time_(frame_event_get_time(event)), state_(UGGestureStateUpdate), physically_ended_(prev->physically_ended_), original_center_x_(prev->original_center_x_), original_center_y_(prev->original_center_y_), original_radius_(prev->original_radius_), original_angle_(prev->original_angle_), radius_(prev->radius_), angle_(prev->angle_), center_of_rotation_x_(0), center_of_rotation_y_(0), recognized_(prev->recognized_), construction_finished_(prev->construction_finished()), touch_count_changed_(touches_.size() != prev->touches_.size()), subscription_(prev->subscription_) { std::memcpy(transform_, IDENTITY_TRANSFORM, sizeof(IDENTITY_TRANSFORM)); /* If the number of touches changed, reset transformation */ if (touch_count_changed_) { std::memcpy(cumulative_transform_, IDENTITY_TRANSFORM, sizeof(IDENTITY_TRANSFORM)); original_radius_ = 0; original_angle_ = 0; } else { std::memcpy(cumulative_transform_, prev->cumulative_transform_, sizeof(prev->cumulative_transform_)); } UFStatus status = frame_event_get_property(event, UFEventPropertyFrame, &frame_); if (status != UFStatusSuccess) throw std::runtime_error("Warning: failed to get frame from event\n"); /* Hold a reference to the frame event */ if (event_) frame_event_ref(event_); if (touch_count_changed_) { /* Compute initial gesture slice properties */ GetValues(gesture, touches, &original_center_x_, &original_center_y_, &original_radius_, &original_angle_, true); radius_ = original_radius_; angle_ = original_angle_; CheckGestureEnd(); } else { /* Compute updated gesture slice properties */ SetTransforms(gesture); SetCenterOfRotation(); CheckGestureEnd(); } } /** * @internal * Get gesture slice transformation properties */ void UGSlice::GetValues(Gesture &gesture, const TouchMap& touches, float* x, float* y, float* radius, float* angle, bool init) { *x = 0; *y = 0; /* Accumulate X and Y positions */ for (const auto& pair : touches) { const SharedTouch& grail_touch = pair.second; UFTouch touch; UFStatus status = frame_frame_get_touch_by_id(frame_, grail_touch->id(), &touch); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch from frame\n"; continue; } if (gesture.recognizer().device_direct()) { *x += frame_touch_get_window_x(touch); *y += frame_touch_get_window_y(touch); } else { *x += frame_touch_get_device_x(touch); *y += frame_touch_get_device_y(touch); } } /* Calculate centroid of touches */ *x /= touches.size(); *y /= touches.size(); /* Two or more touches are needed for radius and angle calculations */ if (touches.size() == 1) return; *radius = 0; *angle = 0; int num_angles = 0; for (const auto& pair : touches) { const SharedTouch& grail_touch = pair.second; UFTouch touch; float cur_x; float cur_y; UFStatus status = frame_frame_get_touch_by_id(frame_, grail_touch->id(), &touch); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch from frame\n"; continue; } if (gesture.recognizer().device_direct()) { cur_x = frame_touch_get_window_x(touch); cur_y = frame_touch_get_window_y(touch); } else { cur_x = frame_touch_get_device_x(touch); cur_y = frame_touch_get_device_y(touch); } /* Accumulate distance from each point to the centroid */ *radius += std::sqrt( (cur_x - *x) * (cur_x - *x) + (cur_y - *y) * (cur_y - *y)); /* Calculate the angle around a circle centered at the centroid from a * theoretical point at (1, 0) to the current touch */ float new_angle = std::atan2(cur_y - *y, cur_x - *x); if (init) { /* If this is a new calculation, accumulate angles */ *angle += new_angle; num_angles++; } else if (frame_touch_get_state(touch) != UFTouchStateBegin) { /* Update touch angle if the touch has moved */ float prev_angle = gesture.AngleForTouch(grail_touch->id()); if (new_angle - prev_angle < -M_PI) new_angle += 2 * M_PI; else if (new_angle - prev_angle > M_PI) new_angle -= 2 * M_PI; *angle += new_angle - prev_angle; num_angles++; } /* Save the touch angle in the gesture state */ gesture.SetAngleForTouch(grail_touch->id(), new_angle); } /* Calculate the average angle of the touches */ *radius /= touches.size(); *angle /= num_angles; if (!init) *angle += angle_; } /** * @internal * Calculate the new 2 dimensional affine transformation for the slice */ void UGSlice::SetTransforms(Gesture &gesture) { float center_x; float center_y; float new_radius = radius_; float new_angle = angle_; /* Get the transformation values for the updated touches */ GetValues(gesture, touches_, ¢er_x, ¢er_y, &new_radius, &new_angle, false); if (!touch_count_changed_) { /* If the touch count has not changed, calculate new transforms */ float scale = radius_ ? new_radius / radius_ : 1; transform_[0][0] = std::cos(new_angle - angle_) * scale; transform_[0][1] = -std::sin(new_angle - angle_) * scale; transform_[0][2] = center_x - cumulative_transform_[0][2] - original_center_x_; transform_[1][0] = -transform_[0][1]; transform_[1][1] = transform_[0][0]; transform_[1][2] = center_y - cumulative_transform_[1][2] - original_center_y_; scale = original_radius_ ? new_radius / original_radius_ : 1; cumulative_transform_[0][0] = std::cos(new_angle - original_angle_) * scale; cumulative_transform_[0][1] = -std::sin(new_angle - original_angle_) * scale; cumulative_transform_[0][2] = center_x - original_center_x_; cumulative_transform_[1][0] = -cumulative_transform_[0][1]; cumulative_transform_[1][1] = cumulative_transform_[0][0]; cumulative_transform_[1][2] = center_y - original_center_y_; } else { /* If the touch count has changed, the transforms are set appropriately in * the slice constructor. Update the transformation state values here. */ original_radius_ += new_radius - radius_; original_angle_ += new_angle - angle_; original_center_x_ += center_x - (original_center_x_ + cumulative_transform_[0][2]); original_center_y_ += center_y - (original_center_y_ + cumulative_transform_[1][2]); } /* Save the new radius and angle */ radius_ = new_radius; angle_ = new_angle; } /** * @internal * Determine the center of rotation point. * * For any given point q that is transformed by a 2D affine transformation * matrix T about anchor point P the new point q' may be determined by the * following equation: * * q' = T * (q - P) + P * * T and P are dependent, so we can modify one and find a new value for the * other. We will label the original T and P as T0 and P0, and the new values * will be labeled T1 and P1. We can find new values by solving the following * equation: * * q' = T0 * (q - P0) + P0 = T1 * (q - P1) + P1 * * In the calculations below, we use variables for the scalar values * that make up T0, P0, T1, and P1: * * T0: [ a -b c ] P0: [ x0 ] T1: [ a -b 0 ] P1: [ x1 ] * [ b a d ] [ y0 ] [ b a 0 ] [ y1 ] * [ 0 0 1 ] [ 0 ] [ 0 0 1 ] [ 0 ] * * Note that rotation and scaling are independent of the anchor point, so a and * b are equivalent between the transformation matrices. * * Since we know all the values of T0, P0, and T1, we can calculate the values * x1 and y1 in P1. */ void UGSlice::SetCenterOfRotation() { float a = transform_[0][0]; float b = transform_[1][0]; float c = transform_[0][2]; float d = transform_[0][2]; float x0 = original_center_x_ + cumulative_transform_[0][2]; float y0 = original_center_y_ + cumulative_transform_[1][2]; float x1; float y1; float div = a*a - 2*a + b*b + 1; if (std::fabs(div) < 1e-5) return; x1 = (a*a*x0 - a*(2*x0+c) + b*b*x0 - b*d + c + x0) / div; y1 = (a*a*y0 - a*(2*y0+d) + b*b*y0 + b*c + d + y0) / div; center_of_rotation_x_ = x1; center_of_rotation_y_ = y1; } /** * @internal * Check if the gesture has ended */ void UGSlice::CheckGestureEnd() { /* Get number of physically non-ended touches */ unsigned int num_active_touches = 0; for (const auto& pair : touches_) { const SharedTouch& touch = pair.second; if (!touch->pending_end() && !touch->ended()) num_active_touches++; } /* Check if currently active touches is outside range for subscription */ unsigned int touches_start = subscription_->touches_start(); unsigned int touches_min = subscription_->touches_min(); if ((!touches_min && num_active_touches < touches_start) || (touches_min && num_active_touches < touches_min)) physically_ended_ = true; } /** * @internal * Calculate the square of the cumulative drag of the gesture */ float UGSlice::CumulativeDrag2(float device_x_res, float device_y_res) const { return std::fabs(cumulative_transform_[0][2] / device_x_res * cumulative_transform_[0][2] / device_x_res + cumulative_transform_[1][2] / device_y_res * cumulative_transform_[1][2] / device_y_res); } /** * @internal * Calculate the cumulative pinch of the gesture. */ float UGSlice::CumulativePinch() const { float pinch = original_radius_ ? radius_ / original_radius_ : 1; return (pinch >= 1 ? pinch : 1 / pinch); } /** * @internal * Check if any subscribed gesture primitives have matched due to this slice */ UGGestureTypeMask UGSlice::CheckRecognition(const Gesture& gesture) { const UGSubscription &subscription = *subscription_; float res_x = gesture.recognizer().device_x_res(); float res_y = gesture.recognizer().device_y_res(); /* the cumulative time the gesture has been physically active */ uint64_t cumulative_time = time_ - gesture.start_time(); if ((subscription.mask() & UGGestureTypeDrag) && (!subscription.drag().timeout || cumulative_time < subscription.drag().timeout) && CumulativeDrag2(res_x, res_y) > (subscription.drag().threshold * subscription.drag().threshold)) recognized_ |= UGGestureTypeDrag; if ((subscription.mask() & UGGestureTypePinch) && (!subscription.pinch().timeout || cumulative_time < subscription.pinch().timeout) && CumulativePinch() > subscription.pinch().threshold) recognized_ |= UGGestureTypePinch; if ((subscription.mask() & UGGestureTypeRotate) && (!subscription.rotate().timeout || cumulative_time < subscription.rotate().timeout) && std::fabs(angle_ - original_angle_) > subscription.rotate().threshold) recognized_ |= UGGestureTypeRotate; if ((subscription.mask() & UGGestureTypeTap) && cumulative_time < subscription.tap().timeout && CumulativeDrag2(res_x, res_y) < (subscription.tap().threshold * subscription.tap().threshold) && physically_ended_) recognized_ |= UGGestureTypeTap; if (subscription.mask() & UGGestureTypeTouch) recognized_ |= UGGestureTypeTouch; return recognized_; } UGStatus UGSlice::GetTouchId(unsigned int index, UFTouchId* touch_id) const { if (index >= touches_.size()) return UGStatusErrorInvalidIndex; auto it = touches_.cbegin(); std::advance(it, index); *touch_id = it->first; return UGStatusSuccess; } UGStatus UGSlice::GetProperty(UGSliceProperty property, void* value) const { switch (property) { case UGSlicePropertyId: *reinterpret_cast(value) = id_; return UGStatusSuccess; case UGSlicePropertyState: *reinterpret_cast(value) = state_; return UGStatusSuccess; case UGSlicePropertySubscription: *reinterpret_cast(value) = subscription_; return UGStatusSuccess; case UGSlicePropertyRecognized: *reinterpret_cast(value) = recognized_; return UGStatusSuccess; case UGSlicePropertyNumTouches: *reinterpret_cast(value) = touches_.size(); return UGStatusSuccess; case UGSlicePropertyFrame: *reinterpret_cast(value) = frame_; return UGStatusSuccess; case UGSlicePropertyOriginalCenterX: *reinterpret_cast(value) = original_center_x_; return UGStatusSuccess; case UGSlicePropertyOriginalCenterY: *reinterpret_cast(value) = original_center_y_; return UGStatusSuccess; case UGSlicePropertyOriginalRadius: *reinterpret_cast(value) = original_radius_; return UGStatusSuccess; case UGSlicePropertyTransform: *reinterpret_cast(value) = &transform_; return UGStatusSuccess; case UGSlicePropertyCumulativeTransform: *reinterpret_cast(value) = &cumulative_transform_; return UGStatusSuccess; case UGSlicePropertyCenterOfRotationX: *reinterpret_cast(value) = center_of_rotation_x_; return UGStatusSuccess; case UGSlicePropertyCenterOfRotationY: *reinterpret_cast(value) = center_of_rotation_y_; return UGStatusSuccess; case UGSlicePropertyConstructionFinished: *reinterpret_cast(value) = construction_finished_; return UGStatusSuccess; } return UGStatusErrorUnknownProperty; } UGSlice::~UGSlice() { frame_event_unref(event_); } } // namespace grail } // namespace oif extern "C" { UGStatus grail_slice_get_property(const UGSlice slice, UGSliceProperty property, void* value) { return static_cast(slice)->GetProperty(property, value); } unsigned int grail_slice_get_id(const UGSlice slice) { unsigned int id; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyId, &id); MUST_SUCCEED(status); return id; } UGGestureState grail_slice_get_state(const UGSlice slice) { UGGestureState state; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyState, &state); MUST_SUCCEED(status); return state; } UGGestureTypeMask grail_slice_get_recognized(const UGSlice slice) { UGGestureTypeMask mask; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyRecognized, &mask); MUST_SUCCEED(status); return mask; } UGSubscription grail_slice_get_subscription(const UGSlice slice) { UGSubscription subscription; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertySubscription, &subscription); MUST_SUCCEED(status); return subscription; } unsigned int grail_slice_get_num_touches(const UGSlice slice) { unsigned int num_touches; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyNumTouches, &num_touches); MUST_SUCCEED(status); return num_touches; } UGStatus grail_slice_get_touch_id(const UGSlice slice, unsigned int index, UFTouchId *touch_id) { return static_cast(slice)->GetTouchId( index, touch_id); } float grail_slice_get_original_center_x(const UGSlice slice) { float x; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyOriginalCenterX, &x); MUST_SUCCEED(status); return x; } float grail_slice_get_original_center_y(const UGSlice slice) { float y; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyOriginalCenterY, &y); MUST_SUCCEED(status); return y; } float grail_slice_get_original_radius(const UGSlice slice) { float radius; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyOriginalRadius, &radius); MUST_SUCCEED(status); return radius; } float grail_slice_get_center_of_rotation_x(const UGSlice slice) { float x; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyCenterOfRotationX, &x); MUST_SUCCEED(status); return x; } float grail_slice_get_center_of_rotation_y(const UGSlice slice) { float y; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyCenterOfRotationY, &y); MUST_SUCCEED(status); return y; } const UGTransform *grail_slice_get_transform(const UGSlice slice) { UGTransform *transform; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyTransform, &transform); MUST_SUCCEED(status); return transform; } const UGTransform *grail_slice_get_cumulative_transform(const UGSlice slice) { UGTransform *transform; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyCumulativeTransform, &transform); MUST_SUCCEED(status); return transform; } const UFFrame grail_slice_get_frame(const UGSlice slice) { UFFrame frame; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyFrame, &frame); MUST_SUCCEED(status); return frame; } int grail_slice_get_construction_finished(const UGSlice slice) { int construction_finished; UGStatus status = static_cast(slice)->GetProperty( UGSlicePropertyConstructionFinished, &construction_finished); MUST_SUCCEED(status); return construction_finished; } } // extern "C" grail-3.1.0+16.04.20160125/src/forward.h0000644000015600001650000000461712651522342017570 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_FORWARD_H_ #define GRAIL_FORWARD_H_ #include #include #include #include #include namespace oif { namespace grail { class UGEvent; typedef std::shared_ptr SharedUGEvent; class Gesture; typedef std::shared_ptr SharedGesture; class UGHandle; typedef std::shared_ptr SharedUGHandle; class Recognizer; typedef std::shared_ptr SharedRecognizer; class Touch; typedef std::shared_ptr SharedTouch; class UGSlice; typedef std::shared_ptr SharedUGSlice; class UGSubscription; typedef std::shared_ptr SharedUGSubscription; typedef std::set TouchSet; class TouchMap : public std::map { public: std::string ToString() const { std::ostringstream stream; auto it = begin(); if (it != end()) stream << (it++)->first; while (it != end()) stream << ", " << (it++)->first; return stream.str(); } bool Contains(const TouchMap &other_map) const { for (auto it : other_map) { if (find(it.first) == end()) return false; } return true; } bool Equals(const TouchMap &other_map) const { if (size() == other_map.size()) return Contains(other_map); else return false; } }; } // namespace grail } // namespace oif #define MUST_SUCCEED(status)\ if (status != UGStatusSuccess) {\ fprintf(stderr, "Fatal failure at %s, %s:%d\n", __func__, __FILE__, __LINE__);\ abort();\ } #endif // GRAIL_FORWARD_H_ grail-3.1.0+16.04.20160125/src/atomic-recognizer.cpp0000644000015600001650000002623212651522342022075 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "atomic-recognizer.h" #include #include #include #include #include #include #include "handle.h" #include "gesture.h" #include "log.h" #include "touch.h" namespace { const uint64_t MAX_TOUCHES_FOR_GESTURES = 5; } // namespace namespace oif { namespace grail { /** * @internal * Create a new atomic recognizer for a given device and window */ AtomicRecognizer::AtomicRecognizer(UGHandle* handle, const UFDevice device, UFWindowId window) : Recognizer(handle, device, window) { } /** * @internal * Process a frame event */ void AtomicRecognizer::ProcessFrameEvent(const UFEvent event) { LOG(Dbg) << "new event " << event << " with time " << frame_event_get_time(event) << "\n"; uint64_t event_time = frame_event_get_time(event); RejectOverdueGesturesAndTouches(event_time); ProcessTouches(event); if (new_touches_.size() > 0) { /* process all new touches at once to avoid the premature initiation of gestures for less touches than what the event brings */ MatchSubscriptionsForNewTouches(); } ProcessEvent(event); CheckConstructionFinished(event_time); FindGesturesToAccept(event_time); } void AtomicRecognizer::UpdateTime(uint64_t time) { Recognizer::UpdateTime(time); FindGesturesToAccept(time); } /** * @internal * Perform tasks necessary for when new touches occur and there is an existing * accepted gesture * * If a gesture may add touches without crossing the maximum for the * subscription, add the touches to the gesture and accept them. Otherwise, end * the gesture and add the current gesture touches to the free touches list. */ void AtomicRecognizer::HandleNewTouchesForAcceptedGesture( const SharedGesture& gesture) { UGSubscription* subscription = gesture->subscription(); if (gesture->current_touches().size() + new_touches_.size() <= subscription->touches_max()) { gesture->AddTouches(new_touches_); LOG(Dbg) << "new_touches_ have been added to atomic gesture " << gesture->id() << "\n"; for (const auto& pair : new_touches_) { const SharedTouch& touch = pair.second; touch->Accept(); LOG(Dbg) << "touch " << touch->id() << " has been accepted because it has been added to an atomic " "gesture\n"; ERASE_TOUCH(touch->id(), free_touches_); } CLEAR_TOUCHES(new_touches_); } else { for (const auto& pair : gesture->current_touches()) { const SharedTouch& touch = pair.second; INSERT_TOUCH(touch, free_touches_); } gesture->End(); LOG(Dbg) << "ended active atomic gesture " << gesture->id() << " because " << new_touches_.size() << " new touch(es) began and the max touches has been reached\n"; accepted_gestures_.erase(gesture); } } /** * @internal * Perform tasks necessary for when new touches occur and there is an existing * unaccepted gesture * * If a gesture may receive the new touches without crossing the maximum for * the subscription, add the touches to the gesture. Otherwise, cancel the * gesture and add the current gesture touches to the free touches list. */ void AtomicRecognizer::HandleNewTouchesForUnacceptedGesture( const SharedGesture& gesture) { UGSubscription* subscription = gesture->subscription(); if (gesture->current_touches().size() + new_touches_.size() <= subscription->touches_max()) { for (const auto& pair : new_touches_) { const SharedTouch& touch = pair.second; gesture->AddTouch(touch); LOG(Dbg) << "touch " << touch->id() << " has been added to atomic " << "gesture " << gesture->id() << "\n"; } } else { for (const auto& pair : gesture->current_touches()) { const SharedTouch& touch = pair.second; INSERT_TOUCH(touch, free_touches_); } gesture->Cancel(); LOG(Dbg) << "canceled inactive atomic gesture " << gesture->id() << " because a new touch began and the max touches has been " << "reached\n"; unaccepted_gestures_.erase(gesture); } } /** * @internal * Process all touches present in the given frame event. * * Add new touches to new_touches_ and free_touches_ maps, update the grail * touch state for existing touches, and remove touches from maps when they * physically end. */ void AtomicRecognizer::ProcessTouches(const UFEvent event) { UFFrame frame; UFStatus status = frame_event_get_property(event, UFEventPropertyFrame, &frame); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get frame from event\n"; return; } unsigned int num_touches = frame_frame_get_num_touches(frame); for (unsigned int i = 0; i < num_touches; ++i) { UFTouch touch; status = frame_frame_get_touch_by_index(frame, i, &touch); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch from frame\n"; continue; } switch (frame_touch_get_state(touch)) { case UFTouchStateBegin: { SharedTouch grail_touch(new Touch(touch, device_, window_id_)); LOG(Dbg) << "touch " << grail_touch->id() << " began with start time " << grail_touch->start_time() << "\n"; INSERT_TOUCH(grail_touch, all_touches_); INSERT_TOUCH(grail_touch, new_touches_); break; } case UFTouchStateUpdate: case UFTouchStateEnd: { auto it = all_touches_.find(frame_touch_get_id(touch)); if (it != all_touches_.end()) { if (it->second.expired()) { ERASE_TOUCH(it->first, all_touches_); break; } const SharedTouch& grail_touch = it->second.lock(); grail_touch->Update(touch); if (grail_touch->ended()) ERASE_TOUCH(grail_touch->id(), all_touches_); if (grail_touch->pending_end() || grail_touch->ended()) { ERASE_TOUCH(grail_touch->id(), new_touches_); ERASE_TOUCH(grail_touch->id(), free_touches_); } } break; } } } } /** * @internal * Consume the new touches. * Check if any new atomic gestures should begin because of the new touches * that came. */ void AtomicRecognizer::MatchSubscriptionsForNewTouches() { /* Check if any subscriptions are active before doing any processing */ if (num_subscriptions_ == 0) return; /* The new touches can now be used */ for (const auto& pair : new_touches_) { const SharedTouch& touch = pair.second; INSERT_TOUCH(touch, free_touches_); } /* HandleNewTouchForAcceptedGesture may erase the gesture from * accepted_gestures_, so we can't use range-based for loops */ for (auto it = accepted_gestures_.begin(); it != accepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; HandleNewTouchesForAcceptedGesture(gesture); } if (new_touches_.size() == 0) { /* they've all been consumed by the accepted gesture. */ return; } /* HandleNewTouchForUnacceptedGesture may erase the gesture from * accepted_gestures_, so we can't use range-based for loops */ for (auto it = unaccepted_gestures_.begin(); it != unaccepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; HandleNewTouchesForUnacceptedGesture(gesture); } MatchGestures(); CLEAR_TOUCHES(new_touches_); } void AtomicRecognizer::MatchGestures() { if (free_touches_.size() == 0 || free_touches_.size() > MAX_TOUCHES_FOR_GESTURES) return; uint64_t min_start_time = std::numeric_limits::max(); uint64_t max_start_time = 0; for (const auto& pair : free_touches_) { const SharedTouch& touch = pair.second; if (touch->accepted()) continue; if (touch->start_time() < min_start_time) min_start_time = touch->start_time(); if (touch->start_time() > max_start_time) max_start_time = touch->start_time(); } /* All touches in a gesture must begin within a composition timeframe */ if ((max_start_time - min_start_time) >= COMPOSITION_TIME) return; for (UGSubscription* subscription : subscriptions_[free_touches_.size()-1]) { Gesture* gesture = new Gesture(this, subscription, free_touches_, max_start_time); /* hold slice events until we accept the gesture */ gesture->set_keep_slices(true); unaccepted_gestures_.insert(SharedGesture(gesture)); LOG(Dbg) << "New tentative gesture " << gesture->id() << " matched subscription " << subscription << " with mask " << subscription->mask() << " for touches " << free_touches_.ToString() << "\n"; } } void AtomicRecognizer::FindGesturesToAccept(uint64_t event_time) { int64_t delta_time; for (auto it = unaccepted_gestures_.begin(); it != unaccepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; delta_time = event_time - gesture->start_time(); /* Atomic gestures must be accepted if they meet the subscription criteria. Wait a bit until accepting them to avoid premature gestures that will immediately get cancelled due to the apparition of a new touch point on the following events. e.g. like when a user puts four fingers on a touch screen but the corresponding touch points come in separate events (because fingers don't land precisely in sync and/or frame doesn't process their arrivals in the very same event). We should generate only the "final" 4-touches' gesture and not the intermediates 2-touches and 3-touches gestures. */ if (gesture->IsActive() && delta_time > 0 && (uint64_t)delta_time >= COMPOSITION_TIME) { gesture->set_keep_slices(false); LOG(Dbg) << "accepting active atomic gesture " << gesture->id() << "\n"; AcceptGesture(gesture); } } } uint64_t AtomicRecognizer::NextTimeout() { uint64_t timeout = Recognizer::NextTimeout(); /* Check for any active gestures that are kept back due to waiting for the * composition time to pass before flushing the queue */ for (const SharedGesture& gesture : unaccepted_gestures_) { if (!gesture->IsActive()) continue; uint64_t new_timeout = gesture->start_time() + COMPOSITION_TIME; if (new_timeout < timeout) timeout = new_timeout; } return timeout; } } // namespace grail } // namespace oif grail-3.1.0+16.04.20160125/src/subscription.h0000644000015600001650000000453212651522352020645 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012,2016 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_SUBSCRIPTION_H_ #define GRAIL_SUBSCRIPTION_H_ #include "oif/grail.h" #include "forward.h" struct UGSubscription_ {}; namespace oif { namespace grail { class UGSubscription : public UGSubscription_ { public: struct Limit { uint64_t timeout; float threshold; }; UGSubscription(); bool IsValid() const; UGStatus SetProperty(UGSubscriptionProperty property, const void* value); UGStatus GetProperty(UGSubscriptionProperty property, void* value) const; UFDevice device() const { return device_; } UFWindowId window_id() const { return window_id_; } UGGestureTypeMask mask() const { return mask_; } unsigned int touches_start() const { return touches_start_; } unsigned int touches_min() const { return touches_min_; } unsigned int touches_max() const { return touches_max_; } const Limit& drag() const { return drag_; } const Limit& pinch() const { return pinch_; } const Limit& rotate() const { return rotate_; } const Limit& tap() const { return tap_; } bool atomic() const { return atomic_; } UGSubscription(const UGSubscription&) = delete; UGSubscription& operator=(const UGSubscription&) = delete; private: UFDevice device_; UFWindowId window_id_; UGGestureTypeMask mask_; unsigned int touches_start_; unsigned int touches_min_; unsigned int touches_max_; Limit drag_; Limit pinch_; Limit rotate_; Limit tap_; bool atomic_; }; } // namespace grail } // namespace oif #endif // GRAIL_SUBSCRIPTION_H_ grail-3.1.0+16.04.20160125/src/Makefile.am0000644000015600001650000000167512651522342020010 0ustar pbuserpbgroup00000000000000lib_LTLIBRARIES = libgrail.la version_script = $(srcdir)/libgrail.ver AM_CPPFLAGS = -DBUILDING_GRAIL $(WARNING_CPPFLAGS) AM_CFLAGS = $(COVERAGE_CFLAGS) $(VISIBILITY_CFLAGS) AM_CXXFLAGS = $(CXX11_CXXFLAGS) $(COVERAGE_CXXFLAGS) $(VISIBILITY_CXXFLAGS) libgrail_la_LDFLAGS = \ -version-info @LIB_VERSION@ \ -Wl,--version-script=$(version_script) libgrail_la_LIBADD = \ $(FRAME_LIBS) \ $(COVERAGE_LIBS) \ -lm libgrail_la_SOURCES = \ atomic-recognizer.cpp \ atomic-recognizer.h \ event.cpp \ event.h \ forward.h \ gesture.cpp \ gesture.h \ handle.cpp \ handle.h \ log.cpp \ log.h \ recognizer.cpp \ recognizer.h \ regular-recognizer.cpp \ regular-recognizer.h \ slice.cpp \ slice.h \ subscription.cpp \ subscription.h \ touch.cpp \ touch.h INCLUDES = -I$(top_srcdir)/include/ $(FRAME_CFLAGS) libgrail_includedir = $(includedir)/oif libgrail_include_HEADERS = \ $(top_srcdir)/include/oif/grail.h EXTRA_DIST = $(version_script) grail-3.1.0+16.04.20160125/src/recognizer.h0000644000015600001650000000703412651522342020267 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_RECOGNIZER_H_ #define GRAIL_RECOGNIZER_H_ #include #include #include #include #include #include "oif/grail.h" #include "forward.h" #include "subscription.h" #define INSERT_TOUCH(touch, map) \ { \ (map)[(touch)->id()] = (touch); \ LOG(Dbg) << "touch " << (touch)->id() << " has been added to " #map "\n"; \ } #define ERASE_TOUCH(touch_id, map) \ { \ LOG(Dbg) << "touch " << touch_id << " has been erased from " #map "\n"; \ (map).erase(touch_id); \ } /* OBS: it avoids the "expensive" ToString() call when debug output is not wanted. */ #define CLEAR_TOUCHES(map) \ { \ if (oif::grail::Logger::instance().level() <= oif::grail::Logger::Dbg) \ if ((map).size() > 0) \ LOG(Dbg) << "touch(es) " << (map).ToString() \ << " have been erased from " #map "\n"; \ (map).clear(); \ } namespace oif { namespace grail { class Recognizer { public: Recognizer(UGHandle* handle, const UFDevice device, UFWindowId window); virtual ~Recognizer(); virtual bool atomic() const = 0; virtual void ProcessFrameEvent(const UFEvent event) = 0; unsigned int num_subscriptions() const {return num_subscriptions_;} UGStatus ActivateSubscription(UGSubscription* subscription); void DeactivateSubscription(UGSubscription* subscription); virtual void UpdateTime(uint64_t time); void RejectOverdueGesturesAndTouches(uint64_t time); virtual uint64_t NextTimeout(); UGStatus AcceptGesture(unsigned int id); UGStatus RejectGesture(unsigned int id); UGHandle* handle() const { return handle_; } UFDevice device() const { return device_; } UFWindowId window_id() const { return window_id_; } float device_x_res() const { return device_x_res_; } float device_y_res() const { return device_y_res_; } bool device_direct() const { return device_direct_; } Recognizer(const Recognizer&) = delete; Recognizer& operator=(const Recognizer&) = delete; protected: static const uint64_t COMPOSITION_TIME; /* in milliseconds */ UGHandle* const handle_; const UFDevice device_; const UFWindowId window_id_; float device_x_res_; /* Units of pixel/mm */ float device_y_res_; bool device_direct_; bool atomic_; std::set subscriptions_[5]; std::set unaccepted_gestures_; std::set accepted_gestures_; TouchMap free_touches_; unsigned int num_subscriptions_; void CheckConstructionFinished(uint64_t time); void AcceptGesture(SharedGesture gesture); void RejectGesture(SharedGesture gesture); void ProcessEvent(const UFEvent& event); }; } // namespace grail } // namespace oif #endif // GRAIL_RECOGNIZER_H_ grail-3.1.0+16.04.20160125/src/gesture.h0000644000015600001650000000573412651522342017603 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_GESTURE_H_ #define GRAIL_GESTURE_H_ #include #include #include #include #include #include "oif/grail.h" #include "forward.h" namespace oif { namespace grail { class Gesture : public std::enable_shared_from_this { public: Gesture(Recognizer* recognizer, UGSubscription* subscription, TouchMap& touches, uint64_t start_time); Gesture(const Gesture* gesture, TouchMap& touches); ~Gesture(); void AddTouch(const SharedTouch& touch); void AddTouches(TouchMap touches); bool ContainsTouch(const SharedTouch& touch) const; void Update(UFEvent event, TouchSet& touches); bool IsActive() const; bool IsConstructionFinished() const; bool IsPhysicallyEnded() const; void FinishConstruction(); uint64_t Timeout() const; float AngleForTouch(UFTouchId touch_id) const; void SetAngleForTouch(UFTouchId touch_id, float angle); void Cancel(); void End(); const unsigned int id() const { return id_; } const Recognizer& recognizer() const { return *recognizer_; } UGSubscription* subscription() const { return subscription_; } const TouchMap& current_touches() const { return current_touches_; } const TouchMap& all_touches() const { return all_touches_; } const uint64_t start_time() const { return start_time_; } bool canceled() const { return canceled_; } bool ended() const { return ended_; } Gesture(const Gesture&) = delete; Gesture& operator=(const Gesture&) = delete; void set_keep_slices(bool keep_slices); private: void CheckOwned(); void FlushSlices(); Recognizer* recognizer_; unsigned int id_; UGSubscription* subscription_; TouchMap current_touches_; /**< Current touches of the gesture */ TouchMap all_touches_; /**< All previous and current touches of the gesture */ uint64_t start_time_; bool owned_; bool not_owned_; UGGestureTypeMask recognized_; std::queue slices_; SharedUGSlice last_slice_; bool canceled_; bool ended_; std::map angles_; bool keep_slices_; }; } // namespace grail } // namespace oif #endif // GRAIL_GESTURE_H_ grail-3.1.0+16.04.20160125/src/touch.cpp0000644000015600001650000000512012651522342017567 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "touch.h" #include "log.h" namespace oif { namespace grail { Touch::Touch(UFTouch touch, UFDevice device, UFWindowId window_id) : id_(frame_touch_get_id(touch)), start_time_(frame_touch_get_start_time(touch)), device_(device), window_id_(window_id), accepted_(false), pending_end_(false), owned_(false), ended_(false) { Update(touch); } void Touch::Update(UFTouch touch) { if (frame_touch_get_state(touch) == UFTouchStateEnd) { ended_ = true; LOG(Dbg) << "touch " << id_ << " has ended\n"; } UFStatus status; int value; if (!pending_end_) { status = frame_touch_get_property(touch, UFTouchPropertyPendingEnd, &value); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch pending end property\n"; } else if (value) { pending_end_ = true; LOG(Dbg) << "touch " << id_ << " is pending end\n"; } } if (!owned_) { status = frame_touch_get_property(touch, UFTouchPropertyOwned, &value); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch owned property\n"; } else if (value) { owned_ = true; LOG(Dbg) << "touch " << id_ << " is owned\n"; } } } void Touch::Accept() { LOG(Dbg) << "accepting touch " << id_ << "\n"; if (frame_accept_touch(device_, window_id_, id_) != UFStatusSuccess) LOG(Err) << "touch " << id_ << " failed to be accepted\n"; accepted_ = true; } Touch::~Touch() { if (!accepted_) { LOG(Dbg) << "rejecting touch " << id_ << "\n"; if (frame_reject_touch(device_, window_id_, id_) != UFStatusSuccess) LOG(Err) << "touch " << id_ << " failed to be rejected\n"; } } } // namespace grail } // namespace oif grail-3.1.0+16.04.20160125/src/slice.h0000644000015600001650000000632512651522342017221 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_SLICE_H_ #define GRAIL_SLICE_H_ #include #include #include "oif/grail.h" #include "forward.h" struct UGSlice_ {}; namespace oif { namespace grail { class UGSlice : public UGSlice_ { public: /** @internal Create a new slice for a new gesture */ UGSlice(Gesture& gesture, UFEvent event, const TouchMap& touches, UGGestureTypeMask recognized); /** @internal Create a new copy of an existing slice */ UGSlice(const SharedUGSlice& prev, bool end = false); /** @internal Create a new slice by updating an existing slice */ UGSlice(const SharedUGSlice& prev, Gesture &gesture, UFEvent event, const TouchMap& touches); ~UGSlice(); void CheckGestureEnd(); UGGestureTypeMask CheckRecognition(const Gesture& gesture); UGStatus GetTouchId(unsigned int index, UFTouchId* touch_id) const; UGStatus GetProperty(UGSliceProperty property, void* value) const; uint64_t time() const { return time_; } const TouchMap& touches() { return touches_; } const UFFrame& frame() { return frame_; } UGGestureState state() const { return state_; } bool physically_ended() const { return physically_ended_; } void set_state(UGGestureState state) { state_ = state; } bool construction_finished() const { return construction_finished_; } void set_construction_finished() { construction_finished_ = true; } UGSlice(const UGSlice&) = delete; UGSlice& operator=(const UGSlice&) = delete; private: unsigned int id_; const UFEvent event_; UFFrame frame_; TouchMap touches_; uint64_t time_; UGGestureState state_; bool physically_ended_; float original_center_x_; float original_center_y_; float original_radius_; float original_angle_; float radius_; float angle_; float transform_[3][3]; float cumulative_transform_[3][3]; float center_of_rotation_x_; float center_of_rotation_y_; UGGestureTypeMask recognized_; bool construction_finished_; bool touch_count_changed_; UGSubscription *subscription_; void GetValues(Gesture &gesture, const TouchMap& touches, float* x, float* y, float* radius, float* angle, bool init); void SetTransforms(Gesture &gesture); void SetCenterOfRotation(); float CumulativeDrag2(float device_x_res, float device_y_res) const; float CumulativePinch() const; }; } // namespace grail } // namespace oif #endif // GRAIL_SLICE_H_ grail-3.1.0+16.04.20160125/src/event.h0000644000015600001650000000274012651522342017240 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_EVENT_H_ #define GRAIL_EVENT_H_ #include #include #include "oif/grail.h" #include "forward.h" struct UGEvent_ {}; namespace oif { namespace grail { class UGEvent : public UGEvent_ { public: UGEvent(const SharedUGSlice& slice); void Ref(); void Unref(); UGStatus GetProperty(UGEventProperty property, void* value) const; UGEvent(const UGEvent&) = delete; UGEvent& operator=(const UGEvent&) = delete; private: const SharedUGSlice slice_; const uint64_t time_; int referenceCount_; }; } // namespace grail } // namespace oif #endif // GRAIL_EVENT_H grail-3.1.0+16.04.20160125/src/recognizer.cpp0000644000015600001650000003551712651522342020631 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2010-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "config.h" #include "recognizer.h" #include #include #include #include #include #include #include "handle.h" #include "gesture.h" #include "log.h" #include "touch.h" namespace oif { namespace grail { const uint64_t Recognizer::COMPOSITION_TIME = 60; /** * @internal * Create a new recognizer for a given device and window */ Recognizer::Recognizer(UGHandle* handle, const UFDevice device, UFWindowId window_id) : handle_(handle), device_(device), window_id_(window_id), device_direct_(true), num_subscriptions_(0) { /* Save direct property for gesture processing */ UFStatus status = frame_device_get_property(device, UFDevicePropertyDirect, &device_direct_); if (status != UFStatusSuccess) LOG(Warn) << "failed to get direct property value for device\n"; /* Save X and Y axis resolutions for gesture processing */ if (device_direct_) { device_x_res_ = frame_device_get_window_resolution_x(device); device_y_res_ = frame_device_get_window_resolution_y(device); /* If resolution is not available, assume 96 dpi and convert to meters */ if (device_x_res_ <= 0) device_x_res_ = 3780; if (device_y_res_ <= 0) device_y_res_ = 3780; } else { device_x_res_ = 46000; /* Default to resolution of Apple Magic Trackpad */ device_y_res_ = 45000; UFAxis axis; status = frame_device_get_axis_by_type(device, UFAxisTypeX, &axis); if (status != UFStatusSuccess) LOG(Warn) << "failed to get X axis from device\n"; else if (frame_axis_get_resolution(axis) > 0) device_x_res_ = frame_axis_get_resolution(axis); status = frame_device_get_axis_by_type(device, UFAxisTypeY, &axis); if (status != UFStatusSuccess) LOG(Warn) << "failed to get Y axis from device\n"; else if (frame_axis_get_resolution(axis) > 0) device_y_res_ = frame_axis_get_resolution(axis); } } /** * @internal * Activate a subscription */ UGStatus Recognizer::ActivateSubscription(UGSubscription* subscription) { /* All the subscriptions must be atomic or non-atomic, mixes break things */ if (subscription->atomic() != atomic()) return UGStatusErrorAtomicity; /* Save the subscription and update atomicity */ subscriptions_[subscription->touches_start() - 1].insert(subscription); num_subscriptions_++; return UGStatusSuccess; } /** * @internal * Deactivate a subscription */ void Recognizer::DeactivateSubscription(UGSubscription* subscription) { /* Check if subscription is active */ if (subscriptions_[subscription->touches_start() - 1].find(subscription) == subscriptions_[subscription->touches_start() - 1].cend()) { LOG(Warn) << "attempted to deactivate inactive subscription " << subscription << "\n"; return; } subscriptions_[subscription->touches_start() - 1].erase(subscription); /* Cancel any unaccepted gestures */ for (auto it = unaccepted_gestures_.begin(); it != unaccepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; if (gesture->subscription() == subscription) { gesture->Cancel(); unaccepted_gestures_.erase(gesture); } } /* Cancel any accepted gestures */ for (auto it = accepted_gestures_.begin(); it != accepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; if (gesture->subscription() == subscription) { gesture->Cancel(); accepted_gestures_.erase(gesture); } } num_subscriptions_--; } namespace { /** * @internal * A helper function to get information from a touch frame * * This function retrieves a set of touches that have been modified. */ void GetModifiedTouches(UFFrame frame, TouchSet* modified, uint64_t event_time) { unsigned int num_touches = frame_frame_get_num_touches(frame); for (unsigned int i = 0; i < num_touches; ++i) { UFTouch touch; UFStatus status = frame_frame_get_touch_by_index(frame, i, &touch); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch from frame\n"; continue; } /* If the touch time is different from the event time, the touch hasn't been * modified */ if (frame_touch_get_time(touch) == event_time) { UFTouchId touch_id = frame_touch_get_id(touch); modified->insert(touch_id); } } } } // namespace /** * @internal * Process a frame event for gesture updates */ void Recognizer::ProcessEvent(const UFEvent& event) { UFFrame frame; UFStatus status = frame_event_get_property(event, UFEventPropertyFrame, &frame); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get frame from event\n"; return; } TouchSet modified_touches; GetModifiedTouches(frame, &modified_touches, frame_event_get_time(event)); /* For each accepted gesture, update its state */ for (auto it = accepted_gestures_.begin(); it != accepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; gesture->Update(event, modified_touches); if (gesture->ended()) { /* Allow touches of an ended gesture to be part of a new gesture */ for (const auto& pair : gesture->current_touches()) { const SharedTouch& touch = pair.second; if (!touch->pending_end() && !touch->ended()) INSERT_TOUCH(touch, free_touches_); } LOG(Dbg) << "gesture " << gesture->id() << " has been erased from accepted gestures\n"; accepted_gestures_.erase(gesture); } } /* For each unaccepted gesture, update its state */ for (auto it = unaccepted_gestures_.begin(); it != unaccepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; gesture->Update(event, modified_touches); if (gesture->canceled()) { LOG(Dbg) << "rejecting gesture " << gesture->id() << " because it has been canceled\n"; RejectGesture(gesture); } } } /** * @internal * * Mark a gesture as having finished construction if all the touches of the * gesture: * * - Are past the composition time or have ended (i.e. will not be part of any * new gestures) * - Are not part of another gesture the client hasn't seen yet (because the * gesture has not crossed the recognition thresholds yet) */ void Recognizer::CheckConstructionFinished(uint64_t time) { if (atomic()) return; for (const SharedGesture& gesture : unaccepted_gestures_) { if (!gesture->IsActive() || gesture->IsConstructionFinished()) continue; for (const auto& pair : gesture->current_touches()) { const SharedTouch& touch = pair.second; if (time - touch->start_time() < COMPOSITION_TIME) goto next_gesture; for (const SharedGesture& other_gesture : unaccepted_gestures_) { if (other_gesture == gesture) continue; if (other_gesture->current_touches().find(touch->id()) != other_gesture->current_touches().end() && !other_gesture->IsActive()) goto next_gesture; } } gesture->FinishConstruction(); next_gesture: ; } } void Recognizer::RejectOverdueGesturesAndTouches(uint64_t time) { /* Reject gestures that have timed out before being recognized */ for (auto it = unaccepted_gestures_.begin(); it != unaccepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; uint64_t timeout = gesture->Timeout(); if (timeout && time - gesture->start_time() > timeout) { LOG(Dbg) << "rejecting gesture " << gesture->id() << " because it has timed out\n"; RejectGesture(gesture); } } /* Remove touches older than the gesture composition time from free_touches_ */ for (auto it = free_touches_.begin(); it != free_touches_.end(); ) { const auto& pair = *it++; const SharedTouch& touch = pair.second; if (time - touch->start_time() < COMPOSITION_TIME) continue; LOG(Dbg) << "touch " << touch->id() << " has been removed from free_touches_ because it is older than " "the gesture composition time (time: " << time << ", touch start time: " << touch->start_time() << ")\n"; ERASE_TOUCH(touch->id(), free_touches_); } } /** * @internal * Update the internal time state of the recognizer * * This function rejects unaccepted gestures that have timed out and rejects * touches that have timed out. */ void Recognizer::UpdateTime(uint64_t time) { LOG(Dbg) << "Updating time to " << time << "\n"; RejectOverdueGesturesAndTouches(time); CheckConstructionFinished(time); } /** * @internal * Determine how long until the client should update the recognizer time state */ uint64_t Recognizer::NextTimeout() { /* Find the minimum timeout of each unaccepted touch that is not part of a * gesture */ uint64_t min_timeout = std::numeric_limits::max(); for (const auto& pair : free_touches_) { const SharedTouch& touch = pair.second; for (const SharedGesture& gesture : unaccepted_gestures_) if (gesture->all_touches().find(touch->id()) != gesture->all_touches().end()) goto next_touch; if (COMPOSITION_TIME + touch->start_time() < min_timeout) min_timeout = touch->start_time() + COMPOSITION_TIME; next_touch: ; } /* Find the minimum timeout of each unaccepted gesture */ for (const SharedGesture& gesture : unaccepted_gestures_) { uint64_t timeout = gesture->Timeout(); if (timeout && gesture->start_time() + timeout < min_timeout) min_timeout = gesture->start_time() + timeout; } return min_timeout; } /** * @internal * Accept a gesture, given its id */ UGStatus Recognizer::AcceptGesture(unsigned int id) { /* Find the gesture by looking up the ID */ for (const SharedGesture& gesture : unaccepted_gestures_) { if (gesture->id() == id) { AcceptGesture(gesture); return UGStatusSuccess; } } return UGStatusErrorInvalidGesture; } /** * @internal * Accept a gesture */ void Recognizer::AcceptGesture(SharedGesture gesture) { LOG(Dbg) << "gesture " << gesture->id() << " has been accepted by the " "client\n"; for (const auto& pair : gesture->all_touches()) { const SharedTouch& touch = pair.second; if (!touch->accepted()) { touch->Accept(); LOG(Dbg) << "touch " << touch->id() << " has been accepted because it is part of an accepted " "gesture\n"; } else { /* This gesture may be an extension to more touches of an accepted * gesture. Cancel the old gesture and remove any gesture events for it * from the event queue. Atomic behavior does not allow for gestures to be * extended in this way, and gestures may overlap.*/ if (!atomic()) { for (auto it = accepted_gestures_.begin(); it != accepted_gestures_.end(); ) { const SharedGesture& other_gesture = *it++; const TouchMap& other_touches = other_gesture->current_touches(); if (other_touches.find(touch->id()) != other_touches.end()) { LOG(Dbg) << "cancelling gesture " << other_gesture->id() << " because it has a touch (" << touch->id() << ") " << "that is part of a new accepted gesture\n"; other_gesture->Cancel(); handle_->RemoveGestureFromEventQueue(other_gesture->id()); accepted_gestures_.erase(other_gesture); LOG(Dbg) << "gesture " << other_gesture->id() << " has been erased from accepted gestures\n"; } } } } /* Remove this touch from the free touches set, it can't be used for new * gestures while it is part of an accepted gesture */ ERASE_TOUCH(touch->id(), free_touches_); } /* Reject any overlapping unaccepted gestures. Atomic subscriptions may have * overlapping gestures due to historical behavior. */ if (!atomic()) { for (auto it = unaccepted_gestures_.begin(); it != unaccepted_gestures_.end(); ) { const SharedGesture& other_gesture = *it++; if (other_gesture == gesture) continue; for (const auto& pair : other_gesture->all_touches()) { const SharedTouch& touch = pair.second; if (gesture->all_touches().find(touch->id()) != gesture->all_touches().end()) { LOG(Dbg) << "rejecting gesture " << other_gesture->id() << "because it has a touch (" << touch->id() << ") that is part of an accepted gesture\n"; RejectGesture(other_gesture); break; } } } } /* Check if the gesture has finished construction */ gesture->FinishConstruction(); if (!gesture->ended()) { accepted_gestures_.insert(gesture); LOG(Dbg) << "gesture " << gesture->id() << " has been added to accepted gestures\n"; } unaccepted_gestures_.erase(gesture); LOG(Dbg) << "gesture " << gesture->id() << " has been erased from unaccepted gestures\n"; } /** * @internal * Reject a gesture by ID */ UGStatus Recognizer::RejectGesture(unsigned int id) { for (const SharedGesture& gesture : unaccepted_gestures_) { if (gesture->id() == id) { RejectGesture(gesture); return UGStatusSuccess; } } return UGStatusErrorInvalidGesture; } /** * @internal * Reject a gesture by internal gesture handle */ void Recognizer::RejectGesture(SharedGesture gesture) { LOG(Dbg) << "cancelling gesture " << gesture->id() << " because it has been rejected\n"; gesture->Cancel(); handle_->RemoveGestureFromEventQueue(gesture->id()); unaccepted_gestures_.erase(gesture); LOG(Dbg) << "gesture " << gesture->id() << " has been erased from unaccepted gestures\n"; } Recognizer::~Recognizer() { for (const SharedGesture& gesture : unaccepted_gestures_) gesture->Cancel(); for (const SharedGesture& gesture : accepted_gestures_) gesture->Cancel(); } } // namespace grail } // namespace oif grail-3.1.0+16.04.20160125/src/atomic-recognizer.h0000644000015600001650000000367412651522342021547 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_ATOMIC_RECOGNIZER_H_ #define GRAIL_ATOMIC_RECOGNIZER_H_ #include "recognizer.h" namespace oif { namespace grail { class AtomicRecognizer : public Recognizer { public: AtomicRecognizer(UGHandle* handle, const UFDevice device, UFWindowId window); virtual bool atomic() const {return true;} virtual void ProcessFrameEvent(const UFEvent event); virtual void UpdateTime(uint64_t time); private: void HandleNewTouchesForAcceptedGesture(const SharedGesture& gesture); void HandleNewTouchesForUnacceptedGesture(const SharedGesture& gesture); void ProcessTouches(const UFEvent event); void MatchSubscriptionsForNewTouches(); void MatchGestures(); void FindGesturesToAccept(uint64_t event_time); virtual uint64_t NextTimeout(); std::map> all_touches_; /* Touches that have begun but not yet been matched against subscriptions (for the creation of new gestures) or used to update existing gestures. */ TouchMap new_touches_; }; } // namespace grail } // namespace oif #endif // GRAIL_ATOMIC_RECOGNIZER_H_ grail-3.1.0+16.04.20160125/src/log.h0000644000015600001650000000315512651522342016701 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_LOG_H_ #define GRAIL_LOG_H_ #include namespace oif { namespace grail { class NullStreamBuf : public std::streambuf { protected: virtual int overflow(int c) { return traits_type::not_eof(c); } }; class Logger { public: enum Level { Dbg = -1, Warn = 0, Err = 1, }; Logger(); static std::ostream& Log(Level level); static Logger& instance(); Level level() const {return static_cast(level_);}; private: int level_; NullStreamBuf null_buf_; std::ostream null_ostream_; }; } // namespace grail } // namespace oif #define LOG(level) oif::grail::Logger::Log(oif::grail::Logger::level) \ << "(" << __FILE__ << ":" << __func__ << ":" << __LINE__ << "): " #endif // GRAIL_LOG_H_ grail-3.1.0+16.04.20160125/src/handle.cpp0000644000015600001650000002313112651522342017702 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "handle.h" #include #include #include #include #include #include #include #include #include "atomic-recognizer.h" #include "event.h" #include "log.h" #include "regular-recognizer.h" #include "subscription.h" namespace oif { namespace grail { UGHandle::UGHandle() : event_fd_(eventfd(0, EFD_NONBLOCK)), next_id_(0) { if (event_fd_ == -1) { throw std::runtime_error("Error: failed to create eventfd instance\n"); } } Recognizer *UGHandle::CreateRecognizerForSubscription( UGSubscription* subscription) { Recognizer* recognizer; if (subscription->atomic()) recognizer = new AtomicRecognizer(this, subscription->device(), subscription->window_id()); else recognizer = new RegularRecognizer(this, subscription->device(), subscription->window_id()); recognizers_[subscription->device()][subscription->window_id()] = std::move(UniqueRecognizer(recognizer)); return recognizer; } UGStatus UGHandle::ActivateSubscription(UGSubscription* subscription) { Recognizer* recognizer; if (!subscription->IsValid()) return UGStatusErrorInvalidSubscription; const auto& it = recognizers_[subscription->device()].find(subscription->window_id()); if (it != recognizers_[subscription->device()].end()) { recognizer = it->second.get(); if (recognizer->atomic() != subscription->atomic() && recognizer->num_subscriptions() == 0) { /* Fix the mismatch */ recognizer = CreateRecognizerForSubscription(subscription); } } else { recognizer = CreateRecognizerForSubscription(subscription); } return recognizer->ActivateSubscription(subscription); } void UGHandle::DeactivateSubscription(UGSubscription* subscription) { recognizers_[subscription->device()].erase(subscription->window_id()); } namespace { bool GetDeviceFromEvent(const UFEvent event, UFDevice* device) { UFStatus status = frame_event_get_property(event, UFEventPropertyDevice, device); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get device from event\n"; return false; } return true; } bool GetDeviceAndWindowFromEvent(const UFEvent event, UFDevice* device, UFWindowId* window_id) { UFFrame frame; UFStatus status = frame_event_get_property(event, UFEventPropertyFrame, &frame); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get frame from event\n"; return false; } *device = frame_frame_get_device(frame); *window_id = frame_frame_get_window_id(frame); return true; } void RejectFrame(const UFEvent event, const UFDevice device, UFWindowId window_id) { UFFrame frame; UFStatus status; unsigned int num_touches; unsigned int i; status = frame_event_get_property(event, UFEventPropertyFrame, &frame); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get frame from event\n"; return; } num_touches = frame_frame_get_num_touches(frame); for (i = 0; i < num_touches; ++i) { UFTouch touch; status = frame_frame_get_touch_by_index(frame, i, &touch); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch from frame by index\n"; continue; } if (frame_touch_get_state(touch) != UFTouchStateBegin) continue; frame_reject_touch(device, window_id, frame_touch_get_id(touch)); } } } // namespace void UGHandle::ProcessFrameEvent(const UFEvent event) { switch (frame_event_get_type(event)) { case UFEventTypeDeviceAdded: { UFDevice device; if (!GetDeviceFromEvent(event, &device)) return; recognizers_.insert( std::make_pair(device, std::map())); break; } case UFEventTypeDeviceRemoved: { UFDevice device; if (!GetDeviceFromEvent(event, &device)) return; recognizers_.erase(device); break; } case UFEventTypeFrame: { UFDevice device; UFWindowId window_id; if (!GetDeviceAndWindowFromEvent(event, &device, &window_id)) return; if (recognizers_[device].find(window_id) != recognizers_[device].end()) recognizers_[device][window_id]->ProcessFrameEvent(event); else RejectFrame(event, device, window_id); break; } } } void UGHandle::UpdateTime(uint64_t time) { LOG(Dbg) << "client updating time to " << time << "\n"; for (auto& pair : recognizers_) for (auto& pair2 : pair.second) pair2.second->UpdateTime(time); } unsigned int UGHandle::NewGestureID(Recognizer* recognizer) { unsigned int id = next_id_++; gestures_[id] = recognizer; return id; } void UGHandle::EnqueueEvent(oif::grail::UGEvent* event) { static const uint64_t num = 1; event_queue_.push_back(event); if (write(event_fd_, &num, sizeof(num)) != sizeof(num)) LOG(Warn) << "failed to update eventfd instance\n"; } void UGHandle::RemoveGestureFromEventQueue(unsigned int id) { for (auto it = event_queue_.begin(); it != event_queue_.end(); ) { oif::grail::UGEvent* event = *it++; if (grail_event_get_type(event) != UGEventTypeSlice) continue; ::UGSlice slice; UGStatus status = grail_event_get_property(event, UGEventPropertySlice, &slice); MUST_SUCCEED(status); if (grail_slice_get_id(slice) == id) { event_queue_.remove(event); event->Unref(); } } LOG(Dbg) << "removed gesture " << id << " events from queue\n"; } UGStatus UGHandle::GetEvent(::UGEvent* event) { /* Clear event fd (see eventfd(2) man page) */ uint64_t buf; if (read(event_fd_, &buf, sizeof(buf)) != 8 && errno != EAGAIN) LOG(Warn) << "failed to read data from event fd\n"; if (event_queue_.empty()) return UGStatusErrorNoEvent; *event = event_queue_.front(); event_queue_.pop_front(); return UGStatusSuccess; } uint64_t UGHandle::NextTimeout() const { uint64_t min_timeout = std::numeric_limits::max(); for (auto& pair : recognizers_) { for (auto& pair2 : pair.second) { uint64_t timeout = pair2.second->NextTimeout(); if (timeout < min_timeout) min_timeout = timeout; } } return min_timeout != std::numeric_limits::max() ? min_timeout : 0; } UGStatus UGHandle::AcceptGesture(unsigned int id) { auto it = gestures_.find(id); if (it == gestures_.end()) return UGStatusErrorInvalidGesture; return it->second->AcceptGesture(id); } UGStatus UGHandle::RejectGesture(unsigned int id) { auto it = gestures_.find(id); if (it == gestures_.end()) return UGStatusErrorInvalidGesture; LOG(Dbg) << "rejecting gesture " << id << " because of client request\n"; return it->second->RejectGesture(id); } UGHandle::~UGHandle() { while (!event_queue_.empty()) { event_queue_.front()->Unref(); event_queue_.pop_front(); } } } // namespace grail } // namespace oif extern "C" { UGStatus grail_new(UGHandle* handle) { try { *handle = new oif::grail::UGHandle; } catch(const std::exception&) { return UGStatusErrorResources; } return UGStatusSuccess; } void grail_delete(UGHandle handle) { delete static_cast(handle); } int grail_get_fd(UGHandle handle) { return static_cast(handle)->event_fd(); } UGStatus grail_subscription_activate(UGHandle handle, const UGSubscription subscription) { return static_cast(handle)->ActivateSubscription( static_cast(subscription)); } void grail_subscription_deactivate(UGHandle handle, const UGSubscription subscription) { return static_cast(handle)->DeactivateSubscription( static_cast(subscription)); } void grail_process_frame_event(UGHandle handle, const UFEvent event) { try { static_cast(handle)->ProcessFrameEvent(event); } catch (const std::exception&) { } } UGStatus grail_get_event(UGHandle handle, UGEvent *event) { return static_cast(handle)->GetEvent(event); } void grail_update_time(UGHandle handle, uint64_t time) { static_cast(handle)->UpdateTime(time); } uint64_t grail_next_timeout(UGHandle handle) { return static_cast(handle)->NextTimeout(); } UGStatus grail_accept_gesture(UGHandle handle, unsigned int id) { return static_cast(handle)->AcceptGesture(id); } UGStatus grail_reject_gesture(UGHandle handle, unsigned int id) { return static_cast(handle)->RejectGesture(id); } } // extern "C" grail-3.1.0+16.04.20160125/src/subscription.cpp0000644000015600001650000002005712651522352021200 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2010-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "subscription.h" #include namespace oif { namespace grail { UGSubscription::UGSubscription() : device_(0), window_id_(0), mask_(0), touches_start_(2), touches_min_(0), touches_max_(0), drag_({300, 0.0026}), /* Units are in meters */ pinch_({300, 1.1}), /* Different from grail v1, ratio instead of delta */ rotate_({500, 2 * M_PI / 50}), tap_({300, 0.0026}), atomic_(false) { } bool UGSubscription::IsValid() const { if (!device_ || !window_id_ || mask_ == 0 || (touches_max_ && touches_start_ > touches_max_) || (touches_min_ && touches_start_ < touches_min_)) return false; return true; } UGStatus UGSubscription::SetProperty(UGSubscriptionProperty property, const void* value) { switch (property) { case UGSubscriptionPropertyDevice: { UFDevice device = *reinterpret_cast(value); if (!device) return UGStatusErrorInvalidValue; device_ = device; return UGStatusSuccess; } case UGSubscriptionPropertyWindow: { UFWindowId window_id = *reinterpret_cast(value); if (!window_id) return UGStatusErrorInvalidValue; window_id_ = window_id; return UGStatusSuccess; } case UGSubscriptionPropertyMask: { UGGestureTypeMask mask = *reinterpret_cast(value); if (mask == 0) return UGStatusErrorInvalidValue; mask_ = mask; return UGStatusSuccess; } case UGSubscriptionPropertyTouchesStart: { unsigned int touches = *reinterpret_cast(value); if (touches == 0 || touches > 5) return UGStatusErrorInvalidValue; touches_start_ = touches; return UGStatusSuccess; } case UGSubscriptionPropertyTouchesMinimum: { unsigned int touches = *reinterpret_cast(value); if (touches == 0 || touches > 5) return UGStatusErrorInvalidValue; touches_min_ = touches; return UGStatusSuccess; } case UGSubscriptionPropertyTouchesMaximum: { unsigned int touches = *reinterpret_cast(value); if (touches == 0 || touches > 5) return UGStatusErrorInvalidValue; touches_max_ = touches; return UGStatusSuccess; } case UGSubscriptionPropertyDragTimeout: { drag_.timeout = *reinterpret_cast(value); return UGStatusSuccess; } case UGSubscriptionPropertyDragThreshold: { float threshold = *reinterpret_cast(value); if (threshold < 0) return UGStatusErrorInvalidValue; drag_.threshold = threshold; return UGStatusSuccess; } case UGSubscriptionPropertyPinchTimeout: { pinch_.timeout = *reinterpret_cast(value); return UGStatusSuccess; } case UGSubscriptionPropertyPinchThreshold: { float threshold = *reinterpret_cast(value); if (threshold < 0) return UGStatusErrorInvalidValue; pinch_.threshold = threshold; return UGStatusSuccess; } case UGSubscriptionPropertyRotateTimeout: { rotate_.timeout = *reinterpret_cast(value); return UGStatusSuccess; } case UGSubscriptionPropertyRotateThreshold: { float threshold = *reinterpret_cast(value); if (threshold < 0) return UGStatusErrorInvalidValue; rotate_.threshold = threshold; return UGStatusSuccess; } case UGSubscriptionPropertyTapTimeout: { tap_.timeout = *reinterpret_cast(value); return UGStatusSuccess; } case UGSubscriptionPropertyTapThreshold: { float threshold = *reinterpret_cast(value); if (threshold < 0) return UGStatusErrorInvalidValue; tap_.threshold = threshold; return UGStatusSuccess; } case UGSubscriptionPropertyAtomicGestures: { atomic_ = *reinterpret_cast(value); return UGStatusSuccess; } } return UGStatusErrorUnknownProperty; } UGStatus UGSubscription::GetProperty(UGSubscriptionProperty property, void* value) const { switch (property) { case UGSubscriptionPropertyDevice: *reinterpret_cast(value) = device_; return UGStatusSuccess; case UGSubscriptionPropertyWindow: *reinterpret_cast(value) = window_id_; return UGStatusSuccess; case UGSubscriptionPropertyMask: *reinterpret_cast(value) = mask_; return UGStatusSuccess; case UGSubscriptionPropertyTouchesStart: *reinterpret_cast(value) = touches_start_; return UGStatusSuccess; case UGSubscriptionPropertyTouchesMinimum: *reinterpret_cast(value) = touches_min_; return UGStatusSuccess; case UGSubscriptionPropertyTouchesMaximum: *reinterpret_cast(value) = touches_max_; return UGStatusSuccess; case UGSubscriptionPropertyDragTimeout: *reinterpret_cast(value) = drag_.timeout; return UGStatusSuccess; case UGSubscriptionPropertyDragThreshold: *reinterpret_cast(value) = drag_.threshold; return UGStatusSuccess; case UGSubscriptionPropertyPinchTimeout: *reinterpret_cast(value) = pinch_.timeout; return UGStatusSuccess; case UGSubscriptionPropertyPinchThreshold: *reinterpret_cast(value) = pinch_.threshold; return UGStatusSuccess; case UGSubscriptionPropertyRotateTimeout: *reinterpret_cast(value) = rotate_.timeout; return UGStatusSuccess; case UGSubscriptionPropertyRotateThreshold: *reinterpret_cast(value) = rotate_.threshold; return UGStatusSuccess; case UGSubscriptionPropertyTapTimeout: *reinterpret_cast(value) = tap_.timeout; return UGStatusSuccess; case UGSubscriptionPropertyTapThreshold: *reinterpret_cast(value) = tap_.threshold; return UGStatusSuccess; case UGSubscriptionPropertyAtomicGestures: *reinterpret_cast(value) = atomic_; return UGStatusSuccess; } return UGStatusErrorUnknownProperty; } } // namespace grail } // namespace oif UGStatus grail_subscription_new(UGSubscription* subscription) { *subscription = new oif::grail::UGSubscription; return UGStatusSuccess; } void grail_subscription_delete(UGSubscription subscription) { delete (static_cast(subscription)); } UGStatus grail_subscription_set_property(UGSubscription subscription, UGSubscriptionProperty property, const void* value) { return (static_cast(subscription)->SetProperty( property, value)); } UGStatus grail_subscription_get_property(UGSubscription subscription, UGSubscriptionProperty property, void* value) { return (static_cast(subscription)->GetProperty( property, value)); } grail-3.1.0+16.04.20160125/src/event.cpp0000644000015600001650000000533512651522342017576 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "event.h" #include #include "slice.h" namespace oif { namespace grail { UGEvent::UGEvent(const SharedUGSlice& slice) : slice_(slice), time_(slice->time()), referenceCount_(1) { } void UGEvent::Ref() { referenceCount_++; } void UGEvent::Unref() { referenceCount_--; if(referenceCount_ == 0) delete this; } UGStatus UGEvent::GetProperty(UGEventProperty property, void* data) const { switch (property) { case UGEventPropertyType: *reinterpret_cast(data) = UGEventTypeSlice; return UGStatusSuccess; case UGEventPropertySlice: *reinterpret_cast(data) = slice_.get(); return UGStatusSuccess; case UGEventPropertyTime: *reinterpret_cast(data) = time_; return UGStatusSuccess; } return UGStatusErrorUnknownProperty; } } // namespace grail } // namespace oif extern "C" { void grail_event_ref(UGEvent event) { static_cast(event)->Ref(); } void grail_event_unref(UGEvent event) { static_cast(event)->Unref(); } UGStatus grail_event_get_property(const UGEvent event, UGEventProperty property, void* data) { return static_cast(event)->GetProperty(property, data); } UGEventType grail_event_get_type(const UGEvent event) { UGEventType type; UGStatus status = static_cast(event)->GetProperty( UGEventPropertyType, &type); MUST_SUCCEED(status); return type; } uint64_t grail_event_get_time(const UGEvent event) { uint64_t time; UGStatus status = static_cast(event)->GetProperty( UGEventPropertyTime, &time); MUST_SUCCEED(status); return time; } } // extern "C" grail-3.1.0+16.04.20160125/src/gesture.cpp0000644000015600001650000002365612651522342020141 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2010-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "gesture.h" #include #include #include "oif/grail.h" #include "event.h" #include "handle.h" #include "log.h" #include "recognizer.h" #include "slice.h" #include "touch.h" namespace oif { namespace grail { /** * @internal * Creates a new gesture */ Gesture::Gesture(Recognizer* recognizer, UGSubscription* subscription, TouchMap& touches, uint64_t start_time) : recognizer_(recognizer), id_(recognizer_->handle()->NewGestureID(recognizer_)), subscription_(subscription), current_touches_(touches), all_touches_(touches), start_time_(start_time), owned_(false), not_owned_(false), recognized_(0), canceled_(false), ended_(false), keep_slices_(false) { } /** * @internal * Copies an existing gesture, but with the passed in touch set */ Gesture::Gesture(const Gesture* other_gesture, TouchMap& touches) : recognizer_(other_gesture->recognizer_), id_(recognizer_->handle()->NewGestureID(recognizer_)), subscription_(other_gesture->subscription_), current_touches_(touches), all_touches_(touches), start_time_(other_gesture->start_time_), owned_(false), not_owned_(false), recognized_(other_gesture->recognized_), canceled_(false), ended_(false) { } /** * @internal * Add a new touch to an existing gesture */ void Gesture::AddTouch(const SharedTouch& touch) { current_touches_[touch->id()] = touch; all_touches_[touch->id()] = touch; } /** * @internal * Add a new set of touches to an existing gesture. */ void Gesture::AddTouches(TouchMap touches) { current_touches_.insert(touches.begin(), touches.end()); all_touches_.insert(touches.begin(), touches.end()); } /** * @internal * Returns whether that gesture contains the given touch. */ bool Gesture::ContainsTouch(const SharedTouch& touch) const { return current_touches_.find(touch->id()) != current_touches_.end(); } /** * @internal * Update a gesture with the passed in frame event and list of modified touches */ void Gesture::Update(UFEvent frame_event, TouchSet& modified_touches) { if (ended_) { /* Now the only thing that can happen is receiving ownership */ if (!owned_ && !not_owned_) { CheckOwned(); if (IsActive()) FlushSlices(); } return; } TouchSet ended_touches; bool touch_found = false; for (UFTouchId touch_id : modified_touches) { const auto& it = all_touches_.find(touch_id); /* If the touch is not part of this gesture, skip it */ if (it != all_touches_.end()) touch_found = true; else continue; const SharedTouch& touch = it->second; if (touch->ended() && !touch->owned()) { /* If we receive a touch end before we own it, someone higher in the * stack accepted it. We need to cancel any handling of the touch. */ canceled_ = true; break; } if (touch->pending_end() || touch->ended()) ended_touches.insert(touch->id()); } /* If the frame doesn't include any info about the touches in the gesture, or * the gesture has been canceled, bail. */ if (!touch_found || canceled_) return; /* Is this the first slice of the gesture? */ if (!last_slice_) { UGSlice* slice; /* Create gesture begin slice */ slice = new UGSlice(*this, frame_event, current_touches_, recognized_); last_slice_ = SharedUGSlice(slice); slices_.push(last_slice_); } else if (!IsPhysicallyEnded()) { UGSlice* slice; /* Create gesture update or end slice */ slice = new UGSlice(last_slice_, *this, frame_event, current_touches_); last_slice_ = SharedUGSlice(slice); slices_.push(last_slice_); } for (UFTouchId touch_id : ended_touches) current_touches_.erase(touch_id); CheckOwned(); /* Check for any new subscription matches */ if (recognized_ != subscription_->mask()) { recognized_ |= last_slice_->CheckRecognition(*this); } /* Send slice events to client if gesture is active */ if (IsActive()) FlushSlices(); /* If the gesture ended and nothing was recognized or all the gesture slices * have been sent, end the gesture */ if (IsPhysicallyEnded() && (!recognized_ || IsConstructionFinished())) End(); if (IsPhysicallyEnded() && !recognized_) canceled_ = true; } bool Gesture::IsPhysicallyEnded() const { return (ended_ || (last_slice_ && last_slice_->physically_ended())); } /** * @internal * Check if the gesture is active * * A gesture is active if a subscribed gesture has been matched and we own all * the touches in the gesture. */ bool Gesture::IsActive() const { return recognized_ && owned_; } /** * @internal * Check if construction is finished for the set of touches in the gesture * * See UGSlicePropertyConstructionFinished for details. */ bool Gesture::IsConstructionFinished() const { /* last_slice_ must either be valid or the gesture has ended, in which case * construction is considered finished. */ return (!last_slice_ || last_slice_->construction_finished()); } /** * @internal * Perform processing necessary for a gesture that has finished construction */ void Gesture::FinishConstruction() { if (!IsActive()) { LOG(Warn) << "attempted to finish construction of an inactive gesture\n"; return; } /* If the gesture is already construction finished, bail */ if (IsConstructionFinished()) return; /* Create a new gesture slice to tell the client that construction has * finished */ UGSlice* slice = new UGSlice(last_slice_, IsPhysicallyEnded()); if (!slice) return; slice->set_construction_finished(); last_slice_ = SharedUGSlice(slice); slices_.push(last_slice_); /* If construction has finished, we know we can send events to the client */ FlushSlices(); /* If we construction has finished on an ended gesture, we're done with it */ if (IsPhysicallyEnded()) { ended_ = true; last_slice_.reset(); LOG(Dbg) << "gesture " << id_ << " has ended\n"; } } /** * @internal * Check that all the touches in the gesture are owned */ void Gesture::CheckOwned() { if (owned_ || not_owned_) return; for (const auto& pair : all_touches_) { const SharedTouch& touch = pair.second; if (touch->owned()) { continue; } else if (touch->ended()) { LOG(Warn) << "failed to get ownership property from touch, gesture " << id_ << " marked as not owned\n"; not_owned_ = true; return; } else { return; } } LOG(Dbg) << "all touches owned, marking gesture " << id_ << " as owned\n"; owned_ = true; return; } /** * @internal * Flush all pending gesture slices to the client as grail events */ void Gesture::FlushSlices() { if (keep_slices_) return; while (!slices_.empty()) { UGEvent* event = new UGEvent(slices_.front()); recognizer_->handle()->EnqueueEvent(event); slices_.pop(); } } /** * @internal * Check subscription timeouts */ uint64_t Gesture::Timeout() const { if (recognized_) return 0; uint64_t time = 0; if ((subscription_->mask() & UGGestureTypeDrag) && subscription_->drag().timeout > time) time = subscription_->drag().timeout; if ((subscription_->mask() & UGGestureTypePinch) && subscription_->pinch().timeout > time) time = subscription_->pinch().timeout; if ((subscription_->mask() & UGGestureTypeRotate) && subscription_->rotate().timeout > time) time = subscription_->rotate().timeout; if ((subscription_->mask() & UGGestureTypeTap) && subscription_->tap().timeout > time) time = subscription_->tap().timeout; return time; } /** * @internal * Get the current angle about the centroid of the gesture for a given touch */ float Gesture::AngleForTouch(UFTouchId touch_id) const { auto it = angles_.find(touch_id); if (it != angles_.end()) return it->second; return 0; } /** * @internal * Set the angle about the centroid of the gesture for a given touch */ void Gesture::SetAngleForTouch(UFTouchId touch_id, float angle) { angles_[touch_id] = angle; } /** * @internal * Cancel the gesture */ void Gesture::Cancel() { while (!slices_.empty()) slices_.pop(); last_slice_.reset(); ended_ = true; } /** * @internal * End an active gesture */ void Gesture::End() { /* Create a new gesture slice in the end state */ UGSlice* slice = new UGSlice(last_slice_, true); slices_.push(SharedUGSlice(slice)); FlushSlices(); last_slice_.reset(); ended_ = true; current_touches_.clear(); all_touches_.clear(); LOG(Dbg) << "gesture " << id_ << " has ended\n"; } /** * @internal * If true, FlushSlices() will have no effect. The Gesture will keep all its * slices until this property is disabled again, which will cause all pending * slices to be flushed. * * By default, this property is false. */ void Gesture::set_keep_slices(bool keep_slices) { if (keep_slices_ && !keep_slices) { keep_slices_ = keep_slices; FlushSlices(); } else { keep_slices_ = keep_slices; } } Gesture::~Gesture() { LOG(Dbg) << "deleting gesture " << id_ << "\n"; } } // namespace grail } // namespace oif grail-3.1.0+16.04.20160125/src/regular-recognizer.cpp0000644000015600001650000003502312651522342022260 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "config.h" #include "regular-recognizer.h" #include #include #include #include #include #include #include "handle.h" #include "gesture.h" #include "log.h" #include "touch.h" namespace oif { namespace grail { /** * @internal * Create a new regular recognizer for a given device and window */ RegularRecognizer::RegularRecognizer(UGHandle* handle, const UFDevice device, UFWindowId window_id) : Recognizer(handle, device, window_id) { } /** * @internal * Process a frame event */ void RegularRecognizer::ProcessFrameEvent(const UFEvent event) { LOG(Dbg) << "new event " << event << " with time " << frame_event_get_time(event) << "\n"; RejectOverdueGesturesAndTouches(frame_event_get_time(event)); ProcessTouches(event); ProcessEvent(event); CheckConstructionFinished(frame_event_get_time(event)); } /** * @internal * Process all touches present in the given frame event. * * Add new touches to new_touches_ and free_touches_ maps, update the grail * touch state for existing touches, and remove touches from maps when they * physically end. * * When a touch begins, attempt to match it to all gesture subscriptions. */ void RegularRecognizer::ProcessTouches(const UFEvent event) { UFFrame frame; UFStatus status = frame_event_get_property(event, UFEventPropertyFrame, &frame); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get frame from event\n"; return; } /* Process all the touches that began in this frame */ unsigned int num_touches = frame_frame_get_num_touches(frame); for (unsigned int i = 0; i < num_touches; ++i) { UFTouch touch; status = frame_frame_get_touch_by_index(frame, i, &touch); if (status != UFStatusSuccess) { LOG(Warn) << "failed to get touch from frame\n"; continue; } switch (frame_touch_get_state(touch)) { case UFTouchStateBegin: { SharedTouch grail_touch(new Touch(touch, device_, window_id_)); LOG(Dbg) << "touch " << grail_touch->id() << " began with start time " << grail_touch->start_time() << "\n"; INSERT_TOUCH(grail_touch, all_touches_); INSERT_TOUCH(grail_touch, free_touches_); for (auto gesture : accepted_gestures_) { ExpandGestureIfPossible(grail_touch, gesture); } for (auto it = unaccepted_gestures_.begin(); it != unaccepted_gestures_.end(); ) { const SharedGesture& gesture = *it++; ExpandGestureIfPossible(grail_touch, gesture); } /* Attempt to match new gestures for active subscriptions */ MatchOneTouchGestures(grail_touch); MatchTwoTouchGestures(grail_touch); MatchThreeTouchGestures(grail_touch); MatchFourTouchGestures(grail_touch); MatchFiveTouchGestures(grail_touch); break; } case UFTouchStateUpdate: case UFTouchStateEnd: { auto it = all_touches_.find(frame_touch_get_id(touch)); if (it != all_touches_.end()) { if (it->second.expired()) { ERASE_TOUCH(it->first, all_touches_); break; } const SharedTouch& grail_touch = it->second.lock(); grail_touch->Update(touch); if (grail_touch->ended()) ERASE_TOUCH(grail_touch->id(), all_touches_); if (grail_touch->pending_end() || grail_touch->ended()) ERASE_TOUCH(grail_touch->id(), free_touches_); } break; } } } } /** * @internal * If a gesture may add a touch without crossing the maximum for the * subscription, create a new unaccepted gesture with the new touch. * Otherwise, do nothing. New gestures may still begin elsewhere. */ void RegularRecognizer::ExpandGestureIfPossible( const SharedTouch& touch, const SharedGesture& gesture) { UGSubscription* subscription = gesture->subscription(); if (gesture->current_touches().size() < subscription->touches_max() && !gesture->ContainsTouch(touch) && !gesture->IsPhysicallyEnded()) { TouchMap map(gesture->current_touches()); map[touch->id()] = touch; Gesture* new_gesture = new Gesture(gesture.get(), map); LOG(Dbg) << "touch " << touch->id() << " has been added to gesture " << gesture->id() << " to create new gesture " << new_gesture->id() << "\n"; unaccepted_gestures_.insert(SharedGesture(new_gesture)); LOG(Dbg) << "gesture " << new_gesture << " has been added to unaccepted gestures\n"; } } /** * @internal * Attempt to match the given touch against one touch subscriptions */ void RegularRecognizer::MatchOneTouchGestures(const SharedTouch& touch) { for (UGSubscription* subscription : subscriptions_[0]) { TouchMap map; map[touch->id()] = touch; assert(!UnacceptedGestureExists(subscription, map)); Gesture* gesture = new Gesture(this, subscription, map, touch->start_time()); unaccepted_gestures_.insert(SharedGesture(gesture)); LOG(Dbg) << "New tentative gesture " << gesture->id() << " matched subscription " << subscription << " with mask " << subscription->mask() << " for touch " << touch->id() << "\n"; } } /** * @internal * Attempt to match the given touch against two touch subscriptions */ void RegularRecognizer::MatchTwoTouchGestures(const SharedTouch& touch) { for (UGSubscription* subscription : subscriptions_[1]) { for (const auto& pair : free_touches_) { const SharedTouch& other = pair.second; if (other->id() == touch->id()) continue; /* All touches in a gesture must begin within a composition timeframe */ uint64_t min_start_time = touch->start_time(); if (other->start_time() < min_start_time && !other->accepted()) min_start_time = other->start_time(); if (touch->start_time() - min_start_time < COMPOSITION_TIME) { TouchMap map; map[touch->id()] = touch; map[other->id()] = other; assert(!UnacceptedGestureExists(subscription, map)); Gesture* gesture = new Gesture(this, subscription, map, touch->start_time()); unaccepted_gestures_.insert(SharedGesture(gesture)); LOG(Dbg) << "New tentative gesture " << gesture->id() << " matched subscription " << subscription << " with mask " << subscription->mask() << " for touches " << touch->id() << ", " << other->id() << "\n"; } } } } /** * @internal * Attempt to match the given touch against three touch subscriptions */ void RegularRecognizer::MatchThreeTouchGestures(const SharedTouch& touch) { for (UGSubscription* subscription : subscriptions_[2]) { for (const auto& pair_1 : free_touches_) { const SharedTouch& other_1 = pair_1.second; if (other_1->id() == touch->id()) continue; for (const auto& pair_2 : free_touches_) { const SharedTouch& other_2 = pair_2.second; if (other_2->id() <= other_1->id() || other_2->id() == touch->id()) continue; /* All touches in a gesture must begin within a composition timeframe */ uint64_t min_start_time = touch->start_time(); if (other_1->start_time() < min_start_time && !other_1->accepted()) min_start_time = other_1->start_time(); if (other_2->start_time() < min_start_time && !other_2->accepted()) min_start_time = other_2->start_time(); if (touch->start_time() - min_start_time < COMPOSITION_TIME) { TouchMap map; map[touch->id()] = touch; map[other_1->id()] = other_1; map[other_2->id()] = other_2; assert(!UnacceptedGestureExists(subscription, map)); Gesture* gesture = new Gesture(this, subscription, map, touch->start_time()); unaccepted_gestures_.insert(SharedGesture(gesture)); LOG(Dbg) << "New tentative gesture " << gesture->id() << " matched subscription " << subscription << " with mask " << subscription->mask() << " for touches " << touch->id() << ", " << other_1->id() << ", " << other_2->id() << "\n"; } } } } } /** * @internal * Attempt to match the given touch against four touch subscriptions */ void RegularRecognizer::MatchFourTouchGestures(const SharedTouch& touch) { for (UGSubscription* subscription : subscriptions_[3]) { for (const auto& pair_1 : free_touches_) { const SharedTouch& other_1 = pair_1.second; if (other_1->id() == touch->id()) continue; for (const auto& pair_2 : free_touches_) { const SharedTouch& other_2 = pair_2.second; if (other_2->id() <= other_1->id() || other_2->id() == touch->id()) continue; for (const auto& pair_3 : free_touches_) { const SharedTouch& other_3 = pair_3.second; if (other_3->id() <= other_2->id() || other_3->id() == touch->id()) continue; /* All touches in a gesture must begin within a composition * timeframe */ uint64_t min_start_time = touch->start_time(); if (other_1->start_time() < min_start_time && !other_1->accepted()) min_start_time = other_1->start_time(); if (other_2->start_time() < min_start_time && !other_2->accepted()) min_start_time = other_2->start_time(); if (other_3->start_time() < min_start_time && !other_3->accepted()) min_start_time = other_3->start_time(); if (touch->start_time() - min_start_time < COMPOSITION_TIME) { TouchMap map; map[touch->id()] = touch; map[other_1->id()] = other_1; map[other_2->id()] = other_2; map[other_3->id()] = other_3; assert(!UnacceptedGestureExists(subscription, map)); Gesture* gesture = new Gesture(this, subscription, map, touch->start_time()); unaccepted_gestures_.insert(SharedGesture(gesture)); LOG(Dbg) << "New tentative gesture " << gesture->id() << " matched subscription " << subscription << " with mask " << subscription->mask() << " for touches " << touch->id() << ", " << other_1->id() << ", " << other_2->id() << ", " << other_3->id() << "\n"; } } } } } } /** * @internal * Attempt to match the given touch against five touch subscriptions */ void RegularRecognizer::MatchFiveTouchGestures(const SharedTouch& touch) { for (UGSubscription* subscription : subscriptions_[4]) { for (const auto& pair_1 : free_touches_) { const SharedTouch& other_1 = pair_1.second; if (other_1->id() == touch->id()) continue; for (const auto& pair_2 : free_touches_) { const SharedTouch& other_2 = pair_2.second; if (other_2->id() <= other_1->id() || other_2->id() == touch->id()) continue; for (const auto& pair_3 : free_touches_) { const SharedTouch& other_3 = pair_3.second; if (other_3->id() <= other_2->id() || other_3->id() == touch->id()) continue; for (const auto& pair_4 : free_touches_) { const SharedTouch& other_4 = pair_4.second; if (other_4->id() <= other_3->id() || other_4->id() == touch->id()) continue; /* All touches in a gesture must begin within a composition * timeframe */ uint64_t min_start_time = touch->start_time(); if (other_1->start_time() < min_start_time && !other_1->accepted()) min_start_time = other_1->start_time(); if (other_2->start_time() < min_start_time && !other_2->accepted()) min_start_time = other_2->start_time(); if (other_3->start_time() < min_start_time && !other_3->accepted()) min_start_time = other_3->start_time(); if (other_4->start_time() < min_start_time && !other_4->accepted()) min_start_time = other_4->start_time(); if (touch->start_time() - min_start_time < COMPOSITION_TIME) { TouchMap map; map[touch->id()] = touch; map[other_1->id()] = other_1; map[other_2->id()] = other_2; map[other_3->id()] = other_3; map[other_4->id()] = other_4; assert(!UnacceptedGestureExists(subscription, map)); Gesture* gesture = new Gesture(this, subscription, map, touch->start_time()); unaccepted_gestures_.insert(SharedGesture(gesture)); LOG(Dbg) << "New tentative gesture " << gesture->id() << " matched subscription " << subscription << " with mask " << subscription->mask() << " for touches " << touch->id() << ", " << other_1->id() << ", " << other_2->id() << ", " << other_3->id() << ", " << other_4->id() << "\n"; } } } } } } } /** * @internal * Returns whether an unaccepted gesture with the given characteristics already exists */ bool RegularRecognizer::UnacceptedGestureExists(UGSubscription* subscription, TouchMap &touch_map) { for (auto gesture : unaccepted_gestures_) { if (subscription != gesture->subscription()) continue; if (gesture->current_touches().Equals(touch_map)) return true; } return false; } } // namespace grail } // namespace oif grail-3.1.0+16.04.20160125/src/regular-recognizer.h0000644000015600001650000000363612651522342021732 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_REGULAR_RECOGNIZER_H_ #define GRAIL_REGULAR_RECOGNIZER_H_ #include "recognizer.h" namespace oif { namespace grail { class RegularRecognizer : public Recognizer { public: RegularRecognizer(UGHandle* handle, const UFDevice device, UFWindowId window); virtual bool atomic() const {return false;} virtual void ProcessFrameEvent(const UFEvent event); private: void ExpandGestureIfPossible(const SharedTouch& touch, const SharedGesture& gesture); void ProcessTouches(const UFEvent event); void MatchOneTouchGestures(const SharedTouch& touch); void MatchTwoTouchGestures(const SharedTouch& touch); void MatchThreeTouchGestures(const SharedTouch& touch); void MatchFourTouchGestures(const SharedTouch& touch); void MatchFiveTouchGestures(const SharedTouch& touch); bool UnacceptedGestureExists(UGSubscription* subscription, TouchMap &touch_map); std::map> all_touches_; }; } // namespace grail } // namespace oif #endif // GRAIL_REGULAR_RECOGNIZER_H_ grail-3.1.0+16.04.20160125/src/libgrail.ver0000644000015600001650000000214312651522342020246 0ustar pbuserpbgroup00000000000000GRAIL_3.1 { global: grail_accept_gesture; grail_delete; grail_event_get_property; grail_event_get_time; grail_event_get_type; grail_event_ref; grail_event_unref; grail_get_event; grail_get_fd; grail_new; grail_next_timeout; grail_process_frame_event; grail_reject_gesture; grail_slice_get_center_of_rotation_x; grail_slice_get_center_of_rotation_y; grail_slice_get_construction_finished; grail_slice_get_cumulative_transform; grail_slice_get_frame; grail_slice_get_id; grail_slice_get_num_touches; grail_slice_get_original_center_x; grail_slice_get_original_center_y; grail_slice_get_original_radius; grail_slice_get_property; grail_slice_get_recognized; grail_slice_get_state; grail_slice_get_subscription; grail_slice_get_touch_id; grail_slice_get_transform; grail_subscription_activate; grail_subscription_deactivate; grail_subscription_delete; grail_subscription_get_property; grail_subscription_new; grail_subscription_set_property; grail_update_time; local: *; }; grail-3.1.0+16.04.20160125/src/touch.h0000644000015600001650000000355712651522342017250 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_TOUCH_H_ #define GRAIL_TOUCH_H_ #include namespace oif { namespace grail { class Touch { public: Touch(UFTouch touch, UFDevice device, UFWindowId window_id); ~Touch(); void Update(UFTouch touch); void Accept(); UFTouchId id() const { return id_; } uint64_t start_time() const { return start_time_; } bool accepted() const { return accepted_; } bool pending_end() const { return pending_end_; } void set_pending_end(bool pending_end) { pending_end_ = pending_end; } bool owned() const { return owned_; } void set_owned(bool owned) { owned_ = owned; } bool ended() const { return ended_; } void set_ended(bool ended) { ended_ = ended; } Touch(const Touch&) = delete; Touch& operator=(const Touch&) = delete; private: UFTouchId id_; uint64_t start_time_; UFDevice device_; UFWindowId window_id_; bool accepted_; bool pending_end_; bool owned_; bool ended_; }; } // namespace grail } // namespace oif #endif // GRAIL_TOUCH_H_ grail-3.1.0+16.04.20160125/src/log.cpp0000644000015600001650000000325612651522342017236 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #include "log.h" #include namespace oif { namespace grail { namespace { Logger logger; } // namespace Logger::Logger() : level_(0), null_ostream_(&null_buf_) { const char* string = getenv("GRAIL_DEBUG"); if (string) { int tmp = atoi(string); if (tmp >= Dbg && tmp <= Err) level_ = tmp; } } std::ostream& Logger::Log(Level level) { if (level < logger.level_) return logger.null_ostream_; switch (level) { case Dbg: std::clog << "GRAIL DEBUG "; return std::clog; case Warn: std::clog << "GRAIL WARNING "; return std::clog; case Err: std::cerr << "GRAIL ERROR "; return std::cerr; default: return logger.null_ostream_; } } Logger& Logger::instance() { return logger; } } // namespace grail } // namespace oif grail-3.1.0+16.04.20160125/src/handle.h0000644000015600001650000000432512651522342017353 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Multitouch Gesture Recognition Library * * Copyright (C) 2011-2012 Canonical Ltd. * * This library is free software: you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 3 * as published by the Free Software Foundation. * * This library is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library. If not, see . * ****************************************************************************/ #ifndef GRAIL_HANDLE_H_ #define GRAIL_HANDLE_H_ #include #include #include #include #include "oif/grail.h" #include "forward.h" struct UGHandle_ {}; namespace oif { namespace grail { class UGHandle : public UGHandle_ { public: UGHandle(); ~UGHandle(); int event_fd() const { return event_fd_; } Recognizer *CreateRecognizerForSubscription(UGSubscription* subscription); UGStatus ActivateSubscription(UGSubscription* subscription); void DeactivateSubscription(UGSubscription* subscription); unsigned int NewGestureID(Recognizer* recognizer); void ProcessFrameEvent(UFEvent event); void UpdateTime(uint64_t time); uint64_t NextTimeout() const; void EnqueueEvent(oif::grail::UGEvent*); void RemoveGestureFromEventQueue(unsigned int id); UGStatus GetEvent(::UGEvent* event); UGStatus AcceptGesture(unsigned int id); UGStatus RejectGesture(unsigned int id); UGHandle(const UGHandle&) = delete; UGHandle& operator=(const UGHandle&) = delete; private: typedef std::unique_ptr UniqueRecognizer; int event_fd_; unsigned int next_id_; std::map> recognizers_; std::map gestures_; std::list event_queue_; }; } // namespace grail } // namespace oif #endif // GRAIL_HANDLE_H_ grail-3.1.0+16.04.20160125/README0000644000015600001650000000113312651522342016032 0ustar pbuserpbgroup00000000000000grail - Gesture Recognition And Instantiation Library This tree consists of an interface and tools for handling gesture recognition and gesture instantiation. When a multitouch gesture is performed on a device, the recognizer emits one or several possible gestures. Once the context of the gesture is known, i.e., in what window the touches land and what gestures the clients of that window listens to, the instantiator delivers the matching set of gestures. The library handles tentative getures, i.e., buffering of events for several alternative gestures until a match is confirmed. Enjoy, Henrik grail-3.1.0+16.04.20160125/Makefile.am0000644000015600001650000000262212651522342017212 0ustar pbuserpbgroup00000000000000ACLOCAL_AMFLAGS = -I m4 --install AM_DISTCHECK_CONFIGURE_FLAGS = --disable-integration-tests SUBDIRS = src test # all tools are X11-specific if HAVE_XINPUT SUBDIRS += tools endif pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = grail.pc INCLUDES = $(top_srcdir)/include/ if HAVE_GCOV .PHONY: coverage-html generate-coverage-html coverage-html-clean coverage-html: -$(MAKE) $(AM_MAKEFLAGS) -k check $(MAKE) $(AM_MAKEFLAGS) generate-coverage-html generate-coverage-html: @echo Collecting coverage data $(LCOV) --directory $(top_builddir) --base-directory src --capture --output-file coverage.info --no-checksum --compat-libtool LANG=C $(GENHTML) --prefix $(top_builddir) --output-directory coveragereport --title "Code Coverage" --legend --show-details coverage.info clean-coverage-html: -$(LCOV) --directory $(top_builddir) -z -rm -rf coverage.info coveragereport -find $(top_builddir) -name '*.gcda' -print | xargs rm .PHONY: coverage-xml generate-coverage-xml coverage-xml-clean coverage-xml: -$(MAKE) $(AM_MAKEFLAGS) -k check $(MAKE) $(AM_MAKEFLAGS) generate-coverage-xml generate-coverage-xml: @echo Generating coverage XML report $(MAKE) $(AM_MAKEFLAGS) clean-coverage-xml $(GCOVR) -x -r $(top_builddir) -o $(top_builddir)/coverage.xml --object-directory=$(abs_builddir)/.libs clean-coverage-xml: -rm -rf $(top_builddir)/coverage.xml endif # HAVE_GCOV EXTRA_DIST = COPYING.GPL3 grail-3.1.0+16.04.20160125/tools/0000755000015600001650000000000012651522501016311 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/tools/grail-test-atomic.c0000644000015600001650000002625112651522346022017 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include "common/device.h" #include "common/servertime.h" #include "common/slice.h" static const int kNumSubscriptions = 10; static int subscribe(UGHandle handle, UFDevice device, Window window, UGSubscription *subscriptions, unsigned int touches_start, unsigned int touches_min) { UGStatus status; UFWindowId window_id = frame_x11_create_window_id(window); const UGGestureTypeMask mask = UGGestureTypeDrag | UGGestureTypePinch | UGGestureTypeRotate | UGGestureTypeTap; int TRUE = 1; int i; for (i = 0; i < kNumSubscriptions; ++i) if (subscriptions[i] == NULL) break; if (i == kNumSubscriptions) { fprintf(stderr, "Warning: maximum number of devices reached\n"); return 0; } status = grail_subscription_new(&subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create subscription\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyDevice, &device); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription device\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyWindow, &window_id); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription window\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyAtomicGestures, &TRUE); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set atomic gestures subscription property\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyTouchesStart, &touches_start); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription start touches\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyTouchesMaximum, &touches_start); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription start touches\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyTouchesMinimum, &touches_min); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription min touches\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyMask, &mask); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription mask\n"); return 0; } status = grail_subscription_activate(handle, subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to activate subscription\n"); return 0; } return 1; } static void process_frame_events(UGHandle grail_handle, UFHandle frame_handle, Window subscribe_window, UGSubscription* subscriptions) { UFEvent event; while (frame_get_event(frame_handle, &event) == UFStatusSuccess) { grail_process_frame_event(grail_handle, event); switch (frame_event_get_type(event)) { case UFEventTypeDeviceAdded: { UFDevice device; UFStatus status; print_device_added(frame_handle, event); status = frame_event_get_property(event, UFEventPropertyDevice, &device); if (status != UFStatusSuccess) { fprintf(stderr, "Error: failed to get device from event\n"); } else { subscribe(grail_handle, device, subscribe_window, subscriptions, 2, 2); subscribe(grail_handle, device, subscribe_window, subscriptions, 3, 1); subscribe(grail_handle, device, subscribe_window, subscriptions, 4, 1); } break; } case UFEventTypeDeviceRemoved: print_device_removed(frame_handle, event); break; default: break; } frame_event_unref(event); } } static void process_slice(UGHandle handle, UGSlice slice, uint64_t time) { if (grail_slice_get_state(slice) == UGGestureStateBegin) { unsigned int id = grail_slice_get_id(slice); printf("Accepting gesture %u\n", id); grail_accept_gesture(handle, id); } print_slice(handle, slice, time); } static void process_grail_events(UGHandle handle) { UGEvent event; while (grail_get_event(handle, &event) == UGStatusSuccess) { switch (grail_event_get_type(event)) { case UGEventTypeSlice: { UGSlice slice; UGStatus status; status = grail_event_get_property(event, UGEventPropertySlice, &slice); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to get slice from event\n"); break; } process_slice(handle, slice, grail_event_get_time(event)); break; } default: break; } grail_event_unref(event); } } int quit = 0; static void sigint_handler(__attribute__((unused)) int signum) { quit = 1; } int main(int argc, const char* argv[]) { Display *display; Window win; XIEventMask mask; XIGrabModifiers mods = { XIAnyModifier, 0 }; XSyncAlarm alarm; UFStatus frame_status; UFHandle frame_handle; UGStatus grail_status; UGHandle grail_handle; UGSubscription subscriptions[kNumSubscriptions]; int xi_major = 2; int xi_minor = 2; int frame_fd; int grail_fd; int nfds; int i; char *end; memset(subscriptions, 0, sizeof(UGSubscription) * kNumSubscriptions); display = XOpenDisplay(NULL); if (!display) { fprintf(stderr, "Error: failed to open connection to X server\n"); return -1; } if (argc > 2) { fprintf(stderr, "Usage: %s [Window ID]\n", argv[0]); return -1; } else if (argc == 2) { win = strtoul(argv[1], &end, 0); if (*end != '\0') { fprintf(stderr, "Invalid window ID\n"); return -1; } } else { printf("No window ID specified, using root window.\n"); win = RootWindow(display, DefaultScreen(display)); } signal(SIGINT, sigint_handler); if (XIQueryVersion(display, &xi_major, &xi_minor) != Success) { fprintf(stderr, "Error: failed to query XInput version\n"); return -1; } if (xi_major < 2 || xi_minor < 2) { fprintf(stderr, "Error: XInput version of server is too old (%d.%d)\n", xi_major, xi_minor); return -1; } nfds = ConnectionNumber(display) + 1; alarm = create_alarm(display); mask.deviceid = XIAllMasterDevices; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = calloc(mask.mask_len, sizeof(char)); XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); XISetMask(mask.mask, XI_TouchOwnership); XISetMask(mask.mask, XI_HierarchyChanged); XIGrabTouchBegin(display, XIAllMasterDevices, win, 0, &mask, 1, &mods); free(mask.mask); if (mods.status != XIGrabSuccess) { fprintf(stderr, "Error: failed to grab touches on window\n"); return -1; } frame_status = frame_x11_new(display, &frame_handle); if (frame_status != UFStatusSuccess) { fprintf(stderr, "Error: failed to create frame instance\n"); return -1; } frame_fd = frame_get_fd(frame_handle); nfds = frame_fd + 1 > nfds ? frame_fd + 1 : nfds; grail_status = grail_new(&grail_handle); if (grail_status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create grail instance\n"); frame_x11_delete(frame_handle); return -1; } grail_fd = grail_get_fd(grail_handle); nfds = grail_fd + 1 > nfds ? grail_fd + 1 : nfds; while (!quit) { fd_set set; FD_ZERO(&set); XSync(display, 0); if (!XPending(display)) { int ret; FD_SET(ConnectionNumber(display), &set); FD_SET(frame_fd, &set); FD_SET(grail_fd, &set); set_timeout(grail_handle, display, alarm); ret = select(nfds, &set, NULL, NULL, NULL); if (ret < 0) { if (quit) break; perror("Warning: select returned an error"); continue; } } if (XPending(display) || FD_ISSET(ConnectionNumber(display), &set)) { while (XPending(display)) { XEvent event; XNextEvent(display, &event); if (event.type != GenericEvent) { /* If it's not an XI 2 event, it's a timer event */ if (alarm != None) { /* Process any outstanding frame events first */ process_frame_events(grail_handle, frame_handle, win, subscriptions); update_time(grail_handle, (XSyncAlarmNotifyEvent *)&event); } continue; } XGenericEventCookie *xcookie = &event.xcookie; if (!XGetEventData(display, xcookie)) { fprintf(stderr, "Warning: failed to get X generic event data\n"); continue; } frame_status = frame_x11_process_event(frame_handle, xcookie); if (frame_status != UFStatusSuccess) fprintf(stderr, "Warning: failed to inject X event\n"); XFreeEventData(display, xcookie); } } if (FD_ISSET(frame_fd, &set)) process_frame_events(grail_handle, frame_handle, win, subscriptions); if (FD_ISSET(grail_fd, &set)) process_grail_events(grail_handle); } for (i = 0; i < kNumSubscriptions; ++i) { if (subscriptions[i]) { grail_subscription_deactivate(grail_handle, subscriptions[i]); grail_subscription_delete(subscriptions[i]); } } destroy_alarm(display, alarm); grail_delete(grail_handle); frame_x11_delete(frame_handle); XCloseDisplay(display); return 0; } grail-3.1.0+16.04.20160125/tools/grail-test-atomic.10000644000015600001650000000072412651522342021726 0ustar pbuserpbgroup00000000000000.TH GRAIL-TEST-ATOMIC 1 "March 14, 2012" "grail" "Open Input Framework" .SH NAME grail-test-atomic \- dump grail v3 atomic gesture events .SH SYNPOSIS .B grail-test-atomic [ .I window .B ] .br .SH OPTIONS .I window Specifies the .I X window of a specific window to associate with gestures. .SH DESCRIPTION Prints grail gesture events to stdout, with the recognizer operating in atomic mode. Requires an X11 server which supports multi-touch through XInput 2.2. grail-3.1.0+16.04.20160125/tools/grail-test-propagation.10000644000015600001650000000072412651522342022775 0ustar pbuserpbgroup00000000000000.TH GRAIL-TEST-PROPAGATION 1 "March 29, 2012" "grail" "Open Input Framework" .SH NAME grail-test-propagation \- test driver tool for gesture accept/reject .SH SYNPOSIS .B grail-test-propagation .I window .br .SH OPTIONS .I window Specifies the .I X window of a specific window to associate with gestures. .SH DESCRIPTION Runs a gesture recognizer on the given X11 window, alternately exercising gesture accept and reject functionality as gestures are performed. grail-3.1.0+16.04.20160125/tools/grail-test-3-1.10000644000015600001650000000071412651522342020751 0ustar pbuserpbgroup00000000000000.TH GRAIL-TEST-3-1 1 "March 14, 2012" "grail" "Open Input Framework" .SH NAME grail-test-3-1 \- dump grail v3 events .SH SYNPOSIS .B grail-test-3-1 .I window .br .SH DESCRIPTION This tool prints grail v3 events to stdout. It requires an X11 server which supports multi-touch through XInput 2.2. It subscribes to gestures with 3 touch start and max, but with a minimum of 1 touch. The grail-test-3-1 tool helps test continuation through touch count changes. grail-3.1.0+16.04.20160125/tools/Makefile.am0000644000015600001650000000220212651522342020344 0ustar pbuserpbgroup00000000000000dist_man_MANS = \ grail-test-3-1.1 \ grail-test-atomic.1 \ grail-test-edge.1 \ grail-test-propagation.1 bin_PROGRAMS = \ grail-test-propagation \ grail-test-edge \ grail-test-3-1 \ grail-test-atomic grail_test_propagation_SOURCES = grail-test-propagation.c \ common/device.c \ common/device.h \ common/servertime.c \ common/servertime.h \ common/slice.c \ common/slice.h grail_test_edge_SOURCES = grail-test-edge.c \ common/device.c \ common/device.h \ common/servertime.c \ common/servertime.h \ common/slice.c \ common/slice.h grail_test_3_1_SOURCES = grail-test-3-1.c \ common/device.c \ common/device.h \ common/servertime.c \ common/servertime.h \ common/slice.c \ common/slice.h grail_test_atomic_SOURCES = grail-test-atomic.c \ common/device.c \ common/device.h \ common/servertime.c \ common/servertime.h \ common/slice.c \ common/slice.h INCLUDES=-I$(top_srcdir)/include/ AM_CPPFLAGS = $(WARNING_CPPFLAGS) AM_CFLAGS = $(X11_CFLAGS) $(XINPUT_CFLAGS) $(FRAME_CFLAGS) $(COVERAGE_CFLAGS) LDADD = \ $(top_builddir)/src/libgrail.la \ $(FRAME_LIBS) \ $(X11_LIBS) \ $(XINPUT_LIBS) \ $(COVERAGE_LIBS) \ -lm grail-3.1.0+16.04.20160125/tools/grail-test-propagation.c0000644000015600001650000002320412651522342023055 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include "common/device.h" #include "common/servertime.h" #include "common/slice.h" static const int kNumSubscriptions = 10; static int subscribe(UGHandle handle, UFDevice device, Window window, UGSubscription *subscriptions) { UGStatus status; UFWindowId window_id = frame_x11_create_window_id(window); const UGGestureTypeMask mask = UGGestureTypeDrag | UGGestureTypePinch | UGGestureTypeRotate | UGGestureTypeTap; int i; for (i = 0; i < kNumSubscriptions; ++i) if (subscriptions[i] == NULL) break; if (i == kNumSubscriptions) { fprintf(stderr, "Warning: maximum number of devices reached\n"); return 0; } status = grail_subscription_new(&subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create subscription\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyDevice, &device); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription device\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyWindow, &window_id); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription window\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyMask, &mask); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription mask\n"); return 0; } status = grail_subscription_activate(handle, subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to activate subscription\n"); return 0; } return 1; } static void process_frame_events(UGHandle grail_handle, UFHandle frame_handle, Window subscribe_window, UGSubscription* subscriptions) { UFEvent event; while (frame_get_event(frame_handle, &event) == UFStatusSuccess) { grail_process_frame_event(grail_handle, event); switch (frame_event_get_type(event)) { case UFEventTypeDeviceAdded: { UFDevice device; UFStatus status; print_device_added(frame_handle, event); status = frame_event_get_property(event, UFEventPropertyDevice, &device); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get device from event\n"); else subscribe(grail_handle, device, subscribe_window, subscriptions); break; } case UFEventTypeDeviceRemoved: print_device_removed(frame_handle, event); break; default: break; } frame_event_unref(event); } } static void process_slice(UGHandle handle, UGSlice slice, uint64_t time) { if (grail_slice_get_state(slice) == UGGestureStateBegin) { static int accept_flip_flop = 1; unsigned int id = grail_slice_get_id(slice); if (accept_flip_flop) { printf("Accepting gesture %u\n", id); grail_accept_gesture(handle, id); accept_flip_flop = 0; } else { printf("Rejecting gesture %u\n", id); grail_reject_gesture(handle, id); accept_flip_flop = 1; return; } } print_slice(handle, slice, time); } static void process_grail_events(UGHandle handle) { UGEvent event; while (grail_get_event(handle, &event) == UGStatusSuccess) { switch (grail_event_get_type(event)) { case UGEventTypeSlice: { UGSlice slice; UGStatus status; status = grail_event_get_property(event, UGEventPropertySlice, &slice); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to get slice from event\n"); break; } process_slice(handle, slice, grail_event_get_time(event)); break; } default: break; } grail_event_unref(event); } } int quit = 0; static void sigint_handler(__attribute__((unused)) int signum) { quit = 1; } int main(int argc, const char* argv[]) { Display *display; Window win; XIEventMask mask; XIGrabModifiers mods = { XIAnyModifier, 0 }; XSyncAlarm alarm; UFStatus frame_status; UFHandle frame_handle; UGStatus grail_status; UGHandle grail_handle; UGSubscription subscriptions[kNumSubscriptions]; int xi_major = 2; int xi_minor = 2; int frame_fd; int grail_fd; int nfds; int i; char *end; memset(subscriptions, 0, sizeof(UGSubscription) * kNumSubscriptions); if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } win = strtoul(argv[1], &end, 0); if (*end != '\0') { fprintf(stderr, "Invalid window ID\n"); return -1; } signal(SIGINT, sigint_handler); display = XOpenDisplay(NULL); if (!display) { fprintf(stderr, "Error: failed to open connection to X server\n"); return -1; } if (XIQueryVersion(display, &xi_major, &xi_minor) != Success) { fprintf(stderr, "Error: failed to query XInput version\n"); return -1; } if (xi_major < 2 || xi_minor < 2) { fprintf(stderr, "Error: XInput version of server is too old (%d.%d)\n", xi_major, xi_minor); return -1; } nfds = ConnectionNumber(display) + 1; alarm = create_alarm(display); mask.deviceid = XIAllMasterDevices; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = calloc(mask.mask_len, sizeof(char)); XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); XISetMask(mask.mask, XI_TouchOwnership); XISetMask(mask.mask, XI_HierarchyChanged); XIGrabTouchBegin(display, XIAllMasterDevices, win, 0, &mask, 1, &mods); free(mask.mask); if (mods.status != XIGrabSuccess) { fprintf(stderr, "Error: failed to grab touches on window\n"); return -1; } frame_status = frame_x11_new(display, &frame_handle); if (frame_status != UFStatusSuccess) { fprintf(stderr, "Error: failed to create frame instance\n"); return -1; } frame_fd = frame_get_fd(frame_handle); nfds = frame_fd + 1 > nfds ? frame_fd + 1 : nfds; grail_status = grail_new(&grail_handle); if (grail_status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create grail instance\n"); frame_x11_delete(frame_handle); return -1; } grail_fd = grail_get_fd(grail_handle); nfds = grail_fd + 1 > nfds ? grail_fd + 1 : nfds; while (!quit) { fd_set set; FD_ZERO(&set); XSync(display, 0); if (!XPending(display)) { int ret; FD_SET(ConnectionNumber(display), &set); FD_SET(frame_fd, &set); FD_SET(grail_fd, &set); set_timeout(grail_handle, display, alarm); ret = select(nfds, &set, NULL, NULL, NULL); if (ret < 0) { if (quit) break; perror("Warning: select returned an error"); continue; } } if (XPending(display) || FD_ISSET(ConnectionNumber(display), &set)) { while (XPending(display)) { XEvent event; XNextEvent(display, &event); if (event.type != GenericEvent) { /* If it's not an XI 2 event, it's probably a timer event */ if (alarm != None) { /* Process any outstanding frame events first */ process_frame_events(grail_handle, frame_handle, win, subscriptions); update_time(grail_handle, (XSyncAlarmNotifyEvent *)&event); } continue; } XGenericEventCookie *xcookie = &event.xcookie; if (!XGetEventData(display, xcookie)) { fprintf(stderr, "Warning: failed to get X generic event data\n"); continue; } frame_status = frame_x11_process_event(frame_handle, xcookie); if (frame_status != UFStatusSuccess) fprintf(stderr, "Warning: failed to inject X event\n"); XFreeEventData(display, xcookie); } } if (FD_ISSET(frame_fd, &set)) process_frame_events(grail_handle, frame_handle, win, subscriptions); if (FD_ISSET(grail_fd, &set)) process_grail_events(grail_handle); } for (i = 0; i < kNumSubscriptions; ++i) { if (subscriptions[i]) { grail_subscription_deactivate(grail_handle, subscriptions[i]); grail_subscription_delete(subscriptions[i]); } } destroy_alarm(display, alarm); grail_delete(grail_handle); frame_x11_delete(frame_handle); XCloseDisplay(display); return 0; } grail-3.1.0+16.04.20160125/tools/grail-test-edge.c0000644000015600001650000002567012651522342021447 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include "common/device.h" #include "common/servertime.h" #include "common/slice.h" static const int kNumSubscriptions = 10; static int subscribe(UGHandle handle, UFDevice device, Window window, UGSubscription *subscriptions) { static const unsigned int kNumTouches = 1; UGStatus status; UFWindowId window_id = frame_x11_create_window_id(window); const UGGestureTypeMask mask = UGGestureTypeDrag | UGGestureTypePinch | UGGestureTypeRotate | UGGestureTypeTap; int i; for (i = 0; i < kNumSubscriptions; ++i) if (subscriptions[i] == NULL) break; if (i == kNumSubscriptions) { fprintf(stderr, "Warning: maximum number of devices reached\n"); return 0; } status = grail_subscription_new(&subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create subscription\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyDevice, &device); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription device\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyWindow, &window_id); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription window\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyMask, &mask); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription mask\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyTouchesStart, &kNumTouches); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription starting touches\n"); return 0; } status = grail_subscription_activate(handle, subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to activate subscription\n"); return 0; } return 1; } static void process_frame_events(UGHandle grail_handle, UFHandle frame_handle, Window subscribe_window, UGSubscription* subscriptions) { UFEvent event; while (frame_get_event(frame_handle, &event) == UFStatusSuccess) { grail_process_frame_event(grail_handle, event); switch (frame_event_get_type(event)) { case UFEventTypeDeviceAdded: { UFDevice device; UFStatus status; print_device_added(frame_handle, event); status = frame_event_get_property(event, UFEventPropertyDevice, &device); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get device from event\n"); else subscribe(grail_handle, device, subscribe_window, subscriptions); break; } case UFEventTypeDeviceRemoved: print_device_removed(frame_handle, event); break; default: break; } frame_event_unref(event); } } static void process_slice(UGHandle handle, UGSlice slice, uint64_t time, Display *display) { if (grail_slice_get_state(slice) == UGGestureStateBegin) { unsigned int id = grail_slice_get_id(slice); UFFrame frame = grail_slice_get_frame(slice); unsigned int num_slice_touches = grail_slice_get_num_touches(slice); int i; for (i = 0; i < num_slice_touches; ++i) { UFTouch touch; UFStatus frame_status; UGStatus grail_status; UFTouchId touch_id; float value; grail_status = grail_slice_get_touch_id(slice, i, &touch_id); if (grail_status != UGStatusSuccess) { fprintf(stderr, "Warning: failed to get touch ID from slice\n"); fprintf(stderr, "Rejecting gesture %u\n", id); grail_reject_gesture(handle, id); return; } frame_status = frame_frame_get_touch_by_id(frame, touch_id, &touch); if (frame_status != UFStatusSuccess) { fprintf(stderr, "Warning: failed to get touch by id\n"); fprintf(stderr, "Rejecting gesture %u\n", id); grail_reject_gesture(handle, id); return; } value = frame_touch_get_window_x(touch); if (value < 20 || value > DisplayWidth(display, DefaultScreen(display)) - 20) continue; value = frame_touch_get_window_y(touch); if (value < 20 || value > DisplayHeight(display, DefaultScreen(display)) - 20) continue; printf("Rejecting gesture %u\n", id); grail_reject_gesture(handle, id); return; } printf("Accepting gesture %u\n", id); grail_accept_gesture(handle, id); } print_slice(handle, slice, time); } static void process_grail_events(UGHandle handle, Display *display) { UGEvent event; while (grail_get_event(handle, &event) == UGStatusSuccess) { switch (grail_event_get_type(event)) { case UGEventTypeSlice: { UGSlice slice; UGStatus status; status = grail_event_get_property(event, UGEventPropertySlice, &slice); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to get slice from event\n"); break; } process_slice(handle, slice, grail_event_get_time(event), display); break; } default: break; } grail_event_unref(event); } } int quit = 0; static void sigint_handler(__attribute__((unused)) int signum) { quit = 1; } int main() { Display *display; Window win; XIEventMask mask; XIGrabModifiers mods = { XIAnyModifier, 0 }; XSyncAlarm alarm; UFStatus frame_status; UFHandle frame_handle; UGStatus grail_status; UGHandle grail_handle; UGSubscription subscriptions[kNumSubscriptions]; int xi_major = 2; int xi_minor = 2; int frame_fd; int grail_fd; int nfds; int i; signal(SIGINT, sigint_handler); memset(subscriptions, 0, sizeof(UGSubscription) * kNumSubscriptions); display = XOpenDisplay(NULL); if (!display) { fprintf(stderr, "Error: failed to open connection to X server\n"); return -1; } if (XIQueryVersion(display, &xi_major, &xi_minor) != Success) { fprintf(stderr, "Error: failed to query XInput version\n"); return -1; } if (xi_major < 2 || xi_minor < 2) { fprintf(stderr, "Error: XInput version of server is too old (%d.%d)\n", xi_major, xi_minor); return -1; } nfds = ConnectionNumber(display) + 1; win = DefaultRootWindow(display); alarm = create_alarm(display); mask.deviceid = XIAllMasterDevices; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = calloc(mask.mask_len, sizeof(char)); XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); XISetMask(mask.mask, XI_TouchOwnership); XISetMask(mask.mask, XI_HierarchyChanged); XIGrabTouchBegin(display, XIAllMasterDevices, win, 0, &mask, 1, &mods); free(mask.mask); if (mods.status != XIGrabSuccess) { fprintf(stderr, "Error: failed to grab touches on window\n"); return -1; } frame_status = frame_x11_new(display, &frame_handle); if (frame_status != UFStatusSuccess) { fprintf(stderr, "Error: failed to create frame instance\n"); return -1; } frame_fd = frame_get_fd(frame_handle); nfds = frame_fd + 1 > nfds ? frame_fd + 1 : nfds; grail_status = grail_new(&grail_handle); if (grail_status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create grail instance\n"); frame_x11_delete(frame_handle); return -1; } grail_fd = grail_get_fd(grail_handle); nfds = grail_fd + 1 > nfds ? grail_fd + 1 : nfds; while (!quit) { fd_set set; FD_ZERO(&set); XSync(display, 0); if (!XPending(display)) { int ret; FD_SET(ConnectionNumber(display), &set); FD_SET(frame_fd, &set); FD_SET(grail_fd, &set); set_timeout(grail_handle, display, alarm); ret = select(nfds, &set, NULL, NULL, NULL); if (ret < 0) { if (quit) break; perror("Warning: select returned an error"); continue; } } if (XPending(display) || FD_ISSET(ConnectionNumber(display), &set)) { while (XPending(display)) { XEvent event; XNextEvent(display, &event); if (event.type != GenericEvent) { /* If it's not an XI 2 event, it's probably a timer event */ if (alarm != None) { /* Process any outstanding frame events first */ process_frame_events(grail_handle, frame_handle, win, subscriptions); update_time(grail_handle, (XSyncAlarmNotifyEvent *)&event); } continue; } XGenericEventCookie *xcookie = &event.xcookie; if (!XGetEventData(display, xcookie)) { fprintf(stderr, "Warning: failed to get X generic event data\n"); continue; } frame_status = frame_x11_process_event(frame_handle, xcookie); if (frame_status != UFStatusSuccess) fprintf(stderr, "Warning: failed to inject X event\n"); XFreeEventData(display, xcookie); } } if (FD_ISSET(frame_fd, &set)) process_frame_events(grail_handle, frame_handle, win, subscriptions); if (FD_ISSET(grail_fd, &set)) process_grail_events(grail_handle, display); } for (i = 0; i < kNumSubscriptions; ++i) { if (subscriptions[i]) { grail_subscription_deactivate(grail_handle, subscriptions[i]); grail_subscription_delete(subscriptions[i]); } } destroy_alarm(display, alarm); grail_delete(grail_handle); frame_x11_delete(frame_handle); XCloseDisplay(display); return 0; } grail-3.1.0+16.04.20160125/tools/grail-test-edge.10000644000015600001650000000047612651522342021362 0ustar pbuserpbgroup00000000000000.TH GRAIL-TEST-EDGE 1 "March 29, 2012" "grail" "Open Input Framework" .SH NAME grail-test-edge \- test edge swipes .SH SYNPOSIS .B grail-test-edge .br .SH OPTIONS There are no options for this program. .SH DESCRIPTION Attaches to the root window of the current X server and tries to identify edge swipe gestures. grail-3.1.0+16.04.20160125/tools/common/0000755000015600001650000000000012651522501017601 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/tools/common/servertime.h0000644000015600001650000000221412651522342022141 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include #include #include #include XSyncAlarm create_alarm(Display *display); void destroy_alarm(Display *display, XSyncAlarm alarm); void update_time(UGHandle handle, XSyncAlarmNotifyEvent *event); void set_timeout(UGHandle handle, Display *display, XSyncAlarm alarm); grail-3.1.0+16.04.20160125/tools/common/slice.h0000644000015600001650000000162512651522342021060 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include void print_slice(UGHandle handle, UGSlice slice, uint64_t time); grail-3.1.0+16.04.20160125/tools/common/device.h0000644000015600001650000000210612651522342021213 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include void get_axis_info(UFAxis axis, UFAxisType *type, const char **name, float *min, float *max, float *res); void print_device_added(UFHandle handle, UFEvent event); void print_device_removed(UFHandle handle, UFEvent event); grail-3.1.0+16.04.20160125/tools/common/slice.c0000644000015600001650000000655112651522342021056 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include "common/slice.h" #include void print_slice(UGHandle handle, UGSlice slice, uint64_t time) { const UGGestureTypeMask recognized = grail_slice_get_recognized(slice); const UGTransform *transform = grail_slice_get_transform(slice); const UGTransform *cumulative_transform = grail_slice_get_cumulative_transform(slice); printf("Gesture slice:\n"); printf(" Time: %ju\n", time); printf(" ID: %u\n", grail_slice_get_id(slice)); switch (grail_slice_get_state(slice)) { case UGGestureStateBegin: printf(" State: Begin\n"); break; case UGGestureStateUpdate: printf(" State: Update\n"); break; case UGGestureStateEnd: printf(" State: End\n"); break; } printf(" Subscription: %p\n", grail_slice_get_subscription(slice)); printf(" Recognized Gestures:"); if (recognized & UGGestureTypeDrag) printf(" Drag"); if (recognized & UGGestureTypePinch) printf(" Pinch"); if (recognized & UGGestureTypeRotate) printf(" Rotate"); if (recognized & UGGestureTypeTap) printf(" Tap"); if (recognized & UGGestureTypeTouch) printf(" Touch"); printf("\n"); printf(" Construction Finished: %s\n", (grail_slice_get_construction_finished(slice) ? "Yes" : "No")); printf(" Number Of Touches: %u\n", grail_slice_get_num_touches(slice)); printf(" Original Center: (%f, %f)\n", grail_slice_get_original_center_x(slice), grail_slice_get_original_center_y(slice)); printf(" Original Radius: %f\n", grail_slice_get_original_radius(slice)); printf(" Instantaneous Center Of Rotation: (%f, %f)\n", grail_slice_get_center_of_rotation_x(slice), grail_slice_get_center_of_rotation_y(slice)); printf(" Instantaneous Transform:\n"); printf(" [ %22f, %22f, %22f ]\n", (*transform)[0][0], (*transform)[0][1], (*transform)[0][2]); printf(" [ %22f, %22f, %22f ]\n", (*transform)[1][0], (*transform)[1][1], (*transform)[1][2]); printf(" [ %22f, %22f, %22f ]\n", (*transform)[2][0], (*transform)[2][1], (*transform)[2][2]); printf(" Cumulative Transform:\n"); printf(" [ %22f, %22f, %22f ]\n", (*cumulative_transform)[0][0], (*cumulative_transform)[0][1], (*cumulative_transform)[0][2]); printf(" [ %22f, %22f, %22f ]\n", (*cumulative_transform)[1][0], (*cumulative_transform)[1][1], (*cumulative_transform)[1][2]); printf(" [ %22f, %22f, %22f ]\n", (*cumulative_transform)[2][0], (*cumulative_transform)[2][1], (*cumulative_transform)[2][2]); printf("\n"); } grail-3.1.0+16.04.20160125/tools/common/device.c0000644000015600001650000001202312651522342021205 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include "common/device.h" #include void get_axis_info(UFAxis axis, UFAxisType *type, const char **name, float *min, float *max, float *res) { *type = frame_axis_get_type(axis); switch (*type) { case UFAxisTypeX: *name = "X"; break; case UFAxisTypeY: *name = "Y"; break; case UFAxisTypeTouchMajor: *name = "Touch major"; break; case UFAxisTypeTouchMinor: *name = "Touch minor"; break; case UFAxisTypeWidthMajor: *name = "Width major"; break; case UFAxisTypeWidthMinor: *name = "Width minor"; break; case UFAxisTypeOrientation: *name = "Orientation"; break; case UFAxisTypeTool: *name = "Tool"; break; case UFAxisTypeBlobId: *name = "Blob ID"; break; case UFAxisTypeTrackingId: *name = "Tracking ID"; break; case UFAxisTypePressure: *name = "Pressure"; break; case UFAxisTypeDistance: *name = "Distance"; break; default: *name = "Unknown"; break; } *min = frame_axis_get_minimum(axis); *max = frame_axis_get_maximum(axis); *res = frame_axis_get_resolution(axis); } void print_device_added(UFHandle handle, UFEvent event) { UFDevice device; char *string = NULL; UFStatus status; int num_axes = 0; int integer; int i; status = frame_event_get_property(event, UFEventPropertyDevice, &device); if (status != UFStatusSuccess) { fprintf(stderr, "Error: failed to get device from event\n"); return; } printf("Device added:\n"); printf(" Time: %ju ms\n", frame_event_get_time(event)); status = frame_device_get_property(device, UFDevicePropertyName, &string); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get name from device\n"); else printf(" Name: %s\n", string); status = frame_device_get_property(device, UFDevicePropertyDirect, &integer); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get direct property from device\n"); else printf(" Direct: %s\n", integer ? "yes" : "no"); status = frame_device_get_property(device, UFDevicePropertyIndependent, &integer); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get independent property from device\n"); else printf(" Independent: %s\n", integer ? "yes" : "no"); status = frame_device_get_property(device, UFDevicePropertySemiMT, &integer); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get semi-MT property from device\n"); else printf(" Semi-MT: %s\n", integer ? "yes" : "no"); status = frame_device_get_property(device, UFDevicePropertyMaxTouches, &integer); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get max touches from device\n"); else printf(" Maximum touches: %d\n", integer); num_axes = frame_device_get_num_axes(device); printf(" Number of axes: %d\n", num_axes); for (i = 0; i < num_axes; ++i) { UFAxis axis; UFAxisType type; const char *name; float min; float max; float res; printf(" Axis %d:\n", i); status = frame_device_get_axis_by_index(device, i, &axis); if (status != UFStatusSuccess) { fprintf(stderr, "Error: failed to get axis %d from device\n", i); continue; } get_axis_info(axis, &type, &name, &min, &max, &res); printf(" Type: %s\n", name); printf(" Minimum: %f\n", min); printf(" Maximum: %f\n", max); printf(" Resolution: %f\n", res); } printf("\n"); } void print_device_removed(UFHandle handle, UFEvent event) { UFDevice device; char *string = NULL; UFStatus status; status = frame_event_get_property(event, UFEventPropertyDevice, &device); if (status != UFStatusSuccess) { fprintf(stderr, "Error: failed to get device from event\n"); return; } printf("Device removed:\n"); printf(" Time: %ju ms\n", frame_event_get_time(event)); status = frame_device_get_property(device, UFDevicePropertyName, &string); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get name from device\n"); else printf(" Name: %s\n", string); } grail-3.1.0+16.04.20160125/tools/common/servertime.c0000644000015600001650000000617512651522342022146 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include "common/servertime.h" #include #include XSyncAlarm create_alarm(Display *display) { int event_base; int error_base; int major_version; int minor_version; XSyncSystemCounter *counters; int num_system_counters; XSyncCounter counter = -1; XSyncAlarmAttributes attrs; XSyncAlarm alarm; int i; if (XSyncQueryExtension(display, &event_base, &error_base) != True) { fprintf(stderr, "Warning: failed to query sync extension\n"); return -1; } if (XSyncInitialize(display, &major_version, &minor_version) != True) { fprintf(stderr, "Warning: failed to initialize sync extension\n"); return -1; } counters = XSyncListSystemCounters(display, &num_system_counters); for (i = 0; i < num_system_counters; ++i) { if (strcmp(counters[i].name, "SERVERTIME") == 0) { counter = counters[i].counter; break; } } XSyncFreeSystemCounterList(counters); if (i == num_system_counters) { fprintf(stderr, "Warning: failed to find SERVERTIME counter\n"); return None; } attrs.trigger.counter = counter; attrs.trigger.value_type = XSyncAbsolute; attrs.trigger.test_type = XSyncPositiveComparison; attrs.delta.hi = 0; attrs.delta.lo = 0; attrs.events = True; alarm = XSyncCreateAlarm(display, XSyncCACounter | XSyncCAValueType | XSyncCATestType | XSyncCAEvents | XSyncCADelta, &attrs); if (alarm == None) fprintf(stderr, "Warning: failed to create XSync alarm\n"); return alarm; } void destroy_alarm(Display *display, XSyncAlarm alarm) { if (alarm != None) XSyncDestroyAlarm(display, alarm); } void update_time(UGHandle handle, XSyncAlarmNotifyEvent *event) { XSyncValue value = event->counter_value; uint64_t grail_time = (uint64_t)value.hi << 32 | value.lo; grail_update_time(handle, grail_time); } void set_timeout(UGHandle handle, Display *display, XSyncAlarm alarm) { if (alarm == None) return; uint64_t timeout = grail_next_timeout(handle); if (timeout) { XSyncAlarmAttributes attrs; XSyncIntsToValue(&attrs.trigger.wait_value, timeout & 0xffffffff, timeout & 0xffffffff00000000); if (!XSyncChangeAlarm(display, alarm, XSyncCAValue, &attrs)) fprintf(stderr, "Warning: failed to set XSync alarm\n"); XFlush(display); } } grail-3.1.0+16.04.20160125/tools/grail-test-3-1.c0000644000015600001650000002460712651522342021042 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * frame - Touch Frame Library * * Copyright (C) 2010-2011 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include #include #include #include #include #include #include #include #include #include "common/device.h" #include "common/servertime.h" #include "common/slice.h" static const int kNumSubscriptions = 10; static int subscribe(UGHandle handle, UFDevice device, Window window, UGSubscription *subscriptions) { UGStatus status; UFWindowId window_id = frame_x11_create_window_id(window); const UGGestureTypeMask mask = UGGestureTypeDrag | UGGestureTypePinch | UGGestureTypeRotate | UGGestureTypeTap; unsigned int touches; int i; for (i = 0; i < kNumSubscriptions; ++i) if (subscriptions[i] == NULL) break; if (i == kNumSubscriptions) { fprintf(stderr, "Warning: maximum number of devices reached\n"); return 0; } status = grail_subscription_new(&subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create subscription\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyDevice, &device); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription device\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyWindow, &window_id); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription window\n"); return 0; } touches = 3; status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyTouchesStart, &touches); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription start touches\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyTouchesMaximum, &touches); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription start touches\n"); return 0; } touches = 1; status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyTouchesMinimum, &touches); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription min touches\n"); return 0; } status = grail_subscription_set_property(subscriptions[i], UGSubscriptionPropertyMask, &mask); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to set subscription mask\n"); return 0; } status = grail_subscription_activate(handle, subscriptions[i]); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to activate subscription\n"); return 0; } return 1; } static void process_frame_events(UGHandle grail_handle, UFHandle frame_handle, Window subscribe_window, UGSubscription* subscriptions) { UFEvent event; while (frame_get_event(frame_handle, &event) == UFStatusSuccess) { grail_process_frame_event(grail_handle, event); switch (frame_event_get_type(event)) { case UFEventTypeDeviceAdded: { UFDevice device; UFStatus status; print_device_added(frame_handle, event); status = frame_event_get_property(event, UFEventPropertyDevice, &device); if (status != UFStatusSuccess) fprintf(stderr, "Error: failed to get device from event\n"); else subscribe(grail_handle, device, subscribe_window, subscriptions); break; } case UFEventTypeDeviceRemoved: print_device_removed(frame_handle, event); break; default: break; } frame_event_unref(event); } } static void process_slice(UGHandle handle, UGSlice slice, uint64_t time) { if (grail_slice_get_state(slice) == UGGestureStateBegin) { unsigned int id = grail_slice_get_id(slice); printf("Accepting gesture %u\n", id); grail_accept_gesture(handle, id); } print_slice(handle, slice, time); } static void process_grail_events(UGHandle handle) { UGEvent event; while (grail_get_event(handle, &event) == UGStatusSuccess) { switch (grail_event_get_type(event)) { case UGEventTypeSlice: { UGSlice slice; UGStatus status; status = grail_event_get_property(event, UGEventPropertySlice, &slice); if (status != UGStatusSuccess) { fprintf(stderr, "Error: failed to get slice from event\n"); break; } process_slice(handle, slice, grail_event_get_time(event)); break; } default: break; } grail_event_unref(event); } } int quit = 0; static void sigint_handler(__attribute__((unused)) int signum) { quit = 1; } int main(int argc, const char* argv[]) { Display *display; Window win; XIEventMask mask; XIGrabModifiers mods = { XIAnyModifier, 0 }; XSyncAlarm alarm; UFStatus frame_status; UFHandle frame_handle; UGStatus grail_status; UGHandle grail_handle; UGSubscription subscriptions[kNumSubscriptions]; int xi_major = 2; int xi_minor = 2; int frame_fd; int grail_fd; int nfds; int i; char *end; memset(subscriptions, 0, sizeof(UGSubscription) * kNumSubscriptions); if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv[0]); return -1; } win = strtoul(argv[1], &end, 0); if (*end != '\0') { fprintf(stderr, "Invalid window ID\n"); return -1; } signal(SIGINT, sigint_handler); display = XOpenDisplay(NULL); if (!display) { fprintf(stderr, "Error: failed to open connection to X server\n"); return -1; } if (XIQueryVersion(display, &xi_major, &xi_minor) != Success) { fprintf(stderr, "Error: failed to query XInput version\n"); return -1; } if (xi_major < 2 || xi_minor < 2) { fprintf(stderr, "Error: XInput version of server is too old (%d.%d)\n", xi_major, xi_minor); return -1; } nfds = ConnectionNumber(display) + 1; alarm = create_alarm(display); mask.deviceid = XIAllMasterDevices; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = calloc(mask.mask_len, sizeof(char)); XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); XISetMask(mask.mask, XI_TouchOwnership); XISetMask(mask.mask, XI_HierarchyChanged); XIGrabTouchBegin(display, XIAllMasterDevices, win, 0, &mask, 1, &mods); free(mask.mask); if (mods.status != XIGrabSuccess) { fprintf(stderr, "Error: failed to grab touches on window\n"); return -1; } frame_status = frame_x11_new(display, &frame_handle); if (frame_status != UFStatusSuccess) { fprintf(stderr, "Error: failed to create frame instance\n"); return -1; } frame_fd = frame_get_fd(frame_handle); nfds = frame_fd + 1 > nfds ? frame_fd + 1 : nfds; grail_status = grail_new(&grail_handle); if (grail_status != UGStatusSuccess) { fprintf(stderr, "Error: failed to create grail instance\n"); frame_x11_delete(frame_handle); return -1; } grail_fd = grail_get_fd(grail_handle); nfds = grail_fd + 1 > nfds ? grail_fd + 1 : nfds; while (!quit) { fd_set set; FD_ZERO(&set); XSync(display, 0); if (!XPending(display)) { int ret; FD_SET(ConnectionNumber(display), &set); FD_SET(frame_fd, &set); FD_SET(grail_fd, &set); set_timeout(grail_handle, display, alarm); ret = select(nfds, &set, NULL, NULL, NULL); if (ret < 0) { if (quit) break; perror("Warning: select returned an error"); continue; } } if (XPending(display) || FD_ISSET(ConnectionNumber(display), &set)) { while (XPending(display)) { XEvent event; XNextEvent(display, &event); if (event.type != GenericEvent) { /* If it's not an XI 2 event, it's a timer event */ if (alarm != None) { /* Process any outstanding frame events first */ process_frame_events(grail_handle, frame_handle, win, subscriptions); update_time(grail_handle, (XSyncAlarmNotifyEvent *)&event); } continue; } XGenericEventCookie *xcookie = &event.xcookie; if (!XGetEventData(display, xcookie)) { fprintf(stderr, "Warning: failed to get X generic event data\n"); continue; } frame_status = frame_x11_process_event(frame_handle, xcookie); if (frame_status != UFStatusSuccess) fprintf(stderr, "Warning: failed to inject X event\n"); XFreeEventData(display, xcookie); } } if (FD_ISSET(frame_fd, &set)) process_frame_events(grail_handle, frame_handle, win, subscriptions); if (FD_ISSET(grail_fd, &set)) process_grail_events(grail_handle); } for (i = 0; i < kNumSubscriptions; ++i) { if (subscriptions[i]) { grail_subscription_deactivate(grail_handle, subscriptions[i]); grail_subscription_delete(subscriptions[i]); } } destroy_alarm(display, alarm); grail_delete(grail_handle); frame_x11_delete(frame_handle); XCloseDisplay(display); return 0; } grail-3.1.0+16.04.20160125/COPYING0000644000015600001650000001674312651522342016222 0ustar pbuserpbgroup00000000000000 GNU LESSER GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below. 0. Additional Definitions. As used herein, "this License" refers to version 3 of the GNU Lesser General Public License, and the "GNU GPL" refers to version 3 of the GNU General Public License. "The Library" refers to a covered work governed by this License, other than an Application or a Combined Work as defined below. An "Application" is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library. A "Combined Work" is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the "Linked Version". The "Minimal Corresponding Source" for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version. The "Corresponding Application Code" for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work. 1. Exception to Section 3 of the GNU GPL. You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL. 2. Conveying Modified Versions. If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version: a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy. 3. Object Code Incorporating Material from Library Header Files. The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following: a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the object code with a copy of the GNU GPL and this license document. 4. Combined Works. You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following: a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License. b) Accompany the Combined Work with a copy of the GNU GPL and this license document. c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document. d) Do one of the following: 0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version. e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.) 5. Combined Libraries. You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following: a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License. b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work. 6. Revised Versions of the GNU Lesser General Public License. The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation. If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library. grail-3.1.0+16.04.20160125/AUTHORS0000644000015600001650000000017412651522342016226 0ustar pbuserpbgroup00000000000000Henrik Rydberg Chase Douglas Jussi Pakkanen grail-3.1.0+16.04.20160125/test/0000755000015600001650000000000012651522501016130 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/README0000644000015600001650000000053012651522342017011 0ustar pbuserpbgroup00000000000000Directory structure =================== - integration Here goes all integration tests. Those tests take time to run and rely on or interact with other processes beyond the test program itself. - regular Here goes tests that are fast to run and don't rely on the run-time environment (such as other processes, files, etc). grail-3.1.0+16.04.20160125/test/Makefile.am0000644000015600001650000000014712651522342020171 0ustar pbuserpbgroup00000000000000SUBDIRS = gtest regular if HAVE_XINPUT if ENABLE_INTEGRATION_TESTS SUBDIRS += integration endif endif grail-3.1.0+16.04.20160125/test/gtest/0000755000015600001650000000000012651522501017256 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/gtest/Makefile.am0000644000015600001650000000064312651522352021321 0ustar pbuserpbgroup00000000000000if HAVE_GTEST check_LIBRARIES = libgtest_grail.a endif nodist_libgtest_grail_a_SOURCES = \ $(GTEST_SOURCE)/gtest-all.cc \ $(GTEST_SOURCE)/gtest_main.cc libgtest_grail_a_CPPFLAGS = \ $(GTEST_CPPFLAGS) if ENABLE_INTEGRATION_TESTS nodist_libgtest_grail_a_SOURCES += \ $(XORG_GTEST_SOURCE)/src/xorg-gtest-all.cpp libgtest_grail_a_CPPFLAGS += \ --std=c++0x \ $(XORG_GTEST_CPPFLAGS) \ $(XORG_GTEST_CFLAGS) endif grail-3.1.0+16.04.20160125/test/integration/0000755000015600001650000000000012651522501020453 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/Makefile.am0000644000015600001650000000257512651522342022523 0ustar pbuserpbgroup00000000000000test_targets = check-integration TESTS = $(test_targets) check_PROGRAMS = $(test_targets) check_integration_SOURCES = \ device.cpp \ device.h \ events.h \ recording.cpp \ recording.h \ slice-checker.cpp \ slice-checker.h \ x11/fixture.cpp \ x11/fixture.h \ x11/no-premature-gestures.cpp \ x11/no-tap-after-drag.cpp \ x11/twodrag.cpp \ x11/dragthresh.cpp \ x11/timeout.cpp \ x11/atomic-timeout.cpp \ x11/tap-touch-accept.cpp \ x11/parallel-atomic-gestures.cpp \ x11/hold-reject.cpp nodist_check_integration_SOURCES = \ $(XORG_GTEST_SOURCE)/src/xorg-gtest_main.cpp check_integration_CPPFLAGS = \ --std=c++0x \ -I$(top_srcdir) \ -I$(top_srcdir)/include \ -I../include \ -DTEST_ROOT_DIR=\"$(abs_top_srcdir)/test/integration/\"\ $(WARNING_CPPFLAGS) \ $(GTEST_CPPFLAGS) \ $(XORG_GTEST_CPPFLAGS) check_integration_CFLAGS = \ $(COVERAGE_CFLAGS) \ $(FRAME_CFLAGS) \ $(XORG_GTEST_CFLAGS) check_integration_CXXFLAGS = \ $(CXX11_CXXFLAGS) \ $(COVERAGE_CXXFLAGS) \ $(GTEST_CXXFLAGS) \ $(XORG_GTEST_CXXFLAGS) \ $(FRAME_CFLAGS) # # Link against the (non-distributed) static lib to pick up the # internal symbols. # check_integration_LDADD = \ $(top_builddir)/src/libgrail.la \ $(top_builddir)/test/gtest/libgtest_grail.a \ $(EVEMU_LIBS) \ $(FRAME_LIBS) \ $(COVERAGE_LIBS) \ $(GTEST_LIBS) \ $(XORG_GTEST_LIBS) \ $(XINPUT_LIBS) \ $(X11_LIBS) EXTRA_DIST = io recordings grail-3.1.0+16.04.20160125/test/integration/recording.h0000644000015600001650000000242112651522342022602 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #ifndef GRAIL_TEST_RECORDING_H_ #define GRAIL_TEST_RECORDING_H_ #include extern "C" { #include } // extern "C" #include "device.h" namespace oif { namespace evemu { class Recording { public: Recording(const Device& device, const char* file); ~Recording(); void Play() const; private: const Device& device_; FILE* const file_; }; } // namespace evemu } // namespace oif #endif // GRAIL_TEST_RECORDING_H_ grail-3.1.0+16.04.20160125/test/integration/device.cpp0000644000015600001650000000341412651522342022423 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include "device.h" #include #include #include oif::evemu::Device::Device(const char* path) { static const char UINPUT_NODE[] = "/dev/uinput"; device_ = evemu_new(NULL); if (!device_) throw std::runtime_error("Failed to create evemu record"); FILE* fp = fopen(path, "r"); if (fp == NULL) throw std::runtime_error(std::string("Failed to open device file ") + path); if (evemu_read(device_, fp) <= 0) { fclose(fp); throw std::runtime_error(std::string("Failed to read device file ") + path); } fclose(fp); fd_ = open(UINPUT_NODE, O_WRONLY); if (fd_ < 0) { evemu_delete(device_); throw std::runtime_error("Failed to open uinput node"); } if (evemu_create(device_, fd_) < 0) { close(fd_); evemu_delete(device_); throw std::runtime_error("Failed to create evemu device"); } } oif::evemu::Device::~Device() { close(fd_); evemu_delete(device_); } grail-3.1.0+16.04.20160125/test/integration/device.h0000644000015600001650000000233012651522342022064 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #ifndef GRAIL_TEST_DEVICE_H_ #define GRAIL_TEST_DEVICE_H_ extern "C" { #include } // extern "C" namespace oif { namespace evemu { class Device { public: explicit Device(const char* file); ~Device(); const int fd() const { return fd_; } private: struct evemu_device* device_; int fd_; }; } // namespace evemu } // namespace oif #endif // GRAIL_TEST_DEVICE_H_ grail-3.1.0+16.04.20160125/test/integration/io/0000755000015600001650000000000012651522500021061 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/io/evemu/0000755000015600001650000000000012651522501022203 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/io/evemu/one-tap.evemu0000644000015600001650000000304212651522342024613 0ustar pbuserpbgroup00000000000000N: 3M-3M-MicroTouch-USB-controller I: 0003 0596 0502 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 80 73 02 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 32767 15 0 A: 01 0 32767 15 0 A: 2f 0 59 0 0 A: 30 0 32767 255 0 A: 31 0 32767 255 0 A: 34 0 1 0 0 A: 35 0 32767 15 0 A: 36 0 32767 15 0 A: 39 0 65535 0 0 E: 1300099289.219579 0003 002f 0 E: 1300099289.219593 0003 0039 3 E: 1300099289.219596 0003 0035 17086 E: 1300099289.219598 0003 0036 14789 E: 1300099289.219601 0003 0030 1281 E: 1300099289.219605 0001 014a 1 E: 1300099289.219609 0003 0000 17086 E: 1300099289.219611 0003 0001 14789 E: 1300099289.219613 0000 0000 0 E: 1300099289.225578 0003 0030 1324 E: 1300099289.225597 0000 0000 0 E: 1300099289.230576 0003 0030 1357 E: 1300099289.230594 0000 0000 0 E: 1300099289.245568 0003 0030 1224 E: 1300099289.245581 0000 0000 0 E: 1300099289.250576 0003 0030 1191 E: 1300099289.250595 0000 0000 0 E: 1300099289.265571 0003 0039 -1 E: 1300099289.265584 0001 014a 0 E: 1300099289.265586 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/evemu/one-drag.evemu0000644000015600001650000022354512651522342024760 0ustar pbuserpbgroup00000000000000N: 3M-3M-MicroTouch-USB-controller I: 0003 0596 0502 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 80 73 02 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 32767 15 0 A: 01 0 32767 15 0 A: 2f 0 59 0 0 A: 30 0 32767 255 0 A: 31 0 32767 255 0 A: 34 0 1 0 0 A: 35 0 32767 15 0 A: 36 0 32767 15 0 A: 39 0 65535 0 0 E: 1300099314.367107 0003 0039 4 E: 1300099314.367123 0003 0035 29456 E: 1300099314.367125 0003 0036 14969 E: 1300099314.367132 0001 014a 1 E: 1300099314.367135 0003 0000 29456 E: 1300099314.367137 0003 0001 14969 E: 1300099314.367139 0000 0000 0 E: 1300099314.392100 0003 0036 14971 E: 1300099314.392112 0003 0030 1323 E: 1300099314.392121 0000 0000 0 E: 1300099314.397101 0003 0036 14973 E: 1300099314.397113 0003 0030 1356 E: 1300099314.397122 0000 0000 0 E: 1300099314.403100 0003 0036 14975 E: 1300099314.403121 0000 0000 0 E: 1300099314.408099 0003 0035 29454 E: 1300099314.408110 0003 0036 14978 E: 1300099314.408121 0003 0001 14971 E: 1300099314.408122 0000 0000 0 E: 1300099314.413100 0003 0035 29452 E: 1300099314.413111 0003 0036 14981 E: 1300099314.413121 0003 0001 14973 E: 1300099314.413123 0000 0000 0 E: 1300099314.418099 0003 0035 29444 E: 1300099314.418110 0003 0036 14994 E: 1300099314.418119 0003 0000 29453 E: 1300099314.418121 0003 0001 14983 E: 1300099314.418123 0000 0000 0 E: 1300099314.423099 0003 0035 29434 E: 1300099314.423110 0003 0036 15027 E: 1300099314.423120 0003 0000 29443 E: 1300099314.423121 0003 0001 15027 E: 1300099314.423123 0000 0000 0 E: 1300099314.428099 0003 0035 29423 E: 1300099314.428110 0003 0036 15037 E: 1300099314.428119 0003 0000 29433 E: 1300099314.428121 0003 0001 15029 E: 1300099314.428123 0000 0000 0 E: 1300099314.433098 0003 0035 29411 E: 1300099314.433109 0003 0036 15067 E: 1300099314.433119 0003 0000 29422 E: 1300099314.433120 0003 0001 15067 E: 1300099314.433122 0000 0000 0 E: 1300099314.438099 0003 0035 29398 E: 1300099314.438113 0003 0036 15079 E: 1300099314.438126 0003 0000 29410 E: 1300099314.438128 0003 0001 15070 E: 1300099314.438130 0000 0000 0 E: 1300099314.443104 0003 0035 29384 E: 1300099314.443118 0003 0036 15115 E: 1300099314.443128 0003 0000 29397 E: 1300099314.443129 0003 0001 15115 E: 1300099314.443131 0000 0000 0 E: 1300099314.448094 0003 0035 29370 E: 1300099314.448103 0003 0036 15128 E: 1300099314.448114 0003 0000 29383 E: 1300099314.448116 0003 0001 15118 E: 1300099314.448117 0000 0000 0 E: 1300099314.453101 0003 0035 29338 E: 1300099314.453115 0003 0036 15165 E: 1300099314.453118 0003 0030 1224 E: 1300099314.453125 0003 0000 29338 E: 1300099314.453127 0003 0001 15165 E: 1300099314.453129 0000 0000 0 E: 1300099314.459090 0003 0035 29330 E: 1300099314.459099 0003 0036 15178 E: 1300099314.459102 0003 0030 1191 E: 1300099314.459112 0003 0000 29336 E: 1300099314.459114 0003 0001 15168 E: 1300099314.459116 0000 0000 0 E: 1300099314.464103 0003 0035 29316 E: 1300099314.464117 0003 0036 15219 E: 1300099314.464126 0003 0000 29326 E: 1300099314.464128 0003 0001 15219 E: 1300099314.464130 0000 0000 0 E: 1300099314.469102 0003 0035 29278 E: 1300099314.469114 0003 0036 15233 E: 1300099314.469124 0003 0000 29278 E: 1300099314.469125 0003 0001 15222 E: 1300099314.469127 0000 0000 0 E: 1300099314.474097 0003 0035 29266 E: 1300099314.474106 0003 0036 15279 E: 1300099314.474115 0003 0000 29275 E: 1300099314.474117 0003 0001 15279 E: 1300099314.474118 0000 0000 0 E: 1300099314.479099 0003 0035 29204 E: 1300099314.479110 0003 0036 15347 E: 1300099314.479119 0003 0000 29204 E: 1300099314.479121 0003 0001 15347 E: 1300099314.479123 0000 0000 0 E: 1300099314.484100 0003 0035 29158 E: 1300099314.484111 0003 0036 15413 E: 1300099314.484114 0003 0030 1323 E: 1300099314.484121 0003 0000 29158 E: 1300099314.484123 0003 0001 15413 E: 1300099314.484125 0000 0000 0 E: 1300099314.489100 0003 0035 29145 E: 1300099314.489111 0003 0036 15443 E: 1300099314.489114 0003 0030 1356 E: 1300099314.489121 0003 0000 29154 E: 1300099314.489123 0003 0001 15443 E: 1300099314.489125 0000 0000 0 E: 1300099314.494090 0003 0035 29108 E: 1300099314.494102 0003 0036 15475 E: 1300099314.494111 0003 0000 29108 E: 1300099314.494113 0003 0001 15475 E: 1300099314.494114 0000 0000 0 E: 1300099314.499104 0003 0035 29054 E: 1300099314.499117 0003 0036 15545 E: 1300099314.499126 0003 0000 29054 E: 1300099314.499127 0003 0001 15545 E: 1300099314.499129 0000 0000 0 E: 1300099314.504091 0003 0035 29006 E: 1300099314.504103 0003 0036 15617 E: 1300099314.504112 0003 0000 29006 E: 1300099314.504113 0003 0001 15617 E: 1300099314.504115 0000 0000 0 E: 1300099314.509102 0003 0035 28994 E: 1300099314.509113 0003 0036 15647 E: 1300099314.509122 0003 0000 29003 E: 1300099314.509124 0003 0001 15647 E: 1300099314.509126 0000 0000 0 E: 1300099314.515090 0003 0035 28928 E: 1300099314.515096 0003 0036 15715 E: 1300099314.515105 0003 0000 28928 E: 1300099314.515107 0003 0001 15715 E: 1300099314.515109 0000 0000 0 E: 1300099314.520099 0003 0035 28914 E: 1300099314.520111 0003 0036 15749 E: 1300099314.520120 0003 0000 28924 E: 1300099314.520121 0003 0001 15749 E: 1300099314.520123 0000 0000 0 E: 1300099314.525092 0003 0035 28844 E: 1300099314.525101 0003 0036 15823 E: 1300099314.525107 0003 0030 1224 E: 1300099314.525115 0003 0000 28844 E: 1300099314.525117 0003 0001 15823 E: 1300099314.525119 0000 0000 0 E: 1300099314.530101 0003 0035 28788 E: 1300099314.530114 0003 0036 15897 E: 1300099314.530117 0003 0030 1191 E: 1300099314.530124 0003 0000 28788 E: 1300099314.530126 0003 0001 15897 E: 1300099314.530128 0000 0000 0 E: 1300099314.535101 0003 0035 28728 E: 1300099314.535112 0003 0036 15971 E: 1300099314.535121 0003 0000 28728 E: 1300099314.535123 0003 0001 15971 E: 1300099314.535124 0000 0000 0 E: 1300099314.540099 0003 0035 28674 E: 1300099314.540110 0003 0036 16037 E: 1300099314.540113 0003 0030 1323 E: 1300099314.540120 0003 0000 28674 E: 1300099314.540122 0003 0001 16037 E: 1300099314.540123 0000 0000 0 E: 1300099314.545092 0003 0035 28620 E: 1300099314.545097 0003 0036 16111 E: 1300099314.545100 0003 0030 1356 E: 1300099314.545107 0003 0000 28620 E: 1300099314.545109 0003 0001 16111 E: 1300099314.545111 0000 0000 0 E: 1300099314.550100 0003 0035 28564 E: 1300099314.550111 0003 0036 16181 E: 1300099314.550120 0003 0000 28564 E: 1300099314.550122 0003 0001 16181 E: 1300099314.550124 0000 0000 0 E: 1300099314.555098 0003 0035 28508 E: 1300099314.555103 0003 0036 16247 E: 1300099314.555113 0003 0000 28508 E: 1300099314.555114 0003 0001 16247 E: 1300099314.555116 0000 0000 0 E: 1300099314.560090 0003 0035 28452 E: 1300099314.560096 0003 0036 16315 E: 1300099314.560105 0003 0000 28452 E: 1300099314.560107 0003 0001 16315 E: 1300099314.560109 0000 0000 0 E: 1300099314.565100 0003 0035 28438 E: 1300099314.565112 0003 0036 16345 E: 1300099314.565121 0003 0000 28448 E: 1300099314.565122 0003 0001 16345 E: 1300099314.565124 0000 0000 0 E: 1300099314.570099 0003 0035 28358 E: 1300099314.570111 0003 0036 16415 E: 1300099314.570120 0003 0000 28358 E: 1300099314.570122 0003 0001 16415 E: 1300099314.570123 0000 0000 0 E: 1300099314.576089 0003 0035 28296 E: 1300099314.576095 0003 0036 16485 E: 1300099314.576105 0003 0000 28296 E: 1300099314.576106 0003 0001 16485 E: 1300099314.576108 0000 0000 0 E: 1300099314.581100 0003 0035 28238 E: 1300099314.581113 0003 0036 16555 E: 1300099314.581116 0003 0030 1224 E: 1300099314.581123 0003 0000 28238 E: 1300099314.581125 0003 0001 16555 E: 1300099314.581127 0000 0000 0 E: 1300099314.586099 0003 0035 28224 E: 1300099314.586111 0003 0036 16589 E: 1300099314.586114 0003 0030 1191 E: 1300099314.586121 0003 0000 28234 E: 1300099314.586122 0003 0001 16589 E: 1300099314.586124 0000 0000 0 E: 1300099314.591098 0003 0035 28148 E: 1300099314.591110 0003 0036 16657 E: 1300099314.591119 0003 0000 28148 E: 1300099314.591120 0003 0001 16657 E: 1300099314.591122 0000 0000 0 E: 1300099314.596099 0003 0035 28084 E: 1300099314.596111 0003 0036 16731 E: 1300099314.596120 0003 0000 28084 E: 1300099314.596121 0003 0001 16731 E: 1300099314.596123 0000 0000 0 E: 1300099314.601100 0003 0035 28016 E: 1300099314.601112 0003 0036 16799 E: 1300099314.601115 0003 0030 1323 E: 1300099314.601122 0003 0000 28016 E: 1300099314.601123 0003 0001 16799 E: 1300099314.601125 0000 0000 0 E: 1300099314.606098 0003 0035 27948 E: 1300099314.606109 0003 0036 16867 E: 1300099314.606112 0003 0030 1356 E: 1300099314.606119 0003 0000 27948 E: 1300099314.606121 0003 0001 16867 E: 1300099314.606122 0000 0000 0 E: 1300099314.611099 0003 0035 27882 E: 1300099314.611110 0003 0036 16927 E: 1300099314.611120 0003 0000 27882 E: 1300099314.611121 0003 0001 16927 E: 1300099314.611123 0000 0000 0 E: 1300099314.616099 0003 0035 27812 E: 1300099314.616111 0003 0036 16989 E: 1300099314.616120 0003 0000 27812 E: 1300099314.616121 0003 0001 16989 E: 1300099314.616123 0000 0000 0 E: 1300099314.621100 0003 0035 27742 E: 1300099314.621112 0003 0036 17053 E: 1300099314.621121 0003 0000 27742 E: 1300099314.621122 0003 0001 17053 E: 1300099314.621124 0000 0000 0 E: 1300099314.626089 0003 0035 27674 E: 1300099314.626099 0003 0036 17111 E: 1300099314.626109 0003 0000 27674 E: 1300099314.626110 0003 0001 17111 E: 1300099314.626120 0000 0000 0 E: 1300099314.632102 0003 0035 27604 E: 1300099314.632118 0003 0036 17171 E: 1300099314.632128 0003 0000 27604 E: 1300099314.632129 0003 0001 17171 E: 1300099314.632131 0000 0000 0 E: 1300099314.637098 0003 0035 27536 E: 1300099314.637111 0003 0036 17229 E: 1300099314.637120 0003 0000 27536 E: 1300099314.637121 0003 0001 17229 E: 1300099314.637123 0000 0000 0 E: 1300099314.642091 0003 0035 27468 E: 1300099314.642098 0003 0036 17289 E: 1300099314.642107 0003 0000 27468 E: 1300099314.642109 0003 0001 17289 E: 1300099314.642111 0000 0000 0 E: 1300099314.647098 0003 0035 27400 E: 1300099314.647109 0003 0036 17353 E: 1300099314.647112 0003 0030 1224 E: 1300099314.647119 0003 0000 27400 E: 1300099314.647121 0003 0001 17353 E: 1300099314.647123 0000 0000 0 E: 1300099314.652085 0003 0035 27332 E: 1300099314.652095 0003 0036 17415 E: 1300099314.652098 0003 0030 1191 E: 1300099314.652105 0003 0000 27332 E: 1300099314.652108 0003 0001 17415 E: 1300099314.652110 0000 0000 0 E: 1300099314.657099 0003 0035 27262 E: 1300099314.657113 0003 0036 17477 E: 1300099314.657122 0003 0000 27262 E: 1300099314.657123 0003 0001 17477 E: 1300099314.657125 0000 0000 0 E: 1300099314.662099 0003 0035 27190 E: 1300099314.662111 0003 0036 17543 E: 1300099314.662114 0003 0030 1323 E: 1300099314.662120 0003 0000 27190 E: 1300099314.662122 0003 0001 17543 E: 1300099314.662124 0000 0000 0 E: 1300099314.667098 0003 0035 27114 E: 1300099314.667109 0003 0036 17609 E: 1300099314.667112 0003 0030 1356 E: 1300099314.667119 0003 0000 27114 E: 1300099314.667121 0003 0001 17609 E: 1300099314.667123 0000 0000 0 E: 1300099314.672097 0003 0035 27038 E: 1300099314.672108 0003 0036 17675 E: 1300099314.672117 0003 0000 27038 E: 1300099314.672119 0003 0001 17675 E: 1300099314.672121 0000 0000 0 E: 1300099314.677100 0003 0035 26960 E: 1300099314.677111 0003 0036 17733 E: 1300099314.677121 0003 0000 26960 E: 1300099314.677122 0003 0001 17733 E: 1300099314.677124 0000 0000 0 E: 1300099314.682099 0003 0035 26882 E: 1300099314.682111 0003 0036 17797 E: 1300099314.682120 0003 0000 26882 E: 1300099314.682122 0003 0001 17797 E: 1300099314.682124 0000 0000 0 E: 1300099314.688099 0003 0035 26806 E: 1300099314.688110 0003 0036 17859 E: 1300099314.688120 0003 0000 26806 E: 1300099314.688121 0003 0001 17859 E: 1300099314.688123 0000 0000 0 E: 1300099314.693089 0003 0035 26730 E: 1300099314.693097 0003 0036 17911 E: 1300099314.693110 0003 0000 26730 E: 1300099314.693112 0003 0001 17911 E: 1300099314.693114 0000 0000 0 E: 1300099314.698098 0003 0035 26652 E: 1300099314.698112 0003 0036 17965 E: 1300099314.698121 0003 0000 26652 E: 1300099314.698123 0003 0001 17965 E: 1300099314.698125 0000 0000 0 E: 1300099314.703096 0003 0035 26574 E: 1300099314.703107 0003 0036 18019 E: 1300099314.703116 0003 0000 26574 E: 1300099314.703118 0003 0001 18019 E: 1300099314.703119 0000 0000 0 E: 1300099314.708087 0003 0035 26496 E: 1300099314.708099 0003 0036 18085 E: 1300099314.708102 0003 0030 1224 E: 1300099314.708109 0003 0000 26496 E: 1300099314.708111 0003 0001 18085 E: 1300099314.708112 0000 0000 0 E: 1300099314.713098 0003 0035 26422 E: 1300099314.713109 0003 0036 18147 E: 1300099314.713112 0003 0030 1191 E: 1300099314.713119 0003 0000 26422 E: 1300099314.713121 0003 0001 18147 E: 1300099314.713123 0000 0000 0 E: 1300099314.718098 0003 0035 26342 E: 1300099314.718109 0003 0036 18207 E: 1300099314.718118 0003 0000 26342 E: 1300099314.718120 0003 0001 18207 E: 1300099314.718122 0000 0000 0 E: 1300099314.723094 0003 0035 26262 E: 1300099314.723105 0003 0036 18269 E: 1300099314.723108 0003 0030 1323 E: 1300099314.723115 0003 0000 26262 E: 1300099314.723117 0003 0001 18269 E: 1300099314.723118 0000 0000 0 E: 1300099314.728100 0003 0035 26184 E: 1300099314.728112 0003 0036 18331 E: 1300099314.728115 0003 0030 1356 E: 1300099314.728122 0003 0000 26184 E: 1300099314.728124 0003 0001 18331 E: 1300099314.728126 0000 0000 0 E: 1300099314.733096 0003 0035 26102 E: 1300099314.733108 0003 0036 18391 E: 1300099314.733117 0003 0000 26102 E: 1300099314.733118 0003 0001 18391 E: 1300099314.733120 0000 0000 0 E: 1300099314.738097 0003 0035 26024 E: 1300099314.738108 0003 0036 18451 E: 1300099314.738117 0003 0000 26024 E: 1300099314.738119 0003 0001 18451 E: 1300099314.738121 0000 0000 0 E: 1300099314.743086 0003 0035 25940 E: 1300099314.743096 0003 0036 18513 E: 1300099314.743106 0003 0000 25940 E: 1300099314.743108 0003 0001 18513 E: 1300099314.743109 0000 0000 0 E: 1300099314.749099 0003 0035 25856 E: 1300099314.749118 0003 0036 18571 E: 1300099314.749128 0003 0000 25856 E: 1300099314.749129 0003 0001 18571 E: 1300099314.749131 0000 0000 0 E: 1300099314.754084 0003 0035 25770 E: 1300099314.754095 0003 0036 18633 E: 1300099314.754104 0003 0000 25770 E: 1300099314.754106 0003 0001 18633 E: 1300099314.754108 0000 0000 0 E: 1300099314.759098 0003 0035 25688 E: 1300099314.759112 0003 0036 18695 E: 1300099314.759121 0003 0000 25688 E: 1300099314.759123 0003 0001 18695 E: 1300099314.759124 0000 0000 0 E: 1300099314.764082 0003 0035 25600 E: 1300099314.764093 0003 0036 18747 E: 1300099314.764103 0003 0000 25600 E: 1300099314.764104 0003 0001 18747 E: 1300099314.764106 0000 0000 0 E: 1300099314.769096 0003 0035 25516 E: 1300099314.769107 0003 0036 18807 E: 1300099314.769116 0003 0000 25516 E: 1300099314.769118 0003 0001 18807 E: 1300099314.769119 0000 0000 0 E: 1300099314.774083 0003 0035 25426 E: 1300099314.774094 0003 0036 18865 E: 1300099314.774097 0003 0030 1224 E: 1300099314.774104 0003 0000 25426 E: 1300099314.774105 0003 0001 18865 E: 1300099314.774107 0000 0000 0 E: 1300099314.779086 0003 0035 25338 E: 1300099314.779096 0003 0036 18925 E: 1300099314.779099 0003 0030 1191 E: 1300099314.779107 0003 0000 25338 E: 1300099314.779108 0003 0001 18925 E: 1300099314.779110 0000 0000 0 E: 1300099314.784083 0003 0035 25252 E: 1300099314.784096 0003 0036 18979 E: 1300099314.784105 0003 0000 25252 E: 1300099314.784107 0003 0001 18979 E: 1300099314.784109 0000 0000 0 E: 1300099314.789096 0003 0035 25166 E: 1300099314.789107 0003 0036 19045 E: 1300099314.789110 0003 0030 1323 E: 1300099314.789117 0003 0000 25166 E: 1300099314.789119 0003 0001 19045 E: 1300099314.789121 0000 0000 0 E: 1300099314.794085 0003 0035 25076 E: 1300099314.794096 0003 0036 19103 E: 1300099314.794099 0003 0030 1356 E: 1300099314.794106 0003 0000 25076 E: 1300099314.794107 0003 0001 19103 E: 1300099314.794109 0000 0000 0 E: 1300099314.799094 0003 0035 24990 E: 1300099314.799105 0003 0036 19165 E: 1300099314.799114 0003 0000 24990 E: 1300099314.799116 0003 0001 19165 E: 1300099314.799118 0000 0000 0 E: 1300099314.805096 0003 0035 24902 E: 1300099314.805107 0003 0036 19225 E: 1300099314.805117 0003 0000 24902 E: 1300099314.805118 0003 0001 19225 E: 1300099314.805120 0000 0000 0 E: 1300099314.810096 0003 0035 24812 E: 1300099314.810108 0003 0036 19283 E: 1300099314.810117 0003 0000 24812 E: 1300099314.810119 0003 0001 19283 E: 1300099314.810120 0000 0000 0 E: 1300099314.815100 0003 0035 24724 E: 1300099314.815112 0003 0036 19343 E: 1300099314.815121 0003 0000 24724 E: 1300099314.815123 0003 0001 19343 E: 1300099314.815125 0000 0000 0 E: 1300099314.820092 0003 0035 24632 E: 1300099314.820103 0003 0036 19397 E: 1300099314.820112 0003 0000 24632 E: 1300099314.820114 0003 0001 19397 E: 1300099314.820116 0000 0000 0 E: 1300099314.825098 0003 0035 24542 E: 1300099314.825111 0003 0036 19449 E: 1300099314.825120 0003 0000 24542 E: 1300099314.825122 0003 0001 19449 E: 1300099314.825123 0000 0000 0 E: 1300099314.830093 0003 0035 24450 E: 1300099314.830104 0003 0036 19505 E: 1300099314.830113 0003 0000 24450 E: 1300099314.830115 0003 0001 19505 E: 1300099314.830116 0000 0000 0 E: 1300099314.835096 0003 0035 24360 E: 1300099314.835107 0003 0036 19561 E: 1300099314.835110 0003 0030 1224 E: 1300099314.835117 0003 0000 24360 E: 1300099314.835119 0003 0001 19561 E: 1300099314.835120 0000 0000 0 E: 1300099314.840092 0003 0035 24268 E: 1300099314.840103 0003 0036 19615 E: 1300099314.840106 0003 0030 1191 E: 1300099314.840113 0003 0000 24268 E: 1300099314.840115 0003 0001 19615 E: 1300099314.840116 0000 0000 0 E: 1300099314.845096 0003 0035 24176 E: 1300099314.845107 0003 0036 19675 E: 1300099314.845116 0003 0000 24176 E: 1300099314.845118 0003 0001 19675 E: 1300099314.845119 0000 0000 0 E: 1300099314.850094 0003 0035 24082 E: 1300099314.850105 0003 0036 19731 E: 1300099314.850114 0003 0000 24082 E: 1300099314.850115 0003 0001 19731 E: 1300099314.850117 0000 0000 0 E: 1300099314.855095 0003 0035 23990 E: 1300099314.855106 0003 0036 19787 E: 1300099314.855109 0003 0030 1323 E: 1300099314.855116 0003 0000 23990 E: 1300099314.855117 0003 0001 19787 E: 1300099314.855119 0000 0000 0 E: 1300099314.860096 0003 0035 23894 E: 1300099314.860107 0003 0036 19841 E: 1300099314.860110 0003 0030 1356 E: 1300099314.860117 0003 0000 23894 E: 1300099314.860118 0003 0001 19841 E: 1300099314.860120 0000 0000 0 E: 1300099314.866095 0003 0035 23800 E: 1300099314.866106 0003 0036 19897 E: 1300099314.866115 0003 0000 23800 E: 1300099314.866117 0003 0001 19897 E: 1300099314.866119 0000 0000 0 E: 1300099314.871093 0003 0035 23702 E: 1300099314.871105 0003 0036 19951 E: 1300099314.871114 0003 0000 23702 E: 1300099314.871116 0003 0001 19951 E: 1300099314.871117 0000 0000 0 E: 1300099314.876085 0003 0035 23604 E: 1300099314.876095 0003 0036 20007 E: 1300099314.876105 0003 0000 23604 E: 1300099314.876106 0003 0001 20007 E: 1300099314.876108 0000 0000 0 E: 1300099314.881092 0003 0035 23502 E: 1300099314.881105 0003 0036 20071 E: 1300099314.881115 0003 0000 23502 E: 1300099314.881116 0003 0001 20071 E: 1300099314.881118 0000 0000 0 E: 1300099314.886094 0003 0035 23400 E: 1300099314.886105 0003 0036 20121 E: 1300099314.886114 0003 0000 23400 E: 1300099314.886116 0003 0001 20121 E: 1300099314.886118 0000 0000 0 E: 1300099314.891093 0003 0035 23300 E: 1300099314.891104 0003 0036 20169 E: 1300099314.891113 0003 0000 23300 E: 1300099314.891115 0003 0001 20169 E: 1300099314.891116 0000 0000 0 E: 1300099314.896092 0003 0035 23196 E: 1300099314.896097 0003 0036 20217 E: 1300099314.896107 0003 0000 23196 E: 1300099314.896109 0003 0001 20217 E: 1300099314.896111 0000 0000 0 E: 1300099314.901091 0003 0035 23096 E: 1300099314.901102 0003 0036 20269 E: 1300099314.901111 0003 0000 23096 E: 1300099314.901113 0003 0001 20269 E: 1300099314.901115 0000 0000 0 E: 1300099314.906086 0003 0035 22996 E: 1300099314.906092 0003 0036 20321 E: 1300099314.906095 0003 0030 1224 E: 1300099314.906103 0003 0000 22996 E: 1300099314.906105 0003 0001 20321 E: 1300099314.906106 0000 0000 0 E: 1300099314.911095 0003 0035 22896 E: 1300099314.911106 0003 0036 20373 E: 1300099314.911109 0003 0030 1191 E: 1300099314.911116 0003 0000 22896 E: 1300099314.911117 0003 0001 20373 E: 1300099314.911119 0000 0000 0 E: 1300099314.916079 0003 0035 22792 E: 1300099314.916089 0003 0036 20425 E: 1300099314.916101 0003 0000 22792 E: 1300099314.916103 0003 0001 20425 E: 1300099314.916105 0000 0000 0 E: 1300099314.922093 0003 0035 22688 E: 1300099314.922107 0003 0036 20479 E: 1300099314.922116 0003 0000 22688 E: 1300099314.922117 0003 0001 20479 E: 1300099314.922119 0000 0000 0 E: 1300099314.927084 0003 0035 22588 E: 1300099314.927090 0003 0036 20533 E: 1300099314.927099 0003 0000 22588 E: 1300099314.927101 0003 0001 20533 E: 1300099314.927103 0000 0000 0 E: 1300099314.932094 0003 0035 22480 E: 1300099314.932105 0003 0036 20587 E: 1300099314.932108 0003 0030 1323 E: 1300099314.932115 0003 0000 22480 E: 1300099314.932117 0003 0001 20587 E: 1300099314.932119 0000 0000 0 E: 1300099314.937093 0003 0035 22368 E: 1300099314.937104 0003 0036 20639 E: 1300099314.937107 0003 0030 1356 E: 1300099314.937114 0003 0000 22368 E: 1300099314.937116 0003 0001 20639 E: 1300099314.937117 0000 0000 0 E: 1300099314.942094 0003 0035 22258 E: 1300099314.942106 0003 0036 20689 E: 1300099314.942115 0003 0000 22258 E: 1300099314.942117 0003 0001 20689 E: 1300099314.942118 0000 0000 0 E: 1300099314.947092 0003 0035 22148 E: 1300099314.947103 0003 0036 20737 E: 1300099314.947113 0003 0000 22148 E: 1300099314.947114 0003 0001 20737 E: 1300099314.947116 0000 0000 0 E: 1300099314.952094 0003 0035 22042 E: 1300099314.952106 0003 0036 20779 E: 1300099314.952115 0003 0000 22042 E: 1300099314.952117 0003 0001 20779 E: 1300099314.952118 0000 0000 0 E: 1300099314.957091 0003 0035 21936 E: 1300099314.957103 0003 0036 20823 E: 1300099314.957112 0003 0000 21936 E: 1300099314.957113 0003 0001 20823 E: 1300099314.957115 0000 0000 0 E: 1300099314.962092 0003 0035 21832 E: 1300099314.962103 0003 0036 20865 E: 1300099314.962113 0003 0000 21832 E: 1300099314.962114 0003 0001 20865 E: 1300099314.962116 0000 0000 0 E: 1300099314.967095 0003 0035 21730 E: 1300099314.967108 0003 0036 20907 E: 1300099314.967117 0003 0000 21730 E: 1300099314.967119 0003 0001 20907 E: 1300099314.967120 0000 0000 0 E: 1300099314.972083 0003 0035 21624 E: 1300099314.972094 0003 0036 20951 E: 1300099314.972103 0003 0000 21624 E: 1300099314.972105 0003 0001 20951 E: 1300099314.972107 0000 0000 0 E: 1300099314.977091 0003 0035 21512 E: 1300099314.977102 0003 0036 20993 E: 1300099314.977111 0003 0000 21512 E: 1300099314.977113 0003 0001 20993 E: 1300099314.977114 0000 0000 0 E: 1300099314.983094 0003 0035 21410 E: 1300099314.983105 0003 0036 21041 E: 1300099314.983108 0003 0030 1224 E: 1300099314.983115 0003 0000 21410 E: 1300099314.983117 0003 0001 21041 E: 1300099314.983119 0000 0000 0 E: 1300099314.988091 0003 0035 21290 E: 1300099314.988102 0003 0036 21087 E: 1300099314.988105 0003 0030 1191 E: 1300099314.988112 0003 0000 21290 E: 1300099314.988113 0003 0001 21087 E: 1300099314.988115 0000 0000 0 E: 1300099314.993088 0003 0035 21198 E: 1300099314.993097 0003 0036 21133 E: 1300099314.993099 0003 0034 1 E: 1300099314.993102 0003 0031 948 E: 1300099314.993109 0003 0000 21198 E: 1300099314.993111 0003 0001 21133 E: 1300099314.993119 0000 0000 0 E: 1300099314.998093 0003 0035 21072 E: 1300099314.998111 0003 0036 21175 E: 1300099314.998113 0003 0034 0 E: 1300099314.998121 0003 0000 21072 E: 1300099314.998123 0003 0001 21175 E: 1300099314.998125 0000 0000 0 E: 1300099315.003093 0003 0035 20950 E: 1300099315.003109 0003 0036 21211 E: 1300099315.003118 0003 0000 20950 E: 1300099315.003121 0003 0001 21211 E: 1300099315.003124 0000 0000 0 E: 1300099315.008093 0003 0035 20840 E: 1300099315.008106 0003 0036 21255 E: 1300099315.008115 0003 0000 20840 E: 1300099315.008117 0003 0001 21255 E: 1300099315.008118 0000 0000 0 E: 1300099315.013090 0003 0035 20736 E: 1300099315.013101 0003 0036 21297 E: 1300099315.013110 0003 0000 20736 E: 1300099315.013112 0003 0001 21297 E: 1300099315.013114 0000 0000 0 E: 1300099315.018091 0003 0035 20630 E: 1300099315.018102 0003 0036 21347 E: 1300099315.018105 0003 0030 1323 E: 1300099315.018107 0003 0031 993 E: 1300099315.018113 0003 0000 20630 E: 1300099315.018114 0003 0001 21347 E: 1300099315.018116 0000 0000 0 E: 1300099315.023080 0003 0035 20362 E: 1300099315.023086 0003 0036 21431 E: 1300099315.023089 0003 0030 1356 E: 1300099315.023090 0003 0031 835 E: 1300099315.023097 0003 0000 20362 E: 1300099315.023098 0003 0001 21431 E: 1300099315.023100 0000 0000 0 E: 1300099315.028091 0003 0035 20272 E: 1300099315.028103 0003 0036 21467 E: 1300099315.028107 0003 0031 795 E: 1300099315.028112 0003 0000 20272 E: 1300099315.028114 0003 0001 21467 E: 1300099315.028116 0000 0000 0 E: 1300099315.033088 0003 0035 20176 E: 1300099315.033100 0003 0036 21503 E: 1300099315.033109 0003 0000 20176 E: 1300099315.033110 0003 0001 21503 E: 1300099315.033112 0000 0000 0 E: 1300099315.039093 0003 0035 20066 E: 1300099315.039105 0003 0036 21539 E: 1300099315.039115 0003 0000 20066 E: 1300099315.039116 0003 0001 21539 E: 1300099315.039118 0000 0000 0 E: 1300099315.044080 0003 0035 19962 E: 1300099315.044091 0003 0036 21575 E: 1300099315.044100 0003 0000 19962 E: 1300099315.044102 0003 0001 21575 E: 1300099315.044104 0000 0000 0 E: 1300099315.049091 0003 0035 19856 E: 1300099315.049103 0003 0036 21611 E: 1300099315.049112 0003 0000 19856 E: 1300099315.049113 0003 0001 21611 E: 1300099315.049115 0000 0000 0 E: 1300099315.054092 0003 0035 19748 E: 1300099315.054104 0003 0036 21647 E: 1300099315.054113 0003 0000 19748 E: 1300099315.054115 0003 0001 21647 E: 1300099315.054116 0000 0000 0 E: 1300099315.059092 0003 0035 19642 E: 1300099315.059103 0003 0036 21679 E: 1300099315.059113 0003 0000 19642 E: 1300099315.059114 0003 0001 21679 E: 1300099315.059116 0000 0000 0 E: 1300099315.064079 0003 0035 19534 E: 1300099315.064090 0003 0036 21713 E: 1300099315.064099 0003 0000 19534 E: 1300099315.064101 0003 0001 21713 E: 1300099315.064103 0000 0000 0 E: 1300099315.069092 0003 0035 19426 E: 1300099315.069104 0003 0036 21745 E: 1300099315.069113 0003 0000 19426 E: 1300099315.069114 0003 0001 21745 E: 1300099315.069116 0000 0000 0 E: 1300099315.074079 0003 0035 19316 E: 1300099315.074090 0003 0036 21777 E: 1300099315.074099 0003 0000 19316 E: 1300099315.074100 0003 0001 21777 E: 1300099315.074102 0000 0000 0 E: 1300099315.079090 0003 0035 19206 E: 1300099315.079101 0003 0036 21809 E: 1300099315.079110 0003 0000 19206 E: 1300099315.079112 0003 0001 21809 E: 1300099315.079114 0000 0000 0 E: 1300099315.084078 0003 0035 19096 E: 1300099315.084089 0003 0036 21847 E: 1300099315.084092 0003 0030 1224 E: 1300099315.084099 0003 0000 19096 E: 1300099315.084101 0003 0001 21847 E: 1300099315.084102 0000 0000 0 E: 1300099315.089090 0003 0035 18984 E: 1300099315.089102 0003 0036 21881 E: 1300099315.089105 0003 0030 1191 E: 1300099315.089112 0003 0000 18984 E: 1300099315.089113 0003 0001 21881 E: 1300099315.089115 0000 0000 0 E: 1300099315.095096 0003 0035 18872 E: 1300099315.095108 0003 0036 21913 E: 1300099315.095117 0003 0000 18872 E: 1300099315.095119 0003 0001 21913 E: 1300099315.095121 0000 0000 0 E: 1300099315.100090 0003 0035 18756 E: 1300099315.100101 0003 0036 21945 E: 1300099315.100110 0003 0000 18756 E: 1300099315.100112 0003 0001 21945 E: 1300099315.100114 0000 0000 0 E: 1300099315.105089 0003 0035 18638 E: 1300099315.105100 0003 0036 21983 E: 1300099315.105109 0003 0000 18638 E: 1300099315.105110 0003 0001 21983 E: 1300099315.105112 0000 0000 0 E: 1300099315.110089 0003 0035 18526 E: 1300099315.110100 0003 0036 22015 E: 1300099315.110110 0003 0000 18526 E: 1300099315.110111 0003 0001 22015 E: 1300099315.110113 0000 0000 0 E: 1300099315.115089 0003 0035 18412 E: 1300099315.115101 0003 0036 22049 E: 1300099315.115110 0003 0000 18412 E: 1300099315.115112 0003 0001 22049 E: 1300099315.115113 0000 0000 0 E: 1300099315.120091 0003 0035 18294 E: 1300099315.120102 0003 0036 22083 E: 1300099315.120111 0003 0000 18294 E: 1300099315.120113 0003 0001 22083 E: 1300099315.120114 0000 0000 0 E: 1300099315.125082 0003 0035 18182 E: 1300099315.125088 0003 0036 22115 E: 1300099315.125097 0003 0000 18182 E: 1300099315.125099 0003 0001 22115 E: 1300099315.125101 0000 0000 0 E: 1300099315.130090 0003 0035 18072 E: 1300099315.130101 0003 0036 22153 E: 1300099315.130104 0003 0030 1323 E: 1300099315.130111 0003 0000 18072 E: 1300099315.130113 0003 0001 22153 E: 1300099315.130115 0000 0000 0 E: 1300099315.135089 0003 0035 17966 E: 1300099315.135100 0003 0036 22187 E: 1300099315.135103 0003 0030 1356 E: 1300099315.135110 0003 0000 17966 E: 1300099315.135111 0003 0001 22187 E: 1300099315.135113 0000 0000 0 E: 1300099315.140090 0003 0035 17854 E: 1300099315.140102 0003 0036 22219 E: 1300099315.140111 0003 0000 17854 E: 1300099315.140113 0003 0001 22219 E: 1300099315.140115 0000 0000 0 E: 1300099315.145090 0003 0035 17748 E: 1300099315.145101 0003 0036 22251 E: 1300099315.145110 0003 0000 17748 E: 1300099315.145112 0003 0001 22251 E: 1300099315.145113 0000 0000 0 E: 1300099315.150081 0003 0035 17472 E: 1300099315.150087 0003 0036 22329 E: 1300099315.150091 0003 0031 962 E: 1300099315.150098 0003 0000 17472 E: 1300099315.150099 0003 0001 22329 E: 1300099315.150101 0000 0000 0 E: 1300099315.156088 0003 0035 17352 E: 1300099315.156099 0003 0036 22341 E: 1300099315.156109 0003 0000 17352 E: 1300099315.156110 0003 0001 22332 E: 1300099315.156112 0000 0000 0 E: 1300099315.161079 0003 0035 17240 E: 1300099315.161088 0003 0036 22375 E: 1300099315.161098 0003 0000 17240 E: 1300099315.161100 0003 0001 22375 E: 1300099315.161102 0000 0000 0 E: 1300099315.166089 0003 0035 17132 E: 1300099315.166102 0003 0036 22407 E: 1300099315.166111 0003 0000 17132 E: 1300099315.166113 0003 0001 22407 E: 1300099315.166115 0000 0000 0 E: 1300099315.171077 0003 0035 17030 E: 1300099315.171085 0003 0036 22441 E: 1300099315.171092 0003 0031 1004 E: 1300099315.171099 0003 0000 17030 E: 1300099315.171101 0003 0001 22441 E: 1300099315.171103 0000 0000 0 E: 1300099315.176090 0003 0035 16768 E: 1300099315.176104 0003 0036 22485 E: 1300099315.176114 0003 0000 16768 E: 1300099315.176115 0003 0001 22485 E: 1300099315.176117 0000 0000 0 E: 1300099315.181080 0003 0035 16662 E: 1300099315.181090 0003 0036 22498 E: 1300099315.181097 0003 0031 841 E: 1300099315.181104 0003 0000 16662 E: 1300099315.181105 0003 0001 22488 E: 1300099315.181107 0000 0000 0 E: 1300099315.186088 0003 0035 16574 E: 1300099315.186101 0003 0036 22539 E: 1300099315.186105 0003 0031 800 E: 1300099315.186111 0003 0000 16574 E: 1300099315.186113 0003 0001 22539 E: 1300099315.186115 0000 0000 0 E: 1300099315.191088 0003 0035 16482 E: 1300099315.191099 0003 0036 22552 E: 1300099315.191109 0003 0000 16482 E: 1300099315.191110 0003 0001 22542 E: 1300099315.191112 0000 0000 0 E: 1300099315.196090 0003 0035 16384 E: 1300099315.196101 0003 0036 22591 E: 1300099315.196110 0003 0000 16384 E: 1300099315.196112 0003 0001 22591 E: 1300099315.196114 0000 0000 0 E: 1300099315.201086 0003 0035 16280 E: 1300099315.201097 0003 0036 22623 E: 1300099315.201100 0003 0030 1224 E: 1300099315.201106 0003 0000 16280 E: 1300099315.201108 0003 0001 22623 E: 1300099315.201110 0000 0000 0 E: 1300099315.206088 0003 0035 16176 E: 1300099315.206100 0003 0036 22637 E: 1300099315.206103 0003 0030 1282 E: 1300099315.206110 0003 0000 16176 E: 1300099315.206111 0003 0001 22626 E: 1300099315.206113 0000 0000 0 E: 1300099315.212093 0003 0035 16060 E: 1300099315.212105 0003 0036 22683 E: 1300099315.212108 0003 0030 1234 E: 1300099315.212115 0003 0000 16060 E: 1300099315.212116 0003 0001 22683 E: 1300099315.212118 0000 0000 0 E: 1300099315.217088 0003 0035 15946 E: 1300099315.217099 0003 0036 22715 E: 1300099315.217102 0003 0030 1198 E: 1300099315.217109 0003 0000 15946 E: 1300099315.217110 0003 0001 22715 E: 1300099315.217112 0000 0000 0 E: 1300099315.222085 0003 0035 15836 E: 1300099315.222096 0003 0036 22747 E: 1300099315.222106 0003 0000 15836 E: 1300099315.222107 0003 0001 22747 E: 1300099315.222109 0000 0000 0 E: 1300099315.227088 0003 0035 15722 E: 1300099315.227100 0003 0036 22783 E: 1300099315.227109 0003 0000 15722 E: 1300099315.227110 0003 0001 22783 E: 1300099315.227112 0000 0000 0 E: 1300099315.232085 0003 0035 15604 E: 1300099315.232096 0003 0036 22821 E: 1300099315.232105 0003 0000 15604 E: 1300099315.232106 0003 0001 22821 E: 1300099315.232108 0000 0000 0 E: 1300099315.237088 0003 0035 15484 E: 1300099315.237099 0003 0036 22851 E: 1300099315.237102 0003 0030 1327 E: 1300099315.237109 0003 0000 15484 E: 1300099315.237111 0003 0001 22851 E: 1300099315.237112 0000 0000 0 E: 1300099315.242082 0003 0035 15368 E: 1300099315.242094 0003 0036 22887 E: 1300099315.242097 0003 0030 1359 E: 1300099315.242104 0003 0000 15368 E: 1300099315.242105 0003 0001 22887 E: 1300099315.242107 0000 0000 0 E: 1300099315.247088 0003 0035 15248 E: 1300099315.247099 0003 0036 22923 E: 1300099315.247108 0003 0000 15248 E: 1300099315.247110 0003 0001 22923 E: 1300099315.247112 0000 0000 0 E: 1300099315.252084 0003 0035 15124 E: 1300099315.252096 0003 0036 22961 E: 1300099315.252105 0003 0000 15124 E: 1300099315.252107 0003 0001 22961 E: 1300099315.252108 0000 0000 0 E: 1300099315.257089 0003 0035 15002 E: 1300099315.257101 0003 0036 22999 E: 1300099315.257110 0003 0000 15002 E: 1300099315.257111 0003 0001 22999 E: 1300099315.257113 0000 0000 0 E: 1300099315.262087 0003 0035 14880 E: 1300099315.262098 0003 0036 23035 E: 1300099315.262108 0003 0000 14880 E: 1300099315.262109 0003 0001 23035 E: 1300099315.262111 0000 0000 0 E: 1300099315.267088 0003 0035 14752 E: 1300099315.267100 0003 0036 23075 E: 1300099315.267109 0003 0000 14752 E: 1300099315.267111 0003 0001 23075 E: 1300099315.267112 0000 0000 0 E: 1300099315.273086 0003 0035 14628 E: 1300099315.273098 0003 0036 23111 E: 1300099315.273107 0003 0000 14628 E: 1300099315.273108 0003 0001 23111 E: 1300099315.273110 0000 0000 0 E: 1300099315.278087 0003 0035 14504 E: 1300099315.278099 0003 0036 23143 E: 1300099315.278108 0003 0000 14504 E: 1300099315.278109 0003 0001 23143 E: 1300099315.278111 0000 0000 0 E: 1300099315.283085 0003 0035 14376 E: 1300099315.283096 0003 0036 23179 E: 1300099315.283105 0003 0000 14376 E: 1300099315.283107 0003 0001 23179 E: 1300099315.283109 0000 0000 0 E: 1300099315.288079 0003 0035 14116 E: 1300099315.288085 0003 0036 23247 E: 1300099315.288094 0003 0000 14116 E: 1300099315.288096 0003 0001 23247 E: 1300099315.288098 0000 0000 0 E: 1300099315.293084 0003 0035 14004 E: 1300099315.293096 0003 0036 23279 E: 1300099315.293105 0003 0000 14004 E: 1300099315.293106 0003 0001 23279 E: 1300099315.293108 0000 0000 0 E: 1300099315.298077 0003 0035 13886 E: 1300099315.298087 0003 0036 23311 E: 1300099315.298097 0003 0000 13886 E: 1300099315.298099 0003 0001 23311 E: 1300099315.298101 0000 0000 0 E: 1300099315.303086 0003 0035 13764 E: 1300099315.303100 0003 0036 23349 E: 1300099315.303103 0003 0030 1225 E: 1300099315.303110 0003 0000 13764 E: 1300099315.303111 0003 0001 23349 E: 1300099315.303113 0000 0000 0 E: 1300099315.308079 0003 0035 13644 E: 1300099315.308094 0003 0036 23389 E: 1300099315.308097 0003 0030 1191 E: 1300099315.308107 0003 0000 13644 E: 1300099315.308108 0003 0001 23389 E: 1300099315.308110 0000 0000 0 E: 1300099315.313086 0003 0035 13522 E: 1300099315.313100 0003 0036 23427 E: 1300099315.313109 0003 0000 13522 E: 1300099315.313110 0003 0001 23427 E: 1300099315.313112 0000 0000 0 E: 1300099315.318085 0003 0035 13400 E: 1300099315.318097 0003 0036 23471 E: 1300099315.318106 0003 0000 13400 E: 1300099315.318107 0003 0001 23471 E: 1300099315.318109 0000 0000 0 E: 1300099315.323087 0003 0035 13276 E: 1300099315.323099 0003 0036 23513 E: 1300099315.323108 0003 0000 13276 E: 1300099315.323109 0003 0001 23513 E: 1300099315.323111 0000 0000 0 E: 1300099315.329089 0003 0035 13154 E: 1300099315.329102 0003 0036 23555 E: 1300099315.329105 0003 0030 1323 E: 1300099315.329112 0003 0000 13154 E: 1300099315.329113 0003 0001 23555 E: 1300099315.329115 0000 0000 0 E: 1300099315.334077 0003 0035 13028 E: 1300099315.334088 0003 0036 23597 E: 1300099315.334091 0003 0030 1356 E: 1300099315.334098 0003 0000 13028 E: 1300099315.334099 0003 0001 23597 E: 1300099315.334101 0000 0000 0 E: 1300099315.339083 0003 0035 12766 E: 1300099315.339094 0003 0036 23691 E: 1300099315.339103 0003 0000 12766 E: 1300099315.339105 0003 0001 23691 E: 1300099315.339106 0000 0000 0 E: 1300099315.344075 0003 0035 12654 E: 1300099315.344087 0003 0036 23729 E: 1300099315.344096 0003 0000 12654 E: 1300099315.344098 0003 0001 23729 E: 1300099315.344099 0000 0000 0 E: 1300099315.349084 0003 0035 12538 E: 1300099315.349095 0003 0036 23763 E: 1300099315.349104 0003 0000 12538 E: 1300099315.349106 0003 0001 23763 E: 1300099315.349108 0000 0000 0 E: 1300099315.354075 0003 0035 12418 E: 1300099315.354086 0003 0036 23801 E: 1300099315.354095 0003 0000 12418 E: 1300099315.354096 0003 0001 23801 E: 1300099315.354098 0000 0000 0 E: 1300099315.359079 0003 0035 12296 E: 1300099315.359091 0003 0036 23841 E: 1300099315.359100 0003 0000 12296 E: 1300099315.359102 0003 0001 23841 E: 1300099315.359103 0000 0000 0 E: 1300099315.364079 0003 0035 12172 E: 1300099315.364091 0003 0036 23879 E: 1300099315.364100 0003 0000 12172 E: 1300099315.364102 0003 0001 23879 E: 1300099315.364104 0000 0000 0 E: 1300099315.369082 0003 0035 12046 E: 1300099315.369093 0003 0036 23917 E: 1300099315.369102 0003 0000 12046 E: 1300099315.369104 0003 0001 23917 E: 1300099315.369106 0000 0000 0 E: 1300099315.374076 0003 0035 11920 E: 1300099315.374088 0003 0036 23953 E: 1300099315.374098 0003 0000 11920 E: 1300099315.374099 0003 0001 23953 E: 1300099315.374101 0000 0000 0 E: 1300099315.379084 0003 0035 11796 E: 1300099315.379098 0003 0036 23995 E: 1300099315.379107 0003 0000 11796 E: 1300099315.379108 0003 0001 23995 E: 1300099315.379110 0000 0000 0 E: 1300099315.385087 0003 0035 11668 E: 1300099315.385098 0003 0036 24031 E: 1300099315.385101 0003 0030 1224 E: 1300099315.385108 0003 0000 11668 E: 1300099315.385109 0003 0001 24031 E: 1300099315.385111 0000 0000 0 E: 1300099315.390082 0003 0035 11542 E: 1300099315.390093 0003 0036 24071 E: 1300099315.390096 0003 0030 1191 E: 1300099315.390103 0003 0000 11542 E: 1300099315.390104 0003 0001 24071 E: 1300099315.390106 0000 0000 0 E: 1300099315.395084 0003 0035 11414 E: 1300099315.395096 0003 0036 24115 E: 1300099315.395105 0003 0000 11414 E: 1300099315.395107 0003 0001 24115 E: 1300099315.395109 0000 0000 0 E: 1300099315.400082 0003 0035 11152 E: 1300099315.400093 0003 0036 24199 E: 1300099315.400102 0003 0000 11152 E: 1300099315.400104 0003 0001 24199 E: 1300099315.400106 0000 0000 0 E: 1300099315.405084 0003 0035 11034 E: 1300099315.405095 0003 0036 24239 E: 1300099315.405105 0003 0000 11034 E: 1300099315.405106 0003 0001 24239 E: 1300099315.405108 0000 0000 0 E: 1300099315.410082 0003 0035 10912 E: 1300099315.410093 0003 0036 24277 E: 1300099315.410103 0003 0000 10912 E: 1300099315.410104 0003 0001 24277 E: 1300099315.410106 0000 0000 0 E: 1300099315.415086 0003 0035 10790 E: 1300099315.415097 0003 0036 24317 E: 1300099315.415100 0003 0030 1323 E: 1300099315.415107 0003 0000 10790 E: 1300099315.415108 0003 0001 24317 E: 1300099315.415110 0000 0000 0 E: 1300099315.420082 0003 0035 10672 E: 1300099315.420093 0003 0036 24357 E: 1300099315.420096 0003 0030 1356 E: 1300099315.420103 0003 0000 10672 E: 1300099315.420104 0003 0001 24357 E: 1300099315.420106 0000 0000 0 E: 1300099315.425083 0003 0035 10550 E: 1300099315.425094 0003 0036 24395 E: 1300099315.425103 0003 0000 10550 E: 1300099315.425105 0003 0001 24395 E: 1300099315.425107 0000 0000 0 E: 1300099315.430081 0003 0035 10428 E: 1300099315.430092 0003 0036 24429 E: 1300099315.430101 0003 0000 10428 E: 1300099315.430102 0003 0001 24429 E: 1300099315.430104 0000 0000 0 E: 1300099315.435085 0003 0035 10308 E: 1300099315.435097 0003 0036 24469 E: 1300099315.435106 0003 0000 10308 E: 1300099315.435107 0003 0001 24469 E: 1300099315.435109 0000 0000 0 E: 1300099315.440080 0003 0035 10190 E: 1300099315.440091 0003 0036 24509 E: 1300099315.440101 0003 0000 10190 E: 1300099315.440102 0003 0001 24509 E: 1300099315.440104 0000 0000 0 E: 1300099315.446085 0003 0035 10070 E: 1300099315.446097 0003 0036 24555 E: 1300099315.446106 0003 0000 10070 E: 1300099315.446107 0003 0001 24555 E: 1300099315.446109 0000 0000 0 E: 1300099315.451081 0003 0035 9948 E: 1300099315.451093 0003 0036 24593 E: 1300099315.451102 0003 0000 9948 E: 1300099315.451103 0003 0001 24593 E: 1300099315.451105 0000 0000 0 E: 1300099315.456085 0003 0035 9828 E: 1300099315.456096 0003 0036 24633 E: 1300099315.456106 0003 0000 9828 E: 1300099315.456107 0003 0001 24633 E: 1300099315.456109 0000 0000 0 E: 1300099315.461081 0003 0035 9710 E: 1300099315.461092 0003 0036 24671 E: 1300099315.461102 0003 0000 9710 E: 1300099315.461103 0003 0001 24671 E: 1300099315.461105 0000 0000 0 E: 1300099315.466081 0003 0035 9590 E: 1300099315.466091 0003 0036 24721 E: 1300099315.466094 0003 0030 1224 E: 1300099315.466101 0003 0000 9590 E: 1300099315.466103 0003 0001 24721 E: 1300099315.466105 0000 0000 0 E: 1300099315.471082 0003 0035 9470 E: 1300099315.471093 0003 0036 24761 E: 1300099315.471096 0003 0030 1191 E: 1300099315.471103 0003 0000 9470 E: 1300099315.471105 0003 0001 24761 E: 1300099315.471106 0000 0000 0 E: 1300099315.476076 0003 0035 9354 E: 1300099315.476082 0003 0036 24801 E: 1300099315.476091 0003 0000 9354 E: 1300099315.476093 0003 0001 24801 E: 1300099315.476095 0000 0000 0 E: 1300099315.481083 0003 0035 9234 E: 1300099315.481095 0003 0036 24847 E: 1300099315.481104 0003 0000 9234 E: 1300099315.481106 0003 0001 24847 E: 1300099315.481108 0000 0000 0 E: 1300099315.486080 0003 0035 9120 E: 1300099315.486086 0003 0036 24885 E: 1300099315.486095 0003 0000 9120 E: 1300099315.486097 0003 0001 24885 E: 1300099315.486099 0000 0000 0 E: 1300099315.491074 0003 0035 9006 E: 1300099315.491080 0003 0036 24929 E: 1300099315.491089 0003 0000 9006 E: 1300099315.491091 0003 0001 24929 E: 1300099315.491093 0000 0000 0 E: 1300099315.496087 0003 0035 8892 E: 1300099315.496100 0003 0036 24971 E: 1300099315.496102 0003 0030 1323 E: 1300099315.496109 0003 0000 8892 E: 1300099315.496111 0003 0001 24971 E: 1300099315.496113 0000 0000 0 E: 1300099315.502082 0003 0035 8776 E: 1300099315.502096 0003 0036 25017 E: 1300099315.502099 0003 0030 1356 E: 1300099315.502105 0003 0000 8776 E: 1300099315.502107 0003 0001 25017 E: 1300099315.502109 0000 0000 0 E: 1300099315.507074 0003 0035 8664 E: 1300099315.507080 0003 0036 25063 E: 1300099315.507089 0003 0000 8664 E: 1300099315.507091 0003 0001 25063 E: 1300099315.507092 0000 0000 0 E: 1300099315.512082 0003 0035 8548 E: 1300099315.512095 0003 0036 25105 E: 1300099315.512104 0003 0000 8548 E: 1300099315.512106 0003 0001 25105 E: 1300099315.512108 0000 0000 0 E: 1300099315.517082 0003 0035 8436 E: 1300099315.517093 0003 0036 25149 E: 1300099315.517103 0003 0000 8436 E: 1300099315.517104 0003 0001 25149 E: 1300099315.517106 0000 0000 0 E: 1300099315.522082 0003 0035 8322 E: 1300099315.522094 0003 0036 25189 E: 1300099315.522103 0003 0000 8322 E: 1300099315.522104 0003 0001 25189 E: 1300099315.522106 0000 0000 0 E: 1300099315.527082 0003 0035 8212 E: 1300099315.527093 0003 0036 25231 E: 1300099315.527102 0003 0000 8212 E: 1300099315.527104 0003 0001 25231 E: 1300099315.527106 0000 0000 0 E: 1300099315.532084 0003 0035 8102 E: 1300099315.532095 0003 0036 25279 E: 1300099315.532104 0003 0000 8102 E: 1300099315.532106 0003 0001 25279 E: 1300099315.532107 0000 0000 0 E: 1300099315.537080 0003 0035 7994 E: 1300099315.537091 0003 0036 25319 E: 1300099315.537100 0003 0000 7994 E: 1300099315.537102 0003 0001 25319 E: 1300099315.537104 0000 0000 0 E: 1300099315.542075 0003 0035 7888 E: 1300099315.542084 0003 0036 25361 E: 1300099315.542097 0003 0000 7888 E: 1300099315.542099 0003 0001 25361 E: 1300099315.542101 0000 0000 0 E: 1300099315.547081 0003 0035 7778 E: 1300099315.547096 0003 0036 25403 E: 1300099315.547105 0003 0000 7778 E: 1300099315.547107 0003 0001 25403 E: 1300099315.547108 0000 0000 0 E: 1300099315.552073 0003 0035 7674 E: 1300099315.552083 0003 0036 25443 E: 1300099315.552086 0003 0030 1224 E: 1300099315.552094 0003 0000 7674 E: 1300099315.552095 0003 0001 25443 E: 1300099315.552097 0000 0000 0 E: 1300099315.557079 0003 0035 7568 E: 1300099315.557092 0003 0036 25479 E: 1300099315.557095 0003 0030 1191 E: 1300099315.557102 0003 0000 7568 E: 1300099315.557104 0003 0001 25479 E: 1300099315.557106 0000 0000 0 E: 1300099315.563072 0003 0035 7460 E: 1300099315.563081 0003 0036 25515 E: 1300099315.563094 0003 0000 7460 E: 1300099315.563096 0003 0001 25515 E: 1300099315.563098 0000 0000 0 E: 1300099315.568080 0003 0035 7354 E: 1300099315.568093 0003 0036 25557 E: 1300099315.568102 0003 0000 7354 E: 1300099315.568104 0003 0001 25557 E: 1300099315.568106 0000 0000 0 E: 1300099315.573068 0003 0035 7248 E: 1300099315.573076 0003 0036 25597 E: 1300099315.573086 0003 0000 7248 E: 1300099315.573088 0003 0001 25597 E: 1300099315.573089 0000 0000 0 E: 1300099315.578082 0003 0035 7144 E: 1300099315.578096 0003 0036 25639 E: 1300099315.578105 0003 0000 7144 E: 1300099315.578107 0003 0001 25639 E: 1300099315.578109 0000 0000 0 E: 1300099315.583085 0003 0035 7040 E: 1300099315.583097 0003 0036 25683 E: 1300099315.583107 0003 0000 7040 E: 1300099315.583108 0003 0001 25683 E: 1300099315.583110 0000 0000 0 E: 1300099315.588082 0003 0035 6938 E: 1300099315.588093 0003 0036 25731 E: 1300099315.588096 0003 0030 1323 E: 1300099315.588103 0003 0000 6938 E: 1300099315.588105 0003 0001 25731 E: 1300099315.588107 0000 0000 0 E: 1300099315.593078 0003 0035 6838 E: 1300099315.593090 0003 0036 25773 E: 1300099315.593093 0003 0030 1356 E: 1300099315.593100 0003 0000 6838 E: 1300099315.593101 0003 0001 25773 E: 1300099315.593103 0000 0000 0 E: 1300099315.598084 0003 0035 6740 E: 1300099315.598095 0003 0036 25817 E: 1300099315.598104 0003 0000 6740 E: 1300099315.598106 0003 0001 25817 E: 1300099315.598108 0000 0000 0 E: 1300099315.603080 0003 0035 6644 E: 1300099315.603091 0003 0036 25857 E: 1300099315.603100 0003 0000 6644 E: 1300099315.603102 0003 0001 25857 E: 1300099315.603104 0000 0000 0 E: 1300099315.608081 0003 0035 6544 E: 1300099315.608087 0003 0036 25895 E: 1300099315.608096 0003 0000 6544 E: 1300099315.608098 0003 0001 25895 E: 1300099315.608099 0000 0000 0 E: 1300099315.613078 0003 0035 6448 E: 1300099315.613089 0003 0036 25931 E: 1300099315.613098 0003 0000 6448 E: 1300099315.613099 0003 0001 25931 E: 1300099315.613101 0000 0000 0 E: 1300099315.619083 0003 0035 6350 E: 1300099315.619094 0003 0036 25971 E: 1300099315.619104 0003 0000 6350 E: 1300099315.619105 0003 0001 25971 E: 1300099315.619107 0000 0000 0 E: 1300099315.624069 0003 0035 6254 E: 1300099315.624075 0003 0036 26015 E: 1300099315.624084 0003 0000 6254 E: 1300099315.624086 0003 0001 26015 E: 1300099315.624088 0000 0000 0 E: 1300099315.629082 0003 0035 6156 E: 1300099315.629094 0003 0036 26049 E: 1300099315.629104 0003 0000 6156 E: 1300099315.629105 0003 0001 26049 E: 1300099315.629107 0000 0000 0 E: 1300099315.634067 0003 0035 6060 E: 1300099315.634077 0003 0036 26063 E: 1300099315.634087 0003 0000 6060 E: 1300099315.634088 0003 0001 26052 E: 1300099315.634090 0000 0000 0 E: 1300099315.639081 0003 0035 5960 E: 1300099315.639093 0003 0036 26107 E: 1300099315.639102 0003 0000 5960 E: 1300099315.639103 0003 0001 26107 E: 1300099315.639105 0000 0000 0 E: 1300099315.644066 0003 0035 5864 E: 1300099315.644077 0003 0036 26139 E: 1300099315.644086 0003 0000 5864 E: 1300099315.644088 0003 0001 26139 E: 1300099315.644090 0000 0000 0 E: 1300099315.649081 0003 0035 5768 E: 1300099315.649093 0003 0036 26169 E: 1300099315.649102 0003 0000 5768 E: 1300099315.649104 0003 0001 26169 E: 1300099315.649105 0000 0000 0 E: 1300099315.654066 0003 0035 5672 E: 1300099315.654077 0003 0036 26199 E: 1300099315.654086 0003 0000 5672 E: 1300099315.654088 0003 0001 26199 E: 1300099315.654090 0000 0000 0 E: 1300099315.659070 0003 0035 5578 E: 1300099315.659076 0003 0036 26231 E: 1300099315.659085 0003 0000 5578 E: 1300099315.659087 0003 0001 26231 E: 1300099315.659088 0000 0000 0 E: 1300099315.664071 0003 0035 5482 E: 1300099315.664082 0003 0036 26245 E: 1300099315.664085 0003 0030 1224 E: 1300099315.664092 0003 0000 5482 E: 1300099315.664094 0003 0001 26234 E: 1300099315.664096 0000 0000 0 E: 1300099315.669079 0003 0035 5390 E: 1300099315.669091 0003 0036 26291 E: 1300099315.669094 0003 0030 1191 E: 1300099315.669101 0003 0000 5390 E: 1300099315.669103 0003 0001 26291 E: 1300099315.669105 0000 0000 0 E: 1300099315.675067 0003 0035 5298 E: 1300099315.675077 0003 0036 26323 E: 1300099315.675087 0003 0000 5298 E: 1300099315.675089 0003 0001 26323 E: 1300099315.675090 0000 0000 0 E: 1300099315.680070 0003 0035 5208 E: 1300099315.680078 0003 0036 26353 E: 1300099315.680087 0003 0000 5208 E: 1300099315.680089 0003 0001 26353 E: 1300099315.680091 0000 0000 0 E: 1300099315.685077 0003 0035 5118 E: 1300099315.685088 0003 0036 26383 E: 1300099315.685097 0003 0000 5118 E: 1300099315.685099 0003 0001 26383 E: 1300099315.685101 0000 0000 0 E: 1300099315.690070 0003 0035 5032 E: 1300099315.690081 0003 0036 26415 E: 1300099315.690091 0003 0000 5032 E: 1300099315.690093 0003 0001 26415 E: 1300099315.690094 0000 0000 0 E: 1300099315.695079 0003 0035 4944 E: 1300099315.695093 0003 0036 26445 E: 1300099315.695102 0003 0000 4944 E: 1300099315.695103 0003 0001 26445 E: 1300099315.695105 0000 0000 0 E: 1300099315.700079 0003 0035 4858 E: 1300099315.700091 0003 0036 26477 E: 1300099315.700101 0003 0000 4858 E: 1300099315.700102 0003 0001 26477 E: 1300099315.700104 0000 0000 0 E: 1300099315.705080 0003 0035 4774 E: 1300099315.705091 0003 0036 26511 E: 1300099315.705100 0003 0000 4774 E: 1300099315.705102 0003 0001 26511 E: 1300099315.705104 0000 0000 0 E: 1300099315.710077 0003 0035 4692 E: 1300099315.710088 0003 0036 26541 E: 1300099315.710091 0003 0030 1323 E: 1300099315.710098 0003 0000 4692 E: 1300099315.710100 0003 0001 26541 E: 1300099315.710101 0000 0000 0 E: 1300099315.715081 0003 0035 4612 E: 1300099315.715092 0003 0036 26573 E: 1300099315.715095 0003 0030 1356 E: 1300099315.715102 0003 0000 4612 E: 1300099315.715104 0003 0001 26573 E: 1300099315.715105 0000 0000 0 E: 1300099315.720076 0003 0035 4530 E: 1300099315.720087 0003 0036 26603 E: 1300099315.720096 0003 0000 4530 E: 1300099315.720098 0003 0001 26603 E: 1300099315.720099 0000 0000 0 E: 1300099315.725072 0003 0035 4452 E: 1300099315.725078 0003 0036 26633 E: 1300099315.725088 0003 0000 4452 E: 1300099315.725089 0003 0001 26633 E: 1300099315.725091 0000 0000 0 E: 1300099315.730077 0003 0035 4374 E: 1300099315.730088 0003 0036 26646 E: 1300099315.730098 0003 0000 4374 E: 1300099315.730099 0003 0001 26636 E: 1300099315.730101 0000 0000 0 E: 1300099315.736080 0003 0035 4296 E: 1300099315.736091 0003 0036 26687 E: 1300099315.736100 0003 0000 4296 E: 1300099315.736102 0003 0001 26687 E: 1300099315.736104 0000 0000 0 E: 1300099315.741067 0003 0035 4222 E: 1300099315.741072 0003 0036 26697 E: 1300099315.741082 0003 0000 4222 E: 1300099315.741083 0003 0001 26689 E: 1300099315.741085 0000 0000 0 E: 1300099315.746079 0003 0035 4146 E: 1300099315.746091 0003 0036 26731 E: 1300099315.746100 0003 0000 4146 E: 1300099315.746101 0003 0001 26731 E: 1300099315.746103 0000 0000 0 E: 1300099315.751075 0003 0035 4070 E: 1300099315.751086 0003 0036 26743 E: 1300099315.751095 0003 0000 4070 E: 1300099315.751097 0003 0001 26734 E: 1300099315.751099 0000 0000 0 E: 1300099315.756079 0003 0035 3992 E: 1300099315.756090 0003 0036 26779 E: 1300099315.756100 0003 0000 3992 E: 1300099315.756101 0003 0001 26779 E: 1300099315.756103 0000 0000 0 E: 1300099315.761075 0003 0035 3918 E: 1300099315.761087 0003 0036 26789 E: 1300099315.761096 0003 0000 3918 E: 1300099315.761098 0003 0001 26781 E: 1300099315.761099 0000 0000 0 E: 1300099315.766079 0003 0035 3840 E: 1300099315.766090 0003 0036 26825 E: 1300099315.766099 0003 0000 3840 E: 1300099315.766101 0003 0001 26825 E: 1300099315.766103 0000 0000 0 E: 1300099315.771075 0003 0035 3762 E: 1300099315.771087 0003 0036 26836 E: 1300099315.771096 0003 0000 3762 E: 1300099315.771097 0003 0001 26827 E: 1300099315.771099 0000 0000 0 E: 1300099315.776079 0003 0035 3686 E: 1300099315.776090 0003 0036 26867 E: 1300099315.776100 0003 0000 3686 E: 1300099315.776101 0003 0001 26867 E: 1300099315.776103 0000 0000 0 E: 1300099315.781077 0003 0035 3606 E: 1300099315.781088 0003 0036 26881 E: 1300099315.781097 0003 0000 3606 E: 1300099315.781099 0003 0001 26870 E: 1300099315.781101 0000 0000 0 E: 1300099315.786078 0003 0035 3528 E: 1300099315.786090 0003 0036 26925 E: 1300099315.786099 0003 0000 3528 E: 1300099315.786100 0003 0001 26925 E: 1300099315.786102 0000 0000 0 E: 1300099315.792082 0003 0035 3450 E: 1300099315.792094 0003 0036 26938 E: 1300099315.792104 0003 0000 3450 E: 1300099315.792105 0003 0001 26928 E: 1300099315.792107 0000 0000 0 E: 1300099315.797080 0003 0035 3376 E: 1300099315.797093 0003 0036 26977 E: 1300099315.797096 0003 0030 1224 E: 1300099315.797103 0003 0000 3376 E: 1300099315.797104 0003 0001 26977 E: 1300099315.797106 0000 0000 0 E: 1300099315.802076 0003 0035 3302 E: 1300099315.802090 0003 0036 27007 E: 1300099315.802093 0003 0030 1191 E: 1300099315.802100 0003 0000 3302 E: 1300099315.802101 0003 0001 27007 E: 1300099315.802103 0000 0000 0 E: 1300099315.807080 0003 0035 3228 E: 1300099315.807092 0003 0036 27021 E: 1300099315.807101 0003 0000 3228 E: 1300099315.807103 0003 0001 27010 E: 1300099315.807105 0000 0000 0 E: 1300099315.812076 0003 0035 3158 E: 1300099315.812087 0003 0036 27061 E: 1300099315.812096 0003 0000 3158 E: 1300099315.812098 0003 0001 27061 E: 1300099315.812100 0000 0000 0 E: 1300099315.817077 0003 0035 3084 E: 1300099315.817089 0003 0036 27075 E: 1300099315.817098 0003 0000 3084 E: 1300099315.817099 0003 0001 27064 E: 1300099315.817101 0000 0000 0 E: 1300099315.822076 0003 0035 3016 E: 1300099315.822087 0003 0036 27121 E: 1300099315.822096 0003 0000 3016 E: 1300099315.822098 0003 0001 27121 E: 1300099315.822100 0000 0000 0 E: 1300099315.827076 0003 0035 2948 E: 1300099315.827088 0003 0036 27133 E: 1300099315.827097 0003 0000 2948 E: 1300099315.827099 0003 0001 27124 E: 1300099315.827101 0000 0000 0 E: 1300099315.832076 0003 0035 2914 E: 1300099315.832088 0003 0036 27144 E: 1300099315.832097 0003 0000 2914 E: 1300099315.832098 0003 0001 27134 E: 1300099315.832100 0000 0000 0 E: 1300099315.837083 0003 0035 2882 E: 1300099315.837094 0003 0036 27158 E: 1300099315.837104 0003 0000 2882 E: 1300099315.837106 0003 0001 27146 E: 1300099315.837107 0000 0000 0 E: 1300099315.842076 0003 0035 2818 E: 1300099315.842087 0003 0036 27207 E: 1300099315.842096 0003 0000 2818 E: 1300099315.842098 0003 0001 27207 E: 1300099315.842100 0000 0000 0 E: 1300099315.847082 0003 0035 2786 E: 1300099315.847094 0003 0036 27210 E: 1300099315.847103 0003 0000 2786 E: 1300099315.847106 0000 0000 0 E: 1300099315.853074 0003 0035 2756 E: 1300099315.853085 0003 0036 27223 E: 1300099315.853089 0003 0030 1323 E: 1300099315.853096 0003 0000 2756 E: 1300099315.853097 0003 0001 27215 E: 1300099315.853099 0000 0000 0 E: 1300099315.858067 0003 0035 2724 E: 1300099315.858078 0003 0036 27253 E: 1300099315.858084 0003 0030 1356 E: 1300099315.858092 0003 0000 2724 E: 1300099315.858093 0003 0001 27253 E: 1300099315.858095 0000 0000 0 E: 1300099315.863076 0003 0035 2694 E: 1300099315.863089 0003 0036 27261 E: 1300099315.863099 0003 0000 2694 E: 1300099315.863100 0003 0001 27255 E: 1300099315.863102 0000 0000 0 E: 1300099315.868079 0003 0035 2664 E: 1300099315.868090 0003 0036 27275 E: 1300099315.868100 0003 0000 2664 E: 1300099315.868101 0003 0001 27265 E: 1300099315.868103 0000 0000 0 E: 1300099315.873072 0003 0035 2650 E: 1300099315.873084 0003 0036 27307 E: 1300099315.873093 0003 0000 2660 E: 1300099315.873095 0003 0001 27307 E: 1300099315.873096 0000 0000 0 E: 1300099315.878067 0003 0035 2608 E: 1300099315.878078 0003 0036 27315 E: 1300099315.878090 0003 0000 2608 E: 1300099315.878092 0003 0001 27309 E: 1300099315.878094 0000 0000 0 E: 1300099315.883069 0003 0035 2595 E: 1300099315.883085 0003 0036 27327 E: 1300099315.883095 0003 0000 2604 E: 1300099315.883097 0003 0001 27318 E: 1300099315.883098 0000 0000 0 E: 1300099315.888075 0003 0035 2554 E: 1300099315.888088 0003 0036 27357 E: 1300099315.888098 0003 0000 2554 E: 1300099315.888099 0003 0001 27357 E: 1300099315.888101 0000 0000 0 E: 1300099315.893087 0003 0035 2542 E: 1300099315.893099 0003 0036 27366 E: 1300099315.893109 0003 0000 2551 E: 1300099315.893110 0003 0001 27359 E: 1300099315.893112 0000 0000 0 E: 1300099315.898070 0003 0035 2506 E: 1300099315.898078 0003 0036 27378 E: 1300099315.898089 0003 0000 2506 E: 1300099315.898090 0003 0001 27368 E: 1300099315.898092 0000 0000 0 E: 1300099315.903067 0003 0035 2495 E: 1300099315.903073 0003 0036 27409 E: 1300099315.903083 0003 0000 2503 E: 1300099315.903085 0003 0001 27409 E: 1300099315.903087 0000 0000 0 E: 1300099315.909075 0003 0035 2464 E: 1300099315.909087 0003 0036 27417 E: 1300099315.909096 0003 0000 2464 E: 1300099315.909098 0003 0001 27411 E: 1300099315.909100 0000 0000 0 E: 1300099315.914065 0003 0035 2454 E: 1300099315.914077 0003 0036 27428 E: 1300099315.914086 0003 0000 2461 E: 1300099315.914088 0003 0001 27419 E: 1300099315.914090 0000 0000 0 E: 1300099315.919072 0003 0035 2424 E: 1300099315.919083 0003 0036 27441 E: 1300099315.919093 0003 0000 2424 E: 1300099315.919094 0003 0001 27430 E: 1300099315.919096 0000 0000 0 E: 1300099315.924063 0003 0035 2415 E: 1300099315.924079 0003 0036 27471 E: 1300099315.924089 0003 0000 2421 E: 1300099315.924090 0003 0001 27471 E: 1300099315.924092 0000 0000 0 E: 1300099315.929074 0003 0035 2402 E: 1300099315.929088 0003 0036 27479 E: 1300099315.929097 0003 0000 2411 E: 1300099315.929098 0003 0001 27473 E: 1300099315.929100 0000 0000 0 E: 1300099315.934066 0003 0035 2394 E: 1300099315.934076 0003 0036 27481 E: 1300099315.934085 0003 0000 2402 E: 1300099315.934087 0003 0001 27475 E: 1300099315.934088 0000 0000 0 E: 1300099315.939072 0003 0035 2381 E: 1300099315.939084 0003 0036 27493 E: 1300099315.939093 0003 0000 2391 E: 1300099315.939094 0003 0001 27484 E: 1300099315.939096 0000 0000 0 E: 1300099315.944065 0003 0035 2372 E: 1300099315.944076 0003 0036 27501 E: 1300099315.944086 0003 0000 2381 E: 1300099315.944087 0003 0001 27492 E: 1300099315.944089 0000 0000 0 E: 1300099315.949065 0003 0035 2369 E: 1300099315.949070 0003 0036 27504 E: 1300099315.949080 0003 0000 2378 E: 1300099315.949082 0003 0001 27495 E: 1300099315.949084 0000 0000 0 E: 1300099315.954065 0003 0035 2365 E: 1300099315.954071 0003 0036 27507 E: 1300099315.954080 0003 0000 2374 E: 1300099315.954082 0003 0001 27498 E: 1300099315.954084 0000 0000 0 E: 1300099315.959072 0003 0035 2362 E: 1300099315.959083 0003 0036 27510 E: 1300099315.959092 0003 0000 2371 E: 1300099315.959094 0003 0001 27501 E: 1300099315.959096 0000 0000 0 E: 1300099315.965066 0003 0035 2359 E: 1300099315.965086 0003 0036 27513 E: 1300099315.965096 0003 0000 2368 E: 1300099315.965098 0003 0001 27504 E: 1300099315.965100 0000 0000 0 E: 1300099315.970073 0003 0035 2355 E: 1300099315.970087 0003 0036 27516 E: 1300099315.970096 0003 0000 2364 E: 1300099315.970098 0003 0001 27507 E: 1300099315.970100 0000 0000 0 E: 1300099315.975071 0003 0035 2351 E: 1300099315.975082 0003 0036 27519 E: 1300099315.975092 0003 0000 2360 E: 1300099315.975093 0003 0001 27510 E: 1300099315.975095 0000 0000 0 E: 1300099315.980074 0003 0035 2348 E: 1300099315.980087 0003 0036 27522 E: 1300099315.980096 0003 0000 2357 E: 1300099315.980098 0003 0001 27513 E: 1300099315.980099 0000 0000 0 E: 1300099315.985072 0003 0035 2345 E: 1300099315.985086 0003 0036 27525 E: 1300099315.985095 0003 0000 2354 E: 1300099315.985097 0003 0001 27516 E: 1300099315.985099 0000 0000 0 E: 1300099315.990074 0003 0035 2342 E: 1300099315.990085 0003 0036 27528 E: 1300099315.990094 0003 0000 2351 E: 1300099315.990096 0003 0001 27519 E: 1300099315.990097 0000 0000 0 E: 1300099315.995079 0003 0035 2339 E: 1300099315.995091 0003 0036 27531 E: 1300099315.995101 0003 0000 2348 E: 1300099315.995102 0003 0001 27522 E: 1300099315.995104 0000 0000 0 E: 1300099316.000074 0003 0035 2336 E: 1300099316.000087 0003 0036 27534 E: 1300099316.000096 0003 0000 2345 E: 1300099316.000097 0003 0001 27525 E: 1300099316.000099 0000 0000 0 E: 1300099316.005071 0003 0035 2333 E: 1300099316.005082 0003 0036 27537 E: 1300099316.005091 0003 0000 2342 E: 1300099316.005093 0003 0001 27528 E: 1300099316.005095 0000 0000 0 E: 1300099316.010070 0003 0035 2330 E: 1300099316.010081 0003 0036 27540 E: 1300099316.010090 0003 0000 2339 E: 1300099316.010092 0003 0001 27531 E: 1300099316.010094 0000 0000 0 E: 1300099316.015071 0003 0035 2327 E: 1300099316.015082 0003 0036 27543 E: 1300099316.015091 0003 0000 2336 E: 1300099316.015092 0003 0001 27534 E: 1300099316.015094 0000 0000 0 E: 1300099316.020073 0003 0035 2324 E: 1300099316.020085 0003 0036 27546 E: 1300099316.020094 0003 0000 2333 E: 1300099316.020095 0003 0001 27537 E: 1300099316.020097 0000 0000 0 E: 1300099316.026077 0003 0035 2321 E: 1300099316.026090 0003 0036 27549 E: 1300099316.026099 0003 0000 2330 E: 1300099316.026100 0003 0001 27540 E: 1300099316.026102 0000 0000 0 E: 1300099316.031069 0003 0035 2318 E: 1300099316.031080 0003 0036 27552 E: 1300099316.031089 0003 0000 2327 E: 1300099316.031091 0003 0001 27543 E: 1300099316.031093 0000 0000 0 E: 1300099316.036071 0003 0035 2315 E: 1300099316.036082 0003 0036 27554 E: 1300099316.036091 0003 0000 2324 E: 1300099316.036093 0003 0001 27545 E: 1300099316.036094 0000 0000 0 E: 1300099316.041070 0003 0035 2312 E: 1300099316.041081 0003 0036 27556 E: 1300099316.041090 0003 0000 2321 E: 1300099316.041091 0003 0001 27547 E: 1300099316.041093 0000 0000 0 E: 1300099316.046070 0003 0035 2310 E: 1300099316.046081 0003 0036 27558 E: 1300099316.046090 0003 0000 2318 E: 1300099316.046092 0003 0001 27549 E: 1300099316.046094 0000 0000 0 E: 1300099316.051073 0003 0035 2308 E: 1300099316.051084 0003 0036 27560 E: 1300099316.051094 0003 0000 2315 E: 1300099316.051095 0003 0001 27551 E: 1300099316.051097 0000 0000 0 E: 1300099316.056071 0003 0035 2306 E: 1300099316.056082 0003 0036 27562 E: 1300099316.056091 0003 0000 2312 E: 1300099316.056092 0003 0001 27553 E: 1300099316.056094 0000 0000 0 E: 1300099316.061071 0003 0035 2304 E: 1300099316.061083 0003 0036 27565 E: 1300099316.061092 0003 0000 2310 E: 1300099316.061093 0003 0001 27556 E: 1300099316.061095 0000 0000 0 E: 1300099316.066070 0003 0035 2302 E: 1300099316.066081 0003 0036 27568 E: 1300099316.066090 0003 0000 2308 E: 1300099316.066092 0003 0001 27559 E: 1300099316.066094 0000 0000 0 E: 1300099316.071069 0003 0035 2300 E: 1300099316.071080 0003 0036 27570 E: 1300099316.071090 0003 0000 2306 E: 1300099316.071091 0003 0001 27561 E: 1300099316.071093 0000 0000 0 E: 1300099316.076069 0003 0035 2298 E: 1300099316.076081 0003 0036 27572 E: 1300099316.076090 0003 0000 2304 E: 1300099316.076091 0003 0001 27563 E: 1300099316.076093 0000 0000 0 E: 1300099316.082072 0003 0035 2296 E: 1300099316.082084 0003 0036 27574 E: 1300099316.082093 0003 0000 2302 E: 1300099316.082094 0003 0001 27565 E: 1300099316.082096 0000 0000 0 E: 1300099316.087077 0003 0035 2294 E: 1300099316.087090 0003 0036 27576 E: 1300099316.087099 0003 0000 2300 E: 1300099316.087101 0003 0001 27567 E: 1300099316.087102 0000 0000 0 E: 1300099316.092069 0003 0035 2292 E: 1300099316.092080 0003 0036 27579 E: 1300099316.092089 0003 0000 2298 E: 1300099316.092091 0003 0001 27570 E: 1300099316.092093 0000 0000 0 E: 1300099316.097070 0003 0035 2290 E: 1300099316.097082 0003 0036 27582 E: 1300099316.097091 0003 0000 2296 E: 1300099316.097093 0003 0001 27573 E: 1300099316.097094 0000 0000 0 E: 1300099316.102073 0003 0035 2288 E: 1300099316.102084 0003 0036 27584 E: 1300099316.102093 0003 0000 2294 E: 1300099316.102095 0003 0001 27575 E: 1300099316.102096 0000 0000 0 E: 1300099316.107069 0003 0035 2286 E: 1300099316.107080 0003 0036 27586 E: 1300099316.107089 0003 0000 2292 E: 1300099316.107091 0003 0001 27577 E: 1300099316.107092 0000 0000 0 E: 1300099316.112068 0003 0035 2284 E: 1300099316.112079 0003 0036 27588 E: 1300099316.112088 0003 0000 2290 E: 1300099316.112090 0003 0001 27579 E: 1300099316.112092 0000 0000 0 E: 1300099316.117069 0003 0035 2282 E: 1300099316.117080 0003 0036 27590 E: 1300099316.117089 0003 0000 2288 E: 1300099316.117091 0003 0001 27581 E: 1300099316.117093 0000 0000 0 E: 1300099316.122070 0003 0036 27592 E: 1300099316.122090 0003 0001 27583 E: 1300099316.122091 0000 0000 0 E: 1300099316.127068 0003 0035 2280 E: 1300099316.127080 0003 0036 27594 E: 1300099316.127089 0003 0000 2286 E: 1300099316.127090 0003 0001 27585 E: 1300099316.127092 0000 0000 0 E: 1300099316.132067 0003 0035 2278 E: 1300099316.132078 0003 0036 27596 E: 1300099316.132088 0003 0000 2284 E: 1300099316.132089 0003 0001 27587 E: 1300099316.132091 0000 0000 0 E: 1300099316.137069 0003 0035 2276 E: 1300099316.137080 0003 0036 27598 E: 1300099316.137089 0003 0000 2282 E: 1300099316.137090 0003 0001 27589 E: 1300099316.137092 0000 0000 0 E: 1300099316.143068 0003 0035 2274 E: 1300099316.143079 0003 0036 27600 E: 1300099316.143088 0003 0000 2280 E: 1300099316.143090 0003 0001 27591 E: 1300099316.143092 0000 0000 0 E: 1300099316.148070 0003 0036 27602 E: 1300099316.148089 0003 0001 27593 E: 1300099316.148091 0000 0000 0 E: 1300099316.153069 0003 0035 2272 E: 1300099316.153080 0003 0036 27604 E: 1300099316.153089 0003 0000 2278 E: 1300099316.153091 0003 0001 27595 E: 1300099316.153092 0000 0000 0 E: 1300099316.158068 0003 0035 2270 E: 1300099316.158079 0003 0036 27606 E: 1300099316.158089 0003 0000 2276 E: 1300099316.158090 0003 0001 27597 E: 1300099316.158092 0000 0000 0 E: 1300099316.163071 0003 0035 2268 E: 1300099316.163083 0003 0036 27608 E: 1300099316.163093 0003 0000 2274 E: 1300099316.163094 0003 0001 27599 E: 1300099316.163096 0000 0000 0 E: 1300099316.168072 0003 0036 27610 E: 1300099316.168092 0003 0001 27601 E: 1300099316.168094 0000 0000 0 E: 1300099316.173066 0003 0035 2266 E: 1300099316.173077 0003 0036 27611 E: 1300099316.173087 0003 0000 2272 E: 1300099316.173088 0003 0001 27603 E: 1300099316.173090 0000 0000 0 E: 1300099316.178068 0003 0035 2264 E: 1300099316.178079 0003 0036 27613 E: 1300099316.178088 0003 0000 2270 E: 1300099316.178090 0003 0001 27605 E: 1300099316.178092 0000 0000 0 E: 1300099316.183069 0003 0036 27615 E: 1300099316.183089 0003 0001 27607 E: 1300099316.183091 0000 0000 0 E: 1300099316.188068 0003 0035 2262 E: 1300099316.188079 0003 0036 27617 E: 1300099316.188089 0003 0000 2268 E: 1300099316.188090 0003 0001 27609 E: 1300099316.188092 0000 0000 0 E: 1300099316.193067 0003 0035 2260 E: 1300099316.193087 0003 0000 2266 E: 1300099316.193089 0003 0001 27611 E: 1300099316.193091 0000 0000 0 E: 1300099316.199068 0003 0036 27619 E: 1300099316.199087 0003 0001 27613 E: 1300099316.199089 0000 0000 0 E: 1300099316.204056 0003 0035 2258 E: 1300099316.204067 0003 0036 27621 E: 1300099316.204076 0003 0000 2264 E: 1300099316.204078 0003 0001 27615 E: 1300099316.204080 0000 0000 0 E: 1300099316.214054 0003 0035 2256 E: 1300099316.214065 0003 0036 27623 E: 1300099316.214074 0003 0000 2262 E: 1300099316.214076 0003 0001 27617 E: 1300099316.214078 0000 0000 0 E: 1300099316.219067 0003 0035 2254 E: 1300099316.219086 0003 0000 2260 E: 1300099316.219089 0000 0000 0 E: 1300099316.224055 0003 0036 27625 E: 1300099316.224074 0003 0001 27619 E: 1300099316.224076 0000 0000 0 E: 1300099316.229066 0003 0035 2252 E: 1300099316.229077 0003 0036 27627 E: 1300099316.229086 0003 0000 2258 E: 1300099316.229088 0003 0001 27621 E: 1300099316.229090 0000 0000 0 E: 1300099316.239061 0003 0035 2250 E: 1300099316.239083 0003 0036 27629 E: 1300099316.239093 0003 0000 2256 E: 1300099316.239094 0003 0001 27623 E: 1300099316.239096 0000 0000 0 E: 1300099316.244058 0003 0036 27631 E: 1300099316.244080 0003 0001 27625 E: 1300099316.244082 0000 0000 0 E: 1300099316.249067 0003 0035 2248 E: 1300099316.249086 0003 0000 2254 E: 1300099316.249089 0000 0000 0 E: 1300099316.255067 0003 0036 27633 E: 1300099316.255087 0003 0001 27627 E: 1300099316.255089 0000 0000 0 E: 1300099316.260067 0003 0035 2246 E: 1300099316.260086 0003 0000 2252 E: 1300099316.260089 0000 0000 0 E: 1300099316.270067 0003 0035 2244 E: 1300099316.270079 0003 0036 27635 E: 1300099316.270088 0003 0000 2250 E: 1300099316.270090 0003 0001 27629 E: 1300099316.270091 0000 0000 0 E: 1300099316.275069 0003 0036 27637 E: 1300099316.275089 0003 0001 27631 E: 1300099316.275091 0000 0000 0 E: 1300099316.280066 0003 0035 2242 E: 1300099316.280077 0003 0036 27639 E: 1300099316.280086 0003 0000 2248 E: 1300099316.280088 0003 0001 27633 E: 1300099316.280089 0000 0000 0 E: 1300099316.290065 0003 0035 2240 E: 1300099316.290076 0003 0036 27641 E: 1300099316.290085 0003 0000 2246 E: 1300099316.290086 0003 0001 27635 E: 1300099316.290088 0000 0000 0 E: 1300099316.300063 0003 0035 2238 E: 1300099316.300074 0003 0036 27643 E: 1300099316.300084 0003 0000 2244 E: 1300099316.300085 0003 0001 27637 E: 1300099316.300087 0000 0000 0 E: 1300099316.305068 0003 0036 27645 E: 1300099316.305088 0003 0001 27639 E: 1300099316.305090 0000 0000 0 E: 1300099316.310065 0003 0035 2236 E: 1300099316.310085 0003 0000 2242 E: 1300099316.310087 0000 0000 0 E: 1300099316.321063 0003 0035 2234 E: 1300099316.321082 0003 0000 2240 E: 1300099316.321085 0000 0000 0 E: 1300099316.326066 0003 0036 27647 E: 1300099316.326085 0003 0001 27641 E: 1300099316.326087 0000 0000 0 E: 1300099316.331064 0003 0035 2232 E: 1300099316.331083 0003 0000 2238 E: 1300099316.331086 0000 0000 0 E: 1300099316.336069 0003 0036 27649 E: 1300099316.336089 0003 0001 27643 E: 1300099316.336091 0000 0000 0 E: 1300099316.346068 0003 0035 2230 E: 1300099316.346079 0003 0036 27651 E: 1300099316.346088 0003 0000 2236 E: 1300099316.346090 0003 0001 27645 E: 1300099316.346092 0000 0000 0 E: 1300099316.356064 0003 0035 2228 E: 1300099316.356083 0003 0000 2234 E: 1300099316.356086 0000 0000 0 E: 1300099316.361065 0003 0036 27653 E: 1300099316.361084 0003 0001 27647 E: 1300099316.361086 0000 0000 0 E: 1300099316.366063 0003 0035 2226 E: 1300099316.366083 0003 0000 2232 E: 1300099316.366086 0000 0000 0 E: 1300099316.377064 0003 0036 27655 E: 1300099316.377083 0003 0001 27649 E: 1300099316.377085 0000 0000 0 E: 1300099316.382064 0003 0035 2224 E: 1300099316.382075 0003 0036 27657 E: 1300099316.382084 0003 0000 2230 E: 1300099316.382085 0003 0001 27651 E: 1300099316.382087 0000 0000 0 E: 1300099316.392061 0003 0035 2222 E: 1300099316.392080 0003 0000 2228 E: 1300099316.392083 0000 0000 0 E: 1300099316.397064 0003 0036 27659 E: 1300099316.397084 0003 0001 27653 E: 1300099316.397086 0000 0000 0 E: 1300099316.407065 0003 0035 2220 E: 1300099316.407085 0003 0000 2226 E: 1300099316.407088 0000 0000 0 E: 1300099316.417062 0003 0036 27661 E: 1300099316.417082 0003 0001 27655 E: 1300099316.417083 0000 0000 0 E: 1300099316.422063 0003 0035 2218 E: 1300099316.422082 0003 0000 2224 E: 1300099316.422085 0000 0000 0 E: 1300099316.427063 0003 0036 27663 E: 1300099316.427082 0003 0001 27657 E: 1300099316.427084 0000 0000 0 E: 1300099316.438062 0003 0035 2216 E: 1300099316.438074 0003 0036 27665 E: 1300099316.438084 0003 0000 2222 E: 1300099316.438085 0003 0001 27659 E: 1300099316.438087 0000 0000 0 E: 1300099316.448061 0003 0036 27667 E: 1300099316.448081 0003 0001 27661 E: 1300099316.448083 0000 0000 0 E: 1300099316.453064 0003 0035 2214 E: 1300099316.453083 0003 0000 2220 E: 1300099316.453086 0000 0000 0 E: 1300099316.463063 0003 0036 27669 E: 1300099316.463083 0003 0001 27663 E: 1300099316.463085 0000 0000 0 E: 1300099316.468064 0003 0035 2212 E: 1300099316.468083 0003 0000 2218 E: 1300099316.468086 0000 0000 0 E: 1300099316.478062 0003 0036 27671 E: 1300099316.478081 0003 0001 27665 E: 1300099316.478083 0000 0000 0 E: 1300099316.483064 0003 0035 2210 E: 1300099316.483084 0003 0000 2216 E: 1300099316.483087 0000 0000 0 E: 1300099316.504049 0003 0035 2208 E: 1300099316.504068 0003 0000 2214 E: 1300099316.504071 0000 0000 0 E: 1300099316.509064 0003 0036 27673 E: 1300099316.509083 0003 0001 27667 E: 1300099316.509085 0000 0000 0 E: 1300099316.519059 0003 0035 2206 E: 1300099316.519079 0003 0000 2212 E: 1300099316.519082 0000 0000 0 E: 1300099316.524052 0003 0036 27675 E: 1300099316.524075 0003 0001 27669 E: 1300099316.524077 0000 0000 0 E: 1300099316.545059 0003 0035 2204 E: 1300099316.545073 0003 0036 27677 E: 1300099316.545082 0003 0000 2210 E: 1300099316.545083 0003 0001 27671 E: 1300099316.545085 0000 0000 0 E: 1300099316.565059 0003 0035 2201 E: 1300099316.565071 0003 0036 27679 E: 1300099316.565080 0003 0000 2207 E: 1300099316.565081 0003 0001 27673 E: 1300099316.565083 0000 0000 0 E: 1300099316.570061 0003 0035 2199 E: 1300099316.570080 0003 0000 2205 E: 1300099316.570083 0000 0000 0 E: 1300099316.580060 0003 0036 27681 E: 1300099316.580080 0003 0001 27675 E: 1300099316.580081 0000 0000 0 E: 1300099316.595058 0003 0035 2197 E: 1300099316.595078 0003 0000 2203 E: 1300099316.595081 0000 0000 0 E: 1300099316.606060 0003 0036 27683 E: 1300099316.606080 0003 0001 27677 E: 1300099316.606082 0000 0000 0 E: 1300099316.626058 0003 0035 2195 E: 1300099316.626078 0003 0000 2201 E: 1300099316.626081 0000 0000 0 E: 1300099316.641057 0003 0036 27685 E: 1300099316.641076 0003 0001 27679 E: 1300099316.641078 0000 0000 0 E: 1300099316.662058 0003 0035 2193 E: 1300099316.662078 0003 0000 2199 E: 1300099316.662081 0000 0000 0 E: 1300099316.682050 0003 0036 27687 E: 1300099316.682064 0003 0001 27681 E: 1300099316.682066 0000 0000 0 E: 1300099316.702057 0003 0035 2191 E: 1300099316.702076 0003 0000 2197 E: 1300099316.702079 0000 0000 0 E: 1300099316.723057 0003 0036 27689 E: 1300099316.723076 0003 0001 27683 E: 1300099316.723078 0000 0000 0 E: 1300099316.758057 0003 0036 27691 E: 1300099316.758077 0003 0001 27685 E: 1300099316.758079 0000 0000 0 E: 1300099316.768055 0003 0035 2189 E: 1300099316.768074 0003 0000 2195 E: 1300099316.768077 0000 0000 0 E: 1300099316.835055 0003 0036 27693 E: 1300099316.835075 0003 0001 27687 E: 1300099316.835076 0000 0000 0 E: 1300099316.850054 0003 0035 2187 E: 1300099316.850074 0003 0000 2193 E: 1300099316.850076 0000 0000 0 E: 1300099316.865055 0003 0036 27695 E: 1300099316.865075 0003 0001 27689 E: 1300099316.865077 0000 0000 0 E: 1300099316.921054 0003 0036 27697 E: 1300099316.921074 0003 0001 27691 E: 1300099316.921076 0000 0000 0 E: 1300099316.936052 0003 0035 2185 E: 1300099316.936072 0003 0000 2191 E: 1300099316.936075 0000 0000 0 E: 1300099317.048050 0003 0036 27699 E: 1300099317.048070 0003 0001 27693 E: 1300099317.048072 0000 0000 0 E: 1300099317.063050 0003 0035 2183 E: 1300099317.063069 0003 0000 2189 E: 1300099317.063072 0000 0000 0 E: 1300099317.196046 0003 0035 2181 E: 1300099317.196066 0003 0000 2187 E: 1300099317.196069 0000 0000 0 E: 1300099317.303046 0003 0036 27701 E: 1300099317.303067 0003 0001 27695 E: 1300099317.303069 0000 0000 0 E: 1300099317.414032 0003 0035 2179 E: 1300099317.414051 0003 0000 2185 E: 1300099317.414054 0000 0000 0 E: 1300099317.430041 0003 0039 -1 E: 1300099317.430054 0001 014a 0 E: 1300099317.430056 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/evemu/two-drag.evemu0000644000015600001650000020463212651522342025004 0ustar pbuserpbgroup00000000000000N: 3M-3M-MicroTouch-USB-controller I: 0003 0596 0502 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 80 73 02 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 32767 15 0 A: 01 0 32767 15 0 A: 2f 0 59 0 0 A: 30 0 32767 255 0 A: 31 0 32767 255 0 A: 34 0 1 0 0 A: 35 0 32767 15 0 A: 36 0 32767 15 0 A: 39 0 65535 0 0 E: 1300099359.361264 0003 002f 0 E: 1300099359.361277 0003 0039 8 E: 1300099359.361281 0003 0035 30108 E: 1300099359.361282 0003 0036 14683 E: 1300099359.361285 0003 0030 1323 E: 1300099359.361290 0001 014a 1 E: 1300099359.361293 0003 0000 30108 E: 1300099359.361295 0003 0001 14683 E: 1300099359.361296 0000 0000 0 E: 1300099359.366263 0003 0030 1356 E: 1300099359.366283 0000 0000 0 E: 1300099359.371263 0003 002f 1 E: 1300099359.371276 0003 0039 9 E: 1300099359.371279 0003 0035 29868 E: 1300099359.371280 0003 0036 19819 E: 1300099359.371293 0000 0000 0 E: 1300099359.386258 0003 002f 0 E: 1300099359.386269 0003 0035 30105 E: 1300099359.386290 0000 0000 0 E: 1300099359.391257 0003 0035 30102 E: 1300099359.391268 0003 0036 14681 E: 1300099359.391288 0000 0000 0 E: 1300099359.396256 0003 0035 30090 E: 1300099359.396267 0003 0036 14677 E: 1300099359.396275 0003 002f 1 E: 1300099359.396276 0003 0035 29865 E: 1300099359.396287 0003 0000 30099 E: 1300099359.396290 0000 0000 0 E: 1300099359.402256 0003 002f 0 E: 1300099359.402267 0003 0035 30060 E: 1300099359.402268 0003 0036 14674 E: 1300099359.402276 0003 002f 1 E: 1300099359.402276 0003 0035 29862 E: 1300099359.402287 0003 0000 30060 E: 1300099359.402289 0003 0001 14680 E: 1300099359.402291 0000 0000 0 E: 1300099359.407256 0003 002f 0 E: 1300099359.407266 0003 0035 30050 E: 1300099359.407268 0003 0036 14666 E: 1300099359.407275 0003 002f 1 E: 1300099359.407276 0003 0035 29849 E: 1300099359.407277 0003 0036 19817 E: 1300099359.407287 0003 0000 30057 E: 1300099359.407289 0003 0001 14676 E: 1300099359.407291 0000 0000 0 E: 1300099359.412257 0003 002f 0 E: 1300099359.412267 0003 0035 30018 E: 1300099359.412269 0003 0036 14663 E: 1300099359.412276 0003 002f 1 E: 1300099359.412277 0003 0035 29818 E: 1300099359.412278 0003 0036 19815 E: 1300099359.412288 0003 0000 30018 E: 1300099359.412290 0003 0001 14672 E: 1300099359.412292 0000 0000 0 E: 1300099359.417257 0003 002f 0 E: 1300099359.417268 0003 0035 30007 E: 1300099359.417270 0003 0036 14660 E: 1300099359.417277 0003 002f 1 E: 1300099359.417278 0003 0035 29808 E: 1300099359.417279 0003 0036 19812 E: 1300099359.417289 0003 0000 30015 E: 1300099359.417291 0003 0001 14669 E: 1300099359.417293 0000 0000 0 E: 1300099359.422255 0003 002f 0 E: 1300099359.422266 0003 0035 29972 E: 1300099359.422267 0003 0036 14656 E: 1300099359.422275 0003 002f 1 E: 1300099359.422275 0003 0035 29778 E: 1300099359.422277 0003 0036 19809 E: 1300099359.422287 0003 0000 29972 E: 1300099359.422288 0003 0001 14665 E: 1300099359.422290 0000 0000 0 E: 1300099359.427255 0003 002f 0 E: 1300099359.427265 0003 0035 29960 E: 1300099359.427267 0003 0036 14652 E: 1300099359.427274 0003 002f 1 E: 1300099359.427275 0003 0035 29766 E: 1300099359.427276 0003 0036 19806 E: 1300099359.427287 0003 0000 29969 E: 1300099359.427288 0003 0001 14661 E: 1300099359.427290 0000 0000 0 E: 1300099359.432255 0003 002f 0 E: 1300099359.432266 0003 0035 29924 E: 1300099359.432267 0003 0036 14649 E: 1300099359.432275 0003 002f 1 E: 1300099359.432275 0003 0035 29728 E: 1300099359.432277 0003 0036 19803 E: 1300099359.432287 0003 0000 29924 E: 1300099359.432289 0003 0001 14658 E: 1300099359.432290 0000 0000 0 E: 1300099359.437256 0003 002f 0 E: 1300099359.437266 0003 0035 29910 E: 1300099359.437268 0003 0036 14646 E: 1300099359.437275 0003 002f 1 E: 1300099359.437276 0003 0035 29715 E: 1300099359.437277 0003 0036 19801 E: 1300099359.437287 0003 0000 29920 E: 1300099359.437289 0003 0001 14655 E: 1300099359.437290 0000 0000 0 E: 1300099359.442263 0003 002f 0 E: 1300099359.442275 0003 0035 29868 E: 1300099359.442277 0003 0036 14644 E: 1300099359.442284 0003 002f 1 E: 1300099359.442285 0003 0035 29674 E: 1300099359.442286 0003 0036 19799 E: 1300099359.442297 0003 0000 29868 E: 1300099359.442298 0003 0001 14652 E: 1300099359.442300 0000 0000 0 E: 1300099359.447259 0003 002f 0 E: 1300099359.447270 0003 0035 29836 E: 1300099359.447278 0003 002f 1 E: 1300099359.447279 0003 0035 29642 E: 1300099359.447290 0003 0000 29836 E: 1300099359.447291 0003 0001 14650 E: 1300099359.447293 0000 0000 0 E: 1300099359.452259 0003 002f 0 E: 1300099359.452270 0003 0035 29770 E: 1300099359.452271 0003 0036 14642 E: 1300099359.452279 0003 002f 1 E: 1300099359.452280 0003 0035 29612 E: 1300099359.452291 0003 0000 29770 E: 1300099359.452292 0003 0001 14648 E: 1300099359.452294 0000 0000 0 E: 1300099359.458259 0003 002f 0 E: 1300099359.458270 0003 0035 29738 E: 1300099359.458278 0003 002f 1 E: 1300099359.458279 0003 0035 29580 E: 1300099359.458290 0003 0000 29738 E: 1300099359.458293 0000 0000 0 E: 1300099359.463248 0003 002f 0 E: 1300099359.463255 0003 0035 29674 E: 1300099359.463257 0003 0036 14643 E: 1300099359.463264 0003 002f 1 E: 1300099359.463265 0003 0035 29512 E: 1300099359.463267 0003 0036 19802 E: 1300099359.463277 0003 0000 29674 E: 1300099359.463279 0000 0000 0 E: 1300099359.468255 0003 002f 0 E: 1300099359.468266 0003 0035 29640 E: 1300099359.468267 0003 0036 14645 E: 1300099359.468275 0003 002f 1 E: 1300099359.468275 0003 0035 29444 E: 1300099359.468277 0003 0036 19809 E: 1300099359.468287 0003 0000 29640 E: 1300099359.468290 0000 0000 0 E: 1300099359.473249 0003 002f 0 E: 1300099359.473258 0003 0035 29574 E: 1300099359.473261 0003 0036 14653 E: 1300099359.473273 0003 002f 1 E: 1300099359.473274 0003 0035 29376 E: 1300099359.473276 0003 0036 19818 E: 1300099359.473286 0003 0000 29574 E: 1300099359.473290 0000 0000 0 E: 1300099359.478257 0003 002f 0 E: 1300099359.478269 0003 0035 29508 E: 1300099359.478271 0003 0036 14663 E: 1300099359.478279 0003 002f 1 E: 1300099359.478279 0003 0035 29308 E: 1300099359.478281 0003 0036 19829 E: 1300099359.478291 0003 0000 29508 E: 1300099359.478293 0003 0001 14655 E: 1300099359.478295 0000 0000 0 E: 1300099359.483266 0003 002f 0 E: 1300099359.483277 0003 0035 29442 E: 1300099359.483278 0003 0036 14671 E: 1300099359.483286 0003 002f 1 E: 1300099359.483286 0003 0035 29242 E: 1300099359.483288 0003 0036 19861 E: 1300099359.483291 0003 0030 1224 E: 1300099359.483299 0003 0000 29442 E: 1300099359.483301 0003 0001 14663 E: 1300099359.483302 0000 0000 0 E: 1300099359.488256 0003 002f 0 E: 1300099359.488266 0003 0035 29376 E: 1300099359.488268 0003 0036 14679 E: 1300099359.488275 0003 002f 1 E: 1300099359.488276 0003 0035 29176 E: 1300099359.488277 0003 0036 19869 E: 1300099359.488280 0003 0030 1191 E: 1300099359.488288 0003 0000 29376 E: 1300099359.488290 0003 0001 14671 E: 1300099359.488292 0000 0000 0 E: 1300099359.493257 0003 002f 0 E: 1300099359.493269 0003 0035 29308 E: 1300099359.493271 0003 0036 14690 E: 1300099359.493278 0003 002f 1 E: 1300099359.493279 0003 0035 29110 E: 1300099359.493280 0003 0036 19872 E: 1300099359.493290 0003 0000 29308 E: 1300099359.493292 0003 0001 14680 E: 1300099359.493294 0000 0000 0 E: 1300099359.498257 0003 002f 0 E: 1300099359.498267 0003 0035 29240 E: 1300099359.498269 0003 0036 14703 E: 1300099359.498276 0003 002f 1 E: 1300099359.498277 0003 0035 29078 E: 1300099359.498279 0003 0036 19881 E: 1300099359.498289 0003 0000 29240 E: 1300099359.498290 0003 0001 14691 E: 1300099359.498292 0000 0000 0 E: 1300099359.503254 0003 002f 0 E: 1300099359.503264 0003 0035 29208 E: 1300099359.503266 0003 0036 14714 E: 1300099359.503269 0003 0030 1224 E: 1300099359.503274 0003 002f 1 E: 1300099359.503275 0003 0035 29046 E: 1300099359.503277 0003 0036 19889 E: 1300099359.503287 0003 0000 29208 E: 1300099359.503288 0003 0001 14702 E: 1300099359.503290 0000 0000 0 E: 1300099359.508256 0003 002f 0 E: 1300099359.508266 0003 0035 29142 E: 1300099359.508268 0003 0036 14728 E: 1300099359.508271 0003 0030 1191 E: 1300099359.508277 0003 002f 1 E: 1300099359.508277 0003 0035 28978 E: 1300099359.508279 0003 0036 19900 E: 1300099359.508289 0003 0000 29142 E: 1300099359.508290 0003 0001 14715 E: 1300099359.508292 0000 0000 0 E: 1300099359.514259 0003 002f 0 E: 1300099359.514272 0003 0035 29074 E: 1300099359.514274 0003 0036 14742 E: 1300099359.514276 0003 0030 1323 E: 1300099359.514282 0003 002f 1 E: 1300099359.514316 0003 0035 28904 E: 1300099359.514318 0003 0036 19911 E: 1300099359.514329 0003 0000 29074 E: 1300099359.514331 0003 0001 14728 E: 1300099359.514332 0000 0000 0 E: 1300099359.519256 0003 002f 0 E: 1300099359.519268 0003 0035 29042 E: 1300099359.519270 0003 0036 14752 E: 1300099359.519273 0003 0030 1356 E: 1300099359.519278 0003 002f 1 E: 1300099359.519279 0003 0035 28834 E: 1300099359.519280 0003 0036 19923 E: 1300099359.519290 0003 0000 29042 E: 1300099359.519292 0003 0001 14740 E: 1300099359.519294 0000 0000 0 E: 1300099359.524255 0003 002f 0 E: 1300099359.524265 0003 0035 28972 E: 1300099359.524267 0003 0036 14764 E: 1300099359.524274 0003 002f 1 E: 1300099359.524275 0003 0035 28766 E: 1300099359.524276 0003 0036 19937 E: 1300099359.524286 0003 0000 28972 E: 1300099359.524288 0003 0001 14752 E: 1300099359.524290 0000 0000 0 E: 1300099359.529256 0003 002f 0 E: 1300099359.529266 0003 0035 28900 E: 1300099359.529268 0003 0036 14778 E: 1300099359.529275 0003 002f 1 E: 1300099359.529276 0003 0035 28698 E: 1300099359.529278 0003 0036 19951 E: 1300099359.529288 0003 0000 28900 E: 1300099359.529289 0003 0001 14765 E: 1300099359.529291 0000 0000 0 E: 1300099359.534256 0003 002f 0 E: 1300099359.534266 0003 0035 28830 E: 1300099359.534268 0003 0036 14811 E: 1300099359.534271 0003 0030 1224 E: 1300099359.534276 0003 002f 1 E: 1300099359.534277 0003 0035 28630 E: 1300099359.534279 0003 0036 19961 E: 1300099359.534289 0003 0000 28830 E: 1300099359.534290 0003 0001 14811 E: 1300099359.534292 0000 0000 0 E: 1300099359.539257 0003 002f 0 E: 1300099359.539267 0003 0035 28762 E: 1300099359.539269 0003 0036 14820 E: 1300099359.539272 0003 0030 1191 E: 1300099359.539277 0003 002f 1 E: 1300099359.539278 0003 0035 28564 E: 1300099359.539279 0003 0036 19964 E: 1300099359.539290 0003 0000 28762 E: 1300099359.539291 0003 0001 14813 E: 1300099359.539293 0000 0000 0 E: 1300099359.544267 0003 002f 0 E: 1300099359.544274 0003 0035 28692 E: 1300099359.544276 0003 0036 14829 E: 1300099359.544284 0003 002f 1 E: 1300099359.544285 0003 0035 28496 E: 1300099359.544286 0003 0036 19971 E: 1300099359.544297 0003 0000 28692 E: 1300099359.544298 0003 0001 14821 E: 1300099359.544300 0000 0000 0 E: 1300099359.549256 0003 002f 0 E: 1300099359.549266 0003 0035 28626 E: 1300099359.549268 0003 0036 14837 E: 1300099359.549271 0003 0030 1323 E: 1300099359.549276 0003 002f 1 E: 1300099359.549277 0003 0035 28424 E: 1300099359.549278 0003 0036 19974 E: 1300099359.549288 0003 0000 28626 E: 1300099359.549290 0003 0001 14829 E: 1300099359.549292 0000 0000 0 E: 1300099359.554256 0003 002f 0 E: 1300099359.554267 0003 0035 28558 E: 1300099359.554269 0003 0036 14840 E: 1300099359.554271 0003 0030 1356 E: 1300099359.554277 0003 002f 1 E: 1300099359.554277 0003 0035 28350 E: 1300099359.554279 0003 0036 19977 E: 1300099359.554289 0003 0000 28558 E: 1300099359.554290 0003 0001 14831 E: 1300099359.554292 0000 0000 0 E: 1300099359.559255 0003 002f 0 E: 1300099359.559266 0003 0035 28484 E: 1300099359.559268 0003 0036 14848 E: 1300099359.559270 0003 0030 1224 E: 1300099359.559276 0003 002f 1 E: 1300099359.559276 0003 0035 28286 E: 1300099359.559278 0003 0036 19979 E: 1300099359.559288 0003 0000 28484 E: 1300099359.559290 0003 0001 14839 E: 1300099359.559291 0000 0000 0 E: 1300099359.564255 0003 002f 0 E: 1300099359.564265 0003 0035 28412 E: 1300099359.564267 0003 0036 14851 E: 1300099359.564270 0003 0030 1191 E: 1300099359.564275 0003 002f 1 E: 1300099359.564276 0003 0035 28218 E: 1300099359.564278 0003 0036 19981 E: 1300099359.564288 0003 0000 28412 E: 1300099359.564289 0003 0001 14842 E: 1300099359.564291 0000 0000 0 E: 1300099359.570256 0003 002f 0 E: 1300099359.570267 0003 0035 28340 E: 1300099359.570268 0003 0036 14860 E: 1300099359.570276 0003 002f 1 E: 1300099359.570276 0003 0035 28148 E: 1300099359.570278 0003 0036 19983 E: 1300099359.570288 0003 0000 28340 E: 1300099359.570290 0003 0001 14851 E: 1300099359.570291 0000 0000 0 E: 1300099359.575254 0003 002f 0 E: 1300099359.575264 0003 0035 28276 E: 1300099359.575266 0003 0036 14862 E: 1300099359.575274 0003 002f 1 E: 1300099359.575274 0003 0035 28078 E: 1300099359.575285 0003 0000 28276 E: 1300099359.575287 0003 0001 14853 E: 1300099359.575289 0000 0000 0 E: 1300099359.580256 0003 002f 0 E: 1300099359.580266 0003 0035 28208 E: 1300099359.580268 0003 0036 14865 E: 1300099359.580271 0003 0030 1323 E: 1300099359.580276 0003 002f 1 E: 1300099359.580277 0003 0035 28002 E: 1300099359.580279 0003 0036 19981 E: 1300099359.580281 0003 0030 1323 E: 1300099359.580289 0003 0000 28208 E: 1300099359.580291 0003 0001 14856 E: 1300099359.580293 0000 0000 0 E: 1300099359.585254 0003 002f 0 E: 1300099359.585264 0003 0035 28136 E: 1300099359.585266 0003 0036 14868 E: 1300099359.585268 0003 0030 1356 E: 1300099359.585274 0003 002f 1 E: 1300099359.585274 0003 0035 27932 E: 1300099359.585278 0003 0030 1265 E: 1300099359.585286 0003 0000 28136 E: 1300099359.585288 0003 0001 14859 E: 1300099359.585289 0000 0000 0 E: 1300099359.590245 0003 002f 0 E: 1300099359.590255 0003 0035 28064 E: 1300099359.590257 0003 0036 14870 E: 1300099359.590265 0003 002f 1 E: 1300099359.590265 0003 0035 27856 E: 1300099359.590267 0003 0036 19979 E: 1300099359.590270 0003 0030 1221 E: 1300099359.590278 0003 0000 28064 E: 1300099359.590280 0003 0001 14861 E: 1300099359.590281 0000 0000 0 E: 1300099359.595257 0003 002f 0 E: 1300099359.595269 0003 0035 27988 E: 1300099359.595271 0003 0036 14872 E: 1300099359.595274 0003 0030 1224 E: 1300099359.595279 0003 002f 1 E: 1300099359.595280 0003 0035 27780 E: 1300099359.595282 0003 0036 19976 E: 1300099359.595284 0003 0030 1279 E: 1300099359.595292 0003 0000 27988 E: 1300099359.595294 0003 0001 14863 E: 1300099359.595295 0000 0000 0 E: 1300099359.600258 0003 002f 0 E: 1300099359.600269 0003 0035 27914 E: 1300099359.600271 0003 0036 14873 E: 1300099359.600274 0003 0030 1191 E: 1300099359.600279 0003 002f 1 E: 1300099359.600280 0003 0035 27710 E: 1300099359.600281 0003 0036 19966 E: 1300099359.600284 0003 0030 1323 E: 1300099359.600292 0003 0000 27914 E: 1300099359.600294 0003 0001 14865 E: 1300099359.600295 0000 0000 0 E: 1300099359.605254 0003 002f 0 E: 1300099359.605265 0003 0035 27840 E: 1300099359.605269 0003 0030 1323 E: 1300099359.605274 0003 002f 1 E: 1300099359.605275 0003 0035 27634 E: 1300099359.605276 0003 0036 19956 E: 1300099359.605279 0003 0030 1356 E: 1300099359.605287 0003 0000 27840 E: 1300099359.605289 0003 0001 14867 E: 1300099359.605290 0000 0000 0 E: 1300099359.610256 0003 002f 0 E: 1300099359.610267 0003 0035 27766 E: 1300099359.610271 0003 0030 1356 E: 1300099359.610276 0003 002f 1 E: 1300099359.610277 0003 0035 27562 E: 1300099359.610279 0003 0036 19947 E: 1300099359.610289 0003 0000 27766 E: 1300099359.610292 0000 0000 0 E: 1300099359.615255 0003 002f 0 E: 1300099359.615265 0003 0035 27694 E: 1300099359.615273 0003 002f 1 E: 1300099359.615274 0003 0035 27490 E: 1300099359.615276 0003 0036 19944 E: 1300099359.615286 0003 0000 27694 E: 1300099359.615288 0000 0000 0 E: 1300099359.620251 0003 002f 0 E: 1300099359.620262 0003 0035 27618 E: 1300099359.620270 0003 002f 1 E: 1300099359.620271 0003 0035 27418 E: 1300099359.620272 0003 0036 19940 E: 1300099359.620275 0003 0030 1224 E: 1300099359.620283 0003 0000 27618 E: 1300099359.620286 0000 0000 0 E: 1300099359.625254 0003 002f 0 E: 1300099359.625264 0003 0035 27544 E: 1300099359.625272 0003 002f 1 E: 1300099359.625273 0003 0035 27348 E: 1300099359.625274 0003 0036 19931 E: 1300099359.625277 0003 0030 1282 E: 1300099359.625285 0003 0000 27544 E: 1300099359.625288 0000 0000 0 E: 1300099359.631259 0003 002f 0 E: 1300099359.631271 0003 0035 27470 E: 1300099359.631275 0003 0030 1224 E: 1300099359.631280 0003 002f 1 E: 1300099359.631280 0003 0035 27274 E: 1300099359.631282 0003 0036 19928 E: 1300099359.631285 0003 0030 1325 E: 1300099359.631293 0003 0000 27470 E: 1300099359.631296 0000 0000 0 E: 1300099359.636254 0003 002f 0 E: 1300099359.636264 0003 0035 27398 E: 1300099359.636268 0003 0030 1191 E: 1300099359.636273 0003 002f 1 E: 1300099359.636274 0003 0035 27202 E: 1300099359.636276 0003 0036 19920 E: 1300099359.636278 0003 0030 1357 E: 1300099359.636287 0003 0000 27398 E: 1300099359.636289 0000 0000 0 E: 1300099359.641252 0003 002f 0 E: 1300099359.641263 0003 0035 27326 E: 1300099359.641266 0003 0030 1323 E: 1300099359.641272 0003 002f 1 E: 1300099359.641272 0003 0035 27126 E: 1300099359.641274 0003 0036 19917 E: 1300099359.641284 0003 0000 27326 E: 1300099359.641287 0000 0000 0 E: 1300099359.646255 0003 002f 0 E: 1300099359.646266 0003 0035 27252 E: 1300099359.646269 0003 0030 1356 E: 1300099359.646275 0003 002f 1 E: 1300099359.646275 0003 0035 27048 E: 1300099359.646277 0003 0036 19914 E: 1300099359.646287 0003 0000 27252 E: 1300099359.646290 0000 0000 0 E: 1300099359.651251 0003 002f 0 E: 1300099359.651261 0003 0035 27176 E: 1300099359.651270 0003 002f 1 E: 1300099359.651271 0003 0035 26974 E: 1300099359.651274 0003 0030 1224 E: 1300099359.651282 0003 0000 27176 E: 1300099359.651285 0000 0000 0 E: 1300099359.656254 0003 002f 0 E: 1300099359.656264 0003 0035 27096 E: 1300099359.656268 0003 0030 1224 E: 1300099359.656273 0003 002f 1 E: 1300099359.656273 0003 0035 26900 E: 1300099359.656277 0003 0030 1282 E: 1300099359.656285 0003 0000 27096 E: 1300099359.656288 0000 0000 0 E: 1300099359.661255 0003 002f 0 E: 1300099359.661264 0003 0035 27018 E: 1300099359.661268 0003 0030 1191 E: 1300099359.661273 0003 002f 1 E: 1300099359.661274 0003 0035 26828 E: 1300099359.661277 0003 0030 1325 E: 1300099359.661286 0003 0000 27018 E: 1300099359.661289 0000 0000 0 E: 1300099359.666253 0003 002f 0 E: 1300099359.666263 0003 0035 26942 E: 1300099359.666272 0003 002f 1 E: 1300099359.666272 0003 0035 26754 E: 1300099359.666276 0003 0030 1357 E: 1300099359.666284 0003 0000 26942 E: 1300099359.666287 0000 0000 0 E: 1300099359.671253 0003 002f 0 E: 1300099359.671263 0003 0035 26866 E: 1300099359.671271 0003 002f 1 E: 1300099359.671272 0003 0035 26676 E: 1300099359.671283 0003 0000 26866 E: 1300099359.671286 0000 0000 0 E: 1300099359.676255 0003 002f 0 E: 1300099359.676267 0003 0035 26794 E: 1300099359.676268 0003 0036 14875 E: 1300099359.676271 0003 0030 1323 E: 1300099359.676277 0003 002f 1 E: 1300099359.676277 0003 0035 26602 E: 1300099359.676281 0003 0030 1224 E: 1300099359.676289 0003 0000 26794 E: 1300099359.676291 0003 0001 14869 E: 1300099359.676292 0000 0000 0 E: 1300099359.681252 0003 002f 0 E: 1300099359.681262 0003 0035 26716 E: 1300099359.681264 0003 0036 14878 E: 1300099359.681267 0003 0030 1356 E: 1300099359.681272 0003 002f 1 E: 1300099359.681272 0003 0035 26524 E: 1300099359.681276 0003 0030 1191 E: 1300099359.681284 0003 0000 26716 E: 1300099359.681286 0003 0001 14871 E: 1300099359.681288 0000 0000 0 E: 1300099359.687252 0003 002f 0 E: 1300099359.687262 0003 0035 26638 E: 1300099359.687264 0003 0036 14885 E: 1300099359.687267 0003 0030 1224 E: 1300099359.687272 0003 002f 1 E: 1300099359.687273 0003 0035 26450 E: 1300099359.687275 0003 0036 19916 E: 1300099359.687285 0003 0000 26638 E: 1300099359.687286 0003 0001 14874 E: 1300099359.687288 0000 0000 0 E: 1300099359.692252 0003 002f 0 E: 1300099359.692262 0003 0035 26564 E: 1300099359.692264 0003 0036 14893 E: 1300099359.692267 0003 0030 1191 E: 1300099359.692272 0003 002f 1 E: 1300099359.692273 0003 0035 26378 E: 1300099359.692274 0003 0036 19918 E: 1300099359.692277 0003 0030 1323 E: 1300099359.692285 0003 0000 26564 E: 1300099359.692286 0003 0001 14883 E: 1300099359.692288 0000 0000 0 E: 1300099359.697254 0003 002f 0 E: 1300099359.697264 0003 0035 26488 E: 1300099359.697266 0003 0036 14902 E: 1300099359.697269 0003 0030 1323 E: 1300099359.697274 0003 002f 1 E: 1300099359.697274 0003 0035 26302 E: 1300099359.697276 0003 0036 19925 E: 1300099359.697279 0003 0030 1356 E: 1300099359.697287 0003 0000 26488 E: 1300099359.697288 0003 0001 14892 E: 1300099359.697290 0000 0000 0 E: 1300099359.702251 0003 002f 0 E: 1300099359.702261 0003 0035 26416 E: 1300099359.702263 0003 0036 14913 E: 1300099359.702266 0003 0030 1356 E: 1300099359.702271 0003 002f 1 E: 1300099359.702272 0003 0035 26226 E: 1300099359.702273 0003 0036 19928 E: 1300099359.702276 0003 0030 1224 E: 1300099359.702284 0003 0000 26416 E: 1300099359.702286 0003 0001 14902 E: 1300099359.702287 0000 0000 0 E: 1300099359.707245 0003 002f 0 E: 1300099359.707253 0003 0035 26342 E: 1300099359.707255 0003 0036 14925 E: 1300099359.707268 0003 002f 1 E: 1300099359.707269 0003 0035 26148 E: 1300099359.707271 0003 0036 19938 E: 1300099359.707273 0003 0030 1191 E: 1300099359.707282 0003 0000 26342 E: 1300099359.707284 0003 0001 14913 E: 1300099359.707286 0000 0000 0 E: 1300099359.712253 0003 002f 0 E: 1300099359.712265 0003 0035 26266 E: 1300099359.712267 0003 0036 14936 E: 1300099359.712275 0003 002f 1 E: 1300099359.712275 0003 0035 26072 E: 1300099359.712277 0003 0036 19949 E: 1300099359.712287 0003 0000 26266 E: 1300099359.712288 0003 0001 14924 E: 1300099359.712290 0000 0000 0 E: 1300099359.717253 0003 002f 0 E: 1300099359.717265 0003 0035 26190 E: 1300099359.717267 0003 0036 14948 E: 1300099359.717274 0003 002f 1 E: 1300099359.717275 0003 0035 25998 E: 1300099359.717276 0003 0036 19960 E: 1300099359.717286 0003 0000 26190 E: 1300099359.717288 0003 0001 14936 E: 1300099359.717289 0000 0000 0 E: 1300099359.722253 0003 002f 0 E: 1300099359.722263 0003 0035 26114 E: 1300099359.722265 0003 0036 14981 E: 1300099359.722273 0003 002f 1 E: 1300099359.722273 0003 0035 25922 E: 1300099359.722275 0003 0036 19972 E: 1300099359.722285 0003 0000 26114 E: 1300099359.722287 0003 0001 14981 E: 1300099359.722289 0000 0000 0 E: 1300099359.727244 0003 002f 0 E: 1300099359.727248 0003 0035 26038 E: 1300099359.727250 0003 0036 14983 E: 1300099359.727258 0003 002f 1 E: 1300099359.727259 0003 0035 25848 E: 1300099359.727260 0003 0036 19985 E: 1300099359.727271 0003 0000 26038 E: 1300099359.727273 0000 0000 0 E: 1300099359.732252 0003 002f 0 E: 1300099359.732262 0003 0035 25964 E: 1300099359.732264 0003 0036 14994 E: 1300099359.732271 0003 002f 1 E: 1300099359.732272 0003 0035 25766 E: 1300099359.732274 0003 0036 20015 E: 1300099359.732276 0003 0030 1323 E: 1300099359.732285 0003 0000 25964 E: 1300099359.732286 0003 0001 14984 E: 1300099359.732288 0000 0000 0 E: 1300099359.737253 0003 002f 0 E: 1300099359.737263 0003 0035 25890 E: 1300099359.737265 0003 0036 15006 E: 1300099359.737273 0003 002f 1 E: 1300099359.737273 0003 0035 25690 E: 1300099359.737275 0003 0036 20023 E: 1300099359.737277 0003 0030 1356 E: 1300099359.737286 0003 0000 25890 E: 1300099359.737287 0003 0001 14995 E: 1300099359.737289 0000 0000 0 E: 1300099359.742252 0003 002f 0 E: 1300099359.742262 0003 0035 25814 E: 1300099359.742264 0003 0036 15017 E: 1300099359.742271 0003 002f 1 E: 1300099359.742272 0003 0035 25608 E: 1300099359.742273 0003 0036 20031 E: 1300099359.742276 0003 0030 1224 E: 1300099359.742284 0003 0000 25814 E: 1300099359.742286 0003 0001 15006 E: 1300099359.742287 0000 0000 0 E: 1300099359.748253 0003 002f 0 E: 1300099359.748265 0003 0035 25736 E: 1300099359.748267 0003 0036 15031 E: 1300099359.748275 0003 002f 1 E: 1300099359.748275 0003 0035 25534 E: 1300099359.748277 0003 0036 20041 E: 1300099359.748282 0003 0030 1191 E: 1300099359.748290 0003 0000 25736 E: 1300099359.748292 0003 0001 15018 E: 1300099359.748294 0000 0000 0 E: 1300099359.753253 0003 002f 0 E: 1300099359.753265 0003 0035 25662 E: 1300099359.753267 0003 0036 15045 E: 1300099359.753275 0003 002f 1 E: 1300099359.753275 0003 0035 25458 E: 1300099359.753277 0003 0036 20052 E: 1300099359.753279 0003 0030 1323 E: 1300099359.753287 0003 0000 25662 E: 1300099359.753289 0003 0001 15031 E: 1300099359.753291 0000 0000 0 E: 1300099359.758251 0003 002f 0 E: 1300099359.758261 0003 0035 25584 E: 1300099359.758263 0003 0036 15055 E: 1300099359.758270 0003 002f 1 E: 1300099359.758271 0003 0035 25380 E: 1300099359.758273 0003 0036 20060 E: 1300099359.758275 0003 0030 1356 E: 1300099359.758283 0003 0000 25584 E: 1300099359.758285 0003 0001 15043 E: 1300099359.758287 0000 0000 0 E: 1300099359.763254 0003 002f 0 E: 1300099359.763264 0003 0035 25510 E: 1300099359.763266 0003 0036 15064 E: 1300099359.763274 0003 002f 1 E: 1300099359.763274 0003 0035 25300 E: 1300099359.763276 0003 0036 20072 E: 1300099359.763286 0003 0000 25510 E: 1300099359.763288 0003 0001 15053 E: 1300099359.763289 0000 0000 0 E: 1300099359.768250 0003 002f 0 E: 1300099359.768260 0003 0035 25432 E: 1300099359.768262 0003 0036 15071 E: 1300099359.768269 0003 002f 1 E: 1300099359.768270 0003 0035 25220 E: 1300099359.768272 0003 0036 20083 E: 1300099359.768282 0003 0000 25432 E: 1300099359.768283 0003 0001 15062 E: 1300099359.768285 0000 0000 0 E: 1300099359.773253 0003 002f 0 E: 1300099359.773263 0003 0035 25354 E: 1300099359.773265 0003 0036 15079 E: 1300099359.773273 0003 002f 1 E: 1300099359.773273 0003 0035 25144 E: 1300099359.773275 0003 0036 20086 E: 1300099359.773285 0003 0000 25354 E: 1300099359.773287 0003 0001 15070 E: 1300099359.773288 0000 0000 0 E: 1300099359.778253 0003 002f 0 E: 1300099359.778263 0003 0035 25274 E: 1300099359.778265 0003 0036 15082 E: 1300099359.778273 0003 002f 1 E: 1300099359.778273 0003 0035 25064 E: 1300099359.778275 0003 0036 20096 E: 1300099359.778285 0003 0000 25274 E: 1300099359.778287 0003 0001 15073 E: 1300099359.778288 0000 0000 0 E: 1300099359.783255 0003 002f 0 E: 1300099359.783267 0003 0035 25194 E: 1300099359.783268 0003 0036 15091 E: 1300099359.783276 0003 002f 1 E: 1300099359.783277 0003 0035 24988 E: 1300099359.783278 0003 0036 20105 E: 1300099359.783288 0003 0000 25194 E: 1300099359.783290 0003 0001 15082 E: 1300099359.783292 0000 0000 0 E: 1300099359.788250 0003 002f 0 E: 1300099359.788263 0003 0035 25118 E: 1300099359.788265 0003 0036 15099 E: 1300099359.788272 0003 002f 1 E: 1300099359.788272 0003 0035 24908 E: 1300099359.788274 0003 0036 20116 E: 1300099359.788284 0003 0000 25118 E: 1300099359.788286 0003 0001 15090 E: 1300099359.788288 0000 0000 0 E: 1300099359.793252 0003 002f 0 E: 1300099359.793263 0003 0035 25040 E: 1300099359.793265 0003 0036 15101 E: 1300099359.793273 0003 002f 1 E: 1300099359.793273 0003 0035 24828 E: 1300099359.793275 0003 0036 20124 E: 1300099359.793285 0003 0000 25040 E: 1300099359.793287 0003 0001 15092 E: 1300099359.793288 0000 0000 0 E: 1300099359.798250 0003 002f 0 E: 1300099359.798262 0003 0035 24960 E: 1300099359.798264 0003 0036 15104 E: 1300099359.798272 0003 002f 1 E: 1300099359.798272 0003 0035 24750 E: 1300099359.798274 0003 0036 20126 E: 1300099359.798284 0003 0000 24960 E: 1300099359.798286 0003 0001 15095 E: 1300099359.798287 0000 0000 0 E: 1300099359.803251 0003 002f 0 E: 1300099359.803261 0003 0035 24878 E: 1300099359.803263 0003 0036 15113 E: 1300099359.803271 0003 002f 1 E: 1300099359.803271 0003 0035 24670 E: 1300099359.803273 0003 0036 20134 E: 1300099359.803283 0003 0000 24878 E: 1300099359.803285 0003 0001 15104 E: 1300099359.803286 0000 0000 0 E: 1300099359.809251 0003 002f 0 E: 1300099359.809263 0003 0035 24796 E: 1300099359.809264 0003 0036 15115 E: 1300099359.809272 0003 002f 1 E: 1300099359.809273 0003 0035 24592 E: 1300099359.809274 0003 0036 20136 E: 1300099359.809284 0003 0000 24796 E: 1300099359.809286 0003 0001 15106 E: 1300099359.809288 0000 0000 0 E: 1300099359.814250 0003 002f 0 E: 1300099359.814263 0003 0035 24718 E: 1300099359.814272 0003 002f 1 E: 1300099359.814272 0003 0035 24510 E: 1300099359.814274 0003 0036 20138 E: 1300099359.814284 0003 0000 24718 E: 1300099359.814286 0003 0001 15108 E: 1300099359.814287 0000 0000 0 E: 1300099359.819249 0003 002f 0 E: 1300099359.819259 0003 0035 24638 E: 1300099359.819268 0003 002f 1 E: 1300099359.819269 0003 0035 24430 E: 1300099359.819270 0003 0036 20140 E: 1300099359.819280 0003 0000 24638 E: 1300099359.819282 0003 0001 15109 E: 1300099359.819284 0000 0000 0 E: 1300099359.824241 0003 002f 0 E: 1300099359.824249 0003 0035 24560 E: 1300099359.824251 0003 0036 15117 E: 1300099359.824263 0003 002f 1 E: 1300099359.824264 0003 0035 24348 E: 1300099359.824265 0003 0036 20147 E: 1300099359.824276 0003 0000 24560 E: 1300099359.824279 0003 0001 15111 E: 1300099359.824281 0000 0000 0 E: 1300099359.829250 0003 002f 0 E: 1300099359.829262 0003 0035 24476 E: 1300099359.829264 0003 0036 15120 E: 1300099359.829271 0003 002f 1 E: 1300099359.829272 0003 0035 24264 E: 1300099359.829273 0003 0036 20149 E: 1300099359.829283 0003 0000 24476 E: 1300099359.829285 0003 0001 15113 E: 1300099359.829287 0000 0000 0 E: 1300099359.834256 0003 002f 0 E: 1300099359.834268 0003 0035 24394 E: 1300099359.834270 0003 0036 15123 E: 1300099359.834277 0003 002f 1 E: 1300099359.834278 0003 0035 24186 E: 1300099359.834279 0003 0036 20152 E: 1300099359.834289 0003 0000 24394 E: 1300099359.834291 0003 0001 15115 E: 1300099359.834293 0000 0000 0 E: 1300099359.839249 0003 002f 0 E: 1300099359.839259 0003 0035 24310 E: 1300099359.839261 0003 0036 15126 E: 1300099359.839268 0003 002f 1 E: 1300099359.839268 0003 0035 24104 E: 1300099359.839270 0003 0036 20159 E: 1300099359.839280 0003 0000 24310 E: 1300099359.839282 0003 0001 15117 E: 1300099359.839284 0000 0000 0 E: 1300099359.844247 0003 002f 0 E: 1300099359.844258 0003 0035 24232 E: 1300099359.844260 0003 0036 15127 E: 1300099359.844267 0003 002f 1 E: 1300099359.844268 0003 0035 24022 E: 1300099359.844269 0003 0036 20162 E: 1300099359.844279 0003 0000 24232 E: 1300099359.844281 0003 0001 15119 E: 1300099359.844283 0000 0000 0 E: 1300099359.849249 0003 002f 0 E: 1300099359.849259 0003 0035 24150 E: 1300099359.849268 0003 002f 1 E: 1300099359.849269 0003 0035 23938 E: 1300099359.849270 0003 0036 20169 E: 1300099359.849280 0003 0000 24150 E: 1300099359.849282 0003 0001 15121 E: 1300099359.849284 0000 0000 0 E: 1300099359.854250 0003 002f 0 E: 1300099359.854260 0003 0035 24068 E: 1300099359.854269 0003 002f 1 E: 1300099359.854269 0003 0035 23858 E: 1300099359.854271 0003 0036 20172 E: 1300099359.854281 0003 0000 24068 E: 1300099359.854284 0000 0000 0 E: 1300099359.859256 0003 002f 0 E: 1300099359.859266 0003 0035 23984 E: 1300099359.859274 0003 002f 1 E: 1300099359.859275 0003 0035 23776 E: 1300099359.859277 0003 0036 20179 E: 1300099359.859287 0003 0000 23984 E: 1300099359.859290 0000 0000 0 E: 1300099359.865251 0003 002f 0 E: 1300099359.865262 0003 0035 23902 E: 1300099359.865271 0003 002f 1 E: 1300099359.865271 0003 0035 23696 E: 1300099359.865273 0003 0036 20182 E: 1300099359.865283 0003 0000 23902 E: 1300099359.865286 0000 0000 0 E: 1300099359.870250 0003 002f 0 E: 1300099359.870260 0003 0035 23822 E: 1300099359.870269 0003 002f 1 E: 1300099359.870269 0003 0035 23616 E: 1300099359.870271 0003 0036 20185 E: 1300099359.870281 0003 0000 23822 E: 1300099359.870284 0000 0000 0 E: 1300099359.875247 0003 002f 0 E: 1300099359.875258 0003 0035 23740 E: 1300099359.875259 0003 0036 15124 E: 1300099359.875267 0003 002f 1 E: 1300099359.875267 0003 0035 23530 E: 1300099359.875269 0003 0036 20193 E: 1300099359.875279 0003 0000 23740 E: 1300099359.875282 0000 0000 0 E: 1300099359.880250 0003 002f 0 E: 1300099359.880261 0003 0035 23656 E: 1300099359.880262 0003 0036 15121 E: 1300099359.880270 0003 002f 1 E: 1300099359.880270 0003 0035 23446 E: 1300099359.880272 0003 0036 20196 E: 1300099359.880282 0003 0000 23656 E: 1300099359.880285 0000 0000 0 E: 1300099359.885248 0003 002f 0 E: 1300099359.885258 0003 0035 23570 E: 1300099359.885260 0003 0036 15119 E: 1300099359.885267 0003 002f 1 E: 1300099359.885268 0003 0035 23360 E: 1300099359.885270 0003 0036 20199 E: 1300099359.885280 0003 0000 23570 E: 1300099359.885282 0000 0000 0 E: 1300099359.890249 0003 002f 0 E: 1300099359.890260 0003 0035 23486 E: 1300099359.890261 0003 0036 15117 E: 1300099359.890269 0003 002f 1 E: 1300099359.890270 0003 0035 23282 E: 1300099359.890271 0003 0036 20202 E: 1300099359.890281 0003 0000 23486 E: 1300099359.890284 0000 0000 0 E: 1300099359.895248 0003 002f 0 E: 1300099359.895258 0003 0035 23402 E: 1300099359.895266 0003 002f 1 E: 1300099359.895267 0003 0035 23198 E: 1300099359.895268 0003 0036 20204 E: 1300099359.895279 0003 0000 23402 E: 1300099359.895281 0000 0000 0 E: 1300099359.900250 0003 002f 0 E: 1300099359.900261 0003 0035 23320 E: 1300099359.900262 0003 0036 15114 E: 1300099359.900270 0003 002f 1 E: 1300099359.900270 0003 0035 23116 E: 1300099359.900272 0003 0036 20206 E: 1300099359.900282 0003 0000 23320 E: 1300099359.900284 0003 0001 15119 E: 1300099359.900286 0000 0000 0 E: 1300099359.905247 0003 002f 0 E: 1300099359.905258 0003 0035 23238 E: 1300099359.905259 0003 0036 15112 E: 1300099359.905267 0003 002f 1 E: 1300099359.905267 0003 0035 23030 E: 1300099359.905269 0003 0036 20208 E: 1300099359.905279 0003 0000 23238 E: 1300099359.905281 0003 0001 15117 E: 1300099359.905283 0000 0000 0 E: 1300099359.910252 0003 002f 0 E: 1300099359.910264 0003 0035 23154 E: 1300099359.910265 0003 0036 15109 E: 1300099359.910273 0003 002f 1 E: 1300099359.910273 0003 0035 22950 E: 1300099359.910275 0003 0036 20209 E: 1300099359.910285 0003 0000 23154 E: 1300099359.910286 0003 0001 15115 E: 1300099359.910288 0000 0000 0 E: 1300099359.915247 0003 002f 0 E: 1300099359.915257 0003 0035 23068 E: 1300099359.915259 0003 0036 15107 E: 1300099359.915267 0003 002f 1 E: 1300099359.915267 0003 0035 22870 E: 1300099359.915278 0003 0000 23068 E: 1300099359.915280 0003 0001 15113 E: 1300099359.915282 0000 0000 0 E: 1300099359.921250 0003 002f 0 E: 1300099359.921261 0003 0035 22984 E: 1300099359.921263 0003 0036 15105 E: 1300099359.921271 0003 002f 1 E: 1300099359.921271 0003 0035 22792 E: 1300099359.921283 0003 0000 22984 E: 1300099359.921284 0003 0001 15111 E: 1300099359.921286 0000 0000 0 E: 1300099359.926250 0003 002f 0 E: 1300099359.926262 0003 0035 22904 E: 1300099359.926264 0003 0036 15102 E: 1300099359.926272 0003 002f 1 E: 1300099359.926272 0003 0035 22710 E: 1300099359.926283 0003 0000 22904 E: 1300099359.926285 0003 0001 15108 E: 1300099359.926287 0000 0000 0 E: 1300099359.931250 0003 002f 0 E: 1300099359.931261 0003 0035 22824 E: 1300099359.931263 0003 0036 15099 E: 1300099359.931270 0003 002f 1 E: 1300099359.931270 0003 0035 22626 E: 1300099359.931272 0003 0036 20206 E: 1300099359.931282 0003 0000 22824 E: 1300099359.931284 0003 0001 15105 E: 1300099359.931285 0000 0000 0 E: 1300099359.936248 0003 002f 0 E: 1300099359.936258 0003 0035 22742 E: 1300099359.936260 0003 0036 15096 E: 1300099359.936267 0003 002f 1 E: 1300099359.936268 0003 0035 22548 E: 1300099359.936269 0003 0036 20202 E: 1300099359.936279 0003 0000 22742 E: 1300099359.936281 0003 0001 15102 E: 1300099359.936282 0000 0000 0 E: 1300099359.941248 0003 002f 0 E: 1300099359.941258 0003 0035 22656 E: 1300099359.941260 0003 0036 15093 E: 1300099359.941268 0003 002f 1 E: 1300099359.941268 0003 0035 22464 E: 1300099359.941270 0003 0036 20193 E: 1300099359.941272 0003 0030 1224 E: 1300099359.941281 0003 0000 22656 E: 1300099359.941282 0003 0001 15099 E: 1300099359.941284 0000 0000 0 E: 1300099359.946246 0003 002f 0 E: 1300099359.946256 0003 0035 22572 E: 1300099359.946258 0003 0036 15090 E: 1300099359.946266 0003 002f 1 E: 1300099359.946266 0003 0035 22382 E: 1300099359.946268 0003 0036 20185 E: 1300099359.946270 0003 0030 1282 E: 1300099359.946279 0003 0000 22572 E: 1300099359.946280 0003 0001 15096 E: 1300099359.946282 0000 0000 0 E: 1300099359.951249 0003 002f 0 E: 1300099359.951260 0003 0035 22490 E: 1300099359.951268 0003 002f 1 E: 1300099359.951269 0003 0035 22294 E: 1300099359.951270 0003 0036 20183 E: 1300099359.951273 0003 0030 1325 E: 1300099359.951281 0003 0000 22490 E: 1300099359.951284 0000 0000 0 E: 1300099359.956248 0003 002f 0 E: 1300099359.956259 0003 0035 22414 E: 1300099359.956261 0003 0036 15087 E: 1300099359.956268 0003 002f 1 E: 1300099359.956269 0003 0035 22206 E: 1300099359.956270 0003 0036 20181 E: 1300099359.956273 0003 0030 1357 E: 1300099359.956281 0003 0000 22414 E: 1300099359.956283 0003 0001 15093 E: 1300099359.956284 0000 0000 0 E: 1300099359.961250 0003 002f 0 E: 1300099359.961260 0003 0035 22334 E: 1300099359.961262 0003 0036 15083 E: 1300099359.961269 0003 002f 1 E: 1300099359.961270 0003 0035 22116 E: 1300099359.961281 0003 0000 22334 E: 1300099359.961282 0003 0001 15090 E: 1300099359.961284 0000 0000 0 E: 1300099359.966253 0003 002f 0 E: 1300099359.966265 0003 0035 22244 E: 1300099359.966266 0003 0036 15075 E: 1300099359.966274 0003 002f 1 E: 1300099359.966275 0003 0035 22030 E: 1300099359.966276 0003 0036 20173 E: 1300099359.966279 0003 0030 1224 E: 1300099359.966287 0003 0000 22244 E: 1300099359.966289 0003 0001 15082 E: 1300099359.966291 0000 0000 0 E: 1300099359.971250 0003 002f 0 E: 1300099359.971261 0003 0035 22154 E: 1300099359.971263 0003 0036 15073 E: 1300099359.971270 0003 002f 1 E: 1300099359.971271 0003 0035 21944 E: 1300099359.971272 0003 0036 20163 E: 1300099359.971275 0003 0030 1191 E: 1300099359.971283 0003 0000 22154 E: 1300099359.971285 0003 0001 15079 E: 1300099359.971286 0000 0000 0 E: 1300099359.976248 0003 002f 0 E: 1300099359.976258 0003 0035 22066 E: 1300099359.976260 0003 0036 15071 E: 1300099359.976263 0003 0030 1224 E: 1300099359.976268 0003 002f 1 E: 1300099359.976269 0003 0035 21864 E: 1300099359.976270 0003 0036 20153 E: 1300099359.976273 0003 0030 1323 E: 1300099359.976281 0003 0000 22066 E: 1300099359.976283 0003 0001 15077 E: 1300099359.976285 0000 0000 0 E: 1300099359.982250 0003 002f 0 E: 1300099359.982262 0003 0035 21984 E: 1300099359.982264 0003 0036 15068 E: 1300099359.982267 0003 0030 1282 E: 1300099359.982272 0003 002f 1 E: 1300099359.982273 0003 0035 21780 E: 1300099359.982274 0003 0036 20142 E: 1300099359.982277 0003 0030 1265 E: 1300099359.982286 0003 0000 21984 E: 1300099359.982287 0003 0001 15074 E: 1300099359.982289 0000 0000 0 E: 1300099359.987247 0003 002f 0 E: 1300099359.987258 0003 0035 21902 E: 1300099359.987259 0003 0036 15059 E: 1300099359.987262 0003 0030 1325 E: 1300099359.987268 0003 002f 1 E: 1300099359.987268 0003 0035 21698 E: 1300099359.987270 0003 0036 20132 E: 1300099359.987272 0003 0030 1221 E: 1300099359.987280 0003 0000 21902 E: 1300099359.987282 0003 0001 15066 E: 1300099359.987284 0000 0000 0 E: 1300099359.992250 0003 002f 0 E: 1300099359.992260 0003 0035 21820 E: 1300099359.992262 0003 0036 15051 E: 1300099359.992265 0003 0030 1357 E: 1300099359.992270 0003 002f 1 E: 1300099359.992271 0003 0035 21618 E: 1300099359.992272 0003 0036 20122 E: 1300099359.992275 0003 0030 1188 E: 1300099359.992283 0003 0000 21820 E: 1300099359.992285 0003 0001 15058 E: 1300099359.992286 0000 0000 0 E: 1300099359.997249 0003 002f 0 E: 1300099359.997260 0003 0035 21736 E: 1300099359.997262 0003 0036 15047 E: 1300099359.997270 0003 002f 1 E: 1300099359.997270 0003 0035 21542 E: 1300099359.997272 0003 0036 20112 E: 1300099359.997282 0003 0000 21736 E: 1300099359.997283 0003 0001 15055 E: 1300099359.997285 0000 0000 0 E: 1300099360.002248 0003 002f 0 E: 1300099360.002258 0003 0035 21654 E: 1300099360.002260 0003 0036 15038 E: 1300099360.002263 0003 0030 1224 E: 1300099360.002268 0003 002f 1 E: 1300099360.002269 0003 0035 21468 E: 1300099360.002270 0003 0036 20100 E: 1300099360.002280 0003 0000 21654 E: 1300099360.002282 0003 0001 15046 E: 1300099360.002284 0000 0000 0 E: 1300099360.007246 0003 002f 0 E: 1300099360.007257 0003 0035 21574 E: 1300099360.007258 0003 0036 15030 E: 1300099360.007261 0003 0030 1191 E: 1300099360.007266 0003 002f 1 E: 1300099360.007267 0003 0035 21392 E: 1300099360.007269 0003 0036 20085 E: 1300099360.007279 0003 0000 21574 E: 1300099360.007281 0003 0001 15038 E: 1300099360.007282 0000 0000 0 E: 1300099360.012243 0003 002f 0 E: 1300099360.012253 0003 0035 21502 E: 1300099360.012255 0003 0036 15018 E: 1300099360.012259 0003 0030 1323 E: 1300099360.012266 0003 002f 1 E: 1300099360.012267 0003 0035 21312 E: 1300099360.012268 0003 0036 20051 E: 1300099360.012279 0003 0000 21502 E: 1300099360.012281 0003 0001 15028 E: 1300099360.012283 0000 0000 0 E: 1300099360.017246 0003 002f 0 E: 1300099360.017258 0003 0035 21426 E: 1300099360.017260 0003 0036 15003 E: 1300099360.017263 0003 0030 1356 E: 1300099360.017268 0003 002f 1 E: 1300099360.017269 0003 0035 21230 E: 1300099360.017271 0003 0036 20043 E: 1300099360.017281 0003 0000 21426 E: 1300099360.017283 0003 0001 15015 E: 1300099360.017284 0000 0000 0 E: 1300099360.022238 0003 002f 0 E: 1300099360.022243 0003 0035 21344 E: 1300099360.022245 0003 0036 14989 E: 1300099360.022248 0003 0030 1224 E: 1300099360.022253 0003 002f 1 E: 1300099360.022254 0003 0035 21156 E: 1300099360.022256 0003 0036 20034 E: 1300099360.022266 0003 0000 21344 E: 1300099360.022267 0003 0001 15002 E: 1300099360.022269 0000 0000 0 E: 1300099360.027249 0003 002f 0 E: 1300099360.027260 0003 0035 21262 E: 1300099360.027262 0003 0036 14976 E: 1300099360.027265 0003 0030 1191 E: 1300099360.027270 0003 002f 1 E: 1300099360.027271 0003 0035 21084 E: 1300099360.027272 0003 0036 20024 E: 1300099360.027274 0003 0034 1 E: 1300099360.027276 0003 0031 948 E: 1300099360.027284 0003 0000 21262 E: 1300099360.027286 0003 0001 14989 E: 1300099360.027287 0000 0000 0 E: 1300099360.032248 0003 002f 0 E: 1300099360.032259 0003 0035 21184 E: 1300099360.032261 0003 0036 14962 E: 1300099360.032269 0003 002f 1 E: 1300099360.032269 0003 0035 20958 E: 1300099360.032271 0003 0036 20012 E: 1300099360.032272 0003 0034 0 E: 1300099360.032274 0003 0030 1322 E: 1300099360.032276 0003 0031 993 E: 1300099360.032283 0003 0000 21184 E: 1300099360.032284 0003 0001 14975 E: 1300099360.032286 0000 0000 0 E: 1300099360.038238 0003 002f 0 E: 1300099360.038246 0003 0035 21112 E: 1300099360.038252 0003 0036 14949 E: 1300099360.038254 0003 0034 1 E: 1300099360.038257 0003 0031 946 E: 1300099360.038262 0003 002f 1 E: 1300099360.038262 0003 0035 20850 E: 1300099360.038264 0003 0036 19981 E: 1300099360.038266 0003 0030 1355 E: 1300099360.038282 0003 0000 21112 E: 1300099360.038283 0003 0001 14962 E: 1300099360.038285 0000 0000 0 E: 1300099360.043252 0003 002f 0 E: 1300099360.043266 0003 0035 21010 E: 1300099360.043268 0003 0036 14937 E: 1300099360.043274 0003 0034 0 E: 1300099360.043276 0003 0030 1323 E: 1300099360.043277 0003 0031 992 E: 1300099360.043282 0003 002f 1 E: 1300099360.043282 0003 0035 20756 E: 1300099360.043284 0003 0036 19971 E: 1300099360.043294 0003 0000 21010 E: 1300099360.043296 0003 0001 14949 E: 1300099360.043298 0000 0000 0 E: 1300099360.048246 0003 002f 0 E: 1300099360.048258 0003 0035 20896 E: 1300099360.048260 0003 0036 14923 E: 1300099360.048263 0003 0030 1356 E: 1300099360.048268 0003 002f 1 E: 1300099360.048269 0003 0035 20670 E: 1300099360.048271 0003 0036 19957 E: 1300099360.048281 0003 0000 20896 E: 1300099360.048282 0003 0001 14936 E: 1300099360.048284 0000 0000 0 E: 1300099360.053245 0003 002f 0 E: 1300099360.053255 0003 0035 20800 E: 1300099360.053257 0003 0036 14910 E: 1300099360.053264 0003 002f 1 E: 1300099360.053265 0003 0035 20594 E: 1300099360.053266 0003 0036 19921 E: 1300099360.053276 0003 0000 20800 E: 1300099360.053278 0003 0001 14923 E: 1300099360.053280 0000 0000 0 E: 1300099360.058246 0003 002f 0 E: 1300099360.058258 0003 0035 20712 E: 1300099360.058260 0003 0036 14897 E: 1300099360.058268 0003 002f 1 E: 1300099360.058268 0003 0035 20518 E: 1300099360.058270 0003 0036 19911 E: 1300099360.058280 0003 0000 20712 E: 1300099360.058282 0003 0001 14910 E: 1300099360.058283 0000 0000 0 E: 1300099360.063244 0003 002f 0 E: 1300099360.063254 0003 0035 20628 E: 1300099360.063256 0003 0036 14885 E: 1300099360.063263 0003 002f 1 E: 1300099360.063264 0003 0035 20440 E: 1300099360.063266 0003 0036 19879 E: 1300099360.063269 0003 0031 1027 E: 1300099360.063277 0003 0000 20628 E: 1300099360.063278 0003 0001 14897 E: 1300099360.063280 0000 0000 0 E: 1300099360.068246 0003 002f 0 E: 1300099360.068258 0003 0035 20552 E: 1300099360.068260 0003 0036 14875 E: 1300099360.068267 0003 002f 1 E: 1300099360.068268 0003 0035 20334 E: 1300099360.068269 0003 0036 19875 E: 1300099360.068279 0003 0000 20552 E: 1300099360.068281 0003 0001 14886 E: 1300099360.068283 0000 0000 0 E: 1300099360.073244 0003 002f 0 E: 1300099360.073255 0003 0035 20472 E: 1300099360.073256 0003 0036 14866 E: 1300099360.073260 0003 0031 1026 E: 1300099360.073265 0003 002f 1 E: 1300099360.073265 0003 0035 20252 E: 1300099360.073267 0003 0036 19841 E: 1300099360.073270 0003 0031 852 E: 1300099360.073278 0003 0000 20472 E: 1300099360.073279 0003 0001 14876 E: 1300099360.073281 0000 0000 0 E: 1300099360.078247 0003 002f 0 E: 1300099360.078257 0003 0035 20366 E: 1300099360.078259 0003 0036 14857 E: 1300099360.078266 0003 002f 1 E: 1300099360.078267 0003 0035 20170 E: 1300099360.078269 0003 0036 19833 E: 1300099360.078272 0003 0031 808 E: 1300099360.078279 0003 0000 20366 E: 1300099360.078281 0003 0001 14866 E: 1300099360.078282 0000 0000 0 E: 1300099360.083247 0003 002f 0 E: 1300099360.083258 0003 0035 20286 E: 1300099360.083259 0003 0036 14823 E: 1300099360.083263 0003 0031 852 E: 1300099360.083268 0003 002f 1 E: 1300099360.083268 0003 0035 20076 E: 1300099360.083270 0003 0036 19820 E: 1300099360.083273 0003 0031 775 E: 1300099360.083281 0003 0000 20286 E: 1300099360.083282 0003 0001 14823 E: 1300099360.083284 0000 0000 0 E: 1300099360.088246 0003 002f 0 E: 1300099360.088256 0003 0035 20208 E: 1300099360.088258 0003 0036 14820 E: 1300099360.088262 0003 0031 808 E: 1300099360.088266 0003 002f 1 E: 1300099360.088267 0003 0035 19994 E: 1300099360.088268 0003 0036 19805 E: 1300099360.088279 0003 0000 20208 E: 1300099360.088281 0000 0000 0 E: 1300099360.093236 0003 002f 0 E: 1300099360.093240 0003 0035 20126 E: 1300099360.093242 0003 0036 14810 E: 1300099360.093245 0003 0031 775 E: 1300099360.093250 0003 002f 1 E: 1300099360.093251 0003 0035 19906 E: 1300099360.093252 0003 0036 19791 E: 1300099360.093262 0003 0000 20126 E: 1300099360.093264 0003 0001 14819 E: 1300099360.093266 0000 0000 0 E: 1300099360.099254 0003 002f 0 E: 1300099360.099268 0003 0035 20044 E: 1300099360.099270 0003 0036 14801 E: 1300099360.099277 0003 002f 1 E: 1300099360.099278 0003 0035 19820 E: 1300099360.099279 0003 0036 19782 E: 1300099360.099283 0003 0031 807 E: 1300099360.099290 0003 0000 20044 E: 1300099360.099292 0003 0001 14810 E: 1300099360.099294 0000 0000 0 E: 1300099360.104244 0003 002f 0 E: 1300099360.104254 0003 0035 19956 E: 1300099360.104256 0003 0036 14791 E: 1300099360.104264 0003 002f 1 E: 1300099360.104264 0003 0035 19734 E: 1300099360.104266 0003 0036 19768 E: 1300099360.104276 0003 0000 19956 E: 1300099360.104277 0003 0001 14800 E: 1300099360.104279 0000 0000 0 E: 1300099360.109238 0003 002f 0 E: 1300099360.109244 0003 0035 19868 E: 1300099360.109245 0003 0036 14781 E: 1300099360.109249 0003 0031 807 E: 1300099360.109254 0003 002f 1 E: 1300099360.109255 0003 0035 19650 E: 1300099360.109256 0003 0036 19755 E: 1300099360.109260 0003 0031 774 E: 1300099360.109267 0003 0000 19868 E: 1300099360.109269 0003 0001 14790 E: 1300099360.109270 0000 0000 0 E: 1300099360.114244 0003 002f 0 E: 1300099360.114255 0003 0035 19784 E: 1300099360.114256 0003 0036 14772 E: 1300099360.114264 0003 002f 1 E: 1300099360.114264 0003 0035 19564 E: 1300099360.114266 0003 0036 19744 E: 1300099360.114276 0003 0000 19784 E: 1300099360.114278 0003 0001 14781 E: 1300099360.114279 0000 0000 0 E: 1300099360.119232 0003 002f 0 E: 1300099360.119240 0003 0035 19700 E: 1300099360.119246 0003 0036 14761 E: 1300099360.119254 0003 002f 1 E: 1300099360.119254 0003 0035 19480 E: 1300099360.119256 0003 0036 19736 E: 1300099360.119266 0003 0000 19700 E: 1300099360.119268 0003 0001 14771 E: 1300099360.119270 0000 0000 0 E: 1300099360.124247 0003 002f 0 E: 1300099360.124260 0003 0035 19620 E: 1300099360.124262 0003 0036 14752 E: 1300099360.124269 0003 002f 1 E: 1300099360.124270 0003 0035 19394 E: 1300099360.124271 0003 0036 19728 E: 1300099360.124275 0003 0031 806 E: 1300099360.124282 0003 0000 19620 E: 1300099360.124284 0003 0001 14761 E: 1300099360.124286 0000 0000 0 E: 1300099360.129247 0003 002f 0 E: 1300099360.129258 0003 0035 19536 E: 1300099360.129260 0003 0036 14748 E: 1300099360.129263 0003 0031 774 E: 1300099360.129268 0003 002f 1 E: 1300099360.129268 0003 0035 19312 E: 1300099360.129270 0003 0036 19719 E: 1300099360.129280 0003 0000 19536 E: 1300099360.129282 0003 0001 14757 E: 1300099360.129283 0000 0000 0 E: 1300099360.134245 0003 002f 0 E: 1300099360.134256 0003 0035 19454 E: 1300099360.134258 0003 0036 14744 E: 1300099360.134262 0003 0031 806 E: 1300099360.134266 0003 002f 1 E: 1300099360.134267 0003 0035 19232 E: 1300099360.134268 0003 0036 19708 E: 1300099360.134279 0003 0000 19454 E: 1300099360.134280 0003 0001 14753 E: 1300099360.134282 0000 0000 0 E: 1300099360.139244 0003 002f 0 E: 1300099360.139254 0003 0035 19372 E: 1300099360.139256 0003 0036 14741 E: 1300099360.139264 0003 002f 1 E: 1300099360.139264 0003 0035 19152 E: 1300099360.139266 0003 0036 19697 E: 1300099360.139269 0003 0031 774 E: 1300099360.139277 0003 0000 19372 E: 1300099360.139278 0003 0001 14750 E: 1300099360.139280 0000 0000 0 E: 1300099360.144236 0003 002f 0 E: 1300099360.144241 0003 0035 19294 E: 1300099360.144243 0003 0036 14739 E: 1300099360.144251 0003 002f 1 E: 1300099360.144252 0003 0035 19072 E: 1300099360.144253 0003 0036 19685 E: 1300099360.144264 0003 0000 19294 E: 1300099360.144266 0003 0001 14747 E: 1300099360.144267 0000 0000 0 E: 1300099360.149245 0003 002f 0 E: 1300099360.149256 0003 0035 19216 E: 1300099360.149258 0003 0036 14736 E: 1300099360.149265 0003 002f 1 E: 1300099360.149266 0003 0035 18990 E: 1300099360.149268 0003 0036 19676 E: 1300099360.149278 0003 0000 19216 E: 1300099360.149280 0003 0001 14744 E: 1300099360.149282 0000 0000 0 E: 1300099360.155234 0003 002f 0 E: 1300099360.155242 0003 0035 19140 E: 1300099360.155243 0003 0036 14733 E: 1300099360.155251 0003 002f 1 E: 1300099360.155251 0003 0035 18912 E: 1300099360.155253 0003 0036 19666 E: 1300099360.155256 0003 0031 806 E: 1300099360.155264 0003 0000 19140 E: 1300099360.155265 0003 0001 14741 E: 1300099360.155267 0000 0000 0 E: 1300099360.160249 0003 002f 0 E: 1300099360.160260 0003 0035 19062 E: 1300099360.160262 0003 0036 14729 E: 1300099360.160266 0003 0031 774 E: 1300099360.160270 0003 002f 1 E: 1300099360.160271 0003 0035 18832 E: 1300099360.160272 0003 0036 19657 E: 1300099360.160283 0003 0000 19062 E: 1300099360.160284 0003 0001 14738 E: 1300099360.160286 0000 0000 0 E: 1300099360.165245 0003 002f 0 E: 1300099360.165258 0003 0035 18982 E: 1300099360.165260 0003 0036 14726 E: 1300099360.165267 0003 002f 1 E: 1300099360.165268 0003 0035 18758 E: 1300099360.165270 0003 0036 19648 E: 1300099360.165280 0003 0000 18982 E: 1300099360.165281 0003 0001 14735 E: 1300099360.165283 0000 0000 0 E: 1300099360.170245 0003 002f 0 E: 1300099360.170255 0003 0035 18904 E: 1300099360.170257 0003 0036 14723 E: 1300099360.170261 0003 0031 806 E: 1300099360.170265 0003 002f 1 E: 1300099360.170266 0003 0035 18682 E: 1300099360.170267 0003 0036 19644 E: 1300099360.170271 0003 0031 774 E: 1300099360.170278 0003 0000 18904 E: 1300099360.170279 0003 0001 14732 E: 1300099360.170281 0000 0000 0 E: 1300099360.175244 0003 002f 0 E: 1300099360.175254 0003 0035 18826 E: 1300099360.175263 0003 002f 1 E: 1300099360.175264 0003 0035 18602 E: 1300099360.175265 0003 0036 19636 E: 1300099360.175275 0003 0000 18826 E: 1300099360.175277 0003 0001 14729 E: 1300099360.175278 0000 0000 0 E: 1300099360.180245 0003 002f 0 E: 1300099360.180256 0003 0035 18754 E: 1300099360.180264 0003 002f 1 E: 1300099360.180265 0003 0035 18524 E: 1300099360.180266 0003 0036 19633 E: 1300099360.180276 0003 0000 18754 E: 1300099360.180279 0000 0000 0 E: 1300099360.185245 0003 002f 0 E: 1300099360.185255 0003 0035 18682 E: 1300099360.185264 0003 002f 1 E: 1300099360.185264 0003 0035 18444 E: 1300099360.185266 0003 0036 19630 E: 1300099360.185270 0003 0031 806 E: 1300099360.185277 0003 0000 18682 E: 1300099360.185280 0000 0000 0 E: 1300099360.190243 0003 002f 0 E: 1300099360.190253 0003 0035 18606 E: 1300099360.190255 0003 0036 14720 E: 1300099360.190259 0003 0031 774 E: 1300099360.190263 0003 002f 1 E: 1300099360.190264 0003 0035 18368 E: 1300099360.190265 0003 0036 19627 E: 1300099360.190275 0003 0000 18606 E: 1300099360.190277 0003 0001 14726 E: 1300099360.190278 0000 0000 0 E: 1300099360.195245 0003 002f 0 E: 1300099360.195255 0003 0035 18530 E: 1300099360.195257 0003 0036 14718 E: 1300099360.195261 0003 0031 806 E: 1300099360.195265 0003 002f 1 E: 1300099360.195266 0003 0035 18294 E: 1300099360.195267 0003 0036 19623 E: 1300099360.195277 0003 0000 18530 E: 1300099360.195279 0003 0001 14724 E: 1300099360.195281 0000 0000 0 E: 1300099360.200243 0003 002f 0 E: 1300099360.200253 0003 0035 18450 E: 1300099360.200262 0003 002f 1 E: 1300099360.200262 0003 0035 18226 E: 1300099360.200264 0003 0036 19619 E: 1300099360.200274 0003 0000 18450 E: 1300099360.200277 0000 0000 0 E: 1300099360.205244 0003 002f 0 E: 1300099360.205255 0003 0035 18376 E: 1300099360.205263 0003 002f 1 E: 1300099360.205264 0003 0035 18158 E: 1300099360.205266 0003 0036 19616 E: 1300099360.205269 0003 0031 774 E: 1300099360.205277 0003 0000 18376 E: 1300099360.205279 0000 0000 0 E: 1300099360.211245 0003 002f 0 E: 1300099360.211255 0003 0035 18304 E: 1300099360.211264 0003 002f 1 E: 1300099360.211265 0003 0035 18090 E: 1300099360.211266 0003 0036 19613 E: 1300099360.211276 0003 0000 18304 E: 1300099360.211279 0000 0000 0 E: 1300099360.216245 0003 002f 0 E: 1300099360.216256 0003 0035 18238 E: 1300099360.216265 0003 002f 1 E: 1300099360.216265 0003 0035 18024 E: 1300099360.216276 0003 0000 18238 E: 1300099360.216279 0000 0000 0 E: 1300099360.221242 0003 002f 0 E: 1300099360.221252 0003 0035 18206 E: 1300099360.221260 0003 002f 1 E: 1300099360.221261 0003 0035 17958 E: 1300099360.221272 0003 0000 18206 E: 1300099360.221275 0000 0000 0 E: 1300099360.226242 0003 002f 0 E: 1300099360.226247 0003 0035 18142 E: 1300099360.226252 0003 0031 774 E: 1300099360.226257 0003 002f 1 E: 1300099360.226258 0003 0035 17924 E: 1300099360.226262 0003 0031 806 E: 1300099360.226270 0003 0000 18142 E: 1300099360.226273 0000 0000 0 E: 1300099360.231243 0003 002f 0 E: 1300099360.231254 0003 0035 18074 E: 1300099360.231262 0003 002f 1 E: 1300099360.231263 0003 0035 17892 E: 1300099360.231274 0003 0000 18074 E: 1300099360.231277 0000 0000 0 E: 1300099360.236233 0003 002f 0 E: 1300099360.236241 0003 0035 18008 E: 1300099360.236248 0003 0036 14719 E: 1300099360.236255 0003 002f 1 E: 1300099360.236256 0003 0035 17862 E: 1300099360.236267 0003 0000 18008 E: 1300099360.236271 0000 0000 0 E: 1300099360.241243 0003 002f 0 E: 1300099360.241255 0003 0035 17976 E: 1300099360.241257 0003 0036 14721 E: 1300099360.241265 0003 002f 1 E: 1300099360.241265 0003 0035 17796 E: 1300099360.241267 0003 0036 19615 E: 1300099360.241277 0003 0000 17976 E: 1300099360.241280 0000 0000 0 E: 1300099360.246245 0003 002f 0 E: 1300099360.246255 0003 0035 17910 E: 1300099360.246256 0003 0036 14724 E: 1300099360.246260 0003 0031 806 E: 1300099360.246264 0003 002f 1 E: 1300099360.246265 0003 0035 17764 E: 1300099360.246267 0003 0036 19617 E: 1300099360.246277 0003 0000 17910 E: 1300099360.246279 0000 0000 0 E: 1300099360.251243 0003 002f 0 E: 1300099360.251254 0003 0035 17878 E: 1300099360.251256 0003 0036 14734 E: 1300099360.251259 0003 0030 1224 E: 1300099360.251264 0003 002f 1 E: 1300099360.251265 0003 0035 17692 E: 1300099360.251267 0003 0036 19620 E: 1300099360.251270 0003 0031 774 E: 1300099360.251277 0003 0000 17878 E: 1300099360.251279 0003 0001 14726 E: 1300099360.251281 0000 0000 0 E: 1300099360.256242 0003 002f 0 E: 1300099360.256252 0003 0035 17864 E: 1300099360.256254 0003 0036 14741 E: 1300099360.256257 0003 0030 1191 E: 1300099360.256262 0003 002f 1 E: 1300099360.256263 0003 0035 17662 E: 1300099360.256264 0003 0036 19623 E: 1300099360.256275 0003 0000 17874 E: 1300099360.256276 0003 0001 14733 E: 1300099360.256278 0000 0000 0 E: 1300099360.261245 0003 002f 0 E: 1300099360.261255 0003 0035 17820 E: 1300099360.261257 0003 0036 14749 E: 1300099360.261264 0003 002f 1 E: 1300099360.261265 0003 0035 17630 E: 1300099360.261267 0003 0036 19626 E: 1300099360.261277 0003 0000 17820 E: 1300099360.261278 0003 0001 14741 E: 1300099360.261280 0000 0000 0 E: 1300099360.266241 0003 002f 0 E: 1300099360.266252 0003 0035 17790 E: 1300099360.266254 0003 0036 14751 E: 1300099360.266256 0003 0030 1323 E: 1300099360.266262 0003 002f 1 E: 1300099360.266262 0003 0035 17600 E: 1300099360.266264 0003 0036 19629 E: 1300099360.266274 0003 0000 17790 E: 1300099360.266276 0003 0001 14743 E: 1300099360.266277 0000 0000 0 E: 1300099360.272243 0003 002f 0 E: 1300099360.272253 0003 0035 17760 E: 1300099360.272255 0003 0036 14753 E: 1300099360.272258 0003 0030 1356 E: 1300099360.272263 0003 002f 1 E: 1300099360.272264 0003 0035 17566 E: 1300099360.272265 0003 0036 19632 E: 1300099360.272275 0003 0000 17760 E: 1300099360.272277 0003 0001 14745 E: 1300099360.272279 0000 0000 0 E: 1300099360.277244 0003 002f 0 E: 1300099360.277254 0003 0035 17728 E: 1300099360.277256 0003 0036 14755 E: 1300099360.277264 0003 002f 1 E: 1300099360.277264 0003 0035 17534 E: 1300099360.277266 0003 0036 19635 E: 1300099360.277276 0003 0000 17728 E: 1300099360.277278 0003 0001 14747 E: 1300099360.277279 0000 0000 0 E: 1300099360.282244 0003 002f 0 E: 1300099360.282255 0003 0035 17698 E: 1300099360.282257 0003 0036 14757 E: 1300099360.282260 0003 0031 774 E: 1300099360.282265 0003 002f 1 E: 1300099360.282266 0003 0035 17504 E: 1300099360.282267 0003 0036 19638 E: 1300099360.282278 0003 0000 17698 E: 1300099360.282279 0003 0001 14749 E: 1300099360.282281 0000 0000 0 E: 1300099360.287241 0003 002f 0 E: 1300099360.287251 0003 0035 17666 E: 1300099360.287253 0003 0036 14759 E: 1300099360.287260 0003 002f 1 E: 1300099360.287261 0003 0035 17474 E: 1300099360.287262 0003 0036 19645 E: 1300099360.287273 0003 0000 17666 E: 1300099360.287274 0003 0001 14751 E: 1300099360.287276 0000 0000 0 E: 1300099360.292242 0003 002f 0 E: 1300099360.292253 0003 0035 17602 E: 1300099360.292255 0003 0036 14762 E: 1300099360.292263 0003 002f 1 E: 1300099360.292263 0003 0035 17460 E: 1300099360.292265 0003 0036 19647 E: 1300099360.292275 0003 0000 17602 E: 1300099360.292277 0003 0001 14753 E: 1300099360.292278 0000 0000 0 E: 1300099360.297242 0003 002f 0 E: 1300099360.297252 0003 0035 17570 E: 1300099360.297254 0003 0036 14765 E: 1300099360.297261 0003 002f 1 E: 1300099360.297262 0003 0035 17416 E: 1300099360.297264 0003 0036 19650 E: 1300099360.297267 0003 0031 952 E: 1300099360.297274 0003 0000 17570 E: 1300099360.297276 0003 0001 14756 E: 1300099360.297278 0000 0000 0 E: 1300099360.302234 0003 002f 0 E: 1300099360.302248 0003 0035 17538 E: 1300099360.302250 0003 0036 14768 E: 1300099360.302258 0003 0030 1224 E: 1300099360.302264 0003 002f 1 E: 1300099360.302265 0003 0035 17386 E: 1300099360.302267 0003 0036 19653 E: 1300099360.302270 0003 0031 996 E: 1300099360.302278 0003 0000 17538 E: 1300099360.302280 0003 0001 14759 E: 1300099360.302282 0000 0000 0 E: 1300099360.307241 0003 002f 0 E: 1300099360.307253 0003 0035 17508 E: 1300099360.307255 0003 0036 14770 E: 1300099360.307258 0003 0030 1191 E: 1300099360.307263 0003 002f 1 E: 1300099360.307263 0003 0035 17286 E: 1300099360.307265 0003 0036 19655 E: 1300099360.307268 0003 0031 1029 E: 1300099360.307276 0003 0000 17508 E: 1300099360.307277 0003 0001 14761 E: 1300099360.307279 0000 0000 0 E: 1300099360.312252 0003 002f 0 E: 1300099360.312263 0003 0035 17494 E: 1300099360.312265 0003 0036 14773 E: 1300099360.312272 0003 002f 1 E: 1300099360.312273 0003 0035 17192 E: 1300099360.312284 0003 0000 17504 E: 1300099360.312285 0003 0001 14764 E: 1300099360.312287 0000 0000 0 E: 1300099360.317242 0003 002f 0 E: 1300099360.317252 0003 0035 17452 E: 1300099360.317254 0003 0036 14776 E: 1300099360.317261 0003 002f 1 E: 1300099360.317262 0003 0035 17112 E: 1300099360.317264 0003 0036 19657 E: 1300099360.317274 0003 0000 17452 E: 1300099360.317275 0003 0001 14767 E: 1300099360.317277 0000 0000 0 E: 1300099360.322240 0003 002f 0 E: 1300099360.322250 0003 0035 17438 E: 1300099360.322252 0003 0036 14783 E: 1300099360.322259 0003 002f 1 E: 1300099360.322260 0003 0035 17036 E: 1300099360.322271 0003 0000 17448 E: 1300099360.322273 0003 0001 14775 E: 1300099360.322274 0000 0000 0 E: 1300099360.328242 0003 002f 0 E: 1300099360.328252 0003 0035 17398 E: 1300099360.328254 0003 0036 14785 E: 1300099360.328255 0003 0034 1 E: 1300099360.328258 0003 0031 933 E: 1300099360.328262 0003 002f 1 E: 1300099360.328263 0003 0035 16962 E: 1300099360.328274 0003 0000 17398 E: 1300099360.328276 0003 0001 14777 E: 1300099360.328278 0000 0000 0 E: 1300099360.333246 0003 002f 0 E: 1300099360.333258 0003 0035 17384 E: 1300099360.333260 0003 0036 14788 E: 1300099360.333264 0003 0031 972 E: 1300099360.333268 0003 002f 1 E: 1300099360.333269 0003 0035 16896 E: 1300099360.333320 0003 0000 17394 E: 1300099360.333322 0003 0001 14779 E: 1300099360.333323 0000 0000 0 E: 1300099360.338241 0003 002f 0 E: 1300099360.338253 0003 0035 17342 E: 1300099360.338255 0003 0036 14791 E: 1300099360.338263 0003 002f 1 E: 1300099360.338263 0003 0035 16883 E: 1300099360.338274 0003 0000 17342 E: 1300099360.338276 0003 0001 14782 E: 1300099360.338278 0000 0000 0 E: 1300099360.343241 0003 002f 0 E: 1300099360.343252 0003 0035 17258 E: 1300099360.343254 0003 0036 14794 E: 1300099360.343256 0003 0034 0 E: 1300099360.343257 0003 0030 1323 E: 1300099360.343259 0003 0031 1011 E: 1300099360.343263 0003 002f 1 E: 1300099360.343264 0003 0035 16842 E: 1300099360.343275 0003 0000 17258 E: 1300099360.343276 0003 0001 14785 E: 1300099360.343278 0000 0000 0 E: 1300099360.348241 0003 002f 0 E: 1300099360.348251 0003 0035 17176 E: 1300099360.348253 0003 0036 14795 E: 1300099360.348256 0003 0030 1356 E: 1300099360.348261 0003 002f 1 E: 1300099360.348262 0003 0035 16829 E: 1300099360.348273 0003 0000 17176 E: 1300099360.348275 0003 0001 14787 E: 1300099360.348276 0000 0000 0 E: 1300099360.353238 0003 002f 0 E: 1300099360.353248 0003 0035 17098 E: 1300099360.353250 0003 0036 14797 E: 1300099360.353257 0003 002f 1 E: 1300099360.353258 0003 0035 16790 E: 1300099360.353260 0003 0036 19655 E: 1300099360.353270 0003 0000 17098 E: 1300099360.353271 0003 0001 14789 E: 1300099360.353273 0000 0000 0 E: 1300099360.358241 0003 002f 0 E: 1300099360.358252 0003 0035 17022 E: 1300099360.358253 0003 0036 14800 E: 1300099360.358261 0003 002f 1 E: 1300099360.358262 0003 0035 16779 E: 1300099360.358263 0003 0036 19653 E: 1300099360.358273 0003 0000 17022 E: 1300099360.358275 0003 0001 14791 E: 1300099360.358277 0000 0000 0 E: 1300099360.363240 0003 002f 0 E: 1300099360.363251 0003 0035 16956 E: 1300099360.363253 0003 0036 14808 E: 1300099360.363255 0003 0030 1224 E: 1300099360.363261 0003 002f 1 E: 1300099360.363261 0003 0035 16746 E: 1300099360.363272 0003 0000 16956 E: 1300099360.363274 0003 0001 14799 E: 1300099360.363275 0000 0000 0 E: 1300099360.368240 0003 002f 0 E: 1300099360.368250 0003 0035 16924 E: 1300099360.368252 0003 0036 14811 E: 1300099360.368255 0003 0030 1191 E: 1300099360.368260 0003 002f 1 E: 1300099360.368261 0003 0035 16735 E: 1300099360.368272 0003 0000 16924 E: 1300099360.368273 0003 0001 14802 E: 1300099360.368275 0000 0000 0 E: 1300099360.373239 0003 002f 0 E: 1300099360.373249 0003 0035 16910 E: 1300099360.373251 0003 0036 14814 E: 1300099360.373259 0003 002f 1 E: 1300099360.373259 0003 0035 16720 E: 1300099360.373270 0003 0000 16920 E: 1300099360.373272 0003 0001 14805 E: 1300099360.373273 0000 0000 0 E: 1300099360.378241 0003 002f 0 E: 1300099360.378252 0003 0035 16868 E: 1300099360.378253 0003 0036 14821 E: 1300099360.378261 0003 002f 1 E: 1300099360.378262 0003 0035 16684 E: 1300099360.378272 0003 0000 16868 E: 1300099360.378274 0003 0001 14813 E: 1300099360.378276 0000 0000 0 E: 1300099360.384238 0003 002f 0 E: 1300099360.384248 0003 0035 16838 E: 1300099360.384250 0003 0036 14824 E: 1300099360.384258 0003 002f 1 E: 1300099360.384258 0003 0035 16674 E: 1300099360.384269 0003 0000 16838 E: 1300099360.384271 0003 0001 14815 E: 1300099360.384272 0000 0000 0 E: 1300099360.389240 0003 002f 0 E: 1300099360.389250 0003 0035 16825 E: 1300099360.389252 0003 0036 14832 E: 1300099360.389259 0003 002f 1 E: 1300099360.389260 0003 0035 16642 E: 1300099360.389271 0003 0000 16834 E: 1300099360.389273 0003 0001 14823 E: 1300099360.389274 0000 0000 0 E: 1300099360.394238 0003 002f 0 E: 1300099360.394249 0003 0035 16788 E: 1300099360.394251 0003 0036 14840 E: 1300099360.394258 0003 002f 1 E: 1300099360.394259 0003 0035 16632 E: 1300099360.394260 0003 0036 19655 E: 1300099360.394270 0003 0000 16788 E: 1300099360.394272 0003 0001 14831 E: 1300099360.394274 0000 0000 0 E: 1300099360.399242 0003 002f 0 E: 1300099360.399254 0003 0035 16776 E: 1300099360.399256 0003 0036 14848 E: 1300099360.399263 0003 002f 1 E: 1300099360.399264 0003 0035 16618 E: 1300099360.399265 0003 0036 19658 E: 1300099360.399275 0003 0000 16785 E: 1300099360.399277 0003 0001 14839 E: 1300099360.399278 0000 0000 0 E: 1300099360.404239 0003 002f 0 E: 1300099360.404249 0003 0035 16742 E: 1300099360.404251 0003 0036 14856 E: 1300099360.404258 0003 002f 1 E: 1300099360.404259 0003 0035 16584 E: 1300099360.404260 0003 0036 19666 E: 1300099360.404270 0003 0000 16742 E: 1300099360.404272 0003 0001 14847 E: 1300099360.404274 0000 0000 0 E: 1300099360.409231 0003 002f 0 E: 1300099360.409240 0003 0035 16730 E: 1300099360.409242 0003 0036 14866 E: 1300099360.409250 0003 002f 1 E: 1300099360.409251 0003 0035 16510 E: 1300099360.409253 0003 0036 19675 E: 1300099360.409264 0003 0000 16739 E: 1300099360.409265 0003 0001 14856 E: 1300099360.409267 0000 0000 0 E: 1300099360.414238 0003 002f 0 E: 1300099360.414250 0003 0035 16692 E: 1300099360.414252 0003 0036 14897 E: 1300099360.414255 0003 0030 1323 E: 1300099360.414260 0003 002f 1 E: 1300099360.414261 0003 0035 16438 E: 1300099360.414262 0003 0036 19683 E: 1300099360.414272 0003 0000 16692 E: 1300099360.414274 0003 0001 14897 E: 1300099360.414276 0000 0000 0 E: 1300099360.419227 0003 002f 0 E: 1300099360.419235 0003 0035 16678 E: 1300099360.419241 0003 0036 14906 E: 1300099360.419244 0003 0030 1356 E: 1300099360.419249 0003 002f 1 E: 1300099360.419250 0003 0035 16427 E: 1300099360.419252 0003 0036 19685 E: 1300099360.419255 0003 0031 853 E: 1300099360.419269 0003 0000 16688 E: 1300099360.419270 0003 0001 14899 E: 1300099360.419272 0000 0000 0 E: 1300099360.424239 0003 002f 0 E: 1300099360.424251 0003 0035 16634 E: 1300099360.424254 0003 0036 14937 E: 1300099360.424261 0003 002f 1 E: 1300099360.424262 0003 0035 16394 E: 1300099360.424263 0003 0036 19687 E: 1300099360.424266 0003 0030 1223 E: 1300099360.424267 0003 0031 809 E: 1300099360.424275 0003 0000 16634 E: 1300099360.424276 0003 0001 14937 E: 1300099360.424278 0000 0000 0 E: 1300099360.429243 0003 002f 0 E: 1300099360.429254 0003 0035 16568 E: 1300099360.429256 0003 0036 14985 E: 1300099360.429260 0003 0031 844 E: 1300099360.429262 0003 002f 1 E: 1300099360.429263 0003 0039 -1 E: 1300099360.429269 0003 0000 16568 E: 1300099360.429271 0003 0001 14985 E: 1300099360.429273 0000 0000 0 E: 1300099360.434236 0003 002f 0 E: 1300099360.434249 0003 0039 -1 E: 1300099360.434253 0001 014a 0 E: 1300099360.434255 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/evemu/two-pinch.evemu0000644000015600001650000012470712651522342025174 0ustar pbuserpbgroup00000000000000N: 3M-3M-MicroTouch-USB-controller I: 0003 0596 0502 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 80 73 02 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 32767 15 0 A: 01 0 32767 15 0 A: 2f 0 59 0 0 A: 30 0 32767 255 0 A: 31 0 32767 255 0 A: 34 0 1 0 0 A: 35 0 32767 15 0 A: 36 0 32767 15 0 A: 39 0 65535 0 0 E: 1300099379.474886 0003 0039 10 E: 1300099379.474902 0003 0035 29774 E: 1300099379.474904 0003 0036 10081 E: 1300099379.474908 0003 0031 802 E: 1300099379.474911 0001 014a 1 E: 1300099379.474915 0003 0000 29774 E: 1300099379.474917 0003 0001 10081 E: 1300099379.474919 0000 0000 0 E: 1300099379.479889 0003 002f 1 E: 1300099379.479899 0003 0039 11 E: 1300099379.479902 0003 0035 27822 E: 1300099379.479904 0003 0036 22853 E: 1300099379.479907 0003 0030 1190 E: 1300099379.479918 0000 0000 0 E: 1300099379.519886 0003 0035 27810 E: 1300099379.519897 0003 0036 22845 E: 1300099379.519900 0003 0030 1323 E: 1300099379.519911 0000 0000 0 E: 1300099379.525880 0003 002f 0 E: 1300099379.525891 0003 0036 10083 E: 1300099379.525899 0003 002f 1 E: 1300099379.525899 0003 0035 27778 E: 1300099379.525901 0003 0036 22832 E: 1300099379.525904 0003 0030 1356 E: 1300099379.525914 0000 0000 0 E: 1300099379.530879 0003 002f 0 E: 1300099379.530889 0003 0035 29772 E: 1300099379.530891 0003 0036 10085 E: 1300099379.530898 0003 002f 1 E: 1300099379.530899 0003 0035 27769 E: 1300099379.530901 0003 0036 22817 E: 1300099379.530913 0000 0000 0 E: 1300099379.535880 0003 002f 0 E: 1300099379.535890 0003 0035 29770 E: 1300099379.535892 0003 0036 10087 E: 1300099379.535899 0003 002f 1 E: 1300099379.535900 0003 0035 27755 E: 1300099379.535902 0003 0036 22787 E: 1300099379.535914 0000 0000 0 E: 1300099379.540878 0003 002f 0 E: 1300099379.540888 0003 0035 29768 E: 1300099379.540890 0003 0036 10089 E: 1300099379.540897 0003 002f 1 E: 1300099379.540898 0003 0035 27724 E: 1300099379.540899 0003 0036 22779 E: 1300099379.540911 0003 0001 10083 E: 1300099379.540913 0000 0000 0 E: 1300099379.545878 0003 002f 0 E: 1300099379.545899 0003 0035 29760 E: 1300099379.545902 0003 0036 10119 E: 1300099379.545911 0003 002f 1 E: 1300099379.545912 0003 0036 22776 E: 1300099379.545924 0003 0000 29770 E: 1300099379.545929 0003 0001 10119 E: 1300099379.545936 0000 0000 0 E: 1300099379.550880 0003 002f 0 E: 1300099379.550893 0003 0035 29752 E: 1300099379.550895 0003 0036 10130 E: 1300099379.550903 0003 002f 1 E: 1300099379.550904 0003 0036 22773 E: 1300099379.550914 0003 0000 29761 E: 1300099379.550916 0003 0001 10121 E: 1300099379.550918 0000 0000 0 E: 1300099379.555880 0003 002f 0 E: 1300099379.555890 0003 0035 29743 E: 1300099379.555892 0003 0036 10165 E: 1300099379.555900 0003 002f 1 E: 1300099379.555901 0003 0036 22771 E: 1300099379.555911 0003 0000 29752 E: 1300099379.555913 0003 0001 10165 E: 1300099379.555915 0000 0000 0 E: 1300099379.560879 0003 002f 0 E: 1300099379.560889 0003 0035 29733 E: 1300099379.560891 0003 0036 10177 E: 1300099379.560894 0003 0030 1224 E: 1300099379.560900 0003 002f 1 E: 1300099379.560901 0003 0036 22769 E: 1300099379.560911 0003 0000 29742 E: 1300099379.560913 0003 0001 10168 E: 1300099379.560915 0000 0000 0 E: 1300099379.565872 0003 002f 0 E: 1300099379.565881 0003 0035 29724 E: 1300099379.565883 0003 0036 10217 E: 1300099379.565886 0003 0030 1282 E: 1300099379.565893 0003 002f 1 E: 1300099379.565894 0003 0036 22767 E: 1300099379.565905 0003 0000 29733 E: 1300099379.565908 0003 0001 10217 E: 1300099379.565910 0000 0000 0 E: 1300099379.570879 0003 002f 0 E: 1300099379.570891 0003 0035 29716 E: 1300099379.570893 0003 0036 10231 E: 1300099379.570896 0003 0030 1325 E: 1300099379.570902 0003 002f 1 E: 1300099379.570903 0003 0036 22765 E: 1300099379.570913 0003 0000 29724 E: 1300099379.570915 0003 0001 10220 E: 1300099379.570917 0000 0000 0 E: 1300099379.575878 0003 002f 0 E: 1300099379.575888 0003 0035 29708 E: 1300099379.575890 0003 0036 10279 E: 1300099379.575893 0003 0030 1357 E: 1300099379.575899 0003 002f 1 E: 1300099379.575900 0003 0036 22763 E: 1300099379.575910 0003 0000 29716 E: 1300099379.575912 0003 0001 10279 E: 1300099379.575914 0000 0000 0 E: 1300099379.581880 0003 002f 0 E: 1300099379.581890 0003 0035 29700 E: 1300099379.581892 0003 0036 10309 E: 1300099379.581900 0003 002f 1 E: 1300099379.581901 0003 0036 22761 E: 1300099379.581911 0003 0000 29708 E: 1300099379.581913 0003 0001 10309 E: 1300099379.581915 0000 0000 0 E: 1300099379.586869 0003 002f 0 E: 1300099379.586877 0003 0035 29692 E: 1300099379.586879 0003 0036 10339 E: 1300099379.586887 0003 002f 1 E: 1300099379.586888 0003 0035 27722 E: 1300099379.586900 0003 0000 29700 E: 1300099379.586902 0003 0001 10339 E: 1300099379.586904 0000 0000 0 E: 1300099379.591878 0003 002f 0 E: 1300099379.591890 0003 0035 29684 E: 1300099379.591892 0003 0036 10373 E: 1300099379.591901 0003 002f 1 E: 1300099379.591901 0003 0036 22759 E: 1300099379.591912 0003 0000 29692 E: 1300099379.591913 0003 0001 10373 E: 1300099379.591915 0000 0000 0 E: 1300099379.596871 0003 002f 0 E: 1300099379.596879 0003 0035 29680 E: 1300099379.596881 0003 0036 10405 E: 1300099379.596893 0003 002f 1 E: 1300099379.596894 0003 0035 27720 E: 1300099379.596897 0003 0036 22757 E: 1300099379.596908 0003 0000 29689 E: 1300099379.596909 0003 0001 10405 E: 1300099379.596912 0000 0000 0 E: 1300099379.601879 0003 002f 0 E: 1300099379.601891 0003 0035 29646 E: 1300099379.601893 0003 0036 10473 E: 1300099379.601901 0003 002f 1 E: 1300099379.601901 0003 0035 27674 E: 1300099379.601903 0003 0036 22679 E: 1300099379.601906 0003 0030 1224 E: 1300099379.601914 0003 0000 29646 E: 1300099379.601916 0003 0001 10473 E: 1300099379.601918 0000 0000 0 E: 1300099379.606880 0003 002f 0 E: 1300099379.606891 0003 0035 29635 E: 1300099379.606892 0003 0036 10539 E: 1300099379.606903 0003 002f 1 E: 1300099379.606903 0003 0030 1282 E: 1300099379.606912 0003 0000 29643 E: 1300099379.606914 0003 0001 10539 E: 1300099379.606915 0000 0000 0 E: 1300099379.611880 0003 002f 0 E: 1300099379.611891 0003 0035 29625 E: 1300099379.611892 0003 0036 10569 E: 1300099379.611903 0003 002f 1 E: 1300099379.611903 0003 0030 1325 E: 1300099379.611912 0003 0000 29634 E: 1300099379.611914 0003 0001 10569 E: 1300099379.611915 0000 0000 0 E: 1300099379.616880 0003 002f 0 E: 1300099379.616890 0003 0035 29616 E: 1300099379.616892 0003 0036 10599 E: 1300099379.616902 0003 002f 1 E: 1300099379.616903 0003 0030 1357 E: 1300099379.616912 0003 0000 29625 E: 1300099379.616913 0003 0001 10599 E: 1300099379.616915 0000 0000 0 E: 1300099379.621882 0003 002f 0 E: 1300099379.621893 0003 0035 29608 E: 1300099379.621894 0003 0036 10631 E: 1300099379.621902 0003 002f 1 E: 1300099379.621903 0003 0035 27664 E: 1300099379.621905 0003 0036 22647 E: 1300099379.621907 0003 0030 1224 E: 1300099379.621916 0003 0000 29616 E: 1300099379.621918 0003 0001 10631 E: 1300099379.621919 0000 0000 0 E: 1300099379.626878 0003 002f 0 E: 1300099379.626888 0003 0035 29600 E: 1300099379.626890 0003 0036 10661 E: 1300099379.626898 0003 002f 1 E: 1300099379.626898 0003 0035 27634 E: 1300099379.626900 0003 0036 22634 E: 1300099379.626903 0003 0030 1191 E: 1300099379.626911 0003 0000 29608 E: 1300099379.626913 0003 0001 10661 E: 1300099379.626915 0000 0000 0 E: 1300099379.631871 0003 002f 0 E: 1300099379.631876 0003 0035 29592 E: 1300099379.631878 0003 0036 10691 E: 1300099379.631887 0003 002f 1 E: 1300099379.631888 0003 0036 22630 E: 1300099379.631890 0003 0030 1323 E: 1300099379.631899 0003 0000 29600 E: 1300099379.631901 0003 0001 10691 E: 1300099379.631903 0000 0000 0 E: 1300099379.637882 0003 002f 0 E: 1300099379.637893 0003 0035 29584 E: 1300099379.637895 0003 0036 10725 E: 1300099379.637904 0003 002f 1 E: 1300099379.637904 0003 0036 22627 E: 1300099379.637907 0003 0030 1356 E: 1300099379.637909 0003 0031 969 E: 1300099379.637916 0003 0000 29592 E: 1300099379.637918 0003 0001 10725 E: 1300099379.637920 0000 0000 0 E: 1300099379.642880 0003 002f 0 E: 1300099379.642891 0003 0035 29576 E: 1300099379.642893 0003 0036 10757 E: 1300099379.642896 0003 0030 1588 E: 1300099379.642912 0003 0000 29584 E: 1300099379.642913 0003 0001 10757 E: 1300099379.642915 0000 0000 0 E: 1300099379.647867 0003 0035 29565 E: 1300099379.647877 0003 0036 10825 E: 1300099379.647883 0003 0030 1646 E: 1300099379.647889 0003 002f 1 E: 1300099379.647890 0003 0035 27626 E: 1300099379.647892 0003 0036 22593 E: 1300099379.647894 0003 0030 1224 E: 1300099379.647903 0003 0000 29574 E: 1300099379.647905 0003 0001 10825 E: 1300099379.647908 0000 0000 0 E: 1300099379.652880 0003 002f 0 E: 1300099379.652893 0003 0035 29556 E: 1300099379.652895 0003 0036 10855 E: 1300099379.652898 0003 0030 1689 E: 1300099379.652903 0003 002f 1 E: 1300099379.652904 0003 0035 27615 E: 1300099379.652906 0003 0036 22580 E: 1300099379.652908 0003 0030 1191 E: 1300099379.652917 0003 0000 29565 E: 1300099379.652918 0003 0001 10855 E: 1300099379.652920 0000 0000 0 E: 1300099379.657878 0003 002f 0 E: 1300099379.657889 0003 0035 29552 E: 1300099379.657890 0003 0036 10885 E: 1300099379.657893 0003 0030 1721 E: 1300099379.657899 0003 002f 1 E: 1300099379.657900 0003 0035 27602 E: 1300099379.657901 0003 0036 22543 E: 1300099379.657912 0003 0000 29561 E: 1300099379.657913 0003 0001 10885 E: 1300099379.657915 0000 0000 0 E: 1300099379.662879 0003 002f 0 E: 1300099379.662890 0003 0035 29541 E: 1300099379.662892 0003 0036 10953 E: 1300099379.662895 0003 0030 1588 E: 1300099379.662900 0003 002f 1 E: 1300099379.662901 0003 0035 27590 E: 1300099379.662903 0003 0036 22531 E: 1300099379.662913 0003 0000 29551 E: 1300099379.662915 0003 0001 10953 E: 1300099379.662916 0000 0000 0 E: 1300099379.667879 0003 002f 0 E: 1300099379.667890 0003 0035 29532 E: 1300099379.667892 0003 0036 10985 E: 1300099379.667895 0003 0030 1555 E: 1300099379.667900 0003 002f 1 E: 1300099379.667901 0003 0035 27578 E: 1300099379.667903 0003 0036 22497 E: 1300099379.667913 0003 0000 29541 E: 1300099379.667915 0003 0001 10985 E: 1300099379.667917 0000 0000 0 E: 1300099379.672880 0003 002f 0 E: 1300099379.672890 0003 0035 29528 E: 1300099379.672892 0003 0036 11017 E: 1300099379.672900 0003 002f 1 E: 1300099379.672901 0003 0035 27566 E: 1300099379.672902 0003 0036 22487 E: 1300099379.672913 0003 0000 29537 E: 1300099379.672915 0003 0001 11017 E: 1300099379.672916 0000 0000 0 E: 1300099379.677877 0003 002f 0 E: 1300099379.677888 0003 0035 29518 E: 1300099379.677890 0003 0036 11087 E: 1300099379.677897 0003 002f 1 E: 1300099379.677898 0003 0035 27556 E: 1300099379.677899 0003 0036 22457 E: 1300099379.677910 0003 0000 29527 E: 1300099379.677912 0003 0001 11087 E: 1300099379.677913 0000 0000 0 E: 1300099379.682878 0003 002f 0 E: 1300099379.682889 0003 0035 29508 E: 1300099379.682891 0003 0036 11151 E: 1300099379.682899 0003 002f 1 E: 1300099379.682899 0003 0035 27547 E: 1300099379.682901 0003 0036 22447 E: 1300099379.682912 0003 0000 29517 E: 1300099379.682913 0003 0001 11151 E: 1300099379.682915 0000 0000 0 E: 1300099379.687881 0003 002f 0 E: 1300099379.687892 0003 0035 29500 E: 1300099379.687894 0003 0036 11185 E: 1300099379.687901 0003 002f 1 E: 1300099379.687902 0003 0035 27537 E: 1300099379.687904 0003 0036 22415 E: 1300099379.687914 0003 0000 29508 E: 1300099379.687916 0003 0001 11185 E: 1300099379.687918 0000 0000 0 E: 1300099379.692869 0003 002f 0 E: 1300099379.692877 0003 0035 29492 E: 1300099379.692879 0003 0036 11215 E: 1300099379.692892 0003 002f 1 E: 1300099379.692892 0003 0035 27528 E: 1300099379.692894 0003 0036 22406 E: 1300099379.692897 0003 0030 1323 E: 1300099379.692905 0003 0000 29500 E: 1300099379.692907 0003 0001 11215 E: 1300099379.692909 0000 0000 0 E: 1300099379.698868 0003 002f 0 E: 1300099379.698875 0003 0035 29479 E: 1300099379.698877 0003 0036 11289 E: 1300099379.698888 0003 002f 1 E: 1300099379.698889 0003 0035 27524 E: 1300099379.698891 0003 0036 22393 E: 1300099379.698893 0003 0030 1265 E: 1300099379.698902 0003 0000 29489 E: 1300099379.698904 0003 0001 11289 E: 1300099379.698906 0000 0000 0 E: 1300099379.703867 0003 002f 0 E: 1300099379.703876 0003 0035 29464 E: 1300099379.703878 0003 0036 11357 E: 1300099379.703885 0003 002f 1 E: 1300099379.703886 0003 0035 27516 E: 1300099379.703888 0003 0036 22363 E: 1300099379.703891 0003 0030 1312 E: 1300099379.703899 0003 0000 29476 E: 1300099379.703901 0003 0001 11357 E: 1300099379.703903 0000 0000 0 E: 1300099379.708875 0003 002f 0 E: 1300099379.708888 0003 0035 29454 E: 1300099379.708890 0003 0036 11389 E: 1300099379.708897 0003 002f 1 E: 1300099379.708898 0003 0035 27513 E: 1300099379.708900 0003 0036 22354 E: 1300099379.708902 0003 0030 1348 E: 1300099379.708910 0003 0000 29465 E: 1300099379.708912 0003 0001 11389 E: 1300099379.708914 0000 0000 0 E: 1300099379.713869 0003 002f 0 E: 1300099379.713875 0003 0035 29443 E: 1300099379.713877 0003 0036 11463 E: 1300099379.713884 0003 002f 1 E: 1300099379.713885 0003 0035 27510 E: 1300099379.713887 0003 0036 22350 E: 1300099379.713897 0003 0000 29454 E: 1300099379.713899 0003 0001 11463 E: 1300099379.713901 0000 0000 0 E: 1300099379.718879 0003 002f 0 E: 1300099379.718892 0003 0035 29431 E: 1300099379.718894 0003 0036 11529 E: 1300099379.718896 0003 0030 1687 E: 1300099379.718902 0003 002f 1 E: 1300099379.718903 0003 0035 27507 E: 1300099379.718904 0003 0036 22346 E: 1300099379.718914 0003 0000 29442 E: 1300099379.718916 0003 0001 11529 E: 1300099379.718918 0000 0000 0 E: 1300099379.723864 0003 002f 0 E: 1300099379.723875 0003 0035 29420 E: 1300099379.723877 0003 0036 11601 E: 1300099379.723880 0003 0030 1629 E: 1300099379.723885 0003 002f 1 E: 1300099379.723886 0003 0035 27504 E: 1300099379.723888 0003 0036 22331 E: 1300099379.723898 0003 0000 29431 E: 1300099379.723900 0003 0001 11601 E: 1300099379.723901 0000 0000 0 E: 1300099379.728877 0003 002f 0 E: 1300099379.728890 0003 0035 29409 E: 1300099379.728892 0003 0036 11675 E: 1300099379.728895 0003 0030 1585 E: 1300099379.728900 0003 002f 1 E: 1300099379.728901 0003 0035 27502 E: 1300099379.728903 0003 0036 22322 E: 1300099379.728913 0003 0000 29420 E: 1300099379.728915 0003 0001 11675 E: 1300099379.728917 0000 0000 0 E: 1300099379.733866 0003 002f 0 E: 1300099379.733876 0003 0035 29398 E: 1300099379.733878 0003 0036 11749 E: 1300099379.733881 0003 0030 1552 E: 1300099379.733887 0003 002f 1 E: 1300099379.733888 0003 0036 22320 E: 1300099379.733898 0003 0000 29409 E: 1300099379.733900 0003 0001 11749 E: 1300099379.733902 0000 0000 0 E: 1300099379.738877 0003 002f 0 E: 1300099379.738887 0003 0035 29389 E: 1300099379.738889 0003 0036 11819 E: 1300099379.738897 0003 002f 1 E: 1300099379.738897 0003 0035 27500 E: 1300099379.738909 0003 0000 29399 E: 1300099379.738910 0003 0001 11819 E: 1300099379.738912 0000 0000 0 E: 1300099379.743864 0003 002f 0 E: 1300099379.743875 0003 0035 29379 E: 1300099379.743876 0003 0036 11885 E: 1300099379.743894 0003 0000 29389 E: 1300099379.743896 0003 0001 11885 E: 1300099379.743898 0000 0000 0 E: 1300099379.748874 0003 0035 29368 E: 1300099379.748886 0003 0036 11955 E: 1300099379.748904 0003 0000 29378 E: 1300099379.748906 0003 0001 11955 E: 1300099379.748908 0000 0000 0 E: 1300099379.754877 0003 0035 29357 E: 1300099379.754889 0003 0036 12025 E: 1300099379.754907 0003 0000 29367 E: 1300099379.754908 0003 0001 12025 E: 1300099379.754910 0000 0000 0 E: 1300099379.759876 0003 0035 29347 E: 1300099379.759887 0003 0036 12095 E: 1300099379.759905 0003 0000 29357 E: 1300099379.759907 0003 0001 12095 E: 1300099379.759909 0000 0000 0 E: 1300099379.764877 0003 0035 29337 E: 1300099379.764889 0003 0036 12163 E: 1300099379.764907 0003 0000 29347 E: 1300099379.764908 0003 0001 12163 E: 1300099379.764910 0000 0000 0 E: 1300099379.769877 0003 0035 29329 E: 1300099379.769889 0003 0036 12197 E: 1300099379.769907 0003 0000 29338 E: 1300099379.769908 0003 0001 12197 E: 1300099379.769910 0000 0000 0 E: 1300099379.774876 0003 0035 29320 E: 1300099379.774888 0003 0036 12271 E: 1300099379.774906 0003 0000 29329 E: 1300099379.774907 0003 0001 12271 E: 1300099379.774909 0000 0000 0 E: 1300099379.779876 0003 0035 29311 E: 1300099379.779888 0003 0036 12347 E: 1300099379.779899 0003 002f 1 E: 1300099379.779900 0003 0031 1009 E: 1300099379.779907 0003 0000 29320 E: 1300099379.779909 0003 0001 12347 E: 1300099379.779911 0000 0000 0 E: 1300099379.784877 0003 002f 0 E: 1300099379.784888 0003 0035 29303 E: 1300099379.784890 0003 0036 12429 E: 1300099379.784907 0003 0000 29311 E: 1300099379.784909 0003 0001 12429 E: 1300099379.784911 0000 0000 0 E: 1300099379.789876 0003 0035 29293 E: 1300099379.789888 0003 0036 12507 E: 1300099379.789906 0003 0000 29302 E: 1300099379.789907 0003 0001 12507 E: 1300099379.789909 0000 0000 0 E: 1300099379.794875 0003 0035 29282 E: 1300099379.794887 0003 0036 12589 E: 1300099379.794905 0003 0000 29292 E: 1300099379.794906 0003 0001 12589 E: 1300099379.794908 0000 0000 0 E: 1300099379.799878 0003 0035 29272 E: 1300099379.799889 0003 0036 12665 E: 1300099379.799907 0003 0000 29282 E: 1300099379.799909 0003 0001 12665 E: 1300099379.799911 0000 0000 0 E: 1300099379.804875 0003 0035 29261 E: 1300099379.804887 0003 0036 12745 E: 1300099379.804896 0003 002f 1 E: 1300099379.804897 0003 0036 22318 E: 1300099379.804898 0003 0034 1 E: 1300099379.804900 0003 0030 1293 E: 1300099379.804909 0003 0000 29271 E: 1300099379.804910 0003 0001 12745 E: 1300099379.804912 0000 0000 0 E: 1300099379.809876 0003 002f 0 E: 1300099379.809886 0003 0035 29249 E: 1300099379.809888 0003 0036 12827 E: 1300099379.809897 0003 002f 1 E: 1300099379.809897 0003 0036 22316 E: 1300099379.809900 0003 0030 1252 E: 1300099379.809909 0003 0000 29260 E: 1300099379.809910 0003 0001 12827 E: 1300099379.809912 0000 0000 0 E: 1300099379.815875 0003 002f 0 E: 1300099379.815885 0003 0035 29237 E: 1300099379.815886 0003 0036 12909 E: 1300099379.815889 0003 0030 1322 E: 1300099379.815896 0003 002f 1 E: 1300099379.815896 0003 0036 22313 E: 1300099379.815898 0003 0034 0 E: 1300099379.815900 0003 0030 1303 E: 1300099379.815908 0003 0000 29248 E: 1300099379.815910 0003 0001 12909 E: 1300099379.815911 0000 0000 0 E: 1300099379.820879 0003 002f 0 E: 1300099379.820891 0003 0035 29225 E: 1300099379.820892 0003 0036 12993 E: 1300099379.820895 0003 0030 1355 E: 1300099379.820902 0003 002f 1 E: 1300099379.820902 0003 0036 22310 E: 1300099379.820905 0003 0030 1341 E: 1300099379.820914 0003 0000 29236 E: 1300099379.820915 0003 0001 12993 E: 1300099379.820917 0000 0000 0 E: 1300099379.825875 0003 002f 0 E: 1300099379.825888 0003 0035 29213 E: 1300099379.825890 0003 0036 13077 E: 1300099379.825897 0003 002f 1 E: 1300099379.825898 0003 0035 27502 E: 1300099379.825900 0003 0036 22297 E: 1300099379.825910 0003 0000 29224 E: 1300099379.825911 0003 0001 13077 E: 1300099379.825913 0000 0000 0 E: 1300099379.830870 0003 002f 0 E: 1300099379.830875 0003 0035 29200 E: 1300099379.830877 0003 0036 13161 E: 1300099379.830885 0003 002f 1 E: 1300099379.830886 0003 0035 27505 E: 1300099379.830888 0003 0036 22267 E: 1300099379.830898 0003 0000 29212 E: 1300099379.830900 0003 0001 13161 E: 1300099379.830902 0000 0000 0 E: 1300099379.835875 0003 002f 0 E: 1300099379.835887 0003 0035 29187 E: 1300099379.835889 0003 0036 13243 E: 1300099379.835897 0003 002f 1 E: 1300099379.835898 0003 0035 27512 E: 1300099379.835899 0003 0036 22256 E: 1300099379.835910 0003 0000 29199 E: 1300099379.835911 0003 0001 13243 E: 1300099379.835913 0000 0000 0 E: 1300099379.840880 0003 002f 0 E: 1300099379.840885 0003 0035 29156 E: 1300099379.840887 0003 0036 13323 E: 1300099379.840894 0003 002f 1 E: 1300099379.840895 0003 0035 27520 E: 1300099379.840897 0003 0036 22221 E: 1300099379.840908 0003 0000 29156 E: 1300099379.840909 0003 0001 13323 E: 1300099379.840911 0000 0000 0 E: 1300099379.845876 0003 002f 0 E: 1300099379.845886 0003 0035 29147 E: 1300099379.845888 0003 0036 13403 E: 1300099379.845896 0003 002f 1 E: 1300099379.845896 0003 0035 27523 E: 1300099379.845898 0003 0036 22209 E: 1300099379.845908 0003 0000 29153 E: 1300099379.845910 0003 0001 13403 E: 1300099379.845912 0000 0000 0 E: 1300099379.850876 0003 002f 0 E: 1300099379.850886 0003 0035 29133 E: 1300099379.850888 0003 0036 13483 E: 1300099379.850895 0003 002f 1 E: 1300099379.850896 0003 0035 27531 E: 1300099379.850898 0003 0036 22171 E: 1300099379.850908 0003 0000 29143 E: 1300099379.850910 0003 0001 13483 E: 1300099379.850912 0000 0000 0 E: 1300099379.855876 0003 002f 0 E: 1300099379.855887 0003 0035 29100 E: 1300099379.855888 0003 0036 13565 E: 1300099379.855896 0003 002f 1 E: 1300099379.855897 0003 0035 27532 E: 1300099379.855898 0003 0036 22157 E: 1300099379.855909 0003 0000 29100 E: 1300099379.855910 0003 0001 13565 E: 1300099379.855912 0000 0000 0 E: 1300099379.860875 0003 002f 0 E: 1300099379.860885 0003 0035 29090 E: 1300099379.860887 0003 0036 13647 E: 1300099379.860890 0003 0030 1223 E: 1300099379.860896 0003 002f 1 E: 1300099379.860897 0003 0036 22115 E: 1300099379.860907 0003 0000 29097 E: 1300099379.860909 0003 0001 13647 E: 1300099379.860911 0000 0000 0 E: 1300099379.865876 0003 002f 0 E: 1300099379.865887 0003 0035 29060 E: 1300099379.865889 0003 0036 13727 E: 1300099379.865892 0003 0030 1281 E: 1300099379.865898 0003 002f 1 E: 1300099379.865899 0003 0036 22101 E: 1300099379.865909 0003 0000 29060 E: 1300099379.865911 0003 0001 13727 E: 1300099379.865913 0000 0000 0 E: 1300099379.871879 0003 002f 0 E: 1300099379.871884 0003 0035 29049 E: 1300099379.871886 0003 0036 13813 E: 1300099379.871889 0003 0030 1324 E: 1300099379.871895 0003 002f 1 E: 1300099379.871896 0003 0036 22055 E: 1300099379.871907 0003 0000 29057 E: 1300099379.871908 0003 0001 13813 E: 1300099379.871910 0000 0000 0 E: 1300099379.876875 0003 002f 0 E: 1300099379.876885 0003 0035 29016 E: 1300099379.876887 0003 0036 13895 E: 1300099379.876890 0003 0030 1357 E: 1300099379.876896 0003 002f 1 E: 1300099379.876896 0003 0035 27534 E: 1300099379.876898 0003 0036 22023 E: 1300099379.876908 0003 0000 29016 E: 1300099379.876910 0003 0001 13895 E: 1300099379.876912 0000 0000 0 E: 1300099379.881867 0003 002f 0 E: 1300099379.881875 0003 0035 29005 E: 1300099379.881881 0003 0036 13979 E: 1300099379.881890 0003 002f 1 E: 1300099379.881891 0003 0036 22009 E: 1300099379.881902 0003 0000 29013 E: 1300099379.881905 0003 0001 13979 E: 1300099379.881907 0000 0000 0 E: 1300099379.886874 0003 002f 0 E: 1300099379.886887 0003 0035 28974 E: 1300099379.886889 0003 0036 14057 E: 1300099379.886897 0003 002f 1 E: 1300099379.886898 0003 0035 27536 E: 1300099379.886899 0003 0036 21963 E: 1300099379.886901 0003 0034 1 E: 1300099379.886903 0003 0030 1288 E: 1300099379.886911 0003 0000 28974 E: 1300099379.886913 0003 0001 14057 E: 1300099379.886915 0000 0000 0 E: 1300099379.891874 0003 002f 0 E: 1300099379.891885 0003 0035 28963 E: 1300099379.891887 0003 0036 14137 E: 1300099379.891894 0003 002f 1 E: 1300099379.891895 0003 0035 27538 E: 1300099379.891897 0003 0036 21899 E: 1300099379.891899 0003 0030 1248 E: 1300099379.891908 0003 0000 28971 E: 1300099379.891910 0003 0001 14137 E: 1300099379.891911 0000 0000 0 E: 1300099379.896876 0003 002f 0 E: 1300099379.896886 0003 0035 28930 E: 1300099379.896888 0003 0036 14219 E: 1300099379.896896 0003 002f 1 E: 1300099379.896896 0003 0035 27540 E: 1300099379.896898 0003 0036 21867 E: 1300099379.896900 0003 0034 0 E: 1300099379.896901 0003 0030 1209 E: 1300099379.896910 0003 0000 28930 E: 1300099379.896912 0003 0001 14219 E: 1300099379.896913 0000 0000 0 E: 1300099379.901874 0003 002f 0 E: 1300099379.901885 0003 0035 28917 E: 1300099379.901887 0003 0036 14297 E: 1300099379.901890 0003 0030 1224 E: 1300099379.901895 0003 002f 1 E: 1300099379.901896 0003 0035 27543 E: 1300099379.901898 0003 0036 21835 E: 1300099379.901908 0003 0000 28926 E: 1300099379.901910 0003 0001 14297 E: 1300099379.901912 0000 0000 0 E: 1300099379.906874 0003 002f 0 E: 1300099379.906885 0003 0035 28882 E: 1300099379.906887 0003 0036 14381 E: 1300099379.906890 0003 0030 1191 E: 1300099379.906895 0003 002f 1 E: 1300099379.906896 0003 0035 27546 E: 1300099379.906897 0003 0036 21767 E: 1300099379.906900 0003 0030 1270 E: 1300099379.906909 0003 0000 28882 E: 1300099379.906910 0003 0001 14381 E: 1300099379.906912 0000 0000 0 E: 1300099379.911872 0003 002f 0 E: 1300099379.911883 0003 0035 28872 E: 1300099379.911884 0003 0036 14465 E: 1300099379.911892 0003 002f 1 E: 1300099379.911893 0003 0035 27549 E: 1300099379.911894 0003 0036 21737 E: 1300099379.911897 0003 0030 1316 E: 1300099379.911905 0003 0000 28879 E: 1300099379.911907 0003 0001 14465 E: 1300099379.911909 0000 0000 0 E: 1300099379.916874 0003 002f 0 E: 1300099379.916884 0003 0035 28840 E: 1300099379.916886 0003 0036 14543 E: 1300099379.916889 0003 0030 1323 E: 1300099379.916895 0003 002f 1 E: 1300099379.916895 0003 0035 27551 E: 1300099379.916897 0003 0036 21705 E: 1300099379.916899 0003 0030 1351 E: 1300099379.916908 0003 0000 28840 E: 1300099379.916910 0003 0001 14543 E: 1300099379.916912 0000 0000 0 E: 1300099379.921873 0003 002f 0 E: 1300099379.921883 0003 0035 28830 E: 1300099379.921885 0003 0036 14617 E: 1300099379.921888 0003 0030 1356 E: 1300099379.921893 0003 002f 1 E: 1300099379.921894 0003 0035 27554 E: 1300099379.921896 0003 0036 21673 E: 1300099379.921899 0003 0031 843 E: 1300099379.921907 0003 0000 28837 E: 1300099379.921909 0003 0001 14617 E: 1300099379.921911 0000 0000 0 E: 1300099379.926874 0003 002f 0 E: 1300099379.926885 0003 0035 28816 E: 1300099379.926887 0003 0036 14687 E: 1300099379.926895 0003 002f 1 E: 1300099379.926895 0003 0035 27556 E: 1300099379.926897 0003 0036 21641 E: 1300099379.926901 0003 0031 801 E: 1300099379.926908 0003 0000 28826 E: 1300099379.926910 0003 0001 14687 E: 1300099379.926912 0000 0000 0 E: 1300099379.932890 0003 002f 0 E: 1300099379.932894 0003 0035 28782 E: 1300099379.932896 0003 0036 14755 E: 1300099379.932904 0003 002f 1 E: 1300099379.932905 0003 0035 27559 E: 1300099379.932906 0003 0036 21627 E: 1300099379.932917 0003 0000 28782 E: 1300099379.932918 0003 0001 14755 E: 1300099379.932920 0000 0000 0 E: 1300099379.937874 0003 002f 0 E: 1300099379.937888 0003 0035 28772 E: 1300099379.937890 0003 0036 14821 E: 1300099379.937897 0003 002f 1 E: 1300099379.937898 0003 0035 27561 E: 1300099379.937900 0003 0036 21581 E: 1300099379.937910 0003 0000 28779 E: 1300099379.937912 0003 0001 14821 E: 1300099379.937913 0000 0000 0 E: 1300099379.942873 0003 002f 0 E: 1300099379.942884 0003 0035 28759 E: 1300099379.942885 0003 0036 14891 E: 1300099379.942893 0003 002f 1 E: 1300099379.942894 0003 0035 27563 E: 1300099379.942895 0003 0036 21549 E: 1300099379.942906 0003 0000 28769 E: 1300099379.942907 0003 0001 14891 E: 1300099379.942909 0000 0000 0 E: 1300099379.947868 0003 002f 0 E: 1300099379.947878 0003 0035 28746 E: 1300099379.947880 0003 0036 14925 E: 1300099379.947891 0003 002f 1 E: 1300099379.947892 0003 0035 27565 E: 1300099379.947894 0003 0036 21535 E: 1300099379.947905 0003 0000 28757 E: 1300099379.947906 0003 0001 14925 E: 1300099379.947908 0000 0000 0 E: 1300099379.952871 0003 002f 0 E: 1300099379.952883 0003 0035 28716 E: 1300099379.952885 0003 0036 14991 E: 1300099379.952894 0003 002f 1 E: 1300099379.952894 0003 0036 21489 E: 1300099379.952905 0003 0000 28716 E: 1300099379.952906 0003 0001 14991 E: 1300099379.952908 0000 0000 0 E: 1300099379.957865 0003 002f 0 E: 1300099379.957873 0003 0035 28708 E: 1300099379.957879 0003 0036 15057 E: 1300099379.957888 0003 002f 1 E: 1300099379.957889 0003 0036 21459 E: 1300099379.957900 0003 0000 28714 E: 1300099379.957903 0003 0001 15057 E: 1300099379.957905 0000 0000 0 E: 1300099379.962871 0003 002f 0 E: 1300099379.962883 0003 0035 28695 E: 1300099379.962885 0003 0036 15125 E: 1300099379.962888 0003 0030 1224 E: 1300099379.962893 0003 002f 1 E: 1300099379.962894 0003 0035 27563 E: 1300099379.962896 0003 0036 21445 E: 1300099379.962906 0003 0000 28704 E: 1300099379.962908 0003 0001 15125 E: 1300099379.962910 0000 0000 0 E: 1300099379.967874 0003 002f 0 E: 1300099379.967885 0003 0035 28680 E: 1300099379.967886 0003 0036 15193 E: 1300099379.967889 0003 0030 1191 E: 1300099379.967895 0003 002f 1 E: 1300099379.967896 0003 0035 27560 E: 1300099379.967897 0003 0036 21399 E: 1300099379.967908 0003 0000 28692 E: 1300099379.967909 0003 0001 15193 E: 1300099379.967911 0000 0000 0 E: 1300099379.972873 0003 002f 0 E: 1300099379.972884 0003 0035 28646 E: 1300099379.972886 0003 0036 15267 E: 1300099379.972894 0003 002f 1 E: 1300099379.972895 0003 0035 27557 E: 1300099379.972896 0003 0036 21385 E: 1300099379.972907 0003 0000 28646 E: 1300099379.972908 0003 0001 15267 E: 1300099379.972910 0000 0000 0 E: 1300099379.977872 0003 002f 0 E: 1300099379.977882 0003 0035 28637 E: 1300099379.977883 0003 0036 15341 E: 1300099379.977886 0003 0030 1323 E: 1300099379.977892 0003 002f 1 E: 1300099379.977892 0003 0035 27554 E: 1300099379.977894 0003 0036 21343 E: 1300099379.977904 0003 0000 28643 E: 1300099379.977906 0003 0001 15341 E: 1300099379.977908 0000 0000 0 E: 1300099379.982874 0003 002f 0 E: 1300099379.982885 0003 0035 28627 E: 1300099379.982887 0003 0036 15371 E: 1300099379.982890 0003 0030 1356 E: 1300099379.982895 0003 002f 1 E: 1300099379.982896 0003 0035 27551 E: 1300099379.982897 0003 0036 21330 E: 1300099379.982908 0003 0000 28635 E: 1300099379.982910 0003 0001 15371 E: 1300099379.982912 0000 0000 0 E: 1300099379.987874 0003 002f 0 E: 1300099379.987885 0003 0035 28612 E: 1300099379.987887 0003 0036 15441 E: 1300099379.987894 0003 002f 1 E: 1300099379.987895 0003 0035 27548 E: 1300099379.987897 0003 0036 21289 E: 1300099379.987907 0003 0000 28623 E: 1300099379.987909 0003 0001 15441 E: 1300099379.987911 0000 0000 0 E: 1300099379.993862 0003 002f 0 E: 1300099379.993875 0003 0035 28580 E: 1300099379.993877 0003 0036 15511 E: 1300099379.993884 0003 002f 1 E: 1300099379.993885 0003 0035 27545 E: 1300099379.993887 0003 0036 21277 E: 1300099379.993897 0003 0000 28580 E: 1300099379.993899 0003 0001 15511 E: 1300099379.993901 0000 0000 0 E: 1300099379.998874 0003 002f 0 E: 1300099379.998885 0003 0035 28571 E: 1300099379.998887 0003 0036 15583 E: 1300099379.998894 0003 002f 1 E: 1300099379.998895 0003 0035 27542 E: 1300099379.998897 0003 0036 21241 E: 1300099379.998907 0003 0000 28577 E: 1300099379.998909 0003 0001 15583 E: 1300099379.998911 0000 0000 0 E: 1300099380.003862 0003 002f 0 E: 1300099380.003873 0003 0035 28557 E: 1300099380.003875 0003 0036 15649 E: 1300099380.003883 0003 002f 1 E: 1300099380.003884 0003 0035 27539 E: 1300099380.003886 0003 0036 21227 E: 1300099380.003888 0003 0030 1221 E: 1300099380.003897 0003 0000 28567 E: 1300099380.003899 0003 0001 15649 E: 1300099380.003901 0000 0000 0 E: 1300099380.008870 0003 002f 0 E: 1300099380.008883 0003 0035 28545 E: 1300099380.008885 0003 0036 15683 E: 1300099380.008892 0003 002f 1 E: 1300099380.008893 0003 0035 27537 E: 1300099380.008895 0003 0036 21185 E: 1300099380.008897 0003 0030 1188 E: 1300099380.008906 0003 0000 28556 E: 1300099380.008908 0003 0001 15683 E: 1300099380.008909 0000 0000 0 E: 1300099380.013863 0003 002f 0 E: 1300099380.013875 0003 0035 28514 E: 1300099380.013877 0003 0036 15751 E: 1300099380.013885 0003 002f 1 E: 1300099380.013885 0003 0035 27535 E: 1300099380.013887 0003 0036 21171 E: 1300099380.013897 0003 0000 28514 E: 1300099380.013899 0003 0001 15751 E: 1300099380.013901 0000 0000 0 E: 1300099380.018872 0003 002f 0 E: 1300099380.018882 0003 0035 28505 E: 1300099380.018884 0003 0036 15819 E: 1300099380.018887 0003 0030 1224 E: 1300099380.018893 0003 002f 1 E: 1300099380.018893 0003 0035 27533 E: 1300099380.018895 0003 0036 21127 E: 1300099380.018905 0003 0000 28511 E: 1300099380.018907 0003 0001 15819 E: 1300099380.018909 0000 0000 0 E: 1300099380.023859 0003 002f 0 E: 1300099380.023870 0003 0035 28490 E: 1300099380.023872 0003 0036 15889 E: 1300099380.023874 0003 0030 1191 E: 1300099380.023880 0003 002f 1 E: 1300099380.023881 0003 0035 27531 E: 1300099380.023882 0003 0036 21113 E: 1300099380.023893 0003 0000 28500 E: 1300099380.023894 0003 0001 15889 E: 1300099380.023896 0000 0000 0 E: 1300099380.028871 0003 002f 0 E: 1300099380.028881 0003 0035 28458 E: 1300099380.028883 0003 0036 15955 E: 1300099380.028891 0003 002f 1 E: 1300099380.028892 0003 0035 27529 E: 1300099380.028893 0003 0036 21071 E: 1300099380.028904 0003 0000 28458 E: 1300099380.028905 0003 0001 15955 E: 1300099380.028907 0000 0000 0 E: 1300099380.033861 0003 002f 0 E: 1300099380.033871 0003 0035 28449 E: 1300099380.033873 0003 0036 16025 E: 1300099380.033881 0003 002f 1 E: 1300099380.033882 0003 0036 21041 E: 1300099380.033893 0003 0000 28455 E: 1300099380.033894 0003 0001 16025 E: 1300099380.033896 0000 0000 0 E: 1300099380.038868 0003 002f 0 E: 1300099380.038878 0003 0035 28441 E: 1300099380.038880 0003 0036 16055 E: 1300099380.038883 0003 0030 1323 E: 1300099380.038889 0003 002f 1 E: 1300099380.038889 0003 0035 27527 E: 1300099380.038891 0003 0036 21028 E: 1300099380.038902 0003 0000 28451 E: 1300099380.038903 0003 0001 16055 E: 1300099380.038905 0000 0000 0 E: 1300099380.043861 0003 002f 0 E: 1300099380.043871 0003 0035 28428 E: 1300099380.043873 0003 0036 16125 E: 1300099380.043876 0003 0030 1356 E: 1300099380.043883 0003 002f 1 E: 1300099380.043883 0003 0036 20987 E: 1300099380.043886 0003 0030 1322 E: 1300099380.043895 0003 0000 28439 E: 1300099380.043896 0003 0001 16125 E: 1300099380.043898 0000 0000 0 E: 1300099380.049873 0003 002f 0 E: 1300099380.049884 0003 0035 28414 E: 1300099380.049886 0003 0036 16193 E: 1300099380.049893 0003 002f 1 E: 1300099380.049894 0003 0035 27525 E: 1300099380.049896 0003 0036 20957 E: 1300099380.049898 0003 0030 1355 E: 1300099380.049907 0003 0000 28426 E: 1300099380.049909 0003 0001 16193 E: 1300099380.049911 0000 0000 0 E: 1300099380.054873 0003 002f 0 E: 1300099380.054884 0003 0035 28384 E: 1300099380.054886 0003 0036 16259 E: 1300099380.054894 0003 002f 1 E: 1300099380.054894 0003 0035 27523 E: 1300099380.054896 0003 0036 20943 E: 1300099380.054906 0003 0000 28384 E: 1300099380.054908 0003 0001 16259 E: 1300099380.054910 0000 0000 0 E: 1300099380.059870 0003 002f 0 E: 1300099380.059880 0003 0035 28381 E: 1300099380.059882 0003 0036 16331 E: 1300099380.059890 0003 002f 1 E: 1300099380.059891 0003 0036 20901 E: 1300099380.059903 0003 0001 16331 E: 1300099380.059904 0000 0000 0 E: 1300099380.064871 0003 002f 0 E: 1300099380.064876 0003 0035 28371 E: 1300099380.064878 0003 0036 16401 E: 1300099380.064887 0003 002f 1 E: 1300099380.064888 0003 0036 20871 E: 1300099380.064898 0003 0000 28380 E: 1300099380.064900 0003 0001 16401 E: 1300099380.064902 0000 0000 0 E: 1300099380.069870 0003 002f 0 E: 1300099380.069880 0003 0035 28363 E: 1300099380.069882 0003 0036 16433 E: 1300099380.069890 0003 002f 1 E: 1300099380.069891 0003 0036 20841 E: 1300099380.069901 0003 0000 28371 E: 1300099380.069903 0003 0001 16433 E: 1300099380.069905 0000 0000 0 E: 1300099380.074872 0003 002f 0 E: 1300099380.074883 0003 0035 28359 E: 1300099380.074885 0003 0036 16463 E: 1300099380.074892 0003 002f 1 E: 1300099380.074893 0003 0035 27520 E: 1300099380.074895 0003 0036 20809 E: 1300099380.074906 0003 0000 28368 E: 1300099380.074907 0003 0001 16463 E: 1300099380.074909 0000 0000 0 E: 1300099380.079870 0003 002f 0 E: 1300099380.079881 0003 0035 28347 E: 1300099380.079883 0003 0036 16531 E: 1300099380.079890 0003 002f 1 E: 1300099380.079891 0003 0035 27512 E: 1300099380.079893 0003 0036 20735 E: 1300099380.079903 0003 0000 28357 E: 1300099380.079905 0003 0001 16531 E: 1300099380.079907 0000 0000 0 E: 1300099380.084872 0003 002f 0 E: 1300099380.084885 0003 0035 28334 E: 1300099380.084886 0003 0036 16603 E: 1300099380.084889 0003 0030 1224 E: 1300099380.084895 0003 002f 1 E: 1300099380.084896 0003 0035 27504 E: 1300099380.084897 0003 0036 20663 E: 1300099380.084908 0003 0000 28345 E: 1300099380.084910 0003 0001 16603 E: 1300099380.084912 0000 0000 0 E: 1300099380.089869 0003 002f 0 E: 1300099380.089880 0003 0035 28321 E: 1300099380.089882 0003 0036 16683 E: 1300099380.089885 0003 0030 1191 E: 1300099380.089890 0003 002f 1 E: 1300099380.089891 0003 0035 27496 E: 1300099380.089892 0003 0036 20581 E: 1300099380.089895 0003 0030 1223 E: 1300099380.089904 0003 0000 28333 E: 1300099380.089905 0003 0001 16683 E: 1300099380.089907 0000 0000 0 E: 1300099380.094870 0003 002f 0 E: 1300099380.094880 0003 0035 28290 E: 1300099380.094882 0003 0036 16761 E: 1300099380.094890 0003 002f 1 E: 1300099380.094891 0003 0035 27492 E: 1300099380.094892 0003 0036 20495 E: 1300099380.094895 0003 0030 1190 E: 1300099380.094903 0003 0000 28290 E: 1300099380.094905 0003 0001 16761 E: 1300099380.094907 0000 0000 0 E: 1300099380.099870 0003 002f 0 E: 1300099380.099880 0003 0035 28279 E: 1300099380.099882 0003 0036 16835 E: 1300099380.099885 0003 0030 1323 E: 1300099380.099890 0003 002f 1 E: 1300099380.099891 0003 0035 27484 E: 1300099380.099893 0003 0036 20405 E: 1300099380.099895 0003 0030 1323 E: 1300099380.099904 0003 0000 28287 E: 1300099380.099905 0003 0001 16835 E: 1300099380.099907 0000 0000 0 E: 1300099380.104874 0003 002f 0 E: 1300099380.104883 0003 0035 28242 E: 1300099380.104885 0003 0036 16911 E: 1300099380.104888 0003 0030 1356 E: 1300099380.104893 0003 002f 1 E: 1300099380.104894 0003 0035 27481 E: 1300099380.104896 0003 0036 20307 E: 1300099380.104898 0003 0030 1356 E: 1300099380.104906 0003 0000 28242 E: 1300099380.104908 0003 0001 16911 E: 1300099380.104910 0000 0000 0 E: 1300099380.110871 0003 002f 0 E: 1300099380.110882 0003 0035 28228 E: 1300099380.110884 0003 0036 16979 E: 1300099380.110891 0003 002f 1 E: 1300099380.110892 0003 0035 27472 E: 1300099380.110894 0003 0036 20211 E: 1300099380.110904 0003 0000 28238 E: 1300099380.110906 0003 0001 16979 E: 1300099380.110907 0000 0000 0 E: 1300099380.115872 0003 002f 0 E: 1300099380.115883 0003 0035 28186 E: 1300099380.115885 0003 0036 17049 E: 1300099380.115893 0003 002f 1 E: 1300099380.115893 0003 0035 27464 E: 1300099380.115895 0003 0036 20097 E: 1300099380.115905 0003 0000 28186 E: 1300099380.115907 0003 0001 17049 E: 1300099380.115909 0000 0000 0 E: 1300099380.120870 0003 002f 0 E: 1300099380.120881 0003 0035 28183 E: 1300099380.120883 0003 0036 17079 E: 1300099380.120891 0003 002f 1 E: 1300099380.120891 0003 0035 27460 E: 1300099380.120893 0003 0036 19999 E: 1300099380.120896 0003 0030 1224 E: 1300099380.120905 0003 0001 17079 E: 1300099380.120907 0000 0000 0 E: 1300099380.125862 0003 002f 0 E: 1300099380.125867 0003 0035 28170 E: 1300099380.125869 0003 0036 17109 E: 1300099380.125877 0003 002f 1 E: 1300099380.125878 0003 0035 27457 E: 1300099380.125880 0003 0036 19889 E: 1300099380.125882 0003 0030 1191 E: 1300099380.125891 0003 0000 28178 E: 1300099380.125893 0003 0001 17109 E: 1300099380.125895 0000 0000 0 E: 1300099380.130858 0003 002f 0 E: 1300099380.130865 0003 0035 28157 E: 1300099380.130867 0003 0036 17139 E: 1300099380.130878 0003 002f 1 E: 1300099380.130879 0003 0035 27454 E: 1300099380.130881 0003 0036 19809 E: 1300099380.130891 0003 0000 28167 E: 1300099380.130892 0003 0001 17139 E: 1300099380.130894 0000 0000 0 E: 1300099380.135877 0003 002f 0 E: 1300099380.135892 0003 0035 28143 E: 1300099380.135894 0003 0036 17171 E: 1300099380.135907 0003 002f 1 E: 1300099380.135908 0003 0035 27450 E: 1300099380.135909 0003 0036 19725 E: 1300099380.135919 0003 0000 28155 E: 1300099380.135921 0003 0001 17171 E: 1300099380.135922 0000 0000 0 E: 1300099380.140870 0003 002f 0 E: 1300099380.140883 0003 0035 28129 E: 1300099380.140885 0003 0036 17185 E: 1300099380.140892 0003 002f 1 E: 1300099380.140893 0003 0035 27446 E: 1300099380.140895 0003 0036 19651 E: 1300099380.140897 0003 0030 1323 E: 1300099380.140906 0003 0000 28142 E: 1300099380.140908 0003 0001 17174 E: 1300099380.140909 0000 0000 0 E: 1300099380.145869 0003 002f 0 E: 1300099380.145879 0003 0035 28116 E: 1300099380.145881 0003 0036 17231 E: 1300099380.145889 0003 002f 1 E: 1300099380.145889 0003 0035 27438 E: 1300099380.145891 0003 0036 19577 E: 1300099380.145894 0003 0030 1356 E: 1300099380.145902 0003 0000 28129 E: 1300099380.145904 0003 0001 17231 E: 1300099380.145905 0000 0000 0 E: 1300099380.150870 0003 002f 0 E: 1300099380.150881 0003 0035 28103 E: 1300099380.150883 0003 0036 17245 E: 1300099380.150891 0003 002f 1 E: 1300099380.150891 0003 0035 27435 E: 1300099380.150893 0003 0036 19511 E: 1300099380.150903 0003 0000 28116 E: 1300099380.150905 0003 0001 17234 E: 1300099380.150907 0000 0000 0 E: 1300099380.155869 0003 002f 0 E: 1300099380.155880 0003 0035 28090 E: 1300099380.155882 0003 0036 17287 E: 1300099380.155884 0003 0030 1224 E: 1300099380.155890 0003 002f 1 E: 1300099380.155891 0003 0035 27432 E: 1300099380.155892 0003 0036 19497 E: 1300099380.155903 0003 0000 28103 E: 1300099380.155904 0003 0001 17287 E: 1300099380.155906 0000 0000 0 E: 1300099380.160870 0003 002f 0 E: 1300099380.160881 0003 0035 28079 E: 1300099380.160883 0003 0036 17317 E: 1300099380.160886 0003 0030 1191 E: 1300099380.160891 0003 002f 1 E: 1300099380.160892 0003 0035 27429 E: 1300099380.160894 0003 0036 19455 E: 1300099380.160904 0003 0000 28091 E: 1300099380.160906 0003 0001 17317 E: 1300099380.160907 0000 0000 0 E: 1300099380.166885 0003 002f 0 E: 1300099380.166889 0003 0035 28067 E: 1300099380.166891 0003 0036 17331 E: 1300099380.166899 0003 002f 1 E: 1300099380.166900 0003 0035 27426 E: 1300099380.166901 0003 0036 19442 E: 1300099380.166912 0003 0000 28079 E: 1300099380.166913 0003 0001 17320 E: 1300099380.166915 0000 0000 0 E: 1300099380.171870 0003 002f 0 E: 1300099380.171880 0003 0035 28056 E: 1300099380.171882 0003 0036 17369 E: 1300099380.171891 0003 002f 1 E: 1300099380.171892 0003 0036 19403 E: 1300099380.171902 0003 0000 28067 E: 1300099380.171904 0003 0001 17369 E: 1300099380.171905 0000 0000 0 E: 1300099380.176869 0003 002f 0 E: 1300099380.176879 0003 0035 28046 E: 1300099380.176881 0003 0036 17383 E: 1300099380.176890 0003 002f 1 E: 1300099380.176890 0003 0036 19392 E: 1300099380.176901 0003 0000 28056 E: 1300099380.176902 0003 0001 17372 E: 1300099380.176904 0000 0000 0 E: 1300099380.181861 0003 002f 0 E: 1300099380.181866 0003 0035 28035 E: 1300099380.181868 0003 0036 17425 E: 1300099380.181876 0003 002f 1 E: 1300099380.181877 0003 0036 19357 E: 1300099380.181887 0003 0000 28045 E: 1300099380.181889 0003 0001 17425 E: 1300099380.181891 0000 0000 0 E: 1300099380.186873 0003 002f 0 E: 1300099380.186884 0003 0035 28025 E: 1300099380.186886 0003 0036 17438 E: 1300099380.186892 0003 002f 1 E: 1300099380.186892 0003 0039 -1 E: 1300099380.186899 0003 0000 28035 E: 1300099380.186901 0003 0001 17428 E: 1300099380.186902 0000 0000 0 E: 1300099380.191868 0003 002f 0 E: 1300099380.191880 0003 0035 28014 E: 1300099380.191882 0003 0036 17481 E: 1300099380.191891 0003 0000 28024 E: 1300099380.191893 0003 0001 17481 E: 1300099380.191895 0000 0000 0 E: 1300099380.196872 0003 0035 28000 E: 1300099380.196885 0003 0036 17559 E: 1300099380.196894 0003 0000 28012 E: 1300099380.196896 0003 0001 17559 E: 1300099380.196898 0000 0000 0 E: 1300099380.201866 0003 0039 -1 E: 1300099380.201881 0001 014a 0 E: 1300099380.201883 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/evemu/two-rotate.evemu0000644000015600001650000015253512651522342025371 0ustar pbuserpbgroup00000000000000N: 3M-3M-MicroTouch-USB-controller I: 0003 0596 0502 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 80 73 02 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 32767 15 0 A: 01 0 32767 15 0 A: 2f 0 59 0 0 A: 30 0 32767 255 0 A: 31 0 32767 255 0 A: 34 0 1 0 0 A: 35 0 32767 15 0 A: 36 0 32767 15 0 A: 39 0 65535 0 0 E: 1300099395.330589 0003 0039 12 E: 1300099395.330605 0003 0035 25582 E: 1300099395.330608 0003 0036 18965 E: 1300099395.330610 0003 0030 1323 E: 1300099395.330615 0001 014a 1 E: 1300099395.330618 0003 0000 25582 E: 1300099395.330620 0003 0001 18965 E: 1300099395.330622 0000 0000 0 E: 1300099395.335585 0003 0030 1356 E: 1300099395.335604 0000 0000 0 E: 1300099395.355589 0003 002f 1 E: 1300099395.355599 0003 0039 13 E: 1300099395.355602 0003 0035 30032 E: 1300099395.355603 0003 0036 17157 E: 1300099395.355606 0003 0030 1224 E: 1300099395.355617 0000 0000 0 E: 1300099395.360592 0003 0030 1191 E: 1300099395.360612 0000 0000 0 E: 1300099395.411587 0003 0036 17155 E: 1300099395.411609 0000 0000 0 E: 1300099395.416580 0003 002f 0 E: 1300099395.416591 0003 0036 18963 E: 1300099395.416599 0003 002f 1 E: 1300099395.416600 0003 0036 17152 E: 1300099395.416612 0000 0000 0 E: 1300099395.421581 0003 002f 0 E: 1300099395.421591 0003 0036 18961 E: 1300099395.421599 0003 002f 1 E: 1300099395.421600 0003 0036 17149 E: 1300099395.421602 0003 0030 1323 E: 1300099395.421613 0000 0000 0 E: 1300099395.426581 0003 002f 0 E: 1300099395.426591 0003 0035 25580 E: 1300099395.426593 0003 0036 18959 E: 1300099395.426601 0003 002f 1 E: 1300099395.426602 0003 0036 17146 E: 1300099395.426604 0003 0030 1356 E: 1300099395.426615 0000 0000 0 E: 1300099395.432584 0003 002f 0 E: 1300099395.432595 0003 0036 18957 E: 1300099395.432604 0003 002f 1 E: 1300099395.432605 0003 0036 17143 E: 1300099395.432616 0003 0001 18963 E: 1300099395.432618 0000 0000 0 E: 1300099395.437583 0003 002f 0 E: 1300099395.437593 0003 0035 25578 E: 1300099395.437595 0003 0036 18955 E: 1300099395.437603 0003 002f 1 E: 1300099395.437603 0003 0035 30029 E: 1300099395.437605 0003 0036 17129 E: 1300099395.437616 0003 0001 18961 E: 1300099395.437618 0000 0000 0 E: 1300099395.442581 0003 002f 0 E: 1300099395.442591 0003 0035 25576 E: 1300099395.442593 0003 0036 18952 E: 1300099395.442600 0003 002f 1 E: 1300099395.442601 0003 0035 30020 E: 1300099395.442603 0003 0036 17097 E: 1300099395.442614 0003 0001 18958 E: 1300099395.442615 0000 0000 0 E: 1300099395.447584 0003 002f 0 E: 1300099395.447594 0003 0035 25574 E: 1300099395.447596 0003 0036 18949 E: 1300099395.447603 0003 002f 1 E: 1300099395.447604 0003 0035 30016 E: 1300099395.447606 0003 0036 17087 E: 1300099395.447616 0003 0000 25580 E: 1300099395.447618 0003 0001 18955 E: 1300099395.447619 0000 0000 0 E: 1300099395.452588 0003 0035 30008 E: 1300099395.452599 0003 0036 17057 E: 1300099395.452612 0000 0000 0 E: 1300099395.457581 0003 002f 0 E: 1300099395.457591 0003 0035 25572 E: 1300099395.457593 0003 0036 18947 E: 1300099395.457600 0003 002f 1 E: 1300099395.457601 0003 0035 30004 E: 1300099395.457602 0003 0036 17048 E: 1300099395.457613 0003 0000 25578 E: 1300099395.457614 0003 0001 18953 E: 1300099395.457616 0000 0000 0 E: 1300099395.462579 0003 002f 0 E: 1300099395.462590 0003 0035 25570 E: 1300099395.462592 0003 0036 18945 E: 1300099395.462599 0003 002f 1 E: 1300099395.462600 0003 0035 29995 E: 1300099395.462601 0003 0036 17017 E: 1300099395.462612 0003 0000 25576 E: 1300099395.462613 0003 0001 18951 E: 1300099395.462615 0000 0000 0 E: 1300099395.467581 0003 002f 0 E: 1300099395.467591 0003 0036 18943 E: 1300099395.467599 0003 002f 1 E: 1300099395.467599 0003 0035 29986 E: 1300099395.467601 0003 0036 17007 E: 1300099395.467612 0003 0001 18949 E: 1300099395.467614 0000 0000 0 E: 1300099395.472579 0003 002f 0 E: 1300099395.472590 0003 0035 25568 E: 1300099395.472592 0003 0036 18941 E: 1300099395.472599 0003 002f 1 E: 1300099395.472600 0003 0035 29982 E: 1300099395.472601 0003 0036 16993 E: 1300099395.472611 0003 0000 25574 E: 1300099395.472613 0003 0001 18947 E: 1300099395.472615 0000 0000 0 E: 1300099395.477579 0003 002f 0 E: 1300099395.477589 0003 0035 25566 E: 1300099395.477591 0003 0036 18939 E: 1300099395.477598 0003 002f 1 E: 1300099395.477599 0003 0035 29973 E: 1300099395.477600 0003 0036 16961 E: 1300099395.477610 0003 0000 25572 E: 1300099395.477612 0003 0001 18945 E: 1300099395.477614 0000 0000 0 E: 1300099395.482579 0003 002f 0 E: 1300099395.482589 0003 0035 25564 E: 1300099395.482590 0003 0036 18937 E: 1300099395.482598 0003 002f 1 E: 1300099395.482598 0003 0035 29964 E: 1300099395.482600 0003 0036 16951 E: 1300099395.482610 0003 0000 25570 E: 1300099395.482612 0003 0001 18943 E: 1300099395.482613 0000 0000 0 E: 1300099395.488580 0003 002f 0 E: 1300099395.488590 0003 0035 25562 E: 1300099395.488592 0003 0036 18935 E: 1300099395.488599 0003 002f 1 E: 1300099395.488600 0003 0035 29956 E: 1300099395.488602 0003 0036 16921 E: 1300099395.488612 0003 0000 25568 E: 1300099395.488613 0003 0001 18941 E: 1300099395.488615 0000 0000 0 E: 1300099395.493581 0003 002f 0 E: 1300099395.493592 0003 0036 18933 E: 1300099395.493600 0003 002f 1 E: 1300099395.493600 0003 0035 29948 E: 1300099395.493602 0003 0036 16910 E: 1300099395.493613 0003 0001 18939 E: 1300099395.493615 0000 0000 0 E: 1300099395.498579 0003 002f 0 E: 1300099395.498589 0003 0035 25560 E: 1300099395.498591 0003 0036 18931 E: 1300099395.498599 0003 002f 1 E: 1300099395.498599 0003 0035 29940 E: 1300099395.498601 0003 0036 16877 E: 1300099395.498611 0003 0000 25566 E: 1300099395.498612 0003 0001 18937 E: 1300099395.498614 0000 0000 0 E: 1300099395.503579 0003 002f 0 E: 1300099395.503590 0003 0035 25558 E: 1300099395.503598 0003 002f 1 E: 1300099395.503599 0003 0035 29932 E: 1300099395.503600 0003 0036 16864 E: 1300099395.503610 0003 0000 25564 E: 1300099395.503613 0000 0000 0 E: 1300099395.508579 0003 002f 0 E: 1300099395.508589 0003 0035 25556 E: 1300099395.508590 0003 0036 18929 E: 1300099395.508598 0003 002f 1 E: 1300099395.508598 0003 0035 29924 E: 1300099395.508600 0003 0036 16825 E: 1300099395.508610 0003 0000 25562 E: 1300099395.508612 0003 0001 18935 E: 1300099395.508613 0000 0000 0 E: 1300099395.513580 0003 002f 0 E: 1300099395.513590 0003 0036 18927 E: 1300099395.513598 0003 002f 1 E: 1300099395.513598 0003 0035 29916 E: 1300099395.513600 0003 0036 16813 E: 1300099395.513602 0003 0030 1224 E: 1300099395.513612 0003 0001 18933 E: 1300099395.513613 0000 0000 0 E: 1300099395.518579 0003 002f 0 E: 1300099395.518589 0003 0035 25554 E: 1300099395.518591 0003 0036 18925 E: 1300099395.518598 0003 002f 1 E: 1300099395.518599 0003 0035 29907 E: 1300099395.518600 0003 0036 16775 E: 1300099395.518603 0003 0030 1191 E: 1300099395.518611 0003 0000 25560 E: 1300099395.518612 0003 0001 18931 E: 1300099395.518614 0000 0000 0 E: 1300099395.523579 0003 002f 0 E: 1300099395.523590 0003 0035 25552 E: 1300099395.523591 0003 0036 18923 E: 1300099395.523599 0003 002f 1 E: 1300099395.523599 0003 0035 29897 E: 1300099395.523601 0003 0036 16743 E: 1300099395.523611 0003 0000 25558 E: 1300099395.523613 0003 0001 18929 E: 1300099395.523614 0000 0000 0 E: 1300099395.528578 0003 002f 0 E: 1300099395.528588 0003 0035 25550 E: 1300099395.528590 0003 0036 18921 E: 1300099395.528597 0003 002f 1 E: 1300099395.528598 0003 0035 29888 E: 1300099395.528599 0003 0036 16729 E: 1300099395.528609 0003 0000 25556 E: 1300099395.528611 0003 0001 18927 E: 1300099395.528613 0000 0000 0 E: 1300099395.533578 0003 002f 0 E: 1300099395.533588 0003 0035 25548 E: 1300099395.533590 0003 0036 18919 E: 1300099395.533597 0003 002f 1 E: 1300099395.533598 0003 0035 29879 E: 1300099395.533600 0003 0036 16687 E: 1300099395.533602 0003 0030 1323 E: 1300099395.533611 0003 0000 25554 E: 1300099395.533612 0003 0001 18925 E: 1300099395.533614 0000 0000 0 E: 1300099395.538579 0003 002f 0 E: 1300099395.538589 0003 0036 18917 E: 1300099395.538597 0003 002f 1 E: 1300099395.538598 0003 0035 29869 E: 1300099395.538599 0003 0036 16655 E: 1300099395.538602 0003 0030 1356 E: 1300099395.538611 0003 0001 18923 E: 1300099395.538613 0000 0000 0 E: 1300099395.544578 0003 002f 0 E: 1300099395.544588 0003 0035 25546 E: 1300099395.544590 0003 0036 18915 E: 1300099395.544597 0003 002f 1 E: 1300099395.544598 0003 0035 29860 E: 1300099395.544599 0003 0036 16625 E: 1300099395.544610 0003 0000 25552 E: 1300099395.544611 0003 0001 18921 E: 1300099395.544613 0000 0000 0 E: 1300099395.549579 0003 002f 0 E: 1300099395.549589 0003 0035 25544 E: 1300099395.549591 0003 0036 18913 E: 1300099395.549598 0003 002f 1 E: 1300099395.549599 0003 0035 29851 E: 1300099395.549600 0003 0036 16593 E: 1300099395.549611 0003 0000 25550 E: 1300099395.549612 0003 0001 18919 E: 1300099395.549614 0000 0000 0 E: 1300099395.554578 0003 002f 0 E: 1300099395.554589 0003 0035 25542 E: 1300099395.554590 0003 0036 18911 E: 1300099395.554598 0003 002f 1 E: 1300099395.554598 0003 0035 29840 E: 1300099395.554600 0003 0036 16563 E: 1300099395.554610 0003 0000 25548 E: 1300099395.554612 0003 0001 18917 E: 1300099395.554613 0000 0000 0 E: 1300099395.559577 0003 002f 0 E: 1300099395.559588 0003 0035 25540 E: 1300099395.559589 0003 0036 18909 E: 1300099395.559597 0003 002f 1 E: 1300099395.559597 0003 0035 29830 E: 1300099395.559599 0003 0036 16533 E: 1300099395.559609 0003 0000 25546 E: 1300099395.559611 0003 0001 18915 E: 1300099395.559612 0000 0000 0 E: 1300099395.564582 0003 002f 0 E: 1300099395.564592 0003 0035 25538 E: 1300099395.564594 0003 0036 18907 E: 1300099395.564601 0003 002f 1 E: 1300099395.564602 0003 0035 29821 E: 1300099395.564604 0003 0036 16503 E: 1300099395.564614 0003 0000 25544 E: 1300099395.564615 0003 0001 18913 E: 1300099395.564617 0000 0000 0 E: 1300099395.569578 0003 002f 0 E: 1300099395.569588 0003 0036 18905 E: 1300099395.569596 0003 002f 1 E: 1300099395.569597 0003 0035 29811 E: 1300099395.569599 0003 0036 16471 E: 1300099395.569610 0003 0001 18911 E: 1300099395.569611 0000 0000 0 E: 1300099395.574578 0003 002f 0 E: 1300099395.574588 0003 0035 25536 E: 1300099395.574589 0003 0036 18903 E: 1300099395.574597 0003 002f 1 E: 1300099395.574597 0003 0035 29801 E: 1300099395.574599 0003 0036 16457 E: 1300099395.574609 0003 0000 25542 E: 1300099395.574611 0003 0001 18909 E: 1300099395.574612 0000 0000 0 E: 1300099395.579576 0003 002f 0 E: 1300099395.579587 0003 0035 25534 E: 1300099395.579589 0003 0036 18901 E: 1300099395.579596 0003 002f 1 E: 1300099395.579597 0003 0035 29791 E: 1300099395.579598 0003 0036 16413 E: 1300099395.579608 0003 0000 25540 E: 1300099395.579610 0003 0001 18907 E: 1300099395.579611 0000 0000 0 E: 1300099395.584577 0003 002f 0 E: 1300099395.584587 0003 0035 25532 E: 1300099395.584589 0003 0036 18899 E: 1300099395.584597 0003 002f 1 E: 1300099395.584597 0003 0035 29758 E: 1300099395.584599 0003 0036 16343 E: 1300099395.584609 0003 0000 25538 E: 1300099395.584611 0003 0001 18905 E: 1300099395.584612 0000 0000 0 E: 1300099395.589577 0003 002f 0 E: 1300099395.589588 0003 0035 25530 E: 1300099395.589596 0003 002f 1 E: 1300099395.589597 0003 0035 29749 E: 1300099395.589598 0003 0036 16273 E: 1300099395.589609 0003 0000 25536 E: 1300099395.589611 0000 0000 0 E: 1300099395.594577 0003 002f 0 E: 1300099395.594588 0003 0035 25528 E: 1300099395.594589 0003 0036 18896 E: 1300099395.594597 0003 002f 1 E: 1300099395.594598 0003 0035 29734 E: 1300099395.594599 0003 0036 16207 E: 1300099395.594602 0003 0030 1224 E: 1300099395.594610 0003 0000 25534 E: 1300099395.594611 0003 0001 18902 E: 1300099395.594613 0000 0000 0 E: 1300099395.600577 0003 002f 0 E: 1300099395.600588 0003 0036 18894 E: 1300099395.600595 0003 002f 1 E: 1300099395.600596 0003 0035 29702 E: 1300099395.600598 0003 0036 16141 E: 1300099395.600600 0003 0030 1191 E: 1300099395.600609 0003 0001 18900 E: 1300099395.600611 0000 0000 0 E: 1300099395.605576 0003 002f 0 E: 1300099395.605586 0003 0035 25526 E: 1300099395.605588 0003 0036 18892 E: 1300099395.605596 0003 002f 1 E: 1300099395.605596 0003 0035 29694 E: 1300099395.605598 0003 0036 16073 E: 1300099395.605608 0003 0000 25532 E: 1300099395.605609 0003 0001 18898 E: 1300099395.605611 0000 0000 0 E: 1300099395.610577 0003 002f 0 E: 1300099395.610587 0003 0035 25524 E: 1300099395.610589 0003 0036 18890 E: 1300099395.610596 0003 002f 1 E: 1300099395.610597 0003 0035 29682 E: 1300099395.610598 0003 0036 15999 E: 1300099395.610601 0003 0030 1323 E: 1300099395.610609 0003 0000 25530 E: 1300099395.610611 0003 0001 18896 E: 1300099395.610613 0000 0000 0 E: 1300099395.615576 0003 002f 0 E: 1300099395.615587 0003 0035 25522 E: 1300099395.615589 0003 0036 18888 E: 1300099395.615596 0003 002f 1 E: 1300099395.615596 0003 0035 29650 E: 1300099395.615598 0003 0036 15925 E: 1300099395.615601 0003 0030 1356 E: 1300099395.615609 0003 0000 25528 E: 1300099395.615610 0003 0001 18894 E: 1300099395.615612 0000 0000 0 E: 1300099395.620578 0003 002f 0 E: 1300099395.620588 0003 0035 25520 E: 1300099395.620590 0003 0036 18886 E: 1300099395.620597 0003 002f 1 E: 1300099395.620598 0003 0035 29641 E: 1300099395.620600 0003 0036 15845 E: 1300099395.620610 0003 0000 25526 E: 1300099395.620611 0003 0001 18892 E: 1300099395.620613 0000 0000 0 E: 1300099395.625576 0003 002f 0 E: 1300099395.625586 0003 0035 25518 E: 1300099395.625595 0003 002f 1 E: 1300099395.625595 0003 0035 29627 E: 1300099395.625597 0003 0036 15763 E: 1300099395.625607 0003 0000 25524 E: 1300099395.625610 0000 0000 0 E: 1300099395.630577 0003 002f 0 E: 1300099395.630587 0003 0036 18884 E: 1300099395.630595 0003 002f 1 E: 1300099395.630596 0003 0035 29612 E: 1300099395.630597 0003 0036 15677 E: 1300099395.630608 0003 0001 18890 E: 1300099395.630610 0000 0000 0 E: 1300099395.635577 0003 002f 0 E: 1300099395.635587 0003 0035 25516 E: 1300099395.635589 0003 0036 18882 E: 1300099395.635596 0003 002f 1 E: 1300099395.635597 0003 0035 29580 E: 1300099395.635599 0003 0036 15589 E: 1300099395.635601 0003 0030 1224 E: 1300099395.635609 0003 0000 25522 E: 1300099395.635611 0003 0001 18888 E: 1300099395.635613 0000 0000 0 E: 1300099395.640576 0003 002f 0 E: 1300099395.640586 0003 0035 25514 E: 1300099395.640588 0003 0036 18880 E: 1300099395.640596 0003 002f 1 E: 1300099395.640596 0003 0035 29571 E: 1300099395.640598 0003 0036 15495 E: 1300099395.640600 0003 0030 1282 E: 1300099395.640609 0003 0000 25520 E: 1300099395.640610 0003 0001 18886 E: 1300099395.640612 0000 0000 0 E: 1300099395.645575 0003 002f 0 E: 1300099395.645586 0003 0035 25512 E: 1300099395.645587 0003 0036 18878 E: 1300099395.645595 0003 002f 1 E: 1300099395.645595 0003 0035 29557 E: 1300099395.645597 0003 0036 15401 E: 1300099395.645600 0003 0030 1325 E: 1300099395.645608 0003 0000 25518 E: 1300099395.645609 0003 0001 18884 E: 1300099395.645611 0000 0000 0 E: 1300099395.650577 0003 002f 0 E: 1300099395.650587 0003 0036 18876 E: 1300099395.650595 0003 002f 1 E: 1300099395.650595 0003 0035 29526 E: 1300099395.650597 0003 0036 15309 E: 1300099395.650600 0003 0030 1357 E: 1300099395.650609 0003 0001 18882 E: 1300099395.650611 0000 0000 0 E: 1300099395.655575 0003 002f 0 E: 1300099395.655586 0003 0035 25510 E: 1300099395.655587 0003 0036 18874 E: 1300099395.655595 0003 002f 1 E: 1300099395.655595 0003 0035 29515 E: 1300099395.655597 0003 0036 15219 E: 1300099395.655607 0003 0000 25516 E: 1300099395.655609 0003 0001 18880 E: 1300099395.655610 0000 0000 0 E: 1300099395.661576 0003 002f 0 E: 1300099395.661586 0003 0035 25508 E: 1300099395.661588 0003 0036 18872 E: 1300099395.661595 0003 002f 1 E: 1300099395.661596 0003 0035 29484 E: 1300099395.661597 0003 0036 15131 E: 1300099395.661607 0003 0000 25514 E: 1300099395.661609 0003 0001 18878 E: 1300099395.661611 0000 0000 0 E: 1300099395.666575 0003 002f 0 E: 1300099395.666586 0003 0035 25506 E: 1300099395.666587 0003 0036 18870 E: 1300099395.666595 0003 002f 1 E: 1300099395.666595 0003 0035 29471 E: 1300099395.666597 0003 0036 15041 E: 1300099395.666607 0003 0000 25512 E: 1300099395.666608 0003 0001 18876 E: 1300099395.666610 0000 0000 0 E: 1300099395.671576 0003 002f 0 E: 1300099395.671586 0003 0036 18868 E: 1300099395.671594 0003 002f 1 E: 1300099395.671594 0003 0035 29436 E: 1300099395.671596 0003 0036 14949 E: 1300099395.671607 0003 0001 18874 E: 1300099395.671609 0000 0000 0 E: 1300099395.676576 0003 002f 0 E: 1300099395.676586 0003 0035 25504 E: 1300099395.676588 0003 0036 18866 E: 1300099395.676595 0003 002f 1 E: 1300099395.676596 0003 0035 29425 E: 1300099395.676597 0003 0036 14851 E: 1300099395.676600 0003 0030 1224 E: 1300099395.676608 0003 0000 25510 E: 1300099395.676610 0003 0001 18872 E: 1300099395.676611 0000 0000 0 E: 1300099395.681576 0003 002f 0 E: 1300099395.681587 0003 0035 25502 E: 1300099395.681588 0003 0036 18864 E: 1300099395.681596 0003 002f 1 E: 1300099395.681596 0003 0035 29390 E: 1300099395.681598 0003 0036 14751 E: 1300099395.681600 0003 0030 1282 E: 1300099395.681609 0003 0000 25508 E: 1300099395.681610 0003 0001 18870 E: 1300099395.681612 0000 0000 0 E: 1300099395.686576 0003 002f 0 E: 1300099395.686586 0003 0035 25500 E: 1300099395.686588 0003 0036 18862 E: 1300099395.686596 0003 002f 1 E: 1300099395.686596 0003 0035 29378 E: 1300099395.686598 0003 0036 14657 E: 1300099395.686600 0003 0030 1325 E: 1300099395.686608 0003 0000 25506 E: 1300099395.686610 0003 0001 18868 E: 1300099395.686612 0000 0000 0 E: 1300099395.691575 0003 002f 0 E: 1300099395.691586 0003 0035 25498 E: 1300099395.691588 0003 0036 18859 E: 1300099395.691595 0003 002f 1 E: 1300099395.691596 0003 0035 29342 E: 1300099395.691598 0003 0036 14563 E: 1300099395.691600 0003 0030 1357 E: 1300099395.691609 0003 0000 25504 E: 1300099395.691610 0003 0001 18865 E: 1300099395.691612 0000 0000 0 E: 1300099395.696577 0003 002f 0 E: 1300099395.696587 0003 0036 18857 E: 1300099395.696595 0003 002f 1 E: 1300099395.696595 0003 0035 29329 E: 1300099395.696597 0003 0036 14463 E: 1300099395.696608 0003 0001 18863 E: 1300099395.696610 0000 0000 0 E: 1300099395.701575 0003 002f 0 E: 1300099395.701585 0003 0035 25496 E: 1300099395.701587 0003 0036 18855 E: 1300099395.701594 0003 002f 1 E: 1300099395.701595 0003 0035 29290 E: 1300099395.701596 0003 0036 14365 E: 1300099395.701607 0003 0000 25502 E: 1300099395.701608 0003 0001 18861 E: 1300099395.701610 0000 0000 0 E: 1300099395.706574 0003 002f 0 E: 1300099395.706584 0003 0035 25494 E: 1300099395.706586 0003 0036 18853 E: 1300099395.706594 0003 002f 1 E: 1300099395.706594 0003 0035 29260 E: 1300099395.706596 0003 0036 14265 E: 1300099395.706606 0003 0000 25500 E: 1300099395.706607 0003 0001 18859 E: 1300099395.706609 0000 0000 0 E: 1300099395.711574 0003 002f 0 E: 1300099395.711584 0003 0035 25492 E: 1300099395.711586 0003 0036 18851 E: 1300099395.711594 0003 002f 1 E: 1300099395.711594 0003 0035 29246 E: 1300099395.711596 0003 0036 14163 E: 1300099395.711598 0003 0030 1224 E: 1300099395.711606 0003 0000 25498 E: 1300099395.711608 0003 0001 18857 E: 1300099395.711610 0000 0000 0 E: 1300099395.717576 0003 002f 0 E: 1300099395.717588 0003 0036 18849 E: 1300099395.717596 0003 002f 1 E: 1300099395.717597 0003 0035 29202 E: 1300099395.717598 0003 0036 14059 E: 1300099395.717601 0003 0030 1282 E: 1300099395.717610 0003 0001 18855 E: 1300099395.717612 0000 0000 0 E: 1300099395.722574 0003 002f 0 E: 1300099395.722584 0003 0035 25490 E: 1300099395.722586 0003 0036 18847 E: 1300099395.722594 0003 002f 1 E: 1300099395.722594 0003 0035 29172 E: 1300099395.722596 0003 0036 13955 E: 1300099395.722598 0003 0030 1325 E: 1300099395.722606 0003 0000 25496 E: 1300099395.722608 0003 0001 18853 E: 1300099395.722610 0000 0000 0 E: 1300099395.727574 0003 002f 0 E: 1300099395.727585 0003 0035 25488 E: 1300099395.727587 0003 0036 18845 E: 1300099395.727594 0003 002f 1 E: 1300099395.727594 0003 0035 29138 E: 1300099395.727596 0003 0036 13851 E: 1300099395.727599 0003 0030 1357 E: 1300099395.727607 0003 0000 25494 E: 1300099395.727608 0003 0001 18851 E: 1300099395.727610 0000 0000 0 E: 1300099395.732574 0003 002f 0 E: 1300099395.732585 0003 0035 25486 E: 1300099395.732586 0003 0036 18843 E: 1300099395.732594 0003 002f 1 E: 1300099395.732594 0003 0035 29102 E: 1300099395.732596 0003 0036 13745 E: 1300099395.732606 0003 0000 25492 E: 1300099395.732608 0003 0001 18849 E: 1300099395.732609 0000 0000 0 E: 1300099395.737574 0003 002f 0 E: 1300099395.737584 0003 0035 25484 E: 1300099395.737586 0003 0036 18841 E: 1300099395.737593 0003 002f 1 E: 1300099395.737594 0003 0035 29064 E: 1300099395.737595 0003 0036 13635 E: 1300099395.737605 0003 0000 25490 E: 1300099395.737607 0003 0001 18847 E: 1300099395.737609 0000 0000 0 E: 1300099395.742575 0003 002f 0 E: 1300099395.742586 0003 0036 18839 E: 1300099395.742593 0003 002f 1 E: 1300099395.742594 0003 0035 29026 E: 1300099395.742596 0003 0036 13521 E: 1300099395.742598 0003 0030 1224 E: 1300099395.742607 0003 0001 18845 E: 1300099395.742609 0000 0000 0 E: 1300099395.747578 0003 002f 0 E: 1300099395.747588 0003 0035 25482 E: 1300099395.747590 0003 0036 18837 E: 1300099395.747597 0003 002f 1 E: 1300099395.747598 0003 0035 28984 E: 1300099395.747599 0003 0036 13401 E: 1300099395.747602 0003 0030 1282 E: 1300099395.747610 0003 0000 25488 E: 1300099395.747612 0003 0001 18843 E: 1300099395.747613 0000 0000 0 E: 1300099395.752573 0003 002f 0 E: 1300099395.752584 0003 0035 25480 E: 1300099395.752588 0003 0031 966 E: 1300099395.752593 0003 002f 1 E: 1300099395.752594 0003 0035 28942 E: 1300099395.752595 0003 0036 13281 E: 1300099395.752598 0003 0030 1325 E: 1300099395.752606 0003 0000 25486 E: 1300099395.752609 0000 0000 0 E: 1300099395.757574 0003 002f 0 E: 1300099395.757584 0003 0035 25478 E: 1300099395.757586 0003 0036 18835 E: 1300099395.757589 0003 0031 1007 E: 1300099395.757594 0003 002f 1 E: 1300099395.757594 0003 0035 28902 E: 1300099395.757596 0003 0036 13159 E: 1300099395.757598 0003 0030 1357 E: 1300099395.757607 0003 0000 25484 E: 1300099395.757608 0003 0001 18841 E: 1300099395.757610 0000 0000 0 E: 1300099395.762574 0003 002f 0 E: 1300099395.762584 0003 0036 18833 E: 1300099395.762592 0003 002f 1 E: 1300099395.762592 0003 0035 28860 E: 1300099395.762594 0003 0036 13033 E: 1300099395.762605 0003 0001 18839 E: 1300099395.762607 0000 0000 0 E: 1300099395.767573 0003 002f 0 E: 1300099395.767584 0003 0035 25476 E: 1300099395.767585 0003 0036 18831 E: 1300099395.767593 0003 002f 1 E: 1300099395.767593 0003 0035 28818 E: 1300099395.767595 0003 0036 12903 E: 1300099395.767598 0003 0030 1224 E: 1300099395.767606 0003 0000 25482 E: 1300099395.767607 0003 0001 18837 E: 1300099395.767609 0000 0000 0 E: 1300099395.772573 0003 002f 0 E: 1300099395.772584 0003 0035 25474 E: 1300099395.772586 0003 0036 18829 E: 1300099395.772593 0003 002f 1 E: 1300099395.772594 0003 0035 28724 E: 1300099395.772595 0003 0036 12643 E: 1300099395.772598 0003 0030 1282 E: 1300099395.772606 0003 0000 25480 E: 1300099395.772607 0003 0001 18835 E: 1300099395.772609 0000 0000 0 E: 1300099395.778573 0003 002f 0 E: 1300099395.778583 0003 0035 25472 E: 1300099395.778585 0003 0036 18827 E: 1300099395.778593 0003 002f 1 E: 1300099395.778593 0003 0035 28682 E: 1300099395.778595 0003 0036 12527 E: 1300099395.778597 0003 0030 1325 E: 1300099395.778606 0003 0000 25478 E: 1300099395.778607 0003 0001 18833 E: 1300099395.778609 0000 0000 0 E: 1300099395.783576 0003 002f 0 E: 1300099395.783587 0003 0036 18825 E: 1300099395.783594 0003 002f 1 E: 1300099395.783595 0003 0035 28638 E: 1300099395.783596 0003 0036 12415 E: 1300099395.783599 0003 0030 1357 E: 1300099395.783608 0003 0001 18831 E: 1300099395.783610 0000 0000 0 E: 1300099395.788573 0003 002f 0 E: 1300099395.788583 0003 0035 25470 E: 1300099395.788592 0003 002f 1 E: 1300099395.788593 0003 0035 28594 E: 1300099395.788594 0003 0036 12305 E: 1300099395.788604 0003 0000 25476 E: 1300099395.788607 0000 0000 0 E: 1300099395.793574 0003 002f 0 E: 1300099395.793585 0003 0035 25468 E: 1300099395.793587 0003 0036 18823 E: 1300099395.793595 0003 002f 1 E: 1300099395.793595 0003 0035 28546 E: 1300099395.793597 0003 0036 12197 E: 1300099395.793607 0003 0000 25474 E: 1300099395.793608 0003 0001 18829 E: 1300099395.793610 0000 0000 0 E: 1300099395.798573 0003 002f 0 E: 1300099395.798584 0003 0035 25466 E: 1300099395.798586 0003 0036 18821 E: 1300099395.798593 0003 002f 1 E: 1300099395.798593 0003 0035 28500 E: 1300099395.798595 0003 0036 12089 E: 1300099395.798598 0003 0030 1224 E: 1300099395.798606 0003 0000 25472 E: 1300099395.798607 0003 0001 18827 E: 1300099395.798609 0000 0000 0 E: 1300099395.803576 0003 002f 0 E: 1300099395.803587 0003 0036 18819 E: 1300099395.803594 0003 002f 1 E: 1300099395.803595 0003 0035 28450 E: 1300099395.803596 0003 0036 11979 E: 1300099395.803599 0003 0030 1282 E: 1300099395.803608 0003 0001 18825 E: 1300099395.803610 0000 0000 0 E: 1300099395.808573 0003 002f 0 E: 1300099395.808584 0003 0035 25464 E: 1300099395.808586 0003 0036 18817 E: 1300099395.808593 0003 002f 1 E: 1300099395.808594 0003 0035 28398 E: 1300099395.808595 0003 0036 11871 E: 1300099395.808598 0003 0030 1325 E: 1300099395.808606 0003 0000 25470 E: 1300099395.808608 0003 0001 18823 E: 1300099395.808609 0000 0000 0 E: 1300099395.813576 0003 002f 0 E: 1300099395.813586 0003 0035 25462 E: 1300099395.813588 0003 0036 18814 E: 1300099395.813595 0003 002f 1 E: 1300099395.813596 0003 0035 28344 E: 1300099395.813597 0003 0036 11767 E: 1300099395.813600 0003 0030 1357 E: 1300099395.813608 0003 0000 25468 E: 1300099395.813610 0003 0001 18820 E: 1300099395.813611 0000 0000 0 E: 1300099395.818573 0003 002f 0 E: 1300099395.818583 0003 0035 25460 E: 1300099395.818585 0003 0036 18811 E: 1300099395.818592 0003 002f 1 E: 1300099395.818593 0003 0035 28290 E: 1300099395.818595 0003 0036 11667 E: 1300099395.818605 0003 0000 25466 E: 1300099395.818607 0003 0001 18817 E: 1300099395.818608 0000 0000 0 E: 1300099395.823576 0003 002f 0 E: 1300099395.823586 0003 0036 18809 E: 1300099395.823594 0003 002f 1 E: 1300099395.823595 0003 0035 28236 E: 1300099395.823596 0003 0036 11571 E: 1300099395.823607 0003 0001 18815 E: 1300099395.823609 0000 0000 0 E: 1300099395.828573 0003 002f 0 E: 1300099395.828583 0003 0035 25458 E: 1300099395.828584 0003 0036 18806 E: 1300099395.828592 0003 002f 1 E: 1300099395.828592 0003 0035 28184 E: 1300099395.828594 0003 0036 11473 E: 1300099395.828604 0003 0000 25464 E: 1300099395.828606 0003 0001 18812 E: 1300099395.828607 0000 0000 0 E: 1300099395.834573 0003 002f 0 E: 1300099395.834583 0003 0035 25456 E: 1300099395.834585 0003 0036 18803 E: 1300099395.834592 0003 002f 1 E: 1300099395.834593 0003 0035 28130 E: 1300099395.834594 0003 0036 11377 E: 1300099395.834604 0003 0000 25462 E: 1300099395.834606 0003 0001 18809 E: 1300099395.834607 0000 0000 0 E: 1300099395.839573 0003 002f 0 E: 1300099395.839583 0003 0035 25454 E: 1300099395.839585 0003 0036 18801 E: 1300099395.839593 0003 002f 1 E: 1300099395.839593 0003 0035 28076 E: 1300099395.839595 0003 0036 11285 E: 1300099395.839605 0003 0000 25460 E: 1300099395.839606 0003 0001 18807 E: 1300099395.839608 0000 0000 0 E: 1300099395.844573 0003 002f 0 E: 1300099395.844583 0003 0035 25452 E: 1300099395.844585 0003 0036 18799 E: 1300099395.844592 0003 002f 1 E: 1300099395.844593 0003 0035 28018 E: 1300099395.844594 0003 0036 11189 E: 1300099395.844598 0003 0031 965 E: 1300099395.844605 0003 0000 25458 E: 1300099395.844607 0003 0001 18805 E: 1300099395.844608 0000 0000 0 E: 1300099395.849573 0003 002f 0 E: 1300099395.849583 0003 0036 18797 E: 1300099395.849591 0003 002f 1 E: 1300099395.849591 0003 0035 27954 E: 1300099395.849593 0003 0036 11093 E: 1300099395.849604 0003 0001 18803 E: 1300099395.849606 0000 0000 0 E: 1300099395.854571 0003 002f 0 E: 1300099395.854582 0003 0035 25449 E: 1300099395.854583 0003 0036 18795 E: 1300099395.854591 0003 002f 1 E: 1300099395.854591 0003 0035 27890 E: 1300099395.854593 0003 0036 10999 E: 1300099395.854603 0003 0000 25455 E: 1300099395.854605 0003 0001 18801 E: 1300099395.854606 0000 0000 0 E: 1300099395.859572 0003 002f 0 E: 1300099395.859583 0003 0035 25446 E: 1300099395.859584 0003 0036 18792 E: 1300099395.859592 0003 002f 1 E: 1300099395.859593 0003 0035 27826 E: 1300099395.859594 0003 0036 10923 E: 1300099395.859604 0003 0000 25452 E: 1300099395.859606 0003 0001 18798 E: 1300099395.859608 0000 0000 0 E: 1300099395.864572 0003 002f 0 E: 1300099395.864582 0003 0035 25444 E: 1300099395.864584 0003 0036 18789 E: 1300099395.864591 0003 002f 1 E: 1300099395.864592 0003 0035 27758 E: 1300099395.864594 0003 0036 10841 E: 1300099395.864604 0003 0000 25450 E: 1300099395.864605 0003 0001 18795 E: 1300099395.864607 0000 0000 0 E: 1300099395.869572 0003 002f 0 E: 1300099395.869582 0003 0035 25442 E: 1300099395.869584 0003 0036 18787 E: 1300099395.869591 0003 002f 1 E: 1300099395.869592 0003 0035 27698 E: 1300099395.869593 0003 0036 10757 E: 1300099395.869604 0003 0000 25448 E: 1300099395.869605 0003 0001 18793 E: 1300099395.869607 0000 0000 0 E: 1300099395.874574 0003 002f 0 E: 1300099395.874585 0003 0036 18784 E: 1300099395.874592 0003 002f 1 E: 1300099395.874593 0003 0035 27634 E: 1300099395.874594 0003 0036 10673 E: 1300099395.874606 0003 0001 18790 E: 1300099395.874607 0000 0000 0 E: 1300099395.879574 0003 002f 0 E: 1300099395.879584 0003 0035 25440 E: 1300099395.879586 0003 0036 18781 E: 1300099395.879594 0003 002f 1 E: 1300099395.879594 0003 0035 27572 E: 1300099395.879596 0003 0036 10593 E: 1300099395.879599 0003 0031 821 E: 1300099395.879607 0003 0000 25446 E: 1300099395.879608 0003 0001 18787 E: 1300099395.879610 0000 0000 0 E: 1300099395.884573 0003 002f 0 E: 1300099395.884583 0003 0035 25438 E: 1300099395.884585 0003 0036 18779 E: 1300099395.884592 0003 002f 1 E: 1300099395.884593 0003 0035 27508 E: 1300099395.884594 0003 0036 10509 E: 1300099395.884605 0003 0000 25444 E: 1300099395.884606 0003 0001 18785 E: 1300099395.884608 0000 0000 0 E: 1300099395.889573 0003 002f 0 E: 1300099395.889583 0003 0035 25436 E: 1300099395.889585 0003 0036 18777 E: 1300099395.889592 0003 002f 1 E: 1300099395.889593 0003 0035 27440 E: 1300099395.889594 0003 0036 10427 E: 1300099395.889597 0003 0030 1224 E: 1300099395.889605 0003 0000 25442 E: 1300099395.889607 0003 0001 18783 E: 1300099395.889609 0000 0000 0 E: 1300099395.895572 0003 002f 0 E: 1300099395.895583 0003 0036 18774 E: 1300099395.895590 0003 002f 1 E: 1300099395.895591 0003 0035 27374 E: 1300099395.895592 0003 0036 10341 E: 1300099395.895595 0003 0030 1191 E: 1300099395.895604 0003 0001 18780 E: 1300099395.895606 0000 0000 0 E: 1300099395.900572 0003 002f 0 E: 1300099395.900582 0003 0035 25434 E: 1300099395.900584 0003 0036 18771 E: 1300099395.900591 0003 002f 1 E: 1300099395.900592 0003 0035 27306 E: 1300099395.900593 0003 0036 10263 E: 1300099395.900596 0003 0030 1323 E: 1300099395.900604 0003 0000 25440 E: 1300099395.900606 0003 0001 18777 E: 1300099395.900608 0000 0000 0 E: 1300099395.905571 0003 002f 0 E: 1300099395.905582 0003 0035 25432 E: 1300099395.905584 0003 0036 18768 E: 1300099395.905591 0003 002f 1 E: 1300099395.905591 0003 0035 27230 E: 1300099395.905593 0003 0036 10185 E: 1300099395.905596 0003 0030 1356 E: 1300099395.905604 0003 0000 25438 E: 1300099395.905605 0003 0001 18774 E: 1300099395.905607 0000 0000 0 E: 1300099395.910571 0003 002f 0 E: 1300099395.910581 0003 0035 25430 E: 1300099395.910583 0003 0036 18765 E: 1300099395.910590 0003 002f 1 E: 1300099395.910591 0003 0035 27154 E: 1300099395.910592 0003 0036 10105 E: 1300099395.910603 0003 0000 25436 E: 1300099395.910604 0003 0001 18771 E: 1300099395.910606 0000 0000 0 E: 1300099395.915571 0003 002f 0 E: 1300099395.915582 0003 0036 18763 E: 1300099395.915589 0003 002f 1 E: 1300099395.915590 0003 0035 27074 E: 1300099395.915592 0003 0036 10031 E: 1300099395.915603 0003 0001 18769 E: 1300099395.915604 0000 0000 0 E: 1300099395.920570 0003 002f 0 E: 1300099395.920581 0003 0035 25428 E: 1300099395.920582 0003 0036 18760 E: 1300099395.920590 0003 002f 1 E: 1300099395.920590 0003 0035 27000 E: 1300099395.920592 0003 0036 9957 E: 1300099395.920602 0003 0000 25434 E: 1300099395.920604 0003 0001 18766 E: 1300099395.920605 0000 0000 0 E: 1300099395.925571 0003 002f 0 E: 1300099395.925582 0003 0035 25426 E: 1300099395.925584 0003 0036 18757 E: 1300099395.925591 0003 002f 1 E: 1300099395.925592 0003 0035 26924 E: 1300099395.925593 0003 0036 9903 E: 1300099395.925603 0003 0000 25432 E: 1300099395.925605 0003 0001 18763 E: 1300099395.925607 0000 0000 0 E: 1300099395.930571 0003 002f 0 E: 1300099395.930581 0003 0035 25424 E: 1300099395.930583 0003 0036 18755 E: 1300099395.930591 0003 002f 1 E: 1300099395.930591 0003 0035 26854 E: 1300099395.930593 0003 0036 9843 E: 1300099395.930603 0003 0000 25430 E: 1300099395.930605 0003 0001 18761 E: 1300099395.930606 0000 0000 0 E: 1300099395.935572 0003 002f 0 E: 1300099395.935582 0003 0035 25422 E: 1300099395.935583 0003 0036 18753 E: 1300099395.935591 0003 002f 1 E: 1300099395.935591 0003 0035 26786 E: 1300099395.935593 0003 0036 9787 E: 1300099395.935603 0003 0000 25428 E: 1300099395.935605 0003 0001 18759 E: 1300099395.935606 0000 0000 0 E: 1300099395.940571 0003 002f 0 E: 1300099395.940582 0003 0035 25420 E: 1300099395.940591 0003 002f 1 E: 1300099395.940591 0003 0035 26712 E: 1300099395.940593 0003 0036 9737 E: 1300099395.940596 0003 0031 785 E: 1300099395.940603 0003 0000 25426 E: 1300099395.940606 0000 0000 0 E: 1300099395.945573 0003 002f 0 E: 1300099395.945583 0003 0035 25418 E: 1300099395.945585 0003 0036 18750 E: 1300099395.945592 0003 002f 1 E: 1300099395.945593 0003 0035 26636 E: 1300099395.945594 0003 0036 9687 E: 1300099395.945604 0003 0000 25424 E: 1300099395.945606 0003 0001 18756 E: 1300099395.945608 0000 0000 0 E: 1300099395.951561 0003 002f 0 E: 1300099395.951565 0003 0035 25416 E: 1300099395.951567 0003 0036 18748 E: 1300099395.951575 0003 002f 1 E: 1300099395.951575 0003 0035 26560 E: 1300099395.951577 0003 0036 9637 E: 1300099395.951587 0003 0000 25422 E: 1300099395.951588 0003 0001 18754 E: 1300099395.951590 0000 0000 0 E: 1300099395.956571 0003 002f 0 E: 1300099395.956581 0003 0036 18746 E: 1300099395.956589 0003 002f 1 E: 1300099395.956590 0003 0035 26486 E: 1300099395.956591 0003 0036 9607 E: 1300099395.956602 0003 0001 18752 E: 1300099395.956604 0000 0000 0 E: 1300099395.961570 0003 002f 0 E: 1300099395.961580 0003 0035 25414 E: 1300099395.961582 0003 0036 18743 E: 1300099395.961589 0003 002f 1 E: 1300099395.961590 0003 0035 26414 E: 1300099395.961591 0003 0036 9569 E: 1300099395.961601 0003 0000 25420 E: 1300099395.961603 0003 0001 18749 E: 1300099395.961605 0000 0000 0 E: 1300099395.966571 0003 002f 0 E: 1300099395.966581 0003 0035 25412 E: 1300099395.966583 0003 0036 18741 E: 1300099395.966590 0003 002f 1 E: 1300099395.966591 0003 0035 26334 E: 1300099395.966592 0003 0036 9529 E: 1300099395.966603 0003 0000 25418 E: 1300099395.966604 0003 0001 18747 E: 1300099395.966606 0000 0000 0 E: 1300099395.971570 0003 002f 0 E: 1300099395.971581 0003 0035 25410 E: 1300099395.971583 0003 0036 18739 E: 1300099395.971590 0003 002f 1 E: 1300099395.971591 0003 0035 26252 E: 1300099395.971592 0003 0036 9487 E: 1300099395.971603 0003 0000 25416 E: 1300099395.971604 0003 0001 18745 E: 1300099395.971606 0000 0000 0 E: 1300099395.976569 0003 002f 0 E: 1300099395.976579 0003 0035 25408 E: 1300099395.976588 0003 002f 1 E: 1300099395.976588 0003 0035 26168 E: 1300099395.976590 0003 0036 9445 E: 1300099395.976592 0003 0030 1224 E: 1300099395.976601 0003 0000 25414 E: 1300099395.976603 0000 0000 0 E: 1300099395.981570 0003 002f 0 E: 1300099395.981581 0003 0035 25406 E: 1300099395.981583 0003 0036 18737 E: 1300099395.981590 0003 002f 1 E: 1300099395.981591 0003 0035 26088 E: 1300099395.981593 0003 0036 9411 E: 1300099395.981595 0003 0030 1282 E: 1300099395.981603 0003 0000 25412 E: 1300099395.981605 0003 0001 18743 E: 1300099395.981607 0000 0000 0 E: 1300099395.986570 0003 002f 0 E: 1300099395.986580 0003 0035 25404 E: 1300099395.986582 0003 0036 18735 E: 1300099395.986590 0003 002f 1 E: 1300099395.986590 0003 0035 26004 E: 1300099395.986592 0003 0036 9381 E: 1300099395.986594 0003 0030 1325 E: 1300099395.986603 0003 0000 25410 E: 1300099395.986604 0003 0001 18741 E: 1300099395.986606 0000 0000 0 E: 1300099395.991569 0003 002f 0 E: 1300099395.991580 0003 0035 25402 E: 1300099395.991582 0003 0036 18733 E: 1300099395.991589 0003 002f 1 E: 1300099395.991590 0003 0035 25914 E: 1300099395.991591 0003 0036 9345 E: 1300099395.991594 0003 0030 1572 E: 1300099395.991602 0003 0000 25408 E: 1300099395.991604 0003 0001 18739 E: 1300099395.991606 0000 0000 0 E: 1300099395.996571 0003 002f 0 E: 1300099395.996581 0003 0034 1 E: 1300099395.996583 0003 0030 1299 E: 1300099395.996588 0003 002f 1 E: 1300099395.996588 0003 0035 25824 E: 1300099395.996590 0003 0036 9311 E: 1300099395.996602 0000 0000 0 E: 1300099396.001569 0003 002f 0 E: 1300099396.001580 0003 0035 25400 E: 1300099396.001582 0003 0036 18731 E: 1300099396.001583 0003 0034 0 E: 1300099396.001585 0003 0030 1338 E: 1300099396.001590 0003 002f 1 E: 1300099396.001591 0003 0035 25734 E: 1300099396.001593 0003 0036 9275 E: 1300099396.001603 0003 0000 25406 E: 1300099396.001604 0003 0001 18737 E: 1300099396.001606 0000 0000 0 E: 1300099396.007570 0003 002f 0 E: 1300099396.007580 0003 0036 18729 E: 1300099396.007582 0003 0034 1 E: 1300099396.007584 0003 0030 1286 E: 1300099396.007589 0003 002f 1 E: 1300099396.007590 0003 0035 25650 E: 1300099396.007592 0003 0036 9264 E: 1300099396.007603 0003 0001 18735 E: 1300099396.007605 0000 0000 0 E: 1300099396.012571 0003 002f 0 E: 1300099396.012581 0003 0035 25398 E: 1300099396.012583 0003 0036 18727 E: 1300099396.012585 0003 0034 0 E: 1300099396.012587 0003 0030 1328 E: 1300099396.012592 0003 002f 1 E: 1300099396.012593 0003 0035 25562 E: 1300099396.012594 0003 0036 9225 E: 1300099396.012604 0003 0000 25404 E: 1300099396.012606 0003 0001 18733 E: 1300099396.012608 0000 0000 0 E: 1300099396.017569 0003 002f 0 E: 1300099396.017579 0003 0036 18725 E: 1300099396.017582 0003 0030 1360 E: 1300099396.017588 0003 002f 1 E: 1300099396.017588 0003 0035 25470 E: 1300099396.017590 0003 0036 9211 E: 1300099396.017601 0003 0001 18731 E: 1300099396.017603 0000 0000 0 E: 1300099396.022569 0003 002f 0 E: 1300099396.022580 0003 0035 25396 E: 1300099396.022588 0003 002f 1 E: 1300099396.022589 0003 0035 25372 E: 1300099396.022590 0003 0036 9169 E: 1300099396.022600 0003 0000 25402 E: 1300099396.022603 0000 0000 0 E: 1300099396.027570 0003 002f 0 E: 1300099396.027580 0003 0036 18723 E: 1300099396.027588 0003 002f 1 E: 1300099396.027588 0003 0035 25278 E: 1300099396.027590 0003 0036 9159 E: 1300099396.027601 0003 0001 18729 E: 1300099396.027603 0000 0000 0 E: 1300099396.032570 0003 002f 0 E: 1300099396.032580 0003 0036 18721 E: 1300099396.032588 0003 002f 1 E: 1300099396.032589 0003 0035 25178 E: 1300099396.032590 0003 0036 9129 E: 1300099396.032601 0003 0001 18727 E: 1300099396.032603 0000 0000 0 E: 1300099396.037568 0003 002f 0 E: 1300099396.037578 0003 0035 25394 E: 1300099396.037580 0003 0036 18719 E: 1300099396.037587 0003 002f 1 E: 1300099396.037588 0003 0035 25074 E: 1300099396.037590 0003 0036 9117 E: 1300099396.037600 0003 0000 25400 E: 1300099396.037601 0003 0001 18725 E: 1300099396.037603 0000 0000 0 E: 1300099396.042569 0003 002f 0 E: 1300099396.042580 0003 0036 18717 E: 1300099396.042587 0003 002f 1 E: 1300099396.042588 0003 0035 24968 E: 1300099396.042589 0003 0036 9081 E: 1300099396.042600 0003 0001 18723 E: 1300099396.042602 0000 0000 0 E: 1300099396.047568 0003 002f 0 E: 1300099396.047579 0003 0035 25392 E: 1300099396.047581 0003 0036 18715 E: 1300099396.047588 0003 002f 1 E: 1300099396.047589 0003 0035 24864 E: 1300099396.047591 0003 0036 9072 E: 1300099396.047601 0003 0000 25398 E: 1300099396.047602 0003 0001 18721 E: 1300099396.047604 0000 0000 0 E: 1300099396.052568 0003 002f 0 E: 1300099396.052579 0003 0036 18713 E: 1300099396.052587 0003 002f 1 E: 1300099396.052587 0003 0035 24762 E: 1300099396.052589 0003 0036 9057 E: 1300099396.052600 0003 0001 18719 E: 1300099396.052602 0000 0000 0 E: 1300099396.057568 0003 002f 0 E: 1300099396.057578 0003 0035 25390 E: 1300099396.057587 0003 002f 1 E: 1300099396.057588 0003 0035 24654 E: 1300099396.057589 0003 0036 9027 E: 1300099396.057599 0003 0000 25396 E: 1300099396.057602 0000 0000 0 E: 1300099396.062568 0003 002f 0 E: 1300099396.062579 0003 0035 25388 E: 1300099396.062580 0003 0036 18711 E: 1300099396.062588 0003 002f 1 E: 1300099396.062588 0003 0035 24546 E: 1300099396.062590 0003 0036 9023 E: 1300099396.062600 0003 0000 25394 E: 1300099396.062602 0003 0001 18717 E: 1300099396.062603 0000 0000 0 E: 1300099396.068569 0003 002f 0 E: 1300099396.068579 0003 0035 25386 E: 1300099396.068581 0003 0036 18709 E: 1300099396.068588 0003 002f 1 E: 1300099396.068589 0003 0035 24442 E: 1300099396.068591 0003 0036 9014 E: 1300099396.068601 0003 0000 25392 E: 1300099396.068602 0003 0001 18715 E: 1300099396.068604 0000 0000 0 E: 1300099396.073571 0003 002f 0 E: 1300099396.073581 0003 0036 18707 E: 1300099396.073589 0003 002f 1 E: 1300099396.073589 0003 0035 24338 E: 1300099396.073591 0003 0036 9005 E: 1300099396.073602 0003 0001 18713 E: 1300099396.073604 0000 0000 0 E: 1300099396.078567 0003 002f 0 E: 1300099396.078578 0003 0035 25384 E: 1300099396.078587 0003 002f 1 E: 1300099396.078587 0003 0035 24236 E: 1300099396.078589 0003 0036 8997 E: 1300099396.078599 0003 0000 25390 E: 1300099396.078602 0000 0000 0 E: 1300099396.083569 0003 002f 0 E: 1300099396.083579 0003 0035 25382 E: 1300099396.083581 0003 0036 18705 E: 1300099396.083588 0003 002f 1 E: 1300099396.083589 0003 0035 24132 E: 1300099396.083591 0003 0036 8994 E: 1300099396.083601 0003 0000 25388 E: 1300099396.083603 0003 0001 18711 E: 1300099396.083605 0000 0000 0 E: 1300099396.088569 0003 002f 0 E: 1300099396.088579 0003 0035 25380 E: 1300099396.088588 0003 002f 1 E: 1300099396.088589 0003 0035 24030 E: 1300099396.088590 0003 0036 8984 E: 1300099396.088600 0003 0000 25386 E: 1300099396.088603 0000 0000 0 E: 1300099396.093570 0003 002f 0 E: 1300099396.093580 0003 0035 25378 E: 1300099396.093582 0003 0036 18703 E: 1300099396.093590 0003 002f 1 E: 1300099396.093590 0003 0035 23930 E: 1300099396.093592 0003 0036 8982 E: 1300099396.093602 0003 0000 25384 E: 1300099396.093603 0003 0001 18709 E: 1300099396.093605 0000 0000 0 E: 1300099396.098568 0003 002f 0 E: 1300099396.098578 0003 0035 25376 E: 1300099396.098587 0003 002f 1 E: 1300099396.098587 0003 0035 23826 E: 1300099396.098589 0003 0036 8979 E: 1300099396.098599 0003 0000 25382 E: 1300099396.098602 0000 0000 0 E: 1300099396.103570 0003 002f 0 E: 1300099396.103580 0003 0035 25374 E: 1300099396.103582 0003 0036 18701 E: 1300099396.103590 0003 002f 1 E: 1300099396.103590 0003 0035 23716 E: 1300099396.103592 0003 0036 8976 E: 1300099396.103602 0003 0000 25380 E: 1300099396.103603 0003 0001 18707 E: 1300099396.103605 0000 0000 0 E: 1300099396.108566 0003 002f 0 E: 1300099396.108577 0003 0035 25372 E: 1300099396.108579 0003 0036 18699 E: 1300099396.108586 0003 002f 1 E: 1300099396.108587 0003 0035 23606 E: 1300099396.108588 0003 0036 8972 E: 1300099396.108598 0003 0000 25378 E: 1300099396.108600 0003 0001 18705 E: 1300099396.108602 0000 0000 0 E: 1300099396.113568 0003 002f 0 E: 1300099396.113578 0003 0035 25370 E: 1300099396.113587 0003 002f 1 E: 1300099396.113587 0003 0035 23498 E: 1300099396.113589 0003 0036 8970 E: 1300099396.113599 0003 0000 25376 E: 1300099396.113602 0000 0000 0 E: 1300099396.118567 0003 002f 0 E: 1300099396.118577 0003 0035 25368 E: 1300099396.118586 0003 002f 1 E: 1300099396.118586 0003 0035 23384 E: 1300099396.118597 0003 0000 25374 E: 1300099396.118600 0000 0000 0 E: 1300099396.124567 0003 002f 0 E: 1300099396.124577 0003 0035 25366 E: 1300099396.124579 0003 0036 18697 E: 1300099396.124587 0003 002f 1 E: 1300099396.124587 0003 0035 23270 E: 1300099396.124589 0003 0036 8973 E: 1300099396.124599 0003 0000 25372 E: 1300099396.124600 0003 0001 18703 E: 1300099396.124602 0000 0000 0 E: 1300099396.129567 0003 002f 0 E: 1300099396.129578 0003 0035 25364 E: 1300099396.129579 0003 0036 18695 E: 1300099396.129587 0003 002f 1 E: 1300099396.129587 0003 0035 23156 E: 1300099396.129589 0003 0036 8983 E: 1300099396.129599 0003 0000 25370 E: 1300099396.129601 0003 0001 18701 E: 1300099396.129602 0000 0000 0 E: 1300099396.134567 0003 002f 0 E: 1300099396.134577 0003 0035 25362 E: 1300099396.134585 0003 002f 1 E: 1300099396.134586 0003 0035 23050 E: 1300099396.134588 0003 0036 8995 E: 1300099396.134590 0003 0030 1634 E: 1300099396.134599 0003 0000 25368 E: 1300099396.134601 0000 0000 0 E: 1300099396.139567 0003 002f 0 E: 1300099396.139577 0003 0035 25360 E: 1300099396.139586 0003 002f 1 E: 1300099396.139586 0003 0035 22942 E: 1300099396.139588 0003 0036 9008 E: 1300099396.139591 0003 0030 1680 E: 1300099396.139599 0003 0000 25366 E: 1300099396.139602 0000 0000 0 E: 1300099396.144566 0003 002f 0 E: 1300099396.144577 0003 0035 25358 E: 1300099396.144578 0003 0036 18693 E: 1300099396.144586 0003 002f 1 E: 1300099396.144586 0003 0035 22832 E: 1300099396.144588 0003 0036 9022 E: 1300099396.144590 0003 0030 1715 E: 1300099396.144599 0003 0000 25364 E: 1300099396.144600 0003 0001 18699 E: 1300099396.144602 0000 0000 0 E: 1300099396.149566 0003 002f 0 E: 1300099396.149577 0003 0035 25356 E: 1300099396.149585 0003 002f 1 E: 1300099396.149586 0003 0035 22726 E: 1300099396.149587 0003 0036 9057 E: 1300099396.149590 0003 0030 1585 E: 1300099396.149598 0003 0000 25362 E: 1300099396.149601 0000 0000 0 E: 1300099396.154566 0003 002f 0 E: 1300099396.154576 0003 0035 25354 E: 1300099396.154585 0003 002f 1 E: 1300099396.154585 0003 0035 22622 E: 1300099396.154587 0003 0036 9069 E: 1300099396.154590 0003 0030 1552 E: 1300099396.154598 0003 0000 25360 E: 1300099396.154600 0000 0000 0 E: 1300099396.159567 0003 002f 0 E: 1300099396.159577 0003 0035 25352 E: 1300099396.159585 0003 002f 1 E: 1300099396.159586 0003 0035 22524 E: 1300099396.159587 0003 0036 9105 E: 1300099396.159598 0003 0000 25358 E: 1300099396.159600 0000 0000 0 E: 1300099396.164566 0003 002f 0 E: 1300099396.164576 0003 0035 25350 E: 1300099396.164578 0003 0036 18691 E: 1300099396.164586 0003 002f 1 E: 1300099396.164586 0003 0035 22416 E: 1300099396.164588 0003 0036 9116 E: 1300099396.164598 0003 0000 25356 E: 1300099396.164600 0003 0001 18697 E: 1300099396.164601 0000 0000 0 E: 1300099396.169574 0003 0035 22308 E: 1300099396.169585 0003 0036 9149 E: 1300099396.169597 0000 0000 0 E: 1300099396.174566 0003 002f 0 E: 1300099396.174576 0003 0035 25348 E: 1300099396.174578 0003 0036 18689 E: 1300099396.174585 0003 002f 1 E: 1300099396.174586 0003 0035 22206 E: 1300099396.174587 0003 0036 9179 E: 1300099396.174597 0003 0000 25354 E: 1300099396.174599 0003 0001 18695 E: 1300099396.174601 0000 0000 0 E: 1300099396.179566 0003 002f 0 E: 1300099396.179576 0003 0035 25346 E: 1300099396.179585 0003 002f 1 E: 1300099396.179585 0003 0035 22110 E: 1300099396.179587 0003 0036 9211 E: 1300099396.179597 0003 0000 25352 E: 1300099396.179600 0000 0000 0 E: 1300099396.185566 0003 002f 0 E: 1300099396.185576 0003 0035 25344 E: 1300099396.185584 0003 002f 1 E: 1300099396.185585 0003 0035 22024 E: 1300099396.185587 0003 0036 9225 E: 1300099396.185597 0003 0000 25350 E: 1300099396.185599 0000 0000 0 E: 1300099396.190567 0003 002f 0 E: 1300099396.190577 0003 0035 25342 E: 1300099396.190579 0003 0036 18687 E: 1300099396.190586 0003 002f 1 E: 1300099396.190587 0003 0035 21940 E: 1300099396.190588 0003 0036 9267 E: 1300099396.190598 0003 0000 25348 E: 1300099396.190600 0003 0001 18693 E: 1300099396.190602 0000 0000 0 E: 1300099396.195565 0003 002f 0 E: 1300099396.195575 0003 0035 25340 E: 1300099396.195584 0003 002f 1 E: 1300099396.195584 0003 0035 21862 E: 1300099396.195586 0003 0036 9279 E: 1300099396.195597 0003 0000 25346 E: 1300099396.195599 0000 0000 0 E: 1300099396.200565 0003 002f 0 E: 1300099396.200575 0003 0035 25338 E: 1300099396.200577 0003 0036 18685 E: 1300099396.200584 0003 002f 1 E: 1300099396.200585 0003 0035 21790 E: 1300099396.200586 0003 0036 9315 E: 1300099396.200596 0003 0000 25344 E: 1300099396.200598 0003 0001 18691 E: 1300099396.200600 0000 0000 0 E: 1300099396.205573 0003 0035 21720 E: 1300099396.205584 0003 0036 9327 E: 1300099396.205596 0000 0000 0 E: 1300099396.210565 0003 002f 0 E: 1300099396.210576 0003 0035 25336 E: 1300099396.210584 0003 002f 1 E: 1300099396.210585 0003 0035 21654 E: 1300099396.210586 0003 0036 9363 E: 1300099396.210596 0003 0000 25342 E: 1300099396.210599 0000 0000 0 E: 1300099396.215565 0003 002f 0 E: 1300099396.215575 0003 0035 25334 E: 1300099396.215577 0003 0036 18683 E: 1300099396.215585 0003 002f 1 E: 1300099396.215585 0003 0035 21624 E: 1300099396.215587 0003 0036 9366 E: 1300099396.215597 0003 0000 25340 E: 1300099396.215598 0003 0001 18689 E: 1300099396.215600 0000 0000 0 E: 1300099396.220566 0003 002f 0 E: 1300099396.220576 0003 0035 25332 E: 1300099396.220585 0003 002f 1 E: 1300099396.220586 0003 0035 21592 E: 1300099396.220587 0003 0036 9376 E: 1300099396.220598 0003 0000 25338 E: 1300099396.220600 0000 0000 0 E: 1300099396.225565 0003 002f 0 E: 1300099396.225575 0003 0035 25330 E: 1300099396.225577 0003 0036 18681 E: 1300099396.225585 0003 002f 1 E: 1300099396.225585 0003 0035 21578 E: 1300099396.225587 0003 0036 9387 E: 1300099396.225597 0003 0000 25336 E: 1300099396.225598 0003 0001 18687 E: 1300099396.225600 0000 0000 0 E: 1300099396.230565 0003 002f 0 E: 1300099396.230576 0003 0035 25328 E: 1300099396.230578 0003 0036 18678 E: 1300099396.230585 0003 002f 1 E: 1300099396.230586 0003 0035 21534 E: 1300099396.230587 0003 0036 9399 E: 1300099396.230597 0003 0000 25334 E: 1300099396.230599 0003 0001 18684 E: 1300099396.230600 0000 0000 0 E: 1300099396.235568 0003 002f 0 E: 1300099396.235579 0003 0036 18676 E: 1300099396.235586 0003 002f 1 E: 1300099396.235587 0003 0035 21521 E: 1300099396.235589 0003 0036 9412 E: 1300099396.235600 0003 0001 18682 E: 1300099396.235602 0000 0000 0 E: 1300099396.241554 0003 002f 0 E: 1300099396.241559 0003 0035 25325 E: 1300099396.241567 0003 002f 1 E: 1300099396.241568 0003 0035 21482 E: 1300099396.241570 0003 0036 9425 E: 1300099396.241580 0003 0000 25331 E: 1300099396.241582 0000 0000 0 E: 1300099396.246566 0003 002f 0 E: 1300099396.246576 0003 0035 25323 E: 1300099396.246585 0003 002f 1 E: 1300099396.246585 0003 0035 21469 E: 1300099396.246587 0003 0036 9439 E: 1300099396.246597 0003 0000 25329 E: 1300099396.246600 0000 0000 0 E: 1300099396.251565 0003 002f 0 E: 1300099396.251575 0003 0035 25321 E: 1300099396.251584 0003 002f 1 E: 1300099396.251584 0003 0035 21432 E: 1300099396.251586 0003 0036 9453 E: 1300099396.251596 0003 0000 25327 E: 1300099396.251599 0000 0000 0 E: 1300099396.256564 0003 002f 0 E: 1300099396.256575 0003 0035 25319 E: 1300099396.256576 0003 0036 18674 E: 1300099396.256584 0003 002f 1 E: 1300099396.256584 0003 0035 21419 E: 1300099396.256586 0003 0036 9483 E: 1300099396.256589 0003 0030 1322 E: 1300099396.256597 0003 0000 25325 E: 1300099396.256598 0003 0001 18680 E: 1300099396.256600 0000 0000 0 E: 1300099396.261565 0003 002f 0 E: 1300099396.261575 0003 0035 25317 E: 1300099396.261577 0003 0036 18672 E: 1300099396.261584 0003 002f 1 E: 1300099396.261585 0003 0035 21384 E: 1300099396.261587 0003 0036 9486 E: 1300099396.261589 0003 0030 1264 E: 1300099396.261597 0003 0000 25323 E: 1300099396.261599 0003 0001 18678 E: 1300099396.261600 0000 0000 0 E: 1300099396.266564 0003 002f 0 E: 1300099396.266575 0003 0035 25315 E: 1300099396.266583 0003 002f 1 E: 1300099396.266584 0003 0035 21373 E: 1300099396.266585 0003 0036 9499 E: 1300099396.266588 0003 0030 1221 E: 1300099396.266596 0003 0000 25321 E: 1300099396.266599 0000 0000 0 E: 1300099396.271565 0003 002f 0 E: 1300099396.271575 0003 0035 25313 E: 1300099396.271583 0003 002f 1 E: 1300099396.271584 0003 0035 21340 E: 1300099396.271586 0003 0036 9533 E: 1300099396.271588 0003 0030 1188 E: 1300099396.271597 0003 0000 25319 E: 1300099396.271599 0000 0000 0 E: 1300099396.276564 0003 002f 0 E: 1300099396.276574 0003 0036 18670 E: 1300099396.276582 0003 002f 1 E: 1300099396.276583 0003 0035 21330 E: 1300099396.276584 0003 0036 9541 E: 1300099396.276595 0003 0001 18676 E: 1300099396.276597 0000 0000 0 E: 1300099396.281564 0003 002f 0 E: 1300099396.281574 0003 0035 25311 E: 1300099396.281582 0003 002f 1 E: 1300099396.281583 0003 0035 21298 E: 1300099396.281585 0003 0036 9553 E: 1300099396.281595 0003 0000 25317 E: 1300099396.281598 0000 0000 0 E: 1300099396.286564 0003 002f 0 E: 1300099396.286574 0003 0035 25309 E: 1300099396.286583 0003 002f 1 E: 1300099396.286583 0003 0035 21289 E: 1300099396.286585 0003 0036 9566 E: 1300099396.286595 0003 0000 25315 E: 1300099396.286598 0000 0000 0 E: 1300099396.291564 0003 002f 0 E: 1300099396.291575 0003 0035 25307 E: 1300099396.291583 0003 002f 1 E: 1300099396.291584 0003 0035 21274 E: 1300099396.291586 0003 0036 9580 E: 1300099396.291596 0003 0000 25313 E: 1300099396.291598 0000 0000 0 E: 1300099396.296564 0003 002f 0 E: 1300099396.296575 0003 0035 25305 E: 1300099396.296584 0003 002f 1 E: 1300099396.296584 0003 0035 21238 E: 1300099396.296586 0003 0036 9615 E: 1300099396.296596 0003 0000 25311 E: 1300099396.296599 0000 0000 0 E: 1300099396.302563 0003 002f 0 E: 1300099396.302574 0003 0035 25302 E: 1300099396.302575 0003 0036 18668 E: 1300099396.302578 0003 0030 1226 E: 1300099396.302583 0003 002f 1 E: 1300099396.302584 0003 0035 21208 E: 1300099396.302586 0003 0036 9625 E: 1300099396.302596 0003 0000 25308 E: 1300099396.302597 0003 0001 18674 E: 1300099396.302599 0000 0000 0 E: 1300099396.307562 0003 002f 0 E: 1300099396.307573 0003 0035 25291 E: 1300099396.307577 0003 0030 1283 E: 1300099396.307580 0003 002f 1 E: 1300099396.307581 0003 0039 -1 E: 1300099396.307587 0003 0000 25299 E: 1300099396.307590 0000 0000 0 E: 1300099396.312563 0003 002f 0 E: 1300099396.312574 0003 0035 25258 E: 1300099396.312578 0003 0030 1326 E: 1300099396.312585 0003 0000 25258 E: 1300099396.312587 0000 0000 0 E: 1300099396.317563 0003 0035 25247 E: 1300099396.317576 0003 0030 1267 E: 1300099396.317584 0003 0000 25255 E: 1300099396.317586 0000 0000 0 E: 1300099396.322561 0003 0039 -1 E: 1300099396.322574 0001 014a 0 E: 1300099396.322576 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/evemu/two-tap.evemu0000644000015600001650000000370412651522342024650 0ustar pbuserpbgroup00000000000000N: 3M-3M-MicroTouch-USB-controller I: 0003 0596 0502 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 80 73 02 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 32767 15 0 A: 01 0 32767 15 0 A: 2f 0 59 0 0 A: 30 0 32767 255 0 A: 31 0 32767 255 0 A: 34 0 1 0 0 A: 35 0 32767 15 0 A: 36 0 32767 15 0 A: 39 0 65535 0 0 E: 1300099341.056609 0003 002f 1 E: 1300099341.056623 0003 0039 6 E: 1300099341.056626 0003 0035 27798 E: 1300099341.056628 0003 0036 12289 E: 1300099341.056631 0003 0030 1323 E: 1300099341.056636 0001 014a 1 E: 1300099341.056639 0003 0000 27798 E: 1300099341.056641 0003 0001 12289 E: 1300099341.056643 0000 0000 0 E: 1300099341.061601 0003 002f 0 E: 1300099341.061611 0003 0039 7 E: 1300099341.061614 0003 0035 28210 E: 1300099341.061616 0003 0036 16297 E: 1300099341.061619 0003 0030 1224 E: 1300099341.061628 0003 002f 1 E: 1300099341.061628 0003 0030 1356 E: 1300099341.061640 0000 0000 0 E: 1300099341.066604 0003 002f 0 E: 1300099341.066614 0003 0030 1191 E: 1300099341.066633 0000 0000 0 E: 1300099341.102596 0003 0039 -1 E: 1300099341.102623 0000 0000 0 E: 1300099341.112598 0003 002f 1 E: 1300099341.112609 0003 0035 27796 E: 1300099341.112610 0003 0036 12291 E: 1300099341.112622 0000 0000 0 E: 1300099341.117598 0003 0035 27794 E: 1300099341.117609 0003 0036 12293 E: 1300099341.117621 0000 0000 0 E: 1300099341.122598 0003 0039 -1 E: 1300099341.122613 0001 014a 0 E: 1300099341.122615 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/devices/0000755000015600001650000000000012651522501022504 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/io/devices/3m.device0000644000015600001650000000155612651522342024216 0ustar pbuserpbgroup00000000000000N: 3M-3M-MicroTouch-USB-controller I: 0003 0596 0502 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 80 73 02 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 32767 15 0 A: 01 0 32767 15 0 A: 2f 0 59 0 0 A: 30 0 32767 255 0 A: 31 0 32767 255 0 A: 34 0 1 0 0 A: 35 0 32767 15 0 A: 36 0 32767 15 0 A: 39 0 65535 0 0 grail-3.1.0+16.04.20160125/test/integration/io/events/0000755000015600001650000000000012651522501022366 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/io/events/3m-two-rotate.event0000644000015600001650000015075712651522342026075 0ustar pbuserpbgroup00000000000000E: 1300099395.330589 0003 0039 12 E: 1300099395.330605 0003 0035 25582 E: 1300099395.330608 0003 0036 18965 E: 1300099395.330610 0003 0030 1323 E: 1300099395.330615 0001 014a 1 E: 1300099395.330618 0003 0000 25582 E: 1300099395.330620 0003 0001 18965 E: 1300099395.330622 0000 0000 0 E: 1300099395.335585 0003 0030 1356 E: 1300099395.335604 0000 0000 0 E: 1300099395.355589 0003 002f 1 E: 1300099395.355599 0003 0039 13 E: 1300099395.355602 0003 0035 30032 E: 1300099395.355603 0003 0036 17157 E: 1300099395.355606 0003 0030 1224 E: 1300099395.355617 0000 0000 0 E: 1300099395.360592 0003 0030 1191 E: 1300099395.360612 0000 0000 0 E: 1300099395.411587 0003 0036 17155 E: 1300099395.411609 0000 0000 0 E: 1300099395.416580 0003 002f 0 E: 1300099395.416591 0003 0036 18963 E: 1300099395.416599 0003 002f 1 E: 1300099395.416600 0003 0036 17152 E: 1300099395.416612 0000 0000 0 E: 1300099395.421581 0003 002f 0 E: 1300099395.421591 0003 0036 18961 E: 1300099395.421599 0003 002f 1 E: 1300099395.421600 0003 0036 17149 E: 1300099395.421602 0003 0030 1323 E: 1300099395.421613 0000 0000 0 E: 1300099395.426581 0003 002f 0 E: 1300099395.426591 0003 0035 25580 E: 1300099395.426593 0003 0036 18959 E: 1300099395.426601 0003 002f 1 E: 1300099395.426602 0003 0036 17146 E: 1300099395.426604 0003 0030 1356 E: 1300099395.426615 0000 0000 0 E: 1300099395.432584 0003 002f 0 E: 1300099395.432595 0003 0036 18957 E: 1300099395.432604 0003 002f 1 E: 1300099395.432605 0003 0036 17143 E: 1300099395.432616 0003 0001 18963 E: 1300099395.432618 0000 0000 0 E: 1300099395.437583 0003 002f 0 E: 1300099395.437593 0003 0035 25578 E: 1300099395.437595 0003 0036 18955 E: 1300099395.437603 0003 002f 1 E: 1300099395.437603 0003 0035 30029 E: 1300099395.437605 0003 0036 17129 E: 1300099395.437616 0003 0001 18961 E: 1300099395.437618 0000 0000 0 E: 1300099395.442581 0003 002f 0 E: 1300099395.442591 0003 0035 25576 E: 1300099395.442593 0003 0036 18952 E: 1300099395.442600 0003 002f 1 E: 1300099395.442601 0003 0035 30020 E: 1300099395.442603 0003 0036 17097 E: 1300099395.442614 0003 0001 18958 E: 1300099395.442615 0000 0000 0 E: 1300099395.447584 0003 002f 0 E: 1300099395.447594 0003 0035 25574 E: 1300099395.447596 0003 0036 18949 E: 1300099395.447603 0003 002f 1 E: 1300099395.447604 0003 0035 30016 E: 1300099395.447606 0003 0036 17087 E: 1300099395.447616 0003 0000 25580 E: 1300099395.447618 0003 0001 18955 E: 1300099395.447619 0000 0000 0 E: 1300099395.452588 0003 0035 30008 E: 1300099395.452599 0003 0036 17057 E: 1300099395.452612 0000 0000 0 E: 1300099395.457581 0003 002f 0 E: 1300099395.457591 0003 0035 25572 E: 1300099395.457593 0003 0036 18947 E: 1300099395.457600 0003 002f 1 E: 1300099395.457601 0003 0035 30004 E: 1300099395.457602 0003 0036 17048 E: 1300099395.457613 0003 0000 25578 E: 1300099395.457614 0003 0001 18953 E: 1300099395.457616 0000 0000 0 E: 1300099395.462579 0003 002f 0 E: 1300099395.462590 0003 0035 25570 E: 1300099395.462592 0003 0036 18945 E: 1300099395.462599 0003 002f 1 E: 1300099395.462600 0003 0035 29995 E: 1300099395.462601 0003 0036 17017 E: 1300099395.462612 0003 0000 25576 E: 1300099395.462613 0003 0001 18951 E: 1300099395.462615 0000 0000 0 E: 1300099395.467581 0003 002f 0 E: 1300099395.467591 0003 0036 18943 E: 1300099395.467599 0003 002f 1 E: 1300099395.467599 0003 0035 29986 E: 1300099395.467601 0003 0036 17007 E: 1300099395.467612 0003 0001 18949 E: 1300099395.467614 0000 0000 0 E: 1300099395.472579 0003 002f 0 E: 1300099395.472590 0003 0035 25568 E: 1300099395.472592 0003 0036 18941 E: 1300099395.472599 0003 002f 1 E: 1300099395.472600 0003 0035 29982 E: 1300099395.472601 0003 0036 16993 E: 1300099395.472611 0003 0000 25574 E: 1300099395.472613 0003 0001 18947 E: 1300099395.472615 0000 0000 0 E: 1300099395.477579 0003 002f 0 E: 1300099395.477589 0003 0035 25566 E: 1300099395.477591 0003 0036 18939 E: 1300099395.477598 0003 002f 1 E: 1300099395.477599 0003 0035 29973 E: 1300099395.477600 0003 0036 16961 E: 1300099395.477610 0003 0000 25572 E: 1300099395.477612 0003 0001 18945 E: 1300099395.477614 0000 0000 0 E: 1300099395.482579 0003 002f 0 E: 1300099395.482589 0003 0035 25564 E: 1300099395.482590 0003 0036 18937 E: 1300099395.482598 0003 002f 1 E: 1300099395.482598 0003 0035 29964 E: 1300099395.482600 0003 0036 16951 E: 1300099395.482610 0003 0000 25570 E: 1300099395.482612 0003 0001 18943 E: 1300099395.482613 0000 0000 0 E: 1300099395.488580 0003 002f 0 E: 1300099395.488590 0003 0035 25562 E: 1300099395.488592 0003 0036 18935 E: 1300099395.488599 0003 002f 1 E: 1300099395.488600 0003 0035 29956 E: 1300099395.488602 0003 0036 16921 E: 1300099395.488612 0003 0000 25568 E: 1300099395.488613 0003 0001 18941 E: 1300099395.488615 0000 0000 0 E: 1300099395.493581 0003 002f 0 E: 1300099395.493592 0003 0036 18933 E: 1300099395.493600 0003 002f 1 E: 1300099395.493600 0003 0035 29948 E: 1300099395.493602 0003 0036 16910 E: 1300099395.493613 0003 0001 18939 E: 1300099395.493615 0000 0000 0 E: 1300099395.498579 0003 002f 0 E: 1300099395.498589 0003 0035 25560 E: 1300099395.498591 0003 0036 18931 E: 1300099395.498599 0003 002f 1 E: 1300099395.498599 0003 0035 29940 E: 1300099395.498601 0003 0036 16877 E: 1300099395.498611 0003 0000 25566 E: 1300099395.498612 0003 0001 18937 E: 1300099395.498614 0000 0000 0 E: 1300099395.503579 0003 002f 0 E: 1300099395.503590 0003 0035 25558 E: 1300099395.503598 0003 002f 1 E: 1300099395.503599 0003 0035 29932 E: 1300099395.503600 0003 0036 16864 E: 1300099395.503610 0003 0000 25564 E: 1300099395.503613 0000 0000 0 E: 1300099395.508579 0003 002f 0 E: 1300099395.508589 0003 0035 25556 E: 1300099395.508590 0003 0036 18929 E: 1300099395.508598 0003 002f 1 E: 1300099395.508598 0003 0035 29924 E: 1300099395.508600 0003 0036 16825 E: 1300099395.508610 0003 0000 25562 E: 1300099395.508612 0003 0001 18935 E: 1300099395.508613 0000 0000 0 E: 1300099395.513580 0003 002f 0 E: 1300099395.513590 0003 0036 18927 E: 1300099395.513598 0003 002f 1 E: 1300099395.513598 0003 0035 29916 E: 1300099395.513600 0003 0036 16813 E: 1300099395.513602 0003 0030 1224 E: 1300099395.513612 0003 0001 18933 E: 1300099395.513613 0000 0000 0 E: 1300099395.518579 0003 002f 0 E: 1300099395.518589 0003 0035 25554 E: 1300099395.518591 0003 0036 18925 E: 1300099395.518598 0003 002f 1 E: 1300099395.518599 0003 0035 29907 E: 1300099395.518600 0003 0036 16775 E: 1300099395.518603 0003 0030 1191 E: 1300099395.518611 0003 0000 25560 E: 1300099395.518612 0003 0001 18931 E: 1300099395.518614 0000 0000 0 E: 1300099395.523579 0003 002f 0 E: 1300099395.523590 0003 0035 25552 E: 1300099395.523591 0003 0036 18923 E: 1300099395.523599 0003 002f 1 E: 1300099395.523599 0003 0035 29897 E: 1300099395.523601 0003 0036 16743 E: 1300099395.523611 0003 0000 25558 E: 1300099395.523613 0003 0001 18929 E: 1300099395.523614 0000 0000 0 E: 1300099395.528578 0003 002f 0 E: 1300099395.528588 0003 0035 25550 E: 1300099395.528590 0003 0036 18921 E: 1300099395.528597 0003 002f 1 E: 1300099395.528598 0003 0035 29888 E: 1300099395.528599 0003 0036 16729 E: 1300099395.528609 0003 0000 25556 E: 1300099395.528611 0003 0001 18927 E: 1300099395.528613 0000 0000 0 E: 1300099395.533578 0003 002f 0 E: 1300099395.533588 0003 0035 25548 E: 1300099395.533590 0003 0036 18919 E: 1300099395.533597 0003 002f 1 E: 1300099395.533598 0003 0035 29879 E: 1300099395.533600 0003 0036 16687 E: 1300099395.533602 0003 0030 1323 E: 1300099395.533611 0003 0000 25554 E: 1300099395.533612 0003 0001 18925 E: 1300099395.533614 0000 0000 0 E: 1300099395.538579 0003 002f 0 E: 1300099395.538589 0003 0036 18917 E: 1300099395.538597 0003 002f 1 E: 1300099395.538598 0003 0035 29869 E: 1300099395.538599 0003 0036 16655 E: 1300099395.538602 0003 0030 1356 E: 1300099395.538611 0003 0001 18923 E: 1300099395.538613 0000 0000 0 E: 1300099395.544578 0003 002f 0 E: 1300099395.544588 0003 0035 25546 E: 1300099395.544590 0003 0036 18915 E: 1300099395.544597 0003 002f 1 E: 1300099395.544598 0003 0035 29860 E: 1300099395.544599 0003 0036 16625 E: 1300099395.544610 0003 0000 25552 E: 1300099395.544611 0003 0001 18921 E: 1300099395.544613 0000 0000 0 E: 1300099395.549579 0003 002f 0 E: 1300099395.549589 0003 0035 25544 E: 1300099395.549591 0003 0036 18913 E: 1300099395.549598 0003 002f 1 E: 1300099395.549599 0003 0035 29851 E: 1300099395.549600 0003 0036 16593 E: 1300099395.549611 0003 0000 25550 E: 1300099395.549612 0003 0001 18919 E: 1300099395.549614 0000 0000 0 E: 1300099395.554578 0003 002f 0 E: 1300099395.554589 0003 0035 25542 E: 1300099395.554590 0003 0036 18911 E: 1300099395.554598 0003 002f 1 E: 1300099395.554598 0003 0035 29840 E: 1300099395.554600 0003 0036 16563 E: 1300099395.554610 0003 0000 25548 E: 1300099395.554612 0003 0001 18917 E: 1300099395.554613 0000 0000 0 E: 1300099395.559577 0003 002f 0 E: 1300099395.559588 0003 0035 25540 E: 1300099395.559589 0003 0036 18909 E: 1300099395.559597 0003 002f 1 E: 1300099395.559597 0003 0035 29830 E: 1300099395.559599 0003 0036 16533 E: 1300099395.559609 0003 0000 25546 E: 1300099395.559611 0003 0001 18915 E: 1300099395.559612 0000 0000 0 E: 1300099395.564582 0003 002f 0 E: 1300099395.564592 0003 0035 25538 E: 1300099395.564594 0003 0036 18907 E: 1300099395.564601 0003 002f 1 E: 1300099395.564602 0003 0035 29821 E: 1300099395.564604 0003 0036 16503 E: 1300099395.564614 0003 0000 25544 E: 1300099395.564615 0003 0001 18913 E: 1300099395.564617 0000 0000 0 E: 1300099395.569578 0003 002f 0 E: 1300099395.569588 0003 0036 18905 E: 1300099395.569596 0003 002f 1 E: 1300099395.569597 0003 0035 29811 E: 1300099395.569599 0003 0036 16471 E: 1300099395.569610 0003 0001 18911 E: 1300099395.569611 0000 0000 0 E: 1300099395.574578 0003 002f 0 E: 1300099395.574588 0003 0035 25536 E: 1300099395.574589 0003 0036 18903 E: 1300099395.574597 0003 002f 1 E: 1300099395.574597 0003 0035 29801 E: 1300099395.574599 0003 0036 16457 E: 1300099395.574609 0003 0000 25542 E: 1300099395.574611 0003 0001 18909 E: 1300099395.574612 0000 0000 0 E: 1300099395.579576 0003 002f 0 E: 1300099395.579587 0003 0035 25534 E: 1300099395.579589 0003 0036 18901 E: 1300099395.579596 0003 002f 1 E: 1300099395.579597 0003 0035 29791 E: 1300099395.579598 0003 0036 16413 E: 1300099395.579608 0003 0000 25540 E: 1300099395.579610 0003 0001 18907 E: 1300099395.579611 0000 0000 0 E: 1300099395.584577 0003 002f 0 E: 1300099395.584587 0003 0035 25532 E: 1300099395.584589 0003 0036 18899 E: 1300099395.584597 0003 002f 1 E: 1300099395.584597 0003 0035 29758 E: 1300099395.584599 0003 0036 16343 E: 1300099395.584609 0003 0000 25538 E: 1300099395.584611 0003 0001 18905 E: 1300099395.584612 0000 0000 0 E: 1300099395.589577 0003 002f 0 E: 1300099395.589588 0003 0035 25530 E: 1300099395.589596 0003 002f 1 E: 1300099395.589597 0003 0035 29749 E: 1300099395.589598 0003 0036 16273 E: 1300099395.589609 0003 0000 25536 E: 1300099395.589611 0000 0000 0 E: 1300099395.594577 0003 002f 0 E: 1300099395.594588 0003 0035 25528 E: 1300099395.594589 0003 0036 18896 E: 1300099395.594597 0003 002f 1 E: 1300099395.594598 0003 0035 29734 E: 1300099395.594599 0003 0036 16207 E: 1300099395.594602 0003 0030 1224 E: 1300099395.594610 0003 0000 25534 E: 1300099395.594611 0003 0001 18902 E: 1300099395.594613 0000 0000 0 E: 1300099395.600577 0003 002f 0 E: 1300099395.600588 0003 0036 18894 E: 1300099395.600595 0003 002f 1 E: 1300099395.600596 0003 0035 29702 E: 1300099395.600598 0003 0036 16141 E: 1300099395.600600 0003 0030 1191 E: 1300099395.600609 0003 0001 18900 E: 1300099395.600611 0000 0000 0 E: 1300099395.605576 0003 002f 0 E: 1300099395.605586 0003 0035 25526 E: 1300099395.605588 0003 0036 18892 E: 1300099395.605596 0003 002f 1 E: 1300099395.605596 0003 0035 29694 E: 1300099395.605598 0003 0036 16073 E: 1300099395.605608 0003 0000 25532 E: 1300099395.605609 0003 0001 18898 E: 1300099395.605611 0000 0000 0 E: 1300099395.610577 0003 002f 0 E: 1300099395.610587 0003 0035 25524 E: 1300099395.610589 0003 0036 18890 E: 1300099395.610596 0003 002f 1 E: 1300099395.610597 0003 0035 29682 E: 1300099395.610598 0003 0036 15999 E: 1300099395.610601 0003 0030 1323 E: 1300099395.610609 0003 0000 25530 E: 1300099395.610611 0003 0001 18896 E: 1300099395.610613 0000 0000 0 E: 1300099395.615576 0003 002f 0 E: 1300099395.615587 0003 0035 25522 E: 1300099395.615589 0003 0036 18888 E: 1300099395.615596 0003 002f 1 E: 1300099395.615596 0003 0035 29650 E: 1300099395.615598 0003 0036 15925 E: 1300099395.615601 0003 0030 1356 E: 1300099395.615609 0003 0000 25528 E: 1300099395.615610 0003 0001 18894 E: 1300099395.615612 0000 0000 0 E: 1300099395.620578 0003 002f 0 E: 1300099395.620588 0003 0035 25520 E: 1300099395.620590 0003 0036 18886 E: 1300099395.620597 0003 002f 1 E: 1300099395.620598 0003 0035 29641 E: 1300099395.620600 0003 0036 15845 E: 1300099395.620610 0003 0000 25526 E: 1300099395.620611 0003 0001 18892 E: 1300099395.620613 0000 0000 0 E: 1300099395.625576 0003 002f 0 E: 1300099395.625586 0003 0035 25518 E: 1300099395.625595 0003 002f 1 E: 1300099395.625595 0003 0035 29627 E: 1300099395.625597 0003 0036 15763 E: 1300099395.625607 0003 0000 25524 E: 1300099395.625610 0000 0000 0 E: 1300099395.630577 0003 002f 0 E: 1300099395.630587 0003 0036 18884 E: 1300099395.630595 0003 002f 1 E: 1300099395.630596 0003 0035 29612 E: 1300099395.630597 0003 0036 15677 E: 1300099395.630608 0003 0001 18890 E: 1300099395.630610 0000 0000 0 E: 1300099395.635577 0003 002f 0 E: 1300099395.635587 0003 0035 25516 E: 1300099395.635589 0003 0036 18882 E: 1300099395.635596 0003 002f 1 E: 1300099395.635597 0003 0035 29580 E: 1300099395.635599 0003 0036 15589 E: 1300099395.635601 0003 0030 1224 E: 1300099395.635609 0003 0000 25522 E: 1300099395.635611 0003 0001 18888 E: 1300099395.635613 0000 0000 0 E: 1300099395.640576 0003 002f 0 E: 1300099395.640586 0003 0035 25514 E: 1300099395.640588 0003 0036 18880 E: 1300099395.640596 0003 002f 1 E: 1300099395.640596 0003 0035 29571 E: 1300099395.640598 0003 0036 15495 E: 1300099395.640600 0003 0030 1282 E: 1300099395.640609 0003 0000 25520 E: 1300099395.640610 0003 0001 18886 E: 1300099395.640612 0000 0000 0 E: 1300099395.645575 0003 002f 0 E: 1300099395.645586 0003 0035 25512 E: 1300099395.645587 0003 0036 18878 E: 1300099395.645595 0003 002f 1 E: 1300099395.645595 0003 0035 29557 E: 1300099395.645597 0003 0036 15401 E: 1300099395.645600 0003 0030 1325 E: 1300099395.645608 0003 0000 25518 E: 1300099395.645609 0003 0001 18884 E: 1300099395.645611 0000 0000 0 E: 1300099395.650577 0003 002f 0 E: 1300099395.650587 0003 0036 18876 E: 1300099395.650595 0003 002f 1 E: 1300099395.650595 0003 0035 29526 E: 1300099395.650597 0003 0036 15309 E: 1300099395.650600 0003 0030 1357 E: 1300099395.650609 0003 0001 18882 E: 1300099395.650611 0000 0000 0 E: 1300099395.655575 0003 002f 0 E: 1300099395.655586 0003 0035 25510 E: 1300099395.655587 0003 0036 18874 E: 1300099395.655595 0003 002f 1 E: 1300099395.655595 0003 0035 29515 E: 1300099395.655597 0003 0036 15219 E: 1300099395.655607 0003 0000 25516 E: 1300099395.655609 0003 0001 18880 E: 1300099395.655610 0000 0000 0 E: 1300099395.661576 0003 002f 0 E: 1300099395.661586 0003 0035 25508 E: 1300099395.661588 0003 0036 18872 E: 1300099395.661595 0003 002f 1 E: 1300099395.661596 0003 0035 29484 E: 1300099395.661597 0003 0036 15131 E: 1300099395.661607 0003 0000 25514 E: 1300099395.661609 0003 0001 18878 E: 1300099395.661611 0000 0000 0 E: 1300099395.666575 0003 002f 0 E: 1300099395.666586 0003 0035 25506 E: 1300099395.666587 0003 0036 18870 E: 1300099395.666595 0003 002f 1 E: 1300099395.666595 0003 0035 29471 E: 1300099395.666597 0003 0036 15041 E: 1300099395.666607 0003 0000 25512 E: 1300099395.666608 0003 0001 18876 E: 1300099395.666610 0000 0000 0 E: 1300099395.671576 0003 002f 0 E: 1300099395.671586 0003 0036 18868 E: 1300099395.671594 0003 002f 1 E: 1300099395.671594 0003 0035 29436 E: 1300099395.671596 0003 0036 14949 E: 1300099395.671607 0003 0001 18874 E: 1300099395.671609 0000 0000 0 E: 1300099395.676576 0003 002f 0 E: 1300099395.676586 0003 0035 25504 E: 1300099395.676588 0003 0036 18866 E: 1300099395.676595 0003 002f 1 E: 1300099395.676596 0003 0035 29425 E: 1300099395.676597 0003 0036 14851 E: 1300099395.676600 0003 0030 1224 E: 1300099395.676608 0003 0000 25510 E: 1300099395.676610 0003 0001 18872 E: 1300099395.676611 0000 0000 0 E: 1300099395.681576 0003 002f 0 E: 1300099395.681587 0003 0035 25502 E: 1300099395.681588 0003 0036 18864 E: 1300099395.681596 0003 002f 1 E: 1300099395.681596 0003 0035 29390 E: 1300099395.681598 0003 0036 14751 E: 1300099395.681600 0003 0030 1282 E: 1300099395.681609 0003 0000 25508 E: 1300099395.681610 0003 0001 18870 E: 1300099395.681612 0000 0000 0 E: 1300099395.686576 0003 002f 0 E: 1300099395.686586 0003 0035 25500 E: 1300099395.686588 0003 0036 18862 E: 1300099395.686596 0003 002f 1 E: 1300099395.686596 0003 0035 29378 E: 1300099395.686598 0003 0036 14657 E: 1300099395.686600 0003 0030 1325 E: 1300099395.686608 0003 0000 25506 E: 1300099395.686610 0003 0001 18868 E: 1300099395.686612 0000 0000 0 E: 1300099395.691575 0003 002f 0 E: 1300099395.691586 0003 0035 25498 E: 1300099395.691588 0003 0036 18859 E: 1300099395.691595 0003 002f 1 E: 1300099395.691596 0003 0035 29342 E: 1300099395.691598 0003 0036 14563 E: 1300099395.691600 0003 0030 1357 E: 1300099395.691609 0003 0000 25504 E: 1300099395.691610 0003 0001 18865 E: 1300099395.691612 0000 0000 0 E: 1300099395.696577 0003 002f 0 E: 1300099395.696587 0003 0036 18857 E: 1300099395.696595 0003 002f 1 E: 1300099395.696595 0003 0035 29329 E: 1300099395.696597 0003 0036 14463 E: 1300099395.696608 0003 0001 18863 E: 1300099395.696610 0000 0000 0 E: 1300099395.701575 0003 002f 0 E: 1300099395.701585 0003 0035 25496 E: 1300099395.701587 0003 0036 18855 E: 1300099395.701594 0003 002f 1 E: 1300099395.701595 0003 0035 29290 E: 1300099395.701596 0003 0036 14365 E: 1300099395.701607 0003 0000 25502 E: 1300099395.701608 0003 0001 18861 E: 1300099395.701610 0000 0000 0 E: 1300099395.706574 0003 002f 0 E: 1300099395.706584 0003 0035 25494 E: 1300099395.706586 0003 0036 18853 E: 1300099395.706594 0003 002f 1 E: 1300099395.706594 0003 0035 29260 E: 1300099395.706596 0003 0036 14265 E: 1300099395.706606 0003 0000 25500 E: 1300099395.706607 0003 0001 18859 E: 1300099395.706609 0000 0000 0 E: 1300099395.711574 0003 002f 0 E: 1300099395.711584 0003 0035 25492 E: 1300099395.711586 0003 0036 18851 E: 1300099395.711594 0003 002f 1 E: 1300099395.711594 0003 0035 29246 E: 1300099395.711596 0003 0036 14163 E: 1300099395.711598 0003 0030 1224 E: 1300099395.711606 0003 0000 25498 E: 1300099395.711608 0003 0001 18857 E: 1300099395.711610 0000 0000 0 E: 1300099395.717576 0003 002f 0 E: 1300099395.717588 0003 0036 18849 E: 1300099395.717596 0003 002f 1 E: 1300099395.717597 0003 0035 29202 E: 1300099395.717598 0003 0036 14059 E: 1300099395.717601 0003 0030 1282 E: 1300099395.717610 0003 0001 18855 E: 1300099395.717612 0000 0000 0 E: 1300099395.722574 0003 002f 0 E: 1300099395.722584 0003 0035 25490 E: 1300099395.722586 0003 0036 18847 E: 1300099395.722594 0003 002f 1 E: 1300099395.722594 0003 0035 29172 E: 1300099395.722596 0003 0036 13955 E: 1300099395.722598 0003 0030 1325 E: 1300099395.722606 0003 0000 25496 E: 1300099395.722608 0003 0001 18853 E: 1300099395.722610 0000 0000 0 E: 1300099395.727574 0003 002f 0 E: 1300099395.727585 0003 0035 25488 E: 1300099395.727587 0003 0036 18845 E: 1300099395.727594 0003 002f 1 E: 1300099395.727594 0003 0035 29138 E: 1300099395.727596 0003 0036 13851 E: 1300099395.727599 0003 0030 1357 E: 1300099395.727607 0003 0000 25494 E: 1300099395.727608 0003 0001 18851 E: 1300099395.727610 0000 0000 0 E: 1300099395.732574 0003 002f 0 E: 1300099395.732585 0003 0035 25486 E: 1300099395.732586 0003 0036 18843 E: 1300099395.732594 0003 002f 1 E: 1300099395.732594 0003 0035 29102 E: 1300099395.732596 0003 0036 13745 E: 1300099395.732606 0003 0000 25492 E: 1300099395.732608 0003 0001 18849 E: 1300099395.732609 0000 0000 0 E: 1300099395.737574 0003 002f 0 E: 1300099395.737584 0003 0035 25484 E: 1300099395.737586 0003 0036 18841 E: 1300099395.737593 0003 002f 1 E: 1300099395.737594 0003 0035 29064 E: 1300099395.737595 0003 0036 13635 E: 1300099395.737605 0003 0000 25490 E: 1300099395.737607 0003 0001 18847 E: 1300099395.737609 0000 0000 0 E: 1300099395.742575 0003 002f 0 E: 1300099395.742586 0003 0036 18839 E: 1300099395.742593 0003 002f 1 E: 1300099395.742594 0003 0035 29026 E: 1300099395.742596 0003 0036 13521 E: 1300099395.742598 0003 0030 1224 E: 1300099395.742607 0003 0001 18845 E: 1300099395.742609 0000 0000 0 E: 1300099395.747578 0003 002f 0 E: 1300099395.747588 0003 0035 25482 E: 1300099395.747590 0003 0036 18837 E: 1300099395.747597 0003 002f 1 E: 1300099395.747598 0003 0035 28984 E: 1300099395.747599 0003 0036 13401 E: 1300099395.747602 0003 0030 1282 E: 1300099395.747610 0003 0000 25488 E: 1300099395.747612 0003 0001 18843 E: 1300099395.747613 0000 0000 0 E: 1300099395.752573 0003 002f 0 E: 1300099395.752584 0003 0035 25480 E: 1300099395.752588 0003 0031 966 E: 1300099395.752593 0003 002f 1 E: 1300099395.752594 0003 0035 28942 E: 1300099395.752595 0003 0036 13281 E: 1300099395.752598 0003 0030 1325 E: 1300099395.752606 0003 0000 25486 E: 1300099395.752609 0000 0000 0 E: 1300099395.757574 0003 002f 0 E: 1300099395.757584 0003 0035 25478 E: 1300099395.757586 0003 0036 18835 E: 1300099395.757589 0003 0031 1007 E: 1300099395.757594 0003 002f 1 E: 1300099395.757594 0003 0035 28902 E: 1300099395.757596 0003 0036 13159 E: 1300099395.757598 0003 0030 1357 E: 1300099395.757607 0003 0000 25484 E: 1300099395.757608 0003 0001 18841 E: 1300099395.757610 0000 0000 0 E: 1300099395.762574 0003 002f 0 E: 1300099395.762584 0003 0036 18833 E: 1300099395.762592 0003 002f 1 E: 1300099395.762592 0003 0035 28860 E: 1300099395.762594 0003 0036 13033 E: 1300099395.762605 0003 0001 18839 E: 1300099395.762607 0000 0000 0 E: 1300099395.767573 0003 002f 0 E: 1300099395.767584 0003 0035 25476 E: 1300099395.767585 0003 0036 18831 E: 1300099395.767593 0003 002f 1 E: 1300099395.767593 0003 0035 28818 E: 1300099395.767595 0003 0036 12903 E: 1300099395.767598 0003 0030 1224 E: 1300099395.767606 0003 0000 25482 E: 1300099395.767607 0003 0001 18837 E: 1300099395.767609 0000 0000 0 E: 1300099395.772573 0003 002f 0 E: 1300099395.772584 0003 0035 25474 E: 1300099395.772586 0003 0036 18829 E: 1300099395.772593 0003 002f 1 E: 1300099395.772594 0003 0035 28724 E: 1300099395.772595 0003 0036 12643 E: 1300099395.772598 0003 0030 1282 E: 1300099395.772606 0003 0000 25480 E: 1300099395.772607 0003 0001 18835 E: 1300099395.772609 0000 0000 0 E: 1300099395.778573 0003 002f 0 E: 1300099395.778583 0003 0035 25472 E: 1300099395.778585 0003 0036 18827 E: 1300099395.778593 0003 002f 1 E: 1300099395.778593 0003 0035 28682 E: 1300099395.778595 0003 0036 12527 E: 1300099395.778597 0003 0030 1325 E: 1300099395.778606 0003 0000 25478 E: 1300099395.778607 0003 0001 18833 E: 1300099395.778609 0000 0000 0 E: 1300099395.783576 0003 002f 0 E: 1300099395.783587 0003 0036 18825 E: 1300099395.783594 0003 002f 1 E: 1300099395.783595 0003 0035 28638 E: 1300099395.783596 0003 0036 12415 E: 1300099395.783599 0003 0030 1357 E: 1300099395.783608 0003 0001 18831 E: 1300099395.783610 0000 0000 0 E: 1300099395.788573 0003 002f 0 E: 1300099395.788583 0003 0035 25470 E: 1300099395.788592 0003 002f 1 E: 1300099395.788593 0003 0035 28594 E: 1300099395.788594 0003 0036 12305 E: 1300099395.788604 0003 0000 25476 E: 1300099395.788607 0000 0000 0 E: 1300099395.793574 0003 002f 0 E: 1300099395.793585 0003 0035 25468 E: 1300099395.793587 0003 0036 18823 E: 1300099395.793595 0003 002f 1 E: 1300099395.793595 0003 0035 28546 E: 1300099395.793597 0003 0036 12197 E: 1300099395.793607 0003 0000 25474 E: 1300099395.793608 0003 0001 18829 E: 1300099395.793610 0000 0000 0 E: 1300099395.798573 0003 002f 0 E: 1300099395.798584 0003 0035 25466 E: 1300099395.798586 0003 0036 18821 E: 1300099395.798593 0003 002f 1 E: 1300099395.798593 0003 0035 28500 E: 1300099395.798595 0003 0036 12089 E: 1300099395.798598 0003 0030 1224 E: 1300099395.798606 0003 0000 25472 E: 1300099395.798607 0003 0001 18827 E: 1300099395.798609 0000 0000 0 E: 1300099395.803576 0003 002f 0 E: 1300099395.803587 0003 0036 18819 E: 1300099395.803594 0003 002f 1 E: 1300099395.803595 0003 0035 28450 E: 1300099395.803596 0003 0036 11979 E: 1300099395.803599 0003 0030 1282 E: 1300099395.803608 0003 0001 18825 E: 1300099395.803610 0000 0000 0 E: 1300099395.808573 0003 002f 0 E: 1300099395.808584 0003 0035 25464 E: 1300099395.808586 0003 0036 18817 E: 1300099395.808593 0003 002f 1 E: 1300099395.808594 0003 0035 28398 E: 1300099395.808595 0003 0036 11871 E: 1300099395.808598 0003 0030 1325 E: 1300099395.808606 0003 0000 25470 E: 1300099395.808608 0003 0001 18823 E: 1300099395.808609 0000 0000 0 E: 1300099395.813576 0003 002f 0 E: 1300099395.813586 0003 0035 25462 E: 1300099395.813588 0003 0036 18814 E: 1300099395.813595 0003 002f 1 E: 1300099395.813596 0003 0035 28344 E: 1300099395.813597 0003 0036 11767 E: 1300099395.813600 0003 0030 1357 E: 1300099395.813608 0003 0000 25468 E: 1300099395.813610 0003 0001 18820 E: 1300099395.813611 0000 0000 0 E: 1300099395.818573 0003 002f 0 E: 1300099395.818583 0003 0035 25460 E: 1300099395.818585 0003 0036 18811 E: 1300099395.818592 0003 002f 1 E: 1300099395.818593 0003 0035 28290 E: 1300099395.818595 0003 0036 11667 E: 1300099395.818605 0003 0000 25466 E: 1300099395.818607 0003 0001 18817 E: 1300099395.818608 0000 0000 0 E: 1300099395.823576 0003 002f 0 E: 1300099395.823586 0003 0036 18809 E: 1300099395.823594 0003 002f 1 E: 1300099395.823595 0003 0035 28236 E: 1300099395.823596 0003 0036 11571 E: 1300099395.823607 0003 0001 18815 E: 1300099395.823609 0000 0000 0 E: 1300099395.828573 0003 002f 0 E: 1300099395.828583 0003 0035 25458 E: 1300099395.828584 0003 0036 18806 E: 1300099395.828592 0003 002f 1 E: 1300099395.828592 0003 0035 28184 E: 1300099395.828594 0003 0036 11473 E: 1300099395.828604 0003 0000 25464 E: 1300099395.828606 0003 0001 18812 E: 1300099395.828607 0000 0000 0 E: 1300099395.834573 0003 002f 0 E: 1300099395.834583 0003 0035 25456 E: 1300099395.834585 0003 0036 18803 E: 1300099395.834592 0003 002f 1 E: 1300099395.834593 0003 0035 28130 E: 1300099395.834594 0003 0036 11377 E: 1300099395.834604 0003 0000 25462 E: 1300099395.834606 0003 0001 18809 E: 1300099395.834607 0000 0000 0 E: 1300099395.839573 0003 002f 0 E: 1300099395.839583 0003 0035 25454 E: 1300099395.839585 0003 0036 18801 E: 1300099395.839593 0003 002f 1 E: 1300099395.839593 0003 0035 28076 E: 1300099395.839595 0003 0036 11285 E: 1300099395.839605 0003 0000 25460 E: 1300099395.839606 0003 0001 18807 E: 1300099395.839608 0000 0000 0 E: 1300099395.844573 0003 002f 0 E: 1300099395.844583 0003 0035 25452 E: 1300099395.844585 0003 0036 18799 E: 1300099395.844592 0003 002f 1 E: 1300099395.844593 0003 0035 28018 E: 1300099395.844594 0003 0036 11189 E: 1300099395.844598 0003 0031 965 E: 1300099395.844605 0003 0000 25458 E: 1300099395.844607 0003 0001 18805 E: 1300099395.844608 0000 0000 0 E: 1300099395.849573 0003 002f 0 E: 1300099395.849583 0003 0036 18797 E: 1300099395.849591 0003 002f 1 E: 1300099395.849591 0003 0035 27954 E: 1300099395.849593 0003 0036 11093 E: 1300099395.849604 0003 0001 18803 E: 1300099395.849606 0000 0000 0 E: 1300099395.854571 0003 002f 0 E: 1300099395.854582 0003 0035 25449 E: 1300099395.854583 0003 0036 18795 E: 1300099395.854591 0003 002f 1 E: 1300099395.854591 0003 0035 27890 E: 1300099395.854593 0003 0036 10999 E: 1300099395.854603 0003 0000 25455 E: 1300099395.854605 0003 0001 18801 E: 1300099395.854606 0000 0000 0 E: 1300099395.859572 0003 002f 0 E: 1300099395.859583 0003 0035 25446 E: 1300099395.859584 0003 0036 18792 E: 1300099395.859592 0003 002f 1 E: 1300099395.859593 0003 0035 27826 E: 1300099395.859594 0003 0036 10923 E: 1300099395.859604 0003 0000 25452 E: 1300099395.859606 0003 0001 18798 E: 1300099395.859608 0000 0000 0 E: 1300099395.864572 0003 002f 0 E: 1300099395.864582 0003 0035 25444 E: 1300099395.864584 0003 0036 18789 E: 1300099395.864591 0003 002f 1 E: 1300099395.864592 0003 0035 27758 E: 1300099395.864594 0003 0036 10841 E: 1300099395.864604 0003 0000 25450 E: 1300099395.864605 0003 0001 18795 E: 1300099395.864607 0000 0000 0 E: 1300099395.869572 0003 002f 0 E: 1300099395.869582 0003 0035 25442 E: 1300099395.869584 0003 0036 18787 E: 1300099395.869591 0003 002f 1 E: 1300099395.869592 0003 0035 27698 E: 1300099395.869593 0003 0036 10757 E: 1300099395.869604 0003 0000 25448 E: 1300099395.869605 0003 0001 18793 E: 1300099395.869607 0000 0000 0 E: 1300099395.874574 0003 002f 0 E: 1300099395.874585 0003 0036 18784 E: 1300099395.874592 0003 002f 1 E: 1300099395.874593 0003 0035 27634 E: 1300099395.874594 0003 0036 10673 E: 1300099395.874606 0003 0001 18790 E: 1300099395.874607 0000 0000 0 E: 1300099395.879574 0003 002f 0 E: 1300099395.879584 0003 0035 25440 E: 1300099395.879586 0003 0036 18781 E: 1300099395.879594 0003 002f 1 E: 1300099395.879594 0003 0035 27572 E: 1300099395.879596 0003 0036 10593 E: 1300099395.879599 0003 0031 821 E: 1300099395.879607 0003 0000 25446 E: 1300099395.879608 0003 0001 18787 E: 1300099395.879610 0000 0000 0 E: 1300099395.884573 0003 002f 0 E: 1300099395.884583 0003 0035 25438 E: 1300099395.884585 0003 0036 18779 E: 1300099395.884592 0003 002f 1 E: 1300099395.884593 0003 0035 27508 E: 1300099395.884594 0003 0036 10509 E: 1300099395.884605 0003 0000 25444 E: 1300099395.884606 0003 0001 18785 E: 1300099395.884608 0000 0000 0 E: 1300099395.889573 0003 002f 0 E: 1300099395.889583 0003 0035 25436 E: 1300099395.889585 0003 0036 18777 E: 1300099395.889592 0003 002f 1 E: 1300099395.889593 0003 0035 27440 E: 1300099395.889594 0003 0036 10427 E: 1300099395.889597 0003 0030 1224 E: 1300099395.889605 0003 0000 25442 E: 1300099395.889607 0003 0001 18783 E: 1300099395.889609 0000 0000 0 E: 1300099395.895572 0003 002f 0 E: 1300099395.895583 0003 0036 18774 E: 1300099395.895590 0003 002f 1 E: 1300099395.895591 0003 0035 27374 E: 1300099395.895592 0003 0036 10341 E: 1300099395.895595 0003 0030 1191 E: 1300099395.895604 0003 0001 18780 E: 1300099395.895606 0000 0000 0 E: 1300099395.900572 0003 002f 0 E: 1300099395.900582 0003 0035 25434 E: 1300099395.900584 0003 0036 18771 E: 1300099395.900591 0003 002f 1 E: 1300099395.900592 0003 0035 27306 E: 1300099395.900593 0003 0036 10263 E: 1300099395.900596 0003 0030 1323 E: 1300099395.900604 0003 0000 25440 E: 1300099395.900606 0003 0001 18777 E: 1300099395.900608 0000 0000 0 E: 1300099395.905571 0003 002f 0 E: 1300099395.905582 0003 0035 25432 E: 1300099395.905584 0003 0036 18768 E: 1300099395.905591 0003 002f 1 E: 1300099395.905591 0003 0035 27230 E: 1300099395.905593 0003 0036 10185 E: 1300099395.905596 0003 0030 1356 E: 1300099395.905604 0003 0000 25438 E: 1300099395.905605 0003 0001 18774 E: 1300099395.905607 0000 0000 0 E: 1300099395.910571 0003 002f 0 E: 1300099395.910581 0003 0035 25430 E: 1300099395.910583 0003 0036 18765 E: 1300099395.910590 0003 002f 1 E: 1300099395.910591 0003 0035 27154 E: 1300099395.910592 0003 0036 10105 E: 1300099395.910603 0003 0000 25436 E: 1300099395.910604 0003 0001 18771 E: 1300099395.910606 0000 0000 0 E: 1300099395.915571 0003 002f 0 E: 1300099395.915582 0003 0036 18763 E: 1300099395.915589 0003 002f 1 E: 1300099395.915590 0003 0035 27074 E: 1300099395.915592 0003 0036 10031 E: 1300099395.915603 0003 0001 18769 E: 1300099395.915604 0000 0000 0 E: 1300099395.920570 0003 002f 0 E: 1300099395.920581 0003 0035 25428 E: 1300099395.920582 0003 0036 18760 E: 1300099395.920590 0003 002f 1 E: 1300099395.920590 0003 0035 27000 E: 1300099395.920592 0003 0036 9957 E: 1300099395.920602 0003 0000 25434 E: 1300099395.920604 0003 0001 18766 E: 1300099395.920605 0000 0000 0 E: 1300099395.925571 0003 002f 0 E: 1300099395.925582 0003 0035 25426 E: 1300099395.925584 0003 0036 18757 E: 1300099395.925591 0003 002f 1 E: 1300099395.925592 0003 0035 26924 E: 1300099395.925593 0003 0036 9903 E: 1300099395.925603 0003 0000 25432 E: 1300099395.925605 0003 0001 18763 E: 1300099395.925607 0000 0000 0 E: 1300099395.930571 0003 002f 0 E: 1300099395.930581 0003 0035 25424 E: 1300099395.930583 0003 0036 18755 E: 1300099395.930591 0003 002f 1 E: 1300099395.930591 0003 0035 26854 E: 1300099395.930593 0003 0036 9843 E: 1300099395.930603 0003 0000 25430 E: 1300099395.930605 0003 0001 18761 E: 1300099395.930606 0000 0000 0 E: 1300099395.935572 0003 002f 0 E: 1300099395.935582 0003 0035 25422 E: 1300099395.935583 0003 0036 18753 E: 1300099395.935591 0003 002f 1 E: 1300099395.935591 0003 0035 26786 E: 1300099395.935593 0003 0036 9787 E: 1300099395.935603 0003 0000 25428 E: 1300099395.935605 0003 0001 18759 E: 1300099395.935606 0000 0000 0 E: 1300099395.940571 0003 002f 0 E: 1300099395.940582 0003 0035 25420 E: 1300099395.940591 0003 002f 1 E: 1300099395.940591 0003 0035 26712 E: 1300099395.940593 0003 0036 9737 E: 1300099395.940596 0003 0031 785 E: 1300099395.940603 0003 0000 25426 E: 1300099395.940606 0000 0000 0 E: 1300099395.945573 0003 002f 0 E: 1300099395.945583 0003 0035 25418 E: 1300099395.945585 0003 0036 18750 E: 1300099395.945592 0003 002f 1 E: 1300099395.945593 0003 0035 26636 E: 1300099395.945594 0003 0036 9687 E: 1300099395.945604 0003 0000 25424 E: 1300099395.945606 0003 0001 18756 E: 1300099395.945608 0000 0000 0 E: 1300099395.951561 0003 002f 0 E: 1300099395.951565 0003 0035 25416 E: 1300099395.951567 0003 0036 18748 E: 1300099395.951575 0003 002f 1 E: 1300099395.951575 0003 0035 26560 E: 1300099395.951577 0003 0036 9637 E: 1300099395.951587 0003 0000 25422 E: 1300099395.951588 0003 0001 18754 E: 1300099395.951590 0000 0000 0 E: 1300099395.956571 0003 002f 0 E: 1300099395.956581 0003 0036 18746 E: 1300099395.956589 0003 002f 1 E: 1300099395.956590 0003 0035 26486 E: 1300099395.956591 0003 0036 9607 E: 1300099395.956602 0003 0001 18752 E: 1300099395.956604 0000 0000 0 E: 1300099395.961570 0003 002f 0 E: 1300099395.961580 0003 0035 25414 E: 1300099395.961582 0003 0036 18743 E: 1300099395.961589 0003 002f 1 E: 1300099395.961590 0003 0035 26414 E: 1300099395.961591 0003 0036 9569 E: 1300099395.961601 0003 0000 25420 E: 1300099395.961603 0003 0001 18749 E: 1300099395.961605 0000 0000 0 E: 1300099395.966571 0003 002f 0 E: 1300099395.966581 0003 0035 25412 E: 1300099395.966583 0003 0036 18741 E: 1300099395.966590 0003 002f 1 E: 1300099395.966591 0003 0035 26334 E: 1300099395.966592 0003 0036 9529 E: 1300099395.966603 0003 0000 25418 E: 1300099395.966604 0003 0001 18747 E: 1300099395.966606 0000 0000 0 E: 1300099395.971570 0003 002f 0 E: 1300099395.971581 0003 0035 25410 E: 1300099395.971583 0003 0036 18739 E: 1300099395.971590 0003 002f 1 E: 1300099395.971591 0003 0035 26252 E: 1300099395.971592 0003 0036 9487 E: 1300099395.971603 0003 0000 25416 E: 1300099395.971604 0003 0001 18745 E: 1300099395.971606 0000 0000 0 E: 1300099395.976569 0003 002f 0 E: 1300099395.976579 0003 0035 25408 E: 1300099395.976588 0003 002f 1 E: 1300099395.976588 0003 0035 26168 E: 1300099395.976590 0003 0036 9445 E: 1300099395.976592 0003 0030 1224 E: 1300099395.976601 0003 0000 25414 E: 1300099395.976603 0000 0000 0 E: 1300099395.981570 0003 002f 0 E: 1300099395.981581 0003 0035 25406 E: 1300099395.981583 0003 0036 18737 E: 1300099395.981590 0003 002f 1 E: 1300099395.981591 0003 0035 26088 E: 1300099395.981593 0003 0036 9411 E: 1300099395.981595 0003 0030 1282 E: 1300099395.981603 0003 0000 25412 E: 1300099395.981605 0003 0001 18743 E: 1300099395.981607 0000 0000 0 E: 1300099395.986570 0003 002f 0 E: 1300099395.986580 0003 0035 25404 E: 1300099395.986582 0003 0036 18735 E: 1300099395.986590 0003 002f 1 E: 1300099395.986590 0003 0035 26004 E: 1300099395.986592 0003 0036 9381 E: 1300099395.986594 0003 0030 1325 E: 1300099395.986603 0003 0000 25410 E: 1300099395.986604 0003 0001 18741 E: 1300099395.986606 0000 0000 0 E: 1300099395.991569 0003 002f 0 E: 1300099395.991580 0003 0035 25402 E: 1300099395.991582 0003 0036 18733 E: 1300099395.991589 0003 002f 1 E: 1300099395.991590 0003 0035 25914 E: 1300099395.991591 0003 0036 9345 E: 1300099395.991594 0003 0030 1572 E: 1300099395.991602 0003 0000 25408 E: 1300099395.991604 0003 0001 18739 E: 1300099395.991606 0000 0000 0 E: 1300099395.996571 0003 002f 0 E: 1300099395.996581 0003 0034 1 E: 1300099395.996583 0003 0030 1299 E: 1300099395.996588 0003 002f 1 E: 1300099395.996588 0003 0035 25824 E: 1300099395.996590 0003 0036 9311 E: 1300099395.996602 0000 0000 0 E: 1300099396.001569 0003 002f 0 E: 1300099396.001580 0003 0035 25400 E: 1300099396.001582 0003 0036 18731 E: 1300099396.001583 0003 0034 0 E: 1300099396.001585 0003 0030 1338 E: 1300099396.001590 0003 002f 1 E: 1300099396.001591 0003 0035 25734 E: 1300099396.001593 0003 0036 9275 E: 1300099396.001603 0003 0000 25406 E: 1300099396.001604 0003 0001 18737 E: 1300099396.001606 0000 0000 0 E: 1300099396.007570 0003 002f 0 E: 1300099396.007580 0003 0036 18729 E: 1300099396.007582 0003 0034 1 E: 1300099396.007584 0003 0030 1286 E: 1300099396.007589 0003 002f 1 E: 1300099396.007590 0003 0035 25650 E: 1300099396.007592 0003 0036 9264 E: 1300099396.007603 0003 0001 18735 E: 1300099396.007605 0000 0000 0 E: 1300099396.012571 0003 002f 0 E: 1300099396.012581 0003 0035 25398 E: 1300099396.012583 0003 0036 18727 E: 1300099396.012585 0003 0034 0 E: 1300099396.012587 0003 0030 1328 E: 1300099396.012592 0003 002f 1 E: 1300099396.012593 0003 0035 25562 E: 1300099396.012594 0003 0036 9225 E: 1300099396.012604 0003 0000 25404 E: 1300099396.012606 0003 0001 18733 E: 1300099396.012608 0000 0000 0 E: 1300099396.017569 0003 002f 0 E: 1300099396.017579 0003 0036 18725 E: 1300099396.017582 0003 0030 1360 E: 1300099396.017588 0003 002f 1 E: 1300099396.017588 0003 0035 25470 E: 1300099396.017590 0003 0036 9211 E: 1300099396.017601 0003 0001 18731 E: 1300099396.017603 0000 0000 0 E: 1300099396.022569 0003 002f 0 E: 1300099396.022580 0003 0035 25396 E: 1300099396.022588 0003 002f 1 E: 1300099396.022589 0003 0035 25372 E: 1300099396.022590 0003 0036 9169 E: 1300099396.022600 0003 0000 25402 E: 1300099396.022603 0000 0000 0 E: 1300099396.027570 0003 002f 0 E: 1300099396.027580 0003 0036 18723 E: 1300099396.027588 0003 002f 1 E: 1300099396.027588 0003 0035 25278 E: 1300099396.027590 0003 0036 9159 E: 1300099396.027601 0003 0001 18729 E: 1300099396.027603 0000 0000 0 E: 1300099396.032570 0003 002f 0 E: 1300099396.032580 0003 0036 18721 E: 1300099396.032588 0003 002f 1 E: 1300099396.032589 0003 0035 25178 E: 1300099396.032590 0003 0036 9129 E: 1300099396.032601 0003 0001 18727 E: 1300099396.032603 0000 0000 0 E: 1300099396.037568 0003 002f 0 E: 1300099396.037578 0003 0035 25394 E: 1300099396.037580 0003 0036 18719 E: 1300099396.037587 0003 002f 1 E: 1300099396.037588 0003 0035 25074 E: 1300099396.037590 0003 0036 9117 E: 1300099396.037600 0003 0000 25400 E: 1300099396.037601 0003 0001 18725 E: 1300099396.037603 0000 0000 0 E: 1300099396.042569 0003 002f 0 E: 1300099396.042580 0003 0036 18717 E: 1300099396.042587 0003 002f 1 E: 1300099396.042588 0003 0035 24968 E: 1300099396.042589 0003 0036 9081 E: 1300099396.042600 0003 0001 18723 E: 1300099396.042602 0000 0000 0 E: 1300099396.047568 0003 002f 0 E: 1300099396.047579 0003 0035 25392 E: 1300099396.047581 0003 0036 18715 E: 1300099396.047588 0003 002f 1 E: 1300099396.047589 0003 0035 24864 E: 1300099396.047591 0003 0036 9072 E: 1300099396.047601 0003 0000 25398 E: 1300099396.047602 0003 0001 18721 E: 1300099396.047604 0000 0000 0 E: 1300099396.052568 0003 002f 0 E: 1300099396.052579 0003 0036 18713 E: 1300099396.052587 0003 002f 1 E: 1300099396.052587 0003 0035 24762 E: 1300099396.052589 0003 0036 9057 E: 1300099396.052600 0003 0001 18719 E: 1300099396.052602 0000 0000 0 E: 1300099396.057568 0003 002f 0 E: 1300099396.057578 0003 0035 25390 E: 1300099396.057587 0003 002f 1 E: 1300099396.057588 0003 0035 24654 E: 1300099396.057589 0003 0036 9027 E: 1300099396.057599 0003 0000 25396 E: 1300099396.057602 0000 0000 0 E: 1300099396.062568 0003 002f 0 E: 1300099396.062579 0003 0035 25388 E: 1300099396.062580 0003 0036 18711 E: 1300099396.062588 0003 002f 1 E: 1300099396.062588 0003 0035 24546 E: 1300099396.062590 0003 0036 9023 E: 1300099396.062600 0003 0000 25394 E: 1300099396.062602 0003 0001 18717 E: 1300099396.062603 0000 0000 0 E: 1300099396.068569 0003 002f 0 E: 1300099396.068579 0003 0035 25386 E: 1300099396.068581 0003 0036 18709 E: 1300099396.068588 0003 002f 1 E: 1300099396.068589 0003 0035 24442 E: 1300099396.068591 0003 0036 9014 E: 1300099396.068601 0003 0000 25392 E: 1300099396.068602 0003 0001 18715 E: 1300099396.068604 0000 0000 0 E: 1300099396.073571 0003 002f 0 E: 1300099396.073581 0003 0036 18707 E: 1300099396.073589 0003 002f 1 E: 1300099396.073589 0003 0035 24338 E: 1300099396.073591 0003 0036 9005 E: 1300099396.073602 0003 0001 18713 E: 1300099396.073604 0000 0000 0 E: 1300099396.078567 0003 002f 0 E: 1300099396.078578 0003 0035 25384 E: 1300099396.078587 0003 002f 1 E: 1300099396.078587 0003 0035 24236 E: 1300099396.078589 0003 0036 8997 E: 1300099396.078599 0003 0000 25390 E: 1300099396.078602 0000 0000 0 E: 1300099396.083569 0003 002f 0 E: 1300099396.083579 0003 0035 25382 E: 1300099396.083581 0003 0036 18705 E: 1300099396.083588 0003 002f 1 E: 1300099396.083589 0003 0035 24132 E: 1300099396.083591 0003 0036 8994 E: 1300099396.083601 0003 0000 25388 E: 1300099396.083603 0003 0001 18711 E: 1300099396.083605 0000 0000 0 E: 1300099396.088569 0003 002f 0 E: 1300099396.088579 0003 0035 25380 E: 1300099396.088588 0003 002f 1 E: 1300099396.088589 0003 0035 24030 E: 1300099396.088590 0003 0036 8984 E: 1300099396.088600 0003 0000 25386 E: 1300099396.088603 0000 0000 0 E: 1300099396.093570 0003 002f 0 E: 1300099396.093580 0003 0035 25378 E: 1300099396.093582 0003 0036 18703 E: 1300099396.093590 0003 002f 1 E: 1300099396.093590 0003 0035 23930 E: 1300099396.093592 0003 0036 8982 E: 1300099396.093602 0003 0000 25384 E: 1300099396.093603 0003 0001 18709 E: 1300099396.093605 0000 0000 0 E: 1300099396.098568 0003 002f 0 E: 1300099396.098578 0003 0035 25376 E: 1300099396.098587 0003 002f 1 E: 1300099396.098587 0003 0035 23826 E: 1300099396.098589 0003 0036 8979 E: 1300099396.098599 0003 0000 25382 E: 1300099396.098602 0000 0000 0 E: 1300099396.103570 0003 002f 0 E: 1300099396.103580 0003 0035 25374 E: 1300099396.103582 0003 0036 18701 E: 1300099396.103590 0003 002f 1 E: 1300099396.103590 0003 0035 23716 E: 1300099396.103592 0003 0036 8976 E: 1300099396.103602 0003 0000 25380 E: 1300099396.103603 0003 0001 18707 E: 1300099396.103605 0000 0000 0 E: 1300099396.108566 0003 002f 0 E: 1300099396.108577 0003 0035 25372 E: 1300099396.108579 0003 0036 18699 E: 1300099396.108586 0003 002f 1 E: 1300099396.108587 0003 0035 23606 E: 1300099396.108588 0003 0036 8972 E: 1300099396.108598 0003 0000 25378 E: 1300099396.108600 0003 0001 18705 E: 1300099396.108602 0000 0000 0 E: 1300099396.113568 0003 002f 0 E: 1300099396.113578 0003 0035 25370 E: 1300099396.113587 0003 002f 1 E: 1300099396.113587 0003 0035 23498 E: 1300099396.113589 0003 0036 8970 E: 1300099396.113599 0003 0000 25376 E: 1300099396.113602 0000 0000 0 E: 1300099396.118567 0003 002f 0 E: 1300099396.118577 0003 0035 25368 E: 1300099396.118586 0003 002f 1 E: 1300099396.118586 0003 0035 23384 E: 1300099396.118597 0003 0000 25374 E: 1300099396.118600 0000 0000 0 E: 1300099396.124567 0003 002f 0 E: 1300099396.124577 0003 0035 25366 E: 1300099396.124579 0003 0036 18697 E: 1300099396.124587 0003 002f 1 E: 1300099396.124587 0003 0035 23270 E: 1300099396.124589 0003 0036 8973 E: 1300099396.124599 0003 0000 25372 E: 1300099396.124600 0003 0001 18703 E: 1300099396.124602 0000 0000 0 E: 1300099396.129567 0003 002f 0 E: 1300099396.129578 0003 0035 25364 E: 1300099396.129579 0003 0036 18695 E: 1300099396.129587 0003 002f 1 E: 1300099396.129587 0003 0035 23156 E: 1300099396.129589 0003 0036 8983 E: 1300099396.129599 0003 0000 25370 E: 1300099396.129601 0003 0001 18701 E: 1300099396.129602 0000 0000 0 E: 1300099396.134567 0003 002f 0 E: 1300099396.134577 0003 0035 25362 E: 1300099396.134585 0003 002f 1 E: 1300099396.134586 0003 0035 23050 E: 1300099396.134588 0003 0036 8995 E: 1300099396.134590 0003 0030 1634 E: 1300099396.134599 0003 0000 25368 E: 1300099396.134601 0000 0000 0 E: 1300099396.139567 0003 002f 0 E: 1300099396.139577 0003 0035 25360 E: 1300099396.139586 0003 002f 1 E: 1300099396.139586 0003 0035 22942 E: 1300099396.139588 0003 0036 9008 E: 1300099396.139591 0003 0030 1680 E: 1300099396.139599 0003 0000 25366 E: 1300099396.139602 0000 0000 0 E: 1300099396.144566 0003 002f 0 E: 1300099396.144577 0003 0035 25358 E: 1300099396.144578 0003 0036 18693 E: 1300099396.144586 0003 002f 1 E: 1300099396.144586 0003 0035 22832 E: 1300099396.144588 0003 0036 9022 E: 1300099396.144590 0003 0030 1715 E: 1300099396.144599 0003 0000 25364 E: 1300099396.144600 0003 0001 18699 E: 1300099396.144602 0000 0000 0 E: 1300099396.149566 0003 002f 0 E: 1300099396.149577 0003 0035 25356 E: 1300099396.149585 0003 002f 1 E: 1300099396.149586 0003 0035 22726 E: 1300099396.149587 0003 0036 9057 E: 1300099396.149590 0003 0030 1585 E: 1300099396.149598 0003 0000 25362 E: 1300099396.149601 0000 0000 0 E: 1300099396.154566 0003 002f 0 E: 1300099396.154576 0003 0035 25354 E: 1300099396.154585 0003 002f 1 E: 1300099396.154585 0003 0035 22622 E: 1300099396.154587 0003 0036 9069 E: 1300099396.154590 0003 0030 1552 E: 1300099396.154598 0003 0000 25360 E: 1300099396.154600 0000 0000 0 E: 1300099396.159567 0003 002f 0 E: 1300099396.159577 0003 0035 25352 E: 1300099396.159585 0003 002f 1 E: 1300099396.159586 0003 0035 22524 E: 1300099396.159587 0003 0036 9105 E: 1300099396.159598 0003 0000 25358 E: 1300099396.159600 0000 0000 0 E: 1300099396.164566 0003 002f 0 E: 1300099396.164576 0003 0035 25350 E: 1300099396.164578 0003 0036 18691 E: 1300099396.164586 0003 002f 1 E: 1300099396.164586 0003 0035 22416 E: 1300099396.164588 0003 0036 9116 E: 1300099396.164598 0003 0000 25356 E: 1300099396.164600 0003 0001 18697 E: 1300099396.164601 0000 0000 0 E: 1300099396.169574 0003 0035 22308 E: 1300099396.169585 0003 0036 9149 E: 1300099396.169597 0000 0000 0 E: 1300099396.174566 0003 002f 0 E: 1300099396.174576 0003 0035 25348 E: 1300099396.174578 0003 0036 18689 E: 1300099396.174585 0003 002f 1 E: 1300099396.174586 0003 0035 22206 E: 1300099396.174587 0003 0036 9179 E: 1300099396.174597 0003 0000 25354 E: 1300099396.174599 0003 0001 18695 E: 1300099396.174601 0000 0000 0 E: 1300099396.179566 0003 002f 0 E: 1300099396.179576 0003 0035 25346 E: 1300099396.179585 0003 002f 1 E: 1300099396.179585 0003 0035 22110 E: 1300099396.179587 0003 0036 9211 E: 1300099396.179597 0003 0000 25352 E: 1300099396.179600 0000 0000 0 E: 1300099396.185566 0003 002f 0 E: 1300099396.185576 0003 0035 25344 E: 1300099396.185584 0003 002f 1 E: 1300099396.185585 0003 0035 22024 E: 1300099396.185587 0003 0036 9225 E: 1300099396.185597 0003 0000 25350 E: 1300099396.185599 0000 0000 0 E: 1300099396.190567 0003 002f 0 E: 1300099396.190577 0003 0035 25342 E: 1300099396.190579 0003 0036 18687 E: 1300099396.190586 0003 002f 1 E: 1300099396.190587 0003 0035 21940 E: 1300099396.190588 0003 0036 9267 E: 1300099396.190598 0003 0000 25348 E: 1300099396.190600 0003 0001 18693 E: 1300099396.190602 0000 0000 0 E: 1300099396.195565 0003 002f 0 E: 1300099396.195575 0003 0035 25340 E: 1300099396.195584 0003 002f 1 E: 1300099396.195584 0003 0035 21862 E: 1300099396.195586 0003 0036 9279 E: 1300099396.195597 0003 0000 25346 E: 1300099396.195599 0000 0000 0 E: 1300099396.200565 0003 002f 0 E: 1300099396.200575 0003 0035 25338 E: 1300099396.200577 0003 0036 18685 E: 1300099396.200584 0003 002f 1 E: 1300099396.200585 0003 0035 21790 E: 1300099396.200586 0003 0036 9315 E: 1300099396.200596 0003 0000 25344 E: 1300099396.200598 0003 0001 18691 E: 1300099396.200600 0000 0000 0 E: 1300099396.205573 0003 0035 21720 E: 1300099396.205584 0003 0036 9327 E: 1300099396.205596 0000 0000 0 E: 1300099396.210565 0003 002f 0 E: 1300099396.210576 0003 0035 25336 E: 1300099396.210584 0003 002f 1 E: 1300099396.210585 0003 0035 21654 E: 1300099396.210586 0003 0036 9363 E: 1300099396.210596 0003 0000 25342 E: 1300099396.210599 0000 0000 0 E: 1300099396.215565 0003 002f 0 E: 1300099396.215575 0003 0035 25334 E: 1300099396.215577 0003 0036 18683 E: 1300099396.215585 0003 002f 1 E: 1300099396.215585 0003 0035 21624 E: 1300099396.215587 0003 0036 9366 E: 1300099396.215597 0003 0000 25340 E: 1300099396.215598 0003 0001 18689 E: 1300099396.215600 0000 0000 0 E: 1300099396.220566 0003 002f 0 E: 1300099396.220576 0003 0035 25332 E: 1300099396.220585 0003 002f 1 E: 1300099396.220586 0003 0035 21592 E: 1300099396.220587 0003 0036 9376 E: 1300099396.220598 0003 0000 25338 E: 1300099396.220600 0000 0000 0 E: 1300099396.225565 0003 002f 0 E: 1300099396.225575 0003 0035 25330 E: 1300099396.225577 0003 0036 18681 E: 1300099396.225585 0003 002f 1 E: 1300099396.225585 0003 0035 21578 E: 1300099396.225587 0003 0036 9387 E: 1300099396.225597 0003 0000 25336 E: 1300099396.225598 0003 0001 18687 E: 1300099396.225600 0000 0000 0 E: 1300099396.230565 0003 002f 0 E: 1300099396.230576 0003 0035 25328 E: 1300099396.230578 0003 0036 18678 E: 1300099396.230585 0003 002f 1 E: 1300099396.230586 0003 0035 21534 E: 1300099396.230587 0003 0036 9399 E: 1300099396.230597 0003 0000 25334 E: 1300099396.230599 0003 0001 18684 E: 1300099396.230600 0000 0000 0 E: 1300099396.235568 0003 002f 0 E: 1300099396.235579 0003 0036 18676 E: 1300099396.235586 0003 002f 1 E: 1300099396.235587 0003 0035 21521 E: 1300099396.235589 0003 0036 9412 E: 1300099396.235600 0003 0001 18682 E: 1300099396.235602 0000 0000 0 E: 1300099396.241554 0003 002f 0 E: 1300099396.241559 0003 0035 25325 E: 1300099396.241567 0003 002f 1 E: 1300099396.241568 0003 0035 21482 E: 1300099396.241570 0003 0036 9425 E: 1300099396.241580 0003 0000 25331 E: 1300099396.241582 0000 0000 0 E: 1300099396.246566 0003 002f 0 E: 1300099396.246576 0003 0035 25323 E: 1300099396.246585 0003 002f 1 E: 1300099396.246585 0003 0035 21469 E: 1300099396.246587 0003 0036 9439 E: 1300099396.246597 0003 0000 25329 E: 1300099396.246600 0000 0000 0 E: 1300099396.251565 0003 002f 0 E: 1300099396.251575 0003 0035 25321 E: 1300099396.251584 0003 002f 1 E: 1300099396.251584 0003 0035 21432 E: 1300099396.251586 0003 0036 9453 E: 1300099396.251596 0003 0000 25327 E: 1300099396.251599 0000 0000 0 E: 1300099396.256564 0003 002f 0 E: 1300099396.256575 0003 0035 25319 E: 1300099396.256576 0003 0036 18674 E: 1300099396.256584 0003 002f 1 E: 1300099396.256584 0003 0035 21419 E: 1300099396.256586 0003 0036 9483 E: 1300099396.256589 0003 0030 1322 E: 1300099396.256597 0003 0000 25325 E: 1300099396.256598 0003 0001 18680 E: 1300099396.256600 0000 0000 0 E: 1300099396.261565 0003 002f 0 E: 1300099396.261575 0003 0035 25317 E: 1300099396.261577 0003 0036 18672 E: 1300099396.261584 0003 002f 1 E: 1300099396.261585 0003 0035 21384 E: 1300099396.261587 0003 0036 9486 E: 1300099396.261589 0003 0030 1264 E: 1300099396.261597 0003 0000 25323 E: 1300099396.261599 0003 0001 18678 E: 1300099396.261600 0000 0000 0 E: 1300099396.266564 0003 002f 0 E: 1300099396.266575 0003 0035 25315 E: 1300099396.266583 0003 002f 1 E: 1300099396.266584 0003 0035 21373 E: 1300099396.266585 0003 0036 9499 E: 1300099396.266588 0003 0030 1221 E: 1300099396.266596 0003 0000 25321 E: 1300099396.266599 0000 0000 0 E: 1300099396.271565 0003 002f 0 E: 1300099396.271575 0003 0035 25313 E: 1300099396.271583 0003 002f 1 E: 1300099396.271584 0003 0035 21340 E: 1300099396.271586 0003 0036 9533 E: 1300099396.271588 0003 0030 1188 E: 1300099396.271597 0003 0000 25319 E: 1300099396.271599 0000 0000 0 E: 1300099396.276564 0003 002f 0 E: 1300099396.276574 0003 0036 18670 E: 1300099396.276582 0003 002f 1 E: 1300099396.276583 0003 0035 21330 E: 1300099396.276584 0003 0036 9541 E: 1300099396.276595 0003 0001 18676 E: 1300099396.276597 0000 0000 0 E: 1300099396.281564 0003 002f 0 E: 1300099396.281574 0003 0035 25311 E: 1300099396.281582 0003 002f 1 E: 1300099396.281583 0003 0035 21298 E: 1300099396.281585 0003 0036 9553 E: 1300099396.281595 0003 0000 25317 E: 1300099396.281598 0000 0000 0 E: 1300099396.286564 0003 002f 0 E: 1300099396.286574 0003 0035 25309 E: 1300099396.286583 0003 002f 1 E: 1300099396.286583 0003 0035 21289 E: 1300099396.286585 0003 0036 9566 E: 1300099396.286595 0003 0000 25315 E: 1300099396.286598 0000 0000 0 E: 1300099396.291564 0003 002f 0 E: 1300099396.291575 0003 0035 25307 E: 1300099396.291583 0003 002f 1 E: 1300099396.291584 0003 0035 21274 E: 1300099396.291586 0003 0036 9580 E: 1300099396.291596 0003 0000 25313 E: 1300099396.291598 0000 0000 0 E: 1300099396.296564 0003 002f 0 E: 1300099396.296575 0003 0035 25305 E: 1300099396.296584 0003 002f 1 E: 1300099396.296584 0003 0035 21238 E: 1300099396.296586 0003 0036 9615 E: 1300099396.296596 0003 0000 25311 E: 1300099396.296599 0000 0000 0 E: 1300099396.302563 0003 002f 0 E: 1300099396.302574 0003 0035 25302 E: 1300099396.302575 0003 0036 18668 E: 1300099396.302578 0003 0030 1226 E: 1300099396.302583 0003 002f 1 E: 1300099396.302584 0003 0035 21208 E: 1300099396.302586 0003 0036 9625 E: 1300099396.302596 0003 0000 25308 E: 1300099396.302597 0003 0001 18674 E: 1300099396.302599 0000 0000 0 E: 1300099396.307562 0003 002f 0 E: 1300099396.307573 0003 0035 25291 E: 1300099396.307577 0003 0030 1283 E: 1300099396.307580 0003 002f 1 E: 1300099396.307581 0003 0039 -1 E: 1300099396.307587 0003 0000 25299 E: 1300099396.307590 0000 0000 0 E: 1300099396.312563 0003 002f 0 E: 1300099396.312574 0003 0035 25258 E: 1300099396.312578 0003 0030 1326 E: 1300099396.312585 0003 0000 25258 E: 1300099396.312587 0000 0000 0 E: 1300099396.317563 0003 0035 25247 E: 1300099396.317576 0003 0030 1267 E: 1300099396.317584 0003 0000 25255 E: 1300099396.317586 0000 0000 0 E: 1300099396.322561 0003 0039 -1 E: 1300099396.322574 0001 014a 0 E: 1300099396.322576 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/events/3m-two-pinch.event0000644000015600001650000012313112651522342025662 0ustar pbuserpbgroup00000000000000E: 1300099379.474886 0003 0039 10 E: 1300099379.474902 0003 0035 29774 E: 1300099379.474904 0003 0036 10081 E: 1300099379.474908 0003 0031 802 E: 1300099379.474911 0001 014a 1 E: 1300099379.474915 0003 0000 29774 E: 1300099379.474917 0003 0001 10081 E: 1300099379.474919 0000 0000 0 E: 1300099379.479889 0003 002f 1 E: 1300099379.479899 0003 0039 11 E: 1300099379.479902 0003 0035 27822 E: 1300099379.479904 0003 0036 22853 E: 1300099379.479907 0003 0030 1190 E: 1300099379.479918 0000 0000 0 E: 1300099379.519886 0003 0035 27810 E: 1300099379.519897 0003 0036 22845 E: 1300099379.519900 0003 0030 1323 E: 1300099379.519911 0000 0000 0 E: 1300099379.525880 0003 002f 0 E: 1300099379.525891 0003 0036 10083 E: 1300099379.525899 0003 002f 1 E: 1300099379.525899 0003 0035 27778 E: 1300099379.525901 0003 0036 22832 E: 1300099379.525904 0003 0030 1356 E: 1300099379.525914 0000 0000 0 E: 1300099379.530879 0003 002f 0 E: 1300099379.530889 0003 0035 29772 E: 1300099379.530891 0003 0036 10085 E: 1300099379.530898 0003 002f 1 E: 1300099379.530899 0003 0035 27769 E: 1300099379.530901 0003 0036 22817 E: 1300099379.530913 0000 0000 0 E: 1300099379.535880 0003 002f 0 E: 1300099379.535890 0003 0035 29770 E: 1300099379.535892 0003 0036 10087 E: 1300099379.535899 0003 002f 1 E: 1300099379.535900 0003 0035 27755 E: 1300099379.535902 0003 0036 22787 E: 1300099379.535914 0000 0000 0 E: 1300099379.540878 0003 002f 0 E: 1300099379.540888 0003 0035 29768 E: 1300099379.540890 0003 0036 10089 E: 1300099379.540897 0003 002f 1 E: 1300099379.540898 0003 0035 27724 E: 1300099379.540899 0003 0036 22779 E: 1300099379.540911 0003 0001 10083 E: 1300099379.540913 0000 0000 0 E: 1300099379.545878 0003 002f 0 E: 1300099379.545899 0003 0035 29760 E: 1300099379.545902 0003 0036 10119 E: 1300099379.545911 0003 002f 1 E: 1300099379.545912 0003 0036 22776 E: 1300099379.545924 0003 0000 29770 E: 1300099379.545929 0003 0001 10119 E: 1300099379.545936 0000 0000 0 E: 1300099379.550880 0003 002f 0 E: 1300099379.550893 0003 0035 29752 E: 1300099379.550895 0003 0036 10130 E: 1300099379.550903 0003 002f 1 E: 1300099379.550904 0003 0036 22773 E: 1300099379.550914 0003 0000 29761 E: 1300099379.550916 0003 0001 10121 E: 1300099379.550918 0000 0000 0 E: 1300099379.555880 0003 002f 0 E: 1300099379.555890 0003 0035 29743 E: 1300099379.555892 0003 0036 10165 E: 1300099379.555900 0003 002f 1 E: 1300099379.555901 0003 0036 22771 E: 1300099379.555911 0003 0000 29752 E: 1300099379.555913 0003 0001 10165 E: 1300099379.555915 0000 0000 0 E: 1300099379.560879 0003 002f 0 E: 1300099379.560889 0003 0035 29733 E: 1300099379.560891 0003 0036 10177 E: 1300099379.560894 0003 0030 1224 E: 1300099379.560900 0003 002f 1 E: 1300099379.560901 0003 0036 22769 E: 1300099379.560911 0003 0000 29742 E: 1300099379.560913 0003 0001 10168 E: 1300099379.560915 0000 0000 0 E: 1300099379.565872 0003 002f 0 E: 1300099379.565881 0003 0035 29724 E: 1300099379.565883 0003 0036 10217 E: 1300099379.565886 0003 0030 1282 E: 1300099379.565893 0003 002f 1 E: 1300099379.565894 0003 0036 22767 E: 1300099379.565905 0003 0000 29733 E: 1300099379.565908 0003 0001 10217 E: 1300099379.565910 0000 0000 0 E: 1300099379.570879 0003 002f 0 E: 1300099379.570891 0003 0035 29716 E: 1300099379.570893 0003 0036 10231 E: 1300099379.570896 0003 0030 1325 E: 1300099379.570902 0003 002f 1 E: 1300099379.570903 0003 0036 22765 E: 1300099379.570913 0003 0000 29724 E: 1300099379.570915 0003 0001 10220 E: 1300099379.570917 0000 0000 0 E: 1300099379.575878 0003 002f 0 E: 1300099379.575888 0003 0035 29708 E: 1300099379.575890 0003 0036 10279 E: 1300099379.575893 0003 0030 1357 E: 1300099379.575899 0003 002f 1 E: 1300099379.575900 0003 0036 22763 E: 1300099379.575910 0003 0000 29716 E: 1300099379.575912 0003 0001 10279 E: 1300099379.575914 0000 0000 0 E: 1300099379.581880 0003 002f 0 E: 1300099379.581890 0003 0035 29700 E: 1300099379.581892 0003 0036 10309 E: 1300099379.581900 0003 002f 1 E: 1300099379.581901 0003 0036 22761 E: 1300099379.581911 0003 0000 29708 E: 1300099379.581913 0003 0001 10309 E: 1300099379.581915 0000 0000 0 E: 1300099379.586869 0003 002f 0 E: 1300099379.586877 0003 0035 29692 E: 1300099379.586879 0003 0036 10339 E: 1300099379.586887 0003 002f 1 E: 1300099379.586888 0003 0035 27722 E: 1300099379.586900 0003 0000 29700 E: 1300099379.586902 0003 0001 10339 E: 1300099379.586904 0000 0000 0 E: 1300099379.591878 0003 002f 0 E: 1300099379.591890 0003 0035 29684 E: 1300099379.591892 0003 0036 10373 E: 1300099379.591901 0003 002f 1 E: 1300099379.591901 0003 0036 22759 E: 1300099379.591912 0003 0000 29692 E: 1300099379.591913 0003 0001 10373 E: 1300099379.591915 0000 0000 0 E: 1300099379.596871 0003 002f 0 E: 1300099379.596879 0003 0035 29680 E: 1300099379.596881 0003 0036 10405 E: 1300099379.596893 0003 002f 1 E: 1300099379.596894 0003 0035 27720 E: 1300099379.596897 0003 0036 22757 E: 1300099379.596908 0003 0000 29689 E: 1300099379.596909 0003 0001 10405 E: 1300099379.596912 0000 0000 0 E: 1300099379.601879 0003 002f 0 E: 1300099379.601891 0003 0035 29646 E: 1300099379.601893 0003 0036 10473 E: 1300099379.601901 0003 002f 1 E: 1300099379.601901 0003 0035 27674 E: 1300099379.601903 0003 0036 22679 E: 1300099379.601906 0003 0030 1224 E: 1300099379.601914 0003 0000 29646 E: 1300099379.601916 0003 0001 10473 E: 1300099379.601918 0000 0000 0 E: 1300099379.606880 0003 002f 0 E: 1300099379.606891 0003 0035 29635 E: 1300099379.606892 0003 0036 10539 E: 1300099379.606903 0003 002f 1 E: 1300099379.606903 0003 0030 1282 E: 1300099379.606912 0003 0000 29643 E: 1300099379.606914 0003 0001 10539 E: 1300099379.606915 0000 0000 0 E: 1300099379.611880 0003 002f 0 E: 1300099379.611891 0003 0035 29625 E: 1300099379.611892 0003 0036 10569 E: 1300099379.611903 0003 002f 1 E: 1300099379.611903 0003 0030 1325 E: 1300099379.611912 0003 0000 29634 E: 1300099379.611914 0003 0001 10569 E: 1300099379.611915 0000 0000 0 E: 1300099379.616880 0003 002f 0 E: 1300099379.616890 0003 0035 29616 E: 1300099379.616892 0003 0036 10599 E: 1300099379.616902 0003 002f 1 E: 1300099379.616903 0003 0030 1357 E: 1300099379.616912 0003 0000 29625 E: 1300099379.616913 0003 0001 10599 E: 1300099379.616915 0000 0000 0 E: 1300099379.621882 0003 002f 0 E: 1300099379.621893 0003 0035 29608 E: 1300099379.621894 0003 0036 10631 E: 1300099379.621902 0003 002f 1 E: 1300099379.621903 0003 0035 27664 E: 1300099379.621905 0003 0036 22647 E: 1300099379.621907 0003 0030 1224 E: 1300099379.621916 0003 0000 29616 E: 1300099379.621918 0003 0001 10631 E: 1300099379.621919 0000 0000 0 E: 1300099379.626878 0003 002f 0 E: 1300099379.626888 0003 0035 29600 E: 1300099379.626890 0003 0036 10661 E: 1300099379.626898 0003 002f 1 E: 1300099379.626898 0003 0035 27634 E: 1300099379.626900 0003 0036 22634 E: 1300099379.626903 0003 0030 1191 E: 1300099379.626911 0003 0000 29608 E: 1300099379.626913 0003 0001 10661 E: 1300099379.626915 0000 0000 0 E: 1300099379.631871 0003 002f 0 E: 1300099379.631876 0003 0035 29592 E: 1300099379.631878 0003 0036 10691 E: 1300099379.631887 0003 002f 1 E: 1300099379.631888 0003 0036 22630 E: 1300099379.631890 0003 0030 1323 E: 1300099379.631899 0003 0000 29600 E: 1300099379.631901 0003 0001 10691 E: 1300099379.631903 0000 0000 0 E: 1300099379.637882 0003 002f 0 E: 1300099379.637893 0003 0035 29584 E: 1300099379.637895 0003 0036 10725 E: 1300099379.637904 0003 002f 1 E: 1300099379.637904 0003 0036 22627 E: 1300099379.637907 0003 0030 1356 E: 1300099379.637909 0003 0031 969 E: 1300099379.637916 0003 0000 29592 E: 1300099379.637918 0003 0001 10725 E: 1300099379.637920 0000 0000 0 E: 1300099379.642880 0003 002f 0 E: 1300099379.642891 0003 0035 29576 E: 1300099379.642893 0003 0036 10757 E: 1300099379.642896 0003 0030 1588 E: 1300099379.642912 0003 0000 29584 E: 1300099379.642913 0003 0001 10757 E: 1300099379.642915 0000 0000 0 E: 1300099379.647867 0003 0035 29565 E: 1300099379.647877 0003 0036 10825 E: 1300099379.647883 0003 0030 1646 E: 1300099379.647889 0003 002f 1 E: 1300099379.647890 0003 0035 27626 E: 1300099379.647892 0003 0036 22593 E: 1300099379.647894 0003 0030 1224 E: 1300099379.647903 0003 0000 29574 E: 1300099379.647905 0003 0001 10825 E: 1300099379.647908 0000 0000 0 E: 1300099379.652880 0003 002f 0 E: 1300099379.652893 0003 0035 29556 E: 1300099379.652895 0003 0036 10855 E: 1300099379.652898 0003 0030 1689 E: 1300099379.652903 0003 002f 1 E: 1300099379.652904 0003 0035 27615 E: 1300099379.652906 0003 0036 22580 E: 1300099379.652908 0003 0030 1191 E: 1300099379.652917 0003 0000 29565 E: 1300099379.652918 0003 0001 10855 E: 1300099379.652920 0000 0000 0 E: 1300099379.657878 0003 002f 0 E: 1300099379.657889 0003 0035 29552 E: 1300099379.657890 0003 0036 10885 E: 1300099379.657893 0003 0030 1721 E: 1300099379.657899 0003 002f 1 E: 1300099379.657900 0003 0035 27602 E: 1300099379.657901 0003 0036 22543 E: 1300099379.657912 0003 0000 29561 E: 1300099379.657913 0003 0001 10885 E: 1300099379.657915 0000 0000 0 E: 1300099379.662879 0003 002f 0 E: 1300099379.662890 0003 0035 29541 E: 1300099379.662892 0003 0036 10953 E: 1300099379.662895 0003 0030 1588 E: 1300099379.662900 0003 002f 1 E: 1300099379.662901 0003 0035 27590 E: 1300099379.662903 0003 0036 22531 E: 1300099379.662913 0003 0000 29551 E: 1300099379.662915 0003 0001 10953 E: 1300099379.662916 0000 0000 0 E: 1300099379.667879 0003 002f 0 E: 1300099379.667890 0003 0035 29532 E: 1300099379.667892 0003 0036 10985 E: 1300099379.667895 0003 0030 1555 E: 1300099379.667900 0003 002f 1 E: 1300099379.667901 0003 0035 27578 E: 1300099379.667903 0003 0036 22497 E: 1300099379.667913 0003 0000 29541 E: 1300099379.667915 0003 0001 10985 E: 1300099379.667917 0000 0000 0 E: 1300099379.672880 0003 002f 0 E: 1300099379.672890 0003 0035 29528 E: 1300099379.672892 0003 0036 11017 E: 1300099379.672900 0003 002f 1 E: 1300099379.672901 0003 0035 27566 E: 1300099379.672902 0003 0036 22487 E: 1300099379.672913 0003 0000 29537 E: 1300099379.672915 0003 0001 11017 E: 1300099379.672916 0000 0000 0 E: 1300099379.677877 0003 002f 0 E: 1300099379.677888 0003 0035 29518 E: 1300099379.677890 0003 0036 11087 E: 1300099379.677897 0003 002f 1 E: 1300099379.677898 0003 0035 27556 E: 1300099379.677899 0003 0036 22457 E: 1300099379.677910 0003 0000 29527 E: 1300099379.677912 0003 0001 11087 E: 1300099379.677913 0000 0000 0 E: 1300099379.682878 0003 002f 0 E: 1300099379.682889 0003 0035 29508 E: 1300099379.682891 0003 0036 11151 E: 1300099379.682899 0003 002f 1 E: 1300099379.682899 0003 0035 27547 E: 1300099379.682901 0003 0036 22447 E: 1300099379.682912 0003 0000 29517 E: 1300099379.682913 0003 0001 11151 E: 1300099379.682915 0000 0000 0 E: 1300099379.687881 0003 002f 0 E: 1300099379.687892 0003 0035 29500 E: 1300099379.687894 0003 0036 11185 E: 1300099379.687901 0003 002f 1 E: 1300099379.687902 0003 0035 27537 E: 1300099379.687904 0003 0036 22415 E: 1300099379.687914 0003 0000 29508 E: 1300099379.687916 0003 0001 11185 E: 1300099379.687918 0000 0000 0 E: 1300099379.692869 0003 002f 0 E: 1300099379.692877 0003 0035 29492 E: 1300099379.692879 0003 0036 11215 E: 1300099379.692892 0003 002f 1 E: 1300099379.692892 0003 0035 27528 E: 1300099379.692894 0003 0036 22406 E: 1300099379.692897 0003 0030 1323 E: 1300099379.692905 0003 0000 29500 E: 1300099379.692907 0003 0001 11215 E: 1300099379.692909 0000 0000 0 E: 1300099379.698868 0003 002f 0 E: 1300099379.698875 0003 0035 29479 E: 1300099379.698877 0003 0036 11289 E: 1300099379.698888 0003 002f 1 E: 1300099379.698889 0003 0035 27524 E: 1300099379.698891 0003 0036 22393 E: 1300099379.698893 0003 0030 1265 E: 1300099379.698902 0003 0000 29489 E: 1300099379.698904 0003 0001 11289 E: 1300099379.698906 0000 0000 0 E: 1300099379.703867 0003 002f 0 E: 1300099379.703876 0003 0035 29464 E: 1300099379.703878 0003 0036 11357 E: 1300099379.703885 0003 002f 1 E: 1300099379.703886 0003 0035 27516 E: 1300099379.703888 0003 0036 22363 E: 1300099379.703891 0003 0030 1312 E: 1300099379.703899 0003 0000 29476 E: 1300099379.703901 0003 0001 11357 E: 1300099379.703903 0000 0000 0 E: 1300099379.708875 0003 002f 0 E: 1300099379.708888 0003 0035 29454 E: 1300099379.708890 0003 0036 11389 E: 1300099379.708897 0003 002f 1 E: 1300099379.708898 0003 0035 27513 E: 1300099379.708900 0003 0036 22354 E: 1300099379.708902 0003 0030 1348 E: 1300099379.708910 0003 0000 29465 E: 1300099379.708912 0003 0001 11389 E: 1300099379.708914 0000 0000 0 E: 1300099379.713869 0003 002f 0 E: 1300099379.713875 0003 0035 29443 E: 1300099379.713877 0003 0036 11463 E: 1300099379.713884 0003 002f 1 E: 1300099379.713885 0003 0035 27510 E: 1300099379.713887 0003 0036 22350 E: 1300099379.713897 0003 0000 29454 E: 1300099379.713899 0003 0001 11463 E: 1300099379.713901 0000 0000 0 E: 1300099379.718879 0003 002f 0 E: 1300099379.718892 0003 0035 29431 E: 1300099379.718894 0003 0036 11529 E: 1300099379.718896 0003 0030 1687 E: 1300099379.718902 0003 002f 1 E: 1300099379.718903 0003 0035 27507 E: 1300099379.718904 0003 0036 22346 E: 1300099379.718914 0003 0000 29442 E: 1300099379.718916 0003 0001 11529 E: 1300099379.718918 0000 0000 0 E: 1300099379.723864 0003 002f 0 E: 1300099379.723875 0003 0035 29420 E: 1300099379.723877 0003 0036 11601 E: 1300099379.723880 0003 0030 1629 E: 1300099379.723885 0003 002f 1 E: 1300099379.723886 0003 0035 27504 E: 1300099379.723888 0003 0036 22331 E: 1300099379.723898 0003 0000 29431 E: 1300099379.723900 0003 0001 11601 E: 1300099379.723901 0000 0000 0 E: 1300099379.728877 0003 002f 0 E: 1300099379.728890 0003 0035 29409 E: 1300099379.728892 0003 0036 11675 E: 1300099379.728895 0003 0030 1585 E: 1300099379.728900 0003 002f 1 E: 1300099379.728901 0003 0035 27502 E: 1300099379.728903 0003 0036 22322 E: 1300099379.728913 0003 0000 29420 E: 1300099379.728915 0003 0001 11675 E: 1300099379.728917 0000 0000 0 E: 1300099379.733866 0003 002f 0 E: 1300099379.733876 0003 0035 29398 E: 1300099379.733878 0003 0036 11749 E: 1300099379.733881 0003 0030 1552 E: 1300099379.733887 0003 002f 1 E: 1300099379.733888 0003 0036 22320 E: 1300099379.733898 0003 0000 29409 E: 1300099379.733900 0003 0001 11749 E: 1300099379.733902 0000 0000 0 E: 1300099379.738877 0003 002f 0 E: 1300099379.738887 0003 0035 29389 E: 1300099379.738889 0003 0036 11819 E: 1300099379.738897 0003 002f 1 E: 1300099379.738897 0003 0035 27500 E: 1300099379.738909 0003 0000 29399 E: 1300099379.738910 0003 0001 11819 E: 1300099379.738912 0000 0000 0 E: 1300099379.743864 0003 002f 0 E: 1300099379.743875 0003 0035 29379 E: 1300099379.743876 0003 0036 11885 E: 1300099379.743894 0003 0000 29389 E: 1300099379.743896 0003 0001 11885 E: 1300099379.743898 0000 0000 0 E: 1300099379.748874 0003 0035 29368 E: 1300099379.748886 0003 0036 11955 E: 1300099379.748904 0003 0000 29378 E: 1300099379.748906 0003 0001 11955 E: 1300099379.748908 0000 0000 0 E: 1300099379.754877 0003 0035 29357 E: 1300099379.754889 0003 0036 12025 E: 1300099379.754907 0003 0000 29367 E: 1300099379.754908 0003 0001 12025 E: 1300099379.754910 0000 0000 0 E: 1300099379.759876 0003 0035 29347 E: 1300099379.759887 0003 0036 12095 E: 1300099379.759905 0003 0000 29357 E: 1300099379.759907 0003 0001 12095 E: 1300099379.759909 0000 0000 0 E: 1300099379.764877 0003 0035 29337 E: 1300099379.764889 0003 0036 12163 E: 1300099379.764907 0003 0000 29347 E: 1300099379.764908 0003 0001 12163 E: 1300099379.764910 0000 0000 0 E: 1300099379.769877 0003 0035 29329 E: 1300099379.769889 0003 0036 12197 E: 1300099379.769907 0003 0000 29338 E: 1300099379.769908 0003 0001 12197 E: 1300099379.769910 0000 0000 0 E: 1300099379.774876 0003 0035 29320 E: 1300099379.774888 0003 0036 12271 E: 1300099379.774906 0003 0000 29329 E: 1300099379.774907 0003 0001 12271 E: 1300099379.774909 0000 0000 0 E: 1300099379.779876 0003 0035 29311 E: 1300099379.779888 0003 0036 12347 E: 1300099379.779899 0003 002f 1 E: 1300099379.779900 0003 0031 1009 E: 1300099379.779907 0003 0000 29320 E: 1300099379.779909 0003 0001 12347 E: 1300099379.779911 0000 0000 0 E: 1300099379.784877 0003 002f 0 E: 1300099379.784888 0003 0035 29303 E: 1300099379.784890 0003 0036 12429 E: 1300099379.784907 0003 0000 29311 E: 1300099379.784909 0003 0001 12429 E: 1300099379.784911 0000 0000 0 E: 1300099379.789876 0003 0035 29293 E: 1300099379.789888 0003 0036 12507 E: 1300099379.789906 0003 0000 29302 E: 1300099379.789907 0003 0001 12507 E: 1300099379.789909 0000 0000 0 E: 1300099379.794875 0003 0035 29282 E: 1300099379.794887 0003 0036 12589 E: 1300099379.794905 0003 0000 29292 E: 1300099379.794906 0003 0001 12589 E: 1300099379.794908 0000 0000 0 E: 1300099379.799878 0003 0035 29272 E: 1300099379.799889 0003 0036 12665 E: 1300099379.799907 0003 0000 29282 E: 1300099379.799909 0003 0001 12665 E: 1300099379.799911 0000 0000 0 E: 1300099379.804875 0003 0035 29261 E: 1300099379.804887 0003 0036 12745 E: 1300099379.804896 0003 002f 1 E: 1300099379.804897 0003 0036 22318 E: 1300099379.804898 0003 0034 1 E: 1300099379.804900 0003 0030 1293 E: 1300099379.804909 0003 0000 29271 E: 1300099379.804910 0003 0001 12745 E: 1300099379.804912 0000 0000 0 E: 1300099379.809876 0003 002f 0 E: 1300099379.809886 0003 0035 29249 E: 1300099379.809888 0003 0036 12827 E: 1300099379.809897 0003 002f 1 E: 1300099379.809897 0003 0036 22316 E: 1300099379.809900 0003 0030 1252 E: 1300099379.809909 0003 0000 29260 E: 1300099379.809910 0003 0001 12827 E: 1300099379.809912 0000 0000 0 E: 1300099379.815875 0003 002f 0 E: 1300099379.815885 0003 0035 29237 E: 1300099379.815886 0003 0036 12909 E: 1300099379.815889 0003 0030 1322 E: 1300099379.815896 0003 002f 1 E: 1300099379.815896 0003 0036 22313 E: 1300099379.815898 0003 0034 0 E: 1300099379.815900 0003 0030 1303 E: 1300099379.815908 0003 0000 29248 E: 1300099379.815910 0003 0001 12909 E: 1300099379.815911 0000 0000 0 E: 1300099379.820879 0003 002f 0 E: 1300099379.820891 0003 0035 29225 E: 1300099379.820892 0003 0036 12993 E: 1300099379.820895 0003 0030 1355 E: 1300099379.820902 0003 002f 1 E: 1300099379.820902 0003 0036 22310 E: 1300099379.820905 0003 0030 1341 E: 1300099379.820914 0003 0000 29236 E: 1300099379.820915 0003 0001 12993 E: 1300099379.820917 0000 0000 0 E: 1300099379.825875 0003 002f 0 E: 1300099379.825888 0003 0035 29213 E: 1300099379.825890 0003 0036 13077 E: 1300099379.825897 0003 002f 1 E: 1300099379.825898 0003 0035 27502 E: 1300099379.825900 0003 0036 22297 E: 1300099379.825910 0003 0000 29224 E: 1300099379.825911 0003 0001 13077 E: 1300099379.825913 0000 0000 0 E: 1300099379.830870 0003 002f 0 E: 1300099379.830875 0003 0035 29200 E: 1300099379.830877 0003 0036 13161 E: 1300099379.830885 0003 002f 1 E: 1300099379.830886 0003 0035 27505 E: 1300099379.830888 0003 0036 22267 E: 1300099379.830898 0003 0000 29212 E: 1300099379.830900 0003 0001 13161 E: 1300099379.830902 0000 0000 0 E: 1300099379.835875 0003 002f 0 E: 1300099379.835887 0003 0035 29187 E: 1300099379.835889 0003 0036 13243 E: 1300099379.835897 0003 002f 1 E: 1300099379.835898 0003 0035 27512 E: 1300099379.835899 0003 0036 22256 E: 1300099379.835910 0003 0000 29199 E: 1300099379.835911 0003 0001 13243 E: 1300099379.835913 0000 0000 0 E: 1300099379.840880 0003 002f 0 E: 1300099379.840885 0003 0035 29156 E: 1300099379.840887 0003 0036 13323 E: 1300099379.840894 0003 002f 1 E: 1300099379.840895 0003 0035 27520 E: 1300099379.840897 0003 0036 22221 E: 1300099379.840908 0003 0000 29156 E: 1300099379.840909 0003 0001 13323 E: 1300099379.840911 0000 0000 0 E: 1300099379.845876 0003 002f 0 E: 1300099379.845886 0003 0035 29147 E: 1300099379.845888 0003 0036 13403 E: 1300099379.845896 0003 002f 1 E: 1300099379.845896 0003 0035 27523 E: 1300099379.845898 0003 0036 22209 E: 1300099379.845908 0003 0000 29153 E: 1300099379.845910 0003 0001 13403 E: 1300099379.845912 0000 0000 0 E: 1300099379.850876 0003 002f 0 E: 1300099379.850886 0003 0035 29133 E: 1300099379.850888 0003 0036 13483 E: 1300099379.850895 0003 002f 1 E: 1300099379.850896 0003 0035 27531 E: 1300099379.850898 0003 0036 22171 E: 1300099379.850908 0003 0000 29143 E: 1300099379.850910 0003 0001 13483 E: 1300099379.850912 0000 0000 0 E: 1300099379.855876 0003 002f 0 E: 1300099379.855887 0003 0035 29100 E: 1300099379.855888 0003 0036 13565 E: 1300099379.855896 0003 002f 1 E: 1300099379.855897 0003 0035 27532 E: 1300099379.855898 0003 0036 22157 E: 1300099379.855909 0003 0000 29100 E: 1300099379.855910 0003 0001 13565 E: 1300099379.855912 0000 0000 0 E: 1300099379.860875 0003 002f 0 E: 1300099379.860885 0003 0035 29090 E: 1300099379.860887 0003 0036 13647 E: 1300099379.860890 0003 0030 1223 E: 1300099379.860896 0003 002f 1 E: 1300099379.860897 0003 0036 22115 E: 1300099379.860907 0003 0000 29097 E: 1300099379.860909 0003 0001 13647 E: 1300099379.860911 0000 0000 0 E: 1300099379.865876 0003 002f 0 E: 1300099379.865887 0003 0035 29060 E: 1300099379.865889 0003 0036 13727 E: 1300099379.865892 0003 0030 1281 E: 1300099379.865898 0003 002f 1 E: 1300099379.865899 0003 0036 22101 E: 1300099379.865909 0003 0000 29060 E: 1300099379.865911 0003 0001 13727 E: 1300099379.865913 0000 0000 0 E: 1300099379.871879 0003 002f 0 E: 1300099379.871884 0003 0035 29049 E: 1300099379.871886 0003 0036 13813 E: 1300099379.871889 0003 0030 1324 E: 1300099379.871895 0003 002f 1 E: 1300099379.871896 0003 0036 22055 E: 1300099379.871907 0003 0000 29057 E: 1300099379.871908 0003 0001 13813 E: 1300099379.871910 0000 0000 0 E: 1300099379.876875 0003 002f 0 E: 1300099379.876885 0003 0035 29016 E: 1300099379.876887 0003 0036 13895 E: 1300099379.876890 0003 0030 1357 E: 1300099379.876896 0003 002f 1 E: 1300099379.876896 0003 0035 27534 E: 1300099379.876898 0003 0036 22023 E: 1300099379.876908 0003 0000 29016 E: 1300099379.876910 0003 0001 13895 E: 1300099379.876912 0000 0000 0 E: 1300099379.881867 0003 002f 0 E: 1300099379.881875 0003 0035 29005 E: 1300099379.881881 0003 0036 13979 E: 1300099379.881890 0003 002f 1 E: 1300099379.881891 0003 0036 22009 E: 1300099379.881902 0003 0000 29013 E: 1300099379.881905 0003 0001 13979 E: 1300099379.881907 0000 0000 0 E: 1300099379.886874 0003 002f 0 E: 1300099379.886887 0003 0035 28974 E: 1300099379.886889 0003 0036 14057 E: 1300099379.886897 0003 002f 1 E: 1300099379.886898 0003 0035 27536 E: 1300099379.886899 0003 0036 21963 E: 1300099379.886901 0003 0034 1 E: 1300099379.886903 0003 0030 1288 E: 1300099379.886911 0003 0000 28974 E: 1300099379.886913 0003 0001 14057 E: 1300099379.886915 0000 0000 0 E: 1300099379.891874 0003 002f 0 E: 1300099379.891885 0003 0035 28963 E: 1300099379.891887 0003 0036 14137 E: 1300099379.891894 0003 002f 1 E: 1300099379.891895 0003 0035 27538 E: 1300099379.891897 0003 0036 21899 E: 1300099379.891899 0003 0030 1248 E: 1300099379.891908 0003 0000 28971 E: 1300099379.891910 0003 0001 14137 E: 1300099379.891911 0000 0000 0 E: 1300099379.896876 0003 002f 0 E: 1300099379.896886 0003 0035 28930 E: 1300099379.896888 0003 0036 14219 E: 1300099379.896896 0003 002f 1 E: 1300099379.896896 0003 0035 27540 E: 1300099379.896898 0003 0036 21867 E: 1300099379.896900 0003 0034 0 E: 1300099379.896901 0003 0030 1209 E: 1300099379.896910 0003 0000 28930 E: 1300099379.896912 0003 0001 14219 E: 1300099379.896913 0000 0000 0 E: 1300099379.901874 0003 002f 0 E: 1300099379.901885 0003 0035 28917 E: 1300099379.901887 0003 0036 14297 E: 1300099379.901890 0003 0030 1224 E: 1300099379.901895 0003 002f 1 E: 1300099379.901896 0003 0035 27543 E: 1300099379.901898 0003 0036 21835 E: 1300099379.901908 0003 0000 28926 E: 1300099379.901910 0003 0001 14297 E: 1300099379.901912 0000 0000 0 E: 1300099379.906874 0003 002f 0 E: 1300099379.906885 0003 0035 28882 E: 1300099379.906887 0003 0036 14381 E: 1300099379.906890 0003 0030 1191 E: 1300099379.906895 0003 002f 1 E: 1300099379.906896 0003 0035 27546 E: 1300099379.906897 0003 0036 21767 E: 1300099379.906900 0003 0030 1270 E: 1300099379.906909 0003 0000 28882 E: 1300099379.906910 0003 0001 14381 E: 1300099379.906912 0000 0000 0 E: 1300099379.911872 0003 002f 0 E: 1300099379.911883 0003 0035 28872 E: 1300099379.911884 0003 0036 14465 E: 1300099379.911892 0003 002f 1 E: 1300099379.911893 0003 0035 27549 E: 1300099379.911894 0003 0036 21737 E: 1300099379.911897 0003 0030 1316 E: 1300099379.911905 0003 0000 28879 E: 1300099379.911907 0003 0001 14465 E: 1300099379.911909 0000 0000 0 E: 1300099379.916874 0003 002f 0 E: 1300099379.916884 0003 0035 28840 E: 1300099379.916886 0003 0036 14543 E: 1300099379.916889 0003 0030 1323 E: 1300099379.916895 0003 002f 1 E: 1300099379.916895 0003 0035 27551 E: 1300099379.916897 0003 0036 21705 E: 1300099379.916899 0003 0030 1351 E: 1300099379.916908 0003 0000 28840 E: 1300099379.916910 0003 0001 14543 E: 1300099379.916912 0000 0000 0 E: 1300099379.921873 0003 002f 0 E: 1300099379.921883 0003 0035 28830 E: 1300099379.921885 0003 0036 14617 E: 1300099379.921888 0003 0030 1356 E: 1300099379.921893 0003 002f 1 E: 1300099379.921894 0003 0035 27554 E: 1300099379.921896 0003 0036 21673 E: 1300099379.921899 0003 0031 843 E: 1300099379.921907 0003 0000 28837 E: 1300099379.921909 0003 0001 14617 E: 1300099379.921911 0000 0000 0 E: 1300099379.926874 0003 002f 0 E: 1300099379.926885 0003 0035 28816 E: 1300099379.926887 0003 0036 14687 E: 1300099379.926895 0003 002f 1 E: 1300099379.926895 0003 0035 27556 E: 1300099379.926897 0003 0036 21641 E: 1300099379.926901 0003 0031 801 E: 1300099379.926908 0003 0000 28826 E: 1300099379.926910 0003 0001 14687 E: 1300099379.926912 0000 0000 0 E: 1300099379.932890 0003 002f 0 E: 1300099379.932894 0003 0035 28782 E: 1300099379.932896 0003 0036 14755 E: 1300099379.932904 0003 002f 1 E: 1300099379.932905 0003 0035 27559 E: 1300099379.932906 0003 0036 21627 E: 1300099379.932917 0003 0000 28782 E: 1300099379.932918 0003 0001 14755 E: 1300099379.932920 0000 0000 0 E: 1300099379.937874 0003 002f 0 E: 1300099379.937888 0003 0035 28772 E: 1300099379.937890 0003 0036 14821 E: 1300099379.937897 0003 002f 1 E: 1300099379.937898 0003 0035 27561 E: 1300099379.937900 0003 0036 21581 E: 1300099379.937910 0003 0000 28779 E: 1300099379.937912 0003 0001 14821 E: 1300099379.937913 0000 0000 0 E: 1300099379.942873 0003 002f 0 E: 1300099379.942884 0003 0035 28759 E: 1300099379.942885 0003 0036 14891 E: 1300099379.942893 0003 002f 1 E: 1300099379.942894 0003 0035 27563 E: 1300099379.942895 0003 0036 21549 E: 1300099379.942906 0003 0000 28769 E: 1300099379.942907 0003 0001 14891 E: 1300099379.942909 0000 0000 0 E: 1300099379.947868 0003 002f 0 E: 1300099379.947878 0003 0035 28746 E: 1300099379.947880 0003 0036 14925 E: 1300099379.947891 0003 002f 1 E: 1300099379.947892 0003 0035 27565 E: 1300099379.947894 0003 0036 21535 E: 1300099379.947905 0003 0000 28757 E: 1300099379.947906 0003 0001 14925 E: 1300099379.947908 0000 0000 0 E: 1300099379.952871 0003 002f 0 E: 1300099379.952883 0003 0035 28716 E: 1300099379.952885 0003 0036 14991 E: 1300099379.952894 0003 002f 1 E: 1300099379.952894 0003 0036 21489 E: 1300099379.952905 0003 0000 28716 E: 1300099379.952906 0003 0001 14991 E: 1300099379.952908 0000 0000 0 E: 1300099379.957865 0003 002f 0 E: 1300099379.957873 0003 0035 28708 E: 1300099379.957879 0003 0036 15057 E: 1300099379.957888 0003 002f 1 E: 1300099379.957889 0003 0036 21459 E: 1300099379.957900 0003 0000 28714 E: 1300099379.957903 0003 0001 15057 E: 1300099379.957905 0000 0000 0 E: 1300099379.962871 0003 002f 0 E: 1300099379.962883 0003 0035 28695 E: 1300099379.962885 0003 0036 15125 E: 1300099379.962888 0003 0030 1224 E: 1300099379.962893 0003 002f 1 E: 1300099379.962894 0003 0035 27563 E: 1300099379.962896 0003 0036 21445 E: 1300099379.962906 0003 0000 28704 E: 1300099379.962908 0003 0001 15125 E: 1300099379.962910 0000 0000 0 E: 1300099379.967874 0003 002f 0 E: 1300099379.967885 0003 0035 28680 E: 1300099379.967886 0003 0036 15193 E: 1300099379.967889 0003 0030 1191 E: 1300099379.967895 0003 002f 1 E: 1300099379.967896 0003 0035 27560 E: 1300099379.967897 0003 0036 21399 E: 1300099379.967908 0003 0000 28692 E: 1300099379.967909 0003 0001 15193 E: 1300099379.967911 0000 0000 0 E: 1300099379.972873 0003 002f 0 E: 1300099379.972884 0003 0035 28646 E: 1300099379.972886 0003 0036 15267 E: 1300099379.972894 0003 002f 1 E: 1300099379.972895 0003 0035 27557 E: 1300099379.972896 0003 0036 21385 E: 1300099379.972907 0003 0000 28646 E: 1300099379.972908 0003 0001 15267 E: 1300099379.972910 0000 0000 0 E: 1300099379.977872 0003 002f 0 E: 1300099379.977882 0003 0035 28637 E: 1300099379.977883 0003 0036 15341 E: 1300099379.977886 0003 0030 1323 E: 1300099379.977892 0003 002f 1 E: 1300099379.977892 0003 0035 27554 E: 1300099379.977894 0003 0036 21343 E: 1300099379.977904 0003 0000 28643 E: 1300099379.977906 0003 0001 15341 E: 1300099379.977908 0000 0000 0 E: 1300099379.982874 0003 002f 0 E: 1300099379.982885 0003 0035 28627 E: 1300099379.982887 0003 0036 15371 E: 1300099379.982890 0003 0030 1356 E: 1300099379.982895 0003 002f 1 E: 1300099379.982896 0003 0035 27551 E: 1300099379.982897 0003 0036 21330 E: 1300099379.982908 0003 0000 28635 E: 1300099379.982910 0003 0001 15371 E: 1300099379.982912 0000 0000 0 E: 1300099379.987874 0003 002f 0 E: 1300099379.987885 0003 0035 28612 E: 1300099379.987887 0003 0036 15441 E: 1300099379.987894 0003 002f 1 E: 1300099379.987895 0003 0035 27548 E: 1300099379.987897 0003 0036 21289 E: 1300099379.987907 0003 0000 28623 E: 1300099379.987909 0003 0001 15441 E: 1300099379.987911 0000 0000 0 E: 1300099379.993862 0003 002f 0 E: 1300099379.993875 0003 0035 28580 E: 1300099379.993877 0003 0036 15511 E: 1300099379.993884 0003 002f 1 E: 1300099379.993885 0003 0035 27545 E: 1300099379.993887 0003 0036 21277 E: 1300099379.993897 0003 0000 28580 E: 1300099379.993899 0003 0001 15511 E: 1300099379.993901 0000 0000 0 E: 1300099379.998874 0003 002f 0 E: 1300099379.998885 0003 0035 28571 E: 1300099379.998887 0003 0036 15583 E: 1300099379.998894 0003 002f 1 E: 1300099379.998895 0003 0035 27542 E: 1300099379.998897 0003 0036 21241 E: 1300099379.998907 0003 0000 28577 E: 1300099379.998909 0003 0001 15583 E: 1300099379.998911 0000 0000 0 E: 1300099380.003862 0003 002f 0 E: 1300099380.003873 0003 0035 28557 E: 1300099380.003875 0003 0036 15649 E: 1300099380.003883 0003 002f 1 E: 1300099380.003884 0003 0035 27539 E: 1300099380.003886 0003 0036 21227 E: 1300099380.003888 0003 0030 1221 E: 1300099380.003897 0003 0000 28567 E: 1300099380.003899 0003 0001 15649 E: 1300099380.003901 0000 0000 0 E: 1300099380.008870 0003 002f 0 E: 1300099380.008883 0003 0035 28545 E: 1300099380.008885 0003 0036 15683 E: 1300099380.008892 0003 002f 1 E: 1300099380.008893 0003 0035 27537 E: 1300099380.008895 0003 0036 21185 E: 1300099380.008897 0003 0030 1188 E: 1300099380.008906 0003 0000 28556 E: 1300099380.008908 0003 0001 15683 E: 1300099380.008909 0000 0000 0 E: 1300099380.013863 0003 002f 0 E: 1300099380.013875 0003 0035 28514 E: 1300099380.013877 0003 0036 15751 E: 1300099380.013885 0003 002f 1 E: 1300099380.013885 0003 0035 27535 E: 1300099380.013887 0003 0036 21171 E: 1300099380.013897 0003 0000 28514 E: 1300099380.013899 0003 0001 15751 E: 1300099380.013901 0000 0000 0 E: 1300099380.018872 0003 002f 0 E: 1300099380.018882 0003 0035 28505 E: 1300099380.018884 0003 0036 15819 E: 1300099380.018887 0003 0030 1224 E: 1300099380.018893 0003 002f 1 E: 1300099380.018893 0003 0035 27533 E: 1300099380.018895 0003 0036 21127 E: 1300099380.018905 0003 0000 28511 E: 1300099380.018907 0003 0001 15819 E: 1300099380.018909 0000 0000 0 E: 1300099380.023859 0003 002f 0 E: 1300099380.023870 0003 0035 28490 E: 1300099380.023872 0003 0036 15889 E: 1300099380.023874 0003 0030 1191 E: 1300099380.023880 0003 002f 1 E: 1300099380.023881 0003 0035 27531 E: 1300099380.023882 0003 0036 21113 E: 1300099380.023893 0003 0000 28500 E: 1300099380.023894 0003 0001 15889 E: 1300099380.023896 0000 0000 0 E: 1300099380.028871 0003 002f 0 E: 1300099380.028881 0003 0035 28458 E: 1300099380.028883 0003 0036 15955 E: 1300099380.028891 0003 002f 1 E: 1300099380.028892 0003 0035 27529 E: 1300099380.028893 0003 0036 21071 E: 1300099380.028904 0003 0000 28458 E: 1300099380.028905 0003 0001 15955 E: 1300099380.028907 0000 0000 0 E: 1300099380.033861 0003 002f 0 E: 1300099380.033871 0003 0035 28449 E: 1300099380.033873 0003 0036 16025 E: 1300099380.033881 0003 002f 1 E: 1300099380.033882 0003 0036 21041 E: 1300099380.033893 0003 0000 28455 E: 1300099380.033894 0003 0001 16025 E: 1300099380.033896 0000 0000 0 E: 1300099380.038868 0003 002f 0 E: 1300099380.038878 0003 0035 28441 E: 1300099380.038880 0003 0036 16055 E: 1300099380.038883 0003 0030 1323 E: 1300099380.038889 0003 002f 1 E: 1300099380.038889 0003 0035 27527 E: 1300099380.038891 0003 0036 21028 E: 1300099380.038902 0003 0000 28451 E: 1300099380.038903 0003 0001 16055 E: 1300099380.038905 0000 0000 0 E: 1300099380.043861 0003 002f 0 E: 1300099380.043871 0003 0035 28428 E: 1300099380.043873 0003 0036 16125 E: 1300099380.043876 0003 0030 1356 E: 1300099380.043883 0003 002f 1 E: 1300099380.043883 0003 0036 20987 E: 1300099380.043886 0003 0030 1322 E: 1300099380.043895 0003 0000 28439 E: 1300099380.043896 0003 0001 16125 E: 1300099380.043898 0000 0000 0 E: 1300099380.049873 0003 002f 0 E: 1300099380.049884 0003 0035 28414 E: 1300099380.049886 0003 0036 16193 E: 1300099380.049893 0003 002f 1 E: 1300099380.049894 0003 0035 27525 E: 1300099380.049896 0003 0036 20957 E: 1300099380.049898 0003 0030 1355 E: 1300099380.049907 0003 0000 28426 E: 1300099380.049909 0003 0001 16193 E: 1300099380.049911 0000 0000 0 E: 1300099380.054873 0003 002f 0 E: 1300099380.054884 0003 0035 28384 E: 1300099380.054886 0003 0036 16259 E: 1300099380.054894 0003 002f 1 E: 1300099380.054894 0003 0035 27523 E: 1300099380.054896 0003 0036 20943 E: 1300099380.054906 0003 0000 28384 E: 1300099380.054908 0003 0001 16259 E: 1300099380.054910 0000 0000 0 E: 1300099380.059870 0003 002f 0 E: 1300099380.059880 0003 0035 28381 E: 1300099380.059882 0003 0036 16331 E: 1300099380.059890 0003 002f 1 E: 1300099380.059891 0003 0036 20901 E: 1300099380.059903 0003 0001 16331 E: 1300099380.059904 0000 0000 0 E: 1300099380.064871 0003 002f 0 E: 1300099380.064876 0003 0035 28371 E: 1300099380.064878 0003 0036 16401 E: 1300099380.064887 0003 002f 1 E: 1300099380.064888 0003 0036 20871 E: 1300099380.064898 0003 0000 28380 E: 1300099380.064900 0003 0001 16401 E: 1300099380.064902 0000 0000 0 E: 1300099380.069870 0003 002f 0 E: 1300099380.069880 0003 0035 28363 E: 1300099380.069882 0003 0036 16433 E: 1300099380.069890 0003 002f 1 E: 1300099380.069891 0003 0036 20841 E: 1300099380.069901 0003 0000 28371 E: 1300099380.069903 0003 0001 16433 E: 1300099380.069905 0000 0000 0 E: 1300099380.074872 0003 002f 0 E: 1300099380.074883 0003 0035 28359 E: 1300099380.074885 0003 0036 16463 E: 1300099380.074892 0003 002f 1 E: 1300099380.074893 0003 0035 27520 E: 1300099380.074895 0003 0036 20809 E: 1300099380.074906 0003 0000 28368 E: 1300099380.074907 0003 0001 16463 E: 1300099380.074909 0000 0000 0 E: 1300099380.079870 0003 002f 0 E: 1300099380.079881 0003 0035 28347 E: 1300099380.079883 0003 0036 16531 E: 1300099380.079890 0003 002f 1 E: 1300099380.079891 0003 0035 27512 E: 1300099380.079893 0003 0036 20735 E: 1300099380.079903 0003 0000 28357 E: 1300099380.079905 0003 0001 16531 E: 1300099380.079907 0000 0000 0 E: 1300099380.084872 0003 002f 0 E: 1300099380.084885 0003 0035 28334 E: 1300099380.084886 0003 0036 16603 E: 1300099380.084889 0003 0030 1224 E: 1300099380.084895 0003 002f 1 E: 1300099380.084896 0003 0035 27504 E: 1300099380.084897 0003 0036 20663 E: 1300099380.084908 0003 0000 28345 E: 1300099380.084910 0003 0001 16603 E: 1300099380.084912 0000 0000 0 E: 1300099380.089869 0003 002f 0 E: 1300099380.089880 0003 0035 28321 E: 1300099380.089882 0003 0036 16683 E: 1300099380.089885 0003 0030 1191 E: 1300099380.089890 0003 002f 1 E: 1300099380.089891 0003 0035 27496 E: 1300099380.089892 0003 0036 20581 E: 1300099380.089895 0003 0030 1223 E: 1300099380.089904 0003 0000 28333 E: 1300099380.089905 0003 0001 16683 E: 1300099380.089907 0000 0000 0 E: 1300099380.094870 0003 002f 0 E: 1300099380.094880 0003 0035 28290 E: 1300099380.094882 0003 0036 16761 E: 1300099380.094890 0003 002f 1 E: 1300099380.094891 0003 0035 27492 E: 1300099380.094892 0003 0036 20495 E: 1300099380.094895 0003 0030 1190 E: 1300099380.094903 0003 0000 28290 E: 1300099380.094905 0003 0001 16761 E: 1300099380.094907 0000 0000 0 E: 1300099380.099870 0003 002f 0 E: 1300099380.099880 0003 0035 28279 E: 1300099380.099882 0003 0036 16835 E: 1300099380.099885 0003 0030 1323 E: 1300099380.099890 0003 002f 1 E: 1300099380.099891 0003 0035 27484 E: 1300099380.099893 0003 0036 20405 E: 1300099380.099895 0003 0030 1323 E: 1300099380.099904 0003 0000 28287 E: 1300099380.099905 0003 0001 16835 E: 1300099380.099907 0000 0000 0 E: 1300099380.104874 0003 002f 0 E: 1300099380.104883 0003 0035 28242 E: 1300099380.104885 0003 0036 16911 E: 1300099380.104888 0003 0030 1356 E: 1300099380.104893 0003 002f 1 E: 1300099380.104894 0003 0035 27481 E: 1300099380.104896 0003 0036 20307 E: 1300099380.104898 0003 0030 1356 E: 1300099380.104906 0003 0000 28242 E: 1300099380.104908 0003 0001 16911 E: 1300099380.104910 0000 0000 0 E: 1300099380.110871 0003 002f 0 E: 1300099380.110882 0003 0035 28228 E: 1300099380.110884 0003 0036 16979 E: 1300099380.110891 0003 002f 1 E: 1300099380.110892 0003 0035 27472 E: 1300099380.110894 0003 0036 20211 E: 1300099380.110904 0003 0000 28238 E: 1300099380.110906 0003 0001 16979 E: 1300099380.110907 0000 0000 0 E: 1300099380.115872 0003 002f 0 E: 1300099380.115883 0003 0035 28186 E: 1300099380.115885 0003 0036 17049 E: 1300099380.115893 0003 002f 1 E: 1300099380.115893 0003 0035 27464 E: 1300099380.115895 0003 0036 20097 E: 1300099380.115905 0003 0000 28186 E: 1300099380.115907 0003 0001 17049 E: 1300099380.115909 0000 0000 0 E: 1300099380.120870 0003 002f 0 E: 1300099380.120881 0003 0035 28183 E: 1300099380.120883 0003 0036 17079 E: 1300099380.120891 0003 002f 1 E: 1300099380.120891 0003 0035 27460 E: 1300099380.120893 0003 0036 19999 E: 1300099380.120896 0003 0030 1224 E: 1300099380.120905 0003 0001 17079 E: 1300099380.120907 0000 0000 0 E: 1300099380.125862 0003 002f 0 E: 1300099380.125867 0003 0035 28170 E: 1300099380.125869 0003 0036 17109 E: 1300099380.125877 0003 002f 1 E: 1300099380.125878 0003 0035 27457 E: 1300099380.125880 0003 0036 19889 E: 1300099380.125882 0003 0030 1191 E: 1300099380.125891 0003 0000 28178 E: 1300099380.125893 0003 0001 17109 E: 1300099380.125895 0000 0000 0 E: 1300099380.130858 0003 002f 0 E: 1300099380.130865 0003 0035 28157 E: 1300099380.130867 0003 0036 17139 E: 1300099380.130878 0003 002f 1 E: 1300099380.130879 0003 0035 27454 E: 1300099380.130881 0003 0036 19809 E: 1300099380.130891 0003 0000 28167 E: 1300099380.130892 0003 0001 17139 E: 1300099380.130894 0000 0000 0 E: 1300099380.135877 0003 002f 0 E: 1300099380.135892 0003 0035 28143 E: 1300099380.135894 0003 0036 17171 E: 1300099380.135907 0003 002f 1 E: 1300099380.135908 0003 0035 27450 E: 1300099380.135909 0003 0036 19725 E: 1300099380.135919 0003 0000 28155 E: 1300099380.135921 0003 0001 17171 E: 1300099380.135922 0000 0000 0 E: 1300099380.140870 0003 002f 0 E: 1300099380.140883 0003 0035 28129 E: 1300099380.140885 0003 0036 17185 E: 1300099380.140892 0003 002f 1 E: 1300099380.140893 0003 0035 27446 E: 1300099380.140895 0003 0036 19651 E: 1300099380.140897 0003 0030 1323 E: 1300099380.140906 0003 0000 28142 E: 1300099380.140908 0003 0001 17174 E: 1300099380.140909 0000 0000 0 E: 1300099380.145869 0003 002f 0 E: 1300099380.145879 0003 0035 28116 E: 1300099380.145881 0003 0036 17231 E: 1300099380.145889 0003 002f 1 E: 1300099380.145889 0003 0035 27438 E: 1300099380.145891 0003 0036 19577 E: 1300099380.145894 0003 0030 1356 E: 1300099380.145902 0003 0000 28129 E: 1300099380.145904 0003 0001 17231 E: 1300099380.145905 0000 0000 0 E: 1300099380.150870 0003 002f 0 E: 1300099380.150881 0003 0035 28103 E: 1300099380.150883 0003 0036 17245 E: 1300099380.150891 0003 002f 1 E: 1300099380.150891 0003 0035 27435 E: 1300099380.150893 0003 0036 19511 E: 1300099380.150903 0003 0000 28116 E: 1300099380.150905 0003 0001 17234 E: 1300099380.150907 0000 0000 0 E: 1300099380.155869 0003 002f 0 E: 1300099380.155880 0003 0035 28090 E: 1300099380.155882 0003 0036 17287 E: 1300099380.155884 0003 0030 1224 E: 1300099380.155890 0003 002f 1 E: 1300099380.155891 0003 0035 27432 E: 1300099380.155892 0003 0036 19497 E: 1300099380.155903 0003 0000 28103 E: 1300099380.155904 0003 0001 17287 E: 1300099380.155906 0000 0000 0 E: 1300099380.160870 0003 002f 0 E: 1300099380.160881 0003 0035 28079 E: 1300099380.160883 0003 0036 17317 E: 1300099380.160886 0003 0030 1191 E: 1300099380.160891 0003 002f 1 E: 1300099380.160892 0003 0035 27429 E: 1300099380.160894 0003 0036 19455 E: 1300099380.160904 0003 0000 28091 E: 1300099380.160906 0003 0001 17317 E: 1300099380.160907 0000 0000 0 E: 1300099380.166885 0003 002f 0 E: 1300099380.166889 0003 0035 28067 E: 1300099380.166891 0003 0036 17331 E: 1300099380.166899 0003 002f 1 E: 1300099380.166900 0003 0035 27426 E: 1300099380.166901 0003 0036 19442 E: 1300099380.166912 0003 0000 28079 E: 1300099380.166913 0003 0001 17320 E: 1300099380.166915 0000 0000 0 E: 1300099380.171870 0003 002f 0 E: 1300099380.171880 0003 0035 28056 E: 1300099380.171882 0003 0036 17369 E: 1300099380.171891 0003 002f 1 E: 1300099380.171892 0003 0036 19403 E: 1300099380.171902 0003 0000 28067 E: 1300099380.171904 0003 0001 17369 E: 1300099380.171905 0000 0000 0 E: 1300099380.176869 0003 002f 0 E: 1300099380.176879 0003 0035 28046 E: 1300099380.176881 0003 0036 17383 E: 1300099380.176890 0003 002f 1 E: 1300099380.176890 0003 0036 19392 E: 1300099380.176901 0003 0000 28056 E: 1300099380.176902 0003 0001 17372 E: 1300099380.176904 0000 0000 0 E: 1300099380.181861 0003 002f 0 E: 1300099380.181866 0003 0035 28035 E: 1300099380.181868 0003 0036 17425 E: 1300099380.181876 0003 002f 1 E: 1300099380.181877 0003 0036 19357 E: 1300099380.181887 0003 0000 28045 E: 1300099380.181889 0003 0001 17425 E: 1300099380.181891 0000 0000 0 E: 1300099380.186873 0003 002f 0 E: 1300099380.186884 0003 0035 28025 E: 1300099380.186886 0003 0036 17438 E: 1300099380.186892 0003 002f 1 E: 1300099380.186892 0003 0039 -1 E: 1300099380.186899 0003 0000 28035 E: 1300099380.186901 0003 0001 17428 E: 1300099380.186902 0000 0000 0 E: 1300099380.191868 0003 002f 0 E: 1300099380.191880 0003 0035 28014 E: 1300099380.191882 0003 0036 17481 E: 1300099380.191891 0003 0000 28024 E: 1300099380.191893 0003 0001 17481 E: 1300099380.191895 0000 0000 0 E: 1300099380.196872 0003 0035 28000 E: 1300099380.196885 0003 0036 17559 E: 1300099380.196894 0003 0000 28012 E: 1300099380.196896 0003 0001 17559 E: 1300099380.196898 0000 0000 0 E: 1300099380.201866 0003 0039 -1 E: 1300099380.201881 0001 014a 0 E: 1300099380.201883 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/events/3m-one-drag.event0000644000015600001650000022176712651522342025464 0ustar pbuserpbgroup00000000000000E: 1300099314.367107 0003 0039 4 E: 1300099314.367123 0003 0035 29456 E: 1300099314.367125 0003 0036 14969 E: 1300099314.367132 0001 014a 1 E: 1300099314.367135 0003 0000 29456 E: 1300099314.367137 0003 0001 14969 E: 1300099314.367139 0000 0000 0 E: 1300099314.392100 0003 0036 14971 E: 1300099314.392112 0003 0030 1323 E: 1300099314.392121 0000 0000 0 E: 1300099314.397101 0003 0036 14973 E: 1300099314.397113 0003 0030 1356 E: 1300099314.397122 0000 0000 0 E: 1300099314.403100 0003 0036 14975 E: 1300099314.403121 0000 0000 0 E: 1300099314.408099 0003 0035 29454 E: 1300099314.408110 0003 0036 14978 E: 1300099314.408121 0003 0001 14971 E: 1300099314.408122 0000 0000 0 E: 1300099314.413100 0003 0035 29452 E: 1300099314.413111 0003 0036 14981 E: 1300099314.413121 0003 0001 14973 E: 1300099314.413123 0000 0000 0 E: 1300099314.418099 0003 0035 29444 E: 1300099314.418110 0003 0036 14994 E: 1300099314.418119 0003 0000 29453 E: 1300099314.418121 0003 0001 14983 E: 1300099314.418123 0000 0000 0 E: 1300099314.423099 0003 0035 29434 E: 1300099314.423110 0003 0036 15027 E: 1300099314.423120 0003 0000 29443 E: 1300099314.423121 0003 0001 15027 E: 1300099314.423123 0000 0000 0 E: 1300099314.428099 0003 0035 29423 E: 1300099314.428110 0003 0036 15037 E: 1300099314.428119 0003 0000 29433 E: 1300099314.428121 0003 0001 15029 E: 1300099314.428123 0000 0000 0 E: 1300099314.433098 0003 0035 29411 E: 1300099314.433109 0003 0036 15067 E: 1300099314.433119 0003 0000 29422 E: 1300099314.433120 0003 0001 15067 E: 1300099314.433122 0000 0000 0 E: 1300099314.438099 0003 0035 29398 E: 1300099314.438113 0003 0036 15079 E: 1300099314.438126 0003 0000 29410 E: 1300099314.438128 0003 0001 15070 E: 1300099314.438130 0000 0000 0 E: 1300099314.443104 0003 0035 29384 E: 1300099314.443118 0003 0036 15115 E: 1300099314.443128 0003 0000 29397 E: 1300099314.443129 0003 0001 15115 E: 1300099314.443131 0000 0000 0 E: 1300099314.448094 0003 0035 29370 E: 1300099314.448103 0003 0036 15128 E: 1300099314.448114 0003 0000 29383 E: 1300099314.448116 0003 0001 15118 E: 1300099314.448117 0000 0000 0 E: 1300099314.453101 0003 0035 29338 E: 1300099314.453115 0003 0036 15165 E: 1300099314.453118 0003 0030 1224 E: 1300099314.453125 0003 0000 29338 E: 1300099314.453127 0003 0001 15165 E: 1300099314.453129 0000 0000 0 E: 1300099314.459090 0003 0035 29330 E: 1300099314.459099 0003 0036 15178 E: 1300099314.459102 0003 0030 1191 E: 1300099314.459112 0003 0000 29336 E: 1300099314.459114 0003 0001 15168 E: 1300099314.459116 0000 0000 0 E: 1300099314.464103 0003 0035 29316 E: 1300099314.464117 0003 0036 15219 E: 1300099314.464126 0003 0000 29326 E: 1300099314.464128 0003 0001 15219 E: 1300099314.464130 0000 0000 0 E: 1300099314.469102 0003 0035 29278 E: 1300099314.469114 0003 0036 15233 E: 1300099314.469124 0003 0000 29278 E: 1300099314.469125 0003 0001 15222 E: 1300099314.469127 0000 0000 0 E: 1300099314.474097 0003 0035 29266 E: 1300099314.474106 0003 0036 15279 E: 1300099314.474115 0003 0000 29275 E: 1300099314.474117 0003 0001 15279 E: 1300099314.474118 0000 0000 0 E: 1300099314.479099 0003 0035 29204 E: 1300099314.479110 0003 0036 15347 E: 1300099314.479119 0003 0000 29204 E: 1300099314.479121 0003 0001 15347 E: 1300099314.479123 0000 0000 0 E: 1300099314.484100 0003 0035 29158 E: 1300099314.484111 0003 0036 15413 E: 1300099314.484114 0003 0030 1323 E: 1300099314.484121 0003 0000 29158 E: 1300099314.484123 0003 0001 15413 E: 1300099314.484125 0000 0000 0 E: 1300099314.489100 0003 0035 29145 E: 1300099314.489111 0003 0036 15443 E: 1300099314.489114 0003 0030 1356 E: 1300099314.489121 0003 0000 29154 E: 1300099314.489123 0003 0001 15443 E: 1300099314.489125 0000 0000 0 E: 1300099314.494090 0003 0035 29108 E: 1300099314.494102 0003 0036 15475 E: 1300099314.494111 0003 0000 29108 E: 1300099314.494113 0003 0001 15475 E: 1300099314.494114 0000 0000 0 E: 1300099314.499104 0003 0035 29054 E: 1300099314.499117 0003 0036 15545 E: 1300099314.499126 0003 0000 29054 E: 1300099314.499127 0003 0001 15545 E: 1300099314.499129 0000 0000 0 E: 1300099314.504091 0003 0035 29006 E: 1300099314.504103 0003 0036 15617 E: 1300099314.504112 0003 0000 29006 E: 1300099314.504113 0003 0001 15617 E: 1300099314.504115 0000 0000 0 E: 1300099314.509102 0003 0035 28994 E: 1300099314.509113 0003 0036 15647 E: 1300099314.509122 0003 0000 29003 E: 1300099314.509124 0003 0001 15647 E: 1300099314.509126 0000 0000 0 E: 1300099314.515090 0003 0035 28928 E: 1300099314.515096 0003 0036 15715 E: 1300099314.515105 0003 0000 28928 E: 1300099314.515107 0003 0001 15715 E: 1300099314.515109 0000 0000 0 E: 1300099314.520099 0003 0035 28914 E: 1300099314.520111 0003 0036 15749 E: 1300099314.520120 0003 0000 28924 E: 1300099314.520121 0003 0001 15749 E: 1300099314.520123 0000 0000 0 E: 1300099314.525092 0003 0035 28844 E: 1300099314.525101 0003 0036 15823 E: 1300099314.525107 0003 0030 1224 E: 1300099314.525115 0003 0000 28844 E: 1300099314.525117 0003 0001 15823 E: 1300099314.525119 0000 0000 0 E: 1300099314.530101 0003 0035 28788 E: 1300099314.530114 0003 0036 15897 E: 1300099314.530117 0003 0030 1191 E: 1300099314.530124 0003 0000 28788 E: 1300099314.530126 0003 0001 15897 E: 1300099314.530128 0000 0000 0 E: 1300099314.535101 0003 0035 28728 E: 1300099314.535112 0003 0036 15971 E: 1300099314.535121 0003 0000 28728 E: 1300099314.535123 0003 0001 15971 E: 1300099314.535124 0000 0000 0 E: 1300099314.540099 0003 0035 28674 E: 1300099314.540110 0003 0036 16037 E: 1300099314.540113 0003 0030 1323 E: 1300099314.540120 0003 0000 28674 E: 1300099314.540122 0003 0001 16037 E: 1300099314.540123 0000 0000 0 E: 1300099314.545092 0003 0035 28620 E: 1300099314.545097 0003 0036 16111 E: 1300099314.545100 0003 0030 1356 E: 1300099314.545107 0003 0000 28620 E: 1300099314.545109 0003 0001 16111 E: 1300099314.545111 0000 0000 0 E: 1300099314.550100 0003 0035 28564 E: 1300099314.550111 0003 0036 16181 E: 1300099314.550120 0003 0000 28564 E: 1300099314.550122 0003 0001 16181 E: 1300099314.550124 0000 0000 0 E: 1300099314.555098 0003 0035 28508 E: 1300099314.555103 0003 0036 16247 E: 1300099314.555113 0003 0000 28508 E: 1300099314.555114 0003 0001 16247 E: 1300099314.555116 0000 0000 0 E: 1300099314.560090 0003 0035 28452 E: 1300099314.560096 0003 0036 16315 E: 1300099314.560105 0003 0000 28452 E: 1300099314.560107 0003 0001 16315 E: 1300099314.560109 0000 0000 0 E: 1300099314.565100 0003 0035 28438 E: 1300099314.565112 0003 0036 16345 E: 1300099314.565121 0003 0000 28448 E: 1300099314.565122 0003 0001 16345 E: 1300099314.565124 0000 0000 0 E: 1300099314.570099 0003 0035 28358 E: 1300099314.570111 0003 0036 16415 E: 1300099314.570120 0003 0000 28358 E: 1300099314.570122 0003 0001 16415 E: 1300099314.570123 0000 0000 0 E: 1300099314.576089 0003 0035 28296 E: 1300099314.576095 0003 0036 16485 E: 1300099314.576105 0003 0000 28296 E: 1300099314.576106 0003 0001 16485 E: 1300099314.576108 0000 0000 0 E: 1300099314.581100 0003 0035 28238 E: 1300099314.581113 0003 0036 16555 E: 1300099314.581116 0003 0030 1224 E: 1300099314.581123 0003 0000 28238 E: 1300099314.581125 0003 0001 16555 E: 1300099314.581127 0000 0000 0 E: 1300099314.586099 0003 0035 28224 E: 1300099314.586111 0003 0036 16589 E: 1300099314.586114 0003 0030 1191 E: 1300099314.586121 0003 0000 28234 E: 1300099314.586122 0003 0001 16589 E: 1300099314.586124 0000 0000 0 E: 1300099314.591098 0003 0035 28148 E: 1300099314.591110 0003 0036 16657 E: 1300099314.591119 0003 0000 28148 E: 1300099314.591120 0003 0001 16657 E: 1300099314.591122 0000 0000 0 E: 1300099314.596099 0003 0035 28084 E: 1300099314.596111 0003 0036 16731 E: 1300099314.596120 0003 0000 28084 E: 1300099314.596121 0003 0001 16731 E: 1300099314.596123 0000 0000 0 E: 1300099314.601100 0003 0035 28016 E: 1300099314.601112 0003 0036 16799 E: 1300099314.601115 0003 0030 1323 E: 1300099314.601122 0003 0000 28016 E: 1300099314.601123 0003 0001 16799 E: 1300099314.601125 0000 0000 0 E: 1300099314.606098 0003 0035 27948 E: 1300099314.606109 0003 0036 16867 E: 1300099314.606112 0003 0030 1356 E: 1300099314.606119 0003 0000 27948 E: 1300099314.606121 0003 0001 16867 E: 1300099314.606122 0000 0000 0 E: 1300099314.611099 0003 0035 27882 E: 1300099314.611110 0003 0036 16927 E: 1300099314.611120 0003 0000 27882 E: 1300099314.611121 0003 0001 16927 E: 1300099314.611123 0000 0000 0 E: 1300099314.616099 0003 0035 27812 E: 1300099314.616111 0003 0036 16989 E: 1300099314.616120 0003 0000 27812 E: 1300099314.616121 0003 0001 16989 E: 1300099314.616123 0000 0000 0 E: 1300099314.621100 0003 0035 27742 E: 1300099314.621112 0003 0036 17053 E: 1300099314.621121 0003 0000 27742 E: 1300099314.621122 0003 0001 17053 E: 1300099314.621124 0000 0000 0 E: 1300099314.626089 0003 0035 27674 E: 1300099314.626099 0003 0036 17111 E: 1300099314.626109 0003 0000 27674 E: 1300099314.626110 0003 0001 17111 E: 1300099314.626120 0000 0000 0 E: 1300099314.632102 0003 0035 27604 E: 1300099314.632118 0003 0036 17171 E: 1300099314.632128 0003 0000 27604 E: 1300099314.632129 0003 0001 17171 E: 1300099314.632131 0000 0000 0 E: 1300099314.637098 0003 0035 27536 E: 1300099314.637111 0003 0036 17229 E: 1300099314.637120 0003 0000 27536 E: 1300099314.637121 0003 0001 17229 E: 1300099314.637123 0000 0000 0 E: 1300099314.642091 0003 0035 27468 E: 1300099314.642098 0003 0036 17289 E: 1300099314.642107 0003 0000 27468 E: 1300099314.642109 0003 0001 17289 E: 1300099314.642111 0000 0000 0 E: 1300099314.647098 0003 0035 27400 E: 1300099314.647109 0003 0036 17353 E: 1300099314.647112 0003 0030 1224 E: 1300099314.647119 0003 0000 27400 E: 1300099314.647121 0003 0001 17353 E: 1300099314.647123 0000 0000 0 E: 1300099314.652085 0003 0035 27332 E: 1300099314.652095 0003 0036 17415 E: 1300099314.652098 0003 0030 1191 E: 1300099314.652105 0003 0000 27332 E: 1300099314.652108 0003 0001 17415 E: 1300099314.652110 0000 0000 0 E: 1300099314.657099 0003 0035 27262 E: 1300099314.657113 0003 0036 17477 E: 1300099314.657122 0003 0000 27262 E: 1300099314.657123 0003 0001 17477 E: 1300099314.657125 0000 0000 0 E: 1300099314.662099 0003 0035 27190 E: 1300099314.662111 0003 0036 17543 E: 1300099314.662114 0003 0030 1323 E: 1300099314.662120 0003 0000 27190 E: 1300099314.662122 0003 0001 17543 E: 1300099314.662124 0000 0000 0 E: 1300099314.667098 0003 0035 27114 E: 1300099314.667109 0003 0036 17609 E: 1300099314.667112 0003 0030 1356 E: 1300099314.667119 0003 0000 27114 E: 1300099314.667121 0003 0001 17609 E: 1300099314.667123 0000 0000 0 E: 1300099314.672097 0003 0035 27038 E: 1300099314.672108 0003 0036 17675 E: 1300099314.672117 0003 0000 27038 E: 1300099314.672119 0003 0001 17675 E: 1300099314.672121 0000 0000 0 E: 1300099314.677100 0003 0035 26960 E: 1300099314.677111 0003 0036 17733 E: 1300099314.677121 0003 0000 26960 E: 1300099314.677122 0003 0001 17733 E: 1300099314.677124 0000 0000 0 E: 1300099314.682099 0003 0035 26882 E: 1300099314.682111 0003 0036 17797 E: 1300099314.682120 0003 0000 26882 E: 1300099314.682122 0003 0001 17797 E: 1300099314.682124 0000 0000 0 E: 1300099314.688099 0003 0035 26806 E: 1300099314.688110 0003 0036 17859 E: 1300099314.688120 0003 0000 26806 E: 1300099314.688121 0003 0001 17859 E: 1300099314.688123 0000 0000 0 E: 1300099314.693089 0003 0035 26730 E: 1300099314.693097 0003 0036 17911 E: 1300099314.693110 0003 0000 26730 E: 1300099314.693112 0003 0001 17911 E: 1300099314.693114 0000 0000 0 E: 1300099314.698098 0003 0035 26652 E: 1300099314.698112 0003 0036 17965 E: 1300099314.698121 0003 0000 26652 E: 1300099314.698123 0003 0001 17965 E: 1300099314.698125 0000 0000 0 E: 1300099314.703096 0003 0035 26574 E: 1300099314.703107 0003 0036 18019 E: 1300099314.703116 0003 0000 26574 E: 1300099314.703118 0003 0001 18019 E: 1300099314.703119 0000 0000 0 E: 1300099314.708087 0003 0035 26496 E: 1300099314.708099 0003 0036 18085 E: 1300099314.708102 0003 0030 1224 E: 1300099314.708109 0003 0000 26496 E: 1300099314.708111 0003 0001 18085 E: 1300099314.708112 0000 0000 0 E: 1300099314.713098 0003 0035 26422 E: 1300099314.713109 0003 0036 18147 E: 1300099314.713112 0003 0030 1191 E: 1300099314.713119 0003 0000 26422 E: 1300099314.713121 0003 0001 18147 E: 1300099314.713123 0000 0000 0 E: 1300099314.718098 0003 0035 26342 E: 1300099314.718109 0003 0036 18207 E: 1300099314.718118 0003 0000 26342 E: 1300099314.718120 0003 0001 18207 E: 1300099314.718122 0000 0000 0 E: 1300099314.723094 0003 0035 26262 E: 1300099314.723105 0003 0036 18269 E: 1300099314.723108 0003 0030 1323 E: 1300099314.723115 0003 0000 26262 E: 1300099314.723117 0003 0001 18269 E: 1300099314.723118 0000 0000 0 E: 1300099314.728100 0003 0035 26184 E: 1300099314.728112 0003 0036 18331 E: 1300099314.728115 0003 0030 1356 E: 1300099314.728122 0003 0000 26184 E: 1300099314.728124 0003 0001 18331 E: 1300099314.728126 0000 0000 0 E: 1300099314.733096 0003 0035 26102 E: 1300099314.733108 0003 0036 18391 E: 1300099314.733117 0003 0000 26102 E: 1300099314.733118 0003 0001 18391 E: 1300099314.733120 0000 0000 0 E: 1300099314.738097 0003 0035 26024 E: 1300099314.738108 0003 0036 18451 E: 1300099314.738117 0003 0000 26024 E: 1300099314.738119 0003 0001 18451 E: 1300099314.738121 0000 0000 0 E: 1300099314.743086 0003 0035 25940 E: 1300099314.743096 0003 0036 18513 E: 1300099314.743106 0003 0000 25940 E: 1300099314.743108 0003 0001 18513 E: 1300099314.743109 0000 0000 0 E: 1300099314.749099 0003 0035 25856 E: 1300099314.749118 0003 0036 18571 E: 1300099314.749128 0003 0000 25856 E: 1300099314.749129 0003 0001 18571 E: 1300099314.749131 0000 0000 0 E: 1300099314.754084 0003 0035 25770 E: 1300099314.754095 0003 0036 18633 E: 1300099314.754104 0003 0000 25770 E: 1300099314.754106 0003 0001 18633 E: 1300099314.754108 0000 0000 0 E: 1300099314.759098 0003 0035 25688 E: 1300099314.759112 0003 0036 18695 E: 1300099314.759121 0003 0000 25688 E: 1300099314.759123 0003 0001 18695 E: 1300099314.759124 0000 0000 0 E: 1300099314.764082 0003 0035 25600 E: 1300099314.764093 0003 0036 18747 E: 1300099314.764103 0003 0000 25600 E: 1300099314.764104 0003 0001 18747 E: 1300099314.764106 0000 0000 0 E: 1300099314.769096 0003 0035 25516 E: 1300099314.769107 0003 0036 18807 E: 1300099314.769116 0003 0000 25516 E: 1300099314.769118 0003 0001 18807 E: 1300099314.769119 0000 0000 0 E: 1300099314.774083 0003 0035 25426 E: 1300099314.774094 0003 0036 18865 E: 1300099314.774097 0003 0030 1224 E: 1300099314.774104 0003 0000 25426 E: 1300099314.774105 0003 0001 18865 E: 1300099314.774107 0000 0000 0 E: 1300099314.779086 0003 0035 25338 E: 1300099314.779096 0003 0036 18925 E: 1300099314.779099 0003 0030 1191 E: 1300099314.779107 0003 0000 25338 E: 1300099314.779108 0003 0001 18925 E: 1300099314.779110 0000 0000 0 E: 1300099314.784083 0003 0035 25252 E: 1300099314.784096 0003 0036 18979 E: 1300099314.784105 0003 0000 25252 E: 1300099314.784107 0003 0001 18979 E: 1300099314.784109 0000 0000 0 E: 1300099314.789096 0003 0035 25166 E: 1300099314.789107 0003 0036 19045 E: 1300099314.789110 0003 0030 1323 E: 1300099314.789117 0003 0000 25166 E: 1300099314.789119 0003 0001 19045 E: 1300099314.789121 0000 0000 0 E: 1300099314.794085 0003 0035 25076 E: 1300099314.794096 0003 0036 19103 E: 1300099314.794099 0003 0030 1356 E: 1300099314.794106 0003 0000 25076 E: 1300099314.794107 0003 0001 19103 E: 1300099314.794109 0000 0000 0 E: 1300099314.799094 0003 0035 24990 E: 1300099314.799105 0003 0036 19165 E: 1300099314.799114 0003 0000 24990 E: 1300099314.799116 0003 0001 19165 E: 1300099314.799118 0000 0000 0 E: 1300099314.805096 0003 0035 24902 E: 1300099314.805107 0003 0036 19225 E: 1300099314.805117 0003 0000 24902 E: 1300099314.805118 0003 0001 19225 E: 1300099314.805120 0000 0000 0 E: 1300099314.810096 0003 0035 24812 E: 1300099314.810108 0003 0036 19283 E: 1300099314.810117 0003 0000 24812 E: 1300099314.810119 0003 0001 19283 E: 1300099314.810120 0000 0000 0 E: 1300099314.815100 0003 0035 24724 E: 1300099314.815112 0003 0036 19343 E: 1300099314.815121 0003 0000 24724 E: 1300099314.815123 0003 0001 19343 E: 1300099314.815125 0000 0000 0 E: 1300099314.820092 0003 0035 24632 E: 1300099314.820103 0003 0036 19397 E: 1300099314.820112 0003 0000 24632 E: 1300099314.820114 0003 0001 19397 E: 1300099314.820116 0000 0000 0 E: 1300099314.825098 0003 0035 24542 E: 1300099314.825111 0003 0036 19449 E: 1300099314.825120 0003 0000 24542 E: 1300099314.825122 0003 0001 19449 E: 1300099314.825123 0000 0000 0 E: 1300099314.830093 0003 0035 24450 E: 1300099314.830104 0003 0036 19505 E: 1300099314.830113 0003 0000 24450 E: 1300099314.830115 0003 0001 19505 E: 1300099314.830116 0000 0000 0 E: 1300099314.835096 0003 0035 24360 E: 1300099314.835107 0003 0036 19561 E: 1300099314.835110 0003 0030 1224 E: 1300099314.835117 0003 0000 24360 E: 1300099314.835119 0003 0001 19561 E: 1300099314.835120 0000 0000 0 E: 1300099314.840092 0003 0035 24268 E: 1300099314.840103 0003 0036 19615 E: 1300099314.840106 0003 0030 1191 E: 1300099314.840113 0003 0000 24268 E: 1300099314.840115 0003 0001 19615 E: 1300099314.840116 0000 0000 0 E: 1300099314.845096 0003 0035 24176 E: 1300099314.845107 0003 0036 19675 E: 1300099314.845116 0003 0000 24176 E: 1300099314.845118 0003 0001 19675 E: 1300099314.845119 0000 0000 0 E: 1300099314.850094 0003 0035 24082 E: 1300099314.850105 0003 0036 19731 E: 1300099314.850114 0003 0000 24082 E: 1300099314.850115 0003 0001 19731 E: 1300099314.850117 0000 0000 0 E: 1300099314.855095 0003 0035 23990 E: 1300099314.855106 0003 0036 19787 E: 1300099314.855109 0003 0030 1323 E: 1300099314.855116 0003 0000 23990 E: 1300099314.855117 0003 0001 19787 E: 1300099314.855119 0000 0000 0 E: 1300099314.860096 0003 0035 23894 E: 1300099314.860107 0003 0036 19841 E: 1300099314.860110 0003 0030 1356 E: 1300099314.860117 0003 0000 23894 E: 1300099314.860118 0003 0001 19841 E: 1300099314.860120 0000 0000 0 E: 1300099314.866095 0003 0035 23800 E: 1300099314.866106 0003 0036 19897 E: 1300099314.866115 0003 0000 23800 E: 1300099314.866117 0003 0001 19897 E: 1300099314.866119 0000 0000 0 E: 1300099314.871093 0003 0035 23702 E: 1300099314.871105 0003 0036 19951 E: 1300099314.871114 0003 0000 23702 E: 1300099314.871116 0003 0001 19951 E: 1300099314.871117 0000 0000 0 E: 1300099314.876085 0003 0035 23604 E: 1300099314.876095 0003 0036 20007 E: 1300099314.876105 0003 0000 23604 E: 1300099314.876106 0003 0001 20007 E: 1300099314.876108 0000 0000 0 E: 1300099314.881092 0003 0035 23502 E: 1300099314.881105 0003 0036 20071 E: 1300099314.881115 0003 0000 23502 E: 1300099314.881116 0003 0001 20071 E: 1300099314.881118 0000 0000 0 E: 1300099314.886094 0003 0035 23400 E: 1300099314.886105 0003 0036 20121 E: 1300099314.886114 0003 0000 23400 E: 1300099314.886116 0003 0001 20121 E: 1300099314.886118 0000 0000 0 E: 1300099314.891093 0003 0035 23300 E: 1300099314.891104 0003 0036 20169 E: 1300099314.891113 0003 0000 23300 E: 1300099314.891115 0003 0001 20169 E: 1300099314.891116 0000 0000 0 E: 1300099314.896092 0003 0035 23196 E: 1300099314.896097 0003 0036 20217 E: 1300099314.896107 0003 0000 23196 E: 1300099314.896109 0003 0001 20217 E: 1300099314.896111 0000 0000 0 E: 1300099314.901091 0003 0035 23096 E: 1300099314.901102 0003 0036 20269 E: 1300099314.901111 0003 0000 23096 E: 1300099314.901113 0003 0001 20269 E: 1300099314.901115 0000 0000 0 E: 1300099314.906086 0003 0035 22996 E: 1300099314.906092 0003 0036 20321 E: 1300099314.906095 0003 0030 1224 E: 1300099314.906103 0003 0000 22996 E: 1300099314.906105 0003 0001 20321 E: 1300099314.906106 0000 0000 0 E: 1300099314.911095 0003 0035 22896 E: 1300099314.911106 0003 0036 20373 E: 1300099314.911109 0003 0030 1191 E: 1300099314.911116 0003 0000 22896 E: 1300099314.911117 0003 0001 20373 E: 1300099314.911119 0000 0000 0 E: 1300099314.916079 0003 0035 22792 E: 1300099314.916089 0003 0036 20425 E: 1300099314.916101 0003 0000 22792 E: 1300099314.916103 0003 0001 20425 E: 1300099314.916105 0000 0000 0 E: 1300099314.922093 0003 0035 22688 E: 1300099314.922107 0003 0036 20479 E: 1300099314.922116 0003 0000 22688 E: 1300099314.922117 0003 0001 20479 E: 1300099314.922119 0000 0000 0 E: 1300099314.927084 0003 0035 22588 E: 1300099314.927090 0003 0036 20533 E: 1300099314.927099 0003 0000 22588 E: 1300099314.927101 0003 0001 20533 E: 1300099314.927103 0000 0000 0 E: 1300099314.932094 0003 0035 22480 E: 1300099314.932105 0003 0036 20587 E: 1300099314.932108 0003 0030 1323 E: 1300099314.932115 0003 0000 22480 E: 1300099314.932117 0003 0001 20587 E: 1300099314.932119 0000 0000 0 E: 1300099314.937093 0003 0035 22368 E: 1300099314.937104 0003 0036 20639 E: 1300099314.937107 0003 0030 1356 E: 1300099314.937114 0003 0000 22368 E: 1300099314.937116 0003 0001 20639 E: 1300099314.937117 0000 0000 0 E: 1300099314.942094 0003 0035 22258 E: 1300099314.942106 0003 0036 20689 E: 1300099314.942115 0003 0000 22258 E: 1300099314.942117 0003 0001 20689 E: 1300099314.942118 0000 0000 0 E: 1300099314.947092 0003 0035 22148 E: 1300099314.947103 0003 0036 20737 E: 1300099314.947113 0003 0000 22148 E: 1300099314.947114 0003 0001 20737 E: 1300099314.947116 0000 0000 0 E: 1300099314.952094 0003 0035 22042 E: 1300099314.952106 0003 0036 20779 E: 1300099314.952115 0003 0000 22042 E: 1300099314.952117 0003 0001 20779 E: 1300099314.952118 0000 0000 0 E: 1300099314.957091 0003 0035 21936 E: 1300099314.957103 0003 0036 20823 E: 1300099314.957112 0003 0000 21936 E: 1300099314.957113 0003 0001 20823 E: 1300099314.957115 0000 0000 0 E: 1300099314.962092 0003 0035 21832 E: 1300099314.962103 0003 0036 20865 E: 1300099314.962113 0003 0000 21832 E: 1300099314.962114 0003 0001 20865 E: 1300099314.962116 0000 0000 0 E: 1300099314.967095 0003 0035 21730 E: 1300099314.967108 0003 0036 20907 E: 1300099314.967117 0003 0000 21730 E: 1300099314.967119 0003 0001 20907 E: 1300099314.967120 0000 0000 0 E: 1300099314.972083 0003 0035 21624 E: 1300099314.972094 0003 0036 20951 E: 1300099314.972103 0003 0000 21624 E: 1300099314.972105 0003 0001 20951 E: 1300099314.972107 0000 0000 0 E: 1300099314.977091 0003 0035 21512 E: 1300099314.977102 0003 0036 20993 E: 1300099314.977111 0003 0000 21512 E: 1300099314.977113 0003 0001 20993 E: 1300099314.977114 0000 0000 0 E: 1300099314.983094 0003 0035 21410 E: 1300099314.983105 0003 0036 21041 E: 1300099314.983108 0003 0030 1224 E: 1300099314.983115 0003 0000 21410 E: 1300099314.983117 0003 0001 21041 E: 1300099314.983119 0000 0000 0 E: 1300099314.988091 0003 0035 21290 E: 1300099314.988102 0003 0036 21087 E: 1300099314.988105 0003 0030 1191 E: 1300099314.988112 0003 0000 21290 E: 1300099314.988113 0003 0001 21087 E: 1300099314.988115 0000 0000 0 E: 1300099314.993088 0003 0035 21198 E: 1300099314.993097 0003 0036 21133 E: 1300099314.993099 0003 0034 1 E: 1300099314.993102 0003 0031 948 E: 1300099314.993109 0003 0000 21198 E: 1300099314.993111 0003 0001 21133 E: 1300099314.993119 0000 0000 0 E: 1300099314.998093 0003 0035 21072 E: 1300099314.998111 0003 0036 21175 E: 1300099314.998113 0003 0034 0 E: 1300099314.998121 0003 0000 21072 E: 1300099314.998123 0003 0001 21175 E: 1300099314.998125 0000 0000 0 E: 1300099315.003093 0003 0035 20950 E: 1300099315.003109 0003 0036 21211 E: 1300099315.003118 0003 0000 20950 E: 1300099315.003121 0003 0001 21211 E: 1300099315.003124 0000 0000 0 E: 1300099315.008093 0003 0035 20840 E: 1300099315.008106 0003 0036 21255 E: 1300099315.008115 0003 0000 20840 E: 1300099315.008117 0003 0001 21255 E: 1300099315.008118 0000 0000 0 E: 1300099315.013090 0003 0035 20736 E: 1300099315.013101 0003 0036 21297 E: 1300099315.013110 0003 0000 20736 E: 1300099315.013112 0003 0001 21297 E: 1300099315.013114 0000 0000 0 E: 1300099315.018091 0003 0035 20630 E: 1300099315.018102 0003 0036 21347 E: 1300099315.018105 0003 0030 1323 E: 1300099315.018107 0003 0031 993 E: 1300099315.018113 0003 0000 20630 E: 1300099315.018114 0003 0001 21347 E: 1300099315.018116 0000 0000 0 E: 1300099315.023080 0003 0035 20362 E: 1300099315.023086 0003 0036 21431 E: 1300099315.023089 0003 0030 1356 E: 1300099315.023090 0003 0031 835 E: 1300099315.023097 0003 0000 20362 E: 1300099315.023098 0003 0001 21431 E: 1300099315.023100 0000 0000 0 E: 1300099315.028091 0003 0035 20272 E: 1300099315.028103 0003 0036 21467 E: 1300099315.028107 0003 0031 795 E: 1300099315.028112 0003 0000 20272 E: 1300099315.028114 0003 0001 21467 E: 1300099315.028116 0000 0000 0 E: 1300099315.033088 0003 0035 20176 E: 1300099315.033100 0003 0036 21503 E: 1300099315.033109 0003 0000 20176 E: 1300099315.033110 0003 0001 21503 E: 1300099315.033112 0000 0000 0 E: 1300099315.039093 0003 0035 20066 E: 1300099315.039105 0003 0036 21539 E: 1300099315.039115 0003 0000 20066 E: 1300099315.039116 0003 0001 21539 E: 1300099315.039118 0000 0000 0 E: 1300099315.044080 0003 0035 19962 E: 1300099315.044091 0003 0036 21575 E: 1300099315.044100 0003 0000 19962 E: 1300099315.044102 0003 0001 21575 E: 1300099315.044104 0000 0000 0 E: 1300099315.049091 0003 0035 19856 E: 1300099315.049103 0003 0036 21611 E: 1300099315.049112 0003 0000 19856 E: 1300099315.049113 0003 0001 21611 E: 1300099315.049115 0000 0000 0 E: 1300099315.054092 0003 0035 19748 E: 1300099315.054104 0003 0036 21647 E: 1300099315.054113 0003 0000 19748 E: 1300099315.054115 0003 0001 21647 E: 1300099315.054116 0000 0000 0 E: 1300099315.059092 0003 0035 19642 E: 1300099315.059103 0003 0036 21679 E: 1300099315.059113 0003 0000 19642 E: 1300099315.059114 0003 0001 21679 E: 1300099315.059116 0000 0000 0 E: 1300099315.064079 0003 0035 19534 E: 1300099315.064090 0003 0036 21713 E: 1300099315.064099 0003 0000 19534 E: 1300099315.064101 0003 0001 21713 E: 1300099315.064103 0000 0000 0 E: 1300099315.069092 0003 0035 19426 E: 1300099315.069104 0003 0036 21745 E: 1300099315.069113 0003 0000 19426 E: 1300099315.069114 0003 0001 21745 E: 1300099315.069116 0000 0000 0 E: 1300099315.074079 0003 0035 19316 E: 1300099315.074090 0003 0036 21777 E: 1300099315.074099 0003 0000 19316 E: 1300099315.074100 0003 0001 21777 E: 1300099315.074102 0000 0000 0 E: 1300099315.079090 0003 0035 19206 E: 1300099315.079101 0003 0036 21809 E: 1300099315.079110 0003 0000 19206 E: 1300099315.079112 0003 0001 21809 E: 1300099315.079114 0000 0000 0 E: 1300099315.084078 0003 0035 19096 E: 1300099315.084089 0003 0036 21847 E: 1300099315.084092 0003 0030 1224 E: 1300099315.084099 0003 0000 19096 E: 1300099315.084101 0003 0001 21847 E: 1300099315.084102 0000 0000 0 E: 1300099315.089090 0003 0035 18984 E: 1300099315.089102 0003 0036 21881 E: 1300099315.089105 0003 0030 1191 E: 1300099315.089112 0003 0000 18984 E: 1300099315.089113 0003 0001 21881 E: 1300099315.089115 0000 0000 0 E: 1300099315.095096 0003 0035 18872 E: 1300099315.095108 0003 0036 21913 E: 1300099315.095117 0003 0000 18872 E: 1300099315.095119 0003 0001 21913 E: 1300099315.095121 0000 0000 0 E: 1300099315.100090 0003 0035 18756 E: 1300099315.100101 0003 0036 21945 E: 1300099315.100110 0003 0000 18756 E: 1300099315.100112 0003 0001 21945 E: 1300099315.100114 0000 0000 0 E: 1300099315.105089 0003 0035 18638 E: 1300099315.105100 0003 0036 21983 E: 1300099315.105109 0003 0000 18638 E: 1300099315.105110 0003 0001 21983 E: 1300099315.105112 0000 0000 0 E: 1300099315.110089 0003 0035 18526 E: 1300099315.110100 0003 0036 22015 E: 1300099315.110110 0003 0000 18526 E: 1300099315.110111 0003 0001 22015 E: 1300099315.110113 0000 0000 0 E: 1300099315.115089 0003 0035 18412 E: 1300099315.115101 0003 0036 22049 E: 1300099315.115110 0003 0000 18412 E: 1300099315.115112 0003 0001 22049 E: 1300099315.115113 0000 0000 0 E: 1300099315.120091 0003 0035 18294 E: 1300099315.120102 0003 0036 22083 E: 1300099315.120111 0003 0000 18294 E: 1300099315.120113 0003 0001 22083 E: 1300099315.120114 0000 0000 0 E: 1300099315.125082 0003 0035 18182 E: 1300099315.125088 0003 0036 22115 E: 1300099315.125097 0003 0000 18182 E: 1300099315.125099 0003 0001 22115 E: 1300099315.125101 0000 0000 0 E: 1300099315.130090 0003 0035 18072 E: 1300099315.130101 0003 0036 22153 E: 1300099315.130104 0003 0030 1323 E: 1300099315.130111 0003 0000 18072 E: 1300099315.130113 0003 0001 22153 E: 1300099315.130115 0000 0000 0 E: 1300099315.135089 0003 0035 17966 E: 1300099315.135100 0003 0036 22187 E: 1300099315.135103 0003 0030 1356 E: 1300099315.135110 0003 0000 17966 E: 1300099315.135111 0003 0001 22187 E: 1300099315.135113 0000 0000 0 E: 1300099315.140090 0003 0035 17854 E: 1300099315.140102 0003 0036 22219 E: 1300099315.140111 0003 0000 17854 E: 1300099315.140113 0003 0001 22219 E: 1300099315.140115 0000 0000 0 E: 1300099315.145090 0003 0035 17748 E: 1300099315.145101 0003 0036 22251 E: 1300099315.145110 0003 0000 17748 E: 1300099315.145112 0003 0001 22251 E: 1300099315.145113 0000 0000 0 E: 1300099315.150081 0003 0035 17472 E: 1300099315.150087 0003 0036 22329 E: 1300099315.150091 0003 0031 962 E: 1300099315.150098 0003 0000 17472 E: 1300099315.150099 0003 0001 22329 E: 1300099315.150101 0000 0000 0 E: 1300099315.156088 0003 0035 17352 E: 1300099315.156099 0003 0036 22341 E: 1300099315.156109 0003 0000 17352 E: 1300099315.156110 0003 0001 22332 E: 1300099315.156112 0000 0000 0 E: 1300099315.161079 0003 0035 17240 E: 1300099315.161088 0003 0036 22375 E: 1300099315.161098 0003 0000 17240 E: 1300099315.161100 0003 0001 22375 E: 1300099315.161102 0000 0000 0 E: 1300099315.166089 0003 0035 17132 E: 1300099315.166102 0003 0036 22407 E: 1300099315.166111 0003 0000 17132 E: 1300099315.166113 0003 0001 22407 E: 1300099315.166115 0000 0000 0 E: 1300099315.171077 0003 0035 17030 E: 1300099315.171085 0003 0036 22441 E: 1300099315.171092 0003 0031 1004 E: 1300099315.171099 0003 0000 17030 E: 1300099315.171101 0003 0001 22441 E: 1300099315.171103 0000 0000 0 E: 1300099315.176090 0003 0035 16768 E: 1300099315.176104 0003 0036 22485 E: 1300099315.176114 0003 0000 16768 E: 1300099315.176115 0003 0001 22485 E: 1300099315.176117 0000 0000 0 E: 1300099315.181080 0003 0035 16662 E: 1300099315.181090 0003 0036 22498 E: 1300099315.181097 0003 0031 841 E: 1300099315.181104 0003 0000 16662 E: 1300099315.181105 0003 0001 22488 E: 1300099315.181107 0000 0000 0 E: 1300099315.186088 0003 0035 16574 E: 1300099315.186101 0003 0036 22539 E: 1300099315.186105 0003 0031 800 E: 1300099315.186111 0003 0000 16574 E: 1300099315.186113 0003 0001 22539 E: 1300099315.186115 0000 0000 0 E: 1300099315.191088 0003 0035 16482 E: 1300099315.191099 0003 0036 22552 E: 1300099315.191109 0003 0000 16482 E: 1300099315.191110 0003 0001 22542 E: 1300099315.191112 0000 0000 0 E: 1300099315.196090 0003 0035 16384 E: 1300099315.196101 0003 0036 22591 E: 1300099315.196110 0003 0000 16384 E: 1300099315.196112 0003 0001 22591 E: 1300099315.196114 0000 0000 0 E: 1300099315.201086 0003 0035 16280 E: 1300099315.201097 0003 0036 22623 E: 1300099315.201100 0003 0030 1224 E: 1300099315.201106 0003 0000 16280 E: 1300099315.201108 0003 0001 22623 E: 1300099315.201110 0000 0000 0 E: 1300099315.206088 0003 0035 16176 E: 1300099315.206100 0003 0036 22637 E: 1300099315.206103 0003 0030 1282 E: 1300099315.206110 0003 0000 16176 E: 1300099315.206111 0003 0001 22626 E: 1300099315.206113 0000 0000 0 E: 1300099315.212093 0003 0035 16060 E: 1300099315.212105 0003 0036 22683 E: 1300099315.212108 0003 0030 1234 E: 1300099315.212115 0003 0000 16060 E: 1300099315.212116 0003 0001 22683 E: 1300099315.212118 0000 0000 0 E: 1300099315.217088 0003 0035 15946 E: 1300099315.217099 0003 0036 22715 E: 1300099315.217102 0003 0030 1198 E: 1300099315.217109 0003 0000 15946 E: 1300099315.217110 0003 0001 22715 E: 1300099315.217112 0000 0000 0 E: 1300099315.222085 0003 0035 15836 E: 1300099315.222096 0003 0036 22747 E: 1300099315.222106 0003 0000 15836 E: 1300099315.222107 0003 0001 22747 E: 1300099315.222109 0000 0000 0 E: 1300099315.227088 0003 0035 15722 E: 1300099315.227100 0003 0036 22783 E: 1300099315.227109 0003 0000 15722 E: 1300099315.227110 0003 0001 22783 E: 1300099315.227112 0000 0000 0 E: 1300099315.232085 0003 0035 15604 E: 1300099315.232096 0003 0036 22821 E: 1300099315.232105 0003 0000 15604 E: 1300099315.232106 0003 0001 22821 E: 1300099315.232108 0000 0000 0 E: 1300099315.237088 0003 0035 15484 E: 1300099315.237099 0003 0036 22851 E: 1300099315.237102 0003 0030 1327 E: 1300099315.237109 0003 0000 15484 E: 1300099315.237111 0003 0001 22851 E: 1300099315.237112 0000 0000 0 E: 1300099315.242082 0003 0035 15368 E: 1300099315.242094 0003 0036 22887 E: 1300099315.242097 0003 0030 1359 E: 1300099315.242104 0003 0000 15368 E: 1300099315.242105 0003 0001 22887 E: 1300099315.242107 0000 0000 0 E: 1300099315.247088 0003 0035 15248 E: 1300099315.247099 0003 0036 22923 E: 1300099315.247108 0003 0000 15248 E: 1300099315.247110 0003 0001 22923 E: 1300099315.247112 0000 0000 0 E: 1300099315.252084 0003 0035 15124 E: 1300099315.252096 0003 0036 22961 E: 1300099315.252105 0003 0000 15124 E: 1300099315.252107 0003 0001 22961 E: 1300099315.252108 0000 0000 0 E: 1300099315.257089 0003 0035 15002 E: 1300099315.257101 0003 0036 22999 E: 1300099315.257110 0003 0000 15002 E: 1300099315.257111 0003 0001 22999 E: 1300099315.257113 0000 0000 0 E: 1300099315.262087 0003 0035 14880 E: 1300099315.262098 0003 0036 23035 E: 1300099315.262108 0003 0000 14880 E: 1300099315.262109 0003 0001 23035 E: 1300099315.262111 0000 0000 0 E: 1300099315.267088 0003 0035 14752 E: 1300099315.267100 0003 0036 23075 E: 1300099315.267109 0003 0000 14752 E: 1300099315.267111 0003 0001 23075 E: 1300099315.267112 0000 0000 0 E: 1300099315.273086 0003 0035 14628 E: 1300099315.273098 0003 0036 23111 E: 1300099315.273107 0003 0000 14628 E: 1300099315.273108 0003 0001 23111 E: 1300099315.273110 0000 0000 0 E: 1300099315.278087 0003 0035 14504 E: 1300099315.278099 0003 0036 23143 E: 1300099315.278108 0003 0000 14504 E: 1300099315.278109 0003 0001 23143 E: 1300099315.278111 0000 0000 0 E: 1300099315.283085 0003 0035 14376 E: 1300099315.283096 0003 0036 23179 E: 1300099315.283105 0003 0000 14376 E: 1300099315.283107 0003 0001 23179 E: 1300099315.283109 0000 0000 0 E: 1300099315.288079 0003 0035 14116 E: 1300099315.288085 0003 0036 23247 E: 1300099315.288094 0003 0000 14116 E: 1300099315.288096 0003 0001 23247 E: 1300099315.288098 0000 0000 0 E: 1300099315.293084 0003 0035 14004 E: 1300099315.293096 0003 0036 23279 E: 1300099315.293105 0003 0000 14004 E: 1300099315.293106 0003 0001 23279 E: 1300099315.293108 0000 0000 0 E: 1300099315.298077 0003 0035 13886 E: 1300099315.298087 0003 0036 23311 E: 1300099315.298097 0003 0000 13886 E: 1300099315.298099 0003 0001 23311 E: 1300099315.298101 0000 0000 0 E: 1300099315.303086 0003 0035 13764 E: 1300099315.303100 0003 0036 23349 E: 1300099315.303103 0003 0030 1225 E: 1300099315.303110 0003 0000 13764 E: 1300099315.303111 0003 0001 23349 E: 1300099315.303113 0000 0000 0 E: 1300099315.308079 0003 0035 13644 E: 1300099315.308094 0003 0036 23389 E: 1300099315.308097 0003 0030 1191 E: 1300099315.308107 0003 0000 13644 E: 1300099315.308108 0003 0001 23389 E: 1300099315.308110 0000 0000 0 E: 1300099315.313086 0003 0035 13522 E: 1300099315.313100 0003 0036 23427 E: 1300099315.313109 0003 0000 13522 E: 1300099315.313110 0003 0001 23427 E: 1300099315.313112 0000 0000 0 E: 1300099315.318085 0003 0035 13400 E: 1300099315.318097 0003 0036 23471 E: 1300099315.318106 0003 0000 13400 E: 1300099315.318107 0003 0001 23471 E: 1300099315.318109 0000 0000 0 E: 1300099315.323087 0003 0035 13276 E: 1300099315.323099 0003 0036 23513 E: 1300099315.323108 0003 0000 13276 E: 1300099315.323109 0003 0001 23513 E: 1300099315.323111 0000 0000 0 E: 1300099315.329089 0003 0035 13154 E: 1300099315.329102 0003 0036 23555 E: 1300099315.329105 0003 0030 1323 E: 1300099315.329112 0003 0000 13154 E: 1300099315.329113 0003 0001 23555 E: 1300099315.329115 0000 0000 0 E: 1300099315.334077 0003 0035 13028 E: 1300099315.334088 0003 0036 23597 E: 1300099315.334091 0003 0030 1356 E: 1300099315.334098 0003 0000 13028 E: 1300099315.334099 0003 0001 23597 E: 1300099315.334101 0000 0000 0 E: 1300099315.339083 0003 0035 12766 E: 1300099315.339094 0003 0036 23691 E: 1300099315.339103 0003 0000 12766 E: 1300099315.339105 0003 0001 23691 E: 1300099315.339106 0000 0000 0 E: 1300099315.344075 0003 0035 12654 E: 1300099315.344087 0003 0036 23729 E: 1300099315.344096 0003 0000 12654 E: 1300099315.344098 0003 0001 23729 E: 1300099315.344099 0000 0000 0 E: 1300099315.349084 0003 0035 12538 E: 1300099315.349095 0003 0036 23763 E: 1300099315.349104 0003 0000 12538 E: 1300099315.349106 0003 0001 23763 E: 1300099315.349108 0000 0000 0 E: 1300099315.354075 0003 0035 12418 E: 1300099315.354086 0003 0036 23801 E: 1300099315.354095 0003 0000 12418 E: 1300099315.354096 0003 0001 23801 E: 1300099315.354098 0000 0000 0 E: 1300099315.359079 0003 0035 12296 E: 1300099315.359091 0003 0036 23841 E: 1300099315.359100 0003 0000 12296 E: 1300099315.359102 0003 0001 23841 E: 1300099315.359103 0000 0000 0 E: 1300099315.364079 0003 0035 12172 E: 1300099315.364091 0003 0036 23879 E: 1300099315.364100 0003 0000 12172 E: 1300099315.364102 0003 0001 23879 E: 1300099315.364104 0000 0000 0 E: 1300099315.369082 0003 0035 12046 E: 1300099315.369093 0003 0036 23917 E: 1300099315.369102 0003 0000 12046 E: 1300099315.369104 0003 0001 23917 E: 1300099315.369106 0000 0000 0 E: 1300099315.374076 0003 0035 11920 E: 1300099315.374088 0003 0036 23953 E: 1300099315.374098 0003 0000 11920 E: 1300099315.374099 0003 0001 23953 E: 1300099315.374101 0000 0000 0 E: 1300099315.379084 0003 0035 11796 E: 1300099315.379098 0003 0036 23995 E: 1300099315.379107 0003 0000 11796 E: 1300099315.379108 0003 0001 23995 E: 1300099315.379110 0000 0000 0 E: 1300099315.385087 0003 0035 11668 E: 1300099315.385098 0003 0036 24031 E: 1300099315.385101 0003 0030 1224 E: 1300099315.385108 0003 0000 11668 E: 1300099315.385109 0003 0001 24031 E: 1300099315.385111 0000 0000 0 E: 1300099315.390082 0003 0035 11542 E: 1300099315.390093 0003 0036 24071 E: 1300099315.390096 0003 0030 1191 E: 1300099315.390103 0003 0000 11542 E: 1300099315.390104 0003 0001 24071 E: 1300099315.390106 0000 0000 0 E: 1300099315.395084 0003 0035 11414 E: 1300099315.395096 0003 0036 24115 E: 1300099315.395105 0003 0000 11414 E: 1300099315.395107 0003 0001 24115 E: 1300099315.395109 0000 0000 0 E: 1300099315.400082 0003 0035 11152 E: 1300099315.400093 0003 0036 24199 E: 1300099315.400102 0003 0000 11152 E: 1300099315.400104 0003 0001 24199 E: 1300099315.400106 0000 0000 0 E: 1300099315.405084 0003 0035 11034 E: 1300099315.405095 0003 0036 24239 E: 1300099315.405105 0003 0000 11034 E: 1300099315.405106 0003 0001 24239 E: 1300099315.405108 0000 0000 0 E: 1300099315.410082 0003 0035 10912 E: 1300099315.410093 0003 0036 24277 E: 1300099315.410103 0003 0000 10912 E: 1300099315.410104 0003 0001 24277 E: 1300099315.410106 0000 0000 0 E: 1300099315.415086 0003 0035 10790 E: 1300099315.415097 0003 0036 24317 E: 1300099315.415100 0003 0030 1323 E: 1300099315.415107 0003 0000 10790 E: 1300099315.415108 0003 0001 24317 E: 1300099315.415110 0000 0000 0 E: 1300099315.420082 0003 0035 10672 E: 1300099315.420093 0003 0036 24357 E: 1300099315.420096 0003 0030 1356 E: 1300099315.420103 0003 0000 10672 E: 1300099315.420104 0003 0001 24357 E: 1300099315.420106 0000 0000 0 E: 1300099315.425083 0003 0035 10550 E: 1300099315.425094 0003 0036 24395 E: 1300099315.425103 0003 0000 10550 E: 1300099315.425105 0003 0001 24395 E: 1300099315.425107 0000 0000 0 E: 1300099315.430081 0003 0035 10428 E: 1300099315.430092 0003 0036 24429 E: 1300099315.430101 0003 0000 10428 E: 1300099315.430102 0003 0001 24429 E: 1300099315.430104 0000 0000 0 E: 1300099315.435085 0003 0035 10308 E: 1300099315.435097 0003 0036 24469 E: 1300099315.435106 0003 0000 10308 E: 1300099315.435107 0003 0001 24469 E: 1300099315.435109 0000 0000 0 E: 1300099315.440080 0003 0035 10190 E: 1300099315.440091 0003 0036 24509 E: 1300099315.440101 0003 0000 10190 E: 1300099315.440102 0003 0001 24509 E: 1300099315.440104 0000 0000 0 E: 1300099315.446085 0003 0035 10070 E: 1300099315.446097 0003 0036 24555 E: 1300099315.446106 0003 0000 10070 E: 1300099315.446107 0003 0001 24555 E: 1300099315.446109 0000 0000 0 E: 1300099315.451081 0003 0035 9948 E: 1300099315.451093 0003 0036 24593 E: 1300099315.451102 0003 0000 9948 E: 1300099315.451103 0003 0001 24593 E: 1300099315.451105 0000 0000 0 E: 1300099315.456085 0003 0035 9828 E: 1300099315.456096 0003 0036 24633 E: 1300099315.456106 0003 0000 9828 E: 1300099315.456107 0003 0001 24633 E: 1300099315.456109 0000 0000 0 E: 1300099315.461081 0003 0035 9710 E: 1300099315.461092 0003 0036 24671 E: 1300099315.461102 0003 0000 9710 E: 1300099315.461103 0003 0001 24671 E: 1300099315.461105 0000 0000 0 E: 1300099315.466081 0003 0035 9590 E: 1300099315.466091 0003 0036 24721 E: 1300099315.466094 0003 0030 1224 E: 1300099315.466101 0003 0000 9590 E: 1300099315.466103 0003 0001 24721 E: 1300099315.466105 0000 0000 0 E: 1300099315.471082 0003 0035 9470 E: 1300099315.471093 0003 0036 24761 E: 1300099315.471096 0003 0030 1191 E: 1300099315.471103 0003 0000 9470 E: 1300099315.471105 0003 0001 24761 E: 1300099315.471106 0000 0000 0 E: 1300099315.476076 0003 0035 9354 E: 1300099315.476082 0003 0036 24801 E: 1300099315.476091 0003 0000 9354 E: 1300099315.476093 0003 0001 24801 E: 1300099315.476095 0000 0000 0 E: 1300099315.481083 0003 0035 9234 E: 1300099315.481095 0003 0036 24847 E: 1300099315.481104 0003 0000 9234 E: 1300099315.481106 0003 0001 24847 E: 1300099315.481108 0000 0000 0 E: 1300099315.486080 0003 0035 9120 E: 1300099315.486086 0003 0036 24885 E: 1300099315.486095 0003 0000 9120 E: 1300099315.486097 0003 0001 24885 E: 1300099315.486099 0000 0000 0 E: 1300099315.491074 0003 0035 9006 E: 1300099315.491080 0003 0036 24929 E: 1300099315.491089 0003 0000 9006 E: 1300099315.491091 0003 0001 24929 E: 1300099315.491093 0000 0000 0 E: 1300099315.496087 0003 0035 8892 E: 1300099315.496100 0003 0036 24971 E: 1300099315.496102 0003 0030 1323 E: 1300099315.496109 0003 0000 8892 E: 1300099315.496111 0003 0001 24971 E: 1300099315.496113 0000 0000 0 E: 1300099315.502082 0003 0035 8776 E: 1300099315.502096 0003 0036 25017 E: 1300099315.502099 0003 0030 1356 E: 1300099315.502105 0003 0000 8776 E: 1300099315.502107 0003 0001 25017 E: 1300099315.502109 0000 0000 0 E: 1300099315.507074 0003 0035 8664 E: 1300099315.507080 0003 0036 25063 E: 1300099315.507089 0003 0000 8664 E: 1300099315.507091 0003 0001 25063 E: 1300099315.507092 0000 0000 0 E: 1300099315.512082 0003 0035 8548 E: 1300099315.512095 0003 0036 25105 E: 1300099315.512104 0003 0000 8548 E: 1300099315.512106 0003 0001 25105 E: 1300099315.512108 0000 0000 0 E: 1300099315.517082 0003 0035 8436 E: 1300099315.517093 0003 0036 25149 E: 1300099315.517103 0003 0000 8436 E: 1300099315.517104 0003 0001 25149 E: 1300099315.517106 0000 0000 0 E: 1300099315.522082 0003 0035 8322 E: 1300099315.522094 0003 0036 25189 E: 1300099315.522103 0003 0000 8322 E: 1300099315.522104 0003 0001 25189 E: 1300099315.522106 0000 0000 0 E: 1300099315.527082 0003 0035 8212 E: 1300099315.527093 0003 0036 25231 E: 1300099315.527102 0003 0000 8212 E: 1300099315.527104 0003 0001 25231 E: 1300099315.527106 0000 0000 0 E: 1300099315.532084 0003 0035 8102 E: 1300099315.532095 0003 0036 25279 E: 1300099315.532104 0003 0000 8102 E: 1300099315.532106 0003 0001 25279 E: 1300099315.532107 0000 0000 0 E: 1300099315.537080 0003 0035 7994 E: 1300099315.537091 0003 0036 25319 E: 1300099315.537100 0003 0000 7994 E: 1300099315.537102 0003 0001 25319 E: 1300099315.537104 0000 0000 0 E: 1300099315.542075 0003 0035 7888 E: 1300099315.542084 0003 0036 25361 E: 1300099315.542097 0003 0000 7888 E: 1300099315.542099 0003 0001 25361 E: 1300099315.542101 0000 0000 0 E: 1300099315.547081 0003 0035 7778 E: 1300099315.547096 0003 0036 25403 E: 1300099315.547105 0003 0000 7778 E: 1300099315.547107 0003 0001 25403 E: 1300099315.547108 0000 0000 0 E: 1300099315.552073 0003 0035 7674 E: 1300099315.552083 0003 0036 25443 E: 1300099315.552086 0003 0030 1224 E: 1300099315.552094 0003 0000 7674 E: 1300099315.552095 0003 0001 25443 E: 1300099315.552097 0000 0000 0 E: 1300099315.557079 0003 0035 7568 E: 1300099315.557092 0003 0036 25479 E: 1300099315.557095 0003 0030 1191 E: 1300099315.557102 0003 0000 7568 E: 1300099315.557104 0003 0001 25479 E: 1300099315.557106 0000 0000 0 E: 1300099315.563072 0003 0035 7460 E: 1300099315.563081 0003 0036 25515 E: 1300099315.563094 0003 0000 7460 E: 1300099315.563096 0003 0001 25515 E: 1300099315.563098 0000 0000 0 E: 1300099315.568080 0003 0035 7354 E: 1300099315.568093 0003 0036 25557 E: 1300099315.568102 0003 0000 7354 E: 1300099315.568104 0003 0001 25557 E: 1300099315.568106 0000 0000 0 E: 1300099315.573068 0003 0035 7248 E: 1300099315.573076 0003 0036 25597 E: 1300099315.573086 0003 0000 7248 E: 1300099315.573088 0003 0001 25597 E: 1300099315.573089 0000 0000 0 E: 1300099315.578082 0003 0035 7144 E: 1300099315.578096 0003 0036 25639 E: 1300099315.578105 0003 0000 7144 E: 1300099315.578107 0003 0001 25639 E: 1300099315.578109 0000 0000 0 E: 1300099315.583085 0003 0035 7040 E: 1300099315.583097 0003 0036 25683 E: 1300099315.583107 0003 0000 7040 E: 1300099315.583108 0003 0001 25683 E: 1300099315.583110 0000 0000 0 E: 1300099315.588082 0003 0035 6938 E: 1300099315.588093 0003 0036 25731 E: 1300099315.588096 0003 0030 1323 E: 1300099315.588103 0003 0000 6938 E: 1300099315.588105 0003 0001 25731 E: 1300099315.588107 0000 0000 0 E: 1300099315.593078 0003 0035 6838 E: 1300099315.593090 0003 0036 25773 E: 1300099315.593093 0003 0030 1356 E: 1300099315.593100 0003 0000 6838 E: 1300099315.593101 0003 0001 25773 E: 1300099315.593103 0000 0000 0 E: 1300099315.598084 0003 0035 6740 E: 1300099315.598095 0003 0036 25817 E: 1300099315.598104 0003 0000 6740 E: 1300099315.598106 0003 0001 25817 E: 1300099315.598108 0000 0000 0 E: 1300099315.603080 0003 0035 6644 E: 1300099315.603091 0003 0036 25857 E: 1300099315.603100 0003 0000 6644 E: 1300099315.603102 0003 0001 25857 E: 1300099315.603104 0000 0000 0 E: 1300099315.608081 0003 0035 6544 E: 1300099315.608087 0003 0036 25895 E: 1300099315.608096 0003 0000 6544 E: 1300099315.608098 0003 0001 25895 E: 1300099315.608099 0000 0000 0 E: 1300099315.613078 0003 0035 6448 E: 1300099315.613089 0003 0036 25931 E: 1300099315.613098 0003 0000 6448 E: 1300099315.613099 0003 0001 25931 E: 1300099315.613101 0000 0000 0 E: 1300099315.619083 0003 0035 6350 E: 1300099315.619094 0003 0036 25971 E: 1300099315.619104 0003 0000 6350 E: 1300099315.619105 0003 0001 25971 E: 1300099315.619107 0000 0000 0 E: 1300099315.624069 0003 0035 6254 E: 1300099315.624075 0003 0036 26015 E: 1300099315.624084 0003 0000 6254 E: 1300099315.624086 0003 0001 26015 E: 1300099315.624088 0000 0000 0 E: 1300099315.629082 0003 0035 6156 E: 1300099315.629094 0003 0036 26049 E: 1300099315.629104 0003 0000 6156 E: 1300099315.629105 0003 0001 26049 E: 1300099315.629107 0000 0000 0 E: 1300099315.634067 0003 0035 6060 E: 1300099315.634077 0003 0036 26063 E: 1300099315.634087 0003 0000 6060 E: 1300099315.634088 0003 0001 26052 E: 1300099315.634090 0000 0000 0 E: 1300099315.639081 0003 0035 5960 E: 1300099315.639093 0003 0036 26107 E: 1300099315.639102 0003 0000 5960 E: 1300099315.639103 0003 0001 26107 E: 1300099315.639105 0000 0000 0 E: 1300099315.644066 0003 0035 5864 E: 1300099315.644077 0003 0036 26139 E: 1300099315.644086 0003 0000 5864 E: 1300099315.644088 0003 0001 26139 E: 1300099315.644090 0000 0000 0 E: 1300099315.649081 0003 0035 5768 E: 1300099315.649093 0003 0036 26169 E: 1300099315.649102 0003 0000 5768 E: 1300099315.649104 0003 0001 26169 E: 1300099315.649105 0000 0000 0 E: 1300099315.654066 0003 0035 5672 E: 1300099315.654077 0003 0036 26199 E: 1300099315.654086 0003 0000 5672 E: 1300099315.654088 0003 0001 26199 E: 1300099315.654090 0000 0000 0 E: 1300099315.659070 0003 0035 5578 E: 1300099315.659076 0003 0036 26231 E: 1300099315.659085 0003 0000 5578 E: 1300099315.659087 0003 0001 26231 E: 1300099315.659088 0000 0000 0 E: 1300099315.664071 0003 0035 5482 E: 1300099315.664082 0003 0036 26245 E: 1300099315.664085 0003 0030 1224 E: 1300099315.664092 0003 0000 5482 E: 1300099315.664094 0003 0001 26234 E: 1300099315.664096 0000 0000 0 E: 1300099315.669079 0003 0035 5390 E: 1300099315.669091 0003 0036 26291 E: 1300099315.669094 0003 0030 1191 E: 1300099315.669101 0003 0000 5390 E: 1300099315.669103 0003 0001 26291 E: 1300099315.669105 0000 0000 0 E: 1300099315.675067 0003 0035 5298 E: 1300099315.675077 0003 0036 26323 E: 1300099315.675087 0003 0000 5298 E: 1300099315.675089 0003 0001 26323 E: 1300099315.675090 0000 0000 0 E: 1300099315.680070 0003 0035 5208 E: 1300099315.680078 0003 0036 26353 E: 1300099315.680087 0003 0000 5208 E: 1300099315.680089 0003 0001 26353 E: 1300099315.680091 0000 0000 0 E: 1300099315.685077 0003 0035 5118 E: 1300099315.685088 0003 0036 26383 E: 1300099315.685097 0003 0000 5118 E: 1300099315.685099 0003 0001 26383 E: 1300099315.685101 0000 0000 0 E: 1300099315.690070 0003 0035 5032 E: 1300099315.690081 0003 0036 26415 E: 1300099315.690091 0003 0000 5032 E: 1300099315.690093 0003 0001 26415 E: 1300099315.690094 0000 0000 0 E: 1300099315.695079 0003 0035 4944 E: 1300099315.695093 0003 0036 26445 E: 1300099315.695102 0003 0000 4944 E: 1300099315.695103 0003 0001 26445 E: 1300099315.695105 0000 0000 0 E: 1300099315.700079 0003 0035 4858 E: 1300099315.700091 0003 0036 26477 E: 1300099315.700101 0003 0000 4858 E: 1300099315.700102 0003 0001 26477 E: 1300099315.700104 0000 0000 0 E: 1300099315.705080 0003 0035 4774 E: 1300099315.705091 0003 0036 26511 E: 1300099315.705100 0003 0000 4774 E: 1300099315.705102 0003 0001 26511 E: 1300099315.705104 0000 0000 0 E: 1300099315.710077 0003 0035 4692 E: 1300099315.710088 0003 0036 26541 E: 1300099315.710091 0003 0030 1323 E: 1300099315.710098 0003 0000 4692 E: 1300099315.710100 0003 0001 26541 E: 1300099315.710101 0000 0000 0 E: 1300099315.715081 0003 0035 4612 E: 1300099315.715092 0003 0036 26573 E: 1300099315.715095 0003 0030 1356 E: 1300099315.715102 0003 0000 4612 E: 1300099315.715104 0003 0001 26573 E: 1300099315.715105 0000 0000 0 E: 1300099315.720076 0003 0035 4530 E: 1300099315.720087 0003 0036 26603 E: 1300099315.720096 0003 0000 4530 E: 1300099315.720098 0003 0001 26603 E: 1300099315.720099 0000 0000 0 E: 1300099315.725072 0003 0035 4452 E: 1300099315.725078 0003 0036 26633 E: 1300099315.725088 0003 0000 4452 E: 1300099315.725089 0003 0001 26633 E: 1300099315.725091 0000 0000 0 E: 1300099315.730077 0003 0035 4374 E: 1300099315.730088 0003 0036 26646 E: 1300099315.730098 0003 0000 4374 E: 1300099315.730099 0003 0001 26636 E: 1300099315.730101 0000 0000 0 E: 1300099315.736080 0003 0035 4296 E: 1300099315.736091 0003 0036 26687 E: 1300099315.736100 0003 0000 4296 E: 1300099315.736102 0003 0001 26687 E: 1300099315.736104 0000 0000 0 E: 1300099315.741067 0003 0035 4222 E: 1300099315.741072 0003 0036 26697 E: 1300099315.741082 0003 0000 4222 E: 1300099315.741083 0003 0001 26689 E: 1300099315.741085 0000 0000 0 E: 1300099315.746079 0003 0035 4146 E: 1300099315.746091 0003 0036 26731 E: 1300099315.746100 0003 0000 4146 E: 1300099315.746101 0003 0001 26731 E: 1300099315.746103 0000 0000 0 E: 1300099315.751075 0003 0035 4070 E: 1300099315.751086 0003 0036 26743 E: 1300099315.751095 0003 0000 4070 E: 1300099315.751097 0003 0001 26734 E: 1300099315.751099 0000 0000 0 E: 1300099315.756079 0003 0035 3992 E: 1300099315.756090 0003 0036 26779 E: 1300099315.756100 0003 0000 3992 E: 1300099315.756101 0003 0001 26779 E: 1300099315.756103 0000 0000 0 E: 1300099315.761075 0003 0035 3918 E: 1300099315.761087 0003 0036 26789 E: 1300099315.761096 0003 0000 3918 E: 1300099315.761098 0003 0001 26781 E: 1300099315.761099 0000 0000 0 E: 1300099315.766079 0003 0035 3840 E: 1300099315.766090 0003 0036 26825 E: 1300099315.766099 0003 0000 3840 E: 1300099315.766101 0003 0001 26825 E: 1300099315.766103 0000 0000 0 E: 1300099315.771075 0003 0035 3762 E: 1300099315.771087 0003 0036 26836 E: 1300099315.771096 0003 0000 3762 E: 1300099315.771097 0003 0001 26827 E: 1300099315.771099 0000 0000 0 E: 1300099315.776079 0003 0035 3686 E: 1300099315.776090 0003 0036 26867 E: 1300099315.776100 0003 0000 3686 E: 1300099315.776101 0003 0001 26867 E: 1300099315.776103 0000 0000 0 E: 1300099315.781077 0003 0035 3606 E: 1300099315.781088 0003 0036 26881 E: 1300099315.781097 0003 0000 3606 E: 1300099315.781099 0003 0001 26870 E: 1300099315.781101 0000 0000 0 E: 1300099315.786078 0003 0035 3528 E: 1300099315.786090 0003 0036 26925 E: 1300099315.786099 0003 0000 3528 E: 1300099315.786100 0003 0001 26925 E: 1300099315.786102 0000 0000 0 E: 1300099315.792082 0003 0035 3450 E: 1300099315.792094 0003 0036 26938 E: 1300099315.792104 0003 0000 3450 E: 1300099315.792105 0003 0001 26928 E: 1300099315.792107 0000 0000 0 E: 1300099315.797080 0003 0035 3376 E: 1300099315.797093 0003 0036 26977 E: 1300099315.797096 0003 0030 1224 E: 1300099315.797103 0003 0000 3376 E: 1300099315.797104 0003 0001 26977 E: 1300099315.797106 0000 0000 0 E: 1300099315.802076 0003 0035 3302 E: 1300099315.802090 0003 0036 27007 E: 1300099315.802093 0003 0030 1191 E: 1300099315.802100 0003 0000 3302 E: 1300099315.802101 0003 0001 27007 E: 1300099315.802103 0000 0000 0 E: 1300099315.807080 0003 0035 3228 E: 1300099315.807092 0003 0036 27021 E: 1300099315.807101 0003 0000 3228 E: 1300099315.807103 0003 0001 27010 E: 1300099315.807105 0000 0000 0 E: 1300099315.812076 0003 0035 3158 E: 1300099315.812087 0003 0036 27061 E: 1300099315.812096 0003 0000 3158 E: 1300099315.812098 0003 0001 27061 E: 1300099315.812100 0000 0000 0 E: 1300099315.817077 0003 0035 3084 E: 1300099315.817089 0003 0036 27075 E: 1300099315.817098 0003 0000 3084 E: 1300099315.817099 0003 0001 27064 E: 1300099315.817101 0000 0000 0 E: 1300099315.822076 0003 0035 3016 E: 1300099315.822087 0003 0036 27121 E: 1300099315.822096 0003 0000 3016 E: 1300099315.822098 0003 0001 27121 E: 1300099315.822100 0000 0000 0 E: 1300099315.827076 0003 0035 2948 E: 1300099315.827088 0003 0036 27133 E: 1300099315.827097 0003 0000 2948 E: 1300099315.827099 0003 0001 27124 E: 1300099315.827101 0000 0000 0 E: 1300099315.832076 0003 0035 2914 E: 1300099315.832088 0003 0036 27144 E: 1300099315.832097 0003 0000 2914 E: 1300099315.832098 0003 0001 27134 E: 1300099315.832100 0000 0000 0 E: 1300099315.837083 0003 0035 2882 E: 1300099315.837094 0003 0036 27158 E: 1300099315.837104 0003 0000 2882 E: 1300099315.837106 0003 0001 27146 E: 1300099315.837107 0000 0000 0 E: 1300099315.842076 0003 0035 2818 E: 1300099315.842087 0003 0036 27207 E: 1300099315.842096 0003 0000 2818 E: 1300099315.842098 0003 0001 27207 E: 1300099315.842100 0000 0000 0 E: 1300099315.847082 0003 0035 2786 E: 1300099315.847094 0003 0036 27210 E: 1300099315.847103 0003 0000 2786 E: 1300099315.847106 0000 0000 0 E: 1300099315.853074 0003 0035 2756 E: 1300099315.853085 0003 0036 27223 E: 1300099315.853089 0003 0030 1323 E: 1300099315.853096 0003 0000 2756 E: 1300099315.853097 0003 0001 27215 E: 1300099315.853099 0000 0000 0 E: 1300099315.858067 0003 0035 2724 E: 1300099315.858078 0003 0036 27253 E: 1300099315.858084 0003 0030 1356 E: 1300099315.858092 0003 0000 2724 E: 1300099315.858093 0003 0001 27253 E: 1300099315.858095 0000 0000 0 E: 1300099315.863076 0003 0035 2694 E: 1300099315.863089 0003 0036 27261 E: 1300099315.863099 0003 0000 2694 E: 1300099315.863100 0003 0001 27255 E: 1300099315.863102 0000 0000 0 E: 1300099315.868079 0003 0035 2664 E: 1300099315.868090 0003 0036 27275 E: 1300099315.868100 0003 0000 2664 E: 1300099315.868101 0003 0001 27265 E: 1300099315.868103 0000 0000 0 E: 1300099315.873072 0003 0035 2650 E: 1300099315.873084 0003 0036 27307 E: 1300099315.873093 0003 0000 2660 E: 1300099315.873095 0003 0001 27307 E: 1300099315.873096 0000 0000 0 E: 1300099315.878067 0003 0035 2608 E: 1300099315.878078 0003 0036 27315 E: 1300099315.878090 0003 0000 2608 E: 1300099315.878092 0003 0001 27309 E: 1300099315.878094 0000 0000 0 E: 1300099315.883069 0003 0035 2595 E: 1300099315.883085 0003 0036 27327 E: 1300099315.883095 0003 0000 2604 E: 1300099315.883097 0003 0001 27318 E: 1300099315.883098 0000 0000 0 E: 1300099315.888075 0003 0035 2554 E: 1300099315.888088 0003 0036 27357 E: 1300099315.888098 0003 0000 2554 E: 1300099315.888099 0003 0001 27357 E: 1300099315.888101 0000 0000 0 E: 1300099315.893087 0003 0035 2542 E: 1300099315.893099 0003 0036 27366 E: 1300099315.893109 0003 0000 2551 E: 1300099315.893110 0003 0001 27359 E: 1300099315.893112 0000 0000 0 E: 1300099315.898070 0003 0035 2506 E: 1300099315.898078 0003 0036 27378 E: 1300099315.898089 0003 0000 2506 E: 1300099315.898090 0003 0001 27368 E: 1300099315.898092 0000 0000 0 E: 1300099315.903067 0003 0035 2495 E: 1300099315.903073 0003 0036 27409 E: 1300099315.903083 0003 0000 2503 E: 1300099315.903085 0003 0001 27409 E: 1300099315.903087 0000 0000 0 E: 1300099315.909075 0003 0035 2464 E: 1300099315.909087 0003 0036 27417 E: 1300099315.909096 0003 0000 2464 E: 1300099315.909098 0003 0001 27411 E: 1300099315.909100 0000 0000 0 E: 1300099315.914065 0003 0035 2454 E: 1300099315.914077 0003 0036 27428 E: 1300099315.914086 0003 0000 2461 E: 1300099315.914088 0003 0001 27419 E: 1300099315.914090 0000 0000 0 E: 1300099315.919072 0003 0035 2424 E: 1300099315.919083 0003 0036 27441 E: 1300099315.919093 0003 0000 2424 E: 1300099315.919094 0003 0001 27430 E: 1300099315.919096 0000 0000 0 E: 1300099315.924063 0003 0035 2415 E: 1300099315.924079 0003 0036 27471 E: 1300099315.924089 0003 0000 2421 E: 1300099315.924090 0003 0001 27471 E: 1300099315.924092 0000 0000 0 E: 1300099315.929074 0003 0035 2402 E: 1300099315.929088 0003 0036 27479 E: 1300099315.929097 0003 0000 2411 E: 1300099315.929098 0003 0001 27473 E: 1300099315.929100 0000 0000 0 E: 1300099315.934066 0003 0035 2394 E: 1300099315.934076 0003 0036 27481 E: 1300099315.934085 0003 0000 2402 E: 1300099315.934087 0003 0001 27475 E: 1300099315.934088 0000 0000 0 E: 1300099315.939072 0003 0035 2381 E: 1300099315.939084 0003 0036 27493 E: 1300099315.939093 0003 0000 2391 E: 1300099315.939094 0003 0001 27484 E: 1300099315.939096 0000 0000 0 E: 1300099315.944065 0003 0035 2372 E: 1300099315.944076 0003 0036 27501 E: 1300099315.944086 0003 0000 2381 E: 1300099315.944087 0003 0001 27492 E: 1300099315.944089 0000 0000 0 E: 1300099315.949065 0003 0035 2369 E: 1300099315.949070 0003 0036 27504 E: 1300099315.949080 0003 0000 2378 E: 1300099315.949082 0003 0001 27495 E: 1300099315.949084 0000 0000 0 E: 1300099315.954065 0003 0035 2365 E: 1300099315.954071 0003 0036 27507 E: 1300099315.954080 0003 0000 2374 E: 1300099315.954082 0003 0001 27498 E: 1300099315.954084 0000 0000 0 E: 1300099315.959072 0003 0035 2362 E: 1300099315.959083 0003 0036 27510 E: 1300099315.959092 0003 0000 2371 E: 1300099315.959094 0003 0001 27501 E: 1300099315.959096 0000 0000 0 E: 1300099315.965066 0003 0035 2359 E: 1300099315.965086 0003 0036 27513 E: 1300099315.965096 0003 0000 2368 E: 1300099315.965098 0003 0001 27504 E: 1300099315.965100 0000 0000 0 E: 1300099315.970073 0003 0035 2355 E: 1300099315.970087 0003 0036 27516 E: 1300099315.970096 0003 0000 2364 E: 1300099315.970098 0003 0001 27507 E: 1300099315.970100 0000 0000 0 E: 1300099315.975071 0003 0035 2351 E: 1300099315.975082 0003 0036 27519 E: 1300099315.975092 0003 0000 2360 E: 1300099315.975093 0003 0001 27510 E: 1300099315.975095 0000 0000 0 E: 1300099315.980074 0003 0035 2348 E: 1300099315.980087 0003 0036 27522 E: 1300099315.980096 0003 0000 2357 E: 1300099315.980098 0003 0001 27513 E: 1300099315.980099 0000 0000 0 E: 1300099315.985072 0003 0035 2345 E: 1300099315.985086 0003 0036 27525 E: 1300099315.985095 0003 0000 2354 E: 1300099315.985097 0003 0001 27516 E: 1300099315.985099 0000 0000 0 E: 1300099315.990074 0003 0035 2342 E: 1300099315.990085 0003 0036 27528 E: 1300099315.990094 0003 0000 2351 E: 1300099315.990096 0003 0001 27519 E: 1300099315.990097 0000 0000 0 E: 1300099315.995079 0003 0035 2339 E: 1300099315.995091 0003 0036 27531 E: 1300099315.995101 0003 0000 2348 E: 1300099315.995102 0003 0001 27522 E: 1300099315.995104 0000 0000 0 E: 1300099316.000074 0003 0035 2336 E: 1300099316.000087 0003 0036 27534 E: 1300099316.000096 0003 0000 2345 E: 1300099316.000097 0003 0001 27525 E: 1300099316.000099 0000 0000 0 E: 1300099316.005071 0003 0035 2333 E: 1300099316.005082 0003 0036 27537 E: 1300099316.005091 0003 0000 2342 E: 1300099316.005093 0003 0001 27528 E: 1300099316.005095 0000 0000 0 E: 1300099316.010070 0003 0035 2330 E: 1300099316.010081 0003 0036 27540 E: 1300099316.010090 0003 0000 2339 E: 1300099316.010092 0003 0001 27531 E: 1300099316.010094 0000 0000 0 E: 1300099316.015071 0003 0035 2327 E: 1300099316.015082 0003 0036 27543 E: 1300099316.015091 0003 0000 2336 E: 1300099316.015092 0003 0001 27534 E: 1300099316.015094 0000 0000 0 E: 1300099316.020073 0003 0035 2324 E: 1300099316.020085 0003 0036 27546 E: 1300099316.020094 0003 0000 2333 E: 1300099316.020095 0003 0001 27537 E: 1300099316.020097 0000 0000 0 E: 1300099316.026077 0003 0035 2321 E: 1300099316.026090 0003 0036 27549 E: 1300099316.026099 0003 0000 2330 E: 1300099316.026100 0003 0001 27540 E: 1300099316.026102 0000 0000 0 E: 1300099316.031069 0003 0035 2318 E: 1300099316.031080 0003 0036 27552 E: 1300099316.031089 0003 0000 2327 E: 1300099316.031091 0003 0001 27543 E: 1300099316.031093 0000 0000 0 E: 1300099316.036071 0003 0035 2315 E: 1300099316.036082 0003 0036 27554 E: 1300099316.036091 0003 0000 2324 E: 1300099316.036093 0003 0001 27545 E: 1300099316.036094 0000 0000 0 E: 1300099316.041070 0003 0035 2312 E: 1300099316.041081 0003 0036 27556 E: 1300099316.041090 0003 0000 2321 E: 1300099316.041091 0003 0001 27547 E: 1300099316.041093 0000 0000 0 E: 1300099316.046070 0003 0035 2310 E: 1300099316.046081 0003 0036 27558 E: 1300099316.046090 0003 0000 2318 E: 1300099316.046092 0003 0001 27549 E: 1300099316.046094 0000 0000 0 E: 1300099316.051073 0003 0035 2308 E: 1300099316.051084 0003 0036 27560 E: 1300099316.051094 0003 0000 2315 E: 1300099316.051095 0003 0001 27551 E: 1300099316.051097 0000 0000 0 E: 1300099316.056071 0003 0035 2306 E: 1300099316.056082 0003 0036 27562 E: 1300099316.056091 0003 0000 2312 E: 1300099316.056092 0003 0001 27553 E: 1300099316.056094 0000 0000 0 E: 1300099316.061071 0003 0035 2304 E: 1300099316.061083 0003 0036 27565 E: 1300099316.061092 0003 0000 2310 E: 1300099316.061093 0003 0001 27556 E: 1300099316.061095 0000 0000 0 E: 1300099316.066070 0003 0035 2302 E: 1300099316.066081 0003 0036 27568 E: 1300099316.066090 0003 0000 2308 E: 1300099316.066092 0003 0001 27559 E: 1300099316.066094 0000 0000 0 E: 1300099316.071069 0003 0035 2300 E: 1300099316.071080 0003 0036 27570 E: 1300099316.071090 0003 0000 2306 E: 1300099316.071091 0003 0001 27561 E: 1300099316.071093 0000 0000 0 E: 1300099316.076069 0003 0035 2298 E: 1300099316.076081 0003 0036 27572 E: 1300099316.076090 0003 0000 2304 E: 1300099316.076091 0003 0001 27563 E: 1300099316.076093 0000 0000 0 E: 1300099316.082072 0003 0035 2296 E: 1300099316.082084 0003 0036 27574 E: 1300099316.082093 0003 0000 2302 E: 1300099316.082094 0003 0001 27565 E: 1300099316.082096 0000 0000 0 E: 1300099316.087077 0003 0035 2294 E: 1300099316.087090 0003 0036 27576 E: 1300099316.087099 0003 0000 2300 E: 1300099316.087101 0003 0001 27567 E: 1300099316.087102 0000 0000 0 E: 1300099316.092069 0003 0035 2292 E: 1300099316.092080 0003 0036 27579 E: 1300099316.092089 0003 0000 2298 E: 1300099316.092091 0003 0001 27570 E: 1300099316.092093 0000 0000 0 E: 1300099316.097070 0003 0035 2290 E: 1300099316.097082 0003 0036 27582 E: 1300099316.097091 0003 0000 2296 E: 1300099316.097093 0003 0001 27573 E: 1300099316.097094 0000 0000 0 E: 1300099316.102073 0003 0035 2288 E: 1300099316.102084 0003 0036 27584 E: 1300099316.102093 0003 0000 2294 E: 1300099316.102095 0003 0001 27575 E: 1300099316.102096 0000 0000 0 E: 1300099316.107069 0003 0035 2286 E: 1300099316.107080 0003 0036 27586 E: 1300099316.107089 0003 0000 2292 E: 1300099316.107091 0003 0001 27577 E: 1300099316.107092 0000 0000 0 E: 1300099316.112068 0003 0035 2284 E: 1300099316.112079 0003 0036 27588 E: 1300099316.112088 0003 0000 2290 E: 1300099316.112090 0003 0001 27579 E: 1300099316.112092 0000 0000 0 E: 1300099316.117069 0003 0035 2282 E: 1300099316.117080 0003 0036 27590 E: 1300099316.117089 0003 0000 2288 E: 1300099316.117091 0003 0001 27581 E: 1300099316.117093 0000 0000 0 E: 1300099316.122070 0003 0036 27592 E: 1300099316.122090 0003 0001 27583 E: 1300099316.122091 0000 0000 0 E: 1300099316.127068 0003 0035 2280 E: 1300099316.127080 0003 0036 27594 E: 1300099316.127089 0003 0000 2286 E: 1300099316.127090 0003 0001 27585 E: 1300099316.127092 0000 0000 0 E: 1300099316.132067 0003 0035 2278 E: 1300099316.132078 0003 0036 27596 E: 1300099316.132088 0003 0000 2284 E: 1300099316.132089 0003 0001 27587 E: 1300099316.132091 0000 0000 0 E: 1300099316.137069 0003 0035 2276 E: 1300099316.137080 0003 0036 27598 E: 1300099316.137089 0003 0000 2282 E: 1300099316.137090 0003 0001 27589 E: 1300099316.137092 0000 0000 0 E: 1300099316.143068 0003 0035 2274 E: 1300099316.143079 0003 0036 27600 E: 1300099316.143088 0003 0000 2280 E: 1300099316.143090 0003 0001 27591 E: 1300099316.143092 0000 0000 0 E: 1300099316.148070 0003 0036 27602 E: 1300099316.148089 0003 0001 27593 E: 1300099316.148091 0000 0000 0 E: 1300099316.153069 0003 0035 2272 E: 1300099316.153080 0003 0036 27604 E: 1300099316.153089 0003 0000 2278 E: 1300099316.153091 0003 0001 27595 E: 1300099316.153092 0000 0000 0 E: 1300099316.158068 0003 0035 2270 E: 1300099316.158079 0003 0036 27606 E: 1300099316.158089 0003 0000 2276 E: 1300099316.158090 0003 0001 27597 E: 1300099316.158092 0000 0000 0 E: 1300099316.163071 0003 0035 2268 E: 1300099316.163083 0003 0036 27608 E: 1300099316.163093 0003 0000 2274 E: 1300099316.163094 0003 0001 27599 E: 1300099316.163096 0000 0000 0 E: 1300099316.168072 0003 0036 27610 E: 1300099316.168092 0003 0001 27601 E: 1300099316.168094 0000 0000 0 E: 1300099316.173066 0003 0035 2266 E: 1300099316.173077 0003 0036 27611 E: 1300099316.173087 0003 0000 2272 E: 1300099316.173088 0003 0001 27603 E: 1300099316.173090 0000 0000 0 E: 1300099316.178068 0003 0035 2264 E: 1300099316.178079 0003 0036 27613 E: 1300099316.178088 0003 0000 2270 E: 1300099316.178090 0003 0001 27605 E: 1300099316.178092 0000 0000 0 E: 1300099316.183069 0003 0036 27615 E: 1300099316.183089 0003 0001 27607 E: 1300099316.183091 0000 0000 0 E: 1300099316.188068 0003 0035 2262 E: 1300099316.188079 0003 0036 27617 E: 1300099316.188089 0003 0000 2268 E: 1300099316.188090 0003 0001 27609 E: 1300099316.188092 0000 0000 0 E: 1300099316.193067 0003 0035 2260 E: 1300099316.193087 0003 0000 2266 E: 1300099316.193089 0003 0001 27611 E: 1300099316.193091 0000 0000 0 E: 1300099316.199068 0003 0036 27619 E: 1300099316.199087 0003 0001 27613 E: 1300099316.199089 0000 0000 0 E: 1300099316.204056 0003 0035 2258 E: 1300099316.204067 0003 0036 27621 E: 1300099316.204076 0003 0000 2264 E: 1300099316.204078 0003 0001 27615 E: 1300099316.204080 0000 0000 0 E: 1300099316.214054 0003 0035 2256 E: 1300099316.214065 0003 0036 27623 E: 1300099316.214074 0003 0000 2262 E: 1300099316.214076 0003 0001 27617 E: 1300099316.214078 0000 0000 0 E: 1300099316.219067 0003 0035 2254 E: 1300099316.219086 0003 0000 2260 E: 1300099316.219089 0000 0000 0 E: 1300099316.224055 0003 0036 27625 E: 1300099316.224074 0003 0001 27619 E: 1300099316.224076 0000 0000 0 E: 1300099316.229066 0003 0035 2252 E: 1300099316.229077 0003 0036 27627 E: 1300099316.229086 0003 0000 2258 E: 1300099316.229088 0003 0001 27621 E: 1300099316.229090 0000 0000 0 E: 1300099316.239061 0003 0035 2250 E: 1300099316.239083 0003 0036 27629 E: 1300099316.239093 0003 0000 2256 E: 1300099316.239094 0003 0001 27623 E: 1300099316.239096 0000 0000 0 E: 1300099316.244058 0003 0036 27631 E: 1300099316.244080 0003 0001 27625 E: 1300099316.244082 0000 0000 0 E: 1300099316.249067 0003 0035 2248 E: 1300099316.249086 0003 0000 2254 E: 1300099316.249089 0000 0000 0 E: 1300099316.255067 0003 0036 27633 E: 1300099316.255087 0003 0001 27627 E: 1300099316.255089 0000 0000 0 E: 1300099316.260067 0003 0035 2246 E: 1300099316.260086 0003 0000 2252 E: 1300099316.260089 0000 0000 0 E: 1300099316.270067 0003 0035 2244 E: 1300099316.270079 0003 0036 27635 E: 1300099316.270088 0003 0000 2250 E: 1300099316.270090 0003 0001 27629 E: 1300099316.270091 0000 0000 0 E: 1300099316.275069 0003 0036 27637 E: 1300099316.275089 0003 0001 27631 E: 1300099316.275091 0000 0000 0 E: 1300099316.280066 0003 0035 2242 E: 1300099316.280077 0003 0036 27639 E: 1300099316.280086 0003 0000 2248 E: 1300099316.280088 0003 0001 27633 E: 1300099316.280089 0000 0000 0 E: 1300099316.290065 0003 0035 2240 E: 1300099316.290076 0003 0036 27641 E: 1300099316.290085 0003 0000 2246 E: 1300099316.290086 0003 0001 27635 E: 1300099316.290088 0000 0000 0 E: 1300099316.300063 0003 0035 2238 E: 1300099316.300074 0003 0036 27643 E: 1300099316.300084 0003 0000 2244 E: 1300099316.300085 0003 0001 27637 E: 1300099316.300087 0000 0000 0 E: 1300099316.305068 0003 0036 27645 E: 1300099316.305088 0003 0001 27639 E: 1300099316.305090 0000 0000 0 E: 1300099316.310065 0003 0035 2236 E: 1300099316.310085 0003 0000 2242 E: 1300099316.310087 0000 0000 0 E: 1300099316.321063 0003 0035 2234 E: 1300099316.321082 0003 0000 2240 E: 1300099316.321085 0000 0000 0 E: 1300099316.326066 0003 0036 27647 E: 1300099316.326085 0003 0001 27641 E: 1300099316.326087 0000 0000 0 E: 1300099316.331064 0003 0035 2232 E: 1300099316.331083 0003 0000 2238 E: 1300099316.331086 0000 0000 0 E: 1300099316.336069 0003 0036 27649 E: 1300099316.336089 0003 0001 27643 E: 1300099316.336091 0000 0000 0 E: 1300099316.346068 0003 0035 2230 E: 1300099316.346079 0003 0036 27651 E: 1300099316.346088 0003 0000 2236 E: 1300099316.346090 0003 0001 27645 E: 1300099316.346092 0000 0000 0 E: 1300099316.356064 0003 0035 2228 E: 1300099316.356083 0003 0000 2234 E: 1300099316.356086 0000 0000 0 E: 1300099316.361065 0003 0036 27653 E: 1300099316.361084 0003 0001 27647 E: 1300099316.361086 0000 0000 0 E: 1300099316.366063 0003 0035 2226 E: 1300099316.366083 0003 0000 2232 E: 1300099316.366086 0000 0000 0 E: 1300099316.377064 0003 0036 27655 E: 1300099316.377083 0003 0001 27649 E: 1300099316.377085 0000 0000 0 E: 1300099316.382064 0003 0035 2224 E: 1300099316.382075 0003 0036 27657 E: 1300099316.382084 0003 0000 2230 E: 1300099316.382085 0003 0001 27651 E: 1300099316.382087 0000 0000 0 E: 1300099316.392061 0003 0035 2222 E: 1300099316.392080 0003 0000 2228 E: 1300099316.392083 0000 0000 0 E: 1300099316.397064 0003 0036 27659 E: 1300099316.397084 0003 0001 27653 E: 1300099316.397086 0000 0000 0 E: 1300099316.407065 0003 0035 2220 E: 1300099316.407085 0003 0000 2226 E: 1300099316.407088 0000 0000 0 E: 1300099316.417062 0003 0036 27661 E: 1300099316.417082 0003 0001 27655 E: 1300099316.417083 0000 0000 0 E: 1300099316.422063 0003 0035 2218 E: 1300099316.422082 0003 0000 2224 E: 1300099316.422085 0000 0000 0 E: 1300099316.427063 0003 0036 27663 E: 1300099316.427082 0003 0001 27657 E: 1300099316.427084 0000 0000 0 E: 1300099316.438062 0003 0035 2216 E: 1300099316.438074 0003 0036 27665 E: 1300099316.438084 0003 0000 2222 E: 1300099316.438085 0003 0001 27659 E: 1300099316.438087 0000 0000 0 E: 1300099316.448061 0003 0036 27667 E: 1300099316.448081 0003 0001 27661 E: 1300099316.448083 0000 0000 0 E: 1300099316.453064 0003 0035 2214 E: 1300099316.453083 0003 0000 2220 E: 1300099316.453086 0000 0000 0 E: 1300099316.463063 0003 0036 27669 E: 1300099316.463083 0003 0001 27663 E: 1300099316.463085 0000 0000 0 E: 1300099316.468064 0003 0035 2212 E: 1300099316.468083 0003 0000 2218 E: 1300099316.468086 0000 0000 0 E: 1300099316.478062 0003 0036 27671 E: 1300099316.478081 0003 0001 27665 E: 1300099316.478083 0000 0000 0 E: 1300099316.483064 0003 0035 2210 E: 1300099316.483084 0003 0000 2216 E: 1300099316.483087 0000 0000 0 E: 1300099316.504049 0003 0035 2208 E: 1300099316.504068 0003 0000 2214 E: 1300099316.504071 0000 0000 0 E: 1300099316.509064 0003 0036 27673 E: 1300099316.509083 0003 0001 27667 E: 1300099316.509085 0000 0000 0 E: 1300099316.519059 0003 0035 2206 E: 1300099316.519079 0003 0000 2212 E: 1300099316.519082 0000 0000 0 E: 1300099316.524052 0003 0036 27675 E: 1300099316.524075 0003 0001 27669 E: 1300099316.524077 0000 0000 0 E: 1300099316.545059 0003 0035 2204 E: 1300099316.545073 0003 0036 27677 E: 1300099316.545082 0003 0000 2210 E: 1300099316.545083 0003 0001 27671 E: 1300099316.545085 0000 0000 0 E: 1300099316.565059 0003 0035 2201 E: 1300099316.565071 0003 0036 27679 E: 1300099316.565080 0003 0000 2207 E: 1300099316.565081 0003 0001 27673 E: 1300099316.565083 0000 0000 0 E: 1300099316.570061 0003 0035 2199 E: 1300099316.570080 0003 0000 2205 E: 1300099316.570083 0000 0000 0 E: 1300099316.580060 0003 0036 27681 E: 1300099316.580080 0003 0001 27675 E: 1300099316.580081 0000 0000 0 E: 1300099316.595058 0003 0035 2197 E: 1300099316.595078 0003 0000 2203 E: 1300099316.595081 0000 0000 0 E: 1300099316.606060 0003 0036 27683 E: 1300099316.606080 0003 0001 27677 E: 1300099316.606082 0000 0000 0 E: 1300099316.626058 0003 0035 2195 E: 1300099316.626078 0003 0000 2201 E: 1300099316.626081 0000 0000 0 E: 1300099316.641057 0003 0036 27685 E: 1300099316.641076 0003 0001 27679 E: 1300099316.641078 0000 0000 0 E: 1300099316.662058 0003 0035 2193 E: 1300099316.662078 0003 0000 2199 E: 1300099316.662081 0000 0000 0 E: 1300099316.682050 0003 0036 27687 E: 1300099316.682064 0003 0001 27681 E: 1300099316.682066 0000 0000 0 E: 1300099316.702057 0003 0035 2191 E: 1300099316.702076 0003 0000 2197 E: 1300099316.702079 0000 0000 0 E: 1300099316.723057 0003 0036 27689 E: 1300099316.723076 0003 0001 27683 E: 1300099316.723078 0000 0000 0 E: 1300099316.758057 0003 0036 27691 E: 1300099316.758077 0003 0001 27685 E: 1300099316.758079 0000 0000 0 E: 1300099316.768055 0003 0035 2189 E: 1300099316.768074 0003 0000 2195 E: 1300099316.768077 0000 0000 0 E: 1300099316.835055 0003 0036 27693 E: 1300099316.835075 0003 0001 27687 E: 1300099316.835076 0000 0000 0 E: 1300099316.850054 0003 0035 2187 E: 1300099316.850074 0003 0000 2193 E: 1300099316.850076 0000 0000 0 E: 1300099316.865055 0003 0036 27695 E: 1300099316.865075 0003 0001 27689 E: 1300099316.865077 0000 0000 0 E: 1300099316.921054 0003 0036 27697 E: 1300099316.921074 0003 0001 27691 E: 1300099316.921076 0000 0000 0 E: 1300099316.936052 0003 0035 2185 E: 1300099316.936072 0003 0000 2191 E: 1300099316.936075 0000 0000 0 E: 1300099317.048050 0003 0036 27699 E: 1300099317.048070 0003 0001 27693 E: 1300099317.048072 0000 0000 0 E: 1300099317.063050 0003 0035 2183 E: 1300099317.063069 0003 0000 2189 E: 1300099317.063072 0000 0000 0 E: 1300099317.196046 0003 0035 2181 E: 1300099317.196066 0003 0000 2187 E: 1300099317.196069 0000 0000 0 E: 1300099317.303046 0003 0036 27701 E: 1300099317.303067 0003 0001 27695 E: 1300099317.303069 0000 0000 0 E: 1300099317.414032 0003 0035 2179 E: 1300099317.414051 0003 0000 2185 E: 1300099317.414054 0000 0000 0 E: 1300099317.430041 0003 0039 -1 E: 1300099317.430054 0001 014a 0 E: 1300099317.430056 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/events/3m-two-tap.event0000644000015600001650000000212612651522342025345 0ustar pbuserpbgroup00000000000000E: 1300099341.056609 0003 002f 1 E: 1300099341.056623 0003 0039 6 E: 1300099341.056626 0003 0035 27798 E: 1300099341.056628 0003 0036 12289 E: 1300099341.056631 0003 0030 1323 E: 1300099341.056636 0001 014a 1 E: 1300099341.056639 0003 0000 27798 E: 1300099341.056641 0003 0001 12289 E: 1300099341.056643 0000 0000 0 E: 1300099341.061601 0003 002f 0 E: 1300099341.061611 0003 0039 7 E: 1300099341.061614 0003 0035 28210 E: 1300099341.061616 0003 0036 16297 E: 1300099341.061619 0003 0030 1224 E: 1300099341.061628 0003 002f 1 E: 1300099341.061628 0003 0030 1356 E: 1300099341.061640 0000 0000 0 E: 1300099341.066604 0003 002f 0 E: 1300099341.066614 0003 0030 1191 E: 1300099341.066633 0000 0000 0 E: 1300099341.102596 0003 0039 -1 E: 1300099341.102623 0000 0000 0 E: 1300099341.112598 0003 002f 1 E: 1300099341.112609 0003 0035 27796 E: 1300099341.112610 0003 0036 12291 E: 1300099341.112622 0000 0000 0 E: 1300099341.117598 0003 0035 27794 E: 1300099341.117609 0003 0036 12293 E: 1300099341.117621 0000 0000 0 E: 1300099341.122598 0003 0039 -1 E: 1300099341.122613 0001 014a 0 E: 1300099341.122615 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/events/3m-one-tap.event0000644000015600001650000000126412651522342025317 0ustar pbuserpbgroup00000000000000E: 1300099289.219579 0003 002f 0 E: 1300099289.219593 0003 0039 3 E: 1300099289.219596 0003 0035 17086 E: 1300099289.219598 0003 0036 14789 E: 1300099289.219601 0003 0030 1281 E: 1300099289.219605 0001 014a 1 E: 1300099289.219609 0003 0000 17086 E: 1300099289.219611 0003 0001 14789 E: 1300099289.219613 0000 0000 0 E: 1300099289.225578 0003 0030 1324 E: 1300099289.225597 0000 0000 0 E: 1300099289.230576 0003 0030 1357 E: 1300099289.230594 0000 0000 0 E: 1300099289.245568 0003 0030 1224 E: 1300099289.245581 0000 0000 0 E: 1300099289.250576 0003 0030 1191 E: 1300099289.250595 0000 0000 0 E: 1300099289.265571 0003 0039 -1 E: 1300099289.265584 0001 014a 0 E: 1300099289.265586 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/io/events/3m-two-drag.event0000644000015600001650000020305412651522342025501 0ustar pbuserpbgroup00000000000000E: 1300099359.361264 0003 002f 0 E: 1300099359.361277 0003 0039 8 E: 1300099359.361281 0003 0035 30108 E: 1300099359.361282 0003 0036 14683 E: 1300099359.361285 0003 0030 1323 E: 1300099359.361290 0001 014a 1 E: 1300099359.361293 0003 0000 30108 E: 1300099359.361295 0003 0001 14683 E: 1300099359.361296 0000 0000 0 E: 1300099359.366263 0003 0030 1356 E: 1300099359.366283 0000 0000 0 E: 1300099359.371263 0003 002f 1 E: 1300099359.371276 0003 0039 9 E: 1300099359.371279 0003 0035 29868 E: 1300099359.371280 0003 0036 19819 E: 1300099359.371293 0000 0000 0 E: 1300099359.386258 0003 002f 0 E: 1300099359.386269 0003 0035 30105 E: 1300099359.386290 0000 0000 0 E: 1300099359.391257 0003 0035 30102 E: 1300099359.391268 0003 0036 14681 E: 1300099359.391288 0000 0000 0 E: 1300099359.396256 0003 0035 30090 E: 1300099359.396267 0003 0036 14677 E: 1300099359.396275 0003 002f 1 E: 1300099359.396276 0003 0035 29865 E: 1300099359.396287 0003 0000 30099 E: 1300099359.396290 0000 0000 0 E: 1300099359.402256 0003 002f 0 E: 1300099359.402267 0003 0035 30060 E: 1300099359.402268 0003 0036 14674 E: 1300099359.402276 0003 002f 1 E: 1300099359.402276 0003 0035 29862 E: 1300099359.402287 0003 0000 30060 E: 1300099359.402289 0003 0001 14680 E: 1300099359.402291 0000 0000 0 E: 1300099359.407256 0003 002f 0 E: 1300099359.407266 0003 0035 30050 E: 1300099359.407268 0003 0036 14666 E: 1300099359.407275 0003 002f 1 E: 1300099359.407276 0003 0035 29849 E: 1300099359.407277 0003 0036 19817 E: 1300099359.407287 0003 0000 30057 E: 1300099359.407289 0003 0001 14676 E: 1300099359.407291 0000 0000 0 E: 1300099359.412257 0003 002f 0 E: 1300099359.412267 0003 0035 30018 E: 1300099359.412269 0003 0036 14663 E: 1300099359.412276 0003 002f 1 E: 1300099359.412277 0003 0035 29818 E: 1300099359.412278 0003 0036 19815 E: 1300099359.412288 0003 0000 30018 E: 1300099359.412290 0003 0001 14672 E: 1300099359.412292 0000 0000 0 E: 1300099359.417257 0003 002f 0 E: 1300099359.417268 0003 0035 30007 E: 1300099359.417270 0003 0036 14660 E: 1300099359.417277 0003 002f 1 E: 1300099359.417278 0003 0035 29808 E: 1300099359.417279 0003 0036 19812 E: 1300099359.417289 0003 0000 30015 E: 1300099359.417291 0003 0001 14669 E: 1300099359.417293 0000 0000 0 E: 1300099359.422255 0003 002f 0 E: 1300099359.422266 0003 0035 29972 E: 1300099359.422267 0003 0036 14656 E: 1300099359.422275 0003 002f 1 E: 1300099359.422275 0003 0035 29778 E: 1300099359.422277 0003 0036 19809 E: 1300099359.422287 0003 0000 29972 E: 1300099359.422288 0003 0001 14665 E: 1300099359.422290 0000 0000 0 E: 1300099359.427255 0003 002f 0 E: 1300099359.427265 0003 0035 29960 E: 1300099359.427267 0003 0036 14652 E: 1300099359.427274 0003 002f 1 E: 1300099359.427275 0003 0035 29766 E: 1300099359.427276 0003 0036 19806 E: 1300099359.427287 0003 0000 29969 E: 1300099359.427288 0003 0001 14661 E: 1300099359.427290 0000 0000 0 E: 1300099359.432255 0003 002f 0 E: 1300099359.432266 0003 0035 29924 E: 1300099359.432267 0003 0036 14649 E: 1300099359.432275 0003 002f 1 E: 1300099359.432275 0003 0035 29728 E: 1300099359.432277 0003 0036 19803 E: 1300099359.432287 0003 0000 29924 E: 1300099359.432289 0003 0001 14658 E: 1300099359.432290 0000 0000 0 E: 1300099359.437256 0003 002f 0 E: 1300099359.437266 0003 0035 29910 E: 1300099359.437268 0003 0036 14646 E: 1300099359.437275 0003 002f 1 E: 1300099359.437276 0003 0035 29715 E: 1300099359.437277 0003 0036 19801 E: 1300099359.437287 0003 0000 29920 E: 1300099359.437289 0003 0001 14655 E: 1300099359.437290 0000 0000 0 E: 1300099359.442263 0003 002f 0 E: 1300099359.442275 0003 0035 29868 E: 1300099359.442277 0003 0036 14644 E: 1300099359.442284 0003 002f 1 E: 1300099359.442285 0003 0035 29674 E: 1300099359.442286 0003 0036 19799 E: 1300099359.442297 0003 0000 29868 E: 1300099359.442298 0003 0001 14652 E: 1300099359.442300 0000 0000 0 E: 1300099359.447259 0003 002f 0 E: 1300099359.447270 0003 0035 29836 E: 1300099359.447278 0003 002f 1 E: 1300099359.447279 0003 0035 29642 E: 1300099359.447290 0003 0000 29836 E: 1300099359.447291 0003 0001 14650 E: 1300099359.447293 0000 0000 0 E: 1300099359.452259 0003 002f 0 E: 1300099359.452270 0003 0035 29770 E: 1300099359.452271 0003 0036 14642 E: 1300099359.452279 0003 002f 1 E: 1300099359.452280 0003 0035 29612 E: 1300099359.452291 0003 0000 29770 E: 1300099359.452292 0003 0001 14648 E: 1300099359.452294 0000 0000 0 E: 1300099359.458259 0003 002f 0 E: 1300099359.458270 0003 0035 29738 E: 1300099359.458278 0003 002f 1 E: 1300099359.458279 0003 0035 29580 E: 1300099359.458290 0003 0000 29738 E: 1300099359.458293 0000 0000 0 E: 1300099359.463248 0003 002f 0 E: 1300099359.463255 0003 0035 29674 E: 1300099359.463257 0003 0036 14643 E: 1300099359.463264 0003 002f 1 E: 1300099359.463265 0003 0035 29512 E: 1300099359.463267 0003 0036 19802 E: 1300099359.463277 0003 0000 29674 E: 1300099359.463279 0000 0000 0 E: 1300099359.468255 0003 002f 0 E: 1300099359.468266 0003 0035 29640 E: 1300099359.468267 0003 0036 14645 E: 1300099359.468275 0003 002f 1 E: 1300099359.468275 0003 0035 29444 E: 1300099359.468277 0003 0036 19809 E: 1300099359.468287 0003 0000 29640 E: 1300099359.468290 0000 0000 0 E: 1300099359.473249 0003 002f 0 E: 1300099359.473258 0003 0035 29574 E: 1300099359.473261 0003 0036 14653 E: 1300099359.473273 0003 002f 1 E: 1300099359.473274 0003 0035 29376 E: 1300099359.473276 0003 0036 19818 E: 1300099359.473286 0003 0000 29574 E: 1300099359.473290 0000 0000 0 E: 1300099359.478257 0003 002f 0 E: 1300099359.478269 0003 0035 29508 E: 1300099359.478271 0003 0036 14663 E: 1300099359.478279 0003 002f 1 E: 1300099359.478279 0003 0035 29308 E: 1300099359.478281 0003 0036 19829 E: 1300099359.478291 0003 0000 29508 E: 1300099359.478293 0003 0001 14655 E: 1300099359.478295 0000 0000 0 E: 1300099359.483266 0003 002f 0 E: 1300099359.483277 0003 0035 29442 E: 1300099359.483278 0003 0036 14671 E: 1300099359.483286 0003 002f 1 E: 1300099359.483286 0003 0035 29242 E: 1300099359.483288 0003 0036 19861 E: 1300099359.483291 0003 0030 1224 E: 1300099359.483299 0003 0000 29442 E: 1300099359.483301 0003 0001 14663 E: 1300099359.483302 0000 0000 0 E: 1300099359.488256 0003 002f 0 E: 1300099359.488266 0003 0035 29376 E: 1300099359.488268 0003 0036 14679 E: 1300099359.488275 0003 002f 1 E: 1300099359.488276 0003 0035 29176 E: 1300099359.488277 0003 0036 19869 E: 1300099359.488280 0003 0030 1191 E: 1300099359.488288 0003 0000 29376 E: 1300099359.488290 0003 0001 14671 E: 1300099359.488292 0000 0000 0 E: 1300099359.493257 0003 002f 0 E: 1300099359.493269 0003 0035 29308 E: 1300099359.493271 0003 0036 14690 E: 1300099359.493278 0003 002f 1 E: 1300099359.493279 0003 0035 29110 E: 1300099359.493280 0003 0036 19872 E: 1300099359.493290 0003 0000 29308 E: 1300099359.493292 0003 0001 14680 E: 1300099359.493294 0000 0000 0 E: 1300099359.498257 0003 002f 0 E: 1300099359.498267 0003 0035 29240 E: 1300099359.498269 0003 0036 14703 E: 1300099359.498276 0003 002f 1 E: 1300099359.498277 0003 0035 29078 E: 1300099359.498279 0003 0036 19881 E: 1300099359.498289 0003 0000 29240 E: 1300099359.498290 0003 0001 14691 E: 1300099359.498292 0000 0000 0 E: 1300099359.503254 0003 002f 0 E: 1300099359.503264 0003 0035 29208 E: 1300099359.503266 0003 0036 14714 E: 1300099359.503269 0003 0030 1224 E: 1300099359.503274 0003 002f 1 E: 1300099359.503275 0003 0035 29046 E: 1300099359.503277 0003 0036 19889 E: 1300099359.503287 0003 0000 29208 E: 1300099359.503288 0003 0001 14702 E: 1300099359.503290 0000 0000 0 E: 1300099359.508256 0003 002f 0 E: 1300099359.508266 0003 0035 29142 E: 1300099359.508268 0003 0036 14728 E: 1300099359.508271 0003 0030 1191 E: 1300099359.508277 0003 002f 1 E: 1300099359.508277 0003 0035 28978 E: 1300099359.508279 0003 0036 19900 E: 1300099359.508289 0003 0000 29142 E: 1300099359.508290 0003 0001 14715 E: 1300099359.508292 0000 0000 0 E: 1300099359.514259 0003 002f 0 E: 1300099359.514272 0003 0035 29074 E: 1300099359.514274 0003 0036 14742 E: 1300099359.514276 0003 0030 1323 E: 1300099359.514282 0003 002f 1 E: 1300099359.514316 0003 0035 28904 E: 1300099359.514318 0003 0036 19911 E: 1300099359.514329 0003 0000 29074 E: 1300099359.514331 0003 0001 14728 E: 1300099359.514332 0000 0000 0 E: 1300099359.519256 0003 002f 0 E: 1300099359.519268 0003 0035 29042 E: 1300099359.519270 0003 0036 14752 E: 1300099359.519273 0003 0030 1356 E: 1300099359.519278 0003 002f 1 E: 1300099359.519279 0003 0035 28834 E: 1300099359.519280 0003 0036 19923 E: 1300099359.519290 0003 0000 29042 E: 1300099359.519292 0003 0001 14740 E: 1300099359.519294 0000 0000 0 E: 1300099359.524255 0003 002f 0 E: 1300099359.524265 0003 0035 28972 E: 1300099359.524267 0003 0036 14764 E: 1300099359.524274 0003 002f 1 E: 1300099359.524275 0003 0035 28766 E: 1300099359.524276 0003 0036 19937 E: 1300099359.524286 0003 0000 28972 E: 1300099359.524288 0003 0001 14752 E: 1300099359.524290 0000 0000 0 E: 1300099359.529256 0003 002f 0 E: 1300099359.529266 0003 0035 28900 E: 1300099359.529268 0003 0036 14778 E: 1300099359.529275 0003 002f 1 E: 1300099359.529276 0003 0035 28698 E: 1300099359.529278 0003 0036 19951 E: 1300099359.529288 0003 0000 28900 E: 1300099359.529289 0003 0001 14765 E: 1300099359.529291 0000 0000 0 E: 1300099359.534256 0003 002f 0 E: 1300099359.534266 0003 0035 28830 E: 1300099359.534268 0003 0036 14811 E: 1300099359.534271 0003 0030 1224 E: 1300099359.534276 0003 002f 1 E: 1300099359.534277 0003 0035 28630 E: 1300099359.534279 0003 0036 19961 E: 1300099359.534289 0003 0000 28830 E: 1300099359.534290 0003 0001 14811 E: 1300099359.534292 0000 0000 0 E: 1300099359.539257 0003 002f 0 E: 1300099359.539267 0003 0035 28762 E: 1300099359.539269 0003 0036 14820 E: 1300099359.539272 0003 0030 1191 E: 1300099359.539277 0003 002f 1 E: 1300099359.539278 0003 0035 28564 E: 1300099359.539279 0003 0036 19964 E: 1300099359.539290 0003 0000 28762 E: 1300099359.539291 0003 0001 14813 E: 1300099359.539293 0000 0000 0 E: 1300099359.544267 0003 002f 0 E: 1300099359.544274 0003 0035 28692 E: 1300099359.544276 0003 0036 14829 E: 1300099359.544284 0003 002f 1 E: 1300099359.544285 0003 0035 28496 E: 1300099359.544286 0003 0036 19971 E: 1300099359.544297 0003 0000 28692 E: 1300099359.544298 0003 0001 14821 E: 1300099359.544300 0000 0000 0 E: 1300099359.549256 0003 002f 0 E: 1300099359.549266 0003 0035 28626 E: 1300099359.549268 0003 0036 14837 E: 1300099359.549271 0003 0030 1323 E: 1300099359.549276 0003 002f 1 E: 1300099359.549277 0003 0035 28424 E: 1300099359.549278 0003 0036 19974 E: 1300099359.549288 0003 0000 28626 E: 1300099359.549290 0003 0001 14829 E: 1300099359.549292 0000 0000 0 E: 1300099359.554256 0003 002f 0 E: 1300099359.554267 0003 0035 28558 E: 1300099359.554269 0003 0036 14840 E: 1300099359.554271 0003 0030 1356 E: 1300099359.554277 0003 002f 1 E: 1300099359.554277 0003 0035 28350 E: 1300099359.554279 0003 0036 19977 E: 1300099359.554289 0003 0000 28558 E: 1300099359.554290 0003 0001 14831 E: 1300099359.554292 0000 0000 0 E: 1300099359.559255 0003 002f 0 E: 1300099359.559266 0003 0035 28484 E: 1300099359.559268 0003 0036 14848 E: 1300099359.559270 0003 0030 1224 E: 1300099359.559276 0003 002f 1 E: 1300099359.559276 0003 0035 28286 E: 1300099359.559278 0003 0036 19979 E: 1300099359.559288 0003 0000 28484 E: 1300099359.559290 0003 0001 14839 E: 1300099359.559291 0000 0000 0 E: 1300099359.564255 0003 002f 0 E: 1300099359.564265 0003 0035 28412 E: 1300099359.564267 0003 0036 14851 E: 1300099359.564270 0003 0030 1191 E: 1300099359.564275 0003 002f 1 E: 1300099359.564276 0003 0035 28218 E: 1300099359.564278 0003 0036 19981 E: 1300099359.564288 0003 0000 28412 E: 1300099359.564289 0003 0001 14842 E: 1300099359.564291 0000 0000 0 E: 1300099359.570256 0003 002f 0 E: 1300099359.570267 0003 0035 28340 E: 1300099359.570268 0003 0036 14860 E: 1300099359.570276 0003 002f 1 E: 1300099359.570276 0003 0035 28148 E: 1300099359.570278 0003 0036 19983 E: 1300099359.570288 0003 0000 28340 E: 1300099359.570290 0003 0001 14851 E: 1300099359.570291 0000 0000 0 E: 1300099359.575254 0003 002f 0 E: 1300099359.575264 0003 0035 28276 E: 1300099359.575266 0003 0036 14862 E: 1300099359.575274 0003 002f 1 E: 1300099359.575274 0003 0035 28078 E: 1300099359.575285 0003 0000 28276 E: 1300099359.575287 0003 0001 14853 E: 1300099359.575289 0000 0000 0 E: 1300099359.580256 0003 002f 0 E: 1300099359.580266 0003 0035 28208 E: 1300099359.580268 0003 0036 14865 E: 1300099359.580271 0003 0030 1323 E: 1300099359.580276 0003 002f 1 E: 1300099359.580277 0003 0035 28002 E: 1300099359.580279 0003 0036 19981 E: 1300099359.580281 0003 0030 1323 E: 1300099359.580289 0003 0000 28208 E: 1300099359.580291 0003 0001 14856 E: 1300099359.580293 0000 0000 0 E: 1300099359.585254 0003 002f 0 E: 1300099359.585264 0003 0035 28136 E: 1300099359.585266 0003 0036 14868 E: 1300099359.585268 0003 0030 1356 E: 1300099359.585274 0003 002f 1 E: 1300099359.585274 0003 0035 27932 E: 1300099359.585278 0003 0030 1265 E: 1300099359.585286 0003 0000 28136 E: 1300099359.585288 0003 0001 14859 E: 1300099359.585289 0000 0000 0 E: 1300099359.590245 0003 002f 0 E: 1300099359.590255 0003 0035 28064 E: 1300099359.590257 0003 0036 14870 E: 1300099359.590265 0003 002f 1 E: 1300099359.590265 0003 0035 27856 E: 1300099359.590267 0003 0036 19979 E: 1300099359.590270 0003 0030 1221 E: 1300099359.590278 0003 0000 28064 E: 1300099359.590280 0003 0001 14861 E: 1300099359.590281 0000 0000 0 E: 1300099359.595257 0003 002f 0 E: 1300099359.595269 0003 0035 27988 E: 1300099359.595271 0003 0036 14872 E: 1300099359.595274 0003 0030 1224 E: 1300099359.595279 0003 002f 1 E: 1300099359.595280 0003 0035 27780 E: 1300099359.595282 0003 0036 19976 E: 1300099359.595284 0003 0030 1279 E: 1300099359.595292 0003 0000 27988 E: 1300099359.595294 0003 0001 14863 E: 1300099359.595295 0000 0000 0 E: 1300099359.600258 0003 002f 0 E: 1300099359.600269 0003 0035 27914 E: 1300099359.600271 0003 0036 14873 E: 1300099359.600274 0003 0030 1191 E: 1300099359.600279 0003 002f 1 E: 1300099359.600280 0003 0035 27710 E: 1300099359.600281 0003 0036 19966 E: 1300099359.600284 0003 0030 1323 E: 1300099359.600292 0003 0000 27914 E: 1300099359.600294 0003 0001 14865 E: 1300099359.600295 0000 0000 0 E: 1300099359.605254 0003 002f 0 E: 1300099359.605265 0003 0035 27840 E: 1300099359.605269 0003 0030 1323 E: 1300099359.605274 0003 002f 1 E: 1300099359.605275 0003 0035 27634 E: 1300099359.605276 0003 0036 19956 E: 1300099359.605279 0003 0030 1356 E: 1300099359.605287 0003 0000 27840 E: 1300099359.605289 0003 0001 14867 E: 1300099359.605290 0000 0000 0 E: 1300099359.610256 0003 002f 0 E: 1300099359.610267 0003 0035 27766 E: 1300099359.610271 0003 0030 1356 E: 1300099359.610276 0003 002f 1 E: 1300099359.610277 0003 0035 27562 E: 1300099359.610279 0003 0036 19947 E: 1300099359.610289 0003 0000 27766 E: 1300099359.610292 0000 0000 0 E: 1300099359.615255 0003 002f 0 E: 1300099359.615265 0003 0035 27694 E: 1300099359.615273 0003 002f 1 E: 1300099359.615274 0003 0035 27490 E: 1300099359.615276 0003 0036 19944 E: 1300099359.615286 0003 0000 27694 E: 1300099359.615288 0000 0000 0 E: 1300099359.620251 0003 002f 0 E: 1300099359.620262 0003 0035 27618 E: 1300099359.620270 0003 002f 1 E: 1300099359.620271 0003 0035 27418 E: 1300099359.620272 0003 0036 19940 E: 1300099359.620275 0003 0030 1224 E: 1300099359.620283 0003 0000 27618 E: 1300099359.620286 0000 0000 0 E: 1300099359.625254 0003 002f 0 E: 1300099359.625264 0003 0035 27544 E: 1300099359.625272 0003 002f 1 E: 1300099359.625273 0003 0035 27348 E: 1300099359.625274 0003 0036 19931 E: 1300099359.625277 0003 0030 1282 E: 1300099359.625285 0003 0000 27544 E: 1300099359.625288 0000 0000 0 E: 1300099359.631259 0003 002f 0 E: 1300099359.631271 0003 0035 27470 E: 1300099359.631275 0003 0030 1224 E: 1300099359.631280 0003 002f 1 E: 1300099359.631280 0003 0035 27274 E: 1300099359.631282 0003 0036 19928 E: 1300099359.631285 0003 0030 1325 E: 1300099359.631293 0003 0000 27470 E: 1300099359.631296 0000 0000 0 E: 1300099359.636254 0003 002f 0 E: 1300099359.636264 0003 0035 27398 E: 1300099359.636268 0003 0030 1191 E: 1300099359.636273 0003 002f 1 E: 1300099359.636274 0003 0035 27202 E: 1300099359.636276 0003 0036 19920 E: 1300099359.636278 0003 0030 1357 E: 1300099359.636287 0003 0000 27398 E: 1300099359.636289 0000 0000 0 E: 1300099359.641252 0003 002f 0 E: 1300099359.641263 0003 0035 27326 E: 1300099359.641266 0003 0030 1323 E: 1300099359.641272 0003 002f 1 E: 1300099359.641272 0003 0035 27126 E: 1300099359.641274 0003 0036 19917 E: 1300099359.641284 0003 0000 27326 E: 1300099359.641287 0000 0000 0 E: 1300099359.646255 0003 002f 0 E: 1300099359.646266 0003 0035 27252 E: 1300099359.646269 0003 0030 1356 E: 1300099359.646275 0003 002f 1 E: 1300099359.646275 0003 0035 27048 E: 1300099359.646277 0003 0036 19914 E: 1300099359.646287 0003 0000 27252 E: 1300099359.646290 0000 0000 0 E: 1300099359.651251 0003 002f 0 E: 1300099359.651261 0003 0035 27176 E: 1300099359.651270 0003 002f 1 E: 1300099359.651271 0003 0035 26974 E: 1300099359.651274 0003 0030 1224 E: 1300099359.651282 0003 0000 27176 E: 1300099359.651285 0000 0000 0 E: 1300099359.656254 0003 002f 0 E: 1300099359.656264 0003 0035 27096 E: 1300099359.656268 0003 0030 1224 E: 1300099359.656273 0003 002f 1 E: 1300099359.656273 0003 0035 26900 E: 1300099359.656277 0003 0030 1282 E: 1300099359.656285 0003 0000 27096 E: 1300099359.656288 0000 0000 0 E: 1300099359.661255 0003 002f 0 E: 1300099359.661264 0003 0035 27018 E: 1300099359.661268 0003 0030 1191 E: 1300099359.661273 0003 002f 1 E: 1300099359.661274 0003 0035 26828 E: 1300099359.661277 0003 0030 1325 E: 1300099359.661286 0003 0000 27018 E: 1300099359.661289 0000 0000 0 E: 1300099359.666253 0003 002f 0 E: 1300099359.666263 0003 0035 26942 E: 1300099359.666272 0003 002f 1 E: 1300099359.666272 0003 0035 26754 E: 1300099359.666276 0003 0030 1357 E: 1300099359.666284 0003 0000 26942 E: 1300099359.666287 0000 0000 0 E: 1300099359.671253 0003 002f 0 E: 1300099359.671263 0003 0035 26866 E: 1300099359.671271 0003 002f 1 E: 1300099359.671272 0003 0035 26676 E: 1300099359.671283 0003 0000 26866 E: 1300099359.671286 0000 0000 0 E: 1300099359.676255 0003 002f 0 E: 1300099359.676267 0003 0035 26794 E: 1300099359.676268 0003 0036 14875 E: 1300099359.676271 0003 0030 1323 E: 1300099359.676277 0003 002f 1 E: 1300099359.676277 0003 0035 26602 E: 1300099359.676281 0003 0030 1224 E: 1300099359.676289 0003 0000 26794 E: 1300099359.676291 0003 0001 14869 E: 1300099359.676292 0000 0000 0 E: 1300099359.681252 0003 002f 0 E: 1300099359.681262 0003 0035 26716 E: 1300099359.681264 0003 0036 14878 E: 1300099359.681267 0003 0030 1356 E: 1300099359.681272 0003 002f 1 E: 1300099359.681272 0003 0035 26524 E: 1300099359.681276 0003 0030 1191 E: 1300099359.681284 0003 0000 26716 E: 1300099359.681286 0003 0001 14871 E: 1300099359.681288 0000 0000 0 E: 1300099359.687252 0003 002f 0 E: 1300099359.687262 0003 0035 26638 E: 1300099359.687264 0003 0036 14885 E: 1300099359.687267 0003 0030 1224 E: 1300099359.687272 0003 002f 1 E: 1300099359.687273 0003 0035 26450 E: 1300099359.687275 0003 0036 19916 E: 1300099359.687285 0003 0000 26638 E: 1300099359.687286 0003 0001 14874 E: 1300099359.687288 0000 0000 0 E: 1300099359.692252 0003 002f 0 E: 1300099359.692262 0003 0035 26564 E: 1300099359.692264 0003 0036 14893 E: 1300099359.692267 0003 0030 1191 E: 1300099359.692272 0003 002f 1 E: 1300099359.692273 0003 0035 26378 E: 1300099359.692274 0003 0036 19918 E: 1300099359.692277 0003 0030 1323 E: 1300099359.692285 0003 0000 26564 E: 1300099359.692286 0003 0001 14883 E: 1300099359.692288 0000 0000 0 E: 1300099359.697254 0003 002f 0 E: 1300099359.697264 0003 0035 26488 E: 1300099359.697266 0003 0036 14902 E: 1300099359.697269 0003 0030 1323 E: 1300099359.697274 0003 002f 1 E: 1300099359.697274 0003 0035 26302 E: 1300099359.697276 0003 0036 19925 E: 1300099359.697279 0003 0030 1356 E: 1300099359.697287 0003 0000 26488 E: 1300099359.697288 0003 0001 14892 E: 1300099359.697290 0000 0000 0 E: 1300099359.702251 0003 002f 0 E: 1300099359.702261 0003 0035 26416 E: 1300099359.702263 0003 0036 14913 E: 1300099359.702266 0003 0030 1356 E: 1300099359.702271 0003 002f 1 E: 1300099359.702272 0003 0035 26226 E: 1300099359.702273 0003 0036 19928 E: 1300099359.702276 0003 0030 1224 E: 1300099359.702284 0003 0000 26416 E: 1300099359.702286 0003 0001 14902 E: 1300099359.702287 0000 0000 0 E: 1300099359.707245 0003 002f 0 E: 1300099359.707253 0003 0035 26342 E: 1300099359.707255 0003 0036 14925 E: 1300099359.707268 0003 002f 1 E: 1300099359.707269 0003 0035 26148 E: 1300099359.707271 0003 0036 19938 E: 1300099359.707273 0003 0030 1191 E: 1300099359.707282 0003 0000 26342 E: 1300099359.707284 0003 0001 14913 E: 1300099359.707286 0000 0000 0 E: 1300099359.712253 0003 002f 0 E: 1300099359.712265 0003 0035 26266 E: 1300099359.712267 0003 0036 14936 E: 1300099359.712275 0003 002f 1 E: 1300099359.712275 0003 0035 26072 E: 1300099359.712277 0003 0036 19949 E: 1300099359.712287 0003 0000 26266 E: 1300099359.712288 0003 0001 14924 E: 1300099359.712290 0000 0000 0 E: 1300099359.717253 0003 002f 0 E: 1300099359.717265 0003 0035 26190 E: 1300099359.717267 0003 0036 14948 E: 1300099359.717274 0003 002f 1 E: 1300099359.717275 0003 0035 25998 E: 1300099359.717276 0003 0036 19960 E: 1300099359.717286 0003 0000 26190 E: 1300099359.717288 0003 0001 14936 E: 1300099359.717289 0000 0000 0 E: 1300099359.722253 0003 002f 0 E: 1300099359.722263 0003 0035 26114 E: 1300099359.722265 0003 0036 14981 E: 1300099359.722273 0003 002f 1 E: 1300099359.722273 0003 0035 25922 E: 1300099359.722275 0003 0036 19972 E: 1300099359.722285 0003 0000 26114 E: 1300099359.722287 0003 0001 14981 E: 1300099359.722289 0000 0000 0 E: 1300099359.727244 0003 002f 0 E: 1300099359.727248 0003 0035 26038 E: 1300099359.727250 0003 0036 14983 E: 1300099359.727258 0003 002f 1 E: 1300099359.727259 0003 0035 25848 E: 1300099359.727260 0003 0036 19985 E: 1300099359.727271 0003 0000 26038 E: 1300099359.727273 0000 0000 0 E: 1300099359.732252 0003 002f 0 E: 1300099359.732262 0003 0035 25964 E: 1300099359.732264 0003 0036 14994 E: 1300099359.732271 0003 002f 1 E: 1300099359.732272 0003 0035 25766 E: 1300099359.732274 0003 0036 20015 E: 1300099359.732276 0003 0030 1323 E: 1300099359.732285 0003 0000 25964 E: 1300099359.732286 0003 0001 14984 E: 1300099359.732288 0000 0000 0 E: 1300099359.737253 0003 002f 0 E: 1300099359.737263 0003 0035 25890 E: 1300099359.737265 0003 0036 15006 E: 1300099359.737273 0003 002f 1 E: 1300099359.737273 0003 0035 25690 E: 1300099359.737275 0003 0036 20023 E: 1300099359.737277 0003 0030 1356 E: 1300099359.737286 0003 0000 25890 E: 1300099359.737287 0003 0001 14995 E: 1300099359.737289 0000 0000 0 E: 1300099359.742252 0003 002f 0 E: 1300099359.742262 0003 0035 25814 E: 1300099359.742264 0003 0036 15017 E: 1300099359.742271 0003 002f 1 E: 1300099359.742272 0003 0035 25608 E: 1300099359.742273 0003 0036 20031 E: 1300099359.742276 0003 0030 1224 E: 1300099359.742284 0003 0000 25814 E: 1300099359.742286 0003 0001 15006 E: 1300099359.742287 0000 0000 0 E: 1300099359.748253 0003 002f 0 E: 1300099359.748265 0003 0035 25736 E: 1300099359.748267 0003 0036 15031 E: 1300099359.748275 0003 002f 1 E: 1300099359.748275 0003 0035 25534 E: 1300099359.748277 0003 0036 20041 E: 1300099359.748282 0003 0030 1191 E: 1300099359.748290 0003 0000 25736 E: 1300099359.748292 0003 0001 15018 E: 1300099359.748294 0000 0000 0 E: 1300099359.753253 0003 002f 0 E: 1300099359.753265 0003 0035 25662 E: 1300099359.753267 0003 0036 15045 E: 1300099359.753275 0003 002f 1 E: 1300099359.753275 0003 0035 25458 E: 1300099359.753277 0003 0036 20052 E: 1300099359.753279 0003 0030 1323 E: 1300099359.753287 0003 0000 25662 E: 1300099359.753289 0003 0001 15031 E: 1300099359.753291 0000 0000 0 E: 1300099359.758251 0003 002f 0 E: 1300099359.758261 0003 0035 25584 E: 1300099359.758263 0003 0036 15055 E: 1300099359.758270 0003 002f 1 E: 1300099359.758271 0003 0035 25380 E: 1300099359.758273 0003 0036 20060 E: 1300099359.758275 0003 0030 1356 E: 1300099359.758283 0003 0000 25584 E: 1300099359.758285 0003 0001 15043 E: 1300099359.758287 0000 0000 0 E: 1300099359.763254 0003 002f 0 E: 1300099359.763264 0003 0035 25510 E: 1300099359.763266 0003 0036 15064 E: 1300099359.763274 0003 002f 1 E: 1300099359.763274 0003 0035 25300 E: 1300099359.763276 0003 0036 20072 E: 1300099359.763286 0003 0000 25510 E: 1300099359.763288 0003 0001 15053 E: 1300099359.763289 0000 0000 0 E: 1300099359.768250 0003 002f 0 E: 1300099359.768260 0003 0035 25432 E: 1300099359.768262 0003 0036 15071 E: 1300099359.768269 0003 002f 1 E: 1300099359.768270 0003 0035 25220 E: 1300099359.768272 0003 0036 20083 E: 1300099359.768282 0003 0000 25432 E: 1300099359.768283 0003 0001 15062 E: 1300099359.768285 0000 0000 0 E: 1300099359.773253 0003 002f 0 E: 1300099359.773263 0003 0035 25354 E: 1300099359.773265 0003 0036 15079 E: 1300099359.773273 0003 002f 1 E: 1300099359.773273 0003 0035 25144 E: 1300099359.773275 0003 0036 20086 E: 1300099359.773285 0003 0000 25354 E: 1300099359.773287 0003 0001 15070 E: 1300099359.773288 0000 0000 0 E: 1300099359.778253 0003 002f 0 E: 1300099359.778263 0003 0035 25274 E: 1300099359.778265 0003 0036 15082 E: 1300099359.778273 0003 002f 1 E: 1300099359.778273 0003 0035 25064 E: 1300099359.778275 0003 0036 20096 E: 1300099359.778285 0003 0000 25274 E: 1300099359.778287 0003 0001 15073 E: 1300099359.778288 0000 0000 0 E: 1300099359.783255 0003 002f 0 E: 1300099359.783267 0003 0035 25194 E: 1300099359.783268 0003 0036 15091 E: 1300099359.783276 0003 002f 1 E: 1300099359.783277 0003 0035 24988 E: 1300099359.783278 0003 0036 20105 E: 1300099359.783288 0003 0000 25194 E: 1300099359.783290 0003 0001 15082 E: 1300099359.783292 0000 0000 0 E: 1300099359.788250 0003 002f 0 E: 1300099359.788263 0003 0035 25118 E: 1300099359.788265 0003 0036 15099 E: 1300099359.788272 0003 002f 1 E: 1300099359.788272 0003 0035 24908 E: 1300099359.788274 0003 0036 20116 E: 1300099359.788284 0003 0000 25118 E: 1300099359.788286 0003 0001 15090 E: 1300099359.788288 0000 0000 0 E: 1300099359.793252 0003 002f 0 E: 1300099359.793263 0003 0035 25040 E: 1300099359.793265 0003 0036 15101 E: 1300099359.793273 0003 002f 1 E: 1300099359.793273 0003 0035 24828 E: 1300099359.793275 0003 0036 20124 E: 1300099359.793285 0003 0000 25040 E: 1300099359.793287 0003 0001 15092 E: 1300099359.793288 0000 0000 0 E: 1300099359.798250 0003 002f 0 E: 1300099359.798262 0003 0035 24960 E: 1300099359.798264 0003 0036 15104 E: 1300099359.798272 0003 002f 1 E: 1300099359.798272 0003 0035 24750 E: 1300099359.798274 0003 0036 20126 E: 1300099359.798284 0003 0000 24960 E: 1300099359.798286 0003 0001 15095 E: 1300099359.798287 0000 0000 0 E: 1300099359.803251 0003 002f 0 E: 1300099359.803261 0003 0035 24878 E: 1300099359.803263 0003 0036 15113 E: 1300099359.803271 0003 002f 1 E: 1300099359.803271 0003 0035 24670 E: 1300099359.803273 0003 0036 20134 E: 1300099359.803283 0003 0000 24878 E: 1300099359.803285 0003 0001 15104 E: 1300099359.803286 0000 0000 0 E: 1300099359.809251 0003 002f 0 E: 1300099359.809263 0003 0035 24796 E: 1300099359.809264 0003 0036 15115 E: 1300099359.809272 0003 002f 1 E: 1300099359.809273 0003 0035 24592 E: 1300099359.809274 0003 0036 20136 E: 1300099359.809284 0003 0000 24796 E: 1300099359.809286 0003 0001 15106 E: 1300099359.809288 0000 0000 0 E: 1300099359.814250 0003 002f 0 E: 1300099359.814263 0003 0035 24718 E: 1300099359.814272 0003 002f 1 E: 1300099359.814272 0003 0035 24510 E: 1300099359.814274 0003 0036 20138 E: 1300099359.814284 0003 0000 24718 E: 1300099359.814286 0003 0001 15108 E: 1300099359.814287 0000 0000 0 E: 1300099359.819249 0003 002f 0 E: 1300099359.819259 0003 0035 24638 E: 1300099359.819268 0003 002f 1 E: 1300099359.819269 0003 0035 24430 E: 1300099359.819270 0003 0036 20140 E: 1300099359.819280 0003 0000 24638 E: 1300099359.819282 0003 0001 15109 E: 1300099359.819284 0000 0000 0 E: 1300099359.824241 0003 002f 0 E: 1300099359.824249 0003 0035 24560 E: 1300099359.824251 0003 0036 15117 E: 1300099359.824263 0003 002f 1 E: 1300099359.824264 0003 0035 24348 E: 1300099359.824265 0003 0036 20147 E: 1300099359.824276 0003 0000 24560 E: 1300099359.824279 0003 0001 15111 E: 1300099359.824281 0000 0000 0 E: 1300099359.829250 0003 002f 0 E: 1300099359.829262 0003 0035 24476 E: 1300099359.829264 0003 0036 15120 E: 1300099359.829271 0003 002f 1 E: 1300099359.829272 0003 0035 24264 E: 1300099359.829273 0003 0036 20149 E: 1300099359.829283 0003 0000 24476 E: 1300099359.829285 0003 0001 15113 E: 1300099359.829287 0000 0000 0 E: 1300099359.834256 0003 002f 0 E: 1300099359.834268 0003 0035 24394 E: 1300099359.834270 0003 0036 15123 E: 1300099359.834277 0003 002f 1 E: 1300099359.834278 0003 0035 24186 E: 1300099359.834279 0003 0036 20152 E: 1300099359.834289 0003 0000 24394 E: 1300099359.834291 0003 0001 15115 E: 1300099359.834293 0000 0000 0 E: 1300099359.839249 0003 002f 0 E: 1300099359.839259 0003 0035 24310 E: 1300099359.839261 0003 0036 15126 E: 1300099359.839268 0003 002f 1 E: 1300099359.839268 0003 0035 24104 E: 1300099359.839270 0003 0036 20159 E: 1300099359.839280 0003 0000 24310 E: 1300099359.839282 0003 0001 15117 E: 1300099359.839284 0000 0000 0 E: 1300099359.844247 0003 002f 0 E: 1300099359.844258 0003 0035 24232 E: 1300099359.844260 0003 0036 15127 E: 1300099359.844267 0003 002f 1 E: 1300099359.844268 0003 0035 24022 E: 1300099359.844269 0003 0036 20162 E: 1300099359.844279 0003 0000 24232 E: 1300099359.844281 0003 0001 15119 E: 1300099359.844283 0000 0000 0 E: 1300099359.849249 0003 002f 0 E: 1300099359.849259 0003 0035 24150 E: 1300099359.849268 0003 002f 1 E: 1300099359.849269 0003 0035 23938 E: 1300099359.849270 0003 0036 20169 E: 1300099359.849280 0003 0000 24150 E: 1300099359.849282 0003 0001 15121 E: 1300099359.849284 0000 0000 0 E: 1300099359.854250 0003 002f 0 E: 1300099359.854260 0003 0035 24068 E: 1300099359.854269 0003 002f 1 E: 1300099359.854269 0003 0035 23858 E: 1300099359.854271 0003 0036 20172 E: 1300099359.854281 0003 0000 24068 E: 1300099359.854284 0000 0000 0 E: 1300099359.859256 0003 002f 0 E: 1300099359.859266 0003 0035 23984 E: 1300099359.859274 0003 002f 1 E: 1300099359.859275 0003 0035 23776 E: 1300099359.859277 0003 0036 20179 E: 1300099359.859287 0003 0000 23984 E: 1300099359.859290 0000 0000 0 E: 1300099359.865251 0003 002f 0 E: 1300099359.865262 0003 0035 23902 E: 1300099359.865271 0003 002f 1 E: 1300099359.865271 0003 0035 23696 E: 1300099359.865273 0003 0036 20182 E: 1300099359.865283 0003 0000 23902 E: 1300099359.865286 0000 0000 0 E: 1300099359.870250 0003 002f 0 E: 1300099359.870260 0003 0035 23822 E: 1300099359.870269 0003 002f 1 E: 1300099359.870269 0003 0035 23616 E: 1300099359.870271 0003 0036 20185 E: 1300099359.870281 0003 0000 23822 E: 1300099359.870284 0000 0000 0 E: 1300099359.875247 0003 002f 0 E: 1300099359.875258 0003 0035 23740 E: 1300099359.875259 0003 0036 15124 E: 1300099359.875267 0003 002f 1 E: 1300099359.875267 0003 0035 23530 E: 1300099359.875269 0003 0036 20193 E: 1300099359.875279 0003 0000 23740 E: 1300099359.875282 0000 0000 0 E: 1300099359.880250 0003 002f 0 E: 1300099359.880261 0003 0035 23656 E: 1300099359.880262 0003 0036 15121 E: 1300099359.880270 0003 002f 1 E: 1300099359.880270 0003 0035 23446 E: 1300099359.880272 0003 0036 20196 E: 1300099359.880282 0003 0000 23656 E: 1300099359.880285 0000 0000 0 E: 1300099359.885248 0003 002f 0 E: 1300099359.885258 0003 0035 23570 E: 1300099359.885260 0003 0036 15119 E: 1300099359.885267 0003 002f 1 E: 1300099359.885268 0003 0035 23360 E: 1300099359.885270 0003 0036 20199 E: 1300099359.885280 0003 0000 23570 E: 1300099359.885282 0000 0000 0 E: 1300099359.890249 0003 002f 0 E: 1300099359.890260 0003 0035 23486 E: 1300099359.890261 0003 0036 15117 E: 1300099359.890269 0003 002f 1 E: 1300099359.890270 0003 0035 23282 E: 1300099359.890271 0003 0036 20202 E: 1300099359.890281 0003 0000 23486 E: 1300099359.890284 0000 0000 0 E: 1300099359.895248 0003 002f 0 E: 1300099359.895258 0003 0035 23402 E: 1300099359.895266 0003 002f 1 E: 1300099359.895267 0003 0035 23198 E: 1300099359.895268 0003 0036 20204 E: 1300099359.895279 0003 0000 23402 E: 1300099359.895281 0000 0000 0 E: 1300099359.900250 0003 002f 0 E: 1300099359.900261 0003 0035 23320 E: 1300099359.900262 0003 0036 15114 E: 1300099359.900270 0003 002f 1 E: 1300099359.900270 0003 0035 23116 E: 1300099359.900272 0003 0036 20206 E: 1300099359.900282 0003 0000 23320 E: 1300099359.900284 0003 0001 15119 E: 1300099359.900286 0000 0000 0 E: 1300099359.905247 0003 002f 0 E: 1300099359.905258 0003 0035 23238 E: 1300099359.905259 0003 0036 15112 E: 1300099359.905267 0003 002f 1 E: 1300099359.905267 0003 0035 23030 E: 1300099359.905269 0003 0036 20208 E: 1300099359.905279 0003 0000 23238 E: 1300099359.905281 0003 0001 15117 E: 1300099359.905283 0000 0000 0 E: 1300099359.910252 0003 002f 0 E: 1300099359.910264 0003 0035 23154 E: 1300099359.910265 0003 0036 15109 E: 1300099359.910273 0003 002f 1 E: 1300099359.910273 0003 0035 22950 E: 1300099359.910275 0003 0036 20209 E: 1300099359.910285 0003 0000 23154 E: 1300099359.910286 0003 0001 15115 E: 1300099359.910288 0000 0000 0 E: 1300099359.915247 0003 002f 0 E: 1300099359.915257 0003 0035 23068 E: 1300099359.915259 0003 0036 15107 E: 1300099359.915267 0003 002f 1 E: 1300099359.915267 0003 0035 22870 E: 1300099359.915278 0003 0000 23068 E: 1300099359.915280 0003 0001 15113 E: 1300099359.915282 0000 0000 0 E: 1300099359.921250 0003 002f 0 E: 1300099359.921261 0003 0035 22984 E: 1300099359.921263 0003 0036 15105 E: 1300099359.921271 0003 002f 1 E: 1300099359.921271 0003 0035 22792 E: 1300099359.921283 0003 0000 22984 E: 1300099359.921284 0003 0001 15111 E: 1300099359.921286 0000 0000 0 E: 1300099359.926250 0003 002f 0 E: 1300099359.926262 0003 0035 22904 E: 1300099359.926264 0003 0036 15102 E: 1300099359.926272 0003 002f 1 E: 1300099359.926272 0003 0035 22710 E: 1300099359.926283 0003 0000 22904 E: 1300099359.926285 0003 0001 15108 E: 1300099359.926287 0000 0000 0 E: 1300099359.931250 0003 002f 0 E: 1300099359.931261 0003 0035 22824 E: 1300099359.931263 0003 0036 15099 E: 1300099359.931270 0003 002f 1 E: 1300099359.931270 0003 0035 22626 E: 1300099359.931272 0003 0036 20206 E: 1300099359.931282 0003 0000 22824 E: 1300099359.931284 0003 0001 15105 E: 1300099359.931285 0000 0000 0 E: 1300099359.936248 0003 002f 0 E: 1300099359.936258 0003 0035 22742 E: 1300099359.936260 0003 0036 15096 E: 1300099359.936267 0003 002f 1 E: 1300099359.936268 0003 0035 22548 E: 1300099359.936269 0003 0036 20202 E: 1300099359.936279 0003 0000 22742 E: 1300099359.936281 0003 0001 15102 E: 1300099359.936282 0000 0000 0 E: 1300099359.941248 0003 002f 0 E: 1300099359.941258 0003 0035 22656 E: 1300099359.941260 0003 0036 15093 E: 1300099359.941268 0003 002f 1 E: 1300099359.941268 0003 0035 22464 E: 1300099359.941270 0003 0036 20193 E: 1300099359.941272 0003 0030 1224 E: 1300099359.941281 0003 0000 22656 E: 1300099359.941282 0003 0001 15099 E: 1300099359.941284 0000 0000 0 E: 1300099359.946246 0003 002f 0 E: 1300099359.946256 0003 0035 22572 E: 1300099359.946258 0003 0036 15090 E: 1300099359.946266 0003 002f 1 E: 1300099359.946266 0003 0035 22382 E: 1300099359.946268 0003 0036 20185 E: 1300099359.946270 0003 0030 1282 E: 1300099359.946279 0003 0000 22572 E: 1300099359.946280 0003 0001 15096 E: 1300099359.946282 0000 0000 0 E: 1300099359.951249 0003 002f 0 E: 1300099359.951260 0003 0035 22490 E: 1300099359.951268 0003 002f 1 E: 1300099359.951269 0003 0035 22294 E: 1300099359.951270 0003 0036 20183 E: 1300099359.951273 0003 0030 1325 E: 1300099359.951281 0003 0000 22490 E: 1300099359.951284 0000 0000 0 E: 1300099359.956248 0003 002f 0 E: 1300099359.956259 0003 0035 22414 E: 1300099359.956261 0003 0036 15087 E: 1300099359.956268 0003 002f 1 E: 1300099359.956269 0003 0035 22206 E: 1300099359.956270 0003 0036 20181 E: 1300099359.956273 0003 0030 1357 E: 1300099359.956281 0003 0000 22414 E: 1300099359.956283 0003 0001 15093 E: 1300099359.956284 0000 0000 0 E: 1300099359.961250 0003 002f 0 E: 1300099359.961260 0003 0035 22334 E: 1300099359.961262 0003 0036 15083 E: 1300099359.961269 0003 002f 1 E: 1300099359.961270 0003 0035 22116 E: 1300099359.961281 0003 0000 22334 E: 1300099359.961282 0003 0001 15090 E: 1300099359.961284 0000 0000 0 E: 1300099359.966253 0003 002f 0 E: 1300099359.966265 0003 0035 22244 E: 1300099359.966266 0003 0036 15075 E: 1300099359.966274 0003 002f 1 E: 1300099359.966275 0003 0035 22030 E: 1300099359.966276 0003 0036 20173 E: 1300099359.966279 0003 0030 1224 E: 1300099359.966287 0003 0000 22244 E: 1300099359.966289 0003 0001 15082 E: 1300099359.966291 0000 0000 0 E: 1300099359.971250 0003 002f 0 E: 1300099359.971261 0003 0035 22154 E: 1300099359.971263 0003 0036 15073 E: 1300099359.971270 0003 002f 1 E: 1300099359.971271 0003 0035 21944 E: 1300099359.971272 0003 0036 20163 E: 1300099359.971275 0003 0030 1191 E: 1300099359.971283 0003 0000 22154 E: 1300099359.971285 0003 0001 15079 E: 1300099359.971286 0000 0000 0 E: 1300099359.976248 0003 002f 0 E: 1300099359.976258 0003 0035 22066 E: 1300099359.976260 0003 0036 15071 E: 1300099359.976263 0003 0030 1224 E: 1300099359.976268 0003 002f 1 E: 1300099359.976269 0003 0035 21864 E: 1300099359.976270 0003 0036 20153 E: 1300099359.976273 0003 0030 1323 E: 1300099359.976281 0003 0000 22066 E: 1300099359.976283 0003 0001 15077 E: 1300099359.976285 0000 0000 0 E: 1300099359.982250 0003 002f 0 E: 1300099359.982262 0003 0035 21984 E: 1300099359.982264 0003 0036 15068 E: 1300099359.982267 0003 0030 1282 E: 1300099359.982272 0003 002f 1 E: 1300099359.982273 0003 0035 21780 E: 1300099359.982274 0003 0036 20142 E: 1300099359.982277 0003 0030 1265 E: 1300099359.982286 0003 0000 21984 E: 1300099359.982287 0003 0001 15074 E: 1300099359.982289 0000 0000 0 E: 1300099359.987247 0003 002f 0 E: 1300099359.987258 0003 0035 21902 E: 1300099359.987259 0003 0036 15059 E: 1300099359.987262 0003 0030 1325 E: 1300099359.987268 0003 002f 1 E: 1300099359.987268 0003 0035 21698 E: 1300099359.987270 0003 0036 20132 E: 1300099359.987272 0003 0030 1221 E: 1300099359.987280 0003 0000 21902 E: 1300099359.987282 0003 0001 15066 E: 1300099359.987284 0000 0000 0 E: 1300099359.992250 0003 002f 0 E: 1300099359.992260 0003 0035 21820 E: 1300099359.992262 0003 0036 15051 E: 1300099359.992265 0003 0030 1357 E: 1300099359.992270 0003 002f 1 E: 1300099359.992271 0003 0035 21618 E: 1300099359.992272 0003 0036 20122 E: 1300099359.992275 0003 0030 1188 E: 1300099359.992283 0003 0000 21820 E: 1300099359.992285 0003 0001 15058 E: 1300099359.992286 0000 0000 0 E: 1300099359.997249 0003 002f 0 E: 1300099359.997260 0003 0035 21736 E: 1300099359.997262 0003 0036 15047 E: 1300099359.997270 0003 002f 1 E: 1300099359.997270 0003 0035 21542 E: 1300099359.997272 0003 0036 20112 E: 1300099359.997282 0003 0000 21736 E: 1300099359.997283 0003 0001 15055 E: 1300099359.997285 0000 0000 0 E: 1300099360.002248 0003 002f 0 E: 1300099360.002258 0003 0035 21654 E: 1300099360.002260 0003 0036 15038 E: 1300099360.002263 0003 0030 1224 E: 1300099360.002268 0003 002f 1 E: 1300099360.002269 0003 0035 21468 E: 1300099360.002270 0003 0036 20100 E: 1300099360.002280 0003 0000 21654 E: 1300099360.002282 0003 0001 15046 E: 1300099360.002284 0000 0000 0 E: 1300099360.007246 0003 002f 0 E: 1300099360.007257 0003 0035 21574 E: 1300099360.007258 0003 0036 15030 E: 1300099360.007261 0003 0030 1191 E: 1300099360.007266 0003 002f 1 E: 1300099360.007267 0003 0035 21392 E: 1300099360.007269 0003 0036 20085 E: 1300099360.007279 0003 0000 21574 E: 1300099360.007281 0003 0001 15038 E: 1300099360.007282 0000 0000 0 E: 1300099360.012243 0003 002f 0 E: 1300099360.012253 0003 0035 21502 E: 1300099360.012255 0003 0036 15018 E: 1300099360.012259 0003 0030 1323 E: 1300099360.012266 0003 002f 1 E: 1300099360.012267 0003 0035 21312 E: 1300099360.012268 0003 0036 20051 E: 1300099360.012279 0003 0000 21502 E: 1300099360.012281 0003 0001 15028 E: 1300099360.012283 0000 0000 0 E: 1300099360.017246 0003 002f 0 E: 1300099360.017258 0003 0035 21426 E: 1300099360.017260 0003 0036 15003 E: 1300099360.017263 0003 0030 1356 E: 1300099360.017268 0003 002f 1 E: 1300099360.017269 0003 0035 21230 E: 1300099360.017271 0003 0036 20043 E: 1300099360.017281 0003 0000 21426 E: 1300099360.017283 0003 0001 15015 E: 1300099360.017284 0000 0000 0 E: 1300099360.022238 0003 002f 0 E: 1300099360.022243 0003 0035 21344 E: 1300099360.022245 0003 0036 14989 E: 1300099360.022248 0003 0030 1224 E: 1300099360.022253 0003 002f 1 E: 1300099360.022254 0003 0035 21156 E: 1300099360.022256 0003 0036 20034 E: 1300099360.022266 0003 0000 21344 E: 1300099360.022267 0003 0001 15002 E: 1300099360.022269 0000 0000 0 E: 1300099360.027249 0003 002f 0 E: 1300099360.027260 0003 0035 21262 E: 1300099360.027262 0003 0036 14976 E: 1300099360.027265 0003 0030 1191 E: 1300099360.027270 0003 002f 1 E: 1300099360.027271 0003 0035 21084 E: 1300099360.027272 0003 0036 20024 E: 1300099360.027274 0003 0034 1 E: 1300099360.027276 0003 0031 948 E: 1300099360.027284 0003 0000 21262 E: 1300099360.027286 0003 0001 14989 E: 1300099360.027287 0000 0000 0 E: 1300099360.032248 0003 002f 0 E: 1300099360.032259 0003 0035 21184 E: 1300099360.032261 0003 0036 14962 E: 1300099360.032269 0003 002f 1 E: 1300099360.032269 0003 0035 20958 E: 1300099360.032271 0003 0036 20012 E: 1300099360.032272 0003 0034 0 E: 1300099360.032274 0003 0030 1322 E: 1300099360.032276 0003 0031 993 E: 1300099360.032283 0003 0000 21184 E: 1300099360.032284 0003 0001 14975 E: 1300099360.032286 0000 0000 0 E: 1300099360.038238 0003 002f 0 E: 1300099360.038246 0003 0035 21112 E: 1300099360.038252 0003 0036 14949 E: 1300099360.038254 0003 0034 1 E: 1300099360.038257 0003 0031 946 E: 1300099360.038262 0003 002f 1 E: 1300099360.038262 0003 0035 20850 E: 1300099360.038264 0003 0036 19981 E: 1300099360.038266 0003 0030 1355 E: 1300099360.038282 0003 0000 21112 E: 1300099360.038283 0003 0001 14962 E: 1300099360.038285 0000 0000 0 E: 1300099360.043252 0003 002f 0 E: 1300099360.043266 0003 0035 21010 E: 1300099360.043268 0003 0036 14937 E: 1300099360.043274 0003 0034 0 E: 1300099360.043276 0003 0030 1323 E: 1300099360.043277 0003 0031 992 E: 1300099360.043282 0003 002f 1 E: 1300099360.043282 0003 0035 20756 E: 1300099360.043284 0003 0036 19971 E: 1300099360.043294 0003 0000 21010 E: 1300099360.043296 0003 0001 14949 E: 1300099360.043298 0000 0000 0 E: 1300099360.048246 0003 002f 0 E: 1300099360.048258 0003 0035 20896 E: 1300099360.048260 0003 0036 14923 E: 1300099360.048263 0003 0030 1356 E: 1300099360.048268 0003 002f 1 E: 1300099360.048269 0003 0035 20670 E: 1300099360.048271 0003 0036 19957 E: 1300099360.048281 0003 0000 20896 E: 1300099360.048282 0003 0001 14936 E: 1300099360.048284 0000 0000 0 E: 1300099360.053245 0003 002f 0 E: 1300099360.053255 0003 0035 20800 E: 1300099360.053257 0003 0036 14910 E: 1300099360.053264 0003 002f 1 E: 1300099360.053265 0003 0035 20594 E: 1300099360.053266 0003 0036 19921 E: 1300099360.053276 0003 0000 20800 E: 1300099360.053278 0003 0001 14923 E: 1300099360.053280 0000 0000 0 E: 1300099360.058246 0003 002f 0 E: 1300099360.058258 0003 0035 20712 E: 1300099360.058260 0003 0036 14897 E: 1300099360.058268 0003 002f 1 E: 1300099360.058268 0003 0035 20518 E: 1300099360.058270 0003 0036 19911 E: 1300099360.058280 0003 0000 20712 E: 1300099360.058282 0003 0001 14910 E: 1300099360.058283 0000 0000 0 E: 1300099360.063244 0003 002f 0 E: 1300099360.063254 0003 0035 20628 E: 1300099360.063256 0003 0036 14885 E: 1300099360.063263 0003 002f 1 E: 1300099360.063264 0003 0035 20440 E: 1300099360.063266 0003 0036 19879 E: 1300099360.063269 0003 0031 1027 E: 1300099360.063277 0003 0000 20628 E: 1300099360.063278 0003 0001 14897 E: 1300099360.063280 0000 0000 0 E: 1300099360.068246 0003 002f 0 E: 1300099360.068258 0003 0035 20552 E: 1300099360.068260 0003 0036 14875 E: 1300099360.068267 0003 002f 1 E: 1300099360.068268 0003 0035 20334 E: 1300099360.068269 0003 0036 19875 E: 1300099360.068279 0003 0000 20552 E: 1300099360.068281 0003 0001 14886 E: 1300099360.068283 0000 0000 0 E: 1300099360.073244 0003 002f 0 E: 1300099360.073255 0003 0035 20472 E: 1300099360.073256 0003 0036 14866 E: 1300099360.073260 0003 0031 1026 E: 1300099360.073265 0003 002f 1 E: 1300099360.073265 0003 0035 20252 E: 1300099360.073267 0003 0036 19841 E: 1300099360.073270 0003 0031 852 E: 1300099360.073278 0003 0000 20472 E: 1300099360.073279 0003 0001 14876 E: 1300099360.073281 0000 0000 0 E: 1300099360.078247 0003 002f 0 E: 1300099360.078257 0003 0035 20366 E: 1300099360.078259 0003 0036 14857 E: 1300099360.078266 0003 002f 1 E: 1300099360.078267 0003 0035 20170 E: 1300099360.078269 0003 0036 19833 E: 1300099360.078272 0003 0031 808 E: 1300099360.078279 0003 0000 20366 E: 1300099360.078281 0003 0001 14866 E: 1300099360.078282 0000 0000 0 E: 1300099360.083247 0003 002f 0 E: 1300099360.083258 0003 0035 20286 E: 1300099360.083259 0003 0036 14823 E: 1300099360.083263 0003 0031 852 E: 1300099360.083268 0003 002f 1 E: 1300099360.083268 0003 0035 20076 E: 1300099360.083270 0003 0036 19820 E: 1300099360.083273 0003 0031 775 E: 1300099360.083281 0003 0000 20286 E: 1300099360.083282 0003 0001 14823 E: 1300099360.083284 0000 0000 0 E: 1300099360.088246 0003 002f 0 E: 1300099360.088256 0003 0035 20208 E: 1300099360.088258 0003 0036 14820 E: 1300099360.088262 0003 0031 808 E: 1300099360.088266 0003 002f 1 E: 1300099360.088267 0003 0035 19994 E: 1300099360.088268 0003 0036 19805 E: 1300099360.088279 0003 0000 20208 E: 1300099360.088281 0000 0000 0 E: 1300099360.093236 0003 002f 0 E: 1300099360.093240 0003 0035 20126 E: 1300099360.093242 0003 0036 14810 E: 1300099360.093245 0003 0031 775 E: 1300099360.093250 0003 002f 1 E: 1300099360.093251 0003 0035 19906 E: 1300099360.093252 0003 0036 19791 E: 1300099360.093262 0003 0000 20126 E: 1300099360.093264 0003 0001 14819 E: 1300099360.093266 0000 0000 0 E: 1300099360.099254 0003 002f 0 E: 1300099360.099268 0003 0035 20044 E: 1300099360.099270 0003 0036 14801 E: 1300099360.099277 0003 002f 1 E: 1300099360.099278 0003 0035 19820 E: 1300099360.099279 0003 0036 19782 E: 1300099360.099283 0003 0031 807 E: 1300099360.099290 0003 0000 20044 E: 1300099360.099292 0003 0001 14810 E: 1300099360.099294 0000 0000 0 E: 1300099360.104244 0003 002f 0 E: 1300099360.104254 0003 0035 19956 E: 1300099360.104256 0003 0036 14791 E: 1300099360.104264 0003 002f 1 E: 1300099360.104264 0003 0035 19734 E: 1300099360.104266 0003 0036 19768 E: 1300099360.104276 0003 0000 19956 E: 1300099360.104277 0003 0001 14800 E: 1300099360.104279 0000 0000 0 E: 1300099360.109238 0003 002f 0 E: 1300099360.109244 0003 0035 19868 E: 1300099360.109245 0003 0036 14781 E: 1300099360.109249 0003 0031 807 E: 1300099360.109254 0003 002f 1 E: 1300099360.109255 0003 0035 19650 E: 1300099360.109256 0003 0036 19755 E: 1300099360.109260 0003 0031 774 E: 1300099360.109267 0003 0000 19868 E: 1300099360.109269 0003 0001 14790 E: 1300099360.109270 0000 0000 0 E: 1300099360.114244 0003 002f 0 E: 1300099360.114255 0003 0035 19784 E: 1300099360.114256 0003 0036 14772 E: 1300099360.114264 0003 002f 1 E: 1300099360.114264 0003 0035 19564 E: 1300099360.114266 0003 0036 19744 E: 1300099360.114276 0003 0000 19784 E: 1300099360.114278 0003 0001 14781 E: 1300099360.114279 0000 0000 0 E: 1300099360.119232 0003 002f 0 E: 1300099360.119240 0003 0035 19700 E: 1300099360.119246 0003 0036 14761 E: 1300099360.119254 0003 002f 1 E: 1300099360.119254 0003 0035 19480 E: 1300099360.119256 0003 0036 19736 E: 1300099360.119266 0003 0000 19700 E: 1300099360.119268 0003 0001 14771 E: 1300099360.119270 0000 0000 0 E: 1300099360.124247 0003 002f 0 E: 1300099360.124260 0003 0035 19620 E: 1300099360.124262 0003 0036 14752 E: 1300099360.124269 0003 002f 1 E: 1300099360.124270 0003 0035 19394 E: 1300099360.124271 0003 0036 19728 E: 1300099360.124275 0003 0031 806 E: 1300099360.124282 0003 0000 19620 E: 1300099360.124284 0003 0001 14761 E: 1300099360.124286 0000 0000 0 E: 1300099360.129247 0003 002f 0 E: 1300099360.129258 0003 0035 19536 E: 1300099360.129260 0003 0036 14748 E: 1300099360.129263 0003 0031 774 E: 1300099360.129268 0003 002f 1 E: 1300099360.129268 0003 0035 19312 E: 1300099360.129270 0003 0036 19719 E: 1300099360.129280 0003 0000 19536 E: 1300099360.129282 0003 0001 14757 E: 1300099360.129283 0000 0000 0 E: 1300099360.134245 0003 002f 0 E: 1300099360.134256 0003 0035 19454 E: 1300099360.134258 0003 0036 14744 E: 1300099360.134262 0003 0031 806 E: 1300099360.134266 0003 002f 1 E: 1300099360.134267 0003 0035 19232 E: 1300099360.134268 0003 0036 19708 E: 1300099360.134279 0003 0000 19454 E: 1300099360.134280 0003 0001 14753 E: 1300099360.134282 0000 0000 0 E: 1300099360.139244 0003 002f 0 E: 1300099360.139254 0003 0035 19372 E: 1300099360.139256 0003 0036 14741 E: 1300099360.139264 0003 002f 1 E: 1300099360.139264 0003 0035 19152 E: 1300099360.139266 0003 0036 19697 E: 1300099360.139269 0003 0031 774 E: 1300099360.139277 0003 0000 19372 E: 1300099360.139278 0003 0001 14750 E: 1300099360.139280 0000 0000 0 E: 1300099360.144236 0003 002f 0 E: 1300099360.144241 0003 0035 19294 E: 1300099360.144243 0003 0036 14739 E: 1300099360.144251 0003 002f 1 E: 1300099360.144252 0003 0035 19072 E: 1300099360.144253 0003 0036 19685 E: 1300099360.144264 0003 0000 19294 E: 1300099360.144266 0003 0001 14747 E: 1300099360.144267 0000 0000 0 E: 1300099360.149245 0003 002f 0 E: 1300099360.149256 0003 0035 19216 E: 1300099360.149258 0003 0036 14736 E: 1300099360.149265 0003 002f 1 E: 1300099360.149266 0003 0035 18990 E: 1300099360.149268 0003 0036 19676 E: 1300099360.149278 0003 0000 19216 E: 1300099360.149280 0003 0001 14744 E: 1300099360.149282 0000 0000 0 E: 1300099360.155234 0003 002f 0 E: 1300099360.155242 0003 0035 19140 E: 1300099360.155243 0003 0036 14733 E: 1300099360.155251 0003 002f 1 E: 1300099360.155251 0003 0035 18912 E: 1300099360.155253 0003 0036 19666 E: 1300099360.155256 0003 0031 806 E: 1300099360.155264 0003 0000 19140 E: 1300099360.155265 0003 0001 14741 E: 1300099360.155267 0000 0000 0 E: 1300099360.160249 0003 002f 0 E: 1300099360.160260 0003 0035 19062 E: 1300099360.160262 0003 0036 14729 E: 1300099360.160266 0003 0031 774 E: 1300099360.160270 0003 002f 1 E: 1300099360.160271 0003 0035 18832 E: 1300099360.160272 0003 0036 19657 E: 1300099360.160283 0003 0000 19062 E: 1300099360.160284 0003 0001 14738 E: 1300099360.160286 0000 0000 0 E: 1300099360.165245 0003 002f 0 E: 1300099360.165258 0003 0035 18982 E: 1300099360.165260 0003 0036 14726 E: 1300099360.165267 0003 002f 1 E: 1300099360.165268 0003 0035 18758 E: 1300099360.165270 0003 0036 19648 E: 1300099360.165280 0003 0000 18982 E: 1300099360.165281 0003 0001 14735 E: 1300099360.165283 0000 0000 0 E: 1300099360.170245 0003 002f 0 E: 1300099360.170255 0003 0035 18904 E: 1300099360.170257 0003 0036 14723 E: 1300099360.170261 0003 0031 806 E: 1300099360.170265 0003 002f 1 E: 1300099360.170266 0003 0035 18682 E: 1300099360.170267 0003 0036 19644 E: 1300099360.170271 0003 0031 774 E: 1300099360.170278 0003 0000 18904 E: 1300099360.170279 0003 0001 14732 E: 1300099360.170281 0000 0000 0 E: 1300099360.175244 0003 002f 0 E: 1300099360.175254 0003 0035 18826 E: 1300099360.175263 0003 002f 1 E: 1300099360.175264 0003 0035 18602 E: 1300099360.175265 0003 0036 19636 E: 1300099360.175275 0003 0000 18826 E: 1300099360.175277 0003 0001 14729 E: 1300099360.175278 0000 0000 0 E: 1300099360.180245 0003 002f 0 E: 1300099360.180256 0003 0035 18754 E: 1300099360.180264 0003 002f 1 E: 1300099360.180265 0003 0035 18524 E: 1300099360.180266 0003 0036 19633 E: 1300099360.180276 0003 0000 18754 E: 1300099360.180279 0000 0000 0 E: 1300099360.185245 0003 002f 0 E: 1300099360.185255 0003 0035 18682 E: 1300099360.185264 0003 002f 1 E: 1300099360.185264 0003 0035 18444 E: 1300099360.185266 0003 0036 19630 E: 1300099360.185270 0003 0031 806 E: 1300099360.185277 0003 0000 18682 E: 1300099360.185280 0000 0000 0 E: 1300099360.190243 0003 002f 0 E: 1300099360.190253 0003 0035 18606 E: 1300099360.190255 0003 0036 14720 E: 1300099360.190259 0003 0031 774 E: 1300099360.190263 0003 002f 1 E: 1300099360.190264 0003 0035 18368 E: 1300099360.190265 0003 0036 19627 E: 1300099360.190275 0003 0000 18606 E: 1300099360.190277 0003 0001 14726 E: 1300099360.190278 0000 0000 0 E: 1300099360.195245 0003 002f 0 E: 1300099360.195255 0003 0035 18530 E: 1300099360.195257 0003 0036 14718 E: 1300099360.195261 0003 0031 806 E: 1300099360.195265 0003 002f 1 E: 1300099360.195266 0003 0035 18294 E: 1300099360.195267 0003 0036 19623 E: 1300099360.195277 0003 0000 18530 E: 1300099360.195279 0003 0001 14724 E: 1300099360.195281 0000 0000 0 E: 1300099360.200243 0003 002f 0 E: 1300099360.200253 0003 0035 18450 E: 1300099360.200262 0003 002f 1 E: 1300099360.200262 0003 0035 18226 E: 1300099360.200264 0003 0036 19619 E: 1300099360.200274 0003 0000 18450 E: 1300099360.200277 0000 0000 0 E: 1300099360.205244 0003 002f 0 E: 1300099360.205255 0003 0035 18376 E: 1300099360.205263 0003 002f 1 E: 1300099360.205264 0003 0035 18158 E: 1300099360.205266 0003 0036 19616 E: 1300099360.205269 0003 0031 774 E: 1300099360.205277 0003 0000 18376 E: 1300099360.205279 0000 0000 0 E: 1300099360.211245 0003 002f 0 E: 1300099360.211255 0003 0035 18304 E: 1300099360.211264 0003 002f 1 E: 1300099360.211265 0003 0035 18090 E: 1300099360.211266 0003 0036 19613 E: 1300099360.211276 0003 0000 18304 E: 1300099360.211279 0000 0000 0 E: 1300099360.216245 0003 002f 0 E: 1300099360.216256 0003 0035 18238 E: 1300099360.216265 0003 002f 1 E: 1300099360.216265 0003 0035 18024 E: 1300099360.216276 0003 0000 18238 E: 1300099360.216279 0000 0000 0 E: 1300099360.221242 0003 002f 0 E: 1300099360.221252 0003 0035 18206 E: 1300099360.221260 0003 002f 1 E: 1300099360.221261 0003 0035 17958 E: 1300099360.221272 0003 0000 18206 E: 1300099360.221275 0000 0000 0 E: 1300099360.226242 0003 002f 0 E: 1300099360.226247 0003 0035 18142 E: 1300099360.226252 0003 0031 774 E: 1300099360.226257 0003 002f 1 E: 1300099360.226258 0003 0035 17924 E: 1300099360.226262 0003 0031 806 E: 1300099360.226270 0003 0000 18142 E: 1300099360.226273 0000 0000 0 E: 1300099360.231243 0003 002f 0 E: 1300099360.231254 0003 0035 18074 E: 1300099360.231262 0003 002f 1 E: 1300099360.231263 0003 0035 17892 E: 1300099360.231274 0003 0000 18074 E: 1300099360.231277 0000 0000 0 E: 1300099360.236233 0003 002f 0 E: 1300099360.236241 0003 0035 18008 E: 1300099360.236248 0003 0036 14719 E: 1300099360.236255 0003 002f 1 E: 1300099360.236256 0003 0035 17862 E: 1300099360.236267 0003 0000 18008 E: 1300099360.236271 0000 0000 0 E: 1300099360.241243 0003 002f 0 E: 1300099360.241255 0003 0035 17976 E: 1300099360.241257 0003 0036 14721 E: 1300099360.241265 0003 002f 1 E: 1300099360.241265 0003 0035 17796 E: 1300099360.241267 0003 0036 19615 E: 1300099360.241277 0003 0000 17976 E: 1300099360.241280 0000 0000 0 E: 1300099360.246245 0003 002f 0 E: 1300099360.246255 0003 0035 17910 E: 1300099360.246256 0003 0036 14724 E: 1300099360.246260 0003 0031 806 E: 1300099360.246264 0003 002f 1 E: 1300099360.246265 0003 0035 17764 E: 1300099360.246267 0003 0036 19617 E: 1300099360.246277 0003 0000 17910 E: 1300099360.246279 0000 0000 0 E: 1300099360.251243 0003 002f 0 E: 1300099360.251254 0003 0035 17878 E: 1300099360.251256 0003 0036 14734 E: 1300099360.251259 0003 0030 1224 E: 1300099360.251264 0003 002f 1 E: 1300099360.251265 0003 0035 17692 E: 1300099360.251267 0003 0036 19620 E: 1300099360.251270 0003 0031 774 E: 1300099360.251277 0003 0000 17878 E: 1300099360.251279 0003 0001 14726 E: 1300099360.251281 0000 0000 0 E: 1300099360.256242 0003 002f 0 E: 1300099360.256252 0003 0035 17864 E: 1300099360.256254 0003 0036 14741 E: 1300099360.256257 0003 0030 1191 E: 1300099360.256262 0003 002f 1 E: 1300099360.256263 0003 0035 17662 E: 1300099360.256264 0003 0036 19623 E: 1300099360.256275 0003 0000 17874 E: 1300099360.256276 0003 0001 14733 E: 1300099360.256278 0000 0000 0 E: 1300099360.261245 0003 002f 0 E: 1300099360.261255 0003 0035 17820 E: 1300099360.261257 0003 0036 14749 E: 1300099360.261264 0003 002f 1 E: 1300099360.261265 0003 0035 17630 E: 1300099360.261267 0003 0036 19626 E: 1300099360.261277 0003 0000 17820 E: 1300099360.261278 0003 0001 14741 E: 1300099360.261280 0000 0000 0 E: 1300099360.266241 0003 002f 0 E: 1300099360.266252 0003 0035 17790 E: 1300099360.266254 0003 0036 14751 E: 1300099360.266256 0003 0030 1323 E: 1300099360.266262 0003 002f 1 E: 1300099360.266262 0003 0035 17600 E: 1300099360.266264 0003 0036 19629 E: 1300099360.266274 0003 0000 17790 E: 1300099360.266276 0003 0001 14743 E: 1300099360.266277 0000 0000 0 E: 1300099360.272243 0003 002f 0 E: 1300099360.272253 0003 0035 17760 E: 1300099360.272255 0003 0036 14753 E: 1300099360.272258 0003 0030 1356 E: 1300099360.272263 0003 002f 1 E: 1300099360.272264 0003 0035 17566 E: 1300099360.272265 0003 0036 19632 E: 1300099360.272275 0003 0000 17760 E: 1300099360.272277 0003 0001 14745 E: 1300099360.272279 0000 0000 0 E: 1300099360.277244 0003 002f 0 E: 1300099360.277254 0003 0035 17728 E: 1300099360.277256 0003 0036 14755 E: 1300099360.277264 0003 002f 1 E: 1300099360.277264 0003 0035 17534 E: 1300099360.277266 0003 0036 19635 E: 1300099360.277276 0003 0000 17728 E: 1300099360.277278 0003 0001 14747 E: 1300099360.277279 0000 0000 0 E: 1300099360.282244 0003 002f 0 E: 1300099360.282255 0003 0035 17698 E: 1300099360.282257 0003 0036 14757 E: 1300099360.282260 0003 0031 774 E: 1300099360.282265 0003 002f 1 E: 1300099360.282266 0003 0035 17504 E: 1300099360.282267 0003 0036 19638 E: 1300099360.282278 0003 0000 17698 E: 1300099360.282279 0003 0001 14749 E: 1300099360.282281 0000 0000 0 E: 1300099360.287241 0003 002f 0 E: 1300099360.287251 0003 0035 17666 E: 1300099360.287253 0003 0036 14759 E: 1300099360.287260 0003 002f 1 E: 1300099360.287261 0003 0035 17474 E: 1300099360.287262 0003 0036 19645 E: 1300099360.287273 0003 0000 17666 E: 1300099360.287274 0003 0001 14751 E: 1300099360.287276 0000 0000 0 E: 1300099360.292242 0003 002f 0 E: 1300099360.292253 0003 0035 17602 E: 1300099360.292255 0003 0036 14762 E: 1300099360.292263 0003 002f 1 E: 1300099360.292263 0003 0035 17460 E: 1300099360.292265 0003 0036 19647 E: 1300099360.292275 0003 0000 17602 E: 1300099360.292277 0003 0001 14753 E: 1300099360.292278 0000 0000 0 E: 1300099360.297242 0003 002f 0 E: 1300099360.297252 0003 0035 17570 E: 1300099360.297254 0003 0036 14765 E: 1300099360.297261 0003 002f 1 E: 1300099360.297262 0003 0035 17416 E: 1300099360.297264 0003 0036 19650 E: 1300099360.297267 0003 0031 952 E: 1300099360.297274 0003 0000 17570 E: 1300099360.297276 0003 0001 14756 E: 1300099360.297278 0000 0000 0 E: 1300099360.302234 0003 002f 0 E: 1300099360.302248 0003 0035 17538 E: 1300099360.302250 0003 0036 14768 E: 1300099360.302258 0003 0030 1224 E: 1300099360.302264 0003 002f 1 E: 1300099360.302265 0003 0035 17386 E: 1300099360.302267 0003 0036 19653 E: 1300099360.302270 0003 0031 996 E: 1300099360.302278 0003 0000 17538 E: 1300099360.302280 0003 0001 14759 E: 1300099360.302282 0000 0000 0 E: 1300099360.307241 0003 002f 0 E: 1300099360.307253 0003 0035 17508 E: 1300099360.307255 0003 0036 14770 E: 1300099360.307258 0003 0030 1191 E: 1300099360.307263 0003 002f 1 E: 1300099360.307263 0003 0035 17286 E: 1300099360.307265 0003 0036 19655 E: 1300099360.307268 0003 0031 1029 E: 1300099360.307276 0003 0000 17508 E: 1300099360.307277 0003 0001 14761 E: 1300099360.307279 0000 0000 0 E: 1300099360.312252 0003 002f 0 E: 1300099360.312263 0003 0035 17494 E: 1300099360.312265 0003 0036 14773 E: 1300099360.312272 0003 002f 1 E: 1300099360.312273 0003 0035 17192 E: 1300099360.312284 0003 0000 17504 E: 1300099360.312285 0003 0001 14764 E: 1300099360.312287 0000 0000 0 E: 1300099360.317242 0003 002f 0 E: 1300099360.317252 0003 0035 17452 E: 1300099360.317254 0003 0036 14776 E: 1300099360.317261 0003 002f 1 E: 1300099360.317262 0003 0035 17112 E: 1300099360.317264 0003 0036 19657 E: 1300099360.317274 0003 0000 17452 E: 1300099360.317275 0003 0001 14767 E: 1300099360.317277 0000 0000 0 E: 1300099360.322240 0003 002f 0 E: 1300099360.322250 0003 0035 17438 E: 1300099360.322252 0003 0036 14783 E: 1300099360.322259 0003 002f 1 E: 1300099360.322260 0003 0035 17036 E: 1300099360.322271 0003 0000 17448 E: 1300099360.322273 0003 0001 14775 E: 1300099360.322274 0000 0000 0 E: 1300099360.328242 0003 002f 0 E: 1300099360.328252 0003 0035 17398 E: 1300099360.328254 0003 0036 14785 E: 1300099360.328255 0003 0034 1 E: 1300099360.328258 0003 0031 933 E: 1300099360.328262 0003 002f 1 E: 1300099360.328263 0003 0035 16962 E: 1300099360.328274 0003 0000 17398 E: 1300099360.328276 0003 0001 14777 E: 1300099360.328278 0000 0000 0 E: 1300099360.333246 0003 002f 0 E: 1300099360.333258 0003 0035 17384 E: 1300099360.333260 0003 0036 14788 E: 1300099360.333264 0003 0031 972 E: 1300099360.333268 0003 002f 1 E: 1300099360.333269 0003 0035 16896 E: 1300099360.333320 0003 0000 17394 E: 1300099360.333322 0003 0001 14779 E: 1300099360.333323 0000 0000 0 E: 1300099360.338241 0003 002f 0 E: 1300099360.338253 0003 0035 17342 E: 1300099360.338255 0003 0036 14791 E: 1300099360.338263 0003 002f 1 E: 1300099360.338263 0003 0035 16883 E: 1300099360.338274 0003 0000 17342 E: 1300099360.338276 0003 0001 14782 E: 1300099360.338278 0000 0000 0 E: 1300099360.343241 0003 002f 0 E: 1300099360.343252 0003 0035 17258 E: 1300099360.343254 0003 0036 14794 E: 1300099360.343256 0003 0034 0 E: 1300099360.343257 0003 0030 1323 E: 1300099360.343259 0003 0031 1011 E: 1300099360.343263 0003 002f 1 E: 1300099360.343264 0003 0035 16842 E: 1300099360.343275 0003 0000 17258 E: 1300099360.343276 0003 0001 14785 E: 1300099360.343278 0000 0000 0 E: 1300099360.348241 0003 002f 0 E: 1300099360.348251 0003 0035 17176 E: 1300099360.348253 0003 0036 14795 E: 1300099360.348256 0003 0030 1356 E: 1300099360.348261 0003 002f 1 E: 1300099360.348262 0003 0035 16829 E: 1300099360.348273 0003 0000 17176 E: 1300099360.348275 0003 0001 14787 E: 1300099360.348276 0000 0000 0 E: 1300099360.353238 0003 002f 0 E: 1300099360.353248 0003 0035 17098 E: 1300099360.353250 0003 0036 14797 E: 1300099360.353257 0003 002f 1 E: 1300099360.353258 0003 0035 16790 E: 1300099360.353260 0003 0036 19655 E: 1300099360.353270 0003 0000 17098 E: 1300099360.353271 0003 0001 14789 E: 1300099360.353273 0000 0000 0 E: 1300099360.358241 0003 002f 0 E: 1300099360.358252 0003 0035 17022 E: 1300099360.358253 0003 0036 14800 E: 1300099360.358261 0003 002f 1 E: 1300099360.358262 0003 0035 16779 E: 1300099360.358263 0003 0036 19653 E: 1300099360.358273 0003 0000 17022 E: 1300099360.358275 0003 0001 14791 E: 1300099360.358277 0000 0000 0 E: 1300099360.363240 0003 002f 0 E: 1300099360.363251 0003 0035 16956 E: 1300099360.363253 0003 0036 14808 E: 1300099360.363255 0003 0030 1224 E: 1300099360.363261 0003 002f 1 E: 1300099360.363261 0003 0035 16746 E: 1300099360.363272 0003 0000 16956 E: 1300099360.363274 0003 0001 14799 E: 1300099360.363275 0000 0000 0 E: 1300099360.368240 0003 002f 0 E: 1300099360.368250 0003 0035 16924 E: 1300099360.368252 0003 0036 14811 E: 1300099360.368255 0003 0030 1191 E: 1300099360.368260 0003 002f 1 E: 1300099360.368261 0003 0035 16735 E: 1300099360.368272 0003 0000 16924 E: 1300099360.368273 0003 0001 14802 E: 1300099360.368275 0000 0000 0 E: 1300099360.373239 0003 002f 0 E: 1300099360.373249 0003 0035 16910 E: 1300099360.373251 0003 0036 14814 E: 1300099360.373259 0003 002f 1 E: 1300099360.373259 0003 0035 16720 E: 1300099360.373270 0003 0000 16920 E: 1300099360.373272 0003 0001 14805 E: 1300099360.373273 0000 0000 0 E: 1300099360.378241 0003 002f 0 E: 1300099360.378252 0003 0035 16868 E: 1300099360.378253 0003 0036 14821 E: 1300099360.378261 0003 002f 1 E: 1300099360.378262 0003 0035 16684 E: 1300099360.378272 0003 0000 16868 E: 1300099360.378274 0003 0001 14813 E: 1300099360.378276 0000 0000 0 E: 1300099360.384238 0003 002f 0 E: 1300099360.384248 0003 0035 16838 E: 1300099360.384250 0003 0036 14824 E: 1300099360.384258 0003 002f 1 E: 1300099360.384258 0003 0035 16674 E: 1300099360.384269 0003 0000 16838 E: 1300099360.384271 0003 0001 14815 E: 1300099360.384272 0000 0000 0 E: 1300099360.389240 0003 002f 0 E: 1300099360.389250 0003 0035 16825 E: 1300099360.389252 0003 0036 14832 E: 1300099360.389259 0003 002f 1 E: 1300099360.389260 0003 0035 16642 E: 1300099360.389271 0003 0000 16834 E: 1300099360.389273 0003 0001 14823 E: 1300099360.389274 0000 0000 0 E: 1300099360.394238 0003 002f 0 E: 1300099360.394249 0003 0035 16788 E: 1300099360.394251 0003 0036 14840 E: 1300099360.394258 0003 002f 1 E: 1300099360.394259 0003 0035 16632 E: 1300099360.394260 0003 0036 19655 E: 1300099360.394270 0003 0000 16788 E: 1300099360.394272 0003 0001 14831 E: 1300099360.394274 0000 0000 0 E: 1300099360.399242 0003 002f 0 E: 1300099360.399254 0003 0035 16776 E: 1300099360.399256 0003 0036 14848 E: 1300099360.399263 0003 002f 1 E: 1300099360.399264 0003 0035 16618 E: 1300099360.399265 0003 0036 19658 E: 1300099360.399275 0003 0000 16785 E: 1300099360.399277 0003 0001 14839 E: 1300099360.399278 0000 0000 0 E: 1300099360.404239 0003 002f 0 E: 1300099360.404249 0003 0035 16742 E: 1300099360.404251 0003 0036 14856 E: 1300099360.404258 0003 002f 1 E: 1300099360.404259 0003 0035 16584 E: 1300099360.404260 0003 0036 19666 E: 1300099360.404270 0003 0000 16742 E: 1300099360.404272 0003 0001 14847 E: 1300099360.404274 0000 0000 0 E: 1300099360.409231 0003 002f 0 E: 1300099360.409240 0003 0035 16730 E: 1300099360.409242 0003 0036 14866 E: 1300099360.409250 0003 002f 1 E: 1300099360.409251 0003 0035 16510 E: 1300099360.409253 0003 0036 19675 E: 1300099360.409264 0003 0000 16739 E: 1300099360.409265 0003 0001 14856 E: 1300099360.409267 0000 0000 0 E: 1300099360.414238 0003 002f 0 E: 1300099360.414250 0003 0035 16692 E: 1300099360.414252 0003 0036 14897 E: 1300099360.414255 0003 0030 1323 E: 1300099360.414260 0003 002f 1 E: 1300099360.414261 0003 0035 16438 E: 1300099360.414262 0003 0036 19683 E: 1300099360.414272 0003 0000 16692 E: 1300099360.414274 0003 0001 14897 E: 1300099360.414276 0000 0000 0 E: 1300099360.419227 0003 002f 0 E: 1300099360.419235 0003 0035 16678 E: 1300099360.419241 0003 0036 14906 E: 1300099360.419244 0003 0030 1356 E: 1300099360.419249 0003 002f 1 E: 1300099360.419250 0003 0035 16427 E: 1300099360.419252 0003 0036 19685 E: 1300099360.419255 0003 0031 853 E: 1300099360.419269 0003 0000 16688 E: 1300099360.419270 0003 0001 14899 E: 1300099360.419272 0000 0000 0 E: 1300099360.424239 0003 002f 0 E: 1300099360.424251 0003 0035 16634 E: 1300099360.424254 0003 0036 14937 E: 1300099360.424261 0003 002f 1 E: 1300099360.424262 0003 0035 16394 E: 1300099360.424263 0003 0036 19687 E: 1300099360.424266 0003 0030 1223 E: 1300099360.424267 0003 0031 809 E: 1300099360.424275 0003 0000 16634 E: 1300099360.424276 0003 0001 14937 E: 1300099360.424278 0000 0000 0 E: 1300099360.429243 0003 002f 0 E: 1300099360.429254 0003 0035 16568 E: 1300099360.429256 0003 0036 14985 E: 1300099360.429260 0003 0031 844 E: 1300099360.429262 0003 002f 1 E: 1300099360.429263 0003 0039 -1 E: 1300099360.429269 0003 0000 16568 E: 1300099360.429271 0003 0001 14985 E: 1300099360.429273 0000 0000 0 E: 1300099360.434236 0003 002f 0 E: 1300099360.434249 0003 0039 -1 E: 1300099360.434253 0001 014a 0 E: 1300099360.434255 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recording.cpp0000644000015600001650000000246412651522342023144 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include "recording.h" #include oif::evemu::Recording::Recording(const Device& device, const char* file) : device_(device), file_(fopen(file, "r")) { if (!file_) throw std::runtime_error("Failed to open evemu recording"); } void oif::evemu::Recording::Play() const { rewind(file_); if (evemu_play(file_, device_.fd()) != 0) throw std::runtime_error("Failed to play evemu recording"); } oif::evemu::Recording::~Recording() { fclose(file_); } grail-3.1.0+16.04.20160125/test/integration/events.h0000644000015600001650000000301412651522342022131 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #ifndef GRAIL_TEST_EVENTS_H_ #define GRAIL_TEST_EVENTS_H_ #include #include #include "oif/grail.h" namespace oif { namespace grail { namespace testing { struct Slice { bool skip; unsigned int id; UGGestureState state; UGGestureTypeMask recognized; unsigned int num_touches; float original_center_x; float original_center_y; float original_radius; float transform[3][3]; float cumulative_transform[3][3]; float center_of_rotation_x; float center_of_rotation_y; bool construction_finished; UGSubscription subscription; }; typedef std::vector Events; } // namespace testing } // namespace grail } // namespace oif #endif // GRAIL_TEST_EVENTS_H_ grail-3.1.0+16.04.20160125/test/integration/slice-checker.h0000644000015600001650000001321412651522342023331 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #ifndef _GRAIL_TEST_SLICE_CHECKER_H_ #define _GRAIL_TEST_SLICE_CHECKER_H_ #include #include #include namespace oif { namespace grail { namespace testing { /* Holds the expected values for some of the properties of a UGSlice. */ struct ExpectedSlice { UGGestureState state; UGGestureTypeMask recognized; unsigned int num_touches; bool construction_finished; UGSubscription subscription; }; /* Abstract base class for states of the slice checker. */ class SliceCheckerState { public: virtual ~SliceCheckerState() {}; /* Average number of slices that should arrive with the values described in the concrete state class. This is a convenience function that will set min_count and max_count appropriately. */ void SetAverageCount(unsigned int average_count); /* Minimum and maximum number of slices that should arrive with the values described in the concrete state class */ unsigned int min_count; unsigned int max_count; protected: enum StateType { SlicesType, /* ExpectSlices class */ ParallelSlicesType, /* ParalellRepeatedSlices class */ }; /* Returns the type of the state. With that information you're able to cast a SliceCheckerState pointer to a pointer of the corresponding concrete state class. */ virtual StateType type() = 0; friend class SliceChecker; }; /* Tells the slice checker to expect a stream of slices with the same characteristics. */ class ExpectSlices : public SliceCheckerState { public: ExpectSlices() : actual_count(0) {} virtual ~ExpectSlices() {}; /* Property values of the expected slices. */ ExpectedSlice expected_slice; protected: virtual StateType type() {return SlicesType;} private: /* Filled by the slice checker. Number of times a slice was successfully matched against expected_slice. */ unsigned int actual_count; friend class SliceChecker; }; /* Tells the slice checker to check for a single slice. Essentially a convenience class wrapping ExpectedSlices */ class ExpectSlice : public ExpectSlices { public: ExpectSlice() {min_count = 1; max_count = 1;} }; /* Tells the slice checker to check for multiple streams of repeated slices that come interleaved. */ class ExpectParallelSlices : public SliceCheckerState { public: virtual ~ExpectParallelSlices() {}; virtual StateType type() {return ParallelSlicesType;} /* Property values of the expected slices from each stream. min_count and max_count are meant for each expected slice. */ std::vector expected_slices; private: /* Filled by the slice checker. Number of times a slice was successfully matched against expected_slices[index]. */ std::vector actual_count; friend class SliceChecker; }; /* This class checks if a stream of slices given to it via CheckSlice() have the characteristics described in the slice checker states provided. Usage: 1- Describe the stream of slices you expect. * Do that by providing a sequence of slice checker states via AppendState() 2- Provide the stream of slices that will be checked against those expectations. * Do that by calling CheckSlice(), in order. 3- Verify that all expected slices have been received. * Call CheckAllExpectedSlicesReceived() */ class SliceChecker { public: SliceChecker(); /* Appends a state. */ void AppendState(std::unique_ptr state); /* Checks the given slice. */ void CheckSlice(UGSlice slice); /* Checks if all the expected slices have been received. Will cause a gtest assertion failure if not. */ void CheckAllExpectedSlicesReceived(); private: void CheckSlice(UGSlice slice, ExpectSlices *state); void CheckSlice(UGSlice slice, ExpectParallelSlices *state); void CheckAllExpectedSlicesReceived(ExpectSlices *state); void CheckAllExpectedSlicesReceived(ExpectParallelSlices *state); /* Returns true if the given slice matches all values described by expected_slice and false otherwise. */ static bool SliceMatches(UGSlice slice, const ExpectedSlice &expected_slice); /* When CheckSlice(UGSlice slice) is called, how that slice will be checked depends on the current state of the slice checker. That current state is defined by slice_checker_states_[curr_state_] slice_checker_states_ holds a vector of states and curr_state_ is the index of the current state. This is a linear state machine, where from "state 0" you can only transition to "state 1", from "state 1" you only to "state 2" and so on until the last state is reached. */ unsigned int curr_state_; std::vector> slice_checker_states_; }; } // namespace testing } // namespace grail } // namespace oif #endif // _GRAIL_TEST_SLICE_CHECKER_H_ grail-3.1.0+16.04.20160125/test/integration/recordings/0000755000015600001650000000000012651522500022611 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/0000755000015600001650000000000012651522501025532 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/device.prop0000644000015600001650000000153712651522342027704 0ustar pbuserpbgroup00000000000000N: N-Trig MultiTouch (Virtual Test Device) I: 0003 1b96 0001 0110 P: 00 00 00 00 00 00 00 00 B: 00 0b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 04 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 01 73 00 B: 04 00 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 0 9600 75 0 A: 01 0 7200 78 0 A: 28 0 255 0 0 A: 30 0 9600 200 0 A: 31 0 7200 150 0 A: 34 0 1 0 0 A: 35 0 9600 75 0 A: 36 0 7200 78 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/drag_above_thresh.record0000644000015600001650000000073612651522342032411 0ustar pbuserpbgroup00000000000000E: 1327542640.244090 0003 0035 2745 E: 1327542640.244091 0003 0036 1639 E: 1327542640.244093 0003 0030 468 E: 1327542640.244095 0000 0002 0 E: 1327542640.244097 0001 014a 1 E: 1327542640.244253 0000 0000 0 E: 1327542640.245090 0003 0035 2829 E: 1327542640.245091 0003 0036 1639 E: 1327542640.245093 0003 0030 468 E: 1327542640.245095 0000 0002 0 E: 1327542640.245097 0001 014a 1 E: 1327542640.245253 0000 0000 0 E: 1327542640.246097 0001 014a 0 E: 1327542640.246316 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/2_drag.record0000644000015600001650000005041512651522342030100 0ustar pbuserpbgroup00000000000000E: 1327447991.134002 0003 0035 4194 E: 1327447991.134003 0003 0036 1794 E: 1327447991.134004 0003 0034 1 E: 1327447991.134006 0003 0030 204 E: 1327447991.134007 0003 0031 156 E: 1327447991.134008 0000 0002 0 E: 1327447991.134136 0000 0000 0 E: 1327447991.143913 0003 0000 5312 E: 1327447991.143915 0003 0001 1752 E: 1327447991.143916 0003 0035 5312 E: 1327447991.143917 0003 0036 1752 E: 1327447991.143918 0003 0034 0 E: 1327447991.143919 0003 0030 468 E: 1327447991.143920 0003 0031 306 E: 1327447991.143922 0000 0002 0 E: 1327447991.143954 0003 0035 4162 E: 1327447991.143955 0003 0036 1867 E: 1327447991.143957 0003 0034 0 E: 1327447991.143958 0003 0030 312 E: 1327447991.143959 0003 0031 306 E: 1327447991.143960 0000 0002 0 E: 1327447991.144084 0001 014d 1 E: 1327447991.144085 0001 014a 1 E: 1327447991.144086 0000 0000 0 E: 1327447991.159909 0003 0000 5324 E: 1327447991.159911 0003 0001 1733 E: 1327447991.159912 0003 0035 5324 E: 1327447991.159913 0003 0036 1733 E: 1327447991.159914 0003 0034 0 E: 1327447991.159915 0003 0030 468 E: 1327447991.159916 0003 0031 306 E: 1327447991.159917 0000 0002 0 E: 1327447991.159950 0003 0035 4156 E: 1327447991.159951 0003 0036 1768 E: 1327447991.159952 0003 0034 0 E: 1327447991.159953 0003 0030 468 E: 1327447991.159954 0003 0031 306 E: 1327447991.159955 0000 0002 0 E: 1327447991.160081 0000 0000 0 E: 1327447991.169899 0003 0000 5278 E: 1327447991.169901 0003 0001 1837 E: 1327447991.169902 0003 0035 5278 E: 1327447991.169903 0003 0036 1837 E: 1327447991.169904 0003 0034 0 E: 1327447991.169905 0003 0030 468 E: 1327447991.169906 0003 0031 306 E: 1327447991.169907 0000 0002 0 E: 1327447991.169940 0003 0035 4120 E: 1327447991.169941 0003 0036 1943 E: 1327447991.169942 0003 0034 0 E: 1327447991.169943 0003 0030 468 E: 1327447991.169944 0003 0031 306 E: 1327447991.169945 0000 0002 0 E: 1327447991.170071 0000 0000 0 E: 1327447991.189839 0003 0000 5277 E: 1327447991.189841 0003 0001 1885 E: 1327447991.189842 0003 0035 5277 E: 1327447991.189842 0003 0036 1885 E: 1327447991.189843 0003 0034 0 E: 1327447991.189843 0003 0030 312 E: 1327447991.189844 0003 0031 306 E: 1327447991.189845 0000 0002 0 E: 1327447991.189863 0003 0035 4128 E: 1327447991.189864 0003 0036 2033 E: 1327447991.189864 0003 0034 0 E: 1327447991.189865 0003 0030 624 E: 1327447991.189866 0003 0031 408 E: 1327447991.189866 0000 0002 0 E: 1327447991.189937 0000 0000 0 E: 1327447991.207878 0003 0000 5271 E: 1327447991.207880 0003 0001 1977 E: 1327447991.207882 0003 0035 5271 E: 1327447991.207883 0003 0036 1977 E: 1327447991.207884 0003 0034 0 E: 1327447991.207885 0003 0030 468 E: 1327447991.207886 0003 0031 306 E: 1327447991.207887 0000 0002 0 E: 1327447991.207921 0003 0035 4109 E: 1327447991.207923 0003 0036 2096 E: 1327447991.207924 0003 0034 0 E: 1327447991.207925 0003 0030 468 E: 1327447991.207926 0003 0031 306 E: 1327447991.207927 0000 0002 0 E: 1327447991.208057 0000 0000 0 E: 1327447991.225930 0003 0000 5251 E: 1327447991.225932 0003 0001 2046 E: 1327447991.225933 0003 0035 5251 E: 1327447991.225934 0003 0036 2046 E: 1327447991.225935 0003 0034 0 E: 1327447991.225936 0003 0030 468 E: 1327447991.225937 0003 0031 306 E: 1327447991.225939 0000 0002 0 E: 1327447991.225972 0003 0035 4092 E: 1327447991.225973 0003 0036 2193 E: 1327447991.225974 0003 0034 0 E: 1327447991.225975 0003 0030 468 E: 1327447991.225976 0003 0031 408 E: 1327447991.225977 0000 0002 0 E: 1327447991.226104 0000 0000 0 E: 1327447991.243895 0003 0000 5258 E: 1327447991.243897 0003 0001 2189 E: 1327447991.243898 0003 0035 5258 E: 1327447991.243899 0003 0036 2189 E: 1327447991.243900 0003 0034 0 E: 1327447991.243901 0003 0030 468 E: 1327447991.243902 0003 0031 306 E: 1327447991.243904 0000 0002 0 E: 1327447991.243936 0003 0035 4065 E: 1327447991.243938 0003 0036 2298 E: 1327447991.243939 0003 0034 0 E: 1327447991.243940 0003 0030 468 E: 1327447991.243941 0003 0031 408 E: 1327447991.243942 0000 0002 0 E: 1327447991.244068 0000 0000 0 E: 1327447991.261871 0003 0000 5241 E: 1327447991.261873 0003 0001 2298 E: 1327447991.261874 0003 0035 5241 E: 1327447991.261875 0003 0036 2298 E: 1327447991.261877 0003 0034 0 E: 1327447991.261878 0003 0030 468 E: 1327447991.261879 0003 0031 306 E: 1327447991.261880 0000 0002 0 E: 1327447991.261913 0003 0035 4078 E: 1327447991.261914 0003 0036 2409 E: 1327447991.261915 0003 0034 0 E: 1327447991.261916 0003 0030 468 E: 1327447991.261918 0003 0031 408 E: 1327447991.261919 0000 0002 0 E: 1327447991.262047 0000 0000 0 E: 1327447991.279960 0003 0000 5240 E: 1327447991.279961 0003 0001 2363 E: 1327447991.279962 0003 0035 5240 E: 1327447991.279964 0003 0036 2363 E: 1327447991.279965 0003 0034 0 E: 1327447991.279966 0003 0030 468 E: 1327447991.279967 0003 0031 306 E: 1327447991.279968 0000 0002 0 E: 1327447991.280001 0003 0035 4064 E: 1327447991.280002 0003 0036 2549 E: 1327447991.280004 0003 0034 0 E: 1327447991.280005 0003 0030 468 E: 1327447991.280006 0003 0031 306 E: 1327447991.280007 0000 0002 0 E: 1327447991.280134 0000 0000 0 E: 1327447991.297949 0003 0000 5233 E: 1327447991.297951 0003 0001 2505 E: 1327447991.297952 0003 0035 5233 E: 1327447991.297953 0003 0036 2505 E: 1327447991.297955 0003 0034 0 E: 1327447991.297956 0003 0030 468 E: 1327447991.297957 0003 0031 408 E: 1327447991.297958 0000 0002 0 E: 1327447991.297991 0003 0035 4068 E: 1327447991.297992 0003 0036 2659 E: 1327447991.297993 0003 0034 0 E: 1327447991.297994 0003 0030 312 E: 1327447991.297995 0003 0031 306 E: 1327447991.297997 0000 0002 0 E: 1327447991.298124 0000 0000 0 E: 1327447991.315959 0003 0000 5228 E: 1327447991.315961 0003 0001 2651 E: 1327447991.315962 0003 0035 5228 E: 1327447991.315963 0003 0036 2651 E: 1327447991.315964 0003 0034 0 E: 1327447991.315965 0003 0030 468 E: 1327447991.315967 0003 0031 306 E: 1327447991.315968 0000 0002 0 E: 1327447991.316001 0003 0035 4079 E: 1327447991.316002 0003 0036 2817 E: 1327447991.316003 0003 0034 0 E: 1327447991.316004 0003 0030 468 E: 1327447991.316005 0003 0031 408 E: 1327447991.316006 0000 0002 0 E: 1327447991.316133 0000 0000 0 E: 1327447991.333960 0003 0000 5224 E: 1327447991.333961 0003 0001 2782 E: 1327447991.333963 0003 0035 5224 E: 1327447991.333964 0003 0036 2782 E: 1327447991.333965 0003 0034 0 E: 1327447991.333966 0003 0030 468 E: 1327447991.333967 0003 0031 408 E: 1327447991.333968 0000 0002 0 E: 1327447991.334001 0003 0035 4053 E: 1327447991.334002 0003 0036 2939 E: 1327447991.334004 0003 0034 0 E: 1327447991.334005 0003 0030 624 E: 1327447991.334006 0003 0031 408 E: 1327447991.334007 0000 0002 0 E: 1327447991.334134 0000 0000 0 E: 1327447991.351959 0003 0000 5230 E: 1327447991.351961 0003 0001 2884 E: 1327447991.351962 0003 0035 5230 E: 1327447991.351963 0003 0036 2884 E: 1327447991.351964 0003 0034 0 E: 1327447991.351965 0003 0030 468 E: 1327447991.351966 0003 0031 306 E: 1327447991.351967 0000 0002 0 E: 1327447991.352001 0003 0035 4079 E: 1327447991.352002 0003 0036 3055 E: 1327447991.352003 0003 0034 0 E: 1327447991.352004 0003 0030 468 E: 1327447991.352005 0003 0031 408 E: 1327447991.352006 0000 0002 0 E: 1327447991.352133 0000 0000 0 E: 1327447991.371950 0003 0000 5224 E: 1327447991.371952 0003 0001 2986 E: 1327447991.371953 0003 0035 5224 E: 1327447991.371954 0003 0036 2986 E: 1327447991.371955 0003 0034 0 E: 1327447991.371956 0003 0030 468 E: 1327447991.371957 0003 0031 408 E: 1327447991.371959 0000 0002 0 E: 1327447991.371992 0003 0035 4071 E: 1327447991.371993 0003 0036 3178 E: 1327447991.371994 0003 0034 0 E: 1327447991.371995 0003 0030 468 E: 1327447991.371996 0003 0031 408 E: 1327447991.371997 0000 0002 0 E: 1327447991.372124 0000 0000 0 E: 1327447991.389960 0003 0000 5219 E: 1327447991.389961 0003 0001 3141 E: 1327447991.389963 0003 0035 5219 E: 1327447991.389964 0003 0036 3141 E: 1327447991.389965 0003 0034 1 E: 1327447991.389966 0003 0030 408 E: 1327447991.389967 0003 0031 312 E: 1327447991.389968 0000 0002 0 E: 1327447991.390001 0003 0035 4070 E: 1327447991.390002 0003 0036 3295 E: 1327447991.390004 0003 0034 1 E: 1327447991.390005 0003 0030 408 E: 1327447991.390006 0003 0031 312 E: 1327447991.390007 0000 0002 0 E: 1327447991.390134 0000 0000 0 E: 1327447991.407910 0003 0000 5234 E: 1327447991.407912 0003 0001 3263 E: 1327447991.407913 0003 0035 5234 E: 1327447991.407914 0003 0036 3263 E: 1327447991.407916 0003 0034 0 E: 1327447991.407917 0003 0030 468 E: 1327447991.407918 0003 0031 306 E: 1327447991.407919 0000 0002 0 E: 1327447991.407952 0003 0035 4079 E: 1327447991.407953 0003 0036 3417 E: 1327447991.407954 0003 0034 0 E: 1327447991.407955 0003 0030 468 E: 1327447991.407956 0003 0031 408 E: 1327447991.407958 0000 0002 0 E: 1327447991.408084 0000 0000 0 E: 1327447991.425950 0003 0000 5230 E: 1327447991.425951 0003 0001 3416 E: 1327447991.425952 0003 0035 5230 E: 1327447991.425954 0003 0036 3416 E: 1327447991.425955 0003 0034 0 E: 1327447991.425956 0003 0030 468 E: 1327447991.425957 0003 0031 408 E: 1327447991.425958 0000 0002 0 E: 1327447991.425991 0003 0035 4067 E: 1327447991.425992 0003 0036 3550 E: 1327447991.425994 0003 0034 0 E: 1327447991.425995 0003 0030 468 E: 1327447991.425996 0003 0031 408 E: 1327447991.425997 0000 0002 0 E: 1327447991.426124 0000 0000 0 E: 1327447991.443912 0003 0000 5224 E: 1327447991.443914 0003 0001 3494 E: 1327447991.443915 0003 0035 5224 E: 1327447991.443916 0003 0036 3494 E: 1327447991.443917 0003 0034 0 E: 1327447991.443918 0003 0030 468 E: 1327447991.443920 0003 0031 306 E: 1327447991.443921 0000 0002 0 E: 1327447991.443954 0003 0035 4067 E: 1327447991.443955 0003 0036 3648 E: 1327447991.443956 0003 0034 0 E: 1327447991.443957 0003 0030 468 E: 1327447991.443958 0003 0031 306 E: 1327447991.443959 0000 0002 0 E: 1327447991.444086 0000 0000 0 E: 1327447991.461960 0003 0000 5228 E: 1327447991.461962 0003 0001 3589 E: 1327447991.461963 0003 0035 5228 E: 1327447991.461964 0003 0036 3589 E: 1327447991.461965 0003 0034 0 E: 1327447991.461966 0003 0030 312 E: 1327447991.461967 0003 0031 306 E: 1327447991.461968 0000 0002 0 E: 1327447991.462001 0003 0035 4062 E: 1327447991.462003 0003 0036 3770 E: 1327447991.462004 0003 0034 0 E: 1327447991.462005 0003 0030 468 E: 1327447991.462006 0003 0031 408 E: 1327447991.462007 0000 0002 0 E: 1327447991.462134 0000 0000 0 E: 1327447991.479912 0003 0000 5227 E: 1327447991.479914 0003 0001 3742 E: 1327447991.479915 0003 0035 5227 E: 1327447991.479916 0003 0036 3742 E: 1327447991.479917 0003 0034 0 E: 1327447991.479918 0003 0030 624 E: 1327447991.479920 0003 0031 306 E: 1327447991.479921 0000 0002 0 E: 1327447991.479954 0003 0035 4066 E: 1327447991.479955 0003 0036 3882 E: 1327447991.479956 0003 0034 0 E: 1327447991.479957 0003 0030 468 E: 1327447991.479958 0003 0031 306 E: 1327447991.479959 0000 0002 0 E: 1327447991.480086 0000 0000 0 E: 1327447991.497960 0003 0000 5208 E: 1327447991.497962 0003 0001 3832 E: 1327447991.497963 0003 0035 5208 E: 1327447991.497964 0003 0036 3832 E: 1327447991.497965 0003 0034 0 E: 1327447991.497966 0003 0030 468 E: 1327447991.497967 0003 0031 408 E: 1327447991.497968 0000 0002 0 E: 1327447991.498002 0003 0035 4058 E: 1327447991.498003 0003 0036 3985 E: 1327447991.498004 0003 0034 0 E: 1327447991.498005 0003 0030 468 E: 1327447991.498006 0003 0031 408 E: 1327447991.498007 0000 0002 0 E: 1327447991.498134 0000 0000 0 E: 1327447991.515911 0003 0000 5226 E: 1327447991.515913 0003 0001 3926 E: 1327447991.515914 0003 0035 5226 E: 1327447991.515915 0003 0036 3926 E: 1327447991.515916 0003 0034 0 E: 1327447991.515917 0003 0030 468 E: 1327447991.515918 0003 0031 408 E: 1327447991.515920 0000 0002 0 E: 1327447991.515953 0003 0035 4069 E: 1327447991.515954 0003 0036 4105 E: 1327447991.515955 0003 0034 0 E: 1327447991.515956 0003 0030 468 E: 1327447991.515957 0003 0031 408 E: 1327447991.515958 0000 0002 0 E: 1327447991.516085 0000 0000 0 E: 1327447991.533960 0003 0000 5220 E: 1327447991.533962 0003 0001 4034 E: 1327447991.533963 0003 0035 5220 E: 1327447991.533964 0003 0036 4034 E: 1327447991.533965 0003 0034 0 E: 1327447991.533966 0003 0030 468 E: 1327447991.533967 0003 0031 408 E: 1327447991.533969 0000 0002 0 E: 1327447991.534002 0003 0035 4069 E: 1327447991.534003 0003 0036 4211 E: 1327447991.534004 0003 0034 1 E: 1327447991.534005 0003 0030 408 E: 1327447991.534006 0003 0031 312 E: 1327447991.534007 0000 0002 0 E: 1327447991.534134 0000 0000 0 E: 1327447991.551911 0003 0000 5213 E: 1327447991.551913 0003 0001 4173 E: 1327447991.551914 0003 0035 5213 E: 1327447991.551915 0003 0036 4173 E: 1327447991.551916 0003 0034 0 E: 1327447991.551917 0003 0030 468 E: 1327447991.551918 0003 0031 408 E: 1327447991.551919 0000 0002 0 E: 1327447991.551953 0003 0035 4054 E: 1327447991.551954 0003 0036 4330 E: 1327447991.551955 0003 0034 0 E: 1327447991.551956 0003 0030 468 E: 1327447991.551957 0003 0031 306 E: 1327447991.551958 0000 0002 0 E: 1327447991.552085 0000 0000 0 E: 1327447991.571955 0003 0001 4251 E: 1327447991.571957 0003 0035 5213 E: 1327447991.571958 0003 0036 4251 E: 1327447991.571959 0003 0034 0 E: 1327447991.571960 0003 0030 468 E: 1327447991.571961 0003 0031 408 E: 1327447991.571963 0000 0002 0 E: 1327447991.571996 0003 0035 4075 E: 1327447991.571997 0003 0036 4425 E: 1327447991.571998 0003 0034 0 E: 1327447991.571999 0003 0030 468 E: 1327447991.572000 0003 0031 408 E: 1327447991.572001 0000 0002 0 E: 1327447991.572128 0000 0000 0 E: 1327447991.589961 0003 0000 5207 E: 1327447991.589962 0003 0001 4367 E: 1327447991.589964 0003 0035 5207 E: 1327447991.589965 0003 0036 4367 E: 1327447991.589966 0003 0034 1 E: 1327447991.589967 0003 0030 408 E: 1327447991.589968 0003 0031 312 E: 1327447991.589969 0000 0002 0 E: 1327447991.590002 0003 0035 4050 E: 1327447991.590003 0003 0036 4539 E: 1327447991.590005 0003 0034 0 E: 1327447991.590006 0003 0030 468 E: 1327447991.590007 0003 0031 306 E: 1327447991.590008 0000 0002 0 E: 1327447991.590135 0000 0000 0 E: 1327447991.607962 0003 0000 5213 E: 1327447991.607963 0003 0001 4514 E: 1327447991.607964 0003 0035 5213 E: 1327447991.607966 0003 0036 4514 E: 1327447991.607967 0003 0034 0 E: 1327447991.607968 0003 0030 624 E: 1327447991.607969 0003 0031 408 E: 1327447991.607970 0000 0002 0 E: 1327447991.608003 0003 0035 4062 E: 1327447991.608004 0003 0036 4655 E: 1327447991.608006 0003 0034 0 E: 1327447991.608007 0003 0030 468 E: 1327447991.608008 0003 0031 408 E: 1327447991.608009 0000 0002 0 E: 1327447991.608136 0000 0000 0 E: 1327447991.625911 0003 0000 5198 E: 1327447991.625913 0003 0001 4602 E: 1327447991.625914 0003 0035 5198 E: 1327447991.625915 0003 0036 4602 E: 1327447991.625916 0003 0034 0 E: 1327447991.625917 0003 0030 468 E: 1327447991.625918 0003 0031 306 E: 1327447991.625920 0000 0002 0 E: 1327447991.625953 0003 0035 4052 E: 1327447991.625954 0003 0036 4774 E: 1327447991.625955 0003 0034 0 E: 1327447991.625956 0003 0030 624 E: 1327447991.625957 0003 0031 408 E: 1327447991.625958 0000 0002 0 E: 1327447991.626085 0000 0000 0 E: 1327447991.643962 0003 0000 5199 E: 1327447991.643964 0003 0001 4724 E: 1327447991.643965 0003 0035 5199 E: 1327447991.643966 0003 0036 4724 E: 1327447991.643967 0003 0034 0 E: 1327447991.643968 0003 0030 468 E: 1327447991.643969 0003 0031 408 E: 1327447991.643970 0000 0002 0 E: 1327447991.644004 0003 0035 4053 E: 1327447991.644005 0003 0036 4868 E: 1327447991.644006 0003 0034 1 E: 1327447991.644007 0003 0030 408 E: 1327447991.644008 0003 0031 312 E: 1327447991.644009 0000 0002 0 E: 1327447991.644136 0000 0000 0 E: 1327447991.661911 0003 0000 5203 E: 1327447991.661913 0003 0001 4847 E: 1327447991.661914 0003 0035 5203 E: 1327447991.661915 0003 0036 4847 E: 1327447991.661916 0003 0034 1 E: 1327447991.661917 0003 0030 408 E: 1327447991.661918 0003 0031 312 E: 1327447991.661919 0000 0002 0 E: 1327447991.661953 0003 0035 4068 E: 1327447991.661954 0003 0036 4996 E: 1327447991.661955 0003 0034 0 E: 1327447991.661956 0003 0030 312 E: 1327447991.661957 0003 0031 306 E: 1327447991.661958 0000 0002 0 E: 1327447991.662085 0000 0000 0 E: 1327447991.679962 0003 0000 5207 E: 1327447991.679963 0003 0001 4971 E: 1327447991.679965 0003 0035 5207 E: 1327447991.679966 0003 0036 4971 E: 1327447991.679967 0003 0034 1 E: 1327447991.679968 0003 0030 408 E: 1327447991.679969 0003 0031 312 E: 1327447991.679970 0000 0002 0 E: 1327447991.680003 0003 0035 4043 E: 1327447991.680004 0003 0036 5111 E: 1327447991.680006 0003 0034 0 E: 1327447991.680007 0003 0030 468 E: 1327447991.680008 0003 0031 306 E: 1327447991.680009 0000 0002 0 E: 1327447991.680136 0000 0000 0 E: 1327447991.697911 0003 0000 5188 E: 1327447991.697913 0003 0001 5084 E: 1327447991.697914 0003 0035 5188 E: 1327447991.697915 0003 0036 5084 E: 1327447991.697916 0003 0034 0 E: 1327447991.697917 0003 0030 468 E: 1327447991.697918 0003 0031 306 E: 1327447991.697920 0000 0002 0 E: 1327447991.697953 0003 0035 4059 E: 1327447991.697954 0003 0036 5203 E: 1327447991.697955 0003 0034 0 E: 1327447991.697956 0003 0030 312 E: 1327447991.697957 0003 0031 306 E: 1327447991.697958 0000 0002 0 E: 1327447991.698085 0000 0000 0 E: 1327447991.715961 0003 0000 5193 E: 1327447991.715962 0003 0001 5191 E: 1327447991.715964 0003 0035 5193 E: 1327447991.715965 0003 0036 5191 E: 1327447991.715966 0003 0034 0 E: 1327447991.715967 0003 0030 468 E: 1327447991.715968 0003 0031 408 E: 1327447991.715969 0000 0002 0 E: 1327447991.716003 0003 0035 4047 E: 1327447991.716004 0003 0036 5329 E: 1327447991.716005 0003 0034 0 E: 1327447991.716006 0003 0030 312 E: 1327447991.716007 0003 0031 306 E: 1327447991.716008 0000 0002 0 E: 1327447991.716135 0000 0000 0 E: 1327447991.733911 0003 0000 5194 E: 1327447991.733913 0003 0001 5304 E: 1327447991.733914 0003 0035 5194 E: 1327447991.733915 0003 0036 5304 E: 1327447991.733916 0003 0034 0 E: 1327447991.733917 0003 0030 312 E: 1327447991.733918 0003 0031 306 E: 1327447991.733920 0000 0002 0 E: 1327447991.733953 0003 0035 4030 E: 1327447991.733954 0003 0036 5379 E: 1327447991.733955 0003 0034 0 E: 1327447991.733956 0003 0030 312 E: 1327447991.733957 0003 0031 306 E: 1327447991.733958 0000 0002 0 E: 1327447991.734085 0000 0000 0 E: 1327447991.753962 0003 0000 5179 E: 1327447991.753964 0003 0001 5400 E: 1327447991.753965 0003 0035 5179 E: 1327447991.753966 0003 0036 5400 E: 1327447991.753967 0003 0034 0 E: 1327447991.753968 0003 0030 468 E: 1327447991.753969 0003 0031 204 E: 1327447991.753970 0000 0002 0 E: 1327447991.754004 0003 0035 4032 E: 1327447991.754005 0003 0036 5477 E: 1327447991.754006 0003 0034 0 E: 1327447991.754007 0003 0030 312 E: 1327447991.754008 0003 0031 306 E: 1327447991.754009 0000 0002 0 E: 1327447991.754136 0000 0000 0 E: 1327447991.771993 0003 0035 5183 E: 1327447991.771994 0003 0036 5432 E: 1327447991.771995 0003 0034 0 E: 1327447991.771997 0003 0030 468 E: 1327447991.771998 0003 0031 306 E: 1327447991.771999 0000 0002 0 E: 1327447991.772031 0003 0035 4036 E: 1327447991.772032 0003 0036 5531 E: 1327447991.772033 0003 0034 0 E: 1327447991.772035 0003 0030 312 E: 1327447991.772036 0003 0031 306 E: 1327447991.772037 0000 0002 0 E: 1327447991.772132 0001 014d 0 E: 1327447991.772133 0001 014a 0 E: 1327447991.772134 0000 0000 0 E: 1327447991.789911 0003 0000 5183 E: 1327447991.789912 0003 0001 5439 E: 1327447991.789914 0003 0035 5183 E: 1327447991.789915 0003 0036 5439 E: 1327447991.789916 0003 0034 0 E: 1327447991.789917 0003 0030 312 E: 1327447991.789918 0003 0031 306 E: 1327447991.789919 0000 0002 0 E: 1327447991.789952 0003 0035 4029 E: 1327447991.789954 0003 0036 5591 E: 1327447991.789955 0003 0034 0 E: 1327447991.789956 0003 0030 312 E: 1327447991.789957 0003 0031 306 E: 1327447991.789958 0000 0002 0 E: 1327447991.790083 0001 014d 1 E: 1327447991.790084 0001 014a 1 E: 1327447991.790085 0000 0000 0 E: 1327447991.807960 0003 0000 5190 E: 1327447991.807962 0003 0001 5463 E: 1327447991.807963 0003 0035 5190 E: 1327447991.807964 0003 0036 5463 E: 1327447991.807965 0003 0034 0 E: 1327447991.807966 0003 0030 468 E: 1327447991.807967 0003 0031 306 E: 1327447991.807969 0000 0002 0 E: 1327447991.808002 0003 0035 4046 E: 1327447991.808003 0003 0036 5591 E: 1327447991.808004 0003 0034 0 E: 1327447991.808005 0003 0030 312 E: 1327447991.808006 0003 0031 306 E: 1327447991.808007 0000 0002 0 E: 1327447991.808134 0000 0000 0 E: 1327447991.825912 0003 0000 5182 E: 1327447991.825914 0003 0001 5481 E: 1327447991.825915 0003 0035 5182 E: 1327447991.825916 0003 0036 5481 E: 1327447991.825918 0003 0034 0 E: 1327447991.825919 0003 0030 312 E: 1327447991.825920 0003 0031 306 E: 1327447991.825921 0000 0002 0 E: 1327447991.825954 0003 0035 4054 E: 1327447991.825955 0003 0036 5604 E: 1327447991.825956 0003 0034 0 E: 1327447991.825957 0003 0030 312 E: 1327447991.825958 0003 0031 306 E: 1327447991.825959 0000 0002 0 E: 1327447991.826086 0000 0000 0 E: 1327447991.914116 0001 014d 0 E: 1327447991.914117 0001 014a 0 E: 1327447991.914118 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/1_begin.record0000644000015600001650000000057312651522342030246 0ustar pbuserpbgroup00000000000000E: 1327542640.244087 0003 0000 2745 E: 1327542640.244089 0003 0001 1639 E: 1327542640.244090 0003 0035 2745 E: 1327542640.244091 0003 0036 1639 E: 1327542640.244092 0003 0034 0 E: 1327542640.244093 0003 0030 468 E: 1327542640.244094 0003 0031 306 E: 1327542640.244095 0000 0002 0 E: 1327542640.244251 0001 014d 1 E: 1327542640.244251 0001 014a 1 E: 1327542640.244253 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/1_end.record0000644000015600001650000000014312651522342027721 0ustar pbuserpbgroup00000000000000E: 1327542642.244253 0001 014d 0 E: 1327542642.244253 0001 014a 0 E: 1327542642.244253 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/drag_below_thresh.record0000644000015600001650000000073612651522342032425 0ustar pbuserpbgroup00000000000000E: 1327542640.244090 0003 0035 2745 E: 1327542640.244091 0003 0036 1639 E: 1327542640.244093 0003 0030 468 E: 1327542640.244095 0000 0002 0 E: 1327542640.244097 0001 014a 1 E: 1327542640.244253 0000 0000 0 E: 1327542640.245090 0003 0035 2819 E: 1327542640.245091 0003 0036 1639 E: 1327542640.245093 0003 0030 468 E: 1327542640.245095 0000 0002 0 E: 1327542640.245097 0001 014a 1 E: 1327542640.245253 0000 0000 0 E: 1327542640.246097 0001 014a 0 E: 1327542640.246316 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/2_tap.record0000644000015600001650000000125612651522342027746 0ustar pbuserpbgroup00000000000000E: 1327542640.244087 0003 0000 2745 E: 1327542640.244089 0003 0001 1639 E: 1327542640.244090 0003 0035 2745 E: 1327542640.244091 0003 0036 1639 E: 1327542640.244092 0003 0034 0 E: 1327542640.244093 0003 0030 468 E: 1327542640.244094 0003 0031 306 E: 1327542640.244095 0000 0002 0 E: 1327542640.244090 0003 0035 2845 E: 1327542640.244091 0003 0036 1639 E: 1327542640.244092 0003 0034 0 E: 1327542640.244093 0003 0030 468 E: 1327542640.244094 0003 0031 306 E: 1327542640.244095 0000 0002 0 E: 1327542640.244251 0001 014d 1 E: 1327542640.244251 0001 014a 1 E: 1327542640.244253 0000 0000 0 E: 1327542640.244253 0001 014d 0 E: 1327542640.244253 0001 014a 0 E: 1327542640.244253 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/timeout.record0000644000015600001650000000073612651522342030431 0ustar pbuserpbgroup00000000000000E: 1327542640.244087 0003 0000 2745 E: 1327542640.244089 0003 0001 1639 E: 1327542640.244090 0003 0035 2745 E: 1327542640.244091 0003 0036 1639 E: 1327542640.244092 0003 0034 0 E: 1327542640.244093 0003 0030 468 E: 1327542640.244094 0003 0031 306 E: 1327542640.244095 0000 0002 0 E: 1327542640.244251 0001 014d 1 E: 1327542640.244251 0001 014a 1 E: 1327542640.244253 0000 0000 0 E: 1327542642.518313 0001 014d 0 E: 1327542642.518314 0001 014a 0 E: 1327542642.518316 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/ntrig_dell_xt2/1_tap.record0000644000015600001650000000073612651522342027747 0ustar pbuserpbgroup00000000000000E: 1327542640.244087 0003 0000 2745 E: 1327542640.244089 0003 0001 1639 E: 1327542640.244090 0003 0035 2745 E: 1327542640.244091 0003 0036 1639 E: 1327542640.244092 0003 0034 0 E: 1327542640.244093 0003 0030 468 E: 1327542640.244094 0003 0031 306 E: 1327542640.244095 0000 0002 0 E: 1327542640.244251 0001 014d 1 E: 1327542640.244251 0001 014a 1 E: 1327542640.244253 0000 0000 0 E: 1327542640.244253 0001 014d 0 E: 1327542640.244253 0001 014a 0 E: 1327542640.244253 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/apple_magic_trackpad/0000755000015600001650000000000012651522501026724 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/recordings/apple_magic_trackpad/synced_4_drag.record0000644000015600001650000005777412651522342032660 0ustar pbuserpbgroup00000000000000E: 1331641155.505566 0003 0039 1 E: 1331641155.505567 0003 0030 84 E: 1331641155.505568 0003 0031 132 E: 1331641155.505568 0003 0034 8 E: 1331641155.505569 0003 0035 -1940 E: 1331641155.505570 0003 0036 -910 E: 1331641155.505571 0000 0002 0 E: 1331641155.505571 0003 0039 2 E: 1331641155.505572 0003 0030 64 E: 1331641155.505573 0003 0031 76 E: 1331641155.505573 0003 0034 1 E: 1331641155.505574 0003 0035 1649 E: 1331641155.505575 0003 0036 -1430 E: 1331641155.505575 0000 0002 0 E: 1331641155.505576 0003 0039 3 E: 1331641155.505577 0003 0030 164 E: 1331641155.505577 0003 0031 124 E: 1331641155.505578 0003 0034 0 E: 1331641155.505578 0003 0035 -1055 E: 1331641155.505579 0003 0036 -1523 E: 1331641155.505580 0000 0002 0 E: 1331641155.505580 0003 0039 8 E: 1331641155.505581 0003 0030 180 E: 1331641155.505582 0003 0031 188 E: 1331641155.505582 0003 0034 32 E: 1331641155.505583 0003 0035 249 E: 1331641155.505584 0003 0036 -1808 E: 1331641155.505584 0000 0002 0 E: 1331641155.505585 0001 014a 1 E: 1331641155.505587 0001 014f 1 E: 1331641155.505587 0003 0000 -1940 E: 1331641155.505588 0003 0001 -910 E: 1331641155.505589 0000 0000 0 E: 1331641155.530563 0003 0039 1 E: 1331641155.530564 0003 0030 100 E: 1331641155.530564 0003 0031 152 E: 1331641155.530565 0003 0034 0 E: 1331641155.530565 0003 0035 -1950 E: 1331641155.530566 0003 0036 -898 E: 1331641155.530567 0000 0002 0 E: 1331641155.530568 0003 0039 2 E: 1331641155.530568 0003 0030 96 E: 1331641155.530569 0003 0031 132 E: 1331641155.530569 0003 0034 0 E: 1331641155.530570 0003 0035 1631 E: 1331641155.530571 0003 0036 -1420 E: 1331641155.530571 0000 0002 0 E: 1331641155.530572 0003 0039 3 E: 1331641155.530573 0003 0030 148 E: 1331641155.530573 0003 0031 136 E: 1331641155.530574 0003 0034 0 E: 1331641155.530575 0003 0035 -1061 E: 1331641155.530575 0003 0036 -1516 E: 1331641155.530576 0000 0002 0 E: 1331641155.530577 0003 0039 8 E: 1331641155.530577 0003 0030 176 E: 1331641155.530578 0003 0031 168 E: 1331641155.530579 0003 0034 0 E: 1331641155.530579 0003 0035 251 E: 1331641155.530580 0003 0036 -1814 E: 1331641155.530581 0000 0002 0 E: 1331641155.530583 0003 0000 -1950 E: 1331641155.530584 0003 0001 -898 E: 1331641155.530585 0000 0000 0 E: 1331641155.546821 0003 0039 1 E: 1331641155.546822 0003 0030 120 E: 1331641155.546822 0003 0031 164 E: 1331641155.546823 0003 0034 0 E: 1331641155.546824 0003 0035 -1950 E: 1331641155.546824 0003 0036 -868 E: 1331641155.546825 0000 0002 0 E: 1331641155.546826 0003 0039 2 E: 1331641155.546826 0003 0030 104 E: 1331641155.546827 0003 0031 168 E: 1331641155.546828 0003 0034 0 E: 1331641155.546828 0003 0035 1622 E: 1331641155.546829 0003 0036 -1416 E: 1331641155.546830 0000 0002 0 E: 1331641155.546830 0003 0039 3 E: 1331641155.546831 0003 0030 156 E: 1331641155.546831 0003 0031 144 E: 1331641155.546832 0003 0034 0 E: 1331641155.546833 0003 0035 -1061 E: 1331641155.546833 0003 0036 -1483 E: 1331641155.546834 0000 0002 0 E: 1331641155.546835 0003 0039 8 E: 1331641155.546835 0003 0030 164 E: 1331641155.546836 0003 0031 148 E: 1331641155.546837 0003 0034 0 E: 1331641155.546837 0003 0035 247 E: 1331641155.546838 0003 0036 -1791 E: 1331641155.546838 0000 0002 0 E: 1331641155.546842 0003 0001 -868 E: 1331641155.546842 0000 0000 0 E: 1331641155.549309 0003 0039 1 E: 1331641155.549310 0003 0030 132 E: 1331641155.549310 0003 0031 176 E: 1331641155.549311 0003 0034 0 E: 1331641155.549312 0003 0035 -1954 E: 1331641155.549312 0003 0036 -825 E: 1331641155.549313 0000 0002 0 E: 1331641155.549314 0003 0039 2 E: 1331641155.549314 0003 0030 120 E: 1331641155.549315 0003 0031 196 E: 1331641155.549315 0003 0034 0 E: 1331641155.549316 0003 0035 1616 E: 1331641155.549317 0003 0036 -1382 E: 1331641155.549317 0000 0002 0 E: 1331641155.549318 0003 0039 3 E: 1331641155.549319 0003 0030 176 E: 1331641155.549319 0003 0031 180 E: 1331641155.549320 0003 0034 0 E: 1331641155.549321 0003 0035 -1056 E: 1331641155.549321 0003 0036 -1443 E: 1331641155.549322 0000 0002 0 E: 1331641155.549323 0003 0039 8 E: 1331641155.549323 0003 0030 156 E: 1331641155.549324 0003 0031 152 E: 1331641155.549325 0003 0034 0 E: 1331641155.549325 0003 0035 241 E: 1331641155.549326 0003 0036 -1760 E: 1331641155.549327 0000 0002 0 E: 1331641155.549329 0003 0000 -1952 E: 1331641155.549330 0003 0001 -825 E: 1331641155.549331 0000 0000 0 E: 1331641155.551812 0003 0039 1 E: 1331641155.551813 0003 0030 140 E: 1331641155.551814 0003 0031 204 E: 1331641155.551815 0003 0034 0 E: 1331641155.551815 0003 0035 -1949 E: 1331641155.551816 0003 0036 -767 E: 1331641155.551817 0000 0002 0 E: 1331641155.551817 0003 0039 2 E: 1331641155.551818 0003 0030 132 E: 1331641155.551819 0003 0031 208 E: 1331641155.551819 0003 0034 0 E: 1331641155.551820 0003 0035 1614 E: 1331641155.551820 0003 0036 -1331 E: 1331641155.551821 0000 0002 0 E: 1331641155.551822 0003 0039 3 E: 1331641155.551823 0003 0030 176 E: 1331641155.551823 0003 0031 200 E: 1331641155.551824 0003 0034 0 E: 1331641155.551824 0003 0035 -1049 E: 1331641155.551825 0003 0036 -1387 E: 1331641155.551826 0000 0002 0 E: 1331641155.551826 0003 0039 8 E: 1331641155.551827 0003 0030 168 E: 1331641155.551828 0003 0031 184 E: 1331641155.551828 0003 0034 0 E: 1331641155.551829 0003 0035 238 E: 1331641155.551829 0003 0036 -1715 E: 1331641155.551830 0000 0002 0 E: 1331641155.551833 0003 0000 -1951 E: 1331641155.551834 0003 0001 -767 E: 1331641155.551834 0000 0000 0 E: 1331641155.555561 0003 0039 1 E: 1331641155.555562 0003 0030 156 E: 1331641155.555563 0003 0031 216 E: 1331641155.555563 0003 0034 0 E: 1331641155.555564 0003 0035 -1940 E: 1331641155.555565 0003 0036 -705 E: 1331641155.555565 0000 0002 0 E: 1331641155.555566 0003 0039 2 E: 1331641155.555567 0003 0030 120 E: 1331641155.555567 0003 0031 228 E: 1331641155.555568 0003 0034 0 E: 1331641155.555569 0003 0035 1618 E: 1331641155.555569 0003 0036 -1275 E: 1331641155.555570 0000 0002 0 E: 1331641155.555571 0003 0039 3 E: 1331641155.555571 0003 0030 180 E: 1331641155.555572 0003 0031 180 E: 1331641155.555572 0003 0034 0 E: 1331641155.555573 0003 0035 -1039 E: 1331641155.555574 0003 0036 -1323 E: 1331641155.555574 0000 0002 0 E: 1331641155.555575 0003 0039 8 E: 1331641155.555576 0003 0030 184 E: 1331641155.555576 0003 0031 192 E: 1331641155.555577 0003 0034 -29 E: 1331641155.555577 0003 0035 240 E: 1331641155.555578 0003 0036 -1657 E: 1331641155.555579 0000 0002 0 E: 1331641155.555581 0003 0000 -1940 E: 1331641155.555582 0003 0001 -705 E: 1331641155.555583 0000 0000 0 E: 1331641155.575560 0003 0039 1 E: 1331641155.575561 0003 0030 148 E: 1331641155.575562 0003 0031 208 E: 1331641155.575563 0003 0034 0 E: 1331641155.575563 0003 0035 -1928 E: 1331641155.575564 0003 0036 -629 E: 1331641155.575565 0000 0002 0 E: 1331641155.575565 0003 0039 2 E: 1331641155.575566 0003 0030 116 E: 1331641155.575567 0003 0031 208 E: 1331641155.575567 0003 0034 0 E: 1331641155.575568 0003 0035 1625 E: 1331641155.575569 0003 0036 -1207 E: 1331641155.575569 0000 0002 0 E: 1331641155.575570 0003 0039 3 E: 1331641155.575571 0003 0030 168 E: 1331641155.575571 0003 0031 164 E: 1331641155.575572 0003 0034 0 E: 1331641155.575573 0003 0035 -1025 E: 1331641155.575573 0003 0036 -1243 E: 1331641155.575574 0000 0002 0 E: 1331641155.575575 0003 0039 8 E: 1331641155.575575 0003 0030 172 E: 1331641155.575576 0003 0031 168 E: 1331641155.575576 0003 0034 0 E: 1331641155.575577 0003 0035 245 E: 1331641155.575578 0003 0036 -1591 E: 1331641155.575578 0000 0002 0 E: 1331641155.575581 0003 0000 -1928 E: 1331641155.575582 0003 0001 -629 E: 1331641155.575582 0000 0000 0 E: 1331641155.578059 0003 0039 1 E: 1331641155.578060 0003 0030 152 E: 1331641155.578061 0003 0031 232 E: 1331641155.578062 0003 0034 0 E: 1331641155.578062 0003 0035 -1914 E: 1331641155.578063 0003 0036 -549 E: 1331641155.578064 0000 0002 0 E: 1331641155.578064 0003 0039 2 E: 1331641155.578065 0003 0030 116 E: 1331641155.578066 0003 0031 196 E: 1331641155.578066 0003 0034 0 E: 1331641155.578067 0003 0035 1632 E: 1331641155.578068 0003 0036 -1130 E: 1331641155.578068 0000 0002 0 E: 1331641155.578069 0003 0039 3 E: 1331641155.578070 0003 0030 156 E: 1331641155.578070 0003 0031 176 E: 1331641155.578071 0003 0034 0 E: 1331641155.578072 0003 0035 -999 E: 1331641155.578072 0003 0036 -1120 E: 1331641155.578073 0000 0002 0 E: 1331641155.578074 0003 0039 8 E: 1331641155.578074 0003 0030 188 E: 1331641155.578074 0003 0031 188 E: 1331641155.578075 0003 0034 0 E: 1331641155.578076 0003 0035 253 E: 1331641155.578076 0003 0036 -1511 E: 1331641155.578077 0000 0002 0 E: 1331641155.578080 0003 0000 -1914 E: 1331641155.578080 0003 0001 -549 E: 1331641155.578081 0000 0000 0 E: 1331641155.585562 0003 0039 1 E: 1331641155.585563 0003 0030 160 E: 1331641155.585563 0003 0031 208 E: 1331641155.585564 0003 0034 0 E: 1331641155.585565 0003 0035 -1893 E: 1331641155.585565 0003 0036 -424 E: 1331641155.585566 0000 0002 0 E: 1331641155.585567 0003 0039 2 E: 1331641155.585567 0003 0030 124 E: 1331641155.585568 0003 0031 200 E: 1331641155.585569 0003 0034 0 E: 1331641155.585569 0003 0035 1640 E: 1331641155.585570 0003 0036 -1046 E: 1331641155.585571 0000 0002 0 E: 1331641155.585571 0003 0039 3 E: 1331641155.585572 0003 0030 140 E: 1331641155.585573 0003 0031 160 E: 1331641155.585573 0003 0034 0 E: 1331641155.585574 0003 0035 -958 E: 1331641155.585575 0003 0036 -924 E: 1331641155.585575 0000 0002 0 E: 1331641155.585576 0003 0039 8 E: 1331641155.585577 0003 0030 192 E: 1331641155.585577 0003 0031 196 E: 1331641155.585578 0003 0034 -30 E: 1331641155.585578 0003 0035 267 E: 1331641155.585579 0003 0036 -1391 E: 1331641155.585580 0000 0002 0 E: 1331641155.585582 0003 0000 -1893 E: 1331641155.585583 0003 0001 -424 E: 1331641155.585584 0000 0000 0 E: 1331641155.605561 0003 0039 1 E: 1331641155.605562 0003 0030 164 E: 1331641155.605563 0003 0031 232 E: 1331641155.605563 0003 0034 0 E: 1331641155.605564 0003 0035 -1868 E: 1331641155.605564 0003 0036 -286 E: 1331641155.605565 0000 0002 0 E: 1331641155.605566 0003 0039 2 E: 1331641155.605567 0003 0030 116 E: 1331641155.605567 0003 0031 204 E: 1331641155.605568 0003 0034 0 E: 1331641155.605568 0003 0035 1657 E: 1331641155.605569 0003 0036 -877 E: 1331641155.605570 0000 0002 0 E: 1331641155.605571 0003 0039 3 E: 1331641155.605571 0003 0030 160 E: 1331641155.605571 0003 0031 160 E: 1331641155.605572 0003 0034 0 E: 1331641155.605573 0003 0035 -934 E: 1331641155.605573 0003 0036 -805 E: 1331641155.605574 0000 0002 0 E: 1331641155.605575 0003 0039 8 E: 1331641155.605575 0003 0030 196 E: 1331641155.605576 0003 0031 184 E: 1331641155.605577 0003 0034 32 E: 1331641155.605577 0003 0035 285 E: 1331641155.605578 0003 0036 -1253 E: 1331641155.605578 0000 0002 0 E: 1331641155.605581 0003 0000 -1868 E: 1331641155.605582 0003 0001 -286 E: 1331641155.605582 0000 0000 0 E: 1331641155.608299 0003 0039 1 E: 1331641155.608300 0003 0030 164 E: 1331641155.608301 0003 0031 236 E: 1331641155.608302 0003 0034 0 E: 1331641155.608302 0003 0035 -1842 E: 1331641155.608303 0003 0036 -135 E: 1331641155.608304 0000 0002 0 E: 1331641155.608304 0003 0039 2 E: 1331641155.608305 0003 0030 132 E: 1331641155.608306 0003 0031 224 E: 1331641155.608306 0003 0034 0 E: 1331641155.608307 0003 0035 1677 E: 1331641155.608308 0003 0036 -724 E: 1331641155.608308 0000 0002 0 E: 1331641155.608309 0003 0039 3 E: 1331641155.608310 0003 0030 176 E: 1331641155.608310 0003 0031 160 E: 1331641155.608311 0003 0034 32 E: 1331641155.608311 0003 0035 -887 E: 1331641155.608312 0003 0036 -562 E: 1331641155.608313 0000 0002 0 E: 1331641155.608313 0003 0039 8 E: 1331641155.608314 0003 0030 200 E: 1331641155.608315 0003 0031 204 E: 1331641155.608315 0003 0034 0 E: 1331641155.608316 0003 0035 307 E: 1331641155.608317 0003 0036 -1102 E: 1331641155.608317 0000 0002 0 E: 1331641155.608320 0003 0000 -1842 E: 1331641155.608321 0003 0001 -135 E: 1331641155.608321 0000 0000 0 E: 1331641155.628292 0003 0039 1 E: 1331641155.628293 0003 0030 176 E: 1331641155.628293 0003 0031 216 E: 1331641155.628294 0003 0034 0 E: 1331641155.628295 0003 0035 -1815 E: 1331641155.628295 0003 0036 24 E: 1331641155.628296 0000 0002 0 E: 1331641155.628297 0003 0039 2 E: 1331641155.628297 0003 0030 128 E: 1331641155.628298 0003 0031 204 E: 1331641155.628299 0003 0034 0 E: 1331641155.628299 0003 0035 1700 E: 1331641155.628300 0003 0036 -565 E: 1331641155.628300 0000 0002 0 E: 1331641155.628301 0003 0039 3 E: 1331641155.628302 0003 0030 176 E: 1331641155.628302 0003 0031 164 E: 1331641155.628303 0003 0034 0 E: 1331641155.628304 0003 0035 -863 E: 1331641155.628304 0003 0036 -435 E: 1331641155.628305 0000 0002 0 E: 1331641155.628306 0003 0039 8 E: 1331641155.628306 0003 0030 200 E: 1331641155.628307 0003 0031 188 E: 1331641155.628308 0003 0034 -30 E: 1331641155.628308 0003 0035 332 E: 1331641155.628309 0003 0036 -942 E: 1331641155.628310 0000 0002 0 E: 1331641155.628312 0003 0000 -1815 E: 1331641155.628313 0003 0001 24 E: 1331641155.628314 0000 0000 0 E: 1331641155.630546 0003 0039 1 E: 1331641155.630547 0003 0030 168 E: 1331641155.630548 0003 0031 188 E: 1331641155.630548 0003 0034 0 E: 1331641155.630549 0003 0035 -1787 E: 1331641155.630549 0003 0036 190 E: 1331641155.630550 0000 0002 0 E: 1331641155.630551 0003 0039 2 E: 1331641155.630552 0003 0030 136 E: 1331641155.630552 0003 0031 204 E: 1331641155.630553 0003 0034 0 E: 1331641155.630554 0003 0035 1725 E: 1331641155.630554 0003 0036 -398 E: 1331641155.630555 0000 0002 0 E: 1331641155.630556 0003 0039 3 E: 1331641155.630556 0003 0030 184 E: 1331641155.630557 0003 0031 148 E: 1331641155.630558 0003 0034 32 E: 1331641155.630558 0003 0035 -830 E: 1331641155.630559 0003 0036 -246 E: 1331641155.630559 0000 0002 0 E: 1331641155.630560 0003 0039 8 E: 1331641155.630561 0003 0030 204 E: 1331641155.630561 0003 0031 192 E: 1331641155.630562 0003 0034 -31 E: 1331641155.630563 0003 0035 359 E: 1331641155.630563 0003 0036 -773 E: 1331641155.630564 0000 0002 0 E: 1331641155.630567 0003 0000 -1787 E: 1331641155.630567 0003 0001 190 E: 1331641155.630568 0000 0000 0 E: 1331641155.636814 0003 0039 1 E: 1331641155.636815 0003 0030 156 E: 1331641155.636815 0003 0031 188 E: 1331641155.636816 0003 0034 0 E: 1331641155.636817 0003 0035 -1757 E: 1331641155.636817 0003 0036 358 E: 1331641155.636818 0000 0002 0 E: 1331641155.636819 0003 0039 2 E: 1331641155.636819 0003 0030 148 E: 1331641155.636820 0003 0031 204 E: 1331641155.636821 0003 0034 0 E: 1331641155.636821 0003 0035 1751 E: 1331641155.636822 0003 0036 -224 E: 1331641155.636823 0000 0002 0 E: 1331641155.636823 0003 0039 3 E: 1331641155.636824 0003 0030 180 E: 1331641155.636825 0003 0031 136 E: 1331641155.636825 0003 0034 0 E: 1331641155.636826 0003 0035 -800 E: 1331641155.636826 0003 0036 -58 E: 1331641155.636827 0000 0002 0 E: 1331641155.636828 0003 0039 8 E: 1331641155.636828 0003 0030 184 E: 1331641155.636829 0003 0031 204 E: 1331641155.636830 0003 0034 0 E: 1331641155.636830 0003 0035 388 E: 1331641155.636831 0003 0036 -601 E: 1331641155.636832 0000 0002 0 E: 1331641155.636834 0003 0000 -1757 E: 1331641155.636835 0003 0001 358 E: 1331641155.636836 0000 0000 0 E: 1331641155.656821 0003 0039 1 E: 1331641155.656822 0003 0030 156 E: 1331641155.656822 0003 0031 156 E: 1331641155.656823 0003 0034 0 E: 1331641155.656824 0003 0035 -1729 E: 1331641155.656824 0003 0036 529 E: 1331641155.656825 0000 0002 0 E: 1331641155.656826 0003 0039 2 E: 1331641155.656826 0003 0030 144 E: 1331641155.656827 0003 0031 188 E: 1331641155.656828 0003 0034 0 E: 1331641155.656828 0003 0035 1777 E: 1331641155.656829 0003 0036 -47 E: 1331641155.656830 0000 0002 0 E: 1331641155.656830 0003 0039 3 E: 1331641155.656831 0003 0030 160 E: 1331641155.656832 0003 0031 132 E: 1331641155.656832 0003 0034 0 E: 1331641155.656833 0003 0035 -771 E: 1331641155.656833 0003 0036 121 E: 1331641155.656834 0000 0002 0 E: 1331641155.656835 0003 0039 8 E: 1331641155.656835 0003 0030 184 E: 1331641155.656836 0003 0031 208 E: 1331641155.656837 0003 0034 0 E: 1331641155.656837 0003 0035 417 E: 1331641155.656838 0003 0036 -425 E: 1331641155.656839 0000 0002 0 E: 1331641155.656842 0003 0000 -1729 E: 1331641155.656842 0003 0001 529 E: 1331641155.656843 0000 0000 0 E: 1331641155.659312 0003 0039 1 E: 1331641155.659313 0003 0030 148 E: 1331641155.659314 0003 0031 172 E: 1331641155.659315 0003 0034 0 E: 1331641155.659315 0003 0035 -1703 E: 1331641155.659316 0003 0036 696 E: 1331641155.659317 0000 0002 0 E: 1331641155.659317 0003 0039 2 E: 1331641155.659318 0003 0030 144 E: 1331641155.659319 0003 0031 204 E: 1331641155.659319 0003 0034 0 E: 1331641155.659320 0003 0035 1804 E: 1331641155.659321 0003 0036 129 E: 1331641155.659321 0000 0002 0 E: 1331641155.659322 0003 0039 3 E: 1331641155.659323 0003 0030 156 E: 1331641155.659323 0003 0031 128 E: 1331641155.659324 0003 0034 0 E: 1331641155.659325 0003 0035 -746 E: 1331641155.659325 0003 0036 298 E: 1331641155.659326 0000 0002 0 E: 1331641155.659327 0003 0039 8 E: 1331641155.659327 0003 0030 180 E: 1331641155.659328 0003 0031 160 E: 1331641155.659328 0003 0034 0 E: 1331641155.659329 0003 0035 448 E: 1331641155.659330 0003 0036 -250 E: 1331641155.659330 0000 0002 0 E: 1331641155.659333 0003 0000 -1703 E: 1331641155.659334 0003 0001 696 E: 1331641155.659334 0000 0000 0 E: 1331641155.666794 0003 0039 1 E: 1331641155.666795 0003 0030 152 E: 1331641155.666795 0003 0031 168 E: 1331641155.666796 0003 0034 0 E: 1331641155.666797 0003 0035 -1674 E: 1331641155.666797 0003 0036 859 E: 1331641155.666798 0000 0002 0 E: 1331641155.666799 0003 0039 2 E: 1331641155.666799 0003 0030 128 E: 1331641155.666800 0003 0031 184 E: 1331641155.666801 0003 0034 0 E: 1331641155.666801 0003 0035 1830 E: 1331641155.666802 0003 0036 306 E: 1331641155.666803 0000 0002 0 E: 1331641155.666803 0003 0039 3 E: 1331641155.666804 0003 0030 144 E: 1331641155.666805 0003 0031 124 E: 1331641155.666805 0003 0034 0 E: 1331641155.666806 0003 0035 -724 E: 1331641155.666807 0003 0036 466 E: 1331641155.666807 0000 0002 0 E: 1331641155.666808 0003 0039 8 E: 1331641155.666809 0003 0030 176 E: 1331641155.666809 0003 0031 192 E: 1331641155.666810 0003 0034 0 E: 1331641155.666811 0003 0035 478 E: 1331641155.666811 0003 0036 -75 E: 1331641155.666812 0000 0002 0 E: 1331641155.666815 0003 0000 -1674 E: 1331641155.666815 0003 0001 859 E: 1331641155.666816 0000 0000 0 E: 1331641155.686806 0003 0039 1 E: 1331641155.686807 0003 0030 140 E: 1331641155.686808 0003 0031 148 E: 1331641155.686808 0003 0034 0 E: 1331641155.686809 0003 0035 -1644 E: 1331641155.686810 0003 0036 1019 E: 1331641155.686810 0000 0002 0 E: 1331641155.686811 0003 0039 2 E: 1331641155.686812 0003 0030 100 E: 1331641155.686812 0003 0031 156 E: 1331641155.686813 0003 0034 0 E: 1331641155.686814 0003 0035 1859 E: 1331641155.686814 0003 0036 482 E: 1331641155.686815 0000 0002 0 E: 1331641155.686816 0003 0039 3 E: 1331641155.686816 0003 0030 132 E: 1331641155.686817 0003 0031 124 E: 1331641155.686818 0003 0034 0 E: 1331641155.686818 0003 0035 -711 E: 1331641155.686819 0003 0036 570 E: 1331641155.686820 0000 0002 0 E: 1331641155.686820 0003 0039 8 E: 1331641155.686821 0003 0030 168 E: 1331641155.686821 0003 0031 164 E: 1331641155.686822 0003 0034 0 E: 1331641155.686823 0003 0035 509 E: 1331641155.686823 0003 0036 94 E: 1331641155.686824 0000 0002 0 E: 1331641155.686827 0003 0000 -1644 E: 1331641155.686827 0003 0001 1019 E: 1331641155.686828 0000 0000 0 E: 1331641155.689315 0003 0039 1 E: 1331641155.689316 0003 0030 140 E: 1331641155.689316 0003 0031 160 E: 1331641155.689317 0003 0034 0 E: 1331641155.689317 0003 0035 -1622 E: 1331641155.689318 0003 0036 1115 E: 1331641155.689319 0000 0002 0 E: 1331641155.689320 0003 0039 2 E: 1331641155.689320 0003 0030 92 E: 1331641155.689321 0003 0031 152 E: 1331641155.689321 0003 0034 0 E: 1331641155.689322 0003 0035 1887 E: 1331641155.689323 0003 0036 654 E: 1331641155.689323 0000 0002 0 E: 1331641155.689324 0003 0039 3 E: 1331641155.689325 0003 0030 120 E: 1331641155.689325 0003 0031 140 E: 1331641155.689326 0003 0034 0 E: 1331641155.689327 0003 0035 -689 E: 1331641155.689327 0003 0036 717 E: 1331641155.689328 0000 0002 0 E: 1331641155.689329 0003 0039 8 E: 1331641155.689329 0003 0030 168 E: 1331641155.689330 0003 0031 156 E: 1331641155.689331 0003 0034 0 E: 1331641155.689331 0003 0035 538 E: 1331641155.689332 0003 0036 260 E: 1331641155.689332 0000 0002 0 E: 1331641155.689335 0003 0000 -1622 E: 1331641155.689336 0003 0001 1115 E: 1331641155.689336 0000 0000 0 E: 1331641155.709313 0003 0039 1 E: 1331641155.709314 0003 0030 128 E: 1331641155.709315 0003 0031 136 E: 1331641155.709316 0003 0034 0 E: 1331641155.709316 0003 0035 -1579 E: 1331641155.709317 0003 0036 1308 E: 1331641155.709318 0000 0002 0 E: 1331641155.709318 0003 0039 2 E: 1331641155.709319 0003 0030 76 E: 1331641155.709320 0003 0031 144 E: 1331641155.709320 0003 0034 0 E: 1331641155.709321 0003 0035 1915 E: 1331641155.709321 0003 0036 823 E: 1331641155.709322 0000 0002 0 E: 1331641155.709323 0003 0039 3 E: 1331641155.709323 0003 0030 124 E: 1331641155.709324 0003 0031 132 E: 1331641155.709325 0003 0034 0 E: 1331641155.709325 0003 0035 -666 E: 1331641155.709326 0003 0036 850 E: 1331641155.709327 0000 0002 0 E: 1331641155.709327 0003 0039 8 E: 1331641155.709328 0003 0030 152 E: 1331641155.709329 0003 0031 160 E: 1331641155.709329 0003 0034 0 E: 1331641155.709330 0003 0035 567 E: 1331641155.709331 0003 0036 417 E: 1331641155.709331 0000 0002 0 E: 1331641155.709334 0003 0000 -1579 E: 1331641155.709335 0003 0001 1308 E: 1331641155.709335 0000 0000 0 E: 1331641155.711809 0003 0039 1 E: 1331641155.711810 0003 0030 108 E: 1331641155.711811 0003 0031 120 E: 1331641155.711811 0003 0034 0 E: 1331641155.711812 0003 0035 -1556 E: 1331641155.711813 0003 0036 1394 E: 1331641155.711813 0000 0002 0 E: 1331641155.711814 0003 0039 2 E: 1331641155.711815 0003 0030 0 E: 1331641155.711815 0003 0031 0 E: 1331641155.711815 0003 0034 0 E: 1331641155.711816 0003 0035 1915 E: 1331641155.711817 0003 0036 823 E: 1331641155.711817 0000 0002 0 E: 1331641155.711818 0003 0039 3 E: 1331641155.711819 0003 0030 100 E: 1331641155.711819 0003 0031 112 E: 1331641155.711820 0003 0034 0 E: 1331641155.711820 0003 0035 -649 E: 1331641155.711821 0003 0036 925 E: 1331641155.711822 0000 0002 0 E: 1331641155.711823 0003 0039 8 E: 1331641155.711823 0003 0030 136 E: 1331641155.711823 0003 0031 136 E: 1331641155.711824 0003 0034 0 E: 1331641155.711825 0003 0035 584 E: 1331641155.711825 0003 0036 511 E: 1331641155.711826 0000 0002 0 E: 1331641155.711829 0003 0000 -1556 E: 1331641155.711829 0003 0001 1394 E: 1331641155.711830 0000 0000 0 E: 1331641155.718302 0003 0039 1 E: 1331641155.718303 0003 0030 48 E: 1331641155.718303 0003 0031 88 E: 1331641155.718304 0003 0034 0 E: 1331641155.718305 0003 0035 -1523 E: 1331641155.718305 0003 0036 1525 E: 1331641155.718306 0000 0002 0 E: 1331641155.718307 0003 0039 3 E: 1331641155.718308 0003 0030 100 E: 1331641155.718308 0003 0031 80 E: 1331641155.718309 0003 0034 0 E: 1331641155.718310 0003 0035 -616 E: 1331641155.718310 0003 0036 1083 E: 1331641155.718311 0000 0002 0 E: 1331641155.718312 0003 0039 8 E: 1331641155.718312 0003 0030 124 E: 1331641155.718313 0003 0031 92 E: 1331641155.718313 0003 0034 0 E: 1331641155.718314 0003 0035 612 E: 1331641155.718315 0003 0036 644 E: 1331641155.718315 0000 0002 0 E: 1331641155.718317 0001 014e 1 E: 1331641155.718318 0001 014f 0 E: 1331641155.718319 0003 0000 -1523 E: 1331641155.718320 0003 0001 1525 E: 1331641155.718320 0000 0000 0 E: 1331641155.738295 0003 0039 1 E: 1331641155.738296 0003 0030 0 E: 1331641155.738297 0003 0031 0 E: 1331641155.738297 0003 0034 0 E: 1331641155.738297 0003 0035 -1523 E: 1331641155.738298 0003 0036 1525 E: 1331641155.738299 0000 0002 0 E: 1331641155.738300 0003 0039 3 E: 1331641155.738300 0003 0030 120 E: 1331641155.738301 0003 0031 72 E: 1331641155.738301 0003 0034 0 E: 1331641155.738302 0003 0035 -596 E: 1331641155.738303 0003 0036 1145 E: 1331641155.738303 0000 0002 0 E: 1331641155.738304 0003 0039 8 E: 1331641155.738305 0003 0030 0 E: 1331641155.738305 0003 0031 0 E: 1331641155.738305 0003 0034 0 E: 1331641155.738306 0003 0035 612 E: 1331641155.738306 0003 0036 644 E: 1331641155.738307 0000 0002 0 E: 1331641155.738311 0000 0000 0 E: 1331641155.740540 0003 0039 3 E: 1331641155.740541 0003 0030 0 E: 1331641155.740541 0003 0031 0 E: 1331641155.740541 0003 0034 0 E: 1331641155.740542 0003 0035 -596 E: 1331641155.740543 0003 0036 1145 E: 1331641155.740543 0000 0002 0 E: 1331641155.740544 0001 0145 1 E: 1331641155.740545 0001 014e 0 E: 1331641155.740546 0000 0000 0 E: 1331641155.748043 0001 014a 0 E: 1331641155.748044 0001 0145 0 E: 1331641155.748044 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/recordings/apple_magic_trackpad/device.prop0000644000015600001650000000155212651522342031073 0ustar pbuserpbgroup00000000000000N: Apple Magic Trackpad (Virtual Test Device) I: 0005 05ac 030e 0160 P: 00 00 00 00 00 00 00 00 B: 00 1b 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 03 00 01 00 00 00 00 00 B: 01 20 e4 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 01 00 00 00 00 00 00 00 00 B: 02 00 00 00 00 00 00 00 00 B: 03 03 00 00 00 00 00 73 02 B: 04 10 00 00 00 00 00 00 00 B: 05 00 00 00 00 00 00 00 00 B: 11 00 00 00 00 00 00 00 00 B: 12 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 B: 15 00 00 00 00 00 00 00 00 A: 00 -2909 3167 4 0 A: 01 -2456 2565 4 0 A: 30 0 255 4 0 A: 31 0 255 4 0 A: 34 -31 32 1 0 A: 35 -2909 3167 4 0 A: 36 -2456 2565 4 0 A: 39 0 15 0 0 grail-3.1.0+16.04.20160125/test/integration/recordings/apple_magic_trackpad/4_drag.record0000644000015600001650000010100712651522342031266 0ustar pbuserpbgroup00000000000000E: 1330629392.266410 0003 0039 1 E: 1330629392.266411 0003 0030 48 E: 1330629392.266412 0003 0031 72 E: 1330629392.266412 0003 0034 0 E: 1330629392.266413 0003 0035 -2447 E: 1330629392.266414 0003 0036 1425 E: 1330629392.266414 0000 0002 0 E: 1330629392.266415 0003 0039 4 E: 1330629392.266416 0003 0030 96 E: 1330629392.266416 0003 0031 68 E: 1330629392.266417 0003 0034 0 E: 1330629392.266417 0003 0035 -1943 E: 1330629392.266418 0003 0036 -1101 E: 1330629392.266419 0000 0002 0 E: 1330629392.266419 0003 0039 8 E: 1330629392.266420 0003 0030 48 E: 1330629392.266421 0003 0031 52 E: 1330629392.266421 0003 0034 14 E: 1330629392.266422 0003 0035 -2366 E: 1330629392.266422 0003 0036 281 E: 1330629392.266423 0000 0002 0 E: 1330629392.266424 0001 014a 1 E: 1330629392.266425 0001 014e 1 E: 1330629392.266427 0003 0000 -2447 E: 1330629392.266427 0003 0001 1425 E: 1330629392.266428 0000 0000 0 E: 1330629392.268914 0003 0039 1 E: 1330629392.268915 0003 0030 56 E: 1330629392.268916 0003 0031 76 E: 1330629392.268917 0003 0034 0 E: 1330629392.268917 0003 0035 -2447 E: 1330629392.268918 0003 0036 1430 E: 1330629392.268919 0000 0002 0 E: 1330629392.268919 0003 0039 4 E: 1330629392.268920 0003 0030 112 E: 1330629392.268920 0003 0031 92 E: 1330629392.268921 0003 0034 0 E: 1330629392.268922 0003 0035 -1936 E: 1330629392.268922 0003 0036 -1102 E: 1330629392.268923 0000 0002 0 E: 1330629392.268924 0003 0039 8 E: 1330629392.268924 0003 0030 64 E: 1330629392.268925 0003 0031 68 E: 1330629392.268925 0003 0034 0 E: 1330629392.268926 0003 0035 -2345 E: 1330629392.268927 0003 0036 280 E: 1330629392.268927 0000 0002 0 E: 1330629392.268931 0003 0001 1427 E: 1330629392.268932 0000 0000 0 E: 1330629392.288918 0003 0039 1 E: 1330629392.288919 0003 0030 60 E: 1330629392.288920 0003 0031 80 E: 1330629392.288920 0003 0034 0 E: 1330629392.288921 0003 0035 -2439 E: 1330629392.288921 0003 0036 1432 E: 1330629392.288922 0000 0002 0 E: 1330629392.288923 0003 0039 4 E: 1330629392.288923 0003 0030 132 E: 1330629392.288924 0003 0031 132 E: 1330629392.288924 0003 0034 0 E: 1330629392.288925 0003 0035 -1929 E: 1330629392.288926 0003 0036 -1103 E: 1330629392.288926 0000 0002 0 E: 1330629392.288927 0003 0039 8 E: 1330629392.288927 0003 0030 76 E: 1330629392.288928 0003 0031 84 E: 1330629392.288929 0003 0034 0 E: 1330629392.288929 0003 0035 -2326 E: 1330629392.288930 0003 0036 280 E: 1330629392.288930 0000 0002 0 E: 1330629392.288931 0003 0039 11 E: 1330629392.288932 0003 0030 124 E: 1330629392.288932 0003 0031 220 E: 1330629392.288933 0003 0034 14 E: 1330629392.288934 0003 0035 -871 E: 1330629392.288934 0003 0036 -1684 E: 1330629392.288935 0000 0002 0 E: 1330629392.288937 0001 014e 0 E: 1330629392.288937 0001 014f 1 E: 1330629392.288938 0003 0000 -2439 E: 1330629392.288939 0003 0001 1429 E: 1330629392.288939 0000 0000 0 E: 1330629392.291410 0003 0039 1 E: 1330629392.291411 0003 0030 68 E: 1330629392.291411 0003 0031 92 E: 1330629392.291412 0003 0034 0 E: 1330629392.291413 0003 0035 -2423 E: 1330629392.291413 0003 0036 1433 E: 1330629392.291414 0000 0002 0 E: 1330629392.291415 0003 0039 4 E: 1330629392.291415 0003 0030 148 E: 1330629392.291416 0003 0031 168 E: 1330629392.291416 0003 0034 0 E: 1330629392.291417 0003 0035 -1906 E: 1330629392.291418 0003 0036 -1108 E: 1330629392.291418 0000 0002 0 E: 1330629392.291419 0003 0039 8 E: 1330629392.291419 0003 0030 84 E: 1330629392.291420 0003 0031 88 E: 1330629392.291421 0003 0034 0 E: 1330629392.291421 0003 0035 -2295 E: 1330629392.291422 0003 0036 281 E: 1330629392.291423 0000 0002 0 E: 1330629392.291423 0003 0039 11 E: 1330629392.291424 0003 0030 124 E: 1330629392.291425 0003 0031 208 E: 1330629392.291425 0003 0034 0 E: 1330629392.291426 0003 0035 -835 E: 1330629392.291426 0003 0036 -1692 E: 1330629392.291427 0000 0002 0 E: 1330629392.291430 0003 0000 -2423 E: 1330629392.291430 0003 0001 1431 E: 1330629392.291431 0000 0000 0 E: 1330629392.311420 0003 0039 1 E: 1330629392.311420 0003 0030 68 E: 1330629392.311421 0003 0031 92 E: 1330629392.311422 0003 0034 0 E: 1330629392.311422 0003 0035 -2391 E: 1330629392.311423 0003 0036 1434 E: 1330629392.311424 0000 0002 0 E: 1330629392.311424 0003 0039 4 E: 1330629392.311425 0003 0030 156 E: 1330629392.311426 0003 0031 188 E: 1330629392.311426 0003 0034 0 E: 1330629392.311427 0003 0035 -1871 E: 1330629392.311427 0003 0036 -1114 E: 1330629392.311428 0000 0002 0 E: 1330629392.311429 0003 0039 8 E: 1330629392.311429 0003 0030 88 E: 1330629392.311430 0003 0031 80 E: 1330629392.311431 0003 0034 0 E: 1330629392.311431 0003 0035 -2266 E: 1330629392.311432 0003 0036 284 E: 1330629392.311433 0000 0002 0 E: 1330629392.311433 0003 0039 11 E: 1330629392.311434 0003 0030 120 E: 1330629392.311434 0003 0031 228 E: 1330629392.311435 0003 0034 0 E: 1330629392.311436 0003 0035 -757 E: 1330629392.311436 0003 0036 -1701 E: 1330629392.311437 0000 0002 0 E: 1330629392.311440 0003 0000 -2391 E: 1330629392.311441 0000 0000 0 E: 1330629392.313911 0003 0039 1 E: 1330629392.313912 0003 0030 68 E: 1330629392.313912 0003 0031 88 E: 1330629392.313913 0003 0034 0 E: 1330629392.313913 0003 0035 -2353 E: 1330629392.313914 0003 0036 1431 E: 1330629392.313915 0000 0002 0 E: 1330629392.313915 0003 0039 4 E: 1330629392.313916 0003 0030 144 E: 1330629392.313917 0003 0031 168 E: 1330629392.313917 0003 0034 0 E: 1330629392.313918 0003 0035 -1824 E: 1330629392.313918 0003 0036 -1121 E: 1330629392.313919 0000 0002 0 E: 1330629392.313920 0003 0039 8 E: 1330629392.313920 0003 0030 88 E: 1330629392.313921 0003 0031 76 E: 1330629392.313922 0003 0034 0 E: 1330629392.313922 0003 0035 -2221 E: 1330629392.313923 0003 0036 281 E: 1330629392.313924 0000 0002 0 E: 1330629392.313924 0003 0039 11 E: 1330629392.313925 0003 0030 120 E: 1330629392.313925 0003 0031 224 E: 1330629392.313926 0003 0034 0 E: 1330629392.313927 0003 0035 -685 E: 1330629392.313927 0003 0036 -1713 E: 1330629392.313928 0000 0002 0 E: 1330629392.313931 0003 0000 -2353 E: 1330629392.313932 0000 0000 0 E: 1330629392.320167 0003 0039 1 E: 1330629392.320168 0003 0030 72 E: 1330629392.320169 0003 0031 100 E: 1330629392.320169 0003 0034 0 E: 1330629392.320170 0003 0035 -2308 E: 1330629392.320171 0003 0036 1428 E: 1330629392.320171 0000 0002 0 E: 1330629392.320172 0003 0039 4 E: 1330629392.320173 0003 0030 148 E: 1330629392.320173 0003 0031 184 E: 1330629392.320174 0003 0034 0 E: 1330629392.320174 0003 0035 -1773 E: 1330629392.320175 0003 0036 -1129 E: 1330629392.320176 0000 0002 0 E: 1330629392.320176 0003 0039 8 E: 1330629392.320177 0003 0030 112 E: 1330629392.320178 0003 0031 96 E: 1330629392.320178 0003 0034 0 E: 1330629392.320179 0003 0035 -2170 E: 1330629392.320179 0003 0036 277 E: 1330629392.320180 0000 0002 0 E: 1330629392.320181 0003 0039 11 E: 1330629392.320181 0003 0030 132 E: 1330629392.320182 0003 0031 232 E: 1330629392.320183 0003 0034 0 E: 1330629392.320183 0003 0035 -612 E: 1330629392.320184 0003 0036 -1720 E: 1330629392.320185 0000 0002 0 E: 1330629392.320187 0003 0000 -2308 E: 1330629392.320188 0003 0001 1430 E: 1330629392.320188 0000 0000 0 E: 1330629392.340167 0003 0039 1 E: 1330629392.340169 0003 0030 88 E: 1330629392.340169 0003 0031 108 E: 1330629392.340170 0003 0034 0 E: 1330629392.340170 0003 0035 -2261 E: 1330629392.340171 0003 0036 1425 E: 1330629392.340172 0000 0002 0 E: 1330629392.340173 0003 0039 4 E: 1330629392.340173 0003 0030 164 E: 1330629392.340174 0003 0031 216 E: 1330629392.340174 0003 0034 0 E: 1330629392.340175 0003 0035 -1719 E: 1330629392.340176 0003 0036 -1134 E: 1330629392.340176 0000 0002 0 E: 1330629392.340177 0003 0039 8 E: 1330629392.340178 0003 0030 140 E: 1330629392.340178 0003 0031 100 E: 1330629392.340179 0003 0034 0 E: 1330629392.340179 0003 0035 -2113 E: 1330629392.340180 0003 0036 275 E: 1330629392.340181 0000 0002 0 E: 1330629392.340181 0003 0039 11 E: 1330629392.340182 0003 0030 136 E: 1330629392.340183 0003 0031 224 E: 1330629392.340183 0003 0034 0 E: 1330629392.340184 0003 0035 -534 E: 1330629392.340184 0003 0036 -1730 E: 1330629392.340185 0000 0002 0 E: 1330629392.340188 0003 0000 -2261 E: 1330629392.340188 0003 0001 1427 E: 1330629392.340189 0000 0000 0 E: 1330629392.342784 0003 0039 1 E: 1330629392.342785 0003 0030 84 E: 1330629392.342786 0003 0031 100 E: 1330629392.342786 0003 0034 0 E: 1330629392.342787 0003 0035 -2207 E: 1330629392.342787 0003 0036 1422 E: 1330629392.342788 0000 0002 0 E: 1330629392.342789 0003 0039 4 E: 1330629392.342790 0003 0030 152 E: 1330629392.342790 0003 0031 192 E: 1330629392.342791 0003 0034 0 E: 1330629392.342791 0003 0035 -1659 E: 1330629392.342792 0003 0036 -1138 E: 1330629392.342793 0000 0002 0 E: 1330629392.342793 0003 0039 8 E: 1330629392.342794 0003 0030 120 E: 1330629392.342795 0003 0031 100 E: 1330629392.342795 0003 0034 0 E: 1330629392.342796 0003 0035 -2053 E: 1330629392.342796 0003 0036 273 E: 1330629392.342797 0000 0002 0 E: 1330629392.342798 0003 0039 11 E: 1330629392.342798 0003 0030 128 E: 1330629392.342799 0003 0031 232 E: 1330629392.342800 0003 0034 0 E: 1330629392.342800 0003 0035 -454 E: 1330629392.342801 0003 0036 -1738 E: 1330629392.342801 0000 0002 0 E: 1330629392.342804 0003 0000 -2207 E: 1330629392.342805 0003 0001 1424 E: 1330629392.342805 0000 0000 0 E: 1330629392.362788 0003 0039 1 E: 1330629392.362790 0003 0030 80 E: 1330629392.362790 0003 0031 112 E: 1330629392.362791 0003 0034 0 E: 1330629392.362791 0003 0035 -2127 E: 1330629392.362792 0003 0036 1421 E: 1330629392.362793 0000 0002 0 E: 1330629392.362793 0003 0039 4 E: 1330629392.362794 0003 0030 160 E: 1330629392.362795 0003 0031 204 E: 1330629392.362795 0003 0034 0 E: 1330629392.362796 0003 0035 -1572 E: 1330629392.362797 0003 0036 -1143 E: 1330629392.362797 0000 0002 0 E: 1330629392.362798 0003 0039 8 E: 1330629392.362798 0003 0030 140 E: 1330629392.362799 0003 0031 112 E: 1330629392.362800 0003 0034 0 E: 1330629392.362800 0003 0035 -1989 E: 1330629392.362801 0003 0036 273 E: 1330629392.362802 0000 0002 0 E: 1330629392.362802 0003 0039 11 E: 1330629392.362803 0003 0030 140 E: 1330629392.362804 0003 0031 264 E: 1330629392.362804 0003 0034 0 E: 1330629392.362805 0003 0035 -373 E: 1330629392.362805 0003 0036 -1742 E: 1330629392.362806 0000 0002 0 E: 1330629392.362809 0003 0000 -2127 E: 1330629392.362809 0003 0001 1423 E: 1330629392.362810 0000 0000 0 E: 1330629392.365166 0003 0039 1 E: 1330629392.365167 0003 0030 84 E: 1330629392.365167 0003 0031 112 E: 1330629392.365168 0003 0034 0 E: 1330629392.365169 0003 0035 -2008 E: 1330629392.365169 0003 0036 1418 E: 1330629392.365170 0000 0002 0 E: 1330629392.365171 0003 0039 4 E: 1330629392.365171 0003 0030 160 E: 1330629392.365172 0003 0031 212 E: 1330629392.365173 0003 0034 0 E: 1330629392.365173 0003 0035 -1442 E: 1330629392.365174 0003 0036 -1147 E: 1330629392.365174 0000 0002 0 E: 1330629392.365175 0003 0039 8 E: 1330629392.365176 0003 0030 120 E: 1330629392.365176 0003 0031 104 E: 1330629392.365177 0003 0034 0 E: 1330629392.365178 0003 0035 -1861 E: 1330629392.365178 0003 0036 272 E: 1330629392.365179 0000 0002 0 E: 1330629392.365179 0003 0039 11 E: 1330629392.365180 0003 0030 156 E: 1330629392.365181 0003 0031 276 E: 1330629392.365181 0003 0034 0 E: 1330629392.365182 0003 0035 -288 E: 1330629392.365183 0003 0036 -1745 E: 1330629392.365183 0000 0002 0 E: 1330629392.365186 0003 0000 -2008 E: 1330629392.365186 0003 0001 1420 E: 1330629392.365187 0000 0000 0 E: 1330629392.371393 0003 0039 1 E: 1330629392.371394 0003 0030 84 E: 1330629392.371394 0003 0031 120 E: 1330629392.371395 0003 0034 0 E: 1330629392.371395 0003 0035 -1904 E: 1330629392.371395 0003 0036 1418 E: 1330629392.371396 0000 0002 0 E: 1330629392.371396 0003 0039 4 E: 1330629392.371397 0003 0030 164 E: 1330629392.371397 0003 0031 220 E: 1330629392.371398 0003 0034 0 E: 1330629392.371398 0003 0035 -1332 E: 1330629392.371398 0003 0036 -1147 E: 1330629392.371399 0000 0002 0 E: 1330629392.371399 0003 0039 8 E: 1330629392.371400 0003 0030 140 E: 1330629392.371400 0003 0031 116 E: 1330629392.371400 0003 0034 0 E: 1330629392.371401 0003 0035 -1751 E: 1330629392.371401 0003 0036 272 E: 1330629392.371402 0000 0002 0 E: 1330629392.371402 0003 0039 11 E: 1330629392.371402 0003 0030 164 E: 1330629392.371403 0003 0031 280 E: 1330629392.371403 0003 0034 0 E: 1330629392.371404 0003 0035 -161 E: 1330629392.371404 0003 0036 -1750 E: 1330629392.371404 0000 0002 0 E: 1330629392.371406 0003 0000 -1904 E: 1330629392.371407 0003 0001 1419 E: 1330629392.371407 0000 0000 0 E: 1330629392.391419 0003 0039 1 E: 1330629392.391420 0003 0030 108 E: 1330629392.391421 0003 0031 128 E: 1330629392.391422 0003 0034 0 E: 1330629392.391422 0003 0035 -1788 E: 1330629392.391423 0003 0036 1417 E: 1330629392.391423 0000 0002 0 E: 1330629392.391424 0003 0039 4 E: 1330629392.391425 0003 0030 200 E: 1330629392.391425 0003 0031 232 E: 1330629392.391426 0003 0034 22 E: 1330629392.391427 0003 0035 -1210 E: 1330629392.391427 0003 0036 -1143 E: 1330629392.391428 0000 0002 0 E: 1330629392.391429 0003 0039 8 E: 1330629392.391429 0003 0030 132 E: 1330629392.391430 0003 0031 112 E: 1330629392.391430 0003 0034 0 E: 1330629392.391431 0003 0035 -1631 E: 1330629392.391432 0003 0036 276 E: 1330629392.391432 0000 0002 0 E: 1330629392.391433 0003 0039 11 E: 1330629392.391434 0003 0030 192 E: 1330629392.391434 0003 0031 312 E: 1330629392.391435 0003 0034 0 E: 1330629392.391435 0003 0035 -27 E: 1330629392.391436 0003 0036 -1753 E: 1330629392.391437 0000 0002 0 E: 1330629392.391439 0003 0000 -1788 E: 1330629392.391440 0003 0001 1418 E: 1330629392.391441 0000 0000 0 E: 1330629392.393906 0003 0039 1 E: 1330629392.393907 0003 0030 92 E: 1330629392.393908 0003 0031 124 E: 1330629392.393908 0003 0034 0 E: 1330629392.393909 0003 0035 -1665 E: 1330629392.393909 0003 0036 1417 E: 1330629392.393910 0000 0002 0 E: 1330629392.393911 0003 0039 4 E: 1330629392.393911 0003 0030 200 E: 1330629392.393912 0003 0031 248 E: 1330629392.393913 0003 0034 0 E: 1330629392.393913 0003 0035 -1034 E: 1330629392.393914 0003 0036 -1138 E: 1330629392.393914 0000 0002 0 E: 1330629392.393915 0003 0039 8 E: 1330629392.393916 0003 0030 132 E: 1330629392.393916 0003 0031 116 E: 1330629392.393917 0003 0034 0 E: 1330629392.393918 0003 0035 -1503 E: 1330629392.393918 0003 0036 278 E: 1330629392.393919 0000 0002 0 E: 1330629392.393920 0003 0039 11 E: 1330629392.393920 0003 0030 192 E: 1330629392.393921 0003 0031 308 E: 1330629392.393921 0003 0034 0 E: 1330629392.393922 0003 0035 162 E: 1330629392.393923 0003 0036 -1757 E: 1330629392.393923 0000 0002 0 E: 1330629392.393926 0003 0000 -1665 E: 1330629392.393927 0000 0000 0 E: 1330629392.401407 0003 0039 1 E: 1330629392.401408 0003 0030 88 E: 1330629392.401409 0003 0031 116 E: 1330629392.401409 0003 0034 0 E: 1330629392.401410 0003 0035 -1485 E: 1330629392.401410 0003 0036 1415 E: 1330629392.401411 0000 0002 0 E: 1330629392.401412 0003 0039 4 E: 1330629392.401412 0003 0030 196 E: 1330629392.401413 0003 0031 240 E: 1330629392.401414 0003 0034 0 E: 1330629392.401414 0003 0035 -880 E: 1330629392.401415 0003 0036 -1135 E: 1330629392.401416 0000 0002 0 E: 1330629392.401416 0003 0039 8 E: 1330629392.401417 0003 0030 132 E: 1330629392.401418 0003 0031 120 E: 1330629392.401418 0003 0034 0 E: 1330629392.401419 0003 0035 -1320 E: 1330629392.401419 0003 0036 280 E: 1330629392.401420 0000 0002 0 E: 1330629392.401421 0003 0039 11 E: 1330629392.401421 0003 0030 200 E: 1330629392.401422 0003 0031 296 E: 1330629392.401423 0003 0034 0 E: 1330629392.401423 0003 0035 317 E: 1330629392.401424 0003 0036 -1759 E: 1330629392.401424 0000 0002 0 E: 1330629392.401427 0003 0000 -1485 E: 1330629392.401428 0003 0001 1417 E: 1330629392.401428 0000 0000 0 E: 1330629392.421393 0003 0039 1 E: 1330629392.421394 0003 0030 92 E: 1330629392.421394 0003 0031 116 E: 1330629392.421395 0003 0034 0 E: 1330629392.421395 0003 0035 -1385 E: 1330629392.421396 0003 0036 1415 E: 1330629392.421396 0000 0002 0 E: 1330629392.421397 0003 0039 4 E: 1330629392.421397 0003 0030 176 E: 1330629392.421397 0003 0031 212 E: 1330629392.421398 0003 0034 0 E: 1330629392.421398 0003 0035 -712 E: 1330629392.421399 0003 0036 -1131 E: 1330629392.421399 0000 0002 0 E: 1330629392.421399 0003 0039 8 E: 1330629392.421400 0003 0030 124 E: 1330629392.421400 0003 0031 96 E: 1330629392.421401 0003 0034 0 E: 1330629392.421401 0003 0035 -1165 E: 1330629392.421401 0003 0036 281 E: 1330629392.421402 0000 0002 0 E: 1330629392.421402 0003 0039 11 E: 1330629392.421403 0003 0030 204 E: 1330629392.421403 0003 0031 304 E: 1330629392.421403 0003 0034 0 E: 1330629392.421404 0003 0035 481 E: 1330629392.421404 0003 0036 -1761 E: 1330629392.421405 0000 0002 0 E: 1330629392.421406 0003 0000 -1385 E: 1330629392.421407 0003 0001 1416 E: 1330629392.421407 0000 0000 0 E: 1330629392.423912 0003 0039 1 E: 1330629392.423913 0003 0030 92 E: 1330629392.423914 0003 0031 116 E: 1330629392.423914 0003 0034 0 E: 1330629392.423915 0003 0035 -1180 E: 1330629392.423915 0003 0036 1414 E: 1330629392.423916 0000 0002 0 E: 1330629392.423917 0003 0039 4 E: 1330629392.423918 0003 0030 184 E: 1330629392.423918 0003 0031 212 E: 1330629392.423919 0003 0034 0 E: 1330629392.423919 0003 0035 -531 E: 1330629392.423920 0003 0036 -1129 E: 1330629392.423921 0000 0002 0 E: 1330629392.423921 0003 0039 8 E: 1330629392.423922 0003 0030 140 E: 1330629392.423923 0003 0031 112 E: 1330629392.423923 0003 0034 0 E: 1330629392.423924 0003 0035 -995 E: 1330629392.423924 0003 0036 282 E: 1330629392.423925 0000 0002 0 E: 1330629392.423926 0003 0039 11 E: 1330629392.423926 0003 0030 192 E: 1330629392.423927 0003 0031 300 E: 1330629392.423928 0003 0034 0 E: 1330629392.423928 0003 0035 659 E: 1330629392.423929 0003 0036 -1761 E: 1330629392.423929 0000 0002 0 E: 1330629392.423932 0003 0000 -1180 E: 1330629392.423933 0003 0001 1415 E: 1330629392.423933 0000 0000 0 E: 1330629392.443913 0003 0039 1 E: 1330629392.443914 0003 0030 96 E: 1330629392.443915 0003 0031 120 E: 1330629392.443915 0003 0034 0 E: 1330629392.443916 0003 0035 -1007 E: 1330629392.443917 0003 0036 1414 E: 1330629392.443917 0000 0002 0 E: 1330629392.443918 0003 0039 4 E: 1330629392.443919 0003 0030 204 E: 1330629392.443919 0003 0031 244 E: 1330629392.443920 0003 0034 0 E: 1330629392.443920 0003 0035 -339 E: 1330629392.443921 0003 0036 -1127 E: 1330629392.443922 0000 0002 0 E: 1330629392.443922 0003 0039 8 E: 1330629392.443923 0003 0030 144 E: 1330629392.443924 0003 0031 116 E: 1330629392.443924 0003 0034 0 E: 1330629392.443925 0003 0035 -812 E: 1330629392.443926 0003 0036 283 E: 1330629392.443926 0000 0002 0 E: 1330629392.443927 0003 0039 11 E: 1330629392.443927 0003 0030 200 E: 1330629392.443928 0003 0031 308 E: 1330629392.443929 0003 0034 0 E: 1330629392.443929 0003 0035 850 E: 1330629392.443930 0003 0036 -1760 E: 1330629392.443931 0000 0002 0 E: 1330629392.443933 0003 0000 -1007 E: 1330629392.443934 0000 0000 0 E: 1330629392.446422 0003 0039 1 E: 1330629392.446423 0003 0030 104 E: 1330629392.446424 0003 0031 116 E: 1330629392.446425 0003 0034 0 E: 1330629392.446425 0003 0035 -823 E: 1330629392.446426 0003 0036 1413 E: 1330629392.446427 0000 0002 0 E: 1330629392.446427 0003 0039 4 E: 1330629392.446428 0003 0030 220 E: 1330629392.446428 0003 0031 260 E: 1330629392.446429 0003 0034 0 E: 1330629392.446430 0003 0035 -137 E: 1330629392.446430 0003 0036 -1124 E: 1330629392.446431 0000 0002 0 E: 1330629392.446432 0003 0039 8 E: 1330629392.446432 0003 0030 128 E: 1330629392.446433 0003 0031 120 E: 1330629392.446433 0003 0034 0 E: 1330629392.446434 0003 0035 -619 E: 1330629392.446435 0003 0036 284 E: 1330629392.446435 0000 0002 0 E: 1330629392.446436 0003 0039 11 E: 1330629392.446437 0003 0030 200 E: 1330629392.446437 0003 0031 316 E: 1330629392.446438 0003 0034 0 E: 1330629392.446438 0003 0035 1122 E: 1330629392.446439 0003 0036 -1758 E: 1330629392.446440 0000 0002 0 E: 1330629392.446442 0003 0000 -823 E: 1330629392.446443 0003 0001 1414 E: 1330629392.446444 0000 0000 0 E: 1330629392.452767 0003 0039 1 E: 1330629392.452768 0003 0030 112 E: 1330629392.452768 0003 0031 112 E: 1330629392.452769 0003 0034 0 E: 1330629392.452769 0003 0035 -627 E: 1330629392.452769 0003 0036 1413 E: 1330629392.452770 0000 0002 0 E: 1330629392.452770 0003 0039 4 E: 1330629392.452771 0003 0030 212 E: 1330629392.452771 0003 0031 264 E: 1330629392.452771 0003 0034 0 E: 1330629392.452772 0003 0035 148 E: 1330629392.452772 0003 0036 -1121 E: 1330629392.452773 0000 0002 0 E: 1330629392.452773 0003 0039 8 E: 1330629392.452774 0003 0030 148 E: 1330629392.452774 0003 0031 120 E: 1330629392.452774 0003 0034 0 E: 1330629392.452775 0003 0035 -342 E: 1330629392.452775 0003 0036 286 E: 1330629392.452776 0000 0002 0 E: 1330629392.452776 0003 0039 11 E: 1330629392.452776 0003 0030 212 E: 1330629392.452777 0003 0031 312 E: 1330629392.452777 0003 0034 0 E: 1330629392.452778 0003 0035 1348 E: 1330629392.452778 0003 0036 -1754 E: 1330629392.452778 0000 0002 0 E: 1330629392.452780 0003 0000 -627 E: 1330629392.452781 0000 0000 0 E: 1330629392.472769 0003 0039 1 E: 1330629392.472770 0003 0030 140 E: 1330629392.472770 0003 0031 124 E: 1330629392.472771 0003 0034 0 E: 1330629392.472771 0003 0035 -347 E: 1330629392.472771 0003 0036 1413 E: 1330629392.472772 0000 0002 0 E: 1330629392.472772 0003 0039 4 E: 1330629392.472773 0003 0030 196 E: 1330629392.472773 0003 0031 248 E: 1330629392.472774 0003 0034 0 E: 1330629392.472774 0003 0035 378 E: 1330629392.472774 0003 0036 -1119 E: 1330629392.472775 0000 0002 0 E: 1330629392.472775 0003 0039 8 E: 1330629392.472776 0003 0030 160 E: 1330629392.472776 0003 0031 116 E: 1330629392.472776 0003 0034 0 E: 1330629392.472777 0003 0035 -195 E: 1330629392.472777 0003 0036 288 E: 1330629392.472778 0000 0002 0 E: 1330629392.472778 0003 0039 11 E: 1330629392.472778 0003 0030 216 E: 1330629392.472779 0003 0031 304 E: 1330629392.472779 0003 0034 0 E: 1330629392.472780 0003 0035 1584 E: 1330629392.472780 0003 0036 -1751 E: 1330629392.472780 0000 0002 0 E: 1330629392.472782 0003 0000 -347 E: 1330629392.472783 0000 0000 0 E: 1330629392.475169 0003 0039 1 E: 1330629392.475170 0003 0030 140 E: 1330629392.475170 0003 0031 140 E: 1330629392.475171 0003 0034 0 E: 1330629392.475171 0003 0035 -124 E: 1330629392.475172 0003 0036 1415 E: 1330629392.475173 0000 0002 0 E: 1330629392.475174 0003 0039 4 E: 1330629392.475174 0003 0030 188 E: 1330629392.475175 0003 0031 236 E: 1330629392.475175 0003 0034 0 E: 1330629392.475176 0003 0035 614 E: 1330629392.475177 0003 0036 -1118 E: 1330629392.475177 0000 0002 0 E: 1330629392.475178 0003 0039 8 E: 1330629392.475179 0003 0030 176 E: 1330629392.475179 0003 0031 120 E: 1330629392.475180 0003 0034 23 E: 1330629392.475180 0003 0035 103 E: 1330629392.475181 0003 0036 294 E: 1330629392.475182 0000 0002 0 E: 1330629392.475182 0003 0039 11 E: 1330629392.475183 0003 0030 216 E: 1330629392.475184 0003 0031 300 E: 1330629392.475184 0003 0034 0 E: 1330629392.475185 0003 0035 1826 E: 1330629392.475185 0003 0036 -1745 E: 1330629392.475186 0000 0002 0 E: 1330629392.475189 0003 0000 -124 E: 1330629392.475190 0000 0000 0 E: 1330629392.495166 0003 0039 1 E: 1330629392.495167 0003 0030 144 E: 1330629392.495168 0003 0031 136 E: 1330629392.495169 0003 0034 0 E: 1330629392.495169 0003 0035 113 E: 1330629392.495170 0003 0036 1417 E: 1330629392.495170 0000 0002 0 E: 1330629392.495171 0003 0039 4 E: 1330629392.495172 0003 0030 192 E: 1330629392.495172 0003 0031 244 E: 1330629392.495173 0003 0034 0 E: 1330629392.495174 0003 0035 859 E: 1330629392.495174 0003 0036 -1114 E: 1330629392.495175 0000 0002 0 E: 1330629392.495176 0003 0039 8 E: 1330629392.495176 0003 0030 164 E: 1330629392.495177 0003 0031 124 E: 1330629392.495177 0003 0034 0 E: 1330629392.495178 0003 0035 346 E: 1330629392.495179 0003 0036 301 E: 1330629392.495179 0000 0002 0 E: 1330629392.495180 0003 0039 11 E: 1330629392.495181 0003 0030 200 E: 1330629392.495181 0003 0031 300 E: 1330629392.495182 0003 0034 0 E: 1330629392.495183 0003 0035 2074 E: 1330629392.495183 0003 0036 -1738 E: 1330629392.495184 0000 0002 0 E: 1330629392.495186 0003 0000 113 E: 1330629392.495188 0000 0000 0 E: 1330629392.497784 0003 0039 1 E: 1330629392.497785 0003 0030 128 E: 1330629392.497785 0003 0031 128 E: 1330629392.497786 0003 0034 0 E: 1330629392.497787 0003 0035 361 E: 1330629392.497787 0003 0036 1420 E: 1330629392.497788 0000 0002 0 E: 1330629392.497789 0003 0039 4 E: 1330629392.497789 0003 0030 200 E: 1330629392.497790 0003 0031 240 E: 1330629392.497791 0003 0034 0 E: 1330629392.497791 0003 0035 1112 E: 1330629392.497792 0003 0036 -1111 E: 1330629392.497792 0000 0002 0 E: 1330629392.497793 0003 0039 8 E: 1330629392.497794 0003 0030 160 E: 1330629392.497794 0003 0031 128 E: 1330629392.497795 0003 0034 0 E: 1330629392.497796 0003 0035 599 E: 1330629392.497796 0003 0036 311 E: 1330629392.497797 0000 0002 0 E: 1330629392.497798 0003 0039 11 E: 1330629392.497798 0003 0030 196 E: 1330629392.497799 0003 0031 300 E: 1330629392.497799 0003 0034 0 E: 1330629392.497800 0003 0035 2331 E: 1330629392.497801 0003 0036 -1729 E: 1330629392.497801 0000 0002 0 E: 1330629392.497804 0003 0000 361 E: 1330629392.497804 0003 0001 1417 E: 1330629392.497805 0000 0000 0 E: 1330629392.503892 0003 0039 1 E: 1330629392.503893 0003 0030 128 E: 1330629392.503893 0003 0031 132 E: 1330629392.503894 0003 0034 0 E: 1330629392.503894 0003 0035 618 E: 1330629392.503894 0003 0036 1426 E: 1330629392.503895 0000 0002 0 E: 1330629392.503895 0003 0039 4 E: 1330629392.503896 0003 0030 200 E: 1330629392.503896 0003 0031 252 E: 1330629392.503896 0003 0034 0 E: 1330629392.503897 0003 0035 1380 E: 1330629392.503897 0003 0036 -1109 E: 1330629392.503898 0000 0002 0 E: 1330629392.503898 0003 0039 8 E: 1330629392.503898 0003 0030 152 E: 1330629392.503899 0003 0031 132 E: 1330629392.503899 0003 0034 0 E: 1330629392.503900 0003 0035 868 E: 1330629392.503900 0003 0036 321 E: 1330629392.503900 0000 0002 0 E: 1330629392.503901 0003 0039 11 E: 1330629392.503901 0003 0030 260 E: 1330629392.503902 0003 0031 328 E: 1330629392.503902 0003 0034 0 E: 1330629392.503902 0003 0035 2697 E: 1330629392.503903 0003 0036 -1714 E: 1330629392.503903 0000 0002 0 E: 1330629392.503905 0003 0000 618 E: 1330629392.503905 0003 0001 1426 E: 1330629392.503906 0000 0000 0 E: 1330629392.523916 0003 0039 1 E: 1330629392.523917 0003 0030 128 E: 1330629392.523917 0003 0031 128 E: 1330629392.523918 0003 0034 0 E: 1330629392.523918 0003 0035 883 E: 1330629392.523919 0003 0036 1433 E: 1330629392.523920 0000 0002 0 E: 1330629392.523920 0003 0039 4 E: 1330629392.523921 0003 0030 208 E: 1330629392.523921 0003 0031 256 E: 1330629392.523922 0003 0034 0 E: 1330629392.523922 0003 0035 1656 E: 1330629392.523923 0003 0036 -1106 E: 1330629392.523924 0000 0002 0 E: 1330629392.523924 0003 0039 8 E: 1330629392.523925 0003 0030 160 E: 1330629392.523925 0003 0031 140 E: 1330629392.523926 0003 0034 0 E: 1330629392.523927 0003 0035 1147 E: 1330629392.523927 0003 0036 334 E: 1330629392.523928 0000 0002 0 E: 1330629392.523929 0003 0039 11 E: 1330629392.523929 0003 0030 136 E: 1330629392.523930 0003 0031 164 E: 1330629392.523930 0003 0034 0 E: 1330629392.523931 0003 0035 2846 E: 1330629392.523932 0003 0036 -1704 E: 1330629392.523932 0000 0002 0 E: 1330629392.523935 0003 0000 883 E: 1330629392.523936 0003 0001 1429 E: 1330629392.523936 0000 0000 0 E: 1330629392.526425 0003 0039 1 E: 1330629392.526426 0003 0030 132 E: 1330629392.526427 0003 0031 124 E: 1330629392.526427 0003 0034 0 E: 1330629392.526428 0003 0035 1155 E: 1330629392.526429 0003 0036 1440 E: 1330629392.526429 0000 0002 0 E: 1330629392.526430 0003 0039 4 E: 1330629392.526431 0003 0030 216 E: 1330629392.526431 0003 0031 252 E: 1330629392.526432 0003 0034 0 E: 1330629392.526432 0003 0035 1940 E: 1330629392.526433 0003 0036 -1102 E: 1330629392.526434 0000 0002 0 E: 1330629392.526434 0003 0039 8 E: 1330629392.526435 0003 0030 164 E: 1330629392.526436 0003 0031 140 E: 1330629392.526436 0003 0034 0 E: 1330629392.526437 0003 0035 1430 E: 1330629392.526437 0003 0036 347 E: 1330629392.526438 0000 0002 0 E: 1330629392.526439 0003 0039 11 E: 1330629392.526439 0003 0030 0 E: 1330629392.526440 0003 0031 0 E: 1330629392.526440 0003 0034 0 E: 1330629392.526440 0003 0035 2846 E: 1330629392.526441 0003 0036 -1704 E: 1330629392.526442 0000 0002 0 E: 1330629392.526444 0003 0000 1155 E: 1330629392.526445 0003 0001 1440 E: 1330629392.526446 0000 0000 0 E: 1330629392.546422 0003 0039 1 E: 1330629392.546424 0003 0030 128 E: 1330629392.546424 0003 0031 120 E: 1330629392.546425 0003 0034 0 E: 1330629392.546425 0003 0035 1430 E: 1330629392.546426 0003 0036 1450 E: 1330629392.546427 0000 0002 0 E: 1330629392.546427 0003 0039 4 E: 1330629392.546428 0003 0030 200 E: 1330629392.546429 0003 0031 220 E: 1330629392.546429 0003 0034 15 E: 1330629392.546430 0003 0035 2229 E: 1330629392.546430 0003 0036 -1097 E: 1330629392.546431 0000 0002 0 E: 1330629392.546432 0003 0039 8 E: 1330629392.546432 0003 0030 164 E: 1330629392.546433 0003 0031 140 E: 1330629392.546434 0003 0034 0 E: 1330629392.546434 0003 0035 1716 E: 1330629392.546435 0003 0036 362 E: 1330629392.546435 0000 0002 0 E: 1330629392.546437 0001 014e 1 E: 1330629392.546438 0001 014f 0 E: 1330629392.546439 0003 0000 1430 E: 1330629392.546440 0003 0001 1450 E: 1330629392.546440 0000 0000 0 E: 1330629392.548908 0003 0039 1 E: 1330629392.548909 0003 0030 128 E: 1330629392.548909 0003 0031 128 E: 1330629392.548909 0003 0034 0 E: 1330629392.548910 0003 0035 1714 E: 1330629392.548911 0003 0036 1464 E: 1330629392.548911 0000 0002 0 E: 1330629392.548912 0003 0039 4 E: 1330629392.548913 0003 0030 340 E: 1330629392.548913 0003 0031 208 E: 1330629392.548914 0003 0034 23 E: 1330629392.548915 0003 0035 2629 E: 1330629392.548915 0003 0036 -1090 E: 1330629392.548916 0000 0002 0 E: 1330629392.548916 0003 0039 8 E: 1330629392.548917 0003 0030 164 E: 1330629392.548918 0003 0031 152 E: 1330629392.548918 0003 0034 0 E: 1330629392.548919 0003 0035 2005 E: 1330629392.548919 0003 0036 380 E: 1330629392.548920 0000 0002 0 E: 1330629392.548923 0003 0000 1714 E: 1330629392.548924 0003 0001 1464 E: 1330629392.548925 0000 0000 0 E: 1330629392.555143 0003 0039 1 E: 1330629392.555143 0003 0030 128 E: 1330629392.555144 0003 0031 132 E: 1330629392.555144 0003 0034 0 E: 1330629392.555144 0003 0035 1996 E: 1330629392.555145 0003 0036 1480 E: 1330629392.555145 0000 0002 0 E: 1330629392.555146 0003 0039 4 E: 1330629392.555146 0003 0030 156 E: 1330629392.555147 0003 0031 164 E: 1330629392.555147 0003 0034 0 E: 1330629392.555147 0003 0035 2797 E: 1330629392.555148 0003 0036 -1078 E: 1330629392.555148 0000 0002 0 E: 1330629392.555149 0003 0039 8 E: 1330629392.555149 0003 0030 148 E: 1330629392.555149 0003 0031 144 E: 1330629392.555150 0003 0034 0 E: 1330629392.555150 0003 0035 2287 E: 1330629392.555150 0003 0036 398 E: 1330629392.555151 0000 0002 0 E: 1330629392.555153 0003 0000 1996 E: 1330629392.555153 0003 0001 1480 E: 1330629392.555154 0000 0000 0 E: 1330629392.575153 0003 0039 1 E: 1330629392.575154 0003 0030 116 E: 1330629392.575155 0003 0031 120 E: 1330629392.575155 0003 0034 0 E: 1330629392.575156 0003 0035 2275 E: 1330629392.575157 0003 0036 1499 E: 1330629392.575157 0000 0002 0 E: 1330629392.575158 0003 0039 4 E: 1330629392.575159 0003 0030 0 E: 1330629392.575159 0003 0031 0 E: 1330629392.575159 0003 0034 0 E: 1330629392.575160 0003 0035 2797 E: 1330629392.575160 0003 0036 -1078 E: 1330629392.575161 0000 0002 0 E: 1330629392.575162 0003 0039 8 E: 1330629392.575162 0003 0030 332 E: 1330629392.575163 0003 0031 148 E: 1330629392.575163 0003 0034 23 E: 1330629392.575164 0003 0035 2573 E: 1330629392.575165 0003 0036 415 E: 1330629392.575165 0000 0002 0 E: 1330629392.575168 0003 0000 2275 E: 1330629392.575169 0003 0001 1499 E: 1330629392.575170 0000 0000 0 E: 1330629392.577783 0003 0039 1 E: 1330629392.577784 0003 0030 120 E: 1330629392.577784 0003 0031 108 E: 1330629392.577785 0003 0034 0 E: 1330629392.577785 0003 0035 2545 E: 1330629392.577786 0003 0036 1517 E: 1330629392.577787 0000 0002 0 E: 1330629392.577788 0003 0039 8 E: 1330629392.577788 0003 0030 104 E: 1330629392.577789 0003 0031 128 E: 1330629392.577789 0003 0034 0 E: 1330629392.577790 0003 0035 2827 E: 1330629392.577791 0003 0036 442 E: 1330629392.577791 0000 0002 0 E: 1330629392.577793 0001 014d 1 E: 1330629392.577794 0001 014e 0 E: 1330629392.577795 0003 0000 2545 E: 1330629392.577795 0003 0001 1517 E: 1330629392.577796 0000 0000 0 E: 1330629392.597766 0003 0039 1 E: 1330629392.597767 0003 0030 92 E: 1330629392.597767 0003 0031 112 E: 1330629392.597768 0003 0034 0 E: 1330629392.597768 0003 0035 2801 E: 1330629392.597769 0003 0036 1541 E: 1330629392.597769 0000 0002 0 E: 1330629392.597770 0003 0039 8 E: 1330629392.597770 0003 0030 0 E: 1330629392.597770 0003 0031 0 E: 1330629392.597770 0003 0034 0 E: 1330629392.597771 0003 0035 2827 E: 1330629392.597771 0003 0036 442 E: 1330629392.597771 0000 0002 0 E: 1330629392.597773 0003 0000 2801 E: 1330629392.597774 0003 0001 1541 E: 1330629392.597774 0000 0000 0 E: 1330629392.599774 0003 0039 1 E: 1330629392.599775 0003 0030 0 E: 1330629392.599775 0003 0031 0 E: 1330629392.599775 0003 0034 0 E: 1330629392.599776 0003 0035 2801 E: 1330629392.599777 0003 0036 1541 E: 1330629392.599777 0000 0002 0 E: 1330629392.599778 0001 0145 1 E: 1330629392.599779 0001 014d 0 E: 1330629392.599781 0000 0000 0 E: 1330629392.606026 0001 014a 0 E: 1330629392.606027 0001 0145 0 E: 1330629392.606027 0000 0000 0 ././@LongLink0000000000000000000000000000015500000000000011216 Lustar 00000000000000grail-3.1.0+16.04.20160125/test/integration/recordings/apple_magic_trackpad/3_drag_ended_by_4th_touch.recordgrail-3.1.0+16.04.20160125/test/integration/recordings/apple_magic_trackpad/3_drag_ended_by_4th_touc0000644000015600001650000017755712651522342033501 0ustar pbuserpbgroup00000000000000E: 1331926700.835652 0003 0039 1 E: 1331926700.835653 0003 0030 112 E: 1331926700.835654 0003 0031 152 E: 1331926700.835655 0003 0034 0 E: 1331926700.835655 0003 0035 -1151 E: 1331926700.835656 0003 0036 -951 E: 1331926700.835657 0000 0002 0 E: 1331926700.835657 0003 0039 7 E: 1331926700.835658 0003 0030 120 E: 1331926700.835659 0003 0031 108 E: 1331926700.835659 0003 0034 0 E: 1331926700.835660 0003 0035 1177 E: 1331926700.835661 0003 0036 -1600 E: 1331926700.835661 0000 0002 0 E: 1331926700.835662 0003 0039 9 E: 1331926700.835663 0003 0030 168 E: 1331926700.835663 0003 0031 320 E: 1331926700.835664 0003 0034 0 E: 1331926700.835665 0003 0035 -73 E: 1331926700.835665 0003 0036 -1895 E: 1331926700.835666 0000 0002 0 E: 1331926700.835667 0001 014a 1 E: 1331926700.835668 0001 014e 1 E: 1331926700.835670 0003 0000 -1151 E: 1331926700.835670 0003 0001 -951 E: 1331926700.835671 0000 0000 0 E: 1331926700.843123 0003 0039 1 E: 1331926700.843124 0003 0030 132 E: 1331926700.843125 0003 0031 156 E: 1331926700.843125 0003 0034 0 E: 1331926700.843126 0003 0035 -1150 E: 1331926700.843127 0003 0036 -948 E: 1331926700.843127 0000 0002 0 E: 1331926700.843128 0003 0039 7 E: 1331926700.843129 0003 0030 116 E: 1331926700.843129 0003 0031 148 E: 1331926700.843130 0003 0034 0 E: 1331926700.843131 0003 0035 1178 E: 1331926700.843131 0003 0036 -1600 E: 1331926700.843132 0000 0002 0 E: 1331926700.843133 0003 0039 9 E: 1331926700.843133 0003 0030 188 E: 1331926700.843134 0003 0031 328 E: 1331926700.843135 0003 0034 0 E: 1331926700.843135 0003 0035 -78 E: 1331926700.843136 0003 0036 -1890 E: 1331926700.843136 0000 0002 0 E: 1331926700.843140 0003 0001 -950 E: 1331926700.843141 0000 0000 0 E: 1331926700.863130 0003 0039 1 E: 1331926700.863131 0003 0030 144 E: 1331926700.863131 0003 0031 160 E: 1331926700.863132 0003 0034 0 E: 1331926700.863133 0003 0035 -1150 E: 1331926700.863133 0003 0036 -944 E: 1331926700.863134 0000 0002 0 E: 1331926700.863135 0003 0039 7 E: 1331926700.863135 0003 0030 112 E: 1331926700.863136 0003 0031 168 E: 1331926700.863137 0003 0034 0 E: 1331926700.863137 0003 0035 1186 E: 1331926700.863138 0003 0036 -1592 E: 1331926700.863139 0000 0002 0 E: 1331926700.863139 0003 0039 9 E: 1331926700.863140 0003 0030 208 E: 1331926700.863141 0003 0031 328 E: 1331926700.863141 0003 0034 0 E: 1331926700.863142 0003 0035 -75 E: 1331926700.863143 0003 0036 -1887 E: 1331926700.863143 0000 0002 0 E: 1331926700.863147 0003 0001 -947 E: 1331926700.863148 0000 0000 0 E: 1331926700.865619 0003 0039 1 E: 1331926700.865620 0003 0030 164 E: 1331926700.865621 0003 0031 160 E: 1331926700.865622 0003 0034 0 E: 1331926700.865622 0003 0035 -1149 E: 1331926700.865623 0003 0036 -942 E: 1331926700.865624 0000 0002 0 E: 1331926700.865624 0003 0039 7 E: 1331926700.865625 0003 0030 116 E: 1331926700.865626 0003 0031 192 E: 1331926700.865626 0003 0034 0 E: 1331926700.865627 0003 0035 1190 E: 1331926700.865628 0003 0036 -1581 E: 1331926700.865628 0000 0002 0 E: 1331926700.865629 0003 0039 9 E: 1331926700.865630 0003 0030 212 E: 1331926700.865630 0003 0031 352 E: 1331926700.865631 0003 0034 0 E: 1331926700.865631 0003 0035 -72 E: 1331926700.865632 0003 0036 -1880 E: 1331926700.865633 0000 0002 0 E: 1331926700.865636 0003 0000 -1150 E: 1331926700.865636 0003 0001 -944 E: 1331926700.865637 0000 0000 0 E: 1331926700.898119 0003 0039 1 E: 1331926700.898120 0003 0030 172 E: 1331926700.898121 0003 0031 160 E: 1331926700.898121 0003 0034 0 E: 1331926700.898122 0003 0035 -1147 E: 1331926700.898123 0003 0036 -938 E: 1331926700.898123 0000 0002 0 E: 1331926700.898124 0003 0039 7 E: 1331926700.898125 0003 0030 112 E: 1331926700.898125 0003 0031 200 E: 1331926700.898126 0003 0034 0 E: 1331926700.898127 0003 0035 1198 E: 1331926700.898127 0003 0036 -1570 E: 1331926700.898128 0000 0002 0 E: 1331926700.898129 0003 0039 9 E: 1331926700.898129 0003 0030 212 E: 1331926700.898130 0003 0031 360 E: 1331926700.898131 0003 0034 0 E: 1331926700.898131 0003 0035 -71 E: 1331926700.898132 0003 0036 -1876 E: 1331926700.898132 0000 0002 0 E: 1331926700.898136 0003 0000 -1149 E: 1331926700.898136 0003 0001 -941 E: 1331926700.898137 0000 0000 0 E: 1331926700.900647 0003 0039 1 E: 1331926700.900648 0003 0030 168 E: 1331926700.900648 0003 0031 168 E: 1331926700.900649 0003 0034 0 E: 1331926700.900649 0003 0035 -1145 E: 1331926700.900650 0003 0036 -936 E: 1331926700.900651 0000 0002 0 E: 1331926700.900651 0003 0039 7 E: 1331926700.900652 0003 0030 124 E: 1331926700.900653 0003 0031 220 E: 1331926700.900653 0003 0034 0 E: 1331926700.900654 0003 0035 1205 E: 1331926700.900655 0003 0036 -1556 E: 1331926700.900655 0000 0002 0 E: 1331926700.900656 0003 0039 9 E: 1331926700.900657 0003 0030 228 E: 1331926700.900657 0003 0031 380 E: 1331926700.900658 0003 0034 0 E: 1331926700.900659 0003 0035 -69 E: 1331926700.900659 0003 0036 -1869 E: 1331926700.900660 0000 0002 0 E: 1331926700.900663 0003 0000 -1147 E: 1331926700.900664 0003 0001 -938 E: 1331926700.900664 0000 0000 0 E: 1331926700.903122 0003 0039 1 E: 1331926700.903123 0003 0030 168 E: 1331926700.903123 0003 0031 172 E: 1331926700.903124 0003 0034 0 E: 1331926700.903124 0003 0035 -1140 E: 1331926700.903125 0003 0036 -927 E: 1331926700.903126 0000 0002 0 E: 1331926700.903127 0003 0039 7 E: 1331926700.903127 0003 0030 136 E: 1331926700.903128 0003 0031 232 E: 1331926700.903128 0003 0034 0 E: 1331926700.903129 0003 0035 1212 E: 1331926700.903130 0003 0036 -1541 E: 1331926700.903130 0000 0002 0 E: 1331926700.903131 0003 0039 9 E: 1331926700.903132 0003 0030 228 E: 1331926700.903132 0003 0031 380 E: 1331926700.903133 0003 0034 0 E: 1331926700.903134 0003 0035 -66 E: 1331926700.903134 0003 0036 -1861 E: 1331926700.903135 0000 0002 0 E: 1331926700.903138 0003 0000 -1143 E: 1331926700.903139 0003 0001 -927 E: 1331926700.903139 0000 0000 0 E: 1331926700.905618 0003 0039 1 E: 1331926700.905619 0003 0030 172 E: 1331926700.905620 0003 0031 184 E: 1331926700.905621 0003 0034 0 E: 1331926700.905621 0003 0035 -1134 E: 1331926700.905622 0003 0036 -914 E: 1331926700.905623 0000 0002 0 E: 1331926700.905623 0003 0039 7 E: 1331926700.905624 0003 0030 136 E: 1331926700.905625 0003 0031 212 E: 1331926700.905625 0003 0034 0 E: 1331926700.905626 0003 0035 1218 E: 1331926700.905627 0003 0036 -1524 E: 1331926700.905627 0000 0002 0 E: 1331926700.905628 0003 0039 9 E: 1331926700.905629 0003 0030 220 E: 1331926700.905629 0003 0031 388 E: 1331926700.905630 0003 0034 0 E: 1331926700.905630 0003 0035 -63 E: 1331926700.905631 0003 0036 -1851 E: 1331926700.905632 0000 0002 0 E: 1331926700.905635 0003 0000 -1134 E: 1331926700.905635 0003 0001 -914 E: 1331926700.905636 0000 0000 0 E: 1331926700.925617 0003 0039 1 E: 1331926700.925618 0003 0030 180 E: 1331926700.925618 0003 0031 204 E: 1331926700.925619 0003 0034 0 E: 1331926700.925620 0003 0035 -1128 E: 1331926700.925620 0003 0036 -899 E: 1331926700.925621 0000 0002 0 E: 1331926700.925622 0003 0039 7 E: 1331926700.925622 0003 0030 136 E: 1331926700.925623 0003 0031 208 E: 1331926700.925624 0003 0034 0 E: 1331926700.925624 0003 0035 1225 E: 1331926700.925625 0003 0036 -1507 E: 1331926700.925626 0000 0002 0 E: 1331926700.925626 0003 0039 9 E: 1331926700.925627 0003 0030 216 E: 1331926700.925628 0003 0031 400 E: 1331926700.925628 0003 0034 0 E: 1331926700.925629 0003 0035 -58 E: 1331926700.925630 0003 0036 -1836 E: 1331926700.925630 0000 0002 0 E: 1331926700.925633 0003 0000 -1131 E: 1331926700.925634 0003 0001 -899 E: 1331926700.925635 0000 0000 0 E: 1331926700.928083 0003 0039 1 E: 1331926700.928084 0003 0030 180 E: 1331926700.928084 0003 0031 216 E: 1331926700.928085 0003 0034 0 E: 1331926700.928086 0003 0035 -1122 E: 1331926700.928086 0003 0036 -882 E: 1331926700.928087 0000 0002 0 E: 1331926700.928088 0003 0039 7 E: 1331926700.928088 0003 0030 140 E: 1331926700.928089 0003 0031 228 E: 1331926700.928090 0003 0034 0 E: 1331926700.928090 0003 0035 1232 E: 1331926700.928091 0003 0036 -1489 E: 1331926700.928092 0000 0002 0 E: 1331926700.928092 0003 0039 9 E: 1331926700.928093 0003 0030 200 E: 1331926700.928094 0003 0031 376 E: 1331926700.928094 0003 0034 0 E: 1331926700.928095 0003 0035 -53 E: 1331926700.928096 0003 0036 -1820 E: 1331926700.928096 0000 0002 0 E: 1331926700.928099 0003 0000 -1122 E: 1331926700.928100 0003 0001 -882 E: 1331926700.928101 0000 0000 0 E: 1331926700.935646 0003 0039 1 E: 1331926700.935647 0003 0030 168 E: 1331926700.935648 0003 0031 196 E: 1331926700.935648 0003 0034 0 E: 1331926700.935649 0003 0035 -1115 E: 1331926700.935650 0003 0036 -863 E: 1331926700.935650 0000 0002 0 E: 1331926700.935651 0003 0039 7 E: 1331926700.935652 0003 0030 152 E: 1331926700.935652 0003 0031 248 E: 1331926700.935653 0003 0034 0 E: 1331926700.935654 0003 0035 1240 E: 1331926700.935654 0003 0036 -1470 E: 1331926700.935655 0000 0002 0 E: 1331926700.935656 0003 0039 9 E: 1331926700.935656 0003 0030 204 E: 1331926700.935657 0003 0031 380 E: 1331926700.935658 0003 0034 0 E: 1331926700.935658 0003 0035 -48 E: 1331926700.935659 0003 0036 -1803 E: 1331926700.935659 0000 0002 0 E: 1331926700.935663 0003 0000 -1118 E: 1331926700.935663 0003 0001 -863 E: 1331926700.935664 0000 0000 0 E: 1331926700.955645 0003 0039 1 E: 1331926700.955646 0003 0030 164 E: 1331926700.955647 0003 0031 164 E: 1331926700.955647 0003 0034 0 E: 1331926700.955648 0003 0035 -1102 E: 1331926700.955649 0003 0036 -829 E: 1331926700.955649 0000 0002 0 E: 1331926700.955650 0003 0039 7 E: 1331926700.955651 0003 0030 148 E: 1331926700.955651 0003 0031 260 E: 1331926700.955652 0003 0034 0 E: 1331926700.955653 0003 0035 1255 E: 1331926700.955653 0003 0036 -1433 E: 1331926700.955654 0000 0002 0 E: 1331926700.955655 0003 0039 9 E: 1331926700.955655 0003 0030 204 E: 1331926700.955656 0003 0031 376 E: 1331926700.955656 0003 0034 0 E: 1331926700.955657 0003 0035 -40 E: 1331926700.955658 0003 0036 -1779 E: 1331926700.955658 0000 0002 0 E: 1331926700.955662 0003 0000 -1102 E: 1331926700.955662 0003 0001 -829 E: 1331926700.955663 0000 0000 0 E: 1331926700.969388 0003 0039 1 E: 1331926700.969389 0003 0030 160 E: 1331926700.969390 0003 0031 152 E: 1331926700.969390 0003 0034 0 E: 1331926700.969391 0003 0035 -1095 E: 1331926700.969392 0003 0036 -808 E: 1331926700.969392 0000 0002 0 E: 1331926700.969393 0003 0039 7 E: 1331926700.969394 0003 0030 152 E: 1331926700.969394 0003 0031 248 E: 1331926700.969395 0003 0034 0 E: 1331926700.969396 0003 0035 1267 E: 1331926700.969396 0003 0036 -1400 E: 1331926700.969397 0000 0002 0 E: 1331926700.969398 0003 0039 9 E: 1331926700.969398 0003 0030 212 E: 1331926700.969399 0003 0031 388 E: 1331926700.969400 0003 0034 0 E: 1331926700.969400 0003 0035 -31 E: 1331926700.969401 0003 0036 -1753 E: 1331926700.969402 0000 0002 0 E: 1331926700.969405 0003 0000 -1098 E: 1331926700.969405 0003 0001 -808 E: 1331926700.969406 0000 0000 0 E: 1331926700.979390 0003 0039 1 E: 1331926700.979391 0003 0030 176 E: 1331926700.979392 0003 0031 160 E: 1331926700.979392 0003 0034 26 E: 1331926700.979393 0003 0035 -1084 E: 1331926700.979393 0003 0036 -778 E: 1331926700.979394 0000 0002 0 E: 1331926700.979395 0003 0039 7 E: 1331926700.979396 0003 0030 140 E: 1331926700.979396 0003 0031 224 E: 1331926700.979397 0003 0034 0 E: 1331926700.979398 0003 0035 1279 E: 1331926700.979398 0003 0036 -1366 E: 1331926700.979399 0000 0002 0 E: 1331926700.979400 0003 0039 9 E: 1331926700.979400 0003 0030 220 E: 1331926700.979401 0003 0031 400 E: 1331926700.979401 0003 0034 0 E: 1331926700.979402 0003 0035 -22 E: 1331926700.979403 0003 0036 -1725 E: 1331926700.979403 0000 0002 0 E: 1331926700.979407 0003 0000 -1084 E: 1331926700.979407 0003 0001 -778 E: 1331926700.979408 0000 0000 0 E: 1331926700.981988 0003 0039 1 E: 1331926700.981989 0003 0030 180 E: 1331926700.981990 0003 0031 172 E: 1331926700.981991 0003 0034 0 E: 1331926700.981991 0003 0035 -1072 E: 1331926700.981992 0003 0036 -746 E: 1331926700.981993 0000 0002 0 E: 1331926700.981993 0003 0039 7 E: 1331926700.981994 0003 0030 132 E: 1331926700.981995 0003 0031 204 E: 1331926700.981995 0003 0034 0 E: 1331926700.981996 0003 0035 1286 E: 1331926700.981997 0003 0036 -1343 E: 1331926700.981997 0000 0002 0 E: 1331926700.981998 0003 0039 9 E: 1331926700.981999 0003 0030 224 E: 1331926700.981999 0003 0031 400 E: 1331926700.982000 0003 0034 0 E: 1331926700.982001 0003 0035 -12 E: 1331926700.982001 0003 0036 -1696 E: 1331926700.982002 0000 0002 0 E: 1331926700.982005 0003 0000 -1072 E: 1331926700.982006 0003 0001 -746 E: 1331926700.982006 0000 0000 0 E: 1331926700.986990 0003 0039 1 E: 1331926700.986991 0003 0030 196 E: 1331926700.986991 0003 0031 204 E: 1331926700.986992 0003 0034 0 E: 1331926700.986993 0003 0035 -1056 E: 1331926700.986993 0003 0036 -702 E: 1331926700.986994 0000 0002 0 E: 1331926700.986995 0003 0039 7 E: 1331926700.986995 0003 0030 140 E: 1331926700.986996 0003 0031 248 E: 1331926700.986997 0003 0034 0 E: 1331926700.986997 0003 0035 1302 E: 1331926700.986998 0003 0036 -1296 E: 1331926700.986999 0000 0002 0 E: 1331926700.986999 0003 0039 9 E: 1331926700.987000 0003 0030 248 E: 1331926700.987001 0003 0031 404 E: 1331926700.987001 0003 0034 0 E: 1331926700.987002 0003 0035 0 E: 1331926700.987002 0003 0036 -1654 E: 1331926700.987003 0000 0002 0 E: 1331926700.987006 0003 0000 -1056 E: 1331926700.987007 0003 0001 -702 E: 1331926700.987007 0000 0000 0 E: 1331926701.006989 0003 0039 1 E: 1331926701.006990 0003 0030 200 E: 1331926701.006991 0003 0031 216 E: 1331926701.006991 0003 0034 0 E: 1331926701.006992 0003 0035 -1044 E: 1331926701.006993 0003 0036 -668 E: 1331926701.006993 0000 0002 0 E: 1331926701.006994 0003 0039 7 E: 1331926701.006995 0003 0030 136 E: 1331926701.006995 0003 0031 252 E: 1331926701.006996 0003 0034 0 E: 1331926701.006997 0003 0035 1314 E: 1331926701.006997 0003 0036 -1261 E: 1331926701.006998 0000 0002 0 E: 1331926701.006999 0003 0039 9 E: 1331926701.006999 0003 0030 248 E: 1331926701.007000 0003 0031 424 E: 1331926701.007001 0003 0034 0 E: 1331926701.007001 0003 0035 11 E: 1331926701.007002 0003 0036 -1620 E: 1331926701.007003 0000 0002 0 E: 1331926701.007006 0003 0000 -1044 E: 1331926701.007006 0003 0001 -668 E: 1331926701.007007 0000 0000 0 E: 1331926701.011995 0003 0039 1 E: 1331926701.011996 0003 0030 204 E: 1331926701.011997 0003 0031 208 E: 1331926701.011997 0003 0034 25 E: 1331926701.011998 0003 0035 -1032 E: 1331926701.011999 0003 0036 -633 E: 1331926701.011999 0000 0002 0 E: 1331926701.012000 0003 0039 7 E: 1331926701.012001 0003 0030 140 E: 1331926701.012001 0003 0031 236 E: 1331926701.012002 0003 0034 0 E: 1331926701.012003 0003 0035 1323 E: 1331926701.012003 0003 0036 -1237 E: 1331926701.012004 0000 0002 0 E: 1331926701.012005 0003 0039 9 E: 1331926701.012005 0003 0030 240 E: 1331926701.012006 0003 0031 416 E: 1331926701.012006 0003 0034 0 E: 1331926701.012007 0003 0035 23 E: 1331926701.012008 0003 0036 -1586 E: 1331926701.012008 0000 0002 0 E: 1331926701.012011 0003 0000 -1032 E: 1331926701.012012 0003 0001 -633 E: 1331926701.012013 0000 0000 0 E: 1331926701.017000 0003 0039 1 E: 1331926701.017001 0003 0030 200 E: 1331926701.017002 0003 0031 180 E: 1331926701.017002 0003 0034 25 E: 1331926701.017003 0003 0035 -1024 E: 1331926701.017004 0003 0036 -610 E: 1331926701.017004 0000 0002 0 E: 1331926701.017005 0003 0039 7 E: 1331926701.017006 0003 0030 148 E: 1331926701.017006 0003 0031 228 E: 1331926701.017007 0003 0034 0 E: 1331926701.017007 0003 0035 1334 E: 1331926701.017008 0003 0036 -1201 E: 1331926701.017009 0000 0002 0 E: 1331926701.017009 0003 0039 9 E: 1331926701.017010 0003 0030 236 E: 1331926701.017011 0003 0031 404 E: 1331926701.017011 0003 0034 0 E: 1331926701.017012 0003 0035 30 E: 1331926701.017013 0003 0036 -1563 E: 1331926701.017013 0000 0002 0 E: 1331926701.017016 0003 0000 -1024 E: 1331926701.017017 0003 0001 -610 E: 1331926701.017018 0000 0000 0 E: 1331926701.036996 0003 0039 1 E: 1331926701.036997 0003 0030 196 E: 1331926701.036998 0003 0031 168 E: 1331926701.036999 0003 0034 26 E: 1331926701.036999 0003 0035 -1013 E: 1331926701.037000 0003 0036 -576 E: 1331926701.037001 0000 0002 0 E: 1331926701.037002 0003 0039 7 E: 1331926701.037002 0003 0030 140 E: 1331926701.037003 0003 0031 208 E: 1331926701.037004 0003 0034 0 E: 1331926701.037004 0003 0035 1345 E: 1331926701.037005 0003 0036 -1165 E: 1331926701.037005 0000 0002 0 E: 1331926701.037006 0003 0039 9 E: 1331926701.037007 0003 0030 224 E: 1331926701.037007 0003 0031 376 E: 1331926701.037008 0003 0034 0 E: 1331926701.037009 0003 0035 41 E: 1331926701.037009 0003 0036 -1531 E: 1331926701.037010 0000 0002 0 E: 1331926701.037013 0003 0000 -1013 E: 1331926701.037014 0003 0001 -576 E: 1331926701.037014 0000 0000 0 E: 1331926701.039396 0003 0039 1 E: 1331926701.039397 0003 0030 204 E: 1331926701.039398 0003 0031 184 E: 1331926701.039399 0003 0034 27 E: 1331926701.039399 0003 0035 -1001 E: 1331926701.039400 0003 0036 -544 E: 1331926701.039401 0000 0002 0 E: 1331926701.039401 0003 0039 7 E: 1331926701.039402 0003 0030 148 E: 1331926701.039403 0003 0031 212 E: 1331926701.039403 0003 0034 0 E: 1331926701.039404 0003 0035 1359 E: 1331926701.039405 0003 0036 -1116 E: 1331926701.039405 0000 0002 0 E: 1331926701.039406 0003 0039 9 E: 1331926701.039407 0003 0030 228 E: 1331926701.039407 0003 0031 380 E: 1331926701.039408 0003 0034 0 E: 1331926701.039409 0003 0035 52 E: 1331926701.039409 0003 0036 -1500 E: 1331926701.039410 0000 0002 0 E: 1331926701.039413 0003 0000 -1001 E: 1331926701.039414 0003 0001 -544 E: 1331926701.039414 0000 0000 0 E: 1331926701.062001 0003 0039 1 E: 1331926701.062002 0003 0030 184 E: 1331926701.062002 0003 0031 184 E: 1331926701.062003 0003 0034 0 E: 1331926701.062003 0003 0035 -991 E: 1331926701.062004 0003 0036 -514 E: 1331926701.062005 0000 0002 0 E: 1331926701.062005 0003 0039 7 E: 1331926701.062006 0003 0030 168 E: 1331926701.062007 0003 0031 252 E: 1331926701.062007 0003 0034 0 E: 1331926701.062008 0003 0035 1366 E: 1331926701.062009 0003 0036 -1094 E: 1331926701.062009 0000 0002 0 E: 1331926701.062010 0003 0039 9 E: 1331926701.062011 0003 0030 236 E: 1331926701.062011 0003 0031 384 E: 1331926701.062012 0003 0034 0 E: 1331926701.062013 0003 0035 61 E: 1331926701.062013 0003 0036 -1469 E: 1331926701.062014 0000 0002 0 E: 1331926701.062017 0003 0000 -991 E: 1331926701.062018 0003 0001 -514 E: 1331926701.062018 0000 0000 0 E: 1331926701.068119 0003 0039 1 E: 1331926701.068120 0003 0030 188 E: 1331926701.068121 0003 0031 180 E: 1331926701.068121 0003 0034 28 E: 1331926701.068122 0003 0035 -981 E: 1331926701.068123 0003 0036 -486 E: 1331926701.068123 0000 0002 0 E: 1331926701.068124 0003 0039 7 E: 1331926701.068125 0003 0030 152 E: 1331926701.068126 0003 0031 240 E: 1331926701.068126 0003 0034 0 E: 1331926701.068127 0003 0035 1377 E: 1331926701.068127 0003 0036 -1060 E: 1331926701.068128 0000 0002 0 E: 1331926701.068129 0003 0039 9 E: 1331926701.068129 0003 0030 244 E: 1331926701.068130 0003 0031 404 E: 1331926701.068131 0003 0034 0 E: 1331926701.068131 0003 0035 71 E: 1331926701.068132 0003 0036 -1440 E: 1331926701.068133 0000 0002 0 E: 1331926701.068136 0003 0000 -981 E: 1331926701.068137 0003 0001 -486 E: 1331926701.068137 0000 0000 0 E: 1331926701.076995 0003 0039 1 E: 1331926701.076996 0003 0030 204 E: 1331926701.076997 0003 0031 188 E: 1331926701.076997 0003 0034 27 E: 1331926701.076998 0003 0035 -971 E: 1331926701.076999 0003 0036 -460 E: 1331926701.076999 0000 0002 0 E: 1331926701.077000 0003 0039 7 E: 1331926701.077001 0003 0030 148 E: 1331926701.077001 0003 0031 240 E: 1331926701.077002 0003 0034 0 E: 1331926701.077003 0003 0035 1387 E: 1331926701.077003 0003 0036 -1026 E: 1331926701.077004 0000 0002 0 E: 1331926701.077005 0003 0039 9 E: 1331926701.077005 0003 0030 244 E: 1331926701.077006 0003 0031 420 E: 1331926701.077007 0003 0034 0 E: 1331926701.077007 0003 0035 75 E: 1331926701.077008 0003 0036 -1423 E: 1331926701.077009 0000 0002 0 E: 1331926701.077012 0003 0000 -971 E: 1331926701.077012 0003 0001 -460 E: 1331926701.077013 0000 0000 0 E: 1331926701.086976 0003 0039 1 E: 1331926701.086976 0003 0030 204 E: 1331926701.086977 0003 0031 196 E: 1331926701.086977 0003 0034 27 E: 1331926701.086978 0003 0035 -967 E: 1331926701.086978 0003 0036 -446 E: 1331926701.086979 0000 0002 0 E: 1331926701.086979 0003 0039 7 E: 1331926701.086979 0003 0030 132 E: 1331926701.086980 0003 0031 220 E: 1331926701.086980 0003 0034 0 E: 1331926701.086981 0003 0035 1396 E: 1331926701.086981 0003 0036 -995 E: 1331926701.086981 0000 0002 0 E: 1331926701.086982 0003 0039 9 E: 1331926701.086982 0003 0030 244 E: 1331926701.086983 0003 0031 424 E: 1331926701.086983 0003 0034 0 E: 1331926701.086984 0003 0035 85 E: 1331926701.086984 0003 0036 -1388 E: 1331926701.086984 0000 0002 0 E: 1331926701.086986 0003 0000 -969 E: 1331926701.086987 0003 0001 -446 E: 1331926701.086987 0000 0000 0 E: 1331926701.091999 0003 0039 1 E: 1331926701.092000 0003 0030 192 E: 1331926701.092001 0003 0031 196 E: 1331926701.092001 0003 0034 0 E: 1331926701.092002 0003 0035 -960 E: 1331926701.092003 0003 0036 -425 E: 1331926701.092003 0000 0002 0 E: 1331926701.092004 0003 0039 7 E: 1331926701.092005 0003 0030 132 E: 1331926701.092005 0003 0031 220 E: 1331926701.092006 0003 0034 0 E: 1331926701.092007 0003 0035 1404 E: 1331926701.092007 0003 0036 -966 E: 1331926701.092008 0000 0002 0 E: 1331926701.092009 0003 0039 9 E: 1331926701.092009 0003 0030 244 E: 1331926701.092010 0003 0031 420 E: 1331926701.092010 0003 0034 0 E: 1331926701.092011 0003 0035 90 E: 1331926701.092012 0003 0036 -1364 E: 1331926701.092012 0000 0002 0 E: 1331926701.092015 0003 0000 -960 E: 1331926701.092016 0003 0001 -425 E: 1331926701.092017 0000 0000 0 E: 1331926701.099399 0003 0039 1 E: 1331926701.099400 0003 0030 200 E: 1331926701.099400 0003 0031 208 E: 1331926701.099401 0003 0034 12 E: 1331926701.099402 0003 0035 -955 E: 1331926701.099402 0003 0036 -406 E: 1331926701.099403 0000 0002 0 E: 1331926701.099404 0003 0039 7 E: 1331926701.099404 0003 0030 124 E: 1331926701.099405 0003 0031 216 E: 1331926701.099406 0003 0034 0 E: 1331926701.099406 0003 0035 1408 E: 1331926701.099407 0003 0036 -949 E: 1331926701.099407 0000 0002 0 E: 1331926701.099408 0003 0039 9 E: 1331926701.099409 0003 0030 248 E: 1331926701.099409 0003 0031 420 E: 1331926701.099410 0003 0034 0 E: 1331926701.099411 0003 0035 92 E: 1331926701.099411 0003 0036 -1351 E: 1331926701.099412 0000 0002 0 E: 1331926701.099415 0003 0000 -957 E: 1331926701.099416 0003 0001 -406 E: 1331926701.099416 0000 0000 0 E: 1331926701.119371 0003 0039 1 E: 1331926701.119372 0003 0030 204 E: 1331926701.119373 0003 0031 220 E: 1331926701.119374 0003 0034 0 E: 1331926701.119374 0003 0035 -950 E: 1331926701.119375 0003 0036 -391 E: 1331926701.119376 0000 0002 0 E: 1331926701.119376 0003 0039 7 E: 1331926701.119377 0003 0030 132 E: 1331926701.119378 0003 0031 232 E: 1331926701.119378 0003 0034 0 E: 1331926701.119379 0003 0035 1417 E: 1331926701.119380 0003 0036 -914 E: 1331926701.119380 0000 0002 0 E: 1331926701.119381 0003 0039 9 E: 1331926701.119382 0003 0030 264 E: 1331926701.119382 0003 0031 416 E: 1331926701.119383 0003 0034 0 E: 1331926701.119384 0003 0035 97 E: 1331926701.119384 0003 0036 -1322 E: 1331926701.119385 0000 0002 0 E: 1331926701.119388 0003 0000 -953 E: 1331926701.119389 0003 0001 -391 E: 1331926701.119389 0000 0000 0 E: 1331926701.121983 0003 0039 1 E: 1331926701.121984 0003 0030 212 E: 1331926701.121985 0003 0031 224 E: 1331926701.121986 0003 0034 24 E: 1331926701.121986 0003 0035 -948 E: 1331926701.121987 0003 0036 -378 E: 1331926701.121988 0000 0002 0 E: 1331926701.121988 0003 0039 7 E: 1331926701.121989 0003 0030 140 E: 1331926701.121990 0003 0031 244 E: 1331926701.121990 0003 0034 0 E: 1331926701.121991 0003 0035 1422 E: 1331926701.121991 0003 0036 -890 E: 1331926701.121992 0000 0002 0 E: 1331926701.121993 0003 0039 9 E: 1331926701.121994 0003 0030 272 E: 1331926701.121994 0003 0031 408 E: 1331926701.121995 0003 0034 0 E: 1331926701.121995 0003 0035 98 E: 1331926701.121996 0003 0036 -1312 E: 1331926701.121997 0000 0002 0 E: 1331926701.122000 0003 0000 -950 E: 1331926701.122000 0003 0001 -378 E: 1331926701.122001 0000 0000 0 E: 1331926701.129349 0003 0039 1 E: 1331926701.129350 0003 0030 216 E: 1331926701.129350 0003 0031 232 E: 1331926701.129350 0003 0034 0 E: 1331926701.129351 0003 0035 -945 E: 1331926701.129351 0003 0036 -367 E: 1331926701.129352 0000 0002 0 E: 1331926701.129352 0003 0039 7 E: 1331926701.129353 0003 0030 148 E: 1331926701.129353 0003 0031 260 E: 1331926701.129353 0003 0034 0 E: 1331926701.129354 0003 0035 1426 E: 1331926701.129354 0003 0036 -868 E: 1331926701.129355 0000 0002 0 E: 1331926701.129355 0003 0039 9 E: 1331926701.129355 0003 0030 276 E: 1331926701.129356 0003 0031 412 E: 1331926701.129356 0003 0034 0 E: 1331926701.129357 0003 0035 100 E: 1331926701.129357 0003 0036 -1287 E: 1331926701.129357 0000 0002 0 E: 1331926701.129359 0003 0000 -947 E: 1331926701.129360 0003 0001 -367 E: 1331926701.129360 0000 0000 0 E: 1331926701.149391 0003 0039 1 E: 1331926701.149392 0003 0030 208 E: 1331926701.149392 0003 0031 224 E: 1331926701.149393 0003 0034 0 E: 1331926701.149394 0003 0035 -941 E: 1331926701.149394 0003 0036 -352 E: 1331926701.149395 0000 0002 0 E: 1331926701.149396 0003 0039 7 E: 1331926701.149396 0003 0030 148 E: 1331926701.149397 0003 0031 280 E: 1331926701.149398 0003 0034 0 E: 1331926701.149398 0003 0035 1431 E: 1331926701.149399 0003 0036 -846 E: 1331926701.149400 0000 0002 0 E: 1331926701.149400 0003 0039 9 E: 1331926701.149401 0003 0030 272 E: 1331926701.149402 0003 0031 404 E: 1331926701.149402 0003 0034 0 E: 1331926701.149403 0003 0035 101 E: 1331926701.149403 0003 0036 -1277 E: 1331926701.149404 0000 0002 0 E: 1331926701.149407 0003 0000 -944 E: 1331926701.149408 0003 0001 -352 E: 1331926701.149408 0000 0000 0 E: 1331926701.155608 0003 0039 1 E: 1331926701.155609 0003 0030 212 E: 1331926701.155609 0003 0031 236 E: 1331926701.155610 0003 0034 0 E: 1331926701.155610 0003 0035 -939 E: 1331926701.155611 0003 0036 -339 E: 1331926701.155612 0000 0002 0 E: 1331926701.155613 0003 0039 7 E: 1331926701.155613 0003 0030 168 E: 1331926701.155614 0003 0031 296 E: 1331926701.155615 0003 0034 0 E: 1331926701.155615 0003 0035 1435 E: 1331926701.155616 0003 0036 -823 E: 1331926701.155616 0000 0002 0 E: 1331926701.155617 0003 0039 9 E: 1331926701.155618 0003 0030 264 E: 1331926701.155618 0003 0031 408 E: 1331926701.155619 0003 0034 0 E: 1331926701.155620 0003 0035 103 E: 1331926701.155620 0003 0036 -1260 E: 1331926701.155621 0000 0002 0 E: 1331926701.155624 0003 0000 -941 E: 1331926701.155625 0003 0001 -339 E: 1331926701.155625 0000 0000 0 E: 1331926701.163099 0003 0039 1 E: 1331926701.163099 0003 0030 208 E: 1331926701.163100 0003 0031 228 E: 1331926701.163100 0003 0034 0 E: 1331926701.163101 0003 0035 -935 E: 1331926701.163101 0003 0036 -325 E: 1331926701.163102 0000 0002 0 E: 1331926701.163102 0003 0039 7 E: 1331926701.163102 0003 0030 188 E: 1331926701.163103 0003 0031 300 E: 1331926701.163103 0003 0034 0 E: 1331926701.163104 0003 0035 1438 E: 1331926701.163104 0003 0036 -801 E: 1331926701.163104 0000 0002 0 E: 1331926701.163105 0003 0039 9 E: 1331926701.163105 0003 0030 272 E: 1331926701.163106 0003 0031 416 E: 1331926701.163106 0003 0034 0 E: 1331926701.163107 0003 0035 105 E: 1331926701.163107 0003 0036 -1245 E: 1331926701.163107 0000 0002 0 E: 1331926701.163109 0003 0000 -938 E: 1331926701.163110 0003 0001 -325 E: 1331926701.163110 0000 0000 0 E: 1331926701.180585 0003 0039 1 E: 1331926701.180585 0003 0030 212 E: 1331926701.180586 0003 0031 228 E: 1331926701.180586 0003 0034 27 E: 1331926701.180587 0003 0035 -930 E: 1331926701.180587 0003 0036 -308 E: 1331926701.180587 0000 0002 0 E: 1331926701.180588 0003 0039 7 E: 1331926701.180588 0003 0030 180 E: 1331926701.180589 0003 0031 272 E: 1331926701.180589 0003 0034 0 E: 1331926701.180590 0003 0035 1442 E: 1331926701.180590 0003 0036 -780 E: 1331926701.180590 0000 0002 0 E: 1331926701.180591 0003 0039 8 E: 1331926701.180591 0003 0030 92 E: 1331926701.180592 0003 0031 120 E: 1331926701.180592 0003 0034 19 E: 1331926701.180593 0003 0035 -1799 E: 1331926701.180593 0003 0036 932 E: 1331926701.180593 0000 0002 0 E: 1331926701.180594 0003 0039 9 E: 1331926701.180594 0003 0030 272 E: 1331926701.180595 0003 0031 428 E: 1331926701.180595 0003 0034 0 E: 1331926701.180595 0003 0035 106 E: 1331926701.180596 0003 0036 -1229 E: 1331926701.180596 0000 0002 0 E: 1331926701.180597 0001 014e 0 E: 1331926701.180598 0001 014f 1 E: 1331926701.180598 0003 0000 -930 E: 1331926701.180599 0003 0001 -308 E: 1331926701.180599 0000 0000 0 E: 1331926701.183085 0003 0039 1 E: 1331926701.183086 0003 0030 224 E: 1331926701.183087 0003 0031 264 E: 1331926701.183087 0003 0034 0 E: 1331926701.183088 0003 0035 -923 E: 1331926701.183088 0003 0036 -290 E: 1331926701.183089 0000 0002 0 E: 1331926701.183090 0003 0039 7 E: 1331926701.183090 0003 0030 192 E: 1331926701.183091 0003 0031 292 E: 1331926701.183091 0003 0034 0 E: 1331926701.183092 0003 0035 1448 E: 1331926701.183093 0003 0036 -759 E: 1331926701.183093 0000 0002 0 E: 1331926701.183094 0003 0039 8 E: 1331926701.183094 0003 0030 124 E: 1331926701.183095 0003 0031 160 E: 1331926701.183095 0003 0034 0 E: 1331926701.183096 0003 0035 -1758 E: 1331926701.183096 0003 0036 905 E: 1331926701.183097 0000 0002 0 E: 1331926701.183098 0003 0039 9 E: 1331926701.183098 0003 0030 304 E: 1331926701.183099 0003 0031 456 E: 1331926701.183099 0003 0034 0 E: 1331926701.183100 0003 0035 110 E: 1331926701.183100 0003 0036 -1208 E: 1331926701.183101 0000 0002 0 E: 1331926701.183103 0003 0000 -926 E: 1331926701.183104 0003 0001 -290 E: 1331926701.183104 0000 0000 0 E: 1331926701.201949 0003 0039 1 E: 1331926701.201950 0003 0030 220 E: 1331926701.201950 0003 0031 272 E: 1331926701.201951 0003 0034 0 E: 1331926701.201951 0003 0035 -917 E: 1331926701.201952 0003 0036 -277 E: 1331926701.201952 0000 0002 0 E: 1331926701.201953 0003 0039 7 E: 1331926701.201953 0003 0030 204 E: 1331926701.201953 0003 0031 300 E: 1331926701.201954 0003 0034 0 E: 1331926701.201954 0003 0035 1451 E: 1331926701.201954 0003 0036 -747 E: 1331926701.201955 0000 0002 0 E: 1331926701.201955 0003 0039 8 E: 1331926701.201955 0003 0030 144 E: 1331926701.201956 0003 0031 188 E: 1331926701.201956 0003 0034 0 E: 1331926701.201956 0003 0035 -1739 E: 1331926701.201957 0003 0036 908 E: 1331926701.201957 0000 0002 0 E: 1331926701.201958 0003 0039 9 E: 1331926701.201958 0003 0030 332 E: 1331926701.201958 0003 0031 464 E: 1331926701.201959 0003 0034 0 E: 1331926701.201959 0003 0035 111 E: 1331926701.201959 0003 0036 -1197 E: 1331926701.201960 0000 0002 0 E: 1331926701.201961 0003 0000 -917 E: 1331926701.201962 0003 0001 -277 E: 1331926701.201962 0000 0000 0 E: 1331926701.209355 0003 0039 1 E: 1331926701.209356 0003 0030 212 E: 1331926701.209356 0003 0031 284 E: 1331926701.209357 0003 0034 0 E: 1331926701.209357 0003 0035 -908 E: 1331926701.209357 0003 0036 -253 E: 1331926701.209358 0000 0002 0 E: 1331926701.209358 0003 0039 7 E: 1331926701.209358 0003 0030 212 E: 1331926701.209358 0003 0031 296 E: 1331926701.209359 0003 0034 0 E: 1331926701.209359 0003 0035 1456 E: 1331926701.209359 0003 0036 -728 E: 1331926701.209360 0000 0002 0 E: 1331926701.209360 0003 0039 8 E: 1331926701.209360 0003 0030 156 E: 1331926701.209360 0003 0031 196 E: 1331926701.209361 0003 0034 0 E: 1331926701.209361 0003 0035 -1740 E: 1331926701.209361 0003 0036 916 E: 1331926701.209362 0000 0002 0 E: 1331926701.209362 0003 0039 9 E: 1331926701.209362 0003 0030 352 E: 1331926701.209363 0003 0031 464 E: 1331926701.209363 0003 0034 0 E: 1331926701.209363 0003 0035 112 E: 1331926701.209364 0003 0036 -1181 E: 1331926701.209364 0000 0002 0 E: 1331926701.209365 0003 0000 -908 E: 1331926701.209365 0003 0001 -253 E: 1331926701.209366 0000 0000 0 E: 1331926701.214322 0003 0039 1 E: 1331926701.214322 0003 0030 228 E: 1331926701.214323 0003 0031 272 E: 1331926701.214323 0003 0034 0 E: 1331926701.214324 0003 0035 -900 E: 1331926701.214324 0003 0036 -233 E: 1331926701.214324 0000 0002 0 E: 1331926701.214325 0003 0039 7 E: 1331926701.214325 0003 0030 212 E: 1331926701.214325 0003 0031 304 E: 1331926701.214326 0003 0034 0 E: 1331926701.214326 0003 0035 1461 E: 1331926701.214326 0003 0036 -711 E: 1331926701.214327 0000 0002 0 E: 1331926701.214327 0003 0039 8 E: 1331926701.214327 0003 0030 168 E: 1331926701.214328 0003 0031 212 E: 1331926701.214328 0003 0034 0 E: 1331926701.214328 0003 0035 -1738 E: 1331926701.214329 0003 0036 921 E: 1331926701.214329 0000 0002 0 E: 1331926701.214329 0003 0039 9 E: 1331926701.214330 0003 0030 344 E: 1331926701.214330 0003 0031 464 E: 1331926701.214330 0003 0034 0 E: 1331926701.214331 0003 0035 114 E: 1331926701.214331 0003 0036 -1166 E: 1331926701.214331 0000 0002 0 E: 1331926701.214333 0003 0000 -900 E: 1331926701.214333 0003 0001 -233 E: 1331926701.214334 0000 0000 0 E: 1331926701.224327 0003 0039 1 E: 1331926701.224328 0003 0030 216 E: 1331926701.224328 0003 0031 252 E: 1331926701.224328 0003 0034 0 E: 1331926701.224329 0003 0035 -892 E: 1331926701.224329 0003 0036 -213 E: 1331926701.224330 0000 0002 0 E: 1331926701.224330 0003 0039 7 E: 1331926701.224331 0003 0030 220 E: 1331926701.224331 0003 0031 324 E: 1331926701.224331 0003 0034 0 E: 1331926701.224332 0003 0035 1466 E: 1331926701.224332 0003 0036 -695 E: 1331926701.224332 0000 0002 0 E: 1331926701.224333 0003 0039 8 E: 1331926701.224333 0003 0030 176 E: 1331926701.224334 0003 0031 224 E: 1331926701.224334 0003 0034 0 E: 1331926701.224334 0003 0035 -1737 E: 1331926701.224335 0003 0036 924 E: 1331926701.224335 0000 0002 0 E: 1331926701.224335 0003 0039 9 E: 1331926701.224336 0003 0030 364 E: 1331926701.224336 0003 0031 472 E: 1331926701.224337 0003 0034 0 E: 1331926701.224337 0003 0035 117 E: 1331926701.224337 0003 0036 -1151 E: 1331926701.224338 0000 0002 0 E: 1331926701.224339 0003 0000 -892 E: 1331926701.224340 0003 0001 -213 E: 1331926701.224340 0000 0000 0 E: 1331926701.231953 0003 0039 1 E: 1331926701.231953 0003 0030 208 E: 1331926701.231954 0003 0031 240 E: 1331926701.231954 0003 0034 0 E: 1331926701.231955 0003 0035 -888 E: 1331926701.231955 0003 0036 -202 E: 1331926701.231956 0000 0002 0 E: 1331926701.231956 0003 0039 7 E: 1331926701.231956 0003 0030 236 E: 1331926701.231957 0003 0031 340 E: 1331926701.231957 0003 0034 0 E: 1331926701.231957 0003 0035 1471 E: 1331926701.231958 0003 0036 -679 E: 1331926701.231958 0000 0002 0 E: 1331926701.231959 0003 0039 8 E: 1331926701.231959 0003 0030 184 E: 1331926701.231959 0003 0031 228 E: 1331926701.231960 0003 0034 0 E: 1331926701.231960 0003 0035 -1732 E: 1331926701.231960 0003 0036 927 E: 1331926701.231961 0000 0002 0 E: 1331926701.231961 0003 0039 9 E: 1331926701.231962 0003 0030 368 E: 1331926701.231962 0003 0031 476 E: 1331926701.231962 0003 0034 0 E: 1331926701.231963 0003 0035 121 E: 1331926701.231963 0003 0036 -1136 E: 1331926701.231964 0000 0002 0 E: 1331926701.231965 0003 0000 -890 E: 1331926701.231966 0003 0001 -202 E: 1331926701.231966 0000 0000 0 E: 1331926701.251981 0003 0039 1 E: 1331926701.251982 0003 0030 228 E: 1331926701.251983 0003 0031 236 E: 1331926701.251983 0003 0034 27 E: 1331926701.251983 0003 0035 -882 E: 1331926701.251984 0003 0036 -186 E: 1331926701.251984 0000 0002 0 E: 1331926701.251985 0003 0039 7 E: 1331926701.251985 0003 0030 240 E: 1331926701.251986 0003 0031 360 E: 1331926701.251986 0003 0034 0 E: 1331926701.251987 0003 0035 1476 E: 1331926701.251987 0003 0036 -666 E: 1331926701.251987 0000 0002 0 E: 1331926701.251988 0003 0039 8 E: 1331926701.251988 0003 0030 196 E: 1331926701.251989 0003 0031 228 E: 1331926701.251989 0003 0034 0 E: 1331926701.251989 0003 0035 -1727 E: 1331926701.251990 0003 0036 929 E: 1331926701.251990 0000 0002 0 E: 1331926701.251991 0003 0039 9 E: 1331926701.251991 0003 0030 380 E: 1331926701.251992 0003 0031 476 E: 1331926701.251992 0003 0034 0 E: 1331926701.251992 0003 0035 124 E: 1331926701.251993 0003 0036 -1122 E: 1331926701.251993 0000 0002 0 E: 1331926701.251995 0003 0000 -882 E: 1331926701.251995 0003 0001 -186 E: 1331926701.251996 0000 0000 0 E: 1331926701.254346 0003 0039 1 E: 1331926701.254347 0003 0030 232 E: 1331926701.254347 0003 0031 252 E: 1331926701.254348 0003 0034 0 E: 1331926701.254348 0003 0035 -876 E: 1331926701.254348 0003 0036 -173 E: 1331926701.254349 0000 0002 0 E: 1331926701.254349 0003 0039 7 E: 1331926701.254350 0003 0030 244 E: 1331926701.254350 0003 0031 360 E: 1331926701.254350 0003 0034 0 E: 1331926701.254351 0003 0035 1479 E: 1331926701.254351 0003 0036 -655 E: 1331926701.254352 0000 0002 0 E: 1331926701.254352 0003 0039 8 E: 1331926701.254353 0003 0030 208 E: 1331926701.254353 0003 0031 244 E: 1331926701.254353 0003 0034 0 E: 1331926701.254354 0003 0035 -1723 E: 1331926701.254354 0003 0036 931 E: 1331926701.254355 0000 0002 0 E: 1331926701.254355 0003 0039 9 E: 1331926701.254355 0003 0030 388 E: 1331926701.254356 0003 0031 468 E: 1331926701.254356 0003 0034 0 E: 1331926701.254357 0003 0035 127 E: 1331926701.254357 0003 0036 -1109 E: 1331926701.254357 0000 0002 0 E: 1331926701.254359 0003 0000 -879 E: 1331926701.254360 0003 0001 -173 E: 1331926701.254360 0000 0000 0 E: 1331926701.262010 0003 0039 1 E: 1331926701.262010 0003 0030 232 E: 1331926701.262011 0003 0031 268 E: 1331926701.262011 0003 0034 0 E: 1331926701.262012 0003 0035 -871 E: 1331926701.262012 0003 0036 -162 E: 1331926701.262013 0000 0002 0 E: 1331926701.262013 0003 0039 7 E: 1331926701.262014 0003 0030 240 E: 1331926701.262014 0003 0031 364 E: 1331926701.262014 0003 0034 0 E: 1331926701.262015 0003 0035 1482 E: 1331926701.262015 0003 0036 -645 E: 1331926701.262016 0000 0002 0 E: 1331926701.262016 0003 0039 8 E: 1331926701.262016 0003 0030 228 E: 1331926701.262017 0003 0031 256 E: 1331926701.262017 0003 0034 0 E: 1331926701.262017 0003 0035 -1719 E: 1331926701.262018 0003 0036 933 E: 1331926701.262018 0000 0002 0 E: 1331926701.262019 0003 0039 9 E: 1331926701.262019 0003 0030 412 E: 1331926701.262020 0003 0031 460 E: 1331926701.262020 0003 0034 0 E: 1331926701.262020 0003 0035 131 E: 1331926701.262021 0003 0036 -1098 E: 1331926701.262021 0000 0002 0 E: 1331926701.262023 0003 0000 -871 E: 1331926701.262023 0003 0001 -162 E: 1331926701.262024 0000 0000 0 E: 1331926701.281977 0003 0039 1 E: 1331926701.281978 0003 0030 224 E: 1331926701.281978 0003 0031 272 E: 1331926701.281979 0003 0034 0 E: 1331926701.281979 0003 0035 -866 E: 1331926701.281979 0003 0036 -153 E: 1331926701.281980 0000 0002 0 E: 1331926701.281980 0003 0039 7 E: 1331926701.281981 0003 0030 228 E: 1331926701.281981 0003 0031 356 E: 1331926701.281982 0003 0034 0 E: 1331926701.281982 0003 0035 1484 E: 1331926701.281982 0003 0036 -636 E: 1331926701.281983 0000 0002 0 E: 1331926701.281983 0003 0039 8 E: 1331926701.281984 0003 0030 224 E: 1331926701.281984 0003 0031 260 E: 1331926701.281985 0003 0034 0 E: 1331926701.281985 0003 0035 -1716 E: 1331926701.281985 0003 0036 935 E: 1331926701.281986 0000 0002 0 E: 1331926701.281986 0003 0039 9 E: 1331926701.281987 0003 0030 428 E: 1331926701.281987 0003 0031 456 E: 1331926701.281987 0003 0034 0 E: 1331926701.281988 0003 0035 134 E: 1331926701.281988 0003 0036 -1088 E: 1331926701.281989 0000 0002 0 E: 1331926701.281990 0003 0000 -868 E: 1331926701.281991 0003 0001 -153 E: 1331926701.281991 0000 0000 0 E: 1331926701.284349 0003 0039 1 E: 1331926701.284350 0003 0030 216 E: 1331926701.284351 0003 0031 268 E: 1331926701.284351 0003 0034 0 E: 1331926701.284351 0003 0035 -863 E: 1331926701.284352 0003 0036 -145 E: 1331926701.284352 0000 0002 0 E: 1331926701.284353 0003 0039 7 E: 1331926701.284353 0003 0030 220 E: 1331926701.284353 0003 0031 348 E: 1331926701.284354 0003 0034 0 E: 1331926701.284354 0003 0035 1486 E: 1331926701.284355 0003 0036 -630 E: 1331926701.284355 0000 0002 0 E: 1331926701.284356 0003 0039 8 E: 1331926701.284356 0003 0030 220 E: 1331926701.284356 0003 0031 248 E: 1331926701.284357 0003 0034 0 E: 1331926701.284357 0003 0035 -1713 E: 1331926701.284358 0003 0036 936 E: 1331926701.284358 0000 0002 0 E: 1331926701.284359 0003 0039 9 E: 1331926701.284359 0003 0030 428 E: 1331926701.284359 0003 0031 464 E: 1331926701.284360 0003 0034 0 E: 1331926701.284360 0003 0035 136 E: 1331926701.284361 0003 0036 -1081 E: 1331926701.284361 0000 0002 0 E: 1331926701.284363 0003 0000 -865 E: 1331926701.284363 0003 0001 -145 E: 1331926701.284364 0000 0000 0 E: 1331926701.304349 0003 0039 1 E: 1331926701.304350 0003 0030 216 E: 1331926701.304350 0003 0031 276 E: 1331926701.304351 0003 0034 0 E: 1331926701.304351 0003 0035 -860 E: 1331926701.304352 0003 0036 -138 E: 1331926701.304352 0000 0002 0 E: 1331926701.304353 0003 0039 7 E: 1331926701.304353 0003 0030 228 E: 1331926701.304353 0003 0031 348 E: 1331926701.304354 0003 0034 0 E: 1331926701.304354 0003 0035 1488 E: 1331926701.304355 0003 0036 -624 E: 1331926701.304355 0000 0002 0 E: 1331926701.304356 0003 0039 8 E: 1331926701.304356 0003 0030 232 E: 1331926701.304356 0003 0031 256 E: 1331926701.304357 0003 0034 0 E: 1331926701.304357 0003 0035 -1710 E: 1331926701.304357 0003 0036 938 E: 1331926701.304358 0000 0002 0 E: 1331926701.304358 0003 0039 9 E: 1331926701.304359 0003 0030 436 E: 1331926701.304359 0003 0031 460 E: 1331926701.304359 0003 0034 0 E: 1331926701.304360 0003 0035 139 E: 1331926701.304360 0003 0036 -1074 E: 1331926701.304361 0000 0002 0 E: 1331926701.304362 0003 0000 -862 E: 1331926701.304363 0003 0001 -141 E: 1331926701.304363 0000 0000 0 E: 1331926701.306973 0003 0039 1 E: 1331926701.306974 0003 0030 228 E: 1331926701.306974 0003 0031 284 E: 1331926701.306974 0003 0034 0 E: 1331926701.306975 0003 0035 -857 E: 1331926701.306975 0003 0036 -133 E: 1331926701.306976 0000 0002 0 E: 1331926701.306976 0003 0039 7 E: 1331926701.306977 0003 0030 236 E: 1331926701.306977 0003 0031 360 E: 1331926701.306978 0003 0034 0 E: 1331926701.306978 0003 0035 1489 E: 1331926701.306978 0003 0036 -620 E: 1331926701.306979 0000 0002 0 E: 1331926701.306979 0003 0039 8 E: 1331926701.306980 0003 0030 240 E: 1331926701.306980 0003 0031 256 E: 1331926701.306980 0003 0034 0 E: 1331926701.306981 0003 0035 -1705 E: 1331926701.306981 0003 0036 941 E: 1331926701.306981 0000 0002 0 E: 1331926701.306982 0003 0039 9 E: 1331926701.306982 0003 0030 432 E: 1331926701.306983 0003 0031 460 E: 1331926701.306983 0003 0034 0 E: 1331926701.306983 0003 0035 141 E: 1331926701.306984 0003 0036 -1069 E: 1331926701.306984 0000 0002 0 E: 1331926701.306986 0003 0000 -859 E: 1331926701.306986 0003 0001 -133 E: 1331926701.306987 0000 0000 0 E: 1331926701.314348 0003 0039 1 E: 1331926701.314349 0003 0030 228 E: 1331926701.314349 0003 0031 280 E: 1331926701.314350 0003 0034 0 E: 1331926701.314350 0003 0035 -855 E: 1331926701.314350 0003 0036 -129 E: 1331926701.314351 0000 0002 0 E: 1331926701.314351 0003 0039 7 E: 1331926701.314352 0003 0030 244 E: 1331926701.314352 0003 0031 372 E: 1331926701.314353 0003 0034 0 E: 1331926701.314353 0003 0035 1491 E: 1331926701.314353 0003 0036 -616 E: 1331926701.314354 0000 0002 0 E: 1331926701.314354 0003 0039 8 E: 1331926701.314355 0003 0030 240 E: 1331926701.314355 0003 0031 260 E: 1331926701.314356 0003 0034 0 E: 1331926701.314356 0003 0035 -1700 E: 1331926701.314356 0003 0036 943 E: 1331926701.314357 0000 0002 0 E: 1331926701.314357 0003 0039 9 E: 1331926701.314358 0003 0030 436 E: 1331926701.314358 0003 0031 456 E: 1331926701.314358 0003 0034 0 E: 1331926701.314359 0003 0035 142 E: 1331926701.314359 0003 0036 -1065 E: 1331926701.314360 0000 0002 0 E: 1331926701.314361 0003 0000 -857 E: 1331926701.314362 0003 0001 -131 E: 1331926701.314362 0000 0000 0 E: 1331926701.334325 0003 0039 1 E: 1331926701.334326 0003 0030 216 E: 1331926701.334327 0003 0031 276 E: 1331926701.334327 0003 0034 0 E: 1331926701.334328 0003 0035 -854 E: 1331926701.334329 0003 0036 -126 E: 1331926701.334329 0000 0002 0 E: 1331926701.334330 0003 0039 7 E: 1331926701.334331 0003 0030 236 E: 1331926701.334331 0003 0031 368 E: 1331926701.334332 0003 0034 0 E: 1331926701.334332 0003 0035 1491 E: 1331926701.334333 0003 0036 -613 E: 1331926701.334334 0000 0002 0 E: 1331926701.334334 0003 0039 8 E: 1331926701.334335 0003 0030 240 E: 1331926701.334336 0003 0031 260 E: 1331926701.334336 0003 0034 0 E: 1331926701.334337 0003 0035 -1696 E: 1331926701.334338 0003 0036 944 E: 1331926701.334338 0000 0002 0 E: 1331926701.334339 0003 0039 9 E: 1331926701.334340 0003 0030 428 E: 1331926701.334340 0003 0031 460 E: 1331926701.334341 0003 0034 0 E: 1331926701.334342 0003 0035 144 E: 1331926701.334342 0003 0036 -1061 E: 1331926701.334343 0000 0002 0 E: 1331926701.334345 0003 0000 -856 E: 1331926701.334346 0003 0001 -128 E: 1331926701.334347 0000 0000 0 E: 1331926701.336994 0003 0039 1 E: 1331926701.336995 0003 0030 232 E: 1331926701.336995 0003 0031 276 E: 1331926701.336996 0003 0034 0 E: 1331926701.336997 0003 0035 -853 E: 1331926701.336997 0003 0036 -124 E: 1331926701.336998 0000 0002 0 E: 1331926701.336999 0003 0039 7 E: 1331926701.336999 0003 0030 248 E: 1331926701.337000 0003 0031 380 E: 1331926701.337001 0003 0034 0 E: 1331926701.337001 0003 0035 1492 E: 1331926701.337002 0003 0036 -610 E: 1331926701.337003 0000 0002 0 E: 1331926701.337003 0003 0039 8 E: 1331926701.337004 0003 0030 232 E: 1331926701.337005 0003 0031 264 E: 1331926701.337005 0003 0034 0 E: 1331926701.337006 0003 0035 -1693 E: 1331926701.337006 0003 0036 946 E: 1331926701.337007 0000 0002 0 E: 1331926701.337008 0003 0039 9 E: 1331926701.337008 0003 0030 436 E: 1331926701.337009 0003 0031 472 E: 1331926701.337010 0003 0034 0 E: 1331926701.337010 0003 0035 145 E: 1331926701.337011 0003 0036 -1058 E: 1331926701.337012 0000 0002 0 E: 1331926701.337014 0003 0000 -855 E: 1331926701.337015 0003 0001 -126 E: 1331926701.337016 0000 0000 0 E: 1331926701.344367 0003 0039 1 E: 1331926701.344368 0003 0030 220 E: 1331926701.344369 0003 0031 292 E: 1331926701.344369 0003 0034 0 E: 1331926701.344370 0003 0035 -852 E: 1331926701.344371 0003 0036 -123 E: 1331926701.344371 0000 0002 0 E: 1331926701.344372 0003 0039 7 E: 1331926701.344373 0003 0030 272 E: 1331926701.344373 0003 0031 388 E: 1331926701.344374 0003 0034 0 E: 1331926701.344375 0003 0035 1492 E: 1331926701.344375 0003 0036 -608 E: 1331926701.344376 0000 0002 0 E: 1331926701.344377 0003 0039 8 E: 1331926701.344377 0003 0030 252 E: 1331926701.344378 0003 0031 276 E: 1331926701.344379 0003 0034 0 E: 1331926701.344379 0003 0035 -1691 E: 1331926701.344380 0003 0036 949 E: 1331926701.344380 0000 0002 0 E: 1331926701.344381 0003 0039 9 E: 1331926701.344382 0003 0030 456 E: 1331926701.344382 0003 0031 480 E: 1331926701.344383 0003 0034 0 E: 1331926701.344384 0003 0035 146 E: 1331926701.344384 0003 0036 -1055 E: 1331926701.344385 0000 0002 0 E: 1331926701.344388 0003 0000 -854 E: 1331926701.344388 0003 0001 -125 E: 1331926701.344389 0000 0000 0 E: 1331926701.364365 0003 0039 1 E: 1331926701.364366 0003 0030 232 E: 1331926701.364367 0003 0031 288 E: 1331926701.364368 0003 0034 0 E: 1331926701.364368 0003 0035 -851 E: 1331926701.364369 0003 0036 -122 E: 1331926701.364370 0000 0002 0 E: 1331926701.364370 0003 0039 7 E: 1331926701.364371 0003 0030 276 E: 1331926701.364372 0003 0031 392 E: 1331926701.364372 0003 0034 0 E: 1331926701.364373 0003 0035 1493 E: 1331926701.364374 0003 0036 -606 E: 1331926701.364374 0000 0002 0 E: 1331926701.364375 0003 0039 8 E: 1331926701.364376 0003 0030 260 E: 1331926701.364376 0003 0031 284 E: 1331926701.364377 0003 0034 0 E: 1331926701.364377 0003 0035 -1689 E: 1331926701.364378 0003 0036 951 E: 1331926701.364379 0000 0002 0 E: 1331926701.364379 0003 0039 9 E: 1331926701.364380 0003 0030 452 E: 1331926701.364381 0003 0031 496 E: 1331926701.364381 0003 0034 0 E: 1331926701.364382 0003 0035 146 E: 1331926701.364383 0003 0036 -1053 E: 1331926701.364383 0000 0002 0 E: 1331926701.364386 0003 0000 -853 E: 1331926701.364387 0003 0001 -124 E: 1331926701.364387 0000 0000 0 E: 1331926701.366982 0003 0039 1 E: 1331926701.366983 0003 0030 220 E: 1331926701.366984 0003 0031 276 E: 1331926701.366985 0003 0034 0 E: 1331926701.366985 0003 0035 -851 E: 1331926701.366986 0003 0036 -121 E: 1331926701.366987 0000 0002 0 E: 1331926701.366987 0003 0039 7 E: 1331926701.366988 0003 0030 276 E: 1331926701.366989 0003 0031 384 E: 1331926701.366989 0003 0034 0 E: 1331926701.366990 0003 0035 1493 E: 1331926701.366991 0003 0036 -604 E: 1331926701.366991 0000 0002 0 E: 1331926701.366992 0003 0039 8 E: 1331926701.366993 0003 0030 260 E: 1331926701.366993 0003 0031 288 E: 1331926701.366994 0003 0034 0 E: 1331926701.366994 0003 0035 -1688 E: 1331926701.366995 0003 0036 952 E: 1331926701.366996 0000 0002 0 E: 1331926701.366996 0003 0039 9 E: 1331926701.366997 0003 0030 448 E: 1331926701.366998 0003 0031 496 E: 1331926701.366998 0003 0034 0 E: 1331926701.366999 0003 0035 146 E: 1331926701.367000 0003 0036 -1053 E: 1331926701.367000 0000 0002 0 E: 1331926701.367003 0003 0000 -852 E: 1331926701.367004 0003 0001 -123 E: 1331926701.367004 0000 0000 0 E: 1331926701.374366 0003 0039 1 E: 1331926701.374367 0003 0030 224 E: 1331926701.374368 0003 0031 292 E: 1331926701.374368 0003 0034 0 E: 1331926701.374369 0003 0035 -851 E: 1331926701.374369 0003 0036 -120 E: 1331926701.374370 0000 0002 0 E: 1331926701.374371 0003 0039 7 E: 1331926701.374371 0003 0030 272 E: 1331926701.374372 0003 0031 392 E: 1331926701.374373 0003 0034 0 E: 1331926701.374373 0003 0035 1494 E: 1331926701.374374 0003 0036 -603 E: 1331926701.374375 0000 0002 0 E: 1331926701.374375 0003 0039 8 E: 1331926701.374376 0003 0030 252 E: 1331926701.374377 0003 0031 284 E: 1331926701.374377 0003 0034 0 E: 1331926701.374378 0003 0035 -1688 E: 1331926701.374379 0003 0036 953 E: 1331926701.374379 0000 0002 0 E: 1331926701.374380 0003 0039 9 E: 1331926701.374381 0003 0030 460 E: 1331926701.374381 0003 0031 488 E: 1331926701.374382 0003 0034 0 E: 1331926701.374383 0003 0035 146 E: 1331926701.374383 0003 0036 -1051 E: 1331926701.374384 0000 0002 0 E: 1331926701.374387 0003 0001 -122 E: 1331926701.374388 0000 0000 0 E: 1331926701.396995 0003 0039 1 E: 1331926701.396996 0003 0030 220 E: 1331926701.396996 0003 0031 280 E: 1331926701.396997 0003 0034 0 E: 1331926701.396998 0003 0035 -851 E: 1331926701.396998 0003 0036 -120 E: 1331926701.396999 0000 0002 0 E: 1331926701.397000 0003 0039 7 E: 1331926701.397000 0003 0030 260 E: 1331926701.397001 0003 0031 384 E: 1331926701.397002 0003 0034 0 E: 1331926701.397002 0003 0035 1494 E: 1331926701.397003 0003 0036 -602 E: 1331926701.397003 0000 0002 0 E: 1331926701.397004 0003 0039 8 E: 1331926701.397005 0003 0030 248 E: 1331926701.397005 0003 0031 284 E: 1331926701.397006 0003 0034 0 E: 1331926701.397007 0003 0035 -1688 E: 1331926701.397007 0003 0036 954 E: 1331926701.397008 0000 0002 0 E: 1331926701.397009 0003 0039 9 E: 1331926701.397009 0003 0030 464 E: 1331926701.397010 0003 0031 484 E: 1331926701.397011 0003 0034 0 E: 1331926701.397011 0003 0035 147 E: 1331926701.397012 0003 0036 -1051 E: 1331926701.397012 0000 0002 0 E: 1331926701.397016 0003 0001 -121 E: 1331926701.397016 0000 0000 0 E: 1331926701.399368 0003 0039 1 E: 1331926701.399368 0003 0030 236 E: 1331926701.399369 0003 0031 292 E: 1331926701.399370 0003 0034 0 E: 1331926701.399370 0003 0035 -851 E: 1331926701.399371 0003 0036 -120 E: 1331926701.399372 0000 0002 0 E: 1331926701.399373 0003 0039 7 E: 1331926701.399373 0003 0030 264 E: 1331926701.399374 0003 0031 388 E: 1331926701.399374 0003 0034 0 E: 1331926701.399375 0003 0035 1495 E: 1331926701.399376 0003 0036 -602 E: 1331926701.399376 0000 0002 0 E: 1331926701.399377 0003 0039 8 E: 1331926701.399378 0003 0030 248 E: 1331926701.399378 0003 0031 284 E: 1331926701.399379 0003 0034 0 E: 1331926701.399380 0003 0035 -1689 E: 1331926701.399380 0003 0036 955 E: 1331926701.399381 0000 0002 0 E: 1331926701.399382 0003 0039 9 E: 1331926701.399382 0003 0030 476 E: 1331926701.399383 0003 0031 496 E: 1331926701.399384 0003 0034 0 E: 1331926701.399384 0003 0035 147 E: 1331926701.399385 0003 0036 -1050 E: 1331926701.399385 0000 0002 0 E: 1331926701.399389 0000 0000 0 E: 1331926701.404370 0003 0039 1 E: 1331926701.404371 0003 0030 240 E: 1331926701.404372 0003 0031 304 E: 1331926701.404372 0003 0034 0 E: 1331926701.404373 0003 0035 -850 E: 1331926701.404374 0003 0036 -120 E: 1331926701.404374 0000 0002 0 E: 1331926701.404375 0003 0039 7 E: 1331926701.404376 0003 0030 256 E: 1331926701.404376 0003 0031 376 E: 1331926701.404377 0003 0034 0 E: 1331926701.404378 0003 0035 1495 E: 1331926701.404378 0003 0036 -602 E: 1331926701.404379 0000 0002 0 E: 1331926701.404380 0003 0039 8 E: 1331926701.404380 0003 0030 256 E: 1331926701.404381 0003 0031 292 E: 1331926701.404381 0003 0034 0 E: 1331926701.404382 0003 0035 -1690 E: 1331926701.404383 0003 0036 956 E: 1331926701.404383 0000 0002 0 E: 1331926701.404384 0003 0039 9 E: 1331926701.404385 0003 0030 456 E: 1331926701.404385 0003 0031 488 E: 1331926701.404386 0003 0034 0 E: 1331926701.404387 0003 0035 148 E: 1331926701.404387 0003 0036 -1050 E: 1331926701.404388 0000 0002 0 E: 1331926701.404391 0003 0000 -851 E: 1331926701.404392 0000 0000 0 E: 1331926701.424368 0003 0039 1 E: 1331926701.424369 0003 0030 248 E: 1331926701.424370 0003 0031 300 E: 1331926701.424371 0003 0034 0 E: 1331926701.424371 0003 0035 -850 E: 1331926701.424372 0003 0036 -120 E: 1331926701.424373 0000 0002 0 E: 1331926701.424373 0003 0039 7 E: 1331926701.424374 0003 0030 252 E: 1331926701.424375 0003 0031 376 E: 1331926701.424375 0003 0034 0 E: 1331926701.424376 0003 0035 1496 E: 1331926701.424377 0003 0036 -602 E: 1331926701.424377 0000 0002 0 E: 1331926701.424378 0003 0039 8 E: 1331926701.424379 0003 0030 252 E: 1331926701.424379 0003 0031 284 E: 1331926701.424380 0003 0034 0 E: 1331926701.424381 0003 0035 -1691 E: 1331926701.424381 0003 0036 956 E: 1331926701.424382 0000 0002 0 E: 1331926701.424382 0003 0039 9 E: 1331926701.424383 0003 0030 444 E: 1331926701.424384 0003 0031 480 E: 1331926701.424384 0003 0034 0 E: 1331926701.424385 0003 0035 148 E: 1331926701.424386 0003 0036 -1050 E: 1331926701.424386 0000 0002 0 E: 1331926701.424390 0000 0000 0 E: 1331926701.426992 0003 0039 1 E: 1331926701.426993 0003 0030 244 E: 1331926701.426994 0003 0031 300 E: 1331926701.426994 0003 0034 0 E: 1331926701.426995 0003 0035 -849 E: 1331926701.426996 0003 0036 -121 E: 1331926701.426996 0000 0002 0 E: 1331926701.426997 0003 0039 7 E: 1331926701.426998 0003 0030 252 E: 1331926701.426998 0003 0031 384 E: 1331926701.426999 0003 0034 0 E: 1331926701.427000 0003 0035 1497 E: 1331926701.427000 0003 0036 -602 E: 1331926701.427001 0000 0002 0 E: 1331926701.427002 0003 0039 8 E: 1331926701.427002 0003 0030 256 E: 1331926701.427003 0003 0031 280 E: 1331926701.427003 0003 0034 0 E: 1331926701.427004 0003 0035 -1691 E: 1331926701.427005 0003 0036 956 E: 1331926701.427005 0000 0002 0 E: 1331926701.427006 0003 0039 9 E: 1331926701.427007 0003 0030 444 E: 1331926701.427007 0003 0031 480 E: 1331926701.427008 0003 0034 0 E: 1331926701.427009 0003 0035 149 E: 1331926701.427009 0003 0036 -1050 E: 1331926701.427010 0000 0002 0 E: 1331926701.427013 0003 0000 -850 E: 1331926701.427014 0000 0000 0 E: 1331926701.434374 0003 0039 1 E: 1331926701.434375 0003 0030 240 E: 1331926701.434376 0003 0031 280 E: 1331926701.434377 0003 0034 0 E: 1331926701.434377 0003 0035 -848 E: 1331926701.434378 0003 0036 -121 E: 1331926701.434379 0000 0002 0 E: 1331926701.434379 0003 0039 7 E: 1331926701.434380 0003 0030 248 E: 1331926701.434381 0003 0031 380 E: 1331926701.434381 0003 0034 0 E: 1331926701.434382 0003 0035 1497 E: 1331926701.434383 0003 0036 -602 E: 1331926701.434383 0000 0002 0 E: 1331926701.434384 0003 0039 8 E: 1331926701.434385 0003 0030 240 E: 1331926701.434385 0003 0031 272 E: 1331926701.434386 0003 0034 0 E: 1331926701.434387 0003 0035 -1693 E: 1331926701.434387 0003 0036 956 E: 1331926701.434388 0000 0002 0 E: 1331926701.434389 0003 0039 9 E: 1331926701.434389 0003 0030 448 E: 1331926701.434390 0003 0031 488 E: 1331926701.434390 0003 0034 0 E: 1331926701.434391 0003 0035 150 E: 1331926701.434392 0003 0036 -1051 E: 1331926701.434392 0000 0002 0 E: 1331926701.434395 0003 0000 -849 E: 1331926701.434396 0000 0000 0 E: 1331926701.454350 0003 0039 1 E: 1331926701.454351 0003 0030 236 E: 1331926701.454351 0003 0031 268 E: 1331926701.454351 0003 0034 0 E: 1331926701.454352 0003 0035 -848 E: 1331926701.454352 0003 0036 -122 E: 1331926701.454353 0000 0002 0 E: 1331926701.454353 0003 0039 7 E: 1331926701.454354 0003 0030 244 E: 1331926701.454354 0003 0031 376 E: 1331926701.454354 0003 0034 0 E: 1331926701.454355 0003 0035 1497 E: 1331926701.454355 0003 0036 -603 E: 1331926701.454356 0000 0002 0 E: 1331926701.454356 0003 0039 8 E: 1331926701.454357 0003 0030 236 E: 1331926701.454357 0003 0031 268 E: 1331926701.454357 0003 0034 0 E: 1331926701.454358 0003 0035 -1694 E: 1331926701.454358 0003 0036 955 E: 1331926701.454359 0000 0002 0 E: 1331926701.454359 0003 0039 9 E: 1331926701.454359 0003 0030 440 E: 1331926701.454360 0003 0031 476 E: 1331926701.454360 0003 0034 0 E: 1331926701.454361 0003 0035 150 E: 1331926701.454361 0003 0036 -1051 E: 1331926701.454361 0000 0002 0 E: 1331926701.454364 0000 0000 0 E: 1331926701.456999 0003 0039 1 E: 1331926701.457000 0003 0030 224 E: 1331926701.457001 0003 0031 276 E: 1331926701.457001 0003 0034 0 E: 1331926701.457002 0003 0035 -847 E: 1331926701.457003 0003 0036 -124 E: 1331926701.457003 0000 0002 0 E: 1331926701.457004 0003 0039 7 E: 1331926701.457005 0003 0030 244 E: 1331926701.457005 0003 0031 372 E: 1331926701.457006 0003 0034 0 E: 1331926701.457007 0003 0035 1497 E: 1331926701.457007 0003 0036 -603 E: 1331926701.457008 0000 0002 0 E: 1331926701.457009 0003 0039 8 E: 1331926701.457009 0003 0030 220 E: 1331926701.457010 0003 0031 260 E: 1331926701.457010 0003 0034 0 E: 1331926701.457011 0003 0035 -1695 E: 1331926701.457012 0003 0036 955 E: 1331926701.457012 0000 0002 0 E: 1331926701.457013 0003 0039 9 E: 1331926701.457014 0003 0030 452 E: 1331926701.457014 0003 0031 468 E: 1331926701.457015 0003 0034 0 E: 1331926701.457016 0003 0035 150 E: 1331926701.457016 0003 0036 -1050 E: 1331926701.457017 0000 0002 0 E: 1331926701.457020 0003 0000 -848 E: 1331926701.457021 0000 0000 0 E: 1331926701.466993 0003 0039 1 E: 1331926701.466994 0003 0030 216 E: 1331926701.466994 0003 0031 268 E: 1331926701.466995 0003 0034 0 E: 1331926701.466995 0003 0035 -847 E: 1331926701.466996 0003 0036 -125 E: 1331926701.466997 0000 0002 0 E: 1331926701.466998 0003 0039 7 E: 1331926701.466998 0003 0030 244 E: 1331926701.466999 0003 0031 372 E: 1331926701.466999 0003 0034 0 E: 1331926701.467000 0003 0035 1497 E: 1331926701.467001 0003 0036 -602 E: 1331926701.467001 0000 0002 0 E: 1331926701.467002 0003 0039 8 E: 1331926701.467003 0003 0030 216 E: 1331926701.467003 0003 0031 264 E: 1331926701.467004 0003 0034 0 E: 1331926701.467005 0003 0035 -1695 E: 1331926701.467005 0003 0036 954 E: 1331926701.467006 0000 0002 0 E: 1331926701.467007 0003 0039 9 E: 1331926701.467007 0003 0030 436 E: 1331926701.467008 0003 0031 460 E: 1331926701.467009 0003 0034 0 E: 1331926701.467009 0003 0035 150 E: 1331926701.467010 0003 0036 -1050 E: 1331926701.467011 0000 0002 0 E: 1331926701.467014 0003 0001 -123 E: 1331926701.467015 0000 0000 0 E: 1331926701.486989 0003 0039 1 E: 1331926701.486990 0003 0030 208 E: 1331926701.486991 0003 0031 252 E: 1331926701.486992 0003 0034 0 E: 1331926701.486992 0003 0035 -846 E: 1331926701.486993 0003 0036 -126 E: 1331926701.486994 0000 0002 0 E: 1331926701.486994 0003 0039 7 E: 1331926701.486995 0003 0030 264 E: 1331926701.486996 0003 0031 364 E: 1331926701.486996 0003 0034 0 E: 1331926701.486997 0003 0035 1497 E: 1331926701.486998 0003 0036 -602 E: 1331926701.486998 0000 0002 0 E: 1331926701.486999 0003 0039 8 E: 1331926701.486999 0003 0030 188 E: 1331926701.487000 0003 0031 248 E: 1331926701.487001 0003 0034 0 E: 1331926701.487001 0003 0035 -1695 E: 1331926701.487002 0003 0036 952 E: 1331926701.487003 0000 0002 0 E: 1331926701.487003 0003 0039 9 E: 1331926701.487004 0003 0030 416 E: 1331926701.487005 0003 0031 428 E: 1331926701.487005 0003 0034 0 E: 1331926701.487006 0003 0035 150 E: 1331926701.487007 0003 0036 -1050 E: 1331926701.487007 0000 0002 0 E: 1331926701.487010 0003 0000 -847 E: 1331926701.487011 0000 0000 0 E: 1331926701.489380 0003 0039 1 E: 1331926701.489381 0003 0030 200 E: 1331926701.489382 0003 0031 244 E: 1331926701.489383 0003 0034 0 E: 1331926701.489383 0003 0035 -844 E: 1331926701.489384 0003 0036 -128 E: 1331926701.489385 0000 0002 0 E: 1331926701.489385 0003 0039 7 E: 1331926701.489386 0003 0030 264 E: 1331926701.489387 0003 0031 360 E: 1331926701.489387 0003 0034 0 E: 1331926701.489388 0003 0035 1498 E: 1331926701.489389 0003 0036 -599 E: 1331926701.489389 0000 0002 0 E: 1331926701.489390 0003 0039 8 E: 1331926701.489391 0003 0030 152 E: 1331926701.489391 0003 0031 216 E: 1331926701.489392 0003 0034 0 E: 1331926701.489393 0003 0035 -1693 E: 1331926701.489393 0003 0036 950 E: 1331926701.489394 0000 0002 0 E: 1331926701.489395 0003 0039 9 E: 1331926701.489395 0003 0030 380 E: 1331926701.489396 0003 0031 396 E: 1331926701.489397 0003 0034 0 E: 1331926701.489397 0003 0035 151 E: 1331926701.489398 0003 0036 -1048 E: 1331926701.489398 0000 0002 0 E: 1331926701.489401 0003 0000 -846 E: 1331926701.489402 0003 0001 -125 E: 1331926701.489402 0000 0000 0 E: 1331926701.496999 0003 0039 1 E: 1331926701.497000 0003 0030 188 E: 1331926701.497001 0003 0031 236 E: 1331926701.497002 0003 0034 0 E: 1331926701.497002 0003 0035 -842 E: 1331926701.497003 0003 0036 -129 E: 1331926701.497004 0000 0002 0 E: 1331926701.497005 0003 0039 7 E: 1331926701.497005 0003 0030 240 E: 1331926701.497006 0003 0031 332 E: 1331926701.497006 0003 0034 0 E: 1331926701.497007 0003 0035 1502 E: 1331926701.497008 0003 0036 -592 E: 1331926701.497008 0000 0002 0 E: 1331926701.497009 0003 0039 8 E: 1331926701.497010 0003 0030 124 E: 1331926701.497010 0003 0031 196 E: 1331926701.497011 0003 0034 0 E: 1331926701.497012 0003 0035 -1690 E: 1331926701.497012 0003 0036 949 E: 1331926701.497013 0000 0002 0 E: 1331926701.497014 0003 0039 9 E: 1331926701.497014 0003 0030 340 E: 1331926701.497015 0003 0031 368 E: 1331926701.497015 0003 0034 0 E: 1331926701.497016 0003 0035 155 E: 1331926701.497017 0003 0036 -1041 E: 1331926701.497017 0000 0002 0 E: 1331926701.497020 0003 0000 -844 E: 1331926701.497021 0003 0001 -127 E: 1331926701.497021 0000 0000 0 E: 1331926701.516993 0003 0039 1 E: 1331926701.516994 0003 0030 176 E: 1331926701.516995 0003 0031 216 E: 1331926701.516995 0003 0034 0 E: 1331926701.516996 0003 0035 -838 E: 1331926701.516997 0003 0036 -129 E: 1331926701.516997 0000 0002 0 E: 1331926701.516998 0003 0039 7 E: 1331926701.516999 0003 0030 188 E: 1331926701.516999 0003 0031 292 E: 1331926701.517000 0003 0034 0 E: 1331926701.517001 0003 0035 1511 E: 1331926701.517001 0003 0036 -577 E: 1331926701.517002 0000 0002 0 E: 1331926701.517003 0003 0039 8 E: 1331926701.517003 0003 0030 124 E: 1331926701.517004 0003 0031 168 E: 1331926701.517005 0003 0034 0 E: 1331926701.517005 0003 0035 -1681 E: 1331926701.517006 0003 0036 947 E: 1331926701.517007 0000 0002 0 E: 1331926701.517007 0003 0039 9 E: 1331926701.517008 0003 0030 308 E: 1331926701.517009 0003 0031 328 E: 1331926701.517009 0003 0034 0 E: 1331926701.517010 0003 0035 169 E: 1331926701.517011 0003 0036 -1023 E: 1331926701.517011 0000 0002 0 E: 1331926701.517014 0003 0000 -841 E: 1331926701.517015 0000 0000 0 E: 1331926701.523118 0003 0039 1 E: 1331926701.523119 0003 0030 152 E: 1331926701.523120 0003 0031 192 E: 1331926701.523121 0003 0034 0 E: 1331926701.523121 0003 0035 -815 E: 1331926701.523122 0003 0036 -116 E: 1331926701.523123 0000 0002 0 E: 1331926701.523123 0003 0039 7 E: 1331926701.523124 0003 0030 0 E: 1331926701.523124 0003 0031 0 E: 1331926701.523124 0003 0034 0 E: 1331926701.523125 0003 0035 1511 E: 1331926701.523126 0003 0036 -577 E: 1331926701.523126 0000 0002 0 E: 1331926701.523127 0003 0039 8 E: 1331926701.523128 0003 0030 0 E: 1331926701.523128 0003 0031 0 E: 1331926701.523128 0003 0034 0 E: 1331926701.523129 0003 0035 -1681 E: 1331926701.523129 0003 0036 947 E: 1331926701.523130 0000 0002 0 E: 1331926701.523131 0003 0039 9 E: 1331926701.523131 0003 0030 280 E: 1331926701.523132 0003 0031 348 E: 1331926701.523133 0003 0034 0 E: 1331926701.523133 0003 0035 194 E: 1331926701.523134 0003 0036 -999 E: 1331926701.523135 0000 0002 0 E: 1331926701.523137 0003 0000 -815 E: 1331926701.523138 0003 0001 -116 E: 1331926701.523139 0000 0000 0 E: 1331926701.526983 0003 0039 1 E: 1331926701.526984 0003 0030 132 E: 1331926701.526985 0003 0031 176 E: 1331926701.526985 0003 0034 0 E: 1331926701.526986 0003 0035 -775 E: 1331926701.526987 0003 0036 -93 E: 1331926701.526987 0000 0002 0 E: 1331926701.526988 0003 0039 9 E: 1331926701.526989 0003 0030 0 E: 1331926701.526989 0003 0031 0 E: 1331926701.526989 0003 0034 0 E: 1331926701.526990 0003 0035 194 E: 1331926701.526991 0003 0036 -999 E: 1331926701.526991 0000 0002 0 E: 1331926701.526993 0001 014d 1 E: 1331926701.526994 0001 014f 0 E: 1331926701.526995 0003 0000 -775 E: 1331926701.526996 0003 0001 -93 E: 1331926701.526996 0000 0000 0 E: 1331926701.546994 0003 0039 1 E: 1331926701.546995 0003 0030 0 E: 1331926701.546995 0003 0031 0 E: 1331926701.546995 0003 0034 0 E: 1331926701.546996 0003 0035 -775 E: 1331926701.546997 0003 0036 -93 E: 1331926701.546997 0000 0002 0 E: 1331926701.546999 0001 0145 1 E: 1331926701.546999 0001 014d 0 E: 1331926701.547001 0000 0000 0 E: 1331926701.548990 0001 014a 0 E: 1331926701.548990 0001 0145 0 E: 1331926701.548991 0000 0000 0 grail-3.1.0+16.04.20160125/test/integration/slice-checker.cpp0000644000015600001650000001316112651522342023665 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include "slice-checker.h" #include /* Margin of fluctuation on number of expected repetitions Between 0.0 (0% error margin) to 1.0 (100% error margin) exclusive. */ #define EXPECTED_COUNT_MARGIN 0.3 using namespace oif::grail::testing; void SliceCheckerState::SetAverageCount(unsigned int average_count) { min_count = (unsigned int)( average_count*(1.0 - EXPECTED_COUNT_MARGIN)); max_count = (unsigned int)( average_count*(1.0 + EXPECTED_COUNT_MARGIN)); } SliceChecker::SliceChecker() : curr_state_(0) { } void SliceChecker::AppendState(std::unique_ptr state) { slice_checker_states_.push_back(std::move(state)); } void SliceChecker::CheckSlice(UGSlice slice) { ASSERT_LT(curr_state_, slice_checker_states_.size()) << "Received too many slices."; /* Map type() to class. */ switch (slice_checker_states_[curr_state_]->type()) { case SliceCheckerState::SlicesType: { ExpectSlices *state = dynamic_cast( slice_checker_states_[curr_state_].get()); ASSERT_NE(nullptr, state); CheckSlice(slice, state); } break; case SliceCheckerState::ParallelSlicesType: { ExpectParallelSlices *state = dynamic_cast( slice_checker_states_[curr_state_].get()); ASSERT_NE(nullptr, state); CheckSlice(slice, state); } break; default: ASSERT_TRUE(false); break; }; } void SliceChecker::CheckSlice(UGSlice slice, ExpectSlices *state) { if (SliceMatches(slice, state->expected_slice)) { ++state->actual_count; } else { /* If there's no match, transition to the next state and try to get a match there. */ CheckAllExpectedSlicesReceived(state); ++curr_state_; CheckSlice(slice); } } void SliceChecker::CheckSlice(UGSlice slice, ExpectParallelSlices *state) { if (state->actual_count.size() == 0) { /* init the vector */ state->actual_count.resize(state->expected_slices.size(), 0); } bool found_match = false; std::size_t i = 0; do { found_match = SliceMatches(slice, state->expected_slices[i]); if (!found_match) ++i; } while (!found_match && i < state->expected_slices.size()); if (found_match) { ++state->actual_count[i]; } else { CheckAllExpectedSlicesReceived(state); ++curr_state_; CheckSlice(slice); } } void SliceChecker::CheckAllExpectedSlicesReceived() { ASSERT_EQ(slice_checker_states_.size() - 1, curr_state_) << "the last slice checker state must be reached."; /* Map type() to class. */ switch (slice_checker_states_[curr_state_]->type()) { case SliceCheckerState::SlicesType: { ExpectSlices *state = dynamic_cast( slice_checker_states_[curr_state_].get()); ASSERT_NE(nullptr, state); CheckAllExpectedSlicesReceived(state); } break; case SliceCheckerState::ParallelSlicesType: { ExpectParallelSlices *state = dynamic_cast( slice_checker_states_[curr_state_].get()); ASSERT_NE(nullptr, state); CheckAllExpectedSlicesReceived(state); } break; default: ASSERT_TRUE(false); break; }; } void SliceChecker::CheckAllExpectedSlicesReceived( ExpectSlices *state) { ASSERT_GE(state->actual_count, state->min_count) << "for state " << curr_state_; ASSERT_LE(state->actual_count, state->max_count) << "for state " << curr_state_; } void SliceChecker::CheckAllExpectedSlicesReceived( ExpectParallelSlices *state) { unsigned int min_actual_count = std::numeric_limits::max(); unsigned int max_actual_count = 0; for (auto actual_count : state->actual_count) { ASSERT_GE(actual_count, state->min_count) << "for state " << curr_state_; ASSERT_LE(actual_count, state->max_count) << "for state " << curr_state_; if (actual_count < min_actual_count) min_actual_count = actual_count; if (actual_count > max_actual_count) max_actual_count = actual_count; } unsigned int average_count = (state->max_count + state->min_count) / 2; ASSERT_LE(max_actual_count - min_actual_count, average_count*0.1) << "Parallel slices must come in roughly same numbers."; } bool SliceChecker::SliceMatches(UGSlice slice, const ExpectedSlice &expected_slice) { if (grail_slice_get_state(slice) != expected_slice.state) return false; if (grail_slice_get_subscription(slice) != expected_slice.subscription) return false; if (grail_slice_get_recognized(slice) != expected_slice.recognized) return false; if (grail_slice_get_num_touches(slice) != expected_slice.num_touches) return false; if (grail_slice_get_construction_finished(slice) != expected_slice.construction_finished) return false; return true; } grail-3.1.0+16.04.20160125/test/integration/x11/0000755000015600001650000000000012651522501021064 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/integration/x11/timeout.cpp0000644000015600001650000001745712651522352023300 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file Timeout Test * * This test plays a recording that begins a touch and ends it two seconds * later. The touch does not move. A drag subscription is made with a 300 ms * timeout. A fullscreen child window of the root window is created, and touch * events are selected on it. * * When this test is run, a drag gesture should be matched but then rejected by * grail because it does not cross the distance threshold within the 300 ms * timeout. The touch should be rejected, and the X server should replay the * touch to the child window selecting for touch events. The time of the child * window touch event should be right after the timeout; however, we play the * recording until it finishes, and then process touch events. Since the * recording is two seconds long, we wait for up to three seconds from the touch * begin to the subwindow receiving the begin event. */ #include #include #include #include #include #include "device.h" #include "recording.h" #include "x11/fixture.h" #include "oif/frame_x11.h" namespace { /* Manually specify the drag timeout in case the default changes in the * future. */ const uint64_t DRAG_TIMEOUT = 0; } // namespace using namespace oif::grail::x11::testing; class Timeout : public Test { public: Timeout() : device_(NULL), touch_select_event_seen_(false) {} protected: virtual void SetUp(); virtual bool FilterXIEvent(const XGenericEventCookie* xcookie); virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); void Subscribe(); UFDevice device_; Window subwin_; uint64_t begin_time_; bool touch_select_event_seen_; UGSubscription subscription_; }; void Timeout::SetUp() { ASSERT_NO_FATAL_FAILURE(oif::grail::x11::testing::Test::SetUp()); Window root = DefaultRootWindow(Display()); unsigned int width; unsigned int height; { Window root_return; int x; int y; unsigned int border_width; unsigned int depth; ASSERT_NE(0, XGetGeometry(Display(), root, &root_return, &x, &y, &width, &height, &border_width, &depth)); } subwin_ = XCreateSimpleWindow(Display(), root, 0, 0, width, height, 0, 0, 0); ASSERT_NE(subwin_, None); ASSERT_NE(0, XMapWindow(Display(), subwin_)); XIEventMask mask; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = reinterpret_cast(calloc(mask.mask_len, sizeof(char))); mask.deviceid = XIAllMasterDevices; XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); ASSERT_EQ(Success, XISelectEvents(Display(), subwin_, &mask, 1)); free(mask.mask); } bool Timeout::FilterXIEvent(const XGenericEventCookie* xcookie) { const XIDeviceEvent* device_event = reinterpret_cast(xcookie->data); if (xcookie->evtype == XI_TouchBegin) { if (device_event->event != subwin_) { begin_time_ = device_event->time; } else { if (!touch_select_event_seen_) { EXPECT_GE(device_event->time, begin_time_ + DRAG_TIMEOUT); /* Allow 3 s of slack */ EXPECT_LT(device_event->time, begin_time_ + DRAG_TIMEOUT + 3000); touch_select_event_seen_ = true; } return true; } } else if (device_event->event == subwin_) { return true; } return false; } void Timeout::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { UFDevice device; ASSERT_EQ(UFStatusSuccess, frame_event_get_property(event, UFEventPropertyDevice, &device)); const char* name; ASSERT_EQ(UFStatusSuccess, frame_device_get_property(device, UFDevicePropertyName, &name)); if (strcmp(name, "N-Trig MultiTouch (Virtual Test Device)") == 0) { EXPECT_EQ(NULL, device_); device_ = device; Subscribe(); } } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void Timeout::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(event)); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); grail_event_unref(event); } EXPECT_EQ(UGStatusErrorNoEvent, status); } void Timeout::Subscribe() { UGStatus status = grail_subscription_new(&subscription_); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(UGStatusSuccess, status); const UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(UGStatusSuccess, status); const UGGestureTypeMask mask = UGGestureTypeDrag; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyMask, &mask); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyDragTimeout, &DRAG_TIMEOUT); ASSERT_EQ(UGStatusSuccess, status); const unsigned int touches = 1; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesStart, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesMinimum, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_activate(grail_handle(), subscription_); ASSERT_EQ(UGStatusSuccess, status); } TEST_F(Timeout, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/ntrig_dell_xt2/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(nullptr, device_) << "X server failed to initialize touchscreen"; oif::evemu::Recording bad_drag(device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/timeout.record"); bad_drag.Play(); PumpEvents(); EXPECT_TRUE(touch_select_event_seen_); grail_subscription_deactivate(grail_handle(), subscription_); grail_subscription_delete(subscription_); } grail-3.1.0+16.04.20160125/test/integration/x11/no-premature-gestures.cpp0000644000015600001650000001616512651522342026061 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file "No Premature Gestures" Test * * This test plays a four-touches' drag where the four fingers land almost in * sync and checks that only 4-touches' slices are generated. * Three subscriptions are used: * (A) An atomic two-touches Touch * (B) An atomic three-touches Touch * (C) An atomic four-touches Touch. * * It's a regression test for https://bugs.launchpad.net/grail/+bug/949916 * * We don't want to see gestures being unnecessarily created (and therefore * their slices) for subscriptions (A) and (B) since we already know from the * very first events that there are four touches in total, not only two or three. * * Note that this logic holds only when atomic gesture rules are being used. */ #include #include #include // evemu wrappers #include "device.h" #include "recording.h" #include "x11/fixture.h" class NoPrematureGestures : public oif::grail::x11::testing::Test { public: NoPrematureGestures() : device_(nullptr) {} protected: virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); // Holds the device we are interested in getting input from. // More specifically, the fake one we will create via evemu. UFDevice device_; std::set subscriptions_; private: void ProcessFrameEventDeviceAdded(UFEvent event); void CreateSubscriptions(); void CreateSubscription(unsigned int num_touches, UGGestureTypeMask gesture_mask); void CheckSlice(UGSlice slice); }; void NoPrematureGestures::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { ProcessFrameEventDeviceAdded(event); } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void NoPrematureGestures::ProcessFrameEventDeviceAdded(UFEvent event) { UFStatus status; UFDevice device; const char* name; status = frame_event_get_property(event, UFEventPropertyDevice, &device); ASSERT_EQ(UFStatusSuccess, status); status = frame_device_get_property(device, UFDevicePropertyName, &name); ASSERT_EQ(UFStatusSuccess, status); if (strcmp(name, "Apple Magic Trackpad (Virtual Test Device)") == 0) { EXPECT_EQ(nullptr, device_); device_ = device; CreateSubscriptions(); } } void NoPrematureGestures::CreateSubscriptions() { CreateSubscription(2, UGGestureTypeTouch); CreateSubscription(3, UGGestureTypeTouch); CreateSubscription(4, UGGestureTypeTouch); } void NoPrematureGestures::CreateSubscription(unsigned int num_touches, UGGestureTypeMask gesture_mask) { UGSubscription subscription; UGStatus status; status = grail_subscription_new(&subscription); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(UFStatusSuccess, status); UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(UFStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesStart, &num_touches); ASSERT_EQ(UFStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMaximum, &num_touches); ASSERT_EQ(UFStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMinimum, &num_touches); ASSERT_EQ(UFStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyMask, &gesture_mask); ASSERT_EQ(UFStatusSuccess, status); int use_atomic_gestures = 1; status = grail_subscription_set_property(subscription, UGSubscriptionPropertyAtomicGestures, &use_atomic_gestures); ASSERT_EQ(UFStatusSuccess, status); status = grail_subscription_activate(grail_handle(), subscription); ASSERT_EQ(UFStatusSuccess, status); subscriptions_.insert(subscription); } void NoPrematureGestures::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(event)); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); CheckSlice(slice); grail_event_unref(event); } EXPECT_EQ(UGStatusErrorNoEvent, status); } void NoPrematureGestures::CheckSlice(UGSlice slice) { UGStatus status; unsigned int num_touches; status = grail_slice_get_property(slice, UGSlicePropertyNumTouches, &num_touches); ASSERT_EQ(UGStatusSuccess, status); // The main point of this test: // Check that we don't get any slices from a 2 or 3 touches gesture. EXPECT_EQ(4, num_touches) << "Got a slice with " << num_touches << " touches from a synced 4-fingers drag."; } TEST_F(NoPrematureGestures, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/apple_magic_trackpad/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(device_, nullptr) << "X server failed to initialize trackpad"; oif::evemu::Recording recording( device, TEST_ROOT_DIR "recordings/apple_magic_trackpad/synced_4_drag.record"); recording.Play(); PumpEvents(); for (UGSubscription subscription : subscriptions_) { grail_subscription_deactivate(grail_handle(), subscription); grail_subscription_delete(subscription); } } grail-3.1.0+16.04.20160125/test/integration/x11/dragthresh.cpp0000644000015600001650000001265712651522342023741 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file Drag Threshold Test * * This test plays two different one-touch drags. The first drag is below the * threshold required for recognizing a drag gesture, and the second drag is * above the threshold. */ #include #include #include #include #include "device.h" #include "recording.h" #include "x11/fixture.h" #include "oif/frame_x11.h" using namespace oif::grail::x11::testing; class DragThreshold : public Test { public: DragThreshold() : device_(NULL), expect_drag_(false) {} protected: virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); void Subscribe(); void CheckSlice(UGSlice); UFDevice device_; bool expect_drag_; UGSubscription subscription_; }; void DragThreshold::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { UFDevice device; ASSERT_EQ(UFStatusSuccess, frame_event_get_property(event, UFEventPropertyDevice, &device)); const char* name; ASSERT_EQ(UFStatusSuccess, frame_device_get_property(device, UFDevicePropertyName, &name)); if (strcmp(name, "N-Trig MultiTouch (Virtual Test Device)") == 0) { EXPECT_EQ(NULL, device_); device_ = device; Subscribe(); } } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void DragThreshold::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(event)); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); CheckSlice(slice); grail_event_unref(event); } EXPECT_EQ(UGStatusErrorNoEvent, status); } void DragThreshold::Subscribe() { UGStatus status = grail_subscription_new(&subscription_); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(UGStatusSuccess, status); const UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(UGStatusSuccess, status); const UGGestureTypeMask mask = UGGestureTypeDrag; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyMask, &mask); ASSERT_EQ(UGStatusSuccess, status); const unsigned int touches = 1; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesStart, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesMinimum, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_activate(grail_handle(), subscription_); ASSERT_EQ(UGStatusSuccess, status); } void DragThreshold::CheckSlice(UGSlice slice) { if (grail_slice_get_state(slice) != UGGestureStateEnd) return; if (expect_drag_) EXPECT_TRUE(grail_slice_get_recognized(slice) & UGGestureTypeDrag); else EXPECT_FALSE(grail_slice_get_recognized(slice) & UGGestureTypeDrag); } TEST_F(DragThreshold, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/ntrig_dell_xt2/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(nullptr, device_) << "X server failed to initialize touchscreen"; expect_drag_ = false; oif::evemu::Recording bad_drag( device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/drag_below_thresh.record"); bad_drag.Play(); PumpEvents(); expect_drag_ = true; oif::evemu::Recording good_drag( device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/drag_above_thresh.record"); good_drag.Play(); PumpEvents(); grail_subscription_deactivate(grail_handle(), subscription_); grail_subscription_delete(subscription_); } grail-3.1.0+16.04.20160125/test/integration/x11/fixture.cpp0000644000015600001650000001512212651522342023262 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #include "x11/fixture.h" #include #include "oif/frame.h" #include "oif/frame_x11.h" void oif::grail::x11::testing::Test::SetUp() { ASSERT_NO_FATAL_FAILURE(xorg::testing::Test::SetUp()); int xi_major = 2; int xi_minor = 2; ASSERT_EQ(Success, XIQueryVersion(Display(), &xi_major, &xi_minor)); ASSERT_GE(xi_major, 2); ASSERT_GE(xi_minor, 2); Window root = DefaultRootWindow(Display()); XIEventMask mask; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = reinterpret_cast(calloc(mask.mask_len, sizeof(char))); mask.deviceid = XIAllDevices; XISetMask(mask.mask, XI_HierarchyChanged); ASSERT_EQ(Success, XISelectEvents(Display(), root, &mask, 1)); XIClearMask(mask.mask, XI_HierarchyChanged); mask.deviceid = XIAllMasterDevices; XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); XISetMask(mask.mask, XI_TouchOwnership); XIGrabModifiers mods = { static_cast(XIAnyModifier), 0 }; ASSERT_EQ(Success, XIGrabTouchBegin(Display(), XIAllMasterDevices, root, 0, &mask, 1, &mods)); ASSERT_EQ(XIGrabSuccess, mods.status); free(mask.mask); Status sync_status; int event_base; int error_base; sync_status = XSyncQueryExtension(Display(), &event_base, &error_base); ASSERT_TRUE(sync_status); int major_version; int minor_version; sync_status = XSyncInitialize(Display(), &major_version, &minor_version); ASSERT_TRUE(sync_status); XSyncSystemCounter* counters; int num_system_counters; bool found = false; counters = XSyncListSystemCounters(Display(), &num_system_counters); for (int i = 0; i < num_system_counters; ++i) { if (strcmp(counters[i].name, "SERVERTIME") == 0) { server_time_counter_ = counters[i].counter; found = true; break; } } XSyncFreeSystemCounterList(counters); ASSERT_TRUE(found); XSyncAlarmAttributes attrs; attrs.trigger.counter = server_time_counter_; attrs.trigger.value_type = XSyncAbsolute; attrs.trigger.test_type = XSyncPositiveComparison; attrs.delta = { 0, 0 }; attrs.events = True; alarm_ = XSyncCreateAlarm(Display(), XSyncCACounter | XSyncCAValueType | XSyncCATestType | XSyncCAEvents | XSyncCADelta, &attrs); ASSERT_NE(None, alarm_) << "failed to create XSync alarm"; UFStatus frame_status = frame_x11_new(Display(), &frame_handle_); ASSERT_EQ(UFStatusSuccess, frame_status); UGStatus grail_status = grail_new(&grail_handle_); ASSERT_EQ(UGStatusSuccess, grail_status); ASSERT_NE(grail_handle_, nullptr); } void oif::grail::x11::testing::Test::PumpEvents(uint64_t timeout) { fd_set set; FD_ZERO(&set); int display_fd = ConnectionNumber(Display()); int frame_fd = frame_get_fd(frame_handle_); int grail_fd = grail_get_fd(grail_handle_); int nfds; if (display_fd > frame_fd && display_fd > grail_fd) nfds = display_fd + 1; else if (frame_fd > grail_fd) nfds = frame_fd + 1; else nfds = grail_fd + 1; while (true) { XSync(Display(), 0); if (!XPending(Display())) { FD_SET(display_fd, &set); FD_SET(frame_fd, &set); FD_SET(grail_fd, &set); SetX11Timeout(); struct timeval timeval = { static_cast(timeout / 1000), static_cast(timeout % 1000) }; int ret; if (timeout) ret = select(nfds, &set, NULL, NULL, &timeval); else ret = select(nfds, &set, NULL, NULL, NULL); ASSERT_GE(ret, 0) << "Failed to select on FDs"; if (ret == 0) return; } if (XPending(Display()) || FD_ISSET(display_fd, &set)) { while (XPending(Display())) { XEvent event; XNextEvent(Display(), &event); if (event.type != GenericEvent) { /* If it's not an XI 2 event, it's probably a timer event */ UpdateTime(reinterpret_cast(event)); continue; } XGenericEventCookie* xcookie = &event.xcookie; ASSERT_NE(0, XGetEventData(Display(), xcookie)) << "Failed to get X generic event data"; if (FilterXIEvent(xcookie)) { XFreeEventData(Display(), xcookie); continue; } ASSERT_EQ(UFStatusSuccess, frame_x11_process_event(frame_handle_, xcookie)) << "Failed to process X event"; XFreeEventData(Display(), xcookie); } } if (FD_ISSET(frame_fd, &set)) ProcessFrameEvents(); if (FD_ISSET(grail_fd, &set)) ProcessGrailEvents(); } } bool oif::grail::x11::testing::Test::FilterXIEvent( const XGenericEventCookie* xcookie) { return false; } void oif::grail::x11::testing::Test::UpdateTime( const XSyncAlarmNotifyEvent& event) { /* Process any outstanding frames first */ ProcessFrameEvents(); XSyncValue time = event.counter_value; uint64_t server_time = (uint64_t)XSyncValueHigh32(time) << 32 | XSyncValueLow32(time); EXPECT_GT(server_time, 0); grail_update_time(grail_handle(), server_time); } void oif::grail::x11::testing::Test::SetX11Timeout() { uint64_t timeout = grail_next_timeout(grail_handle()); if (timeout > 0) { XSyncAlarmAttributes attrs; XSyncIntsToValue(&attrs.trigger.wait_value, timeout & 0xffffffff, timeout & 0xffffffff00000000); if (!XSyncChangeAlarm(Display(), alarm_, XSyncCAValue, &attrs)) fprintf(stderr, "Warning: failed to set XSync alarm\n"); XFlush(Display()); } } void oif::grail::x11::testing::Test::TearDown() { XSyncDestroyAlarm(Display(), alarm_); grail_delete(grail_handle_); frame_x11_delete(frame_handle_); xorg::testing::Test::TearDown(); } grail-3.1.0+16.04.20160125/test/integration/x11/atomic-timeout.cpp0000644000015600001650000002060612651522342024537 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file Atomic Timout Test * * This test plays a two-touch tap and checks that the appropriate events are * generated for a two-touch atomic tap subscription. * * Regression test for lp:949855 and lp:957437. */ #include #include #include #include #include #include "device.h" #include "events.h" #include "recording.h" #include "x11/fixture.h" #include "oif/frame_x11.h" using namespace oif::grail::x11::testing; class AtomicTap : public Test { public: AtomicTap() : device_(NULL), step_(0), subscription_(NULL) {} protected: static oif::grail::testing::Events events_; virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); void Subscribe(); void CheckSlice(UGSlice); UFDevice device_; unsigned int step_; UGSubscription subscription_; }; void AtomicTap::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { UFDevice device; ASSERT_EQ(UFStatusSuccess, frame_event_get_property(event, UFEventPropertyDevice, &device)); const char* name; ASSERT_EQ(UFStatusSuccess, frame_device_get_property(device, UFDevicePropertyName, &name)); if (strcmp(name, "N-Trig MultiTouch (Virtual Test Device)") == 0) { EXPECT_EQ(NULL, device_); device_ = device; Subscribe(); } } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void AtomicTap::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(event)); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); CheckSlice(slice); grail_event_unref(event); } EXPECT_EQ(UGStatusErrorNoEvent, status); } void AtomicTap::Subscribe() { UGStatus status = grail_subscription_new(&subscription_); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(UGStatusSuccess, status); const UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(UGStatusSuccess, status); const UGGestureTypeMask mask = UGGestureTypeTap; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyMask, &mask); ASSERT_EQ(UGStatusSuccess, status); const int atomic = true; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyAtomicGestures, &atomic); status = grail_subscription_activate(grail_handle(), subscription_); ASSERT_EQ(UGStatusSuccess, status); } void AtomicTap::CheckSlice(UGSlice slice) { ASSERT_LT(step_, events_.size()) << "Received too many frame events"; /* Ensure we got a device addition event first */ if (step_ == 0) EXPECT_NE(nullptr, device_); if (!events_[step_].skip) { EXPECT_EQ(events_[step_].id, grail_slice_get_id(slice)) << "step " << step_; EXPECT_EQ(events_[step_].state, grail_slice_get_state(slice)) << "step " << step_; EXPECT_EQ(events_[step_].recognized, grail_slice_get_recognized(slice)) << "step " << step_; EXPECT_EQ(events_[step_].num_touches, grail_slice_get_num_touches(slice)) << "step " << step_; } ++step_; } TEST_F(AtomicTap, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/ntrig_dell_xt2/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(nullptr, device_) << "X server failed to initialize touchscreen"; oif::evemu::Recording recording(device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/2_tap.record"); recording.Play(); PumpEvents(); EXPECT_EQ(events_.size(), step_) << "Failed to receive all frame events for " "touchscreen"; grail_subscription_deactivate(grail_handle(), subscription_); grail_subscription_delete(subscription_); } /* Construct the expected events */ namespace { using namespace oif::grail::testing; const Events ConstructEvents() { Events events; { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateBegin, /* UGSlicePropertyState */ 0, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 0, /* UGSlicePropertyOriginalCenterX */ 0, /* UGSlicePropertyOriginalCenterY */ 0, /* UGSlicePropertyOriginalRadius */ {}, /* UGSlicePropertyTransform */ {}, /* UGSlicePropertyCumulativeTransform */ 0, /* UGSlicePropertyCenterOfRotationX */ 0, /* UGSlicePropertyCenterOfRotationY */ false, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateUpdate, /* UGSlicePropertyState */ 0, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 0, /* UGSlicePropertyOriginalCenterX */ 0, /* UGSlicePropertyOriginalCenterY */ 0, /* UGSlicePropertyOriginalRadius */ {}, /* UGSlicePropertyTransform */ {}, /* UGSlicePropertyCumulativeTransform */ 0, /* UGSlicePropertyCenterOfRotationX */ 0, /* UGSlicePropertyCenterOfRotationY */ false, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeTap, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 0, /* UGSlicePropertyOriginalCenterX */ 0, /* UGSlicePropertyOriginalCenterY */ 0, /* UGSlicePropertyOriginalRadius */ {}, /* UGSlicePropertyTransform */ {}, /* UGSlicePropertyCumulativeTransform */ 0, /* UGSlicePropertyCenterOfRotationX */ 0, /* UGSlicePropertyCenterOfRotationY */ false, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateEnd, /* UGSlicePropertyState */ UGGestureTypeTap, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 0, /* UGSlicePropertyOriginalCenterX */ 0, /* UGSlicePropertyOriginalCenterY */ 0, /* UGSlicePropertyOriginalRadius */ {}, /* UGSlicePropertyTransform */ {}, /* UGSlicePropertyCumulativeTransform */ 0, /* UGSlicePropertyCenterOfRotationX */ 0, /* UGSlicePropertyCenterOfRotationY */ true, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } return events; } } // namespace /* Now initialize the static test fixture member */ oif::grail::testing::Events AtomicTap::events_(ConstructEvents()); grail-3.1.0+16.04.20160125/test/integration/x11/hold-reject.cpp0000644000015600001650000001652612651522342024005 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file Hold Reject Test * * This test plays a one touch hold recording that does not match any * subscriptions. The touch should be rejected by grail before it ends. An X * subwindow selects for touch events, including ownership handling. It should * receive ownership of the touch before the touch physically ends. * * This is a regression test for lp:972012. */ #include #include #include #include #include #include "device.h" #include "recording.h" #include "x11/fixture.h" #include "oif/frame_x11.h" using namespace oif::grail::x11::testing; class HoldReject : public Test { public: HoldReject() : device_(NULL), subwin_(None), owned_(false), saw_end_(false), subscription_(NULL) {} protected: virtual void SetUp(); virtual void TearDown(); virtual bool FilterXIEvent(const XGenericEventCookie* xcookie); virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); void Subscribe(); UFDevice device_; Window subwin_; bool owned_; bool saw_end_; UGSubscription subscription_; }; void HoldReject::SetUp() { ASSERT_NO_FATAL_FAILURE(oif::grail::x11::testing::Test::SetUp()); Window root = DefaultRootWindow(Display()); unsigned int width; unsigned int height; { Window root_return; int x; int y; unsigned int border_width; unsigned int depth; ASSERT_NE(0, XGetGeometry(Display(), root, &root_return, &x, &y, &width, &height, &border_width, &depth)); } subwin_ = XCreateSimpleWindow(Display(), root, 0, 0, width, height, 0, 0, 0); ASSERT_NE(subwin_, None); ASSERT_NE(0, XMapWindow(Display(), subwin_)); XIEventMask mask; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = reinterpret_cast(calloc(mask.mask_len, sizeof(char))); mask.deviceid = XIAllMasterDevices; XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); XISetMask(mask.mask, XI_TouchOwnership); ASSERT_EQ(Success, XISelectEvents(Display(), subwin_, &mask, 1)); free(mask.mask); } void HoldReject::TearDown() { if (subscription_) { grail_subscription_deactivate(grail_handle(), subscription_); grail_subscription_delete(subscription_); } oif::grail::x11::testing::Test::TearDown(); } bool HoldReject::FilterXIEvent(const XGenericEventCookie* xcookie) { const XIDeviceEvent* device_event = reinterpret_cast(xcookie->data); const XITouchOwnershipEvent* ownership_event = reinterpret_cast(xcookie->data); switch (xcookie->evtype) { case XI_TouchBegin: if (device_event->event == subwin_) return true; break; case XI_TouchEnd: case XI_TouchUpdate: if (device_event->event == subwin_) { if (xcookie->evtype == XI_TouchEnd || device_event->flags & XITouchPendingEnd) { saw_end_ = true; if (!owned_) ADD_FAILURE() << "saw touch end before ownership"; } return true; } break; case XI_TouchOwnership: if (ownership_event->event == subwin_) { owned_ = true; return true; } break; } return false; } void HoldReject::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { UFDevice device; ASSERT_EQ(UFStatusSuccess, frame_event_get_property(event, UFEventPropertyDevice, &device)); const char* name; ASSERT_EQ(UFStatusSuccess, frame_device_get_property(device, UFDevicePropertyName, &name)); if (strcmp(name, "N-Trig MultiTouch (Virtual Test Device)") == 0) { EXPECT_EQ(NULL, device_); device_ = device; Subscribe(); } } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void HoldReject::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) grail_event_unref(event); EXPECT_EQ(UGStatusErrorNoEvent, status); } void HoldReject::Subscribe() { UGStatus status = grail_subscription_new(&subscription_); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(UGStatusSuccess, status); const UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(UGStatusSuccess, status); const UGGestureTypeMask mask = UGGestureTypeTap; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyMask, &mask); ASSERT_EQ(UGStatusSuccess, status); const unsigned int touches = 2; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesStart, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesMinimum, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_activate(grail_handle(), subscription_); ASSERT_EQ(UGStatusSuccess, status); } TEST_F(HoldReject, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/ntrig_dell_xt2/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(nullptr, device_) << "X server failed to initialize touchscreen"; oif::evemu::Recording begin( device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/1_begin.record"); oif::evemu::Recording end( device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/1_end.record"); begin.Play(); PumpEvents(); EXPECT_TRUE(owned_); end.Play(); PumpEvents(); EXPECT_TRUE(saw_end_); } grail-3.1.0+16.04.20160125/test/integration/x11/fixture.h0000644000015600001650000000355312651522342022734 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ #ifndef GRAIL_TEST_FIXTURE_H_ #define GRAIL_TEST_FIXTURE_H_ /* GTest must be included before Xlib.h */ #include #include #include #include "oif/frame.h" #include "oif/grail.h" namespace oif { namespace grail { namespace x11 { namespace testing { class Test : public xorg::testing::Test { public: virtual void SetUp(); virtual void TearDown(); protected: void PumpEvents(uint64_t timeout = 1000); virtual bool FilterXIEvent(const XGenericEventCookie* xcookie); virtual void ProcessFrameEvents() {}; virtual void ProcessGrailEvents() {}; UFHandle frame_handle() const { return frame_handle_; } UGHandle grail_handle() const { return grail_handle_; } private: void UpdateTime(const XSyncAlarmNotifyEvent&); void SetX11Timeout(); UFHandle frame_handle_; UGHandle grail_handle_; XSyncCounter server_time_counter_; XSyncAlarm alarm_; }; } // namespace testing } // namespace x11 } // namespace grail } // namespace oif #endif // GRAIL_TEST_FIXTURE_H_ grail-3.1.0+16.04.20160125/test/integration/x11/tap-touch-accept.cpp0000644000015600001650000001541712651522342024744 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file Tap Touch Accept Test * * This test plays a one touch tap recording, then checks that the tap was * recognized and the touch was not erroneously rejected and replayed to a * subwindow selecting for touch events. * * This is a regression test for lp:960438. */ #include #include #include #include #include #include "device.h" #include "recording.h" #include "x11/fixture.h" #include "oif/frame_x11.h" using namespace oif::grail::x11::testing; class TapTouchAccept : public Test { public: TapTouchAccept() : device_(NULL), saw_tap_(false), subscription_(NULL) {} protected: virtual void SetUp(); virtual bool FilterXIEvent(const XGenericEventCookie* xcookie); virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); void Subscribe(); UFDevice device_; Window subwin_; bool saw_tap_; UGSubscription subscription_; }; void TapTouchAccept::SetUp() { ASSERT_NO_FATAL_FAILURE(oif::grail::x11::testing::Test::SetUp()); Window root = DefaultRootWindow(Display()); unsigned int width; unsigned int height; { Window root_return; int x; int y; unsigned int border_width; unsigned int depth; ASSERT_NE(0, XGetGeometry(Display(), root, &root_return, &x, &y, &width, &height, &border_width, &depth)); } subwin_ = XCreateSimpleWindow(Display(), root, 0, 0, width, height, 0, 0, 0); ASSERT_NE(subwin_, None); ASSERT_NE(0, XMapWindow(Display(), subwin_)); XIEventMask mask; mask.mask_len = XIMaskLen(XI_LASTEVENT); mask.mask = reinterpret_cast(calloc(mask.mask_len, sizeof(char))); mask.deviceid = XIAllMasterDevices; XISetMask(mask.mask, XI_TouchBegin); XISetMask(mask.mask, XI_TouchUpdate); XISetMask(mask.mask, XI_TouchEnd); ASSERT_EQ(Success, XISelectEvents(Display(), subwin_, &mask, 1)); free(mask.mask); } bool TapTouchAccept::FilterXIEvent(const XGenericEventCookie* xcookie) { if (xcookie->evtype == XI_TouchBegin) { const XIDeviceEvent* device_event = reinterpret_cast(xcookie->data); if (device_event->event == subwin_) { ADD_FAILURE() << "saw touch selection event"; return true; } } return false; } void TapTouchAccept::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { UFDevice device; ASSERT_EQ(UFStatusSuccess, frame_event_get_property(event, UFEventPropertyDevice, &device)); const char* name; ASSERT_EQ(UFStatusSuccess, frame_device_get_property(device, UFDevicePropertyName, &name)); if (strcmp(name, "N-Trig MultiTouch (Virtual Test Device)") == 0) { EXPECT_EQ(NULL, device_); device_ = device; Subscribe(); } } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void TapTouchAccept::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(event)); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); if (!saw_tap_ && grail_slice_get_recognized(slice) & UGGestureTypeTap) { saw_tap_ = true; EXPECT_EQ(UGStatusSuccess, grail_accept_gesture(grail_handle(), grail_slice_get_id(slice))); } grail_event_unref(event); } EXPECT_EQ(UGStatusErrorNoEvent, status); } void TapTouchAccept::Subscribe() { UGStatus status = grail_subscription_new(&subscription_); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(UGStatusSuccess, status); const UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(UGStatusSuccess, status); const UGGestureTypeMask mask = UGGestureTypeTap; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyMask, &mask); ASSERT_EQ(UGStatusSuccess, status); const unsigned int touches = 1; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesStart, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyTouchesMinimum, &touches); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_activate(grail_handle(), subscription_); ASSERT_EQ(UGStatusSuccess, status); } TEST_F(TapTouchAccept, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/ntrig_dell_xt2/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(nullptr, device_) << "X server failed to initialize touchscreen"; oif::evemu::Recording recording(device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/1_tap.record"); recording.Play(); PumpEvents(); EXPECT_TRUE(saw_tap_); grail_subscription_deactivate(grail_handle(), subscription_); grail_subscription_delete(subscription_); } grail-3.1.0+16.04.20160125/test/integration/x11/twodrag.cpp0000644000015600001650000003005012651522342023240 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file Two-Drag Test * * This test plays a two-touch drag and checks that the appropriate events come * out of grail. All the gesture slice properties are verified except for the * associated frame, which would be non-trivial to verify. The first event, the * first event recognized as a drag, and the last two events are checked. The * rest are skipped. */ #include #include #include #include #include #include "device.h" #include "events.h" #include "recording.h" #include "x11/fixture.h" #include "oif/frame_x11.h" using namespace oif::grail::x11::testing; class TwoDrag : public Test { public: TwoDrag() : device_(NULL), step_(0), subscription_(NULL) {} protected: static oif::grail::testing::Events events_; virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); void Subscribe(); void CheckSlice(UGSlice); UFDevice device_; unsigned int step_; UGSubscription subscription_; }; void TwoDrag::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { UFDevice device; ASSERT_EQ(UFStatusSuccess, frame_event_get_property(event, UFEventPropertyDevice, &device)); const char* name; ASSERT_EQ(UFStatusSuccess, frame_device_get_property(device, UFDevicePropertyName, &name)); if (strcmp(name, "N-Trig MultiTouch (Virtual Test Device)") == 0) { EXPECT_EQ(NULL, device_); device_ = device; Subscribe(); } } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void TwoDrag::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(event)); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); CheckSlice(slice); grail_event_unref(event); } EXPECT_EQ(UGStatusErrorNoEvent, status); } void TwoDrag::Subscribe() { UGStatus status = grail_subscription_new(&subscription_); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(UGStatusSuccess, status); const UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(UGStatusSuccess, status); const UGGestureTypeMask mask = UGGestureTypeDrag; status = grail_subscription_set_property(subscription_, UGSubscriptionPropertyMask, &mask); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_activate(grail_handle(), subscription_); ASSERT_EQ(UGStatusSuccess, status); } void TwoDrag::CheckSlice(UGSlice slice) { ASSERT_LT(step_, events_.size()) << "Received too many frame events"; /* Ensure we got a device addition event first */ if (step_ == 0) EXPECT_NE(nullptr, device_); if (!events_[step_].skip) { EXPECT_EQ(events_[step_].id, grail_slice_get_id(slice)) << "step " << step_; EXPECT_EQ(events_[step_].state, grail_slice_get_state(slice)) << "step " << step_; EXPECT_EQ(subscription_, grail_slice_get_subscription(slice)) << "step " << step_; EXPECT_EQ(events_[step_].recognized, grail_slice_get_recognized(slice)) << "step " << step_; EXPECT_EQ(events_[step_].num_touches, grail_slice_get_num_touches(slice)) << "step " << step_; EXPECT_NEAR(events_[step_].original_center_x, grail_slice_get_original_center_x(slice), 1) << "step " << step_; EXPECT_NEAR(events_[step_].original_center_y, grail_slice_get_original_center_y(slice), 1) << "step " << step_; EXPECT_NEAR(events_[step_].original_radius, grail_slice_get_original_radius(slice), 1) << "step " << step_; EXPECT_NEAR(events_[step_].center_of_rotation_x, grail_slice_get_center_of_rotation_x(slice), 1) << "step " << step_; EXPECT_NEAR(events_[step_].center_of_rotation_y, grail_slice_get_center_of_rotation_y(slice), 1) << "step " << step_; UGTransform *transform = grail_slice_get_transform(slice); for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) EXPECT_NEAR(events_[step_].transform[i][j], (*transform)[i][j], fabs(events_[step_].transform[i][j]) / 500) << "step " << step_ << ", i: " << i << ", j: " << j; transform = grail_slice_get_cumulative_transform(slice); for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) EXPECT_NEAR(events_[step_].cumulative_transform[i][j], (*transform)[i][j], fabs(events_[step_].cumulative_transform[i][j]) / 500) << "step " << step_ << ", i: " << i << ", j: " << j; EXPECT_EQ(events_[step_].construction_finished, grail_slice_get_construction_finished(slice)) << "step " << step_; } if (step_ == 0) EXPECT_EQ(UGStatusSuccess, grail_accept_gesture(grail_handle(), 0)); ++step_; } TEST_F(TwoDrag, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/ntrig_dell_xt2/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(nullptr, device_) << "X server failed to initialize touchscreen"; oif::evemu::Recording recording(device, TEST_ROOT_DIR "recordings/ntrig_dell_xt2/2_drag.record"); recording.Play(); PumpEvents(); EXPECT_EQ(events_.size(), step_) << "Failed to receive all frame events for " "touchscreen"; grail_subscription_deactivate(grail_handle(), subscription_); grail_subscription_delete(subscription_); } /* Construct the expected events */ namespace { using namespace oif::grail::testing; const Events ConstructEvents() { Events events; { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateBegin, /* UGSlicePropertyState */ 0, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 506.98666, /* UGSlicePropertyOriginalCenterX */ 189.12, /* UGSlicePropertyOriginalCenterY */ 59.668739, /* UGSlicePropertyOriginalRadius */ {{ 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 }}, /* UGSlicePropertyTransform */ {{ 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 }}, /* UGSlicePropertyCumulativeTransform */ 0, /* UGSlicePropertyCenterOfRotationX */ 0, /* UGSlicePropertyCenterOfRotationY */ false, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } for (int i = 1; i <= 18; ++i) { Slice slice = { true, /* skip */ }; events.push_back(slice); } { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeDrag, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 506.98666, /* UGSlicePropertyOriginalCenterX */ 189.12, /* UGSlicePropertyOriginalCenterY */ 59.668739, /* UGSlicePropertyOriginalRadius */ {{ 0.956550, -0.16281828, -0.586670 }, { 0.16281828, 0.956550, 10.773346 }, { 0, 0, 1 }}, /* UGSlicePropertyTransform */ {{ 1.041154, 0.00024301754, -7.466675 }, { -0.00024301754, 1.041154, 80.426697 }, { 0, 0, 1 }}, /* UGSlicePropertyCumulativeTransform */ 501.985321, /* UGSlicePropertyCenterOfRotationX */ 265.286041, /* UGSlicePropertyCenterOfRotationY */ true, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } for (int i = 20; i <= 77; ++i) { Slice slice = { true, /* skip */ }; events.push_back(slice); } { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeDrag, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 506.98666, /* UGSlicePropertyOriginalCenterX */ 189.12, /* UGSlicePropertyOriginalCenterY */ 59.668739, /* UGSlicePropertyOriginalRadius */ {{ 1.001168, 0.012028768, 0 }, { -0.012028768, 1.001168, 0.746643 }, { 0, 0, 1 }}, /* UGSlicePropertyTransform */ {{ 1.034080, 0.073854253, -12.853333 }, { -0.073854253, 1.034080, 397.119995 }, { 0, 0, 1 }}, /* UGSlicePropertyCumulativeTransform */ 494.027740, /* UGSlicePropertyCenterOfRotationX */ 586.396729, /* UGSlicePropertyCenterOfRotationY */ true, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeDrag, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 506.98666, /* UGSlicePropertyOriginalCenterX */ 189.12, /* UGSlicePropertyOriginalCenterY */ 59.668739, /* UGSlicePropertyOriginalRadius */ {{ 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 }}, /* UGSlicePropertyTransform */ {{ 1.034080, 0.073854253, -12.853333 }, { -0.073854253, 1.034080, 397.119995 }, { 0, 0, 1 }}, /* UGSlicePropertyCumulativeTransform */ 0, /* UGSlicePropertyCenterOfRotationX */ 0, /* UGSlicePropertyCenterOfRotationY */ true, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } { Slice slice = { false, /* skip */ 0, /* UGSlicePropertyID */ UGGestureStateEnd, /* UGSlicePropertyState */ UGGestureTypeDrag, /* UGSlicePropertyRecognized */ 2, /* UGSlicePropertyNumTouches */ 506.98666, /* UGSlicePropertyOriginalCenterX */ 189.12, /* UGSlicePropertyOriginalCenterY */ 59.668739, /* UGSlicePropertyOriginalRadius */ {{ 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 }}, /* UGSlicePropertyTransform */ {{ 1.034080, 0.073854253, -12.853333 }, { -0.073854253, 1.034080, 397.119995 }, { 0, 0, 1 }}, /* UGSlicePropertyCumulativeTransform */ 0, /* UGSlicePropertyCenterOfRotationX */ 0, /* UGSlicePropertyCenterOfRotationY */ true, /* UGSlicePropertyConstructionFinished */ }; events.push_back(slice); } return events; } } // namespace /* Now initialize the static test fixture member */ oif::grail::testing::Events TwoDrag::events_(ConstructEvents()); grail-3.1.0+16.04.20160125/test/integration/x11/no-tap-after-drag.cpp0000644000015600001650000001610212651522342025003 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file "No Tap after a Drag" Test * * This test plays a four-touches' drag and checks that no Tap gesture gets * recognized. Two subscriptions are used: A 4-touches drag and and a * 4-touches tap. Also two test runs are done: one using atomic gestures rules and * another using regular gestures rules. * * It's a regression test for https://bugs.launchpad.net/grail/+bug/944901 */ #include #include #include // evemu wrappers #include "device.h" #include "recording.h" #include "x11/fixture.h" class NoTapAfterDrag : public oif::grail::x11::testing::Test { public: NoTapAfterDrag() : device_(nullptr), use_atomic_gestures_(0) {} void SetupEvEmuDeviceAndRun(); protected: virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); // Holds the device we are interested in getting input from. // More specifically, the fake one we will create via evemu. UFDevice device_; // Value to be set on the property UGSubscriptionPropertyAtomicGestures // for the subscriptions created int use_atomic_gestures_; std::set subscriptions_; private: void ProcessFrameEventDeviceAdded(UFEvent event); void CreateSubscriptions(); void CreateSubscription(unsigned int num_touches, UGGestureTypeMask gesture_mask); void CheckSlice(UGSlice slice); }; void NoTapAfterDrag::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { ProcessFrameEventDeviceAdded(event); } frame_event_unref(event); } EXPECT_EQ(status, UFStatusErrorNoEvent); } void NoTapAfterDrag::ProcessFrameEventDeviceAdded(UFEvent event) { UFStatus status; UFDevice device; const char* name; status = frame_event_get_property(event, UFEventPropertyDevice, &device); ASSERT_EQ(status, UFStatusSuccess); status = frame_device_get_property(device, UFDevicePropertyName, &name); ASSERT_EQ(status, UFStatusSuccess); if (strcmp(name, "Apple Magic Trackpad (Virtual Test Device)") == 0) { EXPECT_EQ(device_, nullptr); device_ = device; CreateSubscriptions(); } } void NoTapAfterDrag::CreateSubscriptions() { CreateSubscription(4, UGGestureTypeDrag); CreateSubscription(4, UGGestureTypeTap); } void NoTapAfterDrag::CreateSubscription(unsigned int num_touches, UGGestureTypeMask gesture_mask) { UGSubscription subscription; UGStatus status; status = grail_subscription_new(&subscription); ASSERT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyDevice, &device_); ASSERT_EQ(status, UFStatusSuccess); UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyWindow, &window_id); ASSERT_EQ(status, UFStatusSuccess); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesStart, &num_touches); ASSERT_EQ(status, UFStatusSuccess); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMaximum, &num_touches); ASSERT_EQ(status, UFStatusSuccess); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMinimum, &num_touches); ASSERT_EQ(status, UFStatusSuccess); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyMask, &gesture_mask); ASSERT_EQ(status, UFStatusSuccess); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyAtomicGestures, &use_atomic_gestures_); ASSERT_EQ(status, UFStatusSuccess); status = grail_subscription_activate(grail_handle(), subscription); ASSERT_EQ(status, UFStatusSuccess); subscriptions_.insert(subscription); } void NoTapAfterDrag::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(grail_event_get_type(event), UGEventTypeSlice); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(status, UGStatusSuccess); CheckSlice(slice); grail_event_unref(event); } EXPECT_EQ(status, UGStatusErrorNoEvent); } void NoTapAfterDrag::CheckSlice(UGSlice slice) { UGGestureTypeMask mask; mask = grail_slice_get_recognized(slice); // The main point of this test: // Check that a tap gesture never gets recognized. EXPECT_EQ(mask & UGGestureTypeTap, 0) << "A bobus tap gesture has been recognized out of an actual drag gesture!"; if (!use_atomic_gestures_ && grail_slice_get_state(slice) == UGGestureStateEnd) grail_accept_gesture(grail_handle(), grail_slice_get_id(slice)); } void NoTapAfterDrag::SetupEvEmuDeviceAndRun() { oif::evemu::Device device(TEST_ROOT_DIR "recordings/apple_magic_trackpad/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(device_, nullptr) << "X server failed to initialize trackpad"; oif::evemu::Recording recording( device, TEST_ROOT_DIR "recordings/apple_magic_trackpad/4_drag.record"); recording.Play(); PumpEvents(); for (UGSubscription subscription : subscriptions_) { grail_subscription_deactivate(grail_handle(), subscription); grail_subscription_delete(subscription); } } TEST_F(NoTapAfterDrag, UsingAtomicGestures) { use_atomic_gestures_ = 1; SetupEvEmuDeviceAndRun(); } TEST_F(NoTapAfterDrag, Regular) { use_atomic_gestures_ = 0; SetupEvEmuDeviceAndRun(); } grail-3.1.0+16.04.20160125/test/integration/x11/parallel-atomic-gestures.cpp0000644000015600001650000003027412651522342026506 0ustar pbuserpbgroup00000000000000/***************************************************************************** * * grail - Gesture Recognition And Instantiation Library * * Copyright (C) 2012 Canonical Ltd. * * This program is free software: you can redistribute it and/or modify it * under the terms of version 3 of the GNU General Public License as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . * ****************************************************************************/ /** * @internal * @file "Parallel Atomic Gestures" Test * * This test plays a 3 touch points drag followed by the appearance of a 4th * touch point and then all 4 touch points are lifted at once. * * There are three subscriptions: * (A) an atomic 3-touches Drag * (B) an atomic 3-touches Touch * (C) an atomic 3-touches Pinch * * What must happen is the following: * In the beginning, gesture (B) will be accepted. Then after a short while * gesture (A) will also be accepted. Gesture (C) will time out and be * rejected. Thus there should be no slice coming from (C) at all. * The appearance of the fourth touch point will cause the rejection of * the accepted gestures (A) and (B). */ #include #include #include /* evemu wrappers */ #include "device.h" #include "recording.h" #include "slice-checker.h" #include "x11/fixture.h" using namespace oif::grail::testing; #define DELETE_SUBSCRIPTION(sub) \ grail_subscription_deactivate(grail_handle(), sub); \ grail_subscription_delete(sub); \ sub = nullptr; class ParallelAtomicGestures : public oif::grail::x11::testing::Test { public: ParallelAtomicGestures(); protected: virtual void ProcessFrameEvents(); virtual void ProcessGrailEvents(); /* Holds the device we are interested in getting input from. More specifically, the fake one we will create via evemu. */ UFDevice device_; SliceChecker slice_checker_; void DeleteSubscriptions(); private: void ProcessFrameEventDeviceAdded(UFEvent event); void CreateSubscriptions(); void ConstructExpectedSlices(); UGSubscription CreateSubscription(unsigned int num_touches, UGGestureTypeMask gesture_mask); UGSubscription drag_sub_; UGSubscription touch_sub_; UGSubscription pinch_sub_; bool no_slices_checked_; }; ParallelAtomicGestures::ParallelAtomicGestures() : device_(nullptr), drag_sub_(nullptr), touch_sub_(nullptr), pinch_sub_(nullptr), no_slices_checked_(true) { } void ParallelAtomicGestures::ProcessFrameEvents() { UFEvent event; UFStatus status; while ((status = frame_get_event(frame_handle(), &event)) == UFStatusSuccess) { grail_process_frame_event(grail_handle(), event); if (frame_event_get_type(event) == UFEventTypeDeviceAdded) { ProcessFrameEventDeviceAdded(event); } frame_event_unref(event); } EXPECT_EQ(UFStatusErrorNoEvent, status); } void ParallelAtomicGestures::ProcessFrameEventDeviceAdded(UFEvent event) { UFStatus status; UFDevice device; const char* name; status = frame_event_get_property(event, UFEventPropertyDevice, &device); ASSERT_EQ(UFStatusSuccess, status); status = frame_device_get_property(device, UFDevicePropertyName, &name); ASSERT_EQ(UFStatusSuccess, status); if (strcmp(name, "Apple Magic Trackpad (Virtual Test Device)") == 0) { EXPECT_EQ(nullptr, device_); device_ = device; CreateSubscriptions(); ConstructExpectedSlices(); } } void ParallelAtomicGestures::CreateSubscriptions() { drag_sub_ = CreateSubscription(3, UGGestureTypeDrag); ASSERT_NE(drag_sub_, nullptr); touch_sub_ = CreateSubscription(3, UGGestureTypeTouch); ASSERT_NE(touch_sub_, nullptr); pinch_sub_ = CreateSubscription(3, UGGestureTypePinch); ASSERT_NE(pinch_sub_, nullptr); } void ParallelAtomicGestures::DeleteSubscriptions() { DELETE_SUBSCRIPTION(drag_sub_); DELETE_SUBSCRIPTION(touch_sub_); DELETE_SUBSCRIPTION(pinch_sub_); } UGSubscription ParallelAtomicGestures::CreateSubscription( unsigned int num_touches, UGGestureTypeMask gesture_mask) { UGSubscription subscription; UGStatus status; status = grail_subscription_new(&subscription); EXPECT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyDevice, &device_); EXPECT_EQ(UGStatusSuccess, status); if (status != UGStatusSuccess) return 0; UFWindowId window_id = frame_x11_create_window_id(DefaultRootWindow(Display())); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyWindow, &window_id); EXPECT_EQ(UGStatusSuccess, status); status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesStart, &num_touches); EXPECT_EQ(UGStatusSuccess, status); if (status != UGStatusSuccess) return 0; status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMaximum, &num_touches); EXPECT_EQ(UGStatusSuccess, status); if (status != UGStatusSuccess) return 0; status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMinimum, &num_touches); EXPECT_EQ(UGStatusSuccess, status); if (status != UGStatusSuccess) return 0; status = grail_subscription_set_property(subscription, UGSubscriptionPropertyMask, &gesture_mask); EXPECT_EQ(UGStatusSuccess, status); if (status != UGStatusSuccess) return 0; int use_atomic_gestures = 1; status = grail_subscription_set_property(subscription, UGSubscriptionPropertyAtomicGestures, &use_atomic_gestures); EXPECT_EQ(UFStatusSuccess, status); if (status != UGStatusSuccess) return 0; status = grail_subscription_activate(grail_handle(), subscription); EXPECT_EQ(UGStatusSuccess, status); if (status != UGStatusSuccess) return 0; return subscription; } void ParallelAtomicGestures::ProcessGrailEvents() { UGEvent event; UGStatus status; while ((status = grail_get_event(grail_handle(), &event)) == UGStatusSuccess) { ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(event)); UGSlice slice; status = grail_event_get_property(event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); /* Ensure we got a device addition event first */ if (no_slices_checked_) { no_slices_checked_ = false; EXPECT_NE(nullptr, device_); } slice_checker_.CheckSlice(slice); grail_event_unref(event); } EXPECT_EQ(UGStatusErrorNoEvent, status); } void ParallelAtomicGestures::ConstructExpectedSlices() { { ExpectSlice *state = new ExpectSlice; state->expected_slice = { UGGestureStateBegin, /* UGSlicePropertyState */ UGGestureTypeTouch, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ false, /* UGSlicePropertyConstructionFinished */ touch_sub_ /* grail_slice_get_subscription */ }; slice_checker_.AppendState(std::unique_ptr(state)); } { ExpectSlices *state = new ExpectSlices; state->expected_slice = { UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeTouch, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ false, /* UGSlicePropertyConstructionFinished */ touch_sub_ /* grail_slice_get_subscription */ }; state->SetAverageCount(10); slice_checker_.AppendState(std::unique_ptr(state)); } { ExpectSlices *state = new ExpectSlices; state->expected_slice = { UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeTouch, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ true, /* UGSlicePropertyConstructionFinished */ touch_sub_ /* grail_slice_get_subscription */ }; state->SetAverageCount(23); slice_checker_.AppendState(std::unique_ptr(state)); } { ExpectSlice *state = new ExpectSlice; state->expected_slice = { UGGestureStateBegin, /* UGSlicePropertyState */ 0, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ false, /* UGSlicePropertyConstructionFinished */ drag_sub_ /* grail_slice_get_subscription */ }; slice_checker_.AppendState(std::unique_ptr(state)); } { ExpectSlices *state = new ExpectSlices; state->expected_slice = { UGGestureStateUpdate, /* UGSlicePropertyState */ 0, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ false, /* UGSlicePropertyConstructionFinished */ drag_sub_ /* grail_slice_get_subscription */ }; state->SetAverageCount(31); slice_checker_.AppendState(std::unique_ptr(state)); } { ExpectSlices *state = new ExpectSlices; state->expected_slice = { UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeDrag, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ false, /* UGSlicePropertyConstructionFinished */ drag_sub_ /* grail_slice_get_subscription */ }; state->min_count = 0; /* may or may not happen */ state->max_count = 1; slice_checker_.AppendState(std::unique_ptr(state)); } { ExpectParallelSlices *state = new ExpectParallelSlices; ExpectedSlice slice; slice = { UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeDrag, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ true, /* UGSlicePropertyConstructionFinished */ drag_sub_ /* grail_slice_get_subscription */ }; state->expected_slices.push_back(slice); slice = { UGGestureStateUpdate, /* UGSlicePropertyState */ UGGestureTypeTouch, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ true, /* UGSlicePropertyConstructionFinished */ touch_sub_ /* grail_slice_get_subscription */ }; state->expected_slices.push_back(slice); state->SetAverageCount(67); slice_checker_.AppendState(std::unique_ptr(state)); } { ExpectParallelSlices *state = new ExpectParallelSlices; ExpectedSlice slice; slice = { UGGestureStateEnd, /* UGSlicePropertyState */ UGGestureTypeDrag, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ true, /* UGSlicePropertyConstructionFinished */ drag_sub_ /* grail_slice_get_subscription */ }; state->expected_slices.push_back(slice); slice = { UGGestureStateEnd, /* UGSlicePropertyState */ UGGestureTypeTouch, /* UGSlicePropertyRecognized */ 3, /* UGSlicePropertyNumTouches */ true, /* UGSlicePropertyConstructionFinished */ touch_sub_ /* grail_slice_get_subscription */ }; state->expected_slices.push_back(slice); state->min_count = state->max_count = 1; slice_checker_.AppendState(std::unique_ptr(state)); } } TEST_F(ParallelAtomicGestures, Recording) { oif::evemu::Device device(TEST_ROOT_DIR "recordings/apple_magic_trackpad/device.prop"); /* Pump once to ensure the X server has initialized the device */ PumpEvents(); ASSERT_NE(device_, nullptr) << "X server failed to initialize trackpad"; oif::evemu::Recording recording( device, TEST_ROOT_DIR "recordings/apple_magic_trackpad/3_drag_ended_by_4th_touch.record"); recording.Play(); PumpEvents(); DeleteSubscriptions(); slice_checker_.CheckAllExpectedSlicesReceived(); } grail-3.1.0+16.04.20160125/test/regular/0000755000015600001650000000000012651522501017571 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/test/regular/test-c-compile.c0000644000015600001650000000041112651522342022561 0ustar pbuserpbgroup00000000000000/* * Test that compile+link works with a C compiler. */ #include #include int main(int argc, char **argv) { void *dummy = grail_new; if (!dummy) { printf("This really should not be happening.\n"); return 1; } return 0; } grail-3.1.0+16.04.20160125/test/regular/intermittent_3touch.cpp0000644000015600001650000000374612651522342024325 0ustar pbuserpbgroup00000000000000#include "grail-fixture.h" class Intermittent3TouchTest : public GrailTest { }; /* Simulate the following situation: The user lays 3 fingers over a touchscreen or trackpad and the device momentarily (just for a couple of milliseconds) loses contact with one of the fingers. That will cause the touch for that finger to end and a new touch to be created for that same finger. Regression test for bug https://bugs.launchpad.net/grail/+bug/1023397 */ TEST_F(Intermittent3TouchTest, Test) { UGStatus status; fake_window_id = 321; status = grail_new(&grail_handle); ASSERT_EQ(UGStatusSuccess, status); SendDeviceAddedEvent(time); UGSubscription subscription = CreateSubscription(3, UGGestureTypeTouch, fake_window_id); if (!subscription) return; time = 20531903; BeginTouch(18 /*touch id*/); time = 20531905; GiveTouchOwnership(18); time = 20531909; BeginTouch(19); time = 20531910; GiveTouchOwnership(19); time = 20531909; BeginTouch(20); time = 20531912; GiveTouchOwnership(20); ProcessGrailEvents(); /* Expected outcome: gesture(id=0, touches={18,19,20}) begins */ ASSERT_EQ(1, grail_gestures.size()); ASSERT_EQ(3, grail_gestures.front().touches.size()); time = 20531961; EndTouch(18); time = 20531967; BeginTouch(21); time = 20531969; GiveTouchOwnership(21); ProcessGrailEvents(); /* Expected outcome: gesture(id=0, touches={18,19,20}) ends gesture(id=1, touches={19,20,21}) begins Actual outcome for the bug found: gesture(id=0, touches={18,19,20}) ends gesture(id=1, touches={19,20,21}) begins gesture(id=2, touches={19,20,21}) begins */ ASSERT_EQ(UGGestureStateEnd, GestureWithId(0)->state); ASSERT_EQ(2, grail_gestures.size()); GrailGesture *gesture = GestureWithId(1); ASSERT_EQ(3, gesture->touches.size()); ASSERT_TRUE(gesture->HasTouch(19)); ASSERT_TRUE(gesture->HasTouch(20)); ASSERT_TRUE(gesture->HasTouch(21)); grail_subscription_delete(subscription); } grail-3.1.0+16.04.20160125/test/regular/grail.cpp0000644000015600001650000000422512651522342021401 0ustar pbuserpbgroup00000000000000#include #include "oif/grail.h" TEST(grail, grail) { UGHandle grail_handle = NULL; ASSERT_EQ(UGStatusSuccess, grail_new(&grail_handle)); int fd = grail_get_fd(grail_handle); RecordProperty("fd", fd); UGEvent event = NULL; EXPECT_EQ(UGStatusErrorNoEvent, grail_get_event(grail_handle, &event)); EXPECT_EQ( UGStatusErrorInvalidGesture, grail_accept_gesture(grail_handle, UGGestureTypeDrag | UGGestureTypePinch | UGGestureTypeRotate | UGGestureTypeTap)); EXPECT_EQ(UGStatusErrorInvalidGesture, grail_accept_gesture(grail_handle, 0)); UGSubscription subscription; ASSERT_EQ(UGStatusSuccess, grail_subscription_new(&subscription)); unsigned int gesture_mask = UGGestureTypeDrag | UGGestureTypePinch | UGGestureTypeRotate | UGGestureTypeTap; EXPECT_EQ( UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyMask, &gesture_mask)); unsigned int min_touches = 2; EXPECT_EQ( UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMinimum, &min_touches)); unsigned int max_touches = 2; EXPECT_EQ( UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMaximum, &max_touches)); unsigned int touches_start = 2; EXPECT_EQ( UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesStart, &touches_start)); /* FIXME: Need to create a device and set it in the subscription */ /*ASSERT_EQ(UGStatusSuccess, grail_subscription_activate(grail_handle, subscription)); */ /* FIXME: Need to generate frame events and send them through */ /*EXPECT_EQ(UGStatusSuccess, grail_accept_gesture(grail_handle, 0));*/ grail_subscription_delete(subscription); grail_delete(grail_handle); } grail-3.1.0+16.04.20160125/test/regular/pending-end.cpp0000644000015600001650000000377612651522342022505 0ustar pbuserpbgroup00000000000000#include "grail-fixture.h" /* Checks that once a touch whose end is pending gets finally owned its slices are sent to the client. Regression test for https://bugs.launchpad.net/grail/+bug/1026962 */ TEST_F(GrailTest, PendingEndImpedesGestures) { UGStatus status; fake_window_id = 321; status = grail_new(&grail_handle); ASSERT_EQ(UGStatusSuccess, status); SendDeviceAddedEvent(time); UGSubscription sub_3touch = CreateSubscription(3, UGGestureTypeTouch | UGGestureTypeDrag | UGGestureTypePinch, fake_window_id); ASSERT_NE(nullptr, sub_3touch); time = 13688369; BeginTouchWindowCoords(1 /* touch id */, 30.0f /* x */, 0.0f /* y */); time = 13688369; BeginTouchWindowCoords(2, 40.0f, 0.0f); time = 13688372; GiveTouchOwnership(2); time = 13688369; BeginTouchWindowCoords(3, 50.0f, 0.0f); time = 13688373; GiveTouchOwnership(3); time = 13688430; grail_update_time(grail_handle, time); /* Perform a 4 fingers drag. */ for (int i=1; i<=4; ++i) { time += 100; UFBackendFrame frame = frame_backend_frame_create_next(previous_frame_); frame_backend_frame_set_device(frame, device_); frame_backend_frame_set_window_id(frame, fake_window_id); SetTouchWindowCoords(frame, 1, 30.0f, i*10.0f); SetTouchWindowCoords(frame, 2, 40.0f, i*10.0f); SetTouchWindowCoords(frame, 3, 50.0f, i*10.0f); SendFrameEvent(time, frame); } time = 13688877; SendTouchPendingEnd(1); ProcessGrailEvents(); // no gesture slices yet since not all touches are owned ASSERT_EQ(0, grail_gestures.size()); time = 13688878; GiveTouchOwnership(1); EndTouch(1); ProcessGrailEvents(); // Gesture slices should have been sent to the client by now ASSERT_EQ(1, grail_gestures.size()); // Gesture must have ended since it cannot continue with only two touches. ASSERT_EQ(UGGestureStateEnd, grail_gestures.front().state); EndTouch(2); time = 13688880; EndTouch(3); ProcessGrailEvents(); grail_subscription_delete(sub_3touch); } grail-3.1.0+16.04.20160125/test/regular/Makefile.am0000644000015600001650000000225312651522342021632 0ustar pbuserpbgroup00000000000000test_targets = test-c-compile test-cxx-compile if HAVE_GTEST test_targets += check-regular endif TESTS = $(test_targets) check_PROGRAMS = $(test_targets) test_c_compile_SOURCES = test-c-compile.c test_c_compile_LDADD = \ $(top_builddir)/src/libgrail.la \ $(FRAME_LIBS) test_c_compile_CFLAGS = \ -I$(top_srcdir)/include \ $(FRAME_CFLAGS) test_cxx_compile_SOURCES = test-cxx-compile.cpp test_cxx_compile_LDADD = \ $(top_builddir)/src/libgrail.la \ $(FRAME_LIBS) test_cxx_compile_CPPFLAGS = \ -I$(top_srcdir)/include \ $(FRAME_CFLAGS) check_regular_SOURCES = \ grail.cpp \ grail-fixture.cpp \ grail-fixture.h \ intermittent_3touch.cpp \ one-touch-gest-finished.cpp \ pending-end.cpp \ still-gest-finishes.cpp \ subscription.cpp # # Link against the (non-distributed) static lib to pick up the # internal symbols. # check_regular_LDADD = \ $(top_builddir)/src/.libs/libgrail.a \ $(top_builddir)/test/gtest/libgtest_grail.a \ $(COVERAGE_LIBS) \ $(GTEST_LIBS) \ $(FRAME_LIBS) check_regular_CPPFLAGS = \ --std=c++0x \ -I$(top_srcdir) \ -I$(top_srcdir)/include \ $(WARNING_CPPFLAGS) \ $(GTEST_CPPFLAGS) \ $(FRAME_CFLAGS) check_regular_CFLAGS = \ $(COVERAGE_CFLAGS) grail-3.1.0+16.04.20160125/test/regular/test-cxx-compile.cpp0000644000015600001650000000042212651522342023503 0ustar pbuserpbgroup00000000000000/* * Test that compile+link works with a C++ compiler. */ #include #include int main(int argc, char **argv) { void *dummy = (void*)grail_new; if (!dummy) { printf("This really should not be happening.\n"); return 1; } return 0; } grail-3.1.0+16.04.20160125/test/regular/one-touch-gest-finished.cpp0000644000015600001650000000516012651522342024732 0ustar pbuserpbgroup00000000000000#include "grail-fixture.h" class SingleTouchGestureTest : public GrailTest { }; /* Regression test for bug https://bugs.launchpad.net/grail/+bug/1020315 */ TEST_F(SingleTouchGestureTest, QuickTapEndsWithConstructionFinished) { UGStatus status; fake_window_id = 321; uint64_t time = 1234; status = grail_new(&grail_handle); ASSERT_EQ(UGStatusSuccess, status); SendDeviceAddedEvent(time); UGSubscription subscription = CreateSubscription(1, UGGestureTypeTouch, fake_window_id); if (!subscription) return; time += 10; BeginTouch(1); time += 10; GiveTouchOwnership(1); // There should now be two grail events, corresponding to the frame // event that were sent, waiting to be processed. // Check first event. A gesture begin. UGEvent grail_event; status = grail_get_event(grail_handle, &grail_event); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(grail_event)); UGSlice slice; status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGGestureStateBegin, grail_slice_get_state(slice)); ASSERT_FALSE(grail_slice_get_construction_finished(slice)); grail_event_unref(grail_event); // Check the second event. A gesture update. status = grail_get_event(grail_handle, &grail_event); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(grail_event)); status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGGestureStateUpdate, grail_slice_get_state(slice)); ASSERT_FALSE(grail_slice_get_construction_finished(slice)); grail_event_unref(grail_event); // now end the touch time += 10; EndTouch(1); // An end event should come and its "construction finished" property should be true UGStatus get_event_status; do { get_event_status = grail_get_event(grail_handle, &grail_event); if (get_event_status != UGStatusSuccess) break; ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(grail_event)); status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); // We ignore any intermediate updates if (grail_slice_get_state(slice) == UGGestureStateUpdate) continue; ASSERT_EQ(UGGestureStateEnd, grail_slice_get_state(slice)); ASSERT_TRUE(grail_slice_get_construction_finished(slice)); grail_event_unref(grail_event); } while (get_event_status == UGStatusSuccess); ASSERT_EQ(UGStatusErrorNoEvent, get_event_status); grail_subscription_delete(subscription); } grail-3.1.0+16.04.20160125/test/regular/grail-fixture.cpp0000644000015600001650000003065312651522342023071 0ustar pbuserpbgroup00000000000000#include "grail-fixture.h" void GrailTest::SendFrameEvent(uint64_t time, UFBackendFrame frame) { UFEvent event = frame_event_new(); frame_event_set_type(event, UFEventTypeFrame); frame_event_set_frame(event, frame); frame_event_set_time(event, time); grail_process_frame_event(grail_handle, event); frame_event_unref(event); event = nullptr; if (previous_frame_) frame_backend_frame_delete(previous_frame_); previous_frame_ = frame; } void GrailTest::SendDeviceAddedEvent(uint64_t time) { UFEvent event = frame_event_new(); frame_event_set_type(event, UFEventTypeDeviceAdded); frame_event_set_time(event, time); frame_event_set_device(event, device_); grail_process_frame_event(grail_handle, event); frame_event_unref(event); event = nullptr; } void GrailTest::CreateFakeDevice() { device_ = frame_backend_device_new(); frame_backend_device_add_axis(device_, UFAxisTypeX, 0, 10000, 3764.70); frame_backend_device_add_axis(device_, UFAxisTypeY, 0, 10000, 3764.70); frame_backend_device_set_direct(device_, 1); /* pixels/m */ frame_backend_device_set_window_resolution(device_, 3764.70, 3764.70); } UGSubscription GrailTest::CreateSubscription( unsigned int num_touches, UGGestureTypeMask gesture_mask, UFWindowId window_id) { UGStatus status; UGSubscription subscription = nullptr; UFDevice uf_device = frame_backend_device_get_device(device_); status = grail_subscription_new(&subscription); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to create subscription"; return nullptr; } status = grail_subscription_set_property(subscription, UGSubscriptionPropertyDevice, &uf_device); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to set device subscription"; grail_subscription_delete(subscription); return nullptr; } status = grail_subscription_set_property(subscription, UGSubscriptionPropertyWindow, &window_id); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to set subscription window"; grail_subscription_delete(subscription); return nullptr; } status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesStart, &num_touches); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to set subscription start touches"; grail_subscription_delete(subscription); return nullptr; } status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMaximum, &num_touches); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to set subscription start touches"; grail_subscription_delete(subscription); return nullptr; } status = grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesMinimum, &num_touches); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to set subscription min touches"; grail_subscription_delete(subscription); return nullptr; } status = grail_subscription_set_property(subscription, UGSubscriptionPropertyMask, &gesture_mask); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to set subscription mask"; grail_subscription_delete(subscription); return nullptr; } status = grail_subscription_activate(grail_handle, subscription); if (status != UGStatusSuccess) { ADD_FAILURE() << "failed to activate subscription"; grail_subscription_delete(subscription); return nullptr; } return subscription; } void GrailTest::BeginTouch(int touch_id) { BeginTouchWindowCoords(touch_id, touch_id * 10.0f, 0.0f); } namespace { void IncrementFrameActiveTouches(UFBackendFrame frame_backend) { UFFrame frame = frame_backend_frame_get_frame(frame_backend); unsigned int active_touches; frame_frame_get_property(frame, UFFramePropertyActiveTouches, &active_touches); frame_backend_frame_set_active_touches(frame_backend, active_touches + 1); } } // anonymous namespace void GrailTest::BeginTouchWindowCoords(int touch_id, float window_x, float window_y) { UFBackendTouch touch = frame_backend_touch_new(); frame_backend_touch_set_id(touch, touch_id); frame_backend_touch_set_time(touch, time); frame_backend_touch_set_start_time(touch, time); frame_backend_touch_set_window_pos(touch, window_x, window_y); frame_backend_touch_set_owned(touch, 0); frame_backend_touch_set_pending_end(touch, 0); UFBackendFrame frame; if (previous_frame_) frame = frame_backend_frame_create_next(previous_frame_); else frame = frame_backend_frame_new(); frame_backend_frame_set_device(frame, device_); frame_backend_frame_give_touch(frame, &touch); IncrementFrameActiveTouches(frame); frame_backend_frame_set_window_id(frame, fake_window_id); SendFrameEvent(time, frame); } void GrailTest::GiveTouchOwnership(int touch_id) { std::function update_func = [](UFBackendTouch touch) { frame_backend_touch_set_owned(touch, 1); }; UpdateTouch(touch_id, update_func); } void GrailTest::UpdateTouch(int touch_id, std::function< void(UFBackendTouch) >& update_func) { assert(previous_frame_); // error would be in the test itself UFBackendFrame frame = frame_backend_frame_create_next(previous_frame_); frame_backend_frame_set_device(frame, device_); frame_backend_frame_set_window_id(frame, fake_window_id); UFStatus status; UFBackendTouch touch; status = frame_backend_frame_borrow_touch_by_id(frame, touch_id, &touch); ASSERT_EQ(UFStatusSuccess, status); update_func(touch); frame_backend_touch_set_time(touch, time); status = frame_backend_frame_give_touch(frame, &touch); ASSERT_EQ(UFStatusSuccess, status); SendFrameEvent(time, frame); } void GrailTest::SetTouchWindowCoords(UFBackendFrame frame, int touch_id, float window_x, float window_y) { UFStatus status; UFBackendTouch touch; status = frame_backend_frame_borrow_touch_by_id(frame, touch_id, &touch); ASSERT_EQ(UFStatusSuccess, status); frame_backend_touch_set_window_pos(touch, window_x, window_y); status = frame_backend_frame_give_touch(frame, &touch); ASSERT_EQ(UFStatusSuccess, status); } void GrailTest::SendTouchPendingEnd(int touch_id) { std::function update_func = [](UFBackendTouch touch) { frame_backend_touch_set_pending_end(touch, 1); }; UpdateTouch(touch_id, update_func); } void GrailTest::EndTouch(int touch_id) { std::function update_func = [](UFBackendTouch touch) { frame_backend_touch_set_ended(touch); }; UpdateTouch(touch_id, update_func); } void GrailTest::ProcessGrailEvents() { UGEvent grail_event; UGStatus get_event_status; do { get_event_status = grail_get_event(grail_handle, &grail_event); if (get_event_status != UGStatusSuccess) continue; switch (grail_event_get_type(grail_event)) { case UGEventTypeSlice: { UGStatus status; UGSlice slice; status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); ProcessSlice(slice); } break; default: FAIL(); // we are only expecting slice events } grail_event_unref(grail_event); } while (get_event_status == UGStatusSuccess); ASSERT_EQ(UGStatusErrorNoEvent, get_event_status); } void GrailTest::ProcessSlice(UGSlice slice) { switch (grail_slice_get_state(slice)) { case UGGestureStateBegin: AddNewGesture(slice); break; case UGGestureStateUpdate: UpdateGesture(slice); break; case UGGestureStateEnd: EndGesture(slice); break; default: FAIL(); } } GrailGesture *GrailTest::GestureWithId(unsigned int id) { GrailGesture *gesture = nullptr; for (GrailGesture &other_gesture : grail_gestures) { if (id == other_gesture.id) { gesture = &other_gesture; break; } } return gesture; } void GrailTest::AddNewGesture(UGSlice slice) { unsigned int gesture_id; UGStatus status = grail_slice_get_property(slice, UGSlicePropertyId, &gesture_id); ASSERT_EQ(UGStatusSuccess, status); // there should be no gesture with this id ASSERT_EQ(nullptr, GestureWithId(gesture_id)); GrailGesture gesture; gesture.id = gesture_id; unsigned int num_touches; status = grail_slice_get_property(slice, UGSlicePropertyNumTouches, &num_touches); ASSERT_EQ(UGStatusSuccess, status); for (unsigned int i = 0; i < num_touches; ++i) { UFTouchId touch_id; status = grail_slice_get_touch_id(slice, i, &touch_id); ASSERT_EQ(UGStatusSuccess, status); gesture.touches.insert(touch_id); } gesture.construction_finished = grail_slice_get_construction_finished(slice); gesture.state = UGGestureStateBegin; grail_gestures.push_back(gesture); } void GrailTest::UpdateGesture(UGSlice slice) { GrailGesture *gesture = nullptr; unsigned int gesture_id; UGStatus status = grail_slice_get_property(slice, UGSlicePropertyId, &gesture_id); ASSERT_EQ(UGStatusSuccess, status); gesture = GestureWithId(gesture_id); // the gesture must already exist ASSERT_NE(nullptr, gesture); if (grail_slice_get_construction_finished(slice)) { gesture->construction_finished = true; } else { // can't go back from true to false ASSERT_FALSE(gesture->construction_finished); } ASSERT_TRUE(gesture->state == UGGestureStateBegin || gesture->state == UGGestureStateUpdate); gesture->state = UGGestureStateUpdate; } void GrailTest::EndGesture(UGSlice slice) { GrailGesture *gesture = nullptr; unsigned int gesture_id; UGStatus status = grail_slice_get_property(slice, UGSlicePropertyId, &gesture_id); ASSERT_EQ(UGStatusSuccess, status); gesture = GestureWithId(gesture_id); // the gesture must already exist ASSERT_NE(nullptr, gesture); gesture->construction_finished = grail_slice_get_construction_finished(slice); ASSERT_TRUE(gesture->construction_finished); ASSERT_TRUE(gesture->state == UGGestureStateBegin || gesture->state == UGGestureStateUpdate); gesture->state = UGGestureStateEnd; } void GrailTest::PrintPendingGestures() { UGEvent grail_event; UGStatus get_event_status; do { get_event_status = grail_get_event(grail_handle, &grail_event); if (get_event_status != UGStatusSuccess) continue; switch (grail_event_get_type(grail_event)) { case UGEventTypeSlice: { UGStatus status; UGSlice slice; status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); PrintSlice(slice); } break; default: std::cout << "other event\n"; } grail_event_unref(grail_event); } while (get_event_status == UGStatusSuccess); ASSERT_EQ(UGStatusErrorNoEvent, get_event_status); } void GrailTest::PrintSlice(UGSlice slice) { UGStatus status; unsigned int num_touches; unsigned int gesture_id; std::cout << "slice"; status = grail_slice_get_property(slice, UGSlicePropertyId, &gesture_id); ASSERT_EQ(UGStatusSuccess, status); std::cout << " id=" << gesture_id; switch (grail_slice_get_state(slice)) { case UGGestureStateBegin: std::cout << " begin"; break; case UGGestureStateUpdate: std::cout << " update"; break; case UGGestureStateEnd: std::cout << " end"; break; default: FAIL(); } status = grail_slice_get_property(slice, UGSlicePropertyNumTouches, &num_touches); ASSERT_EQ(UGStatusSuccess, status); std::cout << " touches="; for (unsigned int i = 0; i < num_touches; ++i) { if (i != 0) std::cout << ","; UFTouchId touch_id; status = grail_slice_get_touch_id(slice, i, &touch_id); ASSERT_EQ(UGStatusSuccess, status); std::cout << touch_id; } if (grail_slice_get_construction_finished(slice)) std::cout << " finished"; else std::cout << " unfinished"; std::cout << "\n"; } grail-3.1.0+16.04.20160125/test/regular/subscription.cpp0000644000015600001650000002266512651522342023037 0ustar pbuserpbgroup00000000000000#include #include #include TEST(grail, default_subscription) { UGSubscription subscription; ASSERT_EQ(UGStatusSuccess, grail_subscription_new(&subscription)); UGGestureTypeMask gesture_type; EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyMask, &gesture_type)); EXPECT_EQ(gesture_type, 0); unsigned int count = 0; EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyTouchesStart, &count)); EXPECT_EQ(count, 2); /* 0 means take the value from the touches start property */ EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyTouchesMinimum, &count)); EXPECT_EQ(count, 0); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyTouchesMaximum, &count)); EXPECT_EQ(count, 0); grail_subscription_delete(subscription); } TEST(grail, get_set_subscription) { UGSubscription subscription; ASSERT_EQ(UGStatusSuccess, grail_subscription_new(&subscription)); const UGGestureTypeMask new_gesture_type = UGGestureTypeDrag | UGGestureTypeTap; const unsigned int new_count = 3; UGGestureType gesture_type; unsigned int count; EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyMask, &new_gesture_type)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyMask, &gesture_type)); EXPECT_EQ(new_gesture_type, gesture_type); EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyTouchesStart, &new_count)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyTouchesStart, &count)); EXPECT_EQ(new_count, count); EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property( subscription, UGSubscriptionPropertyTouchesMinimum, &new_count)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyTouchesMinimum, &count)); EXPECT_EQ(new_count, count); EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property( subscription, UGSubscriptionPropertyTouchesMaximum, &new_count)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyTouchesMaximum, &count)); EXPECT_EQ(new_count, count); grail_subscription_delete(subscription); } TEST(grail, default_subscription_limits) { UGSubscription subscription; ASSERT_EQ(UGStatusSuccess, grail_subscription_new(&subscription)); uint64_t timeout; float threshold; EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyDragTimeout, &timeout)); EXPECT_EQ(300, timeout); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyDragThreshold, &threshold)); EXPECT_FLOAT_EQ(0.0026, threshold); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyPinchTimeout, &timeout)); EXPECT_EQ(300, timeout); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyPinchThreshold, &threshold)); EXPECT_FLOAT_EQ(1.1, threshold); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyRotateTimeout, &timeout)); EXPECT_EQ(500, timeout); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyRotateThreshold, &threshold)); EXPECT_FLOAT_EQ(2 * M_PI / 50, threshold); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyTapTimeout, &timeout)); EXPECT_EQ(300, timeout); grail_subscription_delete(subscription); } TEST(grail, set_get_subscription_limits) { UGSubscription subscription; ASSERT_EQ(UGStatusSuccess, grail_subscription_new(&subscription)); /* Adjust values and check if adjusted values are reported back correctly. */ const uint64_t new_timeout = 1000; const float new_threshold = 7.3; uint64_t timeout; float threshold; /* Drag */ EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyDragTimeout, &new_timeout)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyDragTimeout, &timeout)); EXPECT_EQ(new_timeout, timeout); EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyDragThreshold, &new_threshold)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyDragThreshold, &threshold)); EXPECT_FLOAT_EQ(new_threshold, threshold); /* Pinch */ EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyPinchTimeout, &new_timeout)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyPinchTimeout, &timeout)); EXPECT_EQ(new_timeout, timeout); EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property( subscription, UGSubscriptionPropertyPinchThreshold, &new_threshold)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyPinchThreshold, &threshold)); EXPECT_FLOAT_EQ(new_threshold, threshold); /* Rotate */ EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyRotateTimeout, &new_timeout)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyRotateTimeout, &timeout)); EXPECT_EQ(new_timeout, timeout); EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property( subscription, UGSubscriptionPropertyRotateThreshold, &new_threshold)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property( subscription, UGSubscriptionPropertyRotateThreshold, &threshold)); EXPECT_FLOAT_EQ(new_threshold, threshold); /* Tap */ EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyTapTimeout, &new_timeout)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyTapTimeout, &timeout)); EXPECT_EQ(new_timeout, timeout); EXPECT_EQ(UGStatusSuccess, grail_subscription_set_property(subscription, UGSubscriptionPropertyTapThreshold, &new_threshold)); EXPECT_EQ(UGStatusSuccess, grail_subscription_get_property(subscription, UGSubscriptionPropertyTapThreshold, &threshold)); EXPECT_FLOAT_EQ(new_threshold, threshold); grail_subscription_delete(subscription); } grail-3.1.0+16.04.20160125/test/regular/grail-fixture.h0000644000015600001650000000444212651522342022533 0ustar pbuserpbgroup00000000000000#ifndef GRAIL_FIXTURE_H #define GRAIL_FIXTURE_H #include #include #include #include #include #include class GrailGesture { public: bool HasTouch(UFTouchId touch_id) const { return touches.find(touch_id) != touches.end(); } unsigned int id; std::set touches; bool construction_finished; UGGestureState state; }; class GrailTest : public ::testing::Test { public: virtual void SetUp() { grail_handle = NULL; previous_frame_ = nullptr; CreateFakeDevice(); } virtual void TearDown() { if (grail_handle) grail_delete(grail_handle); if (previous_frame_) frame_backend_frame_delete(previous_frame_); frame_backend_device_delete(device_); } protected: UGSubscription CreateSubscription(unsigned int num_touches, UGGestureTypeMask gesture_mask, UFWindowId window_id); void CreateFakeDevice(); void SendDeviceAddedEvent(uint64_t time); void SendFrameEvent(uint64_t time, UFBackendFrame frame); void BeginTouch(int touch_id); void BeginTouchWindowCoords(int touch_id, float window_x, float window_y); void GiveTouchOwnership(int touch_id); void SetTouchWindowCoords(UFBackendFrame frame, int touch_id, float window_x, float window_y); void SendTouchPendingEnd(int touch_id); void EndTouch(int touch_id); void UpdateTouch(int touch_id, std::function< void(UFBackendTouch) >& update_func); /* Fetches and processes all pending grail events, updating grail_gestures list accordingly. */ void ProcessGrailEvents(); GrailGesture *GestureWithId(unsigned int id); /* Helper function for debugging purposes. Prints all gestures in grail's queue. */ void PrintPendingGestures(); void PrintSlice(UGSlice slice); UGHandle grail_handle; UFBackendDevice device_; uint64_t time; UFWindowId fake_window_id; UFBackendFrame previous_frame_; /* A representation of the currently active gestures according to the grail events fetched by ProcessGrailEvents() */ std::list grail_gestures; private: void ProcessSlice(UGSlice slice); void AddNewGesture(UGSlice slice); void UpdateGesture(UGSlice slice); void EndGesture(UGSlice slice); }; #endif // GRAIL_FIXTURE grail-3.1.0+16.04.20160125/test/regular/still-gest-finishes.cpp0000644000015600001650000000502312651522342024175 0ustar pbuserpbgroup00000000000000#include "grail-fixture.h" /* Checks that a gesture finishes its construction after enough time has passed. Even if no touch updates come within that time. In other words, checks that a grail_update_time() call can trigger the completion of the construction of a gesture. */ TEST_F(GrailTest, StillGestureFinishesConstruction) { UGStatus status; UFWindowId fake_window_id = 321; uint64_t time = 1234; status = grail_new(&grail_handle); ASSERT_EQ(UGStatusSuccess, status); SendDeviceAddedEvent(time); UGSubscription subscription = CreateSubscription(1, UGGestureTypeTouch, fake_window_id); if (!subscription) return; time += 10; BeginTouch(1); time += 10; GiveTouchOwnership(1); // ownership will trigger delivery of grail events. // There should now be two grail events, corresponding to the frame // event that were sent, waiting to be processed. // Check first event. A gesture begin. UGEvent grail_event; status = grail_get_event(grail_handle, &grail_event); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(grail_event)); UGSlice slice; status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGGestureStateBegin, grail_slice_get_state(slice)); ASSERT_FALSE(grail_slice_get_construction_finished(slice)); grail_event_unref(grail_event); // Check the second event. A gesture update. status = grail_get_event(grail_handle, &grail_event); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(grail_event)); status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGGestureStateUpdate, grail_slice_get_state(slice)); ASSERT_FALSE(grail_slice_get_construction_finished(slice)); grail_event_unref(grail_event); // a lot of time has passed time += 100; grail_update_time(grail_handle, time); // An update event should come and its "construction finished" property should be true status = grail_get_event(grail_handle, &grail_event); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGEventTypeSlice, grail_event_get_type(grail_event)); status = grail_event_get_property(grail_event, UGEventPropertySlice, &slice); ASSERT_EQ(UGStatusSuccess, status); ASSERT_EQ(UGGestureStateUpdate, grail_slice_get_state(slice)); ASSERT_TRUE(grail_slice_get_construction_finished(slice)); grail_event_unref(grail_event); grail_subscription_delete(subscription); } grail-3.1.0+16.04.20160125/m4/0000755000015600001650000000000012651522501015471 5ustar pbuserpbgroup00000000000000grail-3.1.0+16.04.20160125/m4/gtest.m40000644000015600001650000000511712651522342017070 0ustar pbuserpbgroup00000000000000# serial 2 # Copyright (C) 2012 Canonical, Ltd. # # 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 (including the next # paragraph) 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. # Checks whether the gtest source is available on the system. Allows for # adjusting the include and source path. Sets have_gtest=yes if the source is # present. Sets GTEST_CPPFLAGS and GTEST_SOURCE to the preprocessor flags and # source location respectively. AC_DEFUN([CHECK_GTEST], [ AC_ARG_WITH([gtest-include-path], [AS_HELP_STRING([--with-gtest-include-path], [location of the Google test headers])], [GTEST_CPPFLAGS="-I$withval"]) AC_ARG_WITH([gtest-source-path], [AS_HELP_STRING([--with-gtest-source-path], [location of the Google test sources, defaults to /usr/src/gtest])], [GTEST_SOURCE="$withval"], [GTEST_SOURCE="/usr/src/gtest"]) GTEST_CPPFLAGS="$GTEST_CPPFLAGS -I$GTEST_SOURCE" AC_LANG_PUSH(C++) gtest_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $GTEST_CPPFLAGS" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include "src/gtest-all.cc"]])], [have_gtest=yes], [have_gtest=no]) AS_IF([test "x$have_gtest" = xyes], [AC_COMPILE_IFELSE([AC_LANG_SOURCE([[#include "src/gtest_main.cc"]])], [], [have_gtest=no])]) CPPFLAGS=$gtest_save_CPPFLAGS AC_LANG_POP(C++) AS_IF([test "x$have_gtest" = xyes], [GTEST_LIBS=-lpthread AC_SUBST(GTEST_CPPFLAGS) AC_SUBST(GTEST_SOURCE) AC_SUBST(GTEST_LIBS)]) ]) # CHECK_GTEST grail-3.1.0+16.04.20160125/m4/xorg-gtest.m40000644000015600001650000000666612651522352020060 0ustar pbuserpbgroup00000000000000# serial 9 # Copyright (C) 2012 Canonical, Ltd. # # 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 (including the next # paragraph) 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. # CHECK_XORG_GTEST([ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # # Checks whether the xorg-gtest source is available on the system. Allows for # adjusting the include and source path. Sets have_xorg_gtest=yes if the source # is present. Sets XORG_GTEST_CPPFLAGS and XORG_GTEST_SOURCE to the preprocessor # flags and source location respectively. Sets XORG_GTEST_LIBS to all the # libraries needed to link against a built xorg-gtest library. # # Both default actions are no-ops. AC_DEFUN([CHECK_XORG_GTEST], [ PKG_CHECK_EXISTS([xorg-gtest], [have_xorg_gtest=yes], [have_xorg_gtest=no]) XORG_GTEST_SOURCE=`$PKG_CONFIG --variable=sourcedir --print-errors xorg-gtest` GTEST_SOURCE="$XORG_GTEST_SOURCE/src/gtest" GTEST_CPPFLAGS="-I$XORG_GTEST_SOURCE/src/gtest/include -I$XORG_GTEST_SOURCE/src/gtest" XORG_GTEST_CPPFLAGS=`$PKG_CONFIG --variable=CPPflags --print-errors xorg-gtest` XORG_GTEST_CPPFLAGS="$GTEST_CPPFLAGS $XORG_GTEST_CPPFLAGS" XORG_GTEST_CPPFLAGS="$XORG_GTEST_CPPFLAGS -I$XORG_GTEST_SOURCE" XORG_GTEST_LDFLAGS="-lpthread -lX11 -lXi" PKG_CHECK_MODULES(X11, [x11], [have_x11=yes], [have_x11=no]) # Check if we should include support for evemu AC_ARG_WITH([evemu], [AS_HELP_STRING([--with-evemu], [support Linux input device recording playback (default: enabled if available)])], [], [with_evemu=check]) AS_IF([test "x$with_evemu" = xyes], [PKG_CHECK_MODULES(EVEMU, [evemu], [have_xorg_gtest_evemu=yes])], [test "x$with_evemu" = xcheck], [PKG_CHECK_MODULES(EVEMU, [evemu], [have_xorg_gtest_evemu=yes], [have_xorg_gtest_evemu=no])]) AS_IF([test "x$have_xorg_gtest_evemu" = xyes], [XORG_GTEST_CPPFLAGS="$XORG_GTEST_CPPFLAGS -DHAVE_EVEMU"]) AS_IF([test "x$have_xorg_gtest" = xyes], [AC_SUBST(GTEST_SOURCE)] [AC_SUBST(GTEST_CPPFLAGS)] [AC_SUBST(XORG_GTEST_SOURCE)] [AC_SUBST(XORG_GTEST_CPPFLAGS)] [AC_SUBST(XORG_GTEST_LDFLAGS)] # Get BASE_CXXFLAGS and STRICT_CXXFLAGS [XORG_MACROS_VERSION(1.17)] [AC_LANG_PUSH([C++])] [XORG_STRICT_OPTION] [AC_LANG_POP] [$1], [$2]) ]) # CHECK_XORG_GTEST grail-3.1.0+16.04.20160125/m4/xorg-macros.m40000644000015600001650000020634212651522342020206 0ustar pbuserpbgroup00000000000000dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved. dnl dnl Permission is hereby granted, free of charge, to any person obtaining a dnl copy of this software and associated documentation files (the "Software"), dnl to deal in the Software without restriction, including without limitation dnl the rights to use, copy, modify, merge, publish, distribute, sublicense, dnl and/or sell copies of the Software, and to permit persons to whom the dnl Software is furnished to do so, subject to the following conditions: dnl dnl The above copyright notice and this permission notice (including the next dnl paragraph) shall be included in all copies or substantial portions of the dnl Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER dnl DEALINGS IN THE SOFTWARE. # XORG_MACROS_VERSION(required-version) # ------------------------------------- # Minimum version: 1.1.0 # # If you're using a macro added in Version 1.1 or newer, include this in # your configure.ac with the minimum required version, such as: # XORG_MACROS_VERSION(1.1) # # To ensure that this macro is defined, also add: # m4_ifndef([XORG_MACROS_VERSION], # [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])]) # # # See the "minimum version" comment for each macro you use to see what # version you require. m4_defun([XORG_MACROS_VERSION],[ m4_define([vers_have], [1.17]) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_if(m4_cmp(maj_have, maj_needed), 0,, [m4_fatal([xorg-macros major version ]maj_needed[ is required but ]vers_have[ found])]) m4_if(m4_version_compare(vers_have, [$1]), -1, [m4_fatal([xorg-macros version $1 or higher is required but ]vers_have[ found])]) m4_undefine([vers_have]) m4_undefine([maj_have]) m4_undefine([maj_needed]) ]) # XORG_MACROS_VERSION # XORG_PROG_RAWCPP() # ------------------ # Minimum version: 1.0.0 # # Find cpp program and necessary flags for use in pre-processing text files # such as man pages and config files AC_DEFUN([XORG_PROG_RAWCPP],[ AC_REQUIRE([AC_PROG_CPP]) AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) # Check for flag to avoid builtin definitions - assumes unix is predefined, # which is not the best choice for supporting other OS'es, but covers most # of the ones we need for now. AC_MSG_CHECKING([if $RAWCPP requires -undef]) AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp redefine unix ?]])]) if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then AC_MSG_RESULT([no]) else if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then RAWCPPFLAGS=-undef AC_MSG_RESULT([yes]) # under Cygwin unix is still defined even with -undef elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then RAWCPPFLAGS="-undef -ansi" AC_MSG_RESULT([yes, with -ansi]) else AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.]) fi fi rm -f conftest.$ac_ext AC_MSG_CHECKING([if $RAWCPP requires -traditional]) AC_LANG_CONFTEST([AC_LANG_SOURCE([[Does cpp preserve "whitespace"?]])]) if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then AC_MSG_RESULT([no]) else if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then RAWCPPFLAGS="${RAWCPPFLAGS} -traditional" AC_MSG_RESULT([yes]) else AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.]) fi fi rm -f conftest.$ac_ext AC_SUBST(RAWCPPFLAGS) ]) # XORG_PROG_RAWCPP # XORG_MANPAGE_SECTIONS() # ----------------------- # Minimum version: 1.0.0 # # Determine which sections man pages go in for the different man page types # on this OS - replaces *ManSuffix settings in old Imake *.cf per-os files. # Not sure if there's any better way than just hardcoding by OS name. # Override default settings by setting environment variables # Added MAN_SUBSTS in version 1.8 # Added AC_PROG_SED in version 1.8 AC_DEFUN([XORG_MANPAGE_SECTIONS],[ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([AC_PROG_SED]) if test x$APP_MAN_SUFFIX = x ; then APP_MAN_SUFFIX=1 fi if test x$APP_MAN_DIR = x ; then APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' fi if test x$LIB_MAN_SUFFIX = x ; then LIB_MAN_SUFFIX=3 fi if test x$LIB_MAN_DIR = x ; then LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' fi if test x$FILE_MAN_SUFFIX = x ; then case $host_os in solaris*) FILE_MAN_SUFFIX=4 ;; *) FILE_MAN_SUFFIX=5 ;; esac fi if test x$FILE_MAN_DIR = x ; then FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' fi if test x$MISC_MAN_SUFFIX = x ; then case $host_os in solaris*) MISC_MAN_SUFFIX=5 ;; *) MISC_MAN_SUFFIX=7 ;; esac fi if test x$MISC_MAN_DIR = x ; then MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' fi if test x$DRIVER_MAN_SUFFIX = x ; then case $host_os in solaris*) DRIVER_MAN_SUFFIX=7 ;; *) DRIVER_MAN_SUFFIX=4 ;; esac fi if test x$DRIVER_MAN_DIR = x ; then DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' fi if test x$ADMIN_MAN_SUFFIX = x ; then case $host_os in solaris*) ADMIN_MAN_SUFFIX=1m ;; *) ADMIN_MAN_SUFFIX=8 ;; esac fi if test x$ADMIN_MAN_DIR = x ; then ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' fi AC_SUBST([APP_MAN_SUFFIX]) AC_SUBST([LIB_MAN_SUFFIX]) AC_SUBST([FILE_MAN_SUFFIX]) AC_SUBST([MISC_MAN_SUFFIX]) AC_SUBST([DRIVER_MAN_SUFFIX]) AC_SUBST([ADMIN_MAN_SUFFIX]) AC_SUBST([APP_MAN_DIR]) AC_SUBST([LIB_MAN_DIR]) AC_SUBST([FILE_MAN_DIR]) AC_SUBST([MISC_MAN_DIR]) AC_SUBST([DRIVER_MAN_DIR]) AC_SUBST([ADMIN_MAN_DIR]) XORG_MAN_PAGE="X Version 11" AC_SUBST([XORG_MAN_PAGE]) MAN_SUBSTS="\ -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ -e 's|__xservername__|Xorg|g' \ -e 's|__xconfigfile__|xorg.conf|g' \ -e 's|__projectroot__|\$(prefix)|g' \ -e 's|__apploaddir__|\$(appdefaultdir)|g' \ -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" AC_SUBST([MAN_SUBSTS]) ]) # XORG_MANPAGE_SECTIONS # XORG_CHECK_SGML_DOCTOOLS([MIN-VERSION]) # ------------------------ # Minimum version: 1.7.0 # # Defines the variable XORG_SGML_PATH containing the location of X11/defs.ent # provided by xorg-sgml-doctools, if installed. AC_DEFUN([XORG_CHECK_SGML_DOCTOOLS],[ AC_MSG_CHECKING([for X.Org SGML entities m4_ifval([$1],[>= $1])]) XORG_SGML_PATH= PKG_CHECK_EXISTS([xorg-sgml-doctools m4_ifval([$1],[>= $1])], [XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools`], [m4_ifval([$1],[:], [if test x"$cross_compiling" != x"yes" ; then AC_CHECK_FILE([$prefix/share/sgml/X11/defs.ent], [XORG_SGML_PATH=$prefix/share/sgml]) fi]) ]) # Define variables STYLESHEET_SRCDIR and XSL_STYLESHEET containing # the path and the name of the doc stylesheet if test "x$XORG_SGML_PATH" != "x" ; then AC_MSG_RESULT([$XORG_SGML_PATH]) STYLESHEET_SRCDIR=$XORG_SGML_PATH/X11 XSL_STYLESHEET=$STYLESHEET_SRCDIR/xorg.xsl else AC_MSG_RESULT([no]) fi AC_SUBST(XORG_SGML_PATH) AC_SUBST(STYLESHEET_SRCDIR) AC_SUBST(XSL_STYLESHEET) AM_CONDITIONAL([HAVE_STYLESHEETS], [test "x$XSL_STYLESHEET" != "x"]) ]) # XORG_CHECK_SGML_DOCTOOLS # XORG_CHECK_LINUXDOC # ------------------- # Minimum version: 1.0.0 # # Defines the variable MAKE_TEXT if the necessary tools and # files are found. $(MAKE_TEXT) blah.sgml will then produce blah.txt. # Whether or not the necessary tools and files are found can be checked # with the AM_CONDITIONAL "BUILD_LINUXDOC" AC_DEFUN([XORG_CHECK_LINUXDOC],[ AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) AC_REQUIRE([XORG_WITH_PS2PDF]) AC_PATH_PROG(LINUXDOC, linuxdoc) AC_MSG_CHECKING([whether to build documentation]) if test x$XORG_SGML_PATH != x && test x$LINUXDOC != x ; then BUILDDOC=yes else BUILDDOC=no fi AM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes]) AC_MSG_RESULT([$BUILDDOC]) AC_MSG_CHECKING([whether to build pdf documentation]) if test x$have_ps2pdf != xno && test x$BUILD_PDFDOC != xno; then BUILDPDFDOC=yes else BUILDPDFDOC=no fi AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) AC_MSG_RESULT([$BUILDPDFDOC]) MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt -f" MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps" MAKE_PDF="$PS2PDF" MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0" AC_SUBST(MAKE_TEXT) AC_SUBST(MAKE_PS) AC_SUBST(MAKE_PDF) AC_SUBST(MAKE_HTML) ]) # XORG_CHECK_LINUXDOC # XORG_CHECK_DOCBOOK # ------------------- # Minimum version: 1.0.0 # # Checks for the ability to build output formats from SGML DocBook source. # For XXX in {TXT, PDF, PS, HTML}, the AM_CONDITIONAL "BUILD_XXXDOC" # indicates whether the necessary tools and files are found and, if set, # $(MAKE_XXX) blah.sgml will produce blah.xxx. AC_DEFUN([XORG_CHECK_DOCBOOK],[ AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) BUILDTXTDOC=no BUILDPDFDOC=no BUILDPSDOC=no BUILDHTMLDOC=no AC_PATH_PROG(DOCBOOKPS, docbook2ps) AC_PATH_PROG(DOCBOOKPDF, docbook2pdf) AC_PATH_PROG(DOCBOOKHTML, docbook2html) AC_PATH_PROG(DOCBOOKTXT, docbook2txt) AC_MSG_CHECKING([whether to build text documentation]) if test x$XORG_SGML_PATH != x && test x$DOCBOOKTXT != x && test x$BUILD_TXTDOC != xno; then BUILDTXTDOC=yes fi AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes]) AC_MSG_RESULT([$BUILDTXTDOC]) AC_MSG_CHECKING([whether to build PDF documentation]) if test x$XORG_SGML_PATH != x && test x$DOCBOOKPDF != x && test x$BUILD_PDFDOC != xno; then BUILDPDFDOC=yes fi AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) AC_MSG_RESULT([$BUILDPDFDOC]) AC_MSG_CHECKING([whether to build PostScript documentation]) if test x$XORG_SGML_PATH != x && test x$DOCBOOKPS != x && test x$BUILD_PSDOC != xno; then BUILDPSDOC=yes fi AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes]) AC_MSG_RESULT([$BUILDPSDOC]) AC_MSG_CHECKING([whether to build HTML documentation]) if test x$XORG_SGML_PATH != x && test x$DOCBOOKHTML != x && test x$BUILD_HTMLDOC != xno; then BUILDHTMLDOC=yes fi AM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes]) AC_MSG_RESULT([$BUILDHTMLDOC]) MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT" MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS" MAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF" MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML" AC_SUBST(MAKE_TEXT) AC_SUBST(MAKE_PS) AC_SUBST(MAKE_PDF) AC_SUBST(MAKE_HTML) ]) # XORG_CHECK_DOCBOOK # XORG_WITH_XMLTO([MIN-VERSION], [DEFAULT]) # ---------------- # Minimum version: 1.5.0 # Minimum version for optional DEFAULT argument: 1.11.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a module to test for the # presence of the tool and obtain it's path in separate variables. Coupled with # the --with-xmlto option, it allows maximum flexibilty in making decisions # as whether or not to use the xmlto package. When DEFAULT is not specified, # --with-xmlto assumes 'auto'. # # Interface to module: # HAVE_XMLTO: used in makefiles to conditionally generate documentation # XMLTO: returns the path of the xmlto program found # returns the path set by the user in the environment # --with-xmlto: 'yes' user instructs the module to use xmlto # 'no' user instructs the module not to use xmlto # # Added in version 1.10.0 # HAVE_XMLTO_TEXT: used in makefiles to conditionally generate text documentation # xmlto for text output requires either lynx, links, or w3m browsers # # If the user sets the value of XMLTO, AC_PATH_PROG skips testing the path. # AC_DEFUN([XORG_WITH_XMLTO],[ AC_ARG_VAR([XMLTO], [Path to xmlto command]) m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(xmlto, AS_HELP_STRING([--with-xmlto], [Use xmlto to regenerate documentation (default: ]_defopt[)]), [use_xmlto=$withval], [use_xmlto=]_defopt) m4_undefine([_defopt]) if test "x$use_xmlto" = x"auto"; then AC_PATH_PROG([XMLTO], [xmlto]) if test "x$XMLTO" = "x"; then AC_MSG_WARN([xmlto not found - documentation targets will be skipped]) have_xmlto=no else have_xmlto=yes fi elif test "x$use_xmlto" = x"yes" ; then AC_PATH_PROG([XMLTO], [xmlto]) if test "x$XMLTO" = "x"; then AC_MSG_ERROR([--with-xmlto=yes specified but xmlto not found in PATH]) fi have_xmlto=yes elif test "x$use_xmlto" = x"no" ; then if test "x$XMLTO" != "x"; then AC_MSG_WARN([ignoring XMLTO environment variable since --with-xmlto=no was specified]) fi have_xmlto=no else AC_MSG_ERROR([--with-xmlto expects 'yes' or 'no']) fi # Test for a minimum version of xmlto, if provided. m4_ifval([$1], [if test "$have_xmlto" = yes; then # scrape the xmlto version AC_MSG_CHECKING([the xmlto version]) xmlto_version=`$XMLTO --version 2>/dev/null | cut -d' ' -f3` AC_MSG_RESULT([$xmlto_version]) AS_VERSION_COMPARE([$xmlto_version], [$1], [if test "x$use_xmlto" = xauto; then AC_MSG_WARN([xmlto version $xmlto_version found, but $1 needed]) have_xmlto=no else AC_MSG_ERROR([xmlto version $xmlto_version found, but $1 needed]) fi]) fi]) # Test for the ability of xmlto to generate a text target have_xmlto_text=no cat > conftest.xml << "EOF" EOF AS_IF([test "$have_xmlto" = yes], [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], [have_xmlto_text=yes], [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])]) rm -f conftest.xml AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) ]) # XORG_WITH_XMLTO # XORG_WITH_XSLTPROC([MIN-VERSION], [DEFAULT]) # -------------------------------------------- # Minimum version: 1.12.0 # Minimum version for optional DEFAULT argument: 1.12.0 # # XSLT (Extensible Stylesheet Language Transformations) is a declarative, # XML-based language used for the transformation of XML documents. # The xsltproc command line tool is for applying XSLT stylesheets to XML documents. # It is used under the cover by xmlto to generate html files from DocBook/XML. # The XSLT processor is often used as a standalone tool for transformations. # It should not be assumed that this tool is used only to work with documnetation. # When DEFAULT is not specified, --with-xsltproc assumes 'auto'. # # Interface to module: # HAVE_XSLTPROC: used in makefiles to conditionally generate documentation # XSLTPROC: returns the path of the xsltproc program found # returns the path set by the user in the environment # --with-xsltproc: 'yes' user instructs the module to use xsltproc # 'no' user instructs the module not to use xsltproc # have_xsltproc: returns yes if xsltproc found in PATH or no # # If the user sets the value of XSLTPROC, AC_PATH_PROG skips testing the path. # AC_DEFUN([XORG_WITH_XSLTPROC],[ AC_ARG_VAR([XSLTPROC], [Path to xsltproc command]) # Preserves the interface, should it be implemented later m4_ifval([$1], [m4_warn([syntax], [Checking for xsltproc MIN-VERSION is not implemented])]) m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(xsltproc, AS_HELP_STRING([--with-xsltproc], [Use xsltproc for the transformation of XML documents (default: ]_defopt[)]), [use_xsltproc=$withval], [use_xsltproc=]_defopt) m4_undefine([_defopt]) if test "x$use_xsltproc" = x"auto"; then AC_PATH_PROG([XSLTPROC], [xsltproc]) if test "x$XSLTPROC" = "x"; then AC_MSG_WARN([xsltproc not found - cannot transform XML documents]) have_xsltproc=no else have_xsltproc=yes fi elif test "x$use_xsltproc" = x"yes" ; then AC_PATH_PROG([XSLTPROC], [xsltproc]) if test "x$XSLTPROC" = "x"; then AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH]) fi have_xsltproc=yes elif test "x$use_xsltproc" = x"no" ; then if test "x$XSLTPROC" != "x"; then AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified]) fi have_xsltproc=no else AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no']) fi AM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes]) ]) # XORG_WITH_XSLTPROC # XORG_WITH_PERL([MIN-VERSION], [DEFAULT]) # ---------------------------------------- # Minimum version: 1.15.0 # # PERL (Practical Extraction and Report Language) is a language optimized for # scanning arbitrary text files, extracting information from those text files, # and printing reports based on that information. # # When DEFAULT is not specified, --with-perl assumes 'auto'. # # Interface to module: # HAVE_PERL: used in makefiles to conditionally scan text files # PERL: returns the path of the perl program found # returns the path set by the user in the environment # --with-perl: 'yes' user instructs the module to use perl # 'no' user instructs the module not to use perl # have_perl: returns yes if perl found in PATH or no # # If the user sets the value of PERL, AC_PATH_PROG skips testing the path. # AC_DEFUN([XORG_WITH_PERL],[ AC_ARG_VAR([PERL], [Path to perl command]) # Preserves the interface, should it be implemented later m4_ifval([$1], [m4_warn([syntax], [Checking for perl MIN-VERSION is not implemented])]) m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(perl, AS_HELP_STRING([--with-perl], [Use perl for extracting information from files (default: ]_defopt[)]), [use_perl=$withval], [use_perl=]_defopt) m4_undefine([_defopt]) if test "x$use_perl" = x"auto"; then AC_PATH_PROG([PERL], [perl]) if test "x$PERL" = "x"; then AC_MSG_WARN([perl not found - cannot extract information and report]) have_perl=no else have_perl=yes fi elif test "x$use_perl" = x"yes" ; then AC_PATH_PROG([PERL], [perl]) if test "x$PERL" = "x"; then AC_MSG_ERROR([--with-perl=yes specified but perl not found in PATH]) fi have_perl=yes elif test "x$use_perl" = x"no" ; then if test "x$PERL" != "x"; then AC_MSG_WARN([ignoring PERL environment variable since --with-perl=no was specified]) fi have_perl=no else AC_MSG_ERROR([--with-perl expects 'yes' or 'no']) fi AM_CONDITIONAL([HAVE_PERL], [test "$have_perl" = yes]) ]) # XORG_WITH_PERL # XORG_WITH_ASCIIDOC([MIN-VERSION], [DEFAULT]) # ---------------- # Minimum version: 1.5.0 # Minimum version for optional DEFAULT argument: 1.11.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a module to test for the # presence of the tool and obtain it's path in separate variables. Coupled with # the --with-asciidoc option, it allows maximum flexibilty in making decisions # as whether or not to use the asciidoc package. When DEFAULT is not specified, # --with-asciidoc assumes 'auto'. # # Interface to module: # HAVE_ASCIIDOC: used in makefiles to conditionally generate documentation # ASCIIDOC: returns the path of the asciidoc program found # returns the path set by the user in the environment # --with-asciidoc: 'yes' user instructs the module to use asciidoc # 'no' user instructs the module not to use asciidoc # # If the user sets the value of ASCIIDOC, AC_PATH_PROG skips testing the path. # AC_DEFUN([XORG_WITH_ASCIIDOC],[ AC_ARG_VAR([ASCIIDOC], [Path to asciidoc command]) m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(asciidoc, AS_HELP_STRING([--with-asciidoc], [Use asciidoc to regenerate documentation (default: ]_defopt[)]), [use_asciidoc=$withval], [use_asciidoc=]_defopt) m4_undefine([_defopt]) if test "x$use_asciidoc" = x"auto"; then AC_PATH_PROG([ASCIIDOC], [asciidoc]) if test "x$ASCIIDOC" = "x"; then AC_MSG_WARN([asciidoc not found - documentation targets will be skipped]) have_asciidoc=no else have_asciidoc=yes fi elif test "x$use_asciidoc" = x"yes" ; then AC_PATH_PROG([ASCIIDOC], [asciidoc]) if test "x$ASCIIDOC" = "x"; then AC_MSG_ERROR([--with-asciidoc=yes specified but asciidoc not found in PATH]) fi have_asciidoc=yes elif test "x$use_asciidoc" = x"no" ; then if test "x$ASCIIDOC" != "x"; then AC_MSG_WARN([ignoring ASCIIDOC environment variable since --with-asciidoc=no was specified]) fi have_asciidoc=no else AC_MSG_ERROR([--with-asciidoc expects 'yes' or 'no']) fi m4_ifval([$1], [if test "$have_asciidoc" = yes; then # scrape the asciidoc version AC_MSG_CHECKING([the asciidoc version]) asciidoc_version=`$ASCIIDOC --version 2>/dev/null | cut -d' ' -f2` AC_MSG_RESULT([$asciidoc_version]) AS_VERSION_COMPARE([$asciidoc_version], [$1], [if test "x$use_asciidoc" = xauto; then AC_MSG_WARN([asciidoc version $asciidoc_version found, but $1 needed]) have_asciidoc=no else AC_MSG_ERROR([asciidoc version $asciidoc_version found, but $1 needed]) fi]) fi]) AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes]) ]) # XORG_WITH_ASCIIDOC # XORG_WITH_DOXYGEN([MIN-VERSION], [DEFAULT]) # -------------------------------- # Minimum version: 1.5.0 # Minimum version for optional DEFAULT argument: 1.11.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a module to test for the # presence of the tool and obtain it's path in separate variables. Coupled with # the --with-doxygen option, it allows maximum flexibilty in making decisions # as whether or not to use the doxygen package. When DEFAULT is not specified, # --with-doxygen assumes 'auto'. # # Interface to module: # HAVE_DOXYGEN: used in makefiles to conditionally generate documentation # DOXYGEN: returns the path of the doxygen program found # returns the path set by the user in the environment # --with-doxygen: 'yes' user instructs the module to use doxygen # 'no' user instructs the module not to use doxygen # # If the user sets the value of DOXYGEN, AC_PATH_PROG skips testing the path. # AC_DEFUN([XORG_WITH_DOXYGEN],[ AC_ARG_VAR([DOXYGEN], [Path to doxygen command]) m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(doxygen, AS_HELP_STRING([--with-doxygen], [Use doxygen to regenerate documentation (default: ]_defopt[)]), [use_doxygen=$withval], [use_doxygen=]_defopt) m4_undefine([_defopt]) if test "x$use_doxygen" = x"auto"; then AC_PATH_PROG([DOXYGEN], [doxygen]) if test "x$DOXYGEN" = "x"; then AC_MSG_WARN([doxygen not found - documentation targets will be skipped]) have_doxygen=no else have_doxygen=yes fi elif test "x$use_doxygen" = x"yes" ; then AC_PATH_PROG([DOXYGEN], [doxygen]) if test "x$DOXYGEN" = "x"; then AC_MSG_ERROR([--with-doxygen=yes specified but doxygen not found in PATH]) fi have_doxygen=yes elif test "x$use_doxygen" = x"no" ; then if test "x$DOXYGEN" != "x"; then AC_MSG_WARN([ignoring DOXYGEN environment variable since --with-doxygen=no was specified]) fi have_doxygen=no else AC_MSG_ERROR([--with-doxygen expects 'yes' or 'no']) fi m4_ifval([$1], [if test "$have_doxygen" = yes; then # scrape the doxygen version AC_MSG_CHECKING([the doxygen version]) doxygen_version=`$DOXYGEN --version 2>/dev/null` AC_MSG_RESULT([$doxygen_version]) AS_VERSION_COMPARE([$doxygen_version], [$1], [if test "x$use_doxygen" = xauto; then AC_MSG_WARN([doxygen version $doxygen_version found, but $1 needed]) have_doxygen=no else AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed]) fi]) fi]) AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) ]) # XORG_WITH_DOXYGEN # XORG_WITH_GROFF([DEFAULT]) # ---------------- # Minimum version: 1.6.0 # Minimum version for optional DEFAULT argument: 1.11.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a module to test for the # presence of the tool and obtain it's path in separate variables. Coupled with # the --with-groff option, it allows maximum flexibilty in making decisions # as whether or not to use the groff package. When DEFAULT is not specified, # --with-groff assumes 'auto'. # # Interface to module: # HAVE_GROFF: used in makefiles to conditionally generate documentation # HAVE_GROFF_MM: the memorandum macros (-mm) package # HAVE_GROFF_MS: the -ms macros package # GROFF: returns the path of the groff program found # returns the path set by the user in the environment # --with-groff: 'yes' user instructs the module to use groff # 'no' user instructs the module not to use groff # # Added in version 1.9.0: # HAVE_GROFF_HTML: groff has dependencies to output HTML format: # pnmcut pnmcrop pnmtopng pnmtops from the netpbm package. # psselect from the psutils package. # the ghostcript package. Refer to the grohtml man pages # # If the user sets the value of GROFF, AC_PATH_PROG skips testing the path. # # OS and distros often splits groff in a basic and full package, the former # having the groff program and the later having devices, fonts and macros # Checking for the groff executable is not enough. # # If macros are missing, we cannot assume that groff is useless, so we don't # unset HAVE_GROFF or GROFF env variables. # HAVE_GROFF_?? can never be true while HAVE_GROFF is false. # AC_DEFUN([XORG_WITH_GROFF],[ AC_ARG_VAR([GROFF], [Path to groff command]) m4_define([_defopt], m4_default([$1], [auto])) AC_ARG_WITH(groff, AS_HELP_STRING([--with-groff], [Use groff to regenerate documentation (default: ]_defopt[)]), [use_groff=$withval], [use_groff=]_defopt) m4_undefine([_defopt]) if test "x$use_groff" = x"auto"; then AC_PATH_PROG([GROFF], [groff]) if test "x$GROFF" = "x"; then AC_MSG_WARN([groff not found - documentation targets will be skipped]) have_groff=no else have_groff=yes fi elif test "x$use_groff" = x"yes" ; then AC_PATH_PROG([GROFF], [groff]) if test "x$GROFF" = "x"; then AC_MSG_ERROR([--with-groff=yes specified but groff not found in PATH]) fi have_groff=yes elif test "x$use_groff" = x"no" ; then if test "x$GROFF" != "x"; then AC_MSG_WARN([ignoring GROFF environment variable since --with-groff=no was specified]) fi have_groff=no else AC_MSG_ERROR([--with-groff expects 'yes' or 'no']) fi # We have groff, test for the presence of the macro packages if test "x$have_groff" = x"yes"; then AC_MSG_CHECKING([for ${GROFF} -ms macros]) if ${GROFF} -ms -I. /dev/null >/dev/null 2>&1 ; then groff_ms_works=yes else groff_ms_works=no fi AC_MSG_RESULT([$groff_ms_works]) AC_MSG_CHECKING([for ${GROFF} -mm macros]) if ${GROFF} -mm -I. /dev/null >/dev/null 2>&1 ; then groff_mm_works=yes else groff_mm_works=no fi AC_MSG_RESULT([$groff_mm_works]) fi # We have groff, test for HTML dependencies, one command per package if test "x$have_groff" = x"yes"; then AC_PATH_PROGS(GS_PATH, [gs gswin32c]) AC_PATH_PROG(PNMTOPNG_PATH, [pnmtopng]) AC_PATH_PROG(PSSELECT_PATH, [psselect]) if test "x$GS_PATH" != "x" -a "x$PNMTOPNG_PATH" != "x" -a "x$PSSELECT_PATH" != "x"; then have_groff_html=yes else have_groff_html=no AC_MSG_WARN([grohtml dependencies not found - HTML Documentation skipped. Refer to grohtml man pages]) fi fi # Set Automake conditionals for Makefiles AM_CONDITIONAL([HAVE_GROFF], [test "$have_groff" = yes]) AM_CONDITIONAL([HAVE_GROFF_MS], [test "$groff_ms_works" = yes]) AM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes]) AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) ]) # XORG_WITH_GROFF # XORG_WITH_FOP([MIN-VERSION], [DEFAULT]) # --------------------------------------- # Minimum version: 1.6.0 # Minimum version for optional DEFAULT argument: 1.11.0 # Minimum version for optional MIN-VERSION argument: 1.15.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a module to test for the # presence of the tool and obtain it's path in separate variables. Coupled with # the --with-fop option, it allows maximum flexibilty in making decisions # as whether or not to use the fop package. When DEFAULT is not specified, # --with-fop assumes 'auto'. # # Interface to module: # HAVE_FOP: used in makefiles to conditionally generate documentation # FOP: returns the path of the fop program found # returns the path set by the user in the environment # --with-fop: 'yes' user instructs the module to use fop # 'no' user instructs the module not to use fop # # If the user sets the value of FOP, AC_PATH_PROG skips testing the path. # AC_DEFUN([XORG_WITH_FOP],[ AC_ARG_VAR([FOP], [Path to fop command]) m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(fop, AS_HELP_STRING([--with-fop], [Use fop to regenerate documentation (default: ]_defopt[)]), [use_fop=$withval], [use_fop=]_defopt) m4_undefine([_defopt]) if test "x$use_fop" = x"auto"; then AC_PATH_PROG([FOP], [fop]) if test "x$FOP" = "x"; then AC_MSG_WARN([fop not found - documentation targets will be skipped]) have_fop=no else have_fop=yes fi elif test "x$use_fop" = x"yes" ; then AC_PATH_PROG([FOP], [fop]) if test "x$FOP" = "x"; then AC_MSG_ERROR([--with-fop=yes specified but fop not found in PATH]) fi have_fop=yes elif test "x$use_fop" = x"no" ; then if test "x$FOP" != "x"; then AC_MSG_WARN([ignoring FOP environment variable since --with-fop=no was specified]) fi have_fop=no else AC_MSG_ERROR([--with-fop expects 'yes' or 'no']) fi # Test for a minimum version of fop, if provided. m4_ifval([$1], [if test "$have_fop" = yes; then # scrape the fop version AC_MSG_CHECKING([for fop minimum version]) fop_version=`$FOP -version 2>/dev/null | cut -d' ' -f3` AC_MSG_RESULT([$fop_version]) AS_VERSION_COMPARE([$fop_version], [$1], [if test "x$use_fop" = xauto; then AC_MSG_WARN([fop version $fop_version found, but $1 needed]) have_fop=no else AC_MSG_ERROR([fop version $fop_version found, but $1 needed]) fi]) fi]) AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes]) ]) # XORG_WITH_FOP # XORG_WITH_PS2PDF([DEFAULT]) # ---------------- # Minimum version: 1.6.0 # Minimum version for optional DEFAULT argument: 1.11.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a module to test for the # presence of the tool and obtain it's path in separate variables. Coupled with # the --with-ps2pdf option, it allows maximum flexibilty in making decisions # as whether or not to use the ps2pdf package. When DEFAULT is not specified, # --with-ps2pdf assumes 'auto'. # # Interface to module: # HAVE_PS2PDF: used in makefiles to conditionally generate documentation # PS2PDF: returns the path of the ps2pdf program found # returns the path set by the user in the environment # --with-ps2pdf: 'yes' user instructs the module to use ps2pdf # 'no' user instructs the module not to use ps2pdf # # If the user sets the value of PS2PDF, AC_PATH_PROG skips testing the path. # AC_DEFUN([XORG_WITH_PS2PDF],[ AC_ARG_VAR([PS2PDF], [Path to ps2pdf command]) m4_define([_defopt], m4_default([$1], [auto])) AC_ARG_WITH(ps2pdf, AS_HELP_STRING([--with-ps2pdf], [Use ps2pdf to regenerate documentation (default: ]_defopt[)]), [use_ps2pdf=$withval], [use_ps2pdf=]_defopt) m4_undefine([_defopt]) if test "x$use_ps2pdf" = x"auto"; then AC_PATH_PROG([PS2PDF], [ps2pdf]) if test "x$PS2PDF" = "x"; then AC_MSG_WARN([ps2pdf not found - documentation targets will be skipped]) have_ps2pdf=no else have_ps2pdf=yes fi elif test "x$use_ps2pdf" = x"yes" ; then AC_PATH_PROG([PS2PDF], [ps2pdf]) if test "x$PS2PDF" = "x"; then AC_MSG_ERROR([--with-ps2pdf=yes specified but ps2pdf not found in PATH]) fi have_ps2pdf=yes elif test "x$use_ps2pdf" = x"no" ; then if test "x$PS2PDF" != "x"; then AC_MSG_WARN([ignoring PS2PDF environment variable since --with-ps2pdf=no was specified]) fi have_ps2pdf=no else AC_MSG_ERROR([--with-ps2pdf expects 'yes' or 'no']) fi AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes]) ]) # XORG_WITH_PS2PDF # XORG_ENABLE_DOCS (enable_docs=yes) # ---------------- # Minimum version: 1.6.0 # # Documentation tools are not always available on all platforms and sometimes # not at the appropriate level. This macro enables a builder to skip all # documentation targets except traditional man pages. # Combined with the specific tool checking macros XORG_WITH_*, it provides # maximum flexibilty in controlling documentation building. # Refer to: # XORG_WITH_XMLTO --with-xmlto # XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_DOXYGEN --with-doxygen # XORG_WITH_FOP --with-fop # XORG_WITH_GROFF --with-groff # XORG_WITH_PS2PDF --with-ps2pdf # # Interface to module: # ENABLE_DOCS: used in makefiles to conditionally generate documentation # --enable-docs: 'yes' user instructs the module to generate docs # 'no' user instructs the module not to generate docs # parm1: specify the default value, yes or no. # AC_DEFUN([XORG_ENABLE_DOCS],[ m4_define([docs_default], m4_default([$1], [yes])) AC_ARG_ENABLE(docs, AS_HELP_STRING([--enable-docs], [Enable building the documentation (default: ]docs_default[)]), [build_docs=$enableval], [build_docs=]docs_default) m4_undefine([docs_default]) AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes]) AC_MSG_CHECKING([whether to build documentation]) AC_MSG_RESULT([$build_docs]) ]) # XORG_ENABLE_DOCS # XORG_ENABLE_DEVEL_DOCS (enable_devel_docs=yes) # ---------------- # Minimum version: 1.6.0 # # This macro enables a builder to skip all developer documentation. # Combined with the specific tool checking macros XORG_WITH_*, it provides # maximum flexibilty in controlling documentation building. # Refer to: # XORG_WITH_XMLTO --with-xmlto # XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_DOXYGEN --with-doxygen # XORG_WITH_FOP --with-fop # XORG_WITH_GROFF --with-groff # XORG_WITH_PS2PDF --with-ps2pdf # # Interface to module: # ENABLE_DEVEL_DOCS: used in makefiles to conditionally generate developer docs # --enable-devel-docs: 'yes' user instructs the module to generate developer docs # 'no' user instructs the module not to generate developer docs # parm1: specify the default value, yes or no. # AC_DEFUN([XORG_ENABLE_DEVEL_DOCS],[ m4_define([devel_default], m4_default([$1], [yes])) AC_ARG_ENABLE(devel-docs, AS_HELP_STRING([--enable-devel-docs], [Enable building the developer documentation (default: ]devel_default[)]), [build_devel_docs=$enableval], [build_devel_docs=]devel_default) m4_undefine([devel_default]) AM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes]) AC_MSG_CHECKING([whether to build developer documentation]) AC_MSG_RESULT([$build_devel_docs]) ]) # XORG_ENABLE_DEVEL_DOCS # XORG_ENABLE_SPECS (enable_specs=yes) # ---------------- # Minimum version: 1.6.0 # # This macro enables a builder to skip all functional specification targets. # Combined with the specific tool checking macros XORG_WITH_*, it provides # maximum flexibilty in controlling documentation building. # Refer to: # XORG_WITH_XMLTO --with-xmlto # XORG_WITH_ASCIIDOC --with-asciidoc # XORG_WITH_DOXYGEN --with-doxygen # XORG_WITH_FOP --with-fop # XORG_WITH_GROFF --with-groff # XORG_WITH_PS2PDF --with-ps2pdf # # Interface to module: # ENABLE_SPECS: used in makefiles to conditionally generate specs # --enable-specs: 'yes' user instructs the module to generate specs # 'no' user instructs the module not to generate specs # parm1: specify the default value, yes or no. # AC_DEFUN([XORG_ENABLE_SPECS],[ m4_define([spec_default], m4_default([$1], [yes])) AC_ARG_ENABLE(specs, AS_HELP_STRING([--enable-specs], [Enable building the specs (default: ]spec_default[)]), [build_specs=$enableval], [build_specs=]spec_default) m4_undefine([spec_default]) AM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes]) AC_MSG_CHECKING([whether to build functional specifications]) AC_MSG_RESULT([$build_specs]) ]) # XORG_ENABLE_SPECS # XORG_ENABLE_UNIT_TESTS (enable_unit_tests=auto) # ---------------------------------------------- # Minimum version: 1.13.0 # # This macro enables a builder to enable/disable unit testing # It makes no assumption about the test cases implementation # Test cases may or may not use Automake "Support for test suites" # They may or may not use the software utility library GLib # # When used in conjunction with XORG_WITH_GLIB, use both AM_CONDITIONAL # ENABLE_UNIT_TESTS and HAVE_GLIB. Not all unit tests may use glib. # The variable enable_unit_tests is used by other macros in this file. # # Interface to module: # ENABLE_UNIT_TESTS: used in makefiles to conditionally build tests # enable_unit_tests: used in configure.ac for additional configuration # --enable-unit-tests: 'yes' user instructs the module to build tests # 'no' user instructs the module not to build tests # parm1: specify the default value, yes or no. # AC_DEFUN([XORG_ENABLE_UNIT_TESTS],[ AC_BEFORE([$0], [XORG_WITH_GLIB]) AC_BEFORE([$0], [XORG_LD_WRAP]) AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) m4_define([_defopt], m4_default([$1], [auto])) AC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests], [Enable building unit test cases (default: ]_defopt[)]), [enable_unit_tests=$enableval], [enable_unit_tests=]_defopt) m4_undefine([_defopt]) AM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno]) AC_MSG_CHECKING([whether to build unit test cases]) AC_MSG_RESULT([$enable_unit_tests]) ]) # XORG_ENABLE_UNIT_TESTS # XORG_ENABLE_INTEGRATION_TESTS (enable_unit_tests=auto) # ------------------------------------------------------ # Minimum version: 1.17.0 # # This macro enables a builder to enable/disable integration testing # It makes no assumption about the test cases' implementation # Test cases may or may not use Automake "Support for test suites" # # Please see XORG_ENABLE_UNIT_TESTS for unit test support. Unit test support # usually requires less dependencies and may be built and run under less # stringent environments than integration tests. # # Interface to module: # ENABLE_INTEGRATION_TESTS: used in makefiles to conditionally build tests # enable_integration_tests: used in configure.ac for additional configuration # --enable-integration-tests: 'yes' user instructs the module to build tests # 'no' user instructs the module not to build tests # parm1: specify the default value, yes or no. # AC_DEFUN([XORG_ENABLE_INTEGRATION_TESTS],[ AC_REQUIRE([XORG_MEMORY_CHECK_FLAGS]) m4_define([_defopt], m4_default([$1], [auto])) AC_ARG_ENABLE(integration-tests, AS_HELP_STRING([--enable-integration-tests], [Enable building integration test cases (default: ]_defopt[)]), [enable_integration_tests=$enableval], [enable_integration_tests=]_defopt) m4_undefine([_defopt]) AM_CONDITIONAL([ENABLE_INTEGRATION_TESTS], [test "x$enable_integration_tests" != xno]) AC_MSG_CHECKING([whether to build unit test cases]) AC_MSG_RESULT([$enable_integration_tests]) ]) # XORG_ENABLE_INTEGRATION_TESTS # XORG_WITH_GLIB([MIN-VERSION], [DEFAULT]) # ---------------------------------------- # Minimum version: 1.13.0 # # GLib is a library which provides advanced data structures and functions. # This macro enables a module to test for the presence of Glib. # # When used with ENABLE_UNIT_TESTS, it is assumed GLib is used for unit testing. # Otherwise the value of $enable_unit_tests is blank. # # Please see XORG_ENABLE_INTEGRATION_TESTS for integration test support. Unit # test support usually requires less dependencies and may be built and run under # less stringent environments than integration tests. # # Interface to module: # HAVE_GLIB: used in makefiles to conditionally build targets # with_glib: used in configure.ac to know if GLib has been found # --with-glib: 'yes' user instructs the module to use glib # 'no' user instructs the module not to use glib # AC_DEFUN([XORG_WITH_GLIB],[ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) m4_define([_defopt], m4_default([$2], [auto])) AC_ARG_WITH(glib, AS_HELP_STRING([--with-glib], [Use GLib library for unit testing (default: ]_defopt[)]), [with_glib=$withval], [with_glib=]_defopt) m4_undefine([_defopt]) have_glib=no # Do not probe GLib if user explicitly disabled unit testing if test "x$enable_unit_tests" != x"no"; then # Do not probe GLib if user explicitly disabled it if test "x$with_glib" != x"no"; then m4_ifval( [$1], [PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])], [PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])] ) fi fi # Not having GLib when unit testing has been explicitly requested is an error if test "x$enable_unit_tests" = x"yes"; then if test "x$have_glib" = x"no"; then AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) fi fi # Having unit testing disabled when GLib has been explicitly requested is an error if test "x$enable_unit_tests" = x"no"; then if test "x$with_glib" = x"yes"; then AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found]) fi fi # Not having GLib when it has been explicitly requested is an error if test "x$with_glib" = x"yes"; then if test "x$have_glib" = x"no"; then AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found]) fi fi AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes]) ]) # XORG_WITH_GLIB # XORG_LD_WRAP([required|optional]) # --------------------------------- # Minimum version: 1.13.0 # # Check if linker supports -wrap, passed via compiler flags # # When used with ENABLE_UNIT_TESTS, it is assumed -wrap is used for unit testing. # Otherwise the value of $enable_unit_tests is blank. # # Argument added in 1.16.0 - default is "required", to match existing behavior # of returning an error if enable_unit_tests is yes, and ld -wrap is not # available, an argument of "optional" allows use when some unit tests require # ld -wrap and others do not. # AC_DEFUN([XORG_LD_WRAP],[ XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no], [AC_LANG_PROGRAM([#include void __wrap_exit(int status) { return; }], [exit(0);])]) # Not having ld wrap when unit testing has been explicitly requested is an error if test "x$enable_unit_tests" = x"yes" -a "x$1" != "xoptional"; then if test "x$have_ld_wrap" = x"no"; then AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available]) fi fi AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes]) # ]) # XORG_LD_WRAP # XORG_CHECK_LINKER_FLAGS # ----------------------- # SYNOPSIS # # XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE], [PROGRAM-SOURCE]) # # DESCRIPTION # # Check whether the given linker FLAGS work with the current language's # linker, or whether they give an error. # # ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on # success/failure. # # PROGRAM-SOURCE is the program source to link with, if needed # # NOTE: Based on AX_CHECK_COMPILER_FLAGS. # # LICENSE # # Copyright (c) 2009 Mike Frysinger # Copyright (c) 2009 Steven G. Johnson # Copyright (c) 2009 Matteo Frigo # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the # Free Software Foundation, either version 3 of the License, or (at your # option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General # Public License for more details. # # You should have received a copy of the GNU General Public License along # with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure # scripts that are the output of Autoconf when processing the Macro. You # need not follow the terms of the GNU General Public License when using # or distributing such scripts, even though portions of the text of the # Macro appear in them. The GNU General Public License (GPL) does govern # all other use of the material that constitutes the Autoconf Macro. # # This special exception to the GPL applies to versions of the Autoconf # Macro released by the Autoconf Archive. When you make and distribute a # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well.# AC_DEFUN([XORG_CHECK_LINKER_FLAGS], [AC_MSG_CHECKING([whether the linker accepts $1]) dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname: AS_LITERAL_IF([$1], [AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [ ax_save_FLAGS=$LDFLAGS LDFLAGS="$1" AC_LINK_IFELSE([m4_default([$4],[AC_LANG_PROGRAM()])], AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, AS_TR_SH(xorg_cv_linker_flags_[$1])=no) LDFLAGS=$ax_save_FLAGS])], [ax_save_FLAGS=$LDFLAGS LDFLAGS="$1" AC_LINK_IFELSE([AC_LANG_PROGRAM()], eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes, eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no) LDFLAGS=$ax_save_FLAGS]) eval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1]) AC_MSG_RESULT($xorg_check_linker_flags) if test "x$xorg_check_linker_flags" = xyes; then m4_default([$2], :) else m4_default([$3], :) fi ]) # XORG_CHECK_LINKER_FLAGS # XORG_MEMORY_CHECK_FLAGS # ----------------------- # Minimum version: 1.16.0 # # This macro attempts to find appropriate memory checking functionality # for various platforms which unit testing code may use to catch various # forms of memory allocation and access errors in testing. # # Interface to module: # XORG_MALLOC_DEBUG_ENV - environment variables to set to enable debugging # Usually added to TESTS_ENVIRONMENT in Makefile.am # # If the user sets the value of XORG_MALLOC_DEBUG_ENV, it is used verbatim. # AC_DEFUN([XORG_MEMORY_CHECK_FLAGS],[ AC_REQUIRE([AC_CANONICAL_HOST]) AC_ARG_VAR([XORG_MALLOC_DEBUG_ENV], [Environment variables to enable memory checking in tests]) # Check for different types of support on different platforms case $host_os in solaris*) AC_CHECK_LIB([umem], [umem_alloc], [malloc_debug_env='LD_PRELOAD=libumem.so UMEM_DEBUG=default']) ;; *-gnu*) # GNU libc - Value is used as a single byte bit pattern, # both directly and inverted, so should not be 0 or 255. malloc_debug_env='MALLOC_PERTURB_=15' ;; darwin*) malloc_debug_env='MallocPreScribble=1 MallocScribble=1 DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib' ;; *bsd*) malloc_debug_env='MallocPreScribble=1 MallocScribble=1' ;; esac # User supplied flags override default flags if test "x$XORG_MALLOC_DEBUG_ENV" != "x"; then malloc_debug_env="$XORG_MALLOC_DEBUG_ENV" fi AC_SUBST([XORG_MALLOC_DEBUG_ENV],[$malloc_debug_env]) ]) # XORG_WITH_LINT # XORG_CHECK_MALLOC_ZERO # ---------------------- # Minimum version: 1.0.0 # # Defines {MALLOC,XMALLOC,XTMALLOC}_ZERO_CFLAGS appropriately if # malloc(0) returns NULL. Packages should add one of these cflags to # their AM_CFLAGS (or other appropriate *_CFLAGS) to use them. AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[ AC_ARG_ENABLE(malloc0returnsnull, AS_HELP_STRING([--enable-malloc0returnsnull], [malloc(0) returns NULL (default: auto)]), [MALLOC_ZERO_RETURNS_NULL=$enableval], [MALLOC_ZERO_RETURNS_NULL=auto]) AC_MSG_CHECKING([whether malloc(0) returns NULL]) if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then AC_RUN_IFELSE([AC_LANG_PROGRAM([ #include ],[ char *m0, *r0, *c0, *p; m0 = malloc(0); p = malloc(10); r0 = realloc(p,0); c0 = calloc(0,10); exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1); ])], [MALLOC_ZERO_RETURNS_NULL=yes], [MALLOC_ZERO_RETURNS_NULL=no], [MALLOC_ZERO_RETURNS_NULL=yes]) fi AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL]) if test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL" XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC" else MALLOC_ZERO_CFLAGS="" XMALLOC_ZERO_CFLAGS="" XTMALLOC_ZERO_CFLAGS="" fi AC_SUBST([MALLOC_ZERO_CFLAGS]) AC_SUBST([XMALLOC_ZERO_CFLAGS]) AC_SUBST([XTMALLOC_ZERO_CFLAGS]) ]) # XORG_CHECK_MALLOC_ZERO # XORG_WITH_LINT() # ---------------- # Minimum version: 1.1.0 # # This macro enables the use of a tool that flags some suspicious and # non-portable constructs (likely to be bugs) in C language source code. # It will attempt to locate the tool and use appropriate options. # There are various lint type tools on different platforms. # # Interface to module: # LINT: returns the path to the tool found on the platform # or the value set to LINT on the configure cmd line # also an Automake conditional # LINT_FLAGS: an Automake variable with appropriate flags # # --with-lint: 'yes' user instructs the module to use lint # 'no' user instructs the module not to use lint (default) # # If the user sets the value of LINT, AC_PATH_PROG skips testing the path. # If the user sets the value of LINT_FLAGS, they are used verbatim. # AC_DEFUN([XORG_WITH_LINT],[ AC_ARG_VAR([LINT], [Path to a lint-style command]) AC_ARG_VAR([LINT_FLAGS], [Flags for the lint-style command]) AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint], [Use a lint-style source code checker (default: disabled)])], [use_lint=$withval], [use_lint=no]) # Obtain platform specific info like program name and options # The lint program on FreeBSD and NetBSD is different from the one on Solaris case $host_os in *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*) lint_name=splint lint_options="-badflag" ;; *freebsd* | *netbsd*) lint_name=lint lint_options="-u -b" ;; *solaris*) lint_name=lint lint_options="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2" ;; esac # Test for the presence of the program (either guessed by the code or spelled out by the user) if test "x$use_lint" = x"yes" ; then AC_PATH_PROG([LINT], [$lint_name]) if test "x$LINT" = "x"; then AC_MSG_ERROR([--with-lint=yes specified but lint-style tool not found in PATH]) fi elif test "x$use_lint" = x"no" ; then if test "x$LINT" != "x"; then AC_MSG_WARN([ignoring LINT environment variable since --with-lint=no was specified]) fi else AC_MSG_ERROR([--with-lint expects 'yes' or 'no'. Use LINT variable to specify path.]) fi # User supplied flags override default flags if test "x$LINT_FLAGS" != "x"; then lint_options=$LINT_FLAGS fi AC_SUBST([LINT_FLAGS],[$lint_options]) AM_CONDITIONAL(LINT, [test "x$LINT" != x]) ]) # XORG_WITH_LINT # XORG_LINT_LIBRARY(LIBNAME) # -------------------------- # Minimum version: 1.1.0 # # Sets up flags for building lint libraries for checking programs that call # functions in the library. # # Interface to module: # LINTLIB - Automake variable with the name of lint library file to make # MAKE_LINT_LIB - Automake conditional # # --enable-lint-library: - 'yes' user instructs the module to created a lint library # - 'no' user instructs the module not to create a lint library (default) AC_DEFUN([XORG_LINT_LIBRARY],[ AC_REQUIRE([XORG_WITH_LINT]) AC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library], [Create lint library (default: disabled)])], [make_lint_lib=$enableval], [make_lint_lib=no]) if test "x$make_lint_lib" = x"yes" ; then LINTLIB=llib-l$1.ln if test "x$LINT" = "x"; then AC_MSG_ERROR([Cannot make lint library without --with-lint]) fi elif test "x$make_lint_lib" != x"no" ; then AC_MSG_ERROR([--enable-lint-library expects 'yes' or 'no'.]) fi AC_SUBST(LINTLIB) AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno]) ]) # XORG_LINT_LIBRARY # XORG_COMPILER_BRAND # ------------------- # Minimum version: 1.14.0 # # Checks for various brands of compilers and sets flags as appropriate: # GNU gcc - relies on AC_PROG_CC (via AC_PROG_CC_C99) to set GCC to "yes" # GNU g++ - relies on AC_PROG_CXX to set GXX to "yes" # clang compiler - sets CLANGCC to "yes" # Intel compiler - sets INTELCC to "yes" # Sun/Oracle Solaris Studio cc - sets SUNCC to "yes" # AC_DEFUN([XORG_COMPILER_BRAND], [ AC_LANG_CASE( [C], [ AC_REQUIRE([AC_PROG_CC_C99]) ], [C++], [ AC_REQUIRE([AC_PROG_CXX]) ] ) AC_CHECK_DECL([__clang__], [CLANGCC="yes"], [CLANGCC="no"]) AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) ]) # XORG_COMPILER_BRAND # XORG_TESTSET_CFLAG(, , [, ...]) # --------------- # Minimum version: 1.16.0 # # Test if the compiler works when passed the given flag as a command line argument. # If it succeeds, the flag is appeneded to the given variable. If not, it tries the # next flag in the list until there are no more options. # # Note that this does not guarantee that the compiler supports the flag as some # compilers will simply ignore arguments that they do not understand, but we do # attempt to weed out false positives by using -Werror=unknown-warning-option and # -Werror=unused-command-line-argument # AC_DEFUN([XORG_TESTSET_CFLAG], [ m4_if([$#], 0, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) m4_if([$#], 1, [m4_fatal([XORG_TESTSET_CFLAG was given with an unsupported number of arguments])]) AC_LANG_COMPILER_REQUIRE AC_LANG_CASE( [C], [ AC_REQUIRE([AC_PROG_CC_C99]) define([PREFIX], [C]) define([CACHE_PREFIX], [cc]) define([COMPILER], [$CC]) ], [C++], [ define([PREFIX], [CXX]) define([CACHE_PREFIX], [cxx]) define([COMPILER], [$CXX]) ] ) [xorg_testset_save_]PREFIX[FLAGS]="$PREFIX[FLAGS]" if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "x" ; then PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unknown-warning-option], [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option], AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=yes], [xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option=no])) [xorg_testset_]CACHE_PREFIX[_unknown_warning_option]=$[xorg_cv_]CACHE_PREFIX[_flag_unknown_warning_option] PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" fi if test "x$[xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]" = "x" ; then if test "x$[xorg_testset_]CACHE_PREFIX[_unknown_warning_option]" = "xyes" ; then PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" fi PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" AC_CACHE_CHECK([if ]COMPILER[ supports -Werror=unused-command-line-argument], [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument], AC_COMPILE_IFELSE([AC_LANG_SOURCE([int i;])], [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=yes], [xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument=no])) [xorg_testset_]CACHE_PREFIX[_unused_command_line_argument]=$[xorg_cv_]CACHE_PREFIX[_flag_unused_command_line_argument] PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" fi found="no" m4_foreach([flag], m4_cdr($@), [ if test $found = "no" ; then if test "x$xorg_testset_unknown_warning_option" = "xyes" ; then PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unknown-warning-option" fi if test "x$xorg_testset_unused_command_line_argument" = "xyes" ; then PREFIX[FLAGS]="$PREFIX[FLAGS] -Werror=unused-command-line-argument" fi PREFIX[FLAGS]="$PREFIX[FLAGS] ]flag[" dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname AC_MSG_CHECKING([if ]COMPILER[ supports]flag[]) cacheid=AS_TR_SH([xorg_cv_]CACHE_PREFIX[_flag_]flag[]) AC_CACHE_VAL($cacheid, [AC_LINK_IFELSE([AC_LANG_PROGRAM([int i;])], [eval $cacheid=yes], [eval $cacheid=no])]) PREFIX[FLAGS]="$[xorg_testset_save_]PREFIX[FLAGS]" eval supported=\$$cacheid AC_MSG_RESULT([$supported]) if test "$supported" = "yes" ; then $1="$$1 ]flag[" found="yes" fi fi ]) ]) # XORG_TESTSET_CFLAG # XORG_COMPILER_FLAGS # --------------- # Minimum version: 1.16.0 # # Defines BASE_CFLAGS or BASE_CXXFLAGS to contain a set of command line # arguments supported by the selected compiler which do NOT alter the generated # code. These arguments will cause the compiler to print various warnings # during compilation AND turn a conservative set of warnings into errors. # # The set of flags supported by BASE_CFLAGS and BASE_CXXFLAGS will grow in # future versions of util-macros as options are added to new compilers. # AC_DEFUN([XORG_COMPILER_FLAGS], [ AC_REQUIRE([XORG_COMPILER_BRAND]) AC_ARG_ENABLE(selective-werror, AS_HELP_STRING([--disable-selective-werror], [Turn off selective compiler errors. (default: enabled)]), [SELECTIVE_WERROR=$enableval], [SELECTIVE_WERROR=yes]) AC_LANG_CASE( [C], [ define([PREFIX], [C]) ], [C++], [ define([PREFIX], [CXX]) ] ) # -v is too short to test reliably with XORG_TESTSET_CFLAG if test "x$SUNCC" = "xyes"; then [BASE_]PREFIX[FLAGS]="-v" else [BASE_]PREFIX[FLAGS]="" fi # This chunk of warnings were those that existed in the legacy CWARNFLAGS XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wall]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-arith]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-declarations]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wformat=2], [-Wformat]) AC_LANG_CASE( [C], [ XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wstrict-prototypes]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-prototypes]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnested-externs]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wbad-function-cast]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wold-style-definition]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wdeclaration-after-statement]) ] ) # This chunk adds additional warnings that could catch undesired effects. XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wunused]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wuninitialized]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wshadow]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-qual]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-noreturn]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-format-attribute]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wredundant-decls]) # These are currently disabled because they are noisy. They will be enabled # in the future once the codebase is sufficiently modernized to silence # them. For now, I don't want them to drown out the other warnings. # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wlogical-op]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wparentheses]) # XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wcast-align]) # Turn some warnings into errors, so we don't accidently get successful builds # when there are problems that should be fixed. if test "x$SELECTIVE_WERROR" = "xyes" ; then XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=implicit], [-errwarn=E_NO_EXPLICIT_TYPE_GIVEN -errwarn=E_NO_IMPLICIT_DECL_ALLOWED]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=nonnull]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=init-self]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=main]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=missing-braces]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=sequence-point]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=return-type], [-errwarn=E_FUNC_HAS_NO_RETURN_STMT]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=trigraphs]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=array-bounds]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=write-strings]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=address]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=int-to-pointer-cast], [-errwarn=E_BAD_PTR_INT_COMBINATION]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Werror=pointer-to-int-cast]) # Also -errwarn=E_BAD_PTR_INT_COMBINATION else AC_MSG_WARN([You have chosen not to turn some select compiler warnings into errors. This should not be necessary. Please report why you needed to do so in a bug report at $PACKAGE_BUGREPORT]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wimplicit]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wnonnull]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Winit-self]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmain]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wmissing-braces]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wsequence-point]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wreturn-type]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wtrigraphs]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Warray-bounds]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wwrite-strings]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Waddress]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wint-to-pointer-cast]) XORG_TESTSET_CFLAG([[BASE_]PREFIX[FLAGS]], [-Wpointer-to-int-cast]) fi AC_SUBST([BASE_]PREFIX[FLAGS]) ]) # XORG_COMPILER_FLAGS # XORG_CWARNFLAGS # --------------- # Minimum version: 1.2.0 # Deprecated since: 1.16.0 (Use XORG_COMPILER_FLAGS instead) # # Defines CWARNFLAGS to enable C compiler warnings. # # This function is deprecated because it defines -fno-strict-aliasing # which alters the code generated by the compiler. If -fno-strict-aliasing # is needed, then it should be added explicitly in the module when # it is updated to use BASE_CFLAGS. # AC_DEFUN([XORG_CWARNFLAGS], [ AC_REQUIRE([XORG_COMPILER_FLAGS]) AC_REQUIRE([XORG_COMPILER_BRAND]) AC_LANG_CASE( [C], [ CWARNFLAGS="$BASE_CFLAGS" if test "x$GCC" = xyes ; then CWARNFLAGS="$CWARNFLAGS -fno-strict-aliasing" fi AC_SUBST(CWARNFLAGS) ] ) ]) # XORG_CWARNFLAGS # XORG_STRICT_OPTION # ----------------------- # Minimum version: 1.3.0 # # Add configure option to enable strict compilation flags, such as treating # warnings as fatal errors. # If --enable-strict-compilation is passed to configure, adds strict flags to # $BASE_CFLAGS or $BASE_CXXFLAGS and the deprecated $CWARNFLAGS. # # Starting in 1.14.0 also exports $STRICT_CFLAGS for use in other tests or # when strict compilation is unconditionally desired. AC_DEFUN([XORG_STRICT_OPTION], [ AC_REQUIRE([XORG_CWARNFLAGS]) AC_REQUIRE([XORG_COMPILER_FLAGS]) AC_ARG_ENABLE(strict-compilation, AS_HELP_STRING([--enable-strict-compilation], [Enable all warnings from compiler and make them errors (default: disabled)]), [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) AC_LANG_CASE( [C], [ define([PREFIX], [C]) ], [C++], [ define([PREFIX], [CXX]) ] ) [STRICT_]PREFIX[FLAGS]="" XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-pedantic]) XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror], [-errwarn]) # Earlier versions of gcc (eg: 4.2) support -Werror=attributes, but do not # activate it with -Werror, so we add it here explicitly. XORG_TESTSET_CFLAG([[STRICT_]PREFIX[FLAGS]], [-Werror=attributes]) if test "x$STRICT_COMPILE" = "xyes"; then [BASE_]PREFIX[FLAGS]="$[BASE_]PREFIX[FLAGS] $[STRICT_]PREFIX[FLAGS]" AC_LANG_CASE([C], [CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS"]) fi AC_SUBST([STRICT_]PREFIX[FLAGS]) AC_SUBST([BASE_]PREFIX[FLAGS]) AC_LANG_CASE([C], AC_SUBST([CWARNFLAGS])) ]) # XORG_STRICT_OPTION # XORG_DEFAULT_OPTIONS # -------------------- # Minimum version: 1.3.0 # # Defines default options for X.Org modules. # AC_DEFUN([XORG_DEFAULT_OPTIONS], [ AC_REQUIRE([AC_PROG_INSTALL]) XORG_COMPILER_FLAGS XORG_CWARNFLAGS XORG_STRICT_OPTION XORG_RELEASE_VERSION XORG_CHANGELOG XORG_INSTALL XORG_MANPAGE_SECTIONS m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) ]) # XORG_DEFAULT_OPTIONS # XORG_INSTALL() # ---------------- # Minimum version: 1.4.0 # # Defines the variable INSTALL_CMD as the command to copy # INSTALL from $prefix/share/util-macros. # AC_DEFUN([XORG_INSTALL], [ AC_REQUIRE([PKG_PROG_PKG_CONFIG]) macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ || (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" AC_SUBST([INSTALL_CMD]) ]) # XORG_INSTALL dnl Copyright 2005 Red Hat, Inc dnl dnl Permission to use, copy, modify, distribute, and sell this software and its dnl documentation for any purpose is hereby granted without fee, provided that dnl the above copyright notice appear in all copies and that both that dnl copyright notice and this permission notice appear in supporting dnl documentation. dnl dnl The above copyright notice and this permission notice shall be included dnl in all copies or substantial portions of the Software. dnl dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. dnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR dnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, dnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR dnl OTHER DEALINGS IN THE SOFTWARE. dnl dnl Except as contained in this notice, the name of the copyright holders shall dnl not be used in advertising or otherwise to promote the sale, use or dnl other dealings in this Software without prior written authorization dnl from the copyright holders. dnl # XORG_RELEASE_VERSION # -------------------- # Defines PACKAGE_VERSION_{MAJOR,MINOR,PATCHLEVEL} for modules to use. AC_DEFUN([XORG_RELEASE_VERSION],[ AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR], [`echo $PACKAGE_VERSION | cut -d . -f 1`], [Major version of this package]) PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` if test "x$PVM" = "x"; then PVM="0" fi AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR], [$PVM], [Minor version of this package]) PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` if test "x$PVP" = "x"; then PVP="0" fi AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL], [$PVP], [Patch version of this package]) ]) # XORG_CHANGELOG() # ---------------- # Minimum version: 1.2.0 # # Defines the variable CHANGELOG_CMD as the command to generate # ChangeLog from git. # # AC_DEFUN([XORG_CHANGELOG], [ CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ || (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ echo 'git directory not found: installing possibly empty changelog.' >&2)" AC_SUBST([CHANGELOG_CMD]) ]) # XORG_CHANGELOG grail-3.1.0+16.04.20160125/m4/gcov.m40000644000015600001650000000475412651522342016706 0ustar pbuserpbgroup00000000000000# Checks for existence of coverage tools: # * gcov # * lcov # * genhtml # * gcovr # # Sets ac_cv_check_gcov to yes if tooling is present # and reports the executables to the variables LCOV, GCOVR and GENHTML. AC_DEFUN([AC_TDD_GCOV], [ AC_ARG_ENABLE(gcov, AS_HELP_STRING([--enable-gcov], [enable coverage testing with gcov]), [use_gcov=$enableval], [use_gcov=no]) if test "x$use_gcov" = "xyes"; then # we need gcc: if test "$GCC" != "yes"; then AC_MSG_ERROR([GCC is required for --enable-gcov]) fi # Check if ccache is being used AC_CHECK_PROG(SHTOOL, shtool, shtool) case `$SHTOOL path $CC` in *ccache*[)] gcc_ccache=yes;; *[)] gcc_ccache=no;; esac if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) fi lcov_version_list="1.6 1.7 1.8 1.9" AC_CHECK_PROG(LCOV, lcov, lcov) AC_CHECK_PROG(GENHTML, genhtml, genhtml) AC_CHECK_PROG(GCOVR, gcovr, gcovr) if test "$LCOV"; then AC_CACHE_CHECK([for lcov version], glib_cv_lcov_version, [ glib_cv_lcov_version=invalid lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` for lcov_check_version in $lcov_version_list; do if test "$lcov_version" = "$lcov_check_version"; then glib_cv_lcov_version="$lcov_check_version (ok)" fi done ]) else lcov_msg="To enable code coverage reporting you must have one of the following lcov versions installed: $lcov_version_list" AC_MSG_ERROR([$lcov_msg]) fi case $glib_cv_lcov_version in ""|invalid[)] lcov_msg="You must have one of the following versions of lcov: $lcov_version_list (found: $lcov_version)." AC_MSG_ERROR([$lcov_msg]) LCOV="exit 0;" ;; esac if test -z "$GENHTML"; then AC_MSG_ERROR([Could not find genhtml from the lcov package]) fi if test -z "$GCOVR"; then AC_MSG_ERROR([Could not find gcovr; easy_install (or pip) gcovr]) fi ac_cv_check_gcov=yes # Remove all optimization flags from CFLAGS changequote({,}) CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9]*//g'` changequote([,]) # Add the special gcc flags COVERAGE_CFLAGS="-O0 -fprofile-arcs -ftest-coverage" COVERAGE_CXXFLAGS="-O0 -fprofile-arcs -ftest-coverage" COVERAGE_LIBS="-lgcov" AC_SUBST(COVERAGE_CFLAGS) AC_SUBST(COVERAGE_CXXFLAGS) AC_SUBST(COVERAGE_LIBS) fi ]) # AC_TDD_GCOV grail-3.1.0+16.04.20160125/INSTALL0000644000015600001650000000102412651522342016202 0ustar pbuserpbgroup00000000000000grail - Gesture Recognition And Instantiation Library To build, you need to have the autoconf, libtool, and libframe-dev packages installed. Then, do ./autogen.sh ./configure make To test gestures, do sudo ./test/grail-gesture 0xffffffff /dev/input/eventX You should be able to see gesture events in the terminal. After five seconds of inactivity, the program exits. To install grail, do sudo make install By default, grail installs to /usr/local. To change, use the --prefix configure option. Enjoy, Henrik grail-3.1.0+16.04.20160125/configure.ac0000644000015600001650000001015712651522342017446 0ustar pbuserpbgroup00000000000000################################# # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([Gesture Recognition And Instantiation Library], [3.1.0], [], [grail]) AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_AUX_DIR([config-aux]) AC_CONFIG_MACRO_DIR([m4]) ################################# # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_SILENT_RULES([yes]) AM_MAINTAINER_MODE([enable]) LIB_VERSION=6:0:0 AC_SUBST([LIB_VERSION]) # Initialize libtool AC_PROG_LIBTOOL ################################# # Checks for programs. AC_PROG_CC AC_PROG_CXX AC_PROG_INSTALL ################################# # Enable/disable X11 support AC_ARG_WITH(x11, AC_HELP_STRING(--without-x11, Do not use X11 libraries or frame_x11.h (default: autodetect)), [], [with_x11=auto]) AS_IF([test "x$with_x11" = "xauto"], [ PKG_CHECK_MODULES(XINPUT, frame-x11 x11 xext [xi >= 1.5.99.1] [inputproto >= 2.1.99.6], [have_xinput=yes], [have_xinput=no]) ]) AS_IF([test "x$with_x11" = "xyes"], [ PKG_CHECK_MODULES(XINPUT, frame-x11 x11 xext [xi >= 1.5.99.1] [inputproto >= 2.1.99.6], [have_xinput=yes]) ]) AS_IF([test "x$with_x11" = "xno"], [have_xinput=no]) AS_IF([test "x$have_xinput" = "xyes"], [ AM_CONDITIONAL(HAVE_XINPUT, true) ], [ AM_CONDITIONAL(HAVE_XINPUT, false) ]) ################################# # check mandatory build dependencies PKG_CHECK_MODULES([FRAME], [frame >= 2.5.0]) ################################# # debug builds AC_ARG_ENABLE(debug, AC_HELP_STRING(--enable-debug, Enable debug assertions and other safeguards (default: disabled)), [], AC_DEFINE([NDEBUG], [], [No debug])) ################################# # Check for TDD tools AC_ARG_ENABLE([integration-tests], [AS_HELP_STRING([--enable-integration-tests], [Enable building integration test cases (default: auto)])], [enable_integration_tests=$enableval], [enable_integration_tests=auto]) ################################# # Check for Google C++ Testing Framework CHECK_GTEST() AM_CONDITIONAL([HAVE_GTEST], [test "x$have_gtest" = xyes]) AS_IF([test "x$enable_integration_tests" != xno], [CHECK_XORG_GTEST( [AC_MSG_NOTICE([xorg-gtest is available, integration tests will be built])], [AS_IF([test "x$enable_integration_tests" = xyes], [AC_MSG_ERROR( [xorg-gtest is not available])], [AC_MSG_WARN( [xorg-gtest is not available, tests will not be built]) have_xorg_gtest=no])])]) AM_CONDITIONAL([ENABLE_INTEGRATION_TESTS], [test "x$have_xorg_gtest" = xyes]) ################################# # Enable coverage reports using gcov AC_TDD_GCOV AM_CONDITIONAL([HAVE_GCOV],[test "x$ac_cv_check_gcov" = xyes]) AC_CONFIG_FILES([Makefile src/Makefile tools/Makefile test/Makefile test/gtest/Makefile test/integration/Makefile test/regular/Makefile grail.pc]) AC_SUBST(VISIBILITY_CFLAGS, "-fvisibility=hidden") AC_SUBST(VISIBILITY_CXXFLAGS, "-fvisibility=hidden") AC_SUBST(WARNING_CPPFLAGS, "-Wall -Werror") AC_SUBST(CXX11_CXXFLAGS, "-std=c++0x") AC_OUTPUT ################################# # Print summary bold_green=$(tput bold)$(tput setf 2) bold_white=$(tput bold)$(tput setf 7) reset=$(tput sgr0) AC_MSG_NOTICE([]) AC_MSG_NOTICE([${bold_green}Open Input Framework - Grail library - $VERSION${reset}]) AC_MSG_NOTICE([]) AC_MSG_NOTICE([ Prefix : ${bold_white}${prefix}${reset}]) AC_MSG_NOTICE([ CFLAGS : ${bold_white}${CFLAGS} ${GCC_FLAGS}${reset}]) AC_MSG_NOTICE([ X11 support : ${bold_white}${have_xinput}${reset}]) AC_MSG_NOTICE([ Build integration tests : ${bold_white}${have_xorg_gtest}${reset}]) AC_MSG_NOTICE([]) grail-3.1.0+16.04.20160125/grail.pc.in0000644000015600001650000000034712651522342017207 0ustar pbuserpbgroup00000000000000prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ Name: grail Description: Gesture Recognition And Instantiation Library Version: @PACKAGE_VERSION@ Cflags: -I${includedir} Libs: -L${libdir} -lgrail grail-3.1.0+16.04.20160125/COPYING.GPL30000644000015600001650000010451312651522342016717 0ustar pbuserpbgroup00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read .