diff --git a/.gitattributes b/.gitattributes index 2d5c7a7e..296c8fb2 100644 --- a/.gitattributes +++ b/.gitattributes
@@ -5,6 +5,7 @@ /net/http/*.pins text eol=lf # Force LF checkout for all source files +*.bin binary *.c text eol=lf *.cc text eol=lf *.cpp text eol=lf
diff --git a/.gitignore b/.gitignore index a4def00..0474802 100644 --- a/.gitignore +++ b/.gitignore
@@ -177,7 +177,6 @@ /components/resources/default_200_percent/google_chrome /components/resources/default_300_percent/google_chrome /components/search_engines/prepopulated_engines.xml -/components/test/data/language/ /components/suggestions.xml /components/variations.xml /components/zucchini/testdata/*.exe
diff --git a/AUTHORS b/AUTHORS index 856ac7b..a9cc163 100644 --- a/AUTHORS +++ b/AUTHORS
@@ -630,6 +630,7 @@ Mohan Reddy <mohan.reddy@samsung.com> Mohit Bhalla <bhallam@amazon.com> Momoko Hattori <momohatt10@gmail.com> +Mostafa Sedaghat joo <mostafa.sedaghat@gmail.com> Mrunal Kapade <mrunal.kapade@intel.com> Myeongjin Cho <myeongjin.cho@navercorp.com> Myles C. Maxfield <mymax@amazon.com>
diff --git a/DEPS b/DEPS index 0be49ac04..be12c63 100644 --- a/DEPS +++ b/DEPS
@@ -129,11 +129,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling Skia # and whatever else without interference from each other. - 'skia_revision': '652b007a4cbb0b8c716510949456243573129ff4', + 'skia_revision': 'e88d4382e1cf0041ecc1f148e05fbf3b7d0fb7b1', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling V8 # and whatever else without interference from each other. - 'v8_revision': '325136936c7ff7c31213d4970a27c2b967888777', + 'v8_revision': 'ca659d06dc55799df218735da3f28c37daa3e069', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling swarming_client # and whatever else without interference from each other. @@ -141,11 +141,11 @@ # Three lines of non-changing comments so that # the commit queue can handle CLs rolling ANGLE # and whatever else without interference from each other. - 'angle_revision': 'c832cdd75f75d56b1133c93b4bd8bc7c79481699', + 'angle_revision': '20a716319262ce5820fd09f8313108018aa3d948', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling SwiftShader # and whatever else without interference from each other. - 'swiftshader_revision': '84c3a94e14502b0b54a644dc0e661071b7347224', + 'swiftshader_revision': '8e2440d06f5abaca8dbd2e0c6b4e24ce0697f802', # Three lines of non-changing comments so that # the commit queue can handle CLs rolling PDFium # and whatever else without interference from each other. @@ -403,7 +403,7 @@ 'packages': [ { 'package': 'chromium/chrome/test/data/password/captured_sites', - 'version': 'jYvTM_KjFi4v_BTqCfkAxM1XJ4PkMDSi31FgEDf0z9sC', + 'version': 'fh4O86nUCfRN5a1Piw48cbufqayIfZQjCDbFDKXnRwEC', } ], 'condition': 'checkout_chromium_password_manager_test_dependencies', @@ -830,7 +830,7 @@ }, 'src/third_party/depot_tools': - Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '7e7523be4e21b0841ae815ef37521a5476f68549', + Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + 'e72279d25f75444f1ea053ab2e5c13f1cedbeeaf', 'src/third_party/devtools-node-modules': Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'), @@ -975,7 +975,7 @@ }, 'src/third_party/hunspell_dictionaries': - Var('chromium_git') + '/chromium/deps/hunspell_dictionaries.git' + '@' + '83f4659730b4de886afa5ea19f71f332a009d2ee', + Var('chromium_git') + '/chromium/deps/hunspell_dictionaries.git' + '@' + '3874188bd69fe67a825d07584c74451e45063e95', 'src/third_party/icu': Var('chromium_git') + '/chromium/deps/icu.git' + '@' + '35f7e139f33f1ddbfdb68b65dda29aff430c3f6f', @@ -1183,7 +1183,7 @@ }, 'src/third_party/perfetto': - Var('android_git') + '/platform/external/perfetto.git' + '@' + '57f20d73b85e4f912bad14acb368e3ee8f1ba414', + Var('android_git') + '/platform/external/perfetto.git' + '@' + '7342ae0bd748b6e6653ba5110b88b8e67ae6dd2b', 'src/third_party/perl': { 'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + 'ac0d98b5cee6c024b0cffeb4f8f45b6fc5ccdb78', @@ -1354,7 +1354,7 @@ Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '3f6583d3fee4ab71866ade794504a20eb6f63f88', 'src/third_party/webrtc': - Var('webrtc_git') + '/src.git' + '@' + 'a1a93fba364d91ad4f662bba43d13f298f2d9aa3', + Var('webrtc_git') + '/src.git' + '@' + '6f5e84894e74e62b221a06cd4d2d7aeaa2750f41', 'src/third_party/xdg-utils': { 'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d', @@ -1395,7 +1395,7 @@ Var('chromium_git') + '/v8/v8.git' + '@' + Var('v8_revision'), 'src-internal': { - 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@212f149cf830ea936e8d25ca9b80c701e4e77336', + 'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@91e5b46b8d7762e4698190504f94623314fa6945', 'condition': 'checkout_src_internal', },
diff --git a/ash/ash_service.cc b/ash/ash_service.cc index 4e71b02..dad1ac71 100644 --- a/ash/ash_service.cc +++ b/ash/ash_service.cc
@@ -172,18 +172,19 @@ chromeos::HammerdClient::Initialize(bus); chromeos::PowerManagerClient::Initialize(bus); chromeos::SystemClockClient::Initialize(bus); + // TODO(ortuno): Eliminate BluezDBusManager code from Ash, crbug.com/830893. + bluez::BluezDBusManager::Initialize(bus); } else { chromeos::HammerdClient::InitializeFake(); chromeos::PowerManagerClient::InitializeFake(); chromeos::SystemClockClient::InitializeFake(); + // TODO(ortuno): Eliminate BluezDBusManager code from Ash, crbug.com/830893. + bluez::BluezDBusManager::InitializeFake(); } chromeos::PowerPolicyController::Initialize( chromeos::PowerManagerClient::Get()); - // TODO(ortuno): Eliminate BluezDBusManager code from Ash, crbug.com/830893. - bluez::BluezDBusManager::Initialize(); - // TODO(stevenjb): Eliminate NetworkHandler code from Ash, crbug.com/644355. CHECK(!chromeos::NetworkHandler::IsInitialized()); chromeos::NetworkHandler::Initialize();
diff --git a/ash/public/interfaces/user_info.mojom b/ash/public/interfaces/user_info.mojom index e74b5b3..3e159f90 100644 --- a/ash/public/interfaces/user_info.mojom +++ b/ash/public/interfaces/user_info.mojom
@@ -64,6 +64,6 @@ bool is_device_owner; // True if the user has a gaia account. bool has_gaia_account; - // True if user is managed. - bool is_managed; + // True if should display managed ui. + bool should_display_managed_ui; };
diff --git a/ash/session/session_controller.cc b/ash/session/session_controller.cc index 3f0d8daf..96c9576 100644 --- a/ash/session/session_controller.cc +++ b/ash/session/session_controller.cc
@@ -235,11 +235,11 @@ return GetUserSession(0)->user_info->is_new_profile; } -bool SessionController::IsUserManaged() const { +bool SessionController::ShouldDisplayManagedUI() const { if (!IsActiveUserSessionStarted()) return false; - return GetUserSession(0)->user_info->is_managed; + return GetUserSession(0)->user_info->should_display_managed_ui; } void SessionController::LockScreen() {
diff --git a/ash/session/session_controller.h b/ash/session/session_controller.h index 5d7009b..70930111 100644 --- a/ash/session/session_controller.h +++ b/ash/session/session_controller.h
@@ -135,11 +135,9 @@ // device (i.e. first time login on the device). bool IsUserFirstLogin() const; - // Returns true if the current user is managed, and false otherwise. - // For public sessions, kiosk app and arc kiosk app accounts returns true. - // NOTE: Returns false if there is no profile (example: login screen in - // ChromeOS). - bool IsUserManaged() const; + // Returns true if should display managed icon for current session, + // and false otherwise. + bool ShouldDisplayManagedUI() const; // Locks the screen. The locking happens asynchronously. void LockScreen();
diff --git a/ash/shell/content/client/shell_browser_main_parts.cc b/ash/shell/content/client/shell_browser_main_parts.cc index f55bdb3..0451d7d 100644 --- a/ash/shell/content/client/shell_browser_main_parts.cc +++ b/ash/shell/content/client/shell_browser_main_parts.cc
@@ -99,7 +99,7 @@ // is absent. chromeos::CrasAudioHandler::InitializeForTesting(); - bluez::BluezDBusManager::Initialize(); + bluez::BluezDBusManager::InitializeFake(); chromeos::PowerPolicyController::Initialize( chromeos::PowerManagerClient::Get());
diff --git a/ash/system/audio/unified_volume_view.cc b/ash/system/audio/unified_volume_view.cc index 4307903..739618df 100644 --- a/ash/system/audio/unified_volume_view.cc +++ b/ash/system/audio/unified_volume_view.cc
@@ -21,6 +21,7 @@ #include "ui/views/animation/ink_drop_mask.h" #include "ui/views/controls/image_view.h" #include "ui/views/layout/box_layout.h" +#include "ui/views/view_class_properties.h" using chromeos::CrasAudioHandler; @@ -79,6 +80,11 @@ SetTooltipText(l10n_util::GetStringUTF16(IDS_ASH_STATUS_TRAY_AUDIO)); TrayPopupUtils::ConfigureTrayPopupButton(this); + + auto path = std::make_unique<SkPath>(); + path->addRoundRect(gfx::RectToSkRect(gfx::Rect(CalculatePreferredSize())), + kTrayItemSize / 2, kTrayItemSize / 2); + SetProperty(views::kHighlightPathKey, path.release()); } ~MoreButton() override = default;
diff --git a/ash/system/tray/tray_constants.h b/ash/system/tray/tray_constants.h index 80666d5..72cf115 100644 --- a/ash/system/tray/tray_constants.h +++ b/ash/system/tray/tray_constants.h
@@ -172,8 +172,11 @@ SkColorSetRGB(0xff, 0xff, 0xff); constexpr gfx::Insets kUnifiedMenuItemPadding(0, 16, 16, 16); +constexpr gfx::Insets kUnifiedSystemInfoViewPadding(4, 16, 16, 16); +constexpr gfx::Insets kUnifiedSliderRowPadding(0, 12, 8, 16); constexpr gfx::Insets kUnifiedSliderPadding(0, 16); +constexpr int kUnifiedSliderViewSpacing = 12; constexpr int kUnifiedMenuPadding = 8; constexpr int kUnifiedNotificationCenterSpacing = 16; constexpr int kUnifiedTrayIconSize = 20; @@ -224,7 +227,7 @@ constexpr int kUnifiedFeaturePodHoverRadius = 4; constexpr int kUnifiedFeaturePodVerticalPadding = 28; constexpr int kUnifiedFeaturePodTopPadding = 24; -constexpr int kUnifiedFeaturePodBottomPadding = 24; +constexpr int kUnifiedFeaturePodBottomPadding = 20; constexpr int kUnifiedFeaturePodHorizontalSidePadding = 12; constexpr int kUnifiedFeaturePodHorizontalMiddlePadding = 0; constexpr int kUnifiedFeaturePodCollapsedVerticalPadding = 16;
diff --git a/ash/system/unified/top_shortcut_button.cc b/ash/system/unified/top_shortcut_button.cc index 4ddb66d..3f1ffe2 100644 --- a/ash/system/unified/top_shortcut_button.cc +++ b/ash/system/unified/top_shortcut_button.cc
@@ -32,8 +32,6 @@ TopShortcutButton::TopShortcutButton(views::ButtonListener* listener, int accessible_name_id) : views::ImageButton(listener) { - const gfx::Size size(kTrayItemSize, kTrayItemSize); - SetPreferredSize(size); SetImageAlignment(ALIGN_CENTER, ALIGN_MIDDLE); SetTooltipText(l10n_util::GetStringUTF16(accessible_name_id)); @@ -41,12 +39,16 @@ set_ink_drop_base_color(kUnifiedMenuIconColor); auto path = std::make_unique<SkPath>(); - path->addOval(gfx::RectToSkRect(gfx::Rect(size))); + path->addOval(gfx::RectToSkRect(gfx::Rect(CalculatePreferredSize()))); SetProperty(views::kHighlightPathKey, path.release()); } TopShortcutButton::~TopShortcutButton() = default; +gfx::Size TopShortcutButton::CalculatePreferredSize() const { + return gfx::Size(kTrayItemSize, kTrayItemSize); +} + void TopShortcutButton::PaintButtonContents(gfx::Canvas* canvas) { cc::PaintFlags flags; flags.setAntiAlias(true);
diff --git a/ash/system/unified/top_shortcut_button.h b/ash/system/unified/top_shortcut_button.h index fc3fa22..6011ed3 100644 --- a/ash/system/unified/top_shortcut_button.h +++ b/ash/system/unified/top_shortcut_button.h
@@ -21,6 +21,9 @@ TopShortcutButton(views::ButtonListener* listener, int accessible_name_id); ~TopShortcutButton() override; + // views::View: + gfx::Size CalculatePreferredSize() const override; + // views::ImageButton: void PaintButtonContents(gfx::Canvas* canvas) override; std::unique_ptr<views::InkDrop> CreateInkDrop() override;
diff --git a/ash/system/unified/unified_slider_view.cc b/ash/system/unified/unified_slider_view.cc index d1bd9a6..bfe35c2 100644 --- a/ash/system/unified/unified_slider_view.cc +++ b/ash/system/unified/unified_slider_view.cc
@@ -5,13 +5,16 @@ #include "ash/system/unified/unified_slider_view.h" #include "ash/system/tray/tray_constants.h" +#include "ash/system/tray/tray_popup_utils.h" #include "ash/system/unified/top_shortcut_button.h" #include "ui/base/l10n/l10n_util.h" #include "ui/gfx/canvas.h" #include "ui/gfx/paint_vector_icon.h" #include "ui/views/accessibility/view_accessibility.h" +#include "ui/views/animation/ink_drop_mask.h" #include "ui/views/border.h" #include "ui/views/layout/box_layout.h" +#include "ui/views/view_class_properties.h" #include "ui/views/widget/widget.h" namespace ash { @@ -50,10 +53,19 @@ int accessible_name_id) : TopShortcutButton(listener, accessible_name_id) { SetVectorIcon(icon); + SetBorder(views::CreateEmptyBorder(kUnifiedCircularButtonFocusPadding)); + auto path = std::make_unique<SkPath>(); + path->addOval(gfx::RectToSkRect(gfx::Rect(CalculatePreferredSize()))); + SetProperty(views::kHighlightPathKey, path.release()); } UnifiedSliderButton::~UnifiedSliderButton() = default; +gfx::Size UnifiedSliderButton::CalculatePreferredSize() const { + return gfx::Size(kTrayItemSize + kUnifiedCircularButtonFocusPadding.width(), + kTrayItemSize + kUnifiedCircularButtonFocusPadding.height()); +} + void UnifiedSliderButton::SetVectorIcon(const gfx::VectorIcon& icon) { SetImage(views::Button::STATE_NORMAL, gfx::CreateVectorIcon(icon, kUnifiedMenuIconColor)); @@ -78,6 +90,13 @@ views::ImageButton::PaintButtonContents(canvas); } +std::unique_ptr<views::InkDropMask> UnifiedSliderButton::CreateInkDropMask() + const { + gfx::Rect bounds = GetContentsBounds(); + return std::make_unique<views::CircleInkDropMask>( + size(), bounds.CenterPoint(), bounds.width() / 2); +} + void UnifiedSliderButton::GetAccessibleNodeData(ui::AXNodeData* node_data) { if (!enabled()) return; @@ -94,8 +113,8 @@ : button_(new UnifiedSliderButton(listener, icon, accessible_name_id)), slider_(CreateSlider(listener, readonly)) { auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>( - views::BoxLayout::kHorizontal, kUnifiedMenuItemPadding, - kUnifiedTopShortcutSpacing)); + views::BoxLayout::kHorizontal, kUnifiedSliderRowPadding, + kUnifiedSliderViewSpacing)); AddChildView(button_); AddChildView(slider_);
diff --git a/ash/system/unified/unified_slider_view.h b/ash/system/unified/unified_slider_view.h index 6465b10e..99f6b73 100644 --- a/ash/system/unified/unified_slider_view.h +++ b/ash/system/unified/unified_slider_view.h
@@ -56,6 +56,12 @@ // Change the toggle state. void SetToggled(bool toggled); + // views::View: + gfx::Size CalculatePreferredSize() const override; + + // views::ImageButton: + std::unique_ptr<views::InkDropMask> CreateInkDropMask() const override; + // TopShortcutButton: void PaintButtonContents(gfx::Canvas* canvas) override; void GetAccessibleNodeData(ui::AXNodeData* node_data) override;
diff --git a/ash/system/unified/unified_system_info_view.cc b/ash/system/unified/unified_system_info_view.cc index e6ded6d..4a4e746 100644 --- a/ash/system/unified/unified_system_info_view.cc +++ b/ash/system/unified/unified_system_info_view.cc
@@ -95,7 +95,7 @@ SetEnabled(Shell::Get()->system_tray_model()->clock()->IsSettingsAvailable()); - SetFocusPainter(TrayPopupUtils::CreateFocusPainter()); + SetInstallFocusRingOnFocus(true); SetFocusForPlatform(); SetInkDropMode(views::InkDropHostView::InkDropMode::OFF); @@ -256,7 +256,7 @@ gfx::Size(kUnifiedSystemInfoHeight, kUnifiedSystemInfoHeight)); AddChildView(image); - SetFocusPainter(TrayPopupUtils::CreateFocusPainter()); + SetInstallFocusRingOnFocus(true); SetFocusForPlatform(); SetInkDropMode(views::InkDropHostView::InkDropMode::OFF); @@ -324,7 +324,7 @@ EnterpriseDomainModel* model = Shell::Get()->system_tray_model()->enterprise_domain(); SessionController* session_controller = Shell::Get()->session_controller(); - SetVisible(session_controller->IsUserManaged() || + SetVisible(session_controller->ShouldDisplayManagedUI() || model->active_directory_managed() || !model->enterprise_display_domain().empty()); @@ -364,7 +364,7 @@ : enterprise_managed_(new EnterpriseManagedView(controller)), supervised_(new SupervisedUserView()) { auto* layout = SetLayoutManager(std::make_unique<views::BoxLayout>( - views::BoxLayout::kHorizontal, kUnifiedMenuItemPadding, + views::BoxLayout::kHorizontal, kUnifiedSystemInfoViewPadding, kUnifiedSystemInfoSpacing)); layout->set_cross_axis_alignment( views::BoxLayout::CROSS_AXIS_ALIGNMENT_CENTER);
diff --git a/ash/test/ash_test_helper.cc b/ash/test/ash_test_helper.cc index 635b3ad..00b97a1 100644 --- a/ash/test/ash_test_helper.cc +++ b/ash/test/ash_test_helper.cc
@@ -166,7 +166,7 @@ } if (!bluez::BluezDBusManager::IsInitialized()) { - bluez::BluezDBusManager::Initialize(); + bluez::BluezDBusManager::InitializeFake(); bluez_dbus_manager_initialized_ = true; }
diff --git a/base/task/sequence_manager/atomic_flag_set.cc b/base/task/sequence_manager/atomic_flag_set.cc index 98efafe67..8ccc027 100644 --- a/base/task/sequence_manager/atomic_flag_set.cc +++ b/base/task/sequence_manager/atomic_flag_set.cc
@@ -42,13 +42,16 @@ void AtomicFlagSet::AtomicFlag::SetActive(bool active) { DCHECK(group_); - // Release semantics are required to ensure that all memory accesses made on - // this thread happen-before any others done on the thread running the active - // callbacks. if (active) { + // Release semantics are required to ensure that all memory accesses made on + // this thread happen-before any others done on the thread running the + // active callbacks. group_->flags.fetch_or(flag_bit_, std::memory_order_release); } else { - group_->flags.fetch_and(~flag_bit_, std::memory_order_release); + // No operation is being performed based on the bit *not* being set (i.e. + // state of other memory is irrelevant); hence no memory order is required + // when unsetting it. + group_->flags.fetch_and(~flag_bit_, std::memory_order_relaxed); } } @@ -104,7 +107,7 @@ void AtomicFlagSet::RunActiveCallbacks() const { DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); - for (Group* iter = alloc_list_head_.get(); iter; iter = iter->next_.get()) { + for (Group* iter = alloc_list_head_.get(); iter; iter = iter->next.get()) { // Acquire semantics are required to guarantee that all memory side-effects // made by other threads that were allowed to perform operations are // synchronized with this thread before it returns from this method. @@ -124,8 +127,8 @@ AtomicFlagSet::Group::~Group() { DCHECK_EQ(allocated_flags, 0u); - DCHECK(!partially_free_list_prev_); - DCHECK(!partially_free_list_next_); + DCHECK(!partially_free_list_prev); + DCHECK(!partially_free_list_next); } bool AtomicFlagSet::Group::IsFull() const { @@ -146,62 +149,62 @@ // static int AtomicFlagSet::Group::IndexOfFirstFlagSet(size_t flag) { - return kNumFlags - 1 - bits::CountLeadingZeroBits(flag); + DCHECK_NE(flag, 0u); + return bits::CountTrailingZeroBits(flag); } void AtomicFlagSet::AddToAllocList(std::unique_ptr<Group> group) { DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); if (alloc_list_head_) - alloc_list_head_->prev_ = group.get(); + alloc_list_head_->prev = group.get(); - group->next_ = std::move(alloc_list_head_); + group->next = std::move(alloc_list_head_); alloc_list_head_ = std::move(group); } void AtomicFlagSet::RemoveFromAllocList(Group* group) { DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); - if (group->next_) - group->next_->prev_ = group->prev_; + if (group->next) + group->next->prev = group->prev; - if (group->prev_) { - group->prev_->next_ = std::move(group->next_); + if (group->prev) { + group->prev->next = std::move(group->next); } else { - alloc_list_head_ = std::move(group->next_); + alloc_list_head_ = std::move(group->next); } } -void AtomicFlagSet::AddToPartiallyFreeList(Group* element) { +void AtomicFlagSet::AddToPartiallyFreeList(Group* group) { DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); - DCHECK_NE(partially_free_list_head_, element); - DCHECK(!element->partially_free_list_prev_); - DCHECK(!element->partially_free_list_next_); + DCHECK_NE(partially_free_list_head_, group); + DCHECK(!group->partially_free_list_prev); + DCHECK(!group->partially_free_list_next); if (partially_free_list_head_) - partially_free_list_head_->partially_free_list_prev_ = element; + partially_free_list_head_->partially_free_list_prev = group; - element->partially_free_list_next_ = partially_free_list_head_; - partially_free_list_head_ = element; + group->partially_free_list_next = partially_free_list_head_; + partially_free_list_head_ = group; } -void AtomicFlagSet::RemoveFromPartiallyFreeList(Group* element) { +void AtomicFlagSet::RemoveFromPartiallyFreeList(Group* group) { DCHECK_CALLED_ON_VALID_THREAD(associated_thread_->thread_checker); DCHECK(partially_free_list_head_); - // Check |element| is in the list. - DCHECK(partially_free_list_head_ == element || - element->partially_free_list_prev_); - if (element->partially_free_list_next_) { - element->partially_free_list_next_->partially_free_list_prev_ = - element->partially_free_list_prev_; + // Check |group| is in the list. + DCHECK(partially_free_list_head_ == group || group->partially_free_list_prev); + if (group->partially_free_list_next) { + group->partially_free_list_next->partially_free_list_prev = + group->partially_free_list_prev; } - if (element->partially_free_list_prev_) { - element->partially_free_list_prev_->partially_free_list_next_ = - element->partially_free_list_next_; + if (group->partially_free_list_prev) { + group->partially_free_list_prev->partially_free_list_next = + group->partially_free_list_next; } else { - partially_free_list_head_ = element->partially_free_list_next_; + partially_free_list_head_ = group->partially_free_list_next; } - element->partially_free_list_prev_ = nullptr; - element->partially_free_list_next_ = nullptr; + group->partially_free_list_prev = nullptr; + group->partially_free_list_next = nullptr; } } // namespace internal
diff --git a/base/task/sequence_manager/atomic_flag_set.h b/base/task/sequence_manager/atomic_flag_set.h index c6a2f2d..a0e392c 100644 --- a/base/task/sequence_manager/atomic_flag_set.h +++ b/base/task/sequence_manager/atomic_flag_set.h
@@ -21,7 +21,7 @@ // specified and the RunActiveCallbacks method can be invoked to fire callbacks // for all active flags. Creating releasing or destroying an AtomicFlag must be // done on the associated thread, as must calling RunActiveCallbacks. This -// class is thread-compatible. +// class is thread-affine. class BASE_EXPORT AtomicFlagSet { protected: struct Group; @@ -32,7 +32,7 @@ // AtomicFlags need to be released (or deleted) before this can be deleted. ~AtomicFlagSet(); - // This class is thread-compatible in addition SetActive can be called + // This class is thread-affine in addition SetActive can be called // concurrently from any thread. class BASE_EXPORT AtomicFlag { public: @@ -74,8 +74,8 @@ // thread. AtomicFlag AddFlag(RepeatingClosure callback); - // Runs the registered callback for all flags marked as active and resets all - // flags to inactive. Must be called on the associated thread. + // Runs the registered callback for all flags marked as active and atomically + // resets all flags to inactive. Must be called on the associated thread. void RunActiveCallbacks() const; protected: @@ -96,10 +96,10 @@ std::atomic<size_t> flags = {0}; size_t allocated_flags = 0; RepeatingClosure flag_callbacks[kNumFlags]; - Group* prev_ = nullptr; - std::unique_ptr<Group> next_; - Group* partially_free_list_prev_ = nullptr; - Group* partially_free_list_next_ = nullptr; + Group* prev = nullptr; + std::unique_ptr<Group> next; + Group* partially_free_list_prev = nullptr; + Group* partially_free_list_next = nullptr; bool IsFull() const;
diff --git a/base/task/sequence_manager/atomic_flag_set_unittest.cc b/base/task/sequence_manager/atomic_flag_set_unittest.cc index 5852214..99e3070 100644 --- a/base/task/sequence_manager/atomic_flag_set_unittest.cc +++ b/base/task/sequence_manager/atomic_flag_set_unittest.cc
@@ -136,7 +136,7 @@ BindLambdaForTesting([](size_t index) {})); AtomicFlagSetForTest::Group* group1 = atomic_flag_set_.GetAllocListForTesting(); - EXPECT_THAT(group1->next_.get(), IsNull()); + EXPECT_THAT(group1->next.get(), IsNull()); EXPECT_EQ(group1, atomic_flag_set_.GetPartiallyFreeListForTesting()); EXPECT_FALSE(group1->IsFull()); EXPECT_FALSE(group1->IsEmpty()); @@ -159,15 +159,15 @@ EXPECT_FALSE(group1->IsFull()); EXPECT_FALSE(group1->IsEmpty()); EXPECT_EQ(group1, atomic_flag_set_.GetPartiallyFreeListForTesting()); - AtomicFlagSetForTest::Group* group2 = group1->next_.get(); + AtomicFlagSetForTest::Group* group2 = group1->next.get(); ASSERT_THAT(group2, NotNull()); - EXPECT_THAT(group2->next_.get(), IsNull()); + EXPECT_THAT(group2->next.get(), IsNull()); EXPECT_TRUE(group2->IsFull()); // This will release |group1|. atomic_flags_[AtomicFlagSetForTest::Group::kNumFlags].ReleaseAtomicFlag(); - EXPECT_THAT(group2->next_.get(), IsNull()); + EXPECT_THAT(group2->next.get(), IsNull()); EXPECT_THAT(atomic_flag_set_.GetPartiallyFreeListForTesting(), IsNull()); } @@ -180,12 +180,12 @@ ASSERT_THAT(group1, NotNull()); EXPECT_FALSE(group1->IsFull()); EXPECT_FALSE(group1->IsEmpty()); - AtomicFlagSetForTest::Group* group2 = group1->next_.get(); + AtomicFlagSetForTest::Group* group2 = group1->next.get(); ASSERT_THAT(group2, NotNull()); EXPECT_TRUE(group2->IsFull()); - AtomicFlagSetForTest::Group* group3 = group2->next_.get(); + AtomicFlagSetForTest::Group* group3 = group2->next.get(); ASSERT_THAT(group3, NotNull()); - EXPECT_THAT(group3->next_.get(), IsNull()); + EXPECT_THAT(group3->next.get(), IsNull()); EXPECT_TRUE(group3->IsFull()); // |group1| is on the head of the partially free list, now add groups 2 and 3. @@ -195,30 +195,30 @@ EXPECT_FALSE(group3->IsFull()); EXPECT_EQ(group3, atomic_flag_set_.GetPartiallyFreeListForTesting()); - EXPECT_EQ(group3->partially_free_list_prev_, nullptr); - EXPECT_EQ(group3->partially_free_list_next_, group2); - EXPECT_EQ(group2->partially_free_list_prev_, group3); - EXPECT_EQ(group2->partially_free_list_next_, group1); - EXPECT_EQ(group1->partially_free_list_prev_, group2); - EXPECT_EQ(group1->partially_free_list_next_, nullptr); - EXPECT_EQ(group1->prev_, nullptr); - EXPECT_EQ(group2->prev_, group1); - EXPECT_EQ(group3->prev_, group2); + EXPECT_EQ(group3->partially_free_list_prev, nullptr); + EXPECT_EQ(group3->partially_free_list_next, group2); + EXPECT_EQ(group2->partially_free_list_prev, group3); + EXPECT_EQ(group2->partially_free_list_next, group1); + EXPECT_EQ(group1->partially_free_list_prev, group2); + EXPECT_EQ(group1->partially_free_list_next, nullptr); + EXPECT_EQ(group1->prev, nullptr); + EXPECT_EQ(group2->prev, group1); + EXPECT_EQ(group3->prev, group2); // This will release |group3|. for (size_t i = 0; i < AtomicFlagSetForTest::Group::kNumFlags; i++) { atomic_flags_[i].ReleaseAtomicFlag(); } EXPECT_EQ(group2, atomic_flag_set_.GetPartiallyFreeListForTesting()); - EXPECT_EQ(group2->partially_free_list_prev_, nullptr); - EXPECT_EQ(group2->partially_free_list_next_, group1); - EXPECT_EQ(group1->partially_free_list_prev_, group2); - EXPECT_EQ(group1->partially_free_list_next_, nullptr); + EXPECT_EQ(group2->partially_free_list_prev, nullptr); + EXPECT_EQ(group2->partially_free_list_next, group1); + EXPECT_EQ(group1->partially_free_list_prev, group2); + EXPECT_EQ(group1->partially_free_list_next, nullptr); EXPECT_EQ(group1, atomic_flag_set_.GetAllocListForTesting()); - EXPECT_EQ(group1->next_.get(), group2); - EXPECT_EQ(group1->prev_, nullptr); - EXPECT_EQ(group2->prev_, group1); - EXPECT_EQ(group2->next_.get(), nullptr); + EXPECT_EQ(group1->next.get(), group2); + EXPECT_EQ(group1->prev, nullptr); + EXPECT_EQ(group2->prev, group1); + EXPECT_EQ(group2->next.get(), nullptr); } TEST_F(AtomicFlagSetTest, GroupBecomesEmptyMiddleOfPartiallyFreeList) { @@ -230,12 +230,12 @@ ASSERT_THAT(group1, NotNull()); EXPECT_FALSE(group1->IsFull()); EXPECT_FALSE(group1->IsEmpty()); - AtomicFlagSetForTest::Group* group2 = group1->next_.get(); + AtomicFlagSetForTest::Group* group2 = group1->next.get(); ASSERT_THAT(group2, NotNull()); EXPECT_TRUE(group2->IsFull()); - AtomicFlagSetForTest::Group* group3 = group2->next_.get(); + AtomicFlagSetForTest::Group* group3 = group2->next.get(); ASSERT_THAT(group3, NotNull()); - EXPECT_THAT(group3->next_.get(), IsNull()); + EXPECT_THAT(group3->next.get(), IsNull()); EXPECT_TRUE(group3->IsFull()); // |group1| is on the head of the partially free list, now add groups 2 and 3. @@ -245,15 +245,15 @@ EXPECT_FALSE(group3->IsFull()); EXPECT_EQ(group3, atomic_flag_set_.GetPartiallyFreeListForTesting()); - EXPECT_EQ(group3->partially_free_list_prev_, nullptr); - EXPECT_EQ(group3->partially_free_list_next_, group2); - EXPECT_EQ(group2->partially_free_list_prev_, group3); - EXPECT_EQ(group2->partially_free_list_next_, group1); - EXPECT_EQ(group1->partially_free_list_prev_, group2); - EXPECT_EQ(group1->partially_free_list_next_, nullptr); - EXPECT_EQ(group1->prev_, nullptr); - EXPECT_EQ(group2->prev_, group1); - EXPECT_EQ(group3->prev_, group2); + EXPECT_EQ(group3->partially_free_list_prev, nullptr); + EXPECT_EQ(group3->partially_free_list_next, group2); + EXPECT_EQ(group2->partially_free_list_prev, group3); + EXPECT_EQ(group2->partially_free_list_next, group1); + EXPECT_EQ(group1->partially_free_list_prev, group2); + EXPECT_EQ(group1->partially_free_list_next, nullptr); + EXPECT_EQ(group1->prev, nullptr); + EXPECT_EQ(group2->prev, group1); + EXPECT_EQ(group3->prev, group2); // This will release |group2|. for (size_t i = AtomicFlagSetForTest::Group::kNumFlags; @@ -261,15 +261,15 @@ atomic_flags_[i].ReleaseAtomicFlag(); } EXPECT_EQ(group3, atomic_flag_set_.GetPartiallyFreeListForTesting()); - EXPECT_EQ(group3->partially_free_list_prev_, nullptr); - EXPECT_EQ(group3->partially_free_list_next_, group1); - EXPECT_EQ(group1->partially_free_list_prev_, group3); - EXPECT_EQ(group1->partially_free_list_next_, nullptr); + EXPECT_EQ(group3->partially_free_list_prev, nullptr); + EXPECT_EQ(group3->partially_free_list_next, group1); + EXPECT_EQ(group1->partially_free_list_prev, group3); + EXPECT_EQ(group1->partially_free_list_next, nullptr); EXPECT_EQ(group1, atomic_flag_set_.GetAllocListForTesting()); - EXPECT_EQ(group1->prev_, nullptr); - EXPECT_EQ(group1->next_.get(), group3); - EXPECT_EQ(group3->prev_, group1); - EXPECT_EQ(group3->next_.get(), nullptr); + EXPECT_EQ(group1->prev, nullptr); + EXPECT_EQ(group1->next.get(), group3); + EXPECT_EQ(group3->prev, group1); + EXPECT_EQ(group3->next.get(), nullptr); } TEST_F(AtomicFlagSetTest, GroupBecomesEmptyTailOfPartiallyFreeList) { @@ -281,12 +281,12 @@ ASSERT_THAT(group1, NotNull()); EXPECT_FALSE(group1->IsFull()); EXPECT_FALSE(group1->IsEmpty()); - AtomicFlagSetForTest::Group* group2 = group1->next_.get(); + AtomicFlagSetForTest::Group* group2 = group1->next.get(); ASSERT_THAT(group2, NotNull()); EXPECT_TRUE(group2->IsFull()); - AtomicFlagSetForTest::Group* group3 = group2->next_.get(); + AtomicFlagSetForTest::Group* group3 = group2->next.get(); ASSERT_THAT(group3, NotNull()); - EXPECT_THAT(group3->next_.get(), IsNull()); + EXPECT_THAT(group3->next.get(), IsNull()); EXPECT_TRUE(group3->IsFull()); // |group1| is on the head of the partially free list, now add groups 2 and 3. @@ -296,28 +296,28 @@ EXPECT_FALSE(group3->IsFull()); EXPECT_EQ(group3, atomic_flag_set_.GetPartiallyFreeListForTesting()); - EXPECT_EQ(group3->partially_free_list_prev_, nullptr); - EXPECT_EQ(group3->partially_free_list_next_, group2); - EXPECT_EQ(group2->partially_free_list_prev_, group3); - EXPECT_EQ(group2->partially_free_list_next_, group1); - EXPECT_EQ(group1->partially_free_list_prev_, group2); - EXPECT_EQ(group1->partially_free_list_next_, nullptr); - EXPECT_EQ(group1->prev_, nullptr); - EXPECT_EQ(group2->prev_, group1); - EXPECT_EQ(group3->prev_, group2); + EXPECT_EQ(group3->partially_free_list_prev, nullptr); + EXPECT_EQ(group3->partially_free_list_next, group2); + EXPECT_EQ(group2->partially_free_list_prev, group3); + EXPECT_EQ(group2->partially_free_list_next, group1); + EXPECT_EQ(group1->partially_free_list_prev, group2); + EXPECT_EQ(group1->partially_free_list_next, nullptr); + EXPECT_EQ(group1->prev, nullptr); + EXPECT_EQ(group2->prev, group1); + EXPECT_EQ(group3->prev, group2); // This will release |group1|. atomic_flags_[AtomicFlagSetForTest::Group::kNumFlags * 2].ReleaseAtomicFlag(); EXPECT_EQ(group3, atomic_flag_set_.GetPartiallyFreeListForTesting()); - EXPECT_EQ(group3->partially_free_list_prev_, nullptr); - EXPECT_EQ(group3->partially_free_list_next_, group2); - EXPECT_EQ(group2->partially_free_list_prev_, group3); - EXPECT_EQ(group2->partially_free_list_next_, nullptr); + EXPECT_EQ(group3->partially_free_list_prev, nullptr); + EXPECT_EQ(group3->partially_free_list_next, group2); + EXPECT_EQ(group2->partially_free_list_prev, group3); + EXPECT_EQ(group2->partially_free_list_next, nullptr); EXPECT_EQ(group2, atomic_flag_set_.GetAllocListForTesting()); - EXPECT_EQ(group2->prev_, nullptr); - EXPECT_EQ(group2->next_.get(), group3); - EXPECT_EQ(group3->prev_, group2); - EXPECT_EQ(group3->next_.get(), nullptr); + EXPECT_EQ(group2->prev, nullptr); + EXPECT_EQ(group2->next.get(), group3); + EXPECT_EQ(group3->prev, group2); + EXPECT_EQ(group3->next.get(), nullptr); } } // namespace internal
diff --git a/base/task/sequence_manager/sequence_manager_impl.cc b/base/task/sequence_manager/sequence_manager_impl.cc index b7bdb5f..3fc2086 100644 --- a/base/task/sequence_manager/sequence_manager_impl.cc +++ b/base/task/sequence_manager/sequence_manager_impl.cc
@@ -369,7 +369,7 @@ void SequenceManagerImpl::ReloadEmptyWorkQueues() const { // There are two cases where a queue needs reloading. First, it might be // completely empty and we've just posted a task (this method handles that - // case). Secondly if the work queue becomes empty in when calling + // case). Secondly if the work queue becomes empty when calling // WorkQueue::TakeTaskFromWorkQueue (handled there). // // Invokes callbacks created by GetFlagToRequestReloadForEmptyQueue above.
diff --git a/base/task/sequence_manager/sequence_manager_impl.h b/base/task/sequence_manager/sequence_manager_impl.h index 42c2207..124b21b5 100644 --- a/base/task/sequence_manager/sequence_manager_impl.h +++ b/base/task/sequence_manager/sequence_manager_impl.h
@@ -340,6 +340,11 @@ AsValueWithSelectorResult(internal::WorkQueue* selected_work_queue, bool force_verbose) const; + // Used in construction of TaskQueueImpl to obtain an AtomicFlag which it can + // use to request reload by ReloadEmptyWorkQueues. The lifetime of + // TaskQueueImpl is managed by this class and the handle will be released by + // TaskQueueImpl::UnregisterTaskQueue which is always called before the + // queue's destruction. AtomicFlagSet::AtomicFlag GetFlagToRequestReloadForEmptyQueue( TaskQueueImpl* task_queue);
diff --git a/base/task/sequence_manager/task_queue_impl.cc b/base/task/sequence_manager/task_queue_impl.cc index 2ed94a7..0911fbe3 100644 --- a/base/task/sequence_manager/task_queue_impl.cc +++ b/base/task/sequence_manager/task_queue_impl.cc
@@ -956,21 +956,19 @@ main_thread_only().delayed_work_queue->PushNonNestableTaskToFront( std::move(task.task)); } else { - // We're about to push |task| onto an empty |immediate_work_queue|. This - // may mean we'd be violating the contract of AtomicFlagSet, it's - // only supposed to contain queues where - // |any_thread_.immediate_incoming_queue| is non empty but - // |immediate_work_queue| is empty. We remedy that by removing ourselves - // from that list (a NOP if we're not in the list). + // We're about to push |task| onto an empty |immediate_work_queue| + // (bypassing |immediate_incoming_queue_|). As such, we no longer need to + // reload if we were planning to. The flag must be cleared while holding + // the lock to avoid a cross-thread post task setting it again before + // we actually make |immediate_work_queue| non-empty. if (main_thread_only().immediate_work_queue->Empty()) { + base::internal::AutoSchedulerLock lock(any_thread_lock_); empty_queues_to_reload_handle_.SetActive(false); - { - base::internal::AutoSchedulerLock lock(any_thread_lock_); - any_thread_.immediate_work_queue_empty = false; - main_thread_only().immediate_work_queue->PushNonNestableTaskToFront( - std::move(task.task)); - } + any_thread_.immediate_work_queue_empty = false; + main_thread_only().immediate_work_queue->PushNonNestableTaskToFront( + std::move(task.task)); + } else { main_thread_only().immediate_work_queue->PushNonNestableTaskToFront( std::move(task.task)); @@ -1090,7 +1088,6 @@ // TODO(altimin): Add clear() method to DelayedIncomingQueue. DelayedIncomingQueue queue_to_delete; main_thread_only().delayed_incoming_queue.swap(&queue_to_delete); - empty_queues_to_reload_handle_.SetActive(false); TaskDeque deque; { @@ -1099,6 +1096,7 @@ base::internal::AutoSchedulerLock lock(any_thread_lock_); deque.swap(any_thread_.immediate_incoming_queue); any_thread_.immediate_work_queue_empty = true; + empty_queues_to_reload_handle_.SetActive(false); } LazyNow lazy_now = main_thread_only().time_domain->CreateLazyNow();
diff --git a/base/task/sequence_manager/task_queue_impl.h b/base/task/sequence_manager/task_queue_impl.h index 8c866b8..e80981ae 100644 --- a/base/task/sequence_manager/task_queue_impl.h +++ b/base/task/sequence_manager/task_queue_impl.h
@@ -455,6 +455,9 @@ // Handle to our entry within the SequenceManagers |empty_queues_to_reload_| // atomic flag set. Used to signal that this queue needs to be reloaded. + // If you call SetActive(false) you should do so inside |any_thread_lock_| + // because there is a danger a cross thread PostTask might reset it before we + // make |immediate_work_queue| non-empty. AtomicFlagSet::AtomicFlag empty_queues_to_reload_handle_; const bool should_monitor_quiescence_;
diff --git a/base/task/sequence_manager/time_domain.h b/base/task/sequence_manager/time_domain.h index 22506672..152ebed 100644 --- a/base/task/sequence_manager/time_domain.h +++ b/base/task/sequence_manager/time_domain.h
@@ -64,7 +64,7 @@ // This is the signal that virtual time should step forward. If // RunLoop::QuitWhenIdle has been called then |quit_when_idle_requested| will - // be true. Returns true if time advanced and there is now a task to run. + // be true. Returns true if there is a task to run now. virtual bool MaybeFastForwardToNextTask(bool quit_when_idle_requested) = 0; protected:
diff --git a/base/task/thread_pool/platform_native_worker_pool_win.cc b/base/task/thread_pool/platform_native_worker_pool_win.cc index 30a50ac..5771063 100644 --- a/base/task/thread_pool/platform_native_worker_pool_win.cc +++ b/base/task/thread_pool/platform_native_worker_pool_win.cc
@@ -69,11 +69,19 @@ auto* worker_pool = static_cast<PlatformNativeWorkerPoolWin*>( scheduler_worker_pool_windows_impl); - if (worker_pool->worker_environment_ == WorkerEnvironment::COM_MTA && - !ScopedCOMInitializerForCurrentThread().Get()) { - ScopedCOMInitializerForCurrentThread().Set( - std::make_unique<win::ScopedCOMInitializer>( - win::ScopedCOMInitializer::kMTA)); + if (worker_pool->worker_environment_ == WorkerEnvironment::COM_MTA) { + if (!ScopedCOMInitializerForCurrentThread().Get()) { + ScopedCOMInitializerForCurrentThread().Set( + std::make_unique<win::ScopedCOMInitializer>( + win::ScopedCOMInitializer::kMTA)); + } + } else if (worker_pool->worker_environment_ == WorkerEnvironment::NONE) { + // Upon destruction, a PTP_POOL object might not destroy the threads it + // created, and another PTP_POOL object created in the same process might + // reuse the old threads. Consequently, it is possible to be on a COM + // initialized thread even if |worker_environment_| is NONE. In this case, + // COM is uninitialized by explicitly resetting the ScopedCOMInitializer. + ScopedCOMInitializerForCurrentThread().Set(nullptr); } worker_pool->RunNextSequenceImpl();
diff --git a/base/test/scoped_task_environment.cc b/base/test/scoped_task_environment.cc index 724b37e2..76811d1 100644 --- a/base/test/scoped_task_environment.cc +++ b/base/test/scoped_task_environment.cc
@@ -191,12 +191,17 @@ // We don't need to call ReclaimMemory here because // DelayTillNextTask will have dealt with cancelled delayed tasks for us. Optional<TimeTicks> run_time = NextScheduledRunTime(); - if (!run_time || run_time == now_ticks_) { - // We've run out of tasks (or an immediate task came in racily from - // another thread after reaching idle, ignore it, it will be processed in - // the next run as-if it arrived slightly later). - // ScopedTaskEnvironment::FastForwardBy requires the remaining virtual - // time to be consumed upon reaching idle. + // If an immediate task came in racily from another thread, resume work + // without advancing time. This can happen regardless of whether the main + // thread has more delayed tasks scheduled before |allow_advance_until_|. If + // there are such tasks, auto-advancing time all the way would be incorrect. + // In both cases, resuming is fine. + if (run_time == now_ticks_) + return true; + + if (!run_time) { + // We've run out of tasks. ScopedTaskEnvironment::FastForwardBy requires + // the remaining virtual time to be consumed upon reaching idle. if (now_ticks_ < allow_advance_until_ && !allow_advance_until_.is_max()) SetTime(allow_advance_until_); return false; @@ -439,6 +444,11 @@ : sequence_manager_->GetRealTimeDomain(); } +void ScopedTaskEnvironment::SetAllowTimeToAutoAdvanceUntilForTesting( + TimeTicks advance_until) { + mock_time_domain_->SetAllowTimeToAutoAdvanceUntil(advance_until); +} + sequence_manager::SequenceManager* ScopedTaskEnvironment::sequence_manager() const { DCHECK(subclass_creates_default_taskrunner_);
diff --git a/base/test/scoped_task_environment.h b/base/test/scoped_task_environment.h index e6ccfc0..2e17d0ce 100644 --- a/base/test/scoped_task_environment.h +++ b/base/test/scoped_task_environment.h
@@ -236,6 +236,9 @@ // Returns the TimeDomain driving this ScopedTaskEnvironment. sequence_manager::TimeDomain* GetTimeDomain() const; + // For testing the MockTimeDomain. + void SetAllowTimeToAutoAdvanceUntilForTesting(TimeTicks advance_until); + sequence_manager::SequenceManager* sequence_manager() const; void DeferredInitFromSubclass(
diff --git a/base/test/scoped_task_environment_unittest.cc b/base/test/scoped_task_environment_unittest.cc index 0dc605f..32cf8853 100644 --- a/base/test/scoped_task_environment_unittest.cc +++ b/base/test/scoped_task_environment_unittest.cc
@@ -15,10 +15,12 @@ #include "base/synchronization/waitable_event.h" #include "base/task/post_task.h" #include "base/task/sequence_manager/time_domain.h" +#include "base/test/bind_test_util.h" #include "base/test/mock_callback.h" #include "base/test/test_timeouts.h" #include "base/threading/platform_thread.h" #include "base/threading/sequence_local_storage_slot.h" +#include "base/threading/thread.h" #include "base/threading/thread_task_runner_handle.h" #include "base/time/clock.h" #include "base/time/default_clock.h" @@ -50,6 +52,7 @@ : ScopedTaskEnvironment(args...) {} using ScopedTaskEnvironment::GetTimeDomain; + using ScopedTaskEnvironment::SetAllowTimeToAutoAdvanceUntilForTesting; }; class ScopedTaskEnvironmentTest @@ -380,23 +383,112 @@ TEST_F(ScopedTaskEnvironmentTest, MockTimeDomain_MaybeFastForwardToNextTask_ImmediateTaskPending) { + ScopedTaskEnvironmentForTest scoped_task_environment( + ScopedTaskEnvironment::MainThreadType::MOCK_TIME, + ScopedTaskEnvironment::NowSource::MAIN_THREAD_MOCK_TIME); + const TimeTicks start_time = base::TimeTicks::Now(); + scoped_task_environment.SetAllowTimeToAutoAdvanceUntilForTesting( + start_time + TimeDelta::FromSeconds(100)); + + ThreadTaskRunnerHandle::Get()->PostDelayedTask(FROM_HERE, base::DoNothing(), + TimeDelta::FromSeconds(42)); + ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, base::DoNothing()); + EXPECT_TRUE( + scoped_task_environment.GetTimeDomain()->MaybeFastForwardToNextTask( + false)); + EXPECT_EQ(start_time, base::TimeTicks::Now()); +} + +TEST_F(ScopedTaskEnvironmentTest, + MockTimeDomain_MaybeFastForwardToNextTask_TaskAfterAutoAdvanceUntil) { constexpr base::TimeDelta kDelay = TimeDelta::FromSeconds(42); ScopedTaskEnvironmentForTest scoped_task_environment( ScopedTaskEnvironment::MainThreadType::MOCK_TIME, ScopedTaskEnvironment::NowSource::MAIN_THREAD_MOCK_TIME); const TimeTicks start_time = base::TimeTicks::Now(); - EXPECT_FALSE( - scoped_task_environment.GetTimeDomain()->MaybeFastForwardToNextTask( - false)); - EXPECT_EQ(start_time, base::TimeTicks::Now()); + scoped_task_environment.SetAllowTimeToAutoAdvanceUntilForTesting(start_time + + kDelay); ThreadTaskRunnerHandle::Get()->PostDelayedTask(FROM_HERE, base::DoNothing(), - kDelay); - ThreadTaskRunnerHandle::Get()->PostTask(FROM_HERE, base::DoNothing()); + TimeDelta::FromSeconds(100)); + EXPECT_TRUE( + scoped_task_environment.GetTimeDomain()->MaybeFastForwardToNextTask( + false)); + EXPECT_EQ(start_time + kDelay, base::TimeTicks::Now()); +} + +TEST_F(ScopedTaskEnvironmentTest, + MockTimeDomain_MaybeFastForwardToNextTask_NoTasksPending) { + constexpr base::TimeDelta kDelay = TimeDelta::FromSeconds(42); + ScopedTaskEnvironmentForTest scoped_task_environment( + ScopedTaskEnvironment::MainThreadType::MOCK_TIME, + ScopedTaskEnvironment::NowSource::MAIN_THREAD_MOCK_TIME); + const TimeTicks start_time = base::TimeTicks::Now(); + scoped_task_environment.SetAllowTimeToAutoAdvanceUntilForTesting(start_time + + kDelay); + EXPECT_FALSE( scoped_task_environment.GetTimeDomain()->MaybeFastForwardToNextTask( false)); - EXPECT_EQ(start_time, base::TimeTicks::Now()); + EXPECT_EQ(start_time + kDelay, base::TimeTicks::Now()); +} + +TEST_F(ScopedTaskEnvironmentTest, FastForwardZero) { + ScopedTaskEnvironment scoped_task_environment( + ScopedTaskEnvironment::MainThreadType::MOCK_TIME); + + int run_count = 0; + ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, BindLambdaForTesting([&]() { run_count++; })); + ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, BindLambdaForTesting([&]() { run_count++; })); + ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, BindLambdaForTesting([&]() { run_count++; })); + + scoped_task_environment.FastForwardBy(base::TimeDelta()); + + EXPECT_EQ(3, run_count); +} + +TEST_F(ScopedTaskEnvironmentTest, CrossThreadTaskPostingDoesntAffectMockTime) { + ScopedTaskEnvironment scoped_task_environment( + ScopedTaskEnvironment::MainThreadType::MOCK_TIME); + scoped_refptr<SingleThreadTaskRunner> main_thread = + ThreadTaskRunnerHandle::Get(); + + // Start a thread that will spam the main thread with uninteresting tasks + // which shouldn't interfere with main thread MOCK_TIME. + Thread spaming_thread("test thread"); + spaming_thread.Start(); + AtomicFlag stop_spamming; + + RepeatingClosure repeating_spam_task = BindLambdaForTesting([&]() { + if (stop_spamming.IsSet()) + return; + // We don't want to completely drown out main thread tasks so we rate limit + // how fast we post to the main thread to at most 1 per 10 microseconds. + spaming_thread.task_runner()->PostDelayedTask( + FROM_HERE, repeating_spam_task, TimeDelta::FromMicroseconds(10)); + main_thread->PostTask(FROM_HERE, DoNothing()); + }); + spaming_thread.task_runner()->PostTask(FROM_HERE, repeating_spam_task); + + // Start a repeating delayed task. + int count = 0; + RepeatingClosure repeating_delayed_task = BindLambdaForTesting([&]() { + main_thread->PostDelayedTask(FROM_HERE, repeating_delayed_task, + TimeDelta::FromSeconds(1)); + + count++; + }); + main_thread->PostDelayedTask(FROM_HERE, repeating_delayed_task, + TimeDelta::FromSeconds(1)); + + scoped_task_environment.FastForwardBy(TimeDelta::FromSeconds(10000)); + EXPECT_EQ(count, 10000); + + stop_spamming.Set(); + spaming_thread.Stop(); } #if defined(OS_WIN)
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1 index b891b02..626b09f94 100644 --- a/build/fuchsia/linux.sdk.sha1 +++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@ -8915992854282451632 \ No newline at end of file +8915952517300822912 \ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1 index b622d13..e32f944 100644 --- a/build/fuchsia/mac.sdk.sha1 +++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@ -8916000087704284384 \ No newline at end of file +8915955147436466912 \ No newline at end of file
diff --git a/chrome/android/chrome_test_java_sources.gni b/chrome/android/chrome_test_java_sources.gni index ad6f064..d5cd614 100644 --- a/chrome/android/chrome_test_java_sources.gni +++ b/chrome/android/chrome_test_java_sources.gni
@@ -65,6 +65,7 @@ "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingTestHelper.java", "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/ManualFillingUiCaptureTest.java", "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/FakeKeyboard.java", + "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java", "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java", "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/sheet_component/AccessorySheetViewTest.java", "javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/sheet_tabs/PasswordAccessoryIntegrationTest.java",
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java index b8c26ef..e39d958 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeFeatureList.java
@@ -320,6 +320,8 @@ public static final String TRANSLATE_ANDROID_MANUAL_TRIGGER = "TranslateAndroidManualTrigger"; public static final String TRUSTED_WEB_ACTIVITY = "TrustedWebActivity"; public static final String TRUSTED_WEB_ACTIVITY_POST_MESSAGE = "TrustedWebActivityPostMessage"; + public static final String TRUSTED_WEB_ACTIVITY_NOTIFICATION_DELEGATION_ENROLMENT = + "TrustedWebActivityNotificationDelegationAutoEnrolment"; public static final String VIDEO_PERSISTENCE = "VideoPersistence"; public static final String UNIFIED_CONSENT = "UnifiedConsent"; public static final String USAGE_STATS = "UsageStats";
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernView.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernView.java index bac5aee..8998c15 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernView.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernView.java
@@ -122,10 +122,17 @@ mBarItemsView.post(mBarItemsView::invalidateItemDecorations); } + @Override + void setVisible(boolean visible) { + super.setVisible(visible); + if (visible) mBarItemsView.post(mBarItemsView::invalidateItemDecorations); + } + void setKeyboardToggleVisibility(boolean hasActiveTab) { mKeyboardToggle.setVisibility(hasActiveTab ? VISIBLE : GONE); mSheetTitle.setVisibility(hasActiveTab ? VISIBLE : GONE); mBarItemsView.setVisibility(hasActiveTab ? GONE : VISIBLE); + if (!hasActiveTab) mBarItemsView.post(mBarItemsView::invalidateItemDecorations); } void setSheetTitle(String title) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java index 00db1a4..87cabcf 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java
@@ -16,6 +16,7 @@ import org.chromium.base.Log; import org.chromium.base.task.PostTask; import org.chromium.chrome.browser.ChromeApplication; +import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.browserservices.BrowserServicesMetrics; import org.chromium.chrome.browser.browserservices.Origin; import org.chromium.chrome.browser.browserservices.TrustedWebActivityClient; @@ -60,6 +61,11 @@ * - Otherwise, it does nothing. */ public void onOriginVerified(Origin origin, String packageName) { + if (!ChromeFeatureList.isEnabled( + ChromeFeatureList.TRUSTED_WEB_ACTIVITY_NOTIFICATION_DELEGATION_ENROLMENT)) { + return; + } + // If the client doesn't handle browsable Intents for the URL, we don't do anything special // for the origin's notifications. if (!appHandlesBrowsableIntent(packageName, origin.uri())) { @@ -83,6 +89,11 @@ * app was installed. */ public void onClientAppUninstalled(Origin origin) { + if (!ChromeFeatureList.isEnabled( + ChromeFeatureList.TRUSTED_WEB_ACTIVITY_NOTIFICATION_DELEGATION_ENROLMENT)) { + return; + } + // See if there is any other app installed that could handle the notifications (and update // to that apps notification permission if it exists). boolean couldConnect = mTrustedWebActivityClient.checkNotificationPermission(origin,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java index ee3615e..6bb1f27 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/page_info/PermissionParamsListBuilder.java
@@ -18,6 +18,8 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.ContentSettingsType; +import org.chromium.chrome.browser.browserservices.Origin; +import org.chromium.chrome.browser.browserservices.permissiondelegation.TrustedWebActivityPermissionManager; import org.chromium.chrome.browser.preferences.PrefServiceBridge; import org.chromium.chrome.browser.preferences.website.ContentSettingValues; import org.chromium.chrome.browser.preferences.website.ContentSettingsResources; @@ -122,19 +124,31 @@ builder.append(nameString); builder.append(" – "); // en-dash. String status_text = ""; - switch (permission.setting) { - case ContentSettingValues.ALLOW: - status_text = mContext.getString(R.string.page_info_permission_allowed); - break; - case ContentSettingValues.BLOCK: - status_text = mContext.getString(R.string.page_info_permission_blocked); - break; - default: - assert false : "Invalid setting " + permission.setting + " for permission " - + permission.type; + + String managedBy = null; + if (permission.type == ContentSettingsType.CONTENT_SETTINGS_TYPE_NOTIFICATIONS) { + TrustedWebActivityPermissionManager manager = TrustedWebActivityPermissionManager.get(); + managedBy = manager.getDelegateAppName(new Origin(mFullUrl)); } - if (WebsitePreferenceBridge.isPermissionControlledByDSE(permission.type, mFullUrl, false)) { - status_text = statusTextForDSEPermission(permission.setting); + if (managedBy != null) { + status_text = String.format( + mContext.getString(R.string.website_notification_managed_by_app), managedBy); + } else { + switch (permission.setting) { + case ContentSettingValues.ALLOW: + status_text = mContext.getString(R.string.page_info_permission_allowed); + break; + case ContentSettingValues.BLOCK: + status_text = mContext.getString(R.string.page_info_permission_blocked); + break; + default: + assert false : "Invalid setting " + permission.setting + " for permission " + + permission.type; + } + if (WebsitePreferenceBridge.isPermissionControlledByDSE( + permission.type, mFullUrl, false)) { + status_text = statusTextForDSEPermission(permission.setting); + } } builder.append(status_text); permissionParams.status = builder;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromeImageViewPreference.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromeImageViewPreference.java index 34ebbf7..a955013 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromeImageViewPreference.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/ChromeImageViewPreference.java
@@ -44,6 +44,8 @@ // The string resource ID to use for the ImageView widget content description. @StringRes private int mContentDescriptionRes; + // Whether the ImageView should be enabled. + private boolean mImageViewEnabled = true; /** * Constructor for use in Java. @@ -82,7 +84,8 @@ button.setImageDrawable(buttonImg); button.setBackgroundColor(Color.TRANSPARENT); button.setVisibility(View.VISIBLE); - button.setOnClickListener(mListener); + button.setEnabled(mImageViewEnabled); + if (mImageViewEnabled) button.setOnClickListener(mListener); if (mContentDescriptionRes != 0) { button.setContentDescription(view.getResources().getString(mContentDescriptionRes)); @@ -111,6 +114,13 @@ } /** + * Enables/Disables the ImageView, allowing for clicks to pass through (when disabled). + */ + public void setImageViewEnabled(boolean enabled) { + mImageViewEnabled = enabled; + } + + /** * If a {@link ManagedPreferenceDelegate} has been set, check if this preference is managed. * @return True if the preference is managed. */
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java index 9ddfc3b3..db7f679 100644 --- a/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java +++ b/chrome/android/java/src/org/chromium/chrome/browser/preferences/website/SingleWebsitePreferences.java
@@ -31,6 +31,7 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ContentSettingsType; import org.chromium.chrome.browser.browserservices.Origin; +import org.chromium.chrome.browser.browserservices.permissiondelegation.TrustedWebActivityPermissionManager; import org.chromium.chrome.browser.notifications.channels.SiteChannelsManager; import org.chromium.chrome.browser.preferences.ChromeImageViewPreference; import org.chromium.chrome.browser.preferences.ManagedPreferenceDelegate; @@ -361,7 +362,70 @@ } } + private Intent getNotificationSettingsIntent(String packageName) { + Intent intent = new Intent(); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + intent.setAction(Settings.ACTION_APP_NOTIFICATION_SETTINGS); + intent.putExtra(Settings.EXTRA_APP_PACKAGE, packageName); + } else { + intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); + intent.setData(Uri.parse("package:" + packageName)); + } + return intent; + } + + /** + * Replaces a Preference with a read-only copy. The new Preference retains + * its key and the order within the preference screen, but gets a new + * summary and (intentionally) loses its click handler. + * @return A read-only copy of the preference passed in as |oldPreference|. + */ + private ChromeImageViewPreference replaceWithReadOnlyCopyOf( + Preference oldPreference, String newSummary) { + ChromeImageViewPreference newPreference = + new ChromeImageViewPreference(oldPreference.getContext()); + newPreference.setKey(oldPreference.getKey()); + setUpPreferenceCommon(newPreference); + newPreference.setSummary(newSummary); + + // This preference is read-only so should not attempt to persist to shared prefs. + newPreference.setPersistent(false); + + newPreference.setOrder(oldPreference.getOrder()); + getPreferenceScreen().removePreference(oldPreference); + getPreferenceScreen().addPreference(newPreference); + return newPreference; + } + + private void setupNotificationManagedByPreference( + ChromeImageViewPreference preference, Intent settingsIntent) { + preference.setImageView( + R.drawable.permission_popups, R.string.website_notification_settings, null); + // By disabling the ImageView, clicks will go through to the preference. + preference.setImageViewEnabled(false); + + preference.setOnPreferenceClickListener(unused -> { + startActivity(settingsIntent); + return true; + }); + } + private void setUpNotificationsPreference(Preference preference) { + TrustedWebActivityPermissionManager manager = TrustedWebActivityPermissionManager.get(); + Origin origin = new Origin(mSite.getAddress().getOrigin()); + String managedBy = manager.getDelegateAppName(origin); + if (managedBy != null) { + final Intent notificationSettingsIntent = + getNotificationSettingsIntent(manager.getDelegatePackageName(origin)); + String summaryText = String.format( + getResources().getString(R.string.website_notification_managed_by_app), + managedBy); + ChromeImageViewPreference newPreference = + replaceWithReadOnlyCopyOf(preference, summaryText); + setupNotificationManagedByPreference(newPreference, notificationSettingsIntent); + return; + } + final @ContentSettingValues @Nullable Integer value = mSite.getPermission(PermissionInfo.Type.NOTIFICATION); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { @@ -374,46 +438,37 @@ getPreferenceScreen().removePreference(preference); return; } - // On Android O this preference is read-only, so we replace the existing pref with a - // regular Preference that takes users to OS settings on click. - Preference newPreference = new Preference(preference.getContext()); - newPreference.setKey(preference.getKey()); - setUpPreferenceCommon(newPreference); + String overrideSummary; if (isPermissionControlledByDSE( ContentSettingsType.CONTENT_SETTINGS_TYPE_NOTIFICATIONS)) { - newPreference.setSummary(getResources().getString( + overrideSummary = getResources().getString( value != null && value == ContentSettingValues.ALLOW ? R.string.website_settings_permissions_allow_dse - : R.string.website_settings_permissions_block_dse)); + : R.string.website_settings_permissions_block_dse); } else { - newPreference.setSummary( - getResources().getString(ContentSettingsResources.getSiteSummary(value))); + overrideSummary = + getResources().getString(ContentSettingsResources.getSiteSummary(value)); } + // On Android O this preference is read-only, so we replace the existing pref with a + // regular Preference that takes users to OS settings on click. + ChromeImageViewPreference newPreference = + replaceWithReadOnlyCopyOf(preference, overrideSummary); newPreference.setDefaultValue(value); - // This preference is read-only so should not attempt to persist to shared prefs. - newPreference.setPersistent(false); - - newPreference.setOnPreferenceClickListener(new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - // There is no guarantee that a channel has been initialized yet for sites - // that were granted permission before the channel-initialization-on-grant - // code was in place. However, getChannelIdForOrigin will fall back to the - // generic Sites channel if no specific channel has been created for the given - // origin, so it is safe to open the channel settings for whatever channel ID - // it returns. - String channelId = SiteChannelsManager.getInstance().getChannelIdForOrigin( - mSite.getAddress().getOrigin()); - launchOsChannelSettings(preference.getContext(), channelId); - return true; - } + newPreference.setOnPreferenceClickListener(unused -> { + // There is no guarantee that a channel has been initialized yet for sites + // that were granted permission before the channel-initialization-on-grant + // code was in place. However, getChannelIdForOrigin will fall back to the + // generic Sites channel if no specific channel has been created for the given + // origin, so it is safe to open the channel settings for whatever channel ID + // it returns. + String channelId = SiteChannelsManager.getInstance().getChannelIdForOrigin( + mSite.getAddress().getOrigin()); + launchOsChannelSettings(preference.getContext(), channelId); + return true; }); - newPreference.setOrder(preference.getOrder()); - getPreferenceScreen().removePreference(preference); - getPreferenceScreen().addPreference(newPreference); } else { setUpListPreference(preference, value); if (isPermissionControlledByDSE(ContentSettingsType.CONTENT_SETTINGS_TYPE_NOTIFICATIONS)
diff --git a/chrome/android/java/strings/android_chrome_strings.grd b/chrome/android/java/strings/android_chrome_strings.grd index 956fdf9..ea7a0ea 100644 --- a/chrome/android/java/strings/android_chrome_strings.grd +++ b/chrome/android/java/strings/android_chrome_strings.grd
@@ -1164,6 +1164,12 @@ <message name="IDS_WEBSTORAGE_CLEAR_DATA_DIALOG_OK_BUTTON" desc="Button confirming site data cleanup [CHAR-LIMIT=20]"> Clear all </message> + <message name="IDS_WEBSITE_NOTIFICATION_MANAGED_BY_APP" desc="String used to indicate that notifications are managed by an installed app"> + Managed by <ph name="APP_NAME">%1$s<ex>Notification App Name</ex></ph> + </message> + <message name="IDS_WEBSITE_NOTIFICATION_SETTINGS" desc="Accessibility string for the notification settings"> + Open notification settings + </message> <message name="IDS_WEBSITE_SETTINGS_EMBEDDED_IN" desc="String used to indicate the embedder origin of a site"> Embedded in <ph name="WEBSITE_URL">%1$s<ex>google.com</ex></ph> </message>
diff --git a/chrome/android/java/strings/android_chrome_strings_grd/IDS_WEBSITE_NOTIFICATION_MANAGED_BY_APP.png.sha1 b/chrome/android/java/strings/android_chrome_strings_grd/IDS_WEBSITE_NOTIFICATION_MANAGED_BY_APP.png.sha1 new file mode 100644 index 0000000..1df3ea15 --- /dev/null +++ b/chrome/android/java/strings/android_chrome_strings_grd/IDS_WEBSITE_NOTIFICATION_MANAGED_BY_APP.png.sha1
@@ -0,0 +1 @@ +e51df535f8a301e78ca4af04cf54b3c5263f2cab \ No newline at end of file
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java new file mode 100644 index 0000000..6f124f1 --- /dev/null +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryModernViewTest.java
@@ -0,0 +1,204 @@ +// Copyright 2018 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +package org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component; + +import static android.support.test.espresso.Espresso.onView; +import static android.support.test.espresso.action.ViewActions.click; +import static android.support.test.espresso.matcher.ViewMatchers.isRoot; +import static android.support.test.espresso.matcher.ViewMatchers.withText; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import static org.chromium.chrome.browser.autofill.keyboard_accessory.AccessoryAction.AUTOFILL_SUGGESTION; +import static org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BAR_ITEMS; +import static org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.KEYBOARD_TOGGLE_VISIBLE; +import static org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.SHEET_TITLE; +import static org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.TAB_LAYOUT_ITEM; +import static org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.VISIBLE; +import static org.chromium.chrome.test.util.ViewUtils.waitForView; + +import android.content.pm.ActivityInfo; +import android.graphics.Rect; +import android.support.design.widget.TabLayout; +import android.support.test.filters.MediumTest; +import android.view.View; +import android.view.ViewGroup; +import android.view.ViewStub; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import org.chromium.base.Callback; +import org.chromium.base.test.util.CommandLineFlags; +import org.chromium.chrome.R; +import org.chromium.chrome.browser.ChromeFeatureList; +import org.chromium.chrome.browser.ChromeSwitches; +import org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.AutofillBarItem; +import org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BarItem; +import org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.TabLayoutBarItem; +import org.chromium.chrome.browser.autofill.keyboard_accessory.data.KeyboardAccessoryData; +import org.chromium.chrome.browser.autofill.keyboard_accessory.data.KeyboardAccessoryData.Action; +import org.chromium.chrome.browser.autofill.keyboard_accessory.tab_layout_component.KeyboardAccessoryTabLayoutCoordinator; +import org.chromium.chrome.test.ChromeJUnit4ClassRunner; +import org.chromium.chrome.test.ChromeTabbedActivityTestRule; +import org.chromium.chrome.test.util.browser.Features.EnableFeatures; +import org.chromium.components.autofill.AutofillSuggestion; +import org.chromium.content_public.browser.test.util.Criteria; +import org.chromium.content_public.browser.test.util.CriteriaHelper; +import org.chromium.content_public.browser.test.util.JavaScriptUtils; +import org.chromium.content_public.browser.test.util.TestThreadUtils; +import org.chromium.ui.DeferredViewStubInflationProvider; +import org.chromium.ui.DropdownItem; +import org.chromium.ui.ViewProvider; +import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; +import org.chromium.ui.modelutil.PropertyModel; + +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.atomic.AtomicReference; + +/** + * View tests for the keyboard accessory component. + * + */ +@RunWith(ChromeJUnit4ClassRunner.class) +@CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) +@EnableFeatures(ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY) +public class KeyboardAccessoryModernViewTest { + private PropertyModel mModel; + private BlockingQueue<KeyboardAccessoryModernView> mKeyboardAccessoryView; + + @Rule + public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule(); + + @Before + public void setUp() throws InterruptedException { + mActivityTestRule.startMainActivityOnBlankPage(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + mModel = + KeyboardAccessoryProperties.defaultModelBuilder() + .with(TAB_LAYOUT_ITEM, + new TabLayoutBarItem(new KeyboardAccessoryTabLayoutCoordinator + .TabLayoutCallbacks() { + @Override + public void onTabLayoutBound( + TabLayout tabs) {} + @Override + public void onTabLayoutUnbound( + TabLayout tabs) {} + })) + .build(); + ViewStub viewStub = + mActivityTestRule.getActivity().findViewById(R.id.keyboard_accessory_stub); + + mKeyboardAccessoryView = new ArrayBlockingQueue<>(1); + ViewProvider<KeyboardAccessoryModernView> provider = + new DeferredViewStubInflationProvider<>(viewStub); + LazyConstructionPropertyMcp.create( + mModel, VISIBLE, provider, KeyboardAccessoryModernViewBinder::bind); + provider.whenLoaded(mKeyboardAccessoryView::add); + }); + } + + @Test + @MediumTest + public void testAccessoryVisibilityChangedByModel() throws InterruptedException { + // Initially, there shouldn't be a view yet. + assertNull(mKeyboardAccessoryView.poll()); + + // After setting the visibility to true, the view should exist and be visible. + TestThreadUtils.runOnUiThreadBlocking(() -> { mModel.set(VISIBLE, true); }); + KeyboardAccessoryModernView view = mKeyboardAccessoryView.take(); + assertEquals(view.getVisibility(), View.VISIBLE); + + // After hiding the view, the view should still exist but be invisible. + TestThreadUtils.runOnUiThreadBlocking(() -> { mModel.set(VISIBLE, false); }); + assertNotEquals(view.getVisibility(), View.VISIBLE); + } + + @Test + @MediumTest + public void testAddsClickableAutofillSuggestions() { + AtomicReference<Boolean> clickRecorded = new AtomicReference<>(); + TestThreadUtils.runOnUiThreadBlocking(() -> { + mModel.set(VISIBLE, true); + mModel.get(BAR_ITEMS).set( + createAutofillChipAndTab("Johnathan", result -> clickRecorded.set(true))); + }); + + onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Johnathan"))); + onView(withText("Johnathan")).perform(click()); + + assertTrue(clickRecorded.get()); + } + + @Test + @MediumTest + public void testUpdatesKeyPaddingAfterRotation() throws InterruptedException { + TestThreadUtils.runOnUiThreadBlocking(() -> { + mModel.set(VISIBLE, true); + mModel.set(KEYBOARD_TOGGLE_VISIBLE, false); + mModel.set(SHEET_TITLE, "Sheet title"); + mModel.get(BAR_ITEMS).set(createAutofillChipAndTab("John", null)); + }); + KeyboardAccessoryModernView view = mKeyboardAccessoryView.take(); + CriteriaHelper.pollUiThread(view.mBarItemsView::isShown); + CriteriaHelper.pollUiThread(viewsAreRightAligned(view, view.mBarItemsView.getChildAt(1))); + + TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(KEYBOARD_TOGGLE_VISIBLE, true)); + CriteriaHelper.pollUiThread(() -> !view.mBarItemsView.isShown()); + + rotateActivityToLandscape(); + TestThreadUtils.runOnUiThreadBlocking(() -> mModel.set(KEYBOARD_TOGGLE_VISIBLE, false)); + + CriteriaHelper.pollUiThread(view.mBarItemsView::isShown); + CriteriaHelper.pollUiThread(viewsAreRightAligned(view, view.mBarItemsView.getChildAt(1))); + } + + private void rotateActivityToLandscape() { + mActivityTestRule.getActivity().setRequestedOrientation( + ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + CriteriaHelper.pollInstrumentationThread(Criteria.equals("\"landscape\"", () -> { + return JavaScriptUtils.executeJavaScriptAndWaitForResult( + mActivityTestRule.getWebContents(), "screen.orientation.type.split('-')[0]"); + })); + } + + private Criteria viewsAreRightAligned(View staticView, View changingView) { + Rect accessoryViewRect = new Rect(); + staticView.getGlobalVisibleRect(accessoryViewRect); + return Criteria.equals(accessoryViewRect.right, () -> { + Rect keyItemRect = new Rect(); + changingView.getGlobalVisibleRect(keyItemRect); + return keyItemRect.right; + }); + } + + private BarItem[] createAutofillChipAndTab(String label, Callback<Action> chipCallback) { + return new BarItem[] { + new AutofillBarItem(new AutofillSuggestion(label, "Smith", DropdownItem.NO_ICON, + false, 0, false, false, false), + new KeyboardAccessoryData.Action( + "Unused", AUTOFILL_SUGGESTION, chipCallback)), + new TabLayoutBarItem( + new KeyboardAccessoryTabLayoutCoordinator.TabLayoutCallbacks() { + @Override + public void onTabLayoutBound(TabLayout tabs) { + if (tabs.getTabCount() > 0) return; + tabs.addTab(tabs.newTab() + .setIcon(R.drawable.ic_vpn_key_grey) + .setContentDescription("Key Icon")); + } + + @Override + public void onTabLayoutUnbound(TabLayout tabs) {} + })}; + } +} \ No newline at end of file
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java index 8f2a39b..d9de169 100644 --- a/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java +++ b/chrome/android/javatests/src/org/chromium/chrome/browser/autofill/keyboard_accessory/bar_component/KeyboardAccessoryViewTest.java
@@ -42,18 +42,15 @@ import org.chromium.chrome.R; import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.ChromeSwitches; -import org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.AutofillBarItem; import org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.BarItem; import org.chromium.chrome.browser.autofill.keyboard_accessory.bar_component.KeyboardAccessoryProperties.TabLayoutBarItem; -import org.chromium.chrome.browser.autofill.keyboard_accessory.data.KeyboardAccessoryData; +import org.chromium.chrome.browser.autofill.keyboard_accessory.data.KeyboardAccessoryData.Action; import org.chromium.chrome.browser.autofill.keyboard_accessory.tab_layout_component.KeyboardAccessoryTabLayoutCoordinator; import org.chromium.chrome.test.ChromeJUnit4ClassRunner; import org.chromium.chrome.test.ChromeTabbedActivityTestRule; -import org.chromium.chrome.test.util.browser.Features; -import org.chromium.components.autofill.AutofillSuggestion; +import org.chromium.chrome.test.util.browser.Features.DisableFeatures; import org.chromium.content_public.browser.test.util.TestThreadUtils; import org.chromium.ui.DeferredViewStubInflationProvider; -import org.chromium.ui.DropdownItem; import org.chromium.ui.ViewProvider; import org.chromium.ui.modelutil.LazyConstructionPropertyMcp; import org.chromium.ui.modelutil.PropertyModel; @@ -68,6 +65,7 @@ */ @RunWith(ChromeJUnit4ClassRunner.class) @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE}) +@DisableFeatures(ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY) public class KeyboardAccessoryViewTest { private PropertyModel mModel; private BlockingQueue<KeyboardAccessoryView> mKeyboardAccessoryView; @@ -125,7 +123,7 @@ public void testClickableActionAddedWhenChangingModel() { final AtomicReference<Boolean> buttonClicked = new AtomicReference<>(); final BarItem testItem = new BarItem(BarItem.Type.ACTION_BUTTON, - new KeyboardAccessoryData.Action("Test Button", GENERATE_PASSWORD_AUTOMATIC, + new Action("Test Button", GENERATE_PASSWORD_AUTOMATIC, action -> buttonClicked.set(true))); TestThreadUtils.runOnUiThreadBlocking(() -> { @@ -144,13 +142,11 @@ public void testCanAddSingleButtons() { TestThreadUtils.runOnUiThreadBlocking(() -> { mModel.set(VISIBLE, true); - mModel.get(BAR_ITEMS).set( - new BarItem[] {new BarItem(BarItem.Type.ACTION_BUTTON, - new KeyboardAccessoryData.Action("First", - GENERATE_PASSWORD_AUTOMATIC, action -> {})), - new BarItem(BarItem.Type.SUGGESTION, - new KeyboardAccessoryData.Action( - "Second", AUTOFILL_SUGGESTION, action -> {}))}); + mModel.get(BAR_ITEMS).set(new BarItem[] { + new BarItem(BarItem.Type.ACTION_BUTTON, + new Action("First", GENERATE_PASSWORD_AUTOMATIC, action -> {})), + new BarItem(BarItem.Type.SUGGESTION, + new Action("Second", AUTOFILL_SUGGESTION, action -> {}))}); }); onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("First"))); @@ -159,8 +155,7 @@ TestThreadUtils.runOnUiThreadBlocking(() -> { mModel.get(BAR_ITEMS).add(new BarItem(BarItem.Type.ACTION_BUTTON, - new KeyboardAccessoryData.Action( - "Third", GENERATE_PASSWORD_AUTOMATIC, action -> {}))); + new Action("Third", GENERATE_PASSWORD_AUTOMATIC, action -> {}))); }); onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Third"))); @@ -174,16 +169,13 @@ public void testCanRemoveSingleButtons() { TestThreadUtils.runOnUiThreadBlocking(() -> { mModel.set(VISIBLE, true); - mModel.get(BAR_ITEMS).set( - new BarItem[] {new BarItem(BarItem.Type.ACTION_BUTTON, - new KeyboardAccessoryData.Action("First", - GENERATE_PASSWORD_AUTOMATIC, action -> {})), - new BarItem(BarItem.Type.ACTION_BUTTON, - new KeyboardAccessoryData.Action( - "Second", GENERATE_PASSWORD_AUTOMATIC, action -> {})), - new BarItem(BarItem.Type.ACTION_BUTTON, - new KeyboardAccessoryData.Action( - "Third", GENERATE_PASSWORD_AUTOMATIC, action -> {}))}); + mModel.get(BAR_ITEMS).set(new BarItem[] { + new BarItem(BarItem.Type.ACTION_BUTTON, + new Action("First", GENERATE_PASSWORD_AUTOMATIC, action -> {})), + new BarItem(BarItem.Type.ACTION_BUTTON, + new Action("Second", GENERATE_PASSWORD_AUTOMATIC, action -> {})), + new BarItem(BarItem.Type.ACTION_BUTTON, + new Action("Third", GENERATE_PASSWORD_AUTOMATIC, action -> {}))}); }); onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("First"))); @@ -201,27 +193,4 @@ onView(withText("Second")).check(doesNotExist()); onView(withText("Third")).check(matches(isDisplayed())); } - - @Test - @MediumTest - @Features.EnableFeatures(ChromeFeatureList.AUTOFILL_KEYBOARD_ACCESSORY) - public void testAddsClickableAutofillSuggestions() { - AtomicReference<Boolean> clickRecorded = new AtomicReference<>(); - KeyboardAccessoryData.Action action = new KeyboardAccessoryData.Action( - "Unused", AUTOFILL_SUGGESTION, result -> clickRecorded.set(true)); - TestThreadUtils.runOnUiThreadBlocking(() -> { - mModel.set(VISIBLE, true); - mModel.get(BAR_ITEMS).set(new BarItem[] { - new AutofillBarItem( - new AutofillSuggestion("Johnathan", "Smithonian-Jackson", - DropdownItem.NO_ICON, false, 0, false, false, false), - action), - }); - }); - - onView(isRoot()).check((root, e) -> waitForView((ViewGroup) root, withText("Johnathan"))); - onView(withText("Johnathan")).perform(click()); - - assertTrue(clickRecorded.get()); - } -} +} \ No newline at end of file
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdaterTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdaterTest.java index 0fa7c1b6..b417f1f 100644 --- a/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdaterTest.java +++ b/chrome/android/junit/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdaterTest.java
@@ -19,7 +19,9 @@ import android.content.pm.ResolveInfo; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TestRule; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; @@ -29,19 +31,26 @@ import org.chromium.base.test.BaseRobolectricTestRunner; import org.chromium.base.test.util.Feature; +import org.chromium.chrome.browser.ChromeFeatureList; import org.chromium.chrome.browser.browserservices.Origin; import org.chromium.chrome.browser.browserservices.TrustedWebActivityClient; +import org.chromium.chrome.test.util.browser.Features; +import org.chromium.chrome.test.util.browser.Features.EnableFeatures; /** * Tests for {@link NotificationPermissionUpdater}. */ @RunWith(BaseRobolectricTestRunner.class) @Config(manifest = Config.NONE) +@EnableFeatures(ChromeFeatureList.TRUSTED_WEB_ACTIVITY_NOTIFICATION_DELEGATION_ENROLMENT) public class NotificationPermissionUpdaterTest { private static final Origin ORIGIN = new Origin("https://www.website.com"); private static final String PACKAGE_NAME = "com.package.name"; private static final String OTHER_PACKAGE_NAME = "com.other.package.name"; + @Rule + public TestRule mProcessor = new Features.JUnitProcessor(); + @Mock public TrustedWebActivityPermissionManager mPermissionManager; @Mock public TrustedWebActivityClient mTrustedWebActivityClient;
diff --git a/chrome/android/profiles/newest.txt b/chrome/android/profiles/newest.txt index fe9fff2..4bee008 100644 --- a/chrome/android/profiles/newest.txt +++ b/chrome/android/profiles/newest.txt
@@ -1 +1 @@ -chromeos-chrome-amd64-75.0.3767.0_rc-r1-merged.afdo.bz2 \ No newline at end of file +chromeos-chrome-amd64-75.0.3768.0_rc-r1-merged.afdo.bz2 \ No newline at end of file
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc index 6861b55f..5a29f4a 100644 --- a/chrome/browser/about_flags.cc +++ b/chrome/browser/about_flags.cc
@@ -1650,13 +1650,6 @@ flag_descriptions::kCreditCardAssistDescription, kOsAndroid, FEATURE_VALUE_TYPE(autofill::features::kAutofillCreditCardAssist)}, #endif // OS_ANDROID -#if defined(OS_CHROMEOS) - {"disable-captive-portal-bypass-proxy", - flag_descriptions::kCaptivePortalBypassProxyName, - flag_descriptions::kCaptivePortalBypassProxyDescription, kOsCrOS, - SINGLE_DISABLE_VALUE_TYPE( - chromeos::switches::kDisableCaptivePortalBypassProxy)}, -#endif // OS_CHROMEOS {"ssl-committed-interstitials", flag_descriptions::kSSLCommittedInterstitialsName, flag_descriptions::kSSLCommittedInterstitialsDescription, kOsAll, @@ -2035,10 +2028,6 @@ flag_descriptions::kEnableScrollAnchorSerializationName, flag_descriptions::kEnableScrollAnchorSerializationDescription, kOsAll, FEATURE_VALUE_TYPE(features::kScrollAnchorSerialization)}, - {"disable-audio-support-for-desktop-share", - flag_descriptions::kDisableAudioForDesktopShareName, - flag_descriptions::kDisableAudioForDesktopShareDescription, kOsAll, - SINGLE_VALUE_TYPE(switches::kDisableAudioSupportForDesktopShare)}, #if defined(OS_ANDROID) {"content-suggestions-debug-log", flag_descriptions::kContentSuggestionsDebugLogName, @@ -2851,12 +2840,6 @@ flag_descriptions::kShowManagedUiDescription, kOsWin | kOsMac | kOsLinux | kOsCrOS, FEATURE_VALUE_TYPE(features::kShowManagedUi)}, - - {"link-managed-notice-to-management-page", - flag_descriptions::kLinkManagedNoticeToChromeUIManagementURLName, - flag_descriptions::kLinkManagedNoticeToChromeUIManagementURLDescription, - kOsWin | kOsMac | kOsLinux, - FEATURE_VALUE_TYPE(features::kLinkManagedNoticeToChromeUIManagementURL)}, #endif // defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_LINUX) #if !defined(OS_ANDROID)
diff --git a/chrome/browser/accessibility/image_annotation_browsertest.cc b/chrome/browser/accessibility/image_annotation_browsertest.cc index 9538aee..ce2c5d29 100644 --- a/chrome/browser/accessibility/image_annotation_browsertest.cc +++ b/chrome/browser/accessibility/image_annotation_browsertest.cc
@@ -8,10 +8,14 @@ #include "base/strings/string_util.h" #include "base/test/scoped_feature_list.h" #include "build/build_config.h" +#include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/language/core/browser/pref_names.h" +#include "components/prefs/pref_service.h" +#include "components/user_prefs/user_prefs.h" #include "content/public/browser/browser_context.h" #include "content/public/common/content_features.h" #include "content/public/common/service_manager_connection.h" @@ -83,6 +87,7 @@ } void AnnotateImage(const std::string& image_id, + const std::string& description_language_tag, image_annotation::mojom::ImageProcessorPtr image_processor, AnnotateImageCallback callback) override { if (return_error_code_) { @@ -105,7 +110,7 @@ image_annotation::mojom::AnnotationPtr label_annotation = image_annotation::mojom::Annotation::New( image_annotation::mojom::AnnotationType::kLabel, 1.0, - image_filename + " Label"); + image_filename + " '" + description_language_tag + "' Label"); // Return enabled results as an annotation. std::vector<image_annotation::mojom::AnnotationPtr> annotations; @@ -210,6 +215,20 @@ ui::AXMode mode = ui::kAXModeComplete; mode.set_mode(ui::AXMode::kLabelImages, true); web_contents->SetAccessibilityMode(mode); + + SetAcceptLanguages("en,fr"); + } + + void SetAcceptLanguages(const std::string& accept_languages) { + content::BrowserContext* context = + static_cast<content::BrowserContext*>(browser()->profile()); + DCHECK(context); + + PrefService* prefs = user_prefs::UserPrefs::Get(context); + DCHECK(prefs); + + prefs->Set(language::prefs::kAcceptLanguages, + base::Value(accept_languages)); } protected: @@ -233,7 +252,7 @@ content::WaitForAccessibilityTreeToContainNodeWithName( web_contents, - "Appears to say: red.png Annotation. Appears to be: red.png Label"); + "Appears to say: red.png Annotation. Appears to be: red.png 'en' Label"); } IN_PROC_BROWSER_TEST_F(ImageAnnotationBrowserTest, ImagesInLinks) { @@ -344,5 +363,26 @@ browser()->tab_strip_model()->GetActiveWebContents(); content::WaitForAccessibilityTreeToContainNodeWithName( web_contents, - "Appears to say: red.png Annotation. Appears to be: red.png Label"); + "Appears to say: red.png Annotation. Appears to be: red.png 'en' Label"); +} + +IN_PROC_BROWSER_TEST_F(ImageAnnotationBrowserTest, AnnotationLanguages) { + FakeAnnotator::SetReturnOcrResults(true); + FakeAnnotator::SetReturnLabelResults(true); + + ui_test_utils::NavigateToURL(browser(), + https_server_.GetURL("/image_annotation.html")); + content::WebContents* web_contents = + browser()->tab_strip_model()->GetActiveWebContents(); + content::WaitForAccessibilityTreeToContainNodeWithName( + web_contents, + "Appears to say: red.png Annotation. Appears to be: red.png 'en' Label"); + + SetAcceptLanguages("fr,en"); + ui_test_utils::NavigateToURL(browser(), + https_server_.GetURL("/image_annotation.html")); + web_contents = browser()->tab_strip_model()->GetActiveWebContents(); + content::WaitForAccessibilityTreeToContainNodeWithName( + web_contents, + "Appears to say: red.png Annotation. Appears to be: red.png 'fr' Label"); }
diff --git a/chrome/browser/android/chrome_feature_list.cc b/chrome/browser/android/chrome_feature_list.cc index cdbeddb..5b150f8 100644 --- a/chrome/browser/android/chrome_feature_list.cc +++ b/chrome/browser/android/chrome_feature_list.cc
@@ -175,6 +175,7 @@ &kTabSwitcherOnReturn, &kTrustedWebActivity, &kTrustedWebActivityPostMessage, + &kTrustedWebActivityNotificationDelegationEnrolment, &kUsageStatsFeature, &kVideoPersistence, &kVrBrowsingFeedback, @@ -515,6 +516,10 @@ const base::Feature kTrustedWebActivityPostMessage{ "TrustedWebActivityPostMessage", base::FEATURE_DISABLED_BY_DEFAULT}; +const base::Feature kTrustedWebActivityNotificationDelegationEnrolment{ + "TrustedWebActivityNotificationDelegationAutoEnrolment", + base::FEATURE_ENABLED_BY_DEFAULT}; + const base::Feature kUsageStatsFeature{"UsageStats", base::FEATURE_ENABLED_BY_DEFAULT};
diff --git a/chrome/browser/android/chrome_feature_list.h b/chrome/browser/android/chrome_feature_list.h index 0264acb..df76e52 100644 --- a/chrome/browser/android/chrome_feature_list.h +++ b/chrome/browser/android/chrome_feature_list.h
@@ -106,6 +106,7 @@ extern const base::Feature kTabSwitcherOnReturn; extern const base::Feature kTrustedWebActivity; extern const base::Feature kTrustedWebActivityPostMessage; +extern const base::Feature kTrustedWebActivityNotificationDelegationEnrolment; extern const base::Feature kUsageStatsFeature; extern const base::Feature kUserMediaScreenCapturing; extern const base::Feature kVideoPersistence;
diff --git a/chrome/browser/background/background_mode_manager.cc b/chrome/browser/background/background_mode_manager.cc index a23bde0..8f1a092 100644 --- a/chrome/browser/background/background_mode_manager.cc +++ b/chrome/browser/background/background_mode_manager.cc
@@ -412,6 +412,8 @@ KeepAliveOrigin::SESSION_RESTORE, KeepAliveOrigin::BACKGROUND_MODE_MANAGER_STARTUP, + KeepAliveOrigin::BACKGROUND_SYNC, + // Notification KeepAlives are not dependent on the Chrome UI being // loaded, and can be registered when we were in pure background mode. // They just block it to avoid issues. Ignore them when determining if we
diff --git a/chrome/browser/background_sync/background_sync_browsertest.cc b/chrome/browser/background_sync/background_sync_browsertest.cc new file mode 100644 index 0000000..7b7e18d3 --- /dev/null +++ b/chrome/browser/background_sync/background_sync_browsertest.cc
@@ -0,0 +1,115 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/callback_forward.h" +#include "base/strings/stringprintf.h" +#include "chrome/browser/lifetime/application_lifetime.h" +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/browser_finder.h" +#include "chrome/browser/ui/tabs/tab_strip_model.h" +#include "chrome/test/base/in_process_browser_test.h" +#include "chrome/test/base/ui_test_utils.h" +#include "content/public/test/browser_test_utils.h" +#include "net/test/embedded_test_server/embedded_test_server.h" +#include "net/test/embedded_test_server/http_request.h" +#include "net/test/embedded_test_server/http_response.h" + +namespace { + +// Scripts run by this test are defined in +// chrome/test/data/background_sync/background_sync_browsertest.js. + +// URL of the test helper page that helps drive these tests. +const char kHelperPage[] = "/background_sync/background_sync_browsertest.html"; +const char kTagName[] = "test"; +const char kSuccessfulOperationPrefix[] = "ok - "; + +} // namespace + +class BackgroundSyncBrowserTest : public InProcessBrowserTest { + public: + BackgroundSyncBrowserTest() = default; + ~BackgroundSyncBrowserTest() override = default; + + void SetUpOnMainThread() override { + https_server_ = std::make_unique<net::EmbeddedTestServer>( + net::EmbeddedTestServer::TYPE_HTTPS); + https_server_->RegisterRequestHandler(base::BindRepeating( + &BackgroundSyncBrowserTest::HandleRequest, base::Unretained(this))); + https_server_->AddDefaultHandlers(GetChromeTestDataDir()); + ASSERT_TRUE(https_server_->Start()); + + SetUpBrowser(browser()); + } + + void SetUpBrowser(Browser* browser) { + // Load the helper page that helps drive these tests. + ui_test_utils::NavigateToURL(browser, https_server_->GetURL(kHelperPage)); + + // Register the Service Worker that's required for Background Sync. The + // behaviour without an activated worker is covered by layout tests. + { + std::string script_result; + ASSERT_TRUE(RunScript("RegisterServiceWorker()", &script_result)); + ASSERT_EQ("ok - service worker registered", script_result); + } + } + + // --------------------------------------------------------------------------- + // Helper functions. + + // Runs the |script| in the current tab and writes the output to |*result|. + bool RunScript(const std::string& script, std::string* result) { + return content::ExecuteScriptAndExtractString( + browser()->tab_strip_model()->GetActiveWebContents()->GetMainFrame(), + script, result); + } + + // Intercepts all requests. + std::unique_ptr<net::test_server::HttpResponse> HandleRequest( + const net::test_server::HttpRequest& request) { + if (request.GetURL().query() == "syncreceived") + std::move(sync_event_closure_).Run(); + + // The default handlers will take care of this request. + return nullptr; + } + + std::string BuildScriptString(const std::string& function, + const std::string& argument) { + return base::StringPrintf("%s('%s');", function.c_str(), argument.c_str()); + } + + std::string BuildExpectedResult(const std::string& tag, + const std::string& action) { + return base::StringPrintf("%s%s %s", kSuccessfulOperationPrefix, + tag.c_str(), action.c_str()); + } + + bool HasTag(const std::string& tag) { + std::string script_result; + EXPECT_TRUE(RunScript(BuildScriptString("hasTag", tag), &script_result)); + return script_result == BuildExpectedResult(tag, "found"); + } + + protected: + base::OnceClosure sync_event_closure_; + + private: + std::unique_ptr<net::EmbeddedTestServer> https_server_; + DISALLOW_COPY_AND_ASSIGN(BackgroundSyncBrowserTest); +}; + +IN_PROC_BROWSER_TEST_F(BackgroundSyncBrowserTest, VerifyShutdownBehavior) { + EXPECT_FALSE(HasTag(kTagName)); + + base::ThreadTaskRunnerHandle::Get()->PostTask( + FROM_HERE, base::BindOnce(&chrome::CloseAllBrowsers)); + + { + base::RunLoop run_loop; + sync_event_closure_ = run_loop.QuitClosure(); + run_loop.Run(); + } +}
diff --git a/chrome/browser/background_sync/background_sync_controller_impl.cc b/chrome/browser/background_sync/background_sync_controller_impl.cc index 36c27b6..069b56d 100644 --- a/chrome/browser/background_sync/background_sync_controller_impl.cc +++ b/chrome/browser/background_sync/background_sync_controller_impl.cc
@@ -13,6 +13,7 @@ #include "chrome/browser/profiles/profile.h" #include "components/history/core/browser/history_service.h" #include "components/variations/variations_associated_data.h" +#include "content/public/browser/background_sync_controller.h" #include "content/public/browser/background_sync_parameters.h" #include "url/gurl.h" #include "url/origin.h" @@ -209,3 +210,22 @@ return parameters->initial_retry_delay * pow(parameters->retry_delay_factor, num_attempts - 1); } + +std::unique_ptr<content::BackgroundSyncController::BackgroundSyncEventKeepAlive> +BackgroundSyncControllerImpl::CreateBackgroundSyncEventKeepAlive() { +#if !defined(OS_ANDROID) + return std::make_unique<BackgroundSyncEventKeepAliveImpl>(); +#endif + return nullptr; +} + +#if !defined(OS_ANDROID) +BackgroundSyncControllerImpl::BackgroundSyncEventKeepAliveImpl:: + BackgroundSyncEventKeepAliveImpl() { + keepalive_ = std::make_unique<ScopedKeepAlive>( + KeepAliveOrigin::BACKGROUND_SYNC, KeepAliveRestartOption::DISABLED); +} + +BackgroundSyncControllerImpl::BackgroundSyncEventKeepAliveImpl:: + ~BackgroundSyncEventKeepAliveImpl() = default; +#endif
diff --git a/chrome/browser/background_sync/background_sync_controller_impl.h b/chrome/browser/background_sync/background_sync_controller_impl.h index 9b0d4c8d..5ed363d 100644 --- a/chrome/browser/background_sync/background_sync_controller_impl.h +++ b/chrome/browser/background_sync/background_sync_controller_impl.h
@@ -11,7 +11,10 @@ #include "base/macros.h" #include "base/time/time.h" +#include "build/build_config.h" #include "chrome/browser/background_sync/background_sync_metrics.h" +#include "components/keep_alive_registry/keep_alive_types.h" +#include "components/keep_alive_registry/scoped_keep_alive.h" #include "components/keyed_service/core/keyed_service.h" #include "content/public/browser/browser_thread.h" #include "third_party/blink/public/mojom/background_sync/background_sync.mojom.h" @@ -45,6 +48,17 @@ static const int kEngagementLevelLowPenalty = 3; static const int kEngagementLevelMinimalPenalty = 4; +#if !defined(OS_ANDROID) + class BackgroundSyncEventKeepAliveImpl : public BackgroundSyncEventKeepAlive { + public: + ~BackgroundSyncEventKeepAliveImpl() override; + BackgroundSyncEventKeepAliveImpl(); + + private: + std::unique_ptr<ScopedKeepAlive> keepalive_ = nullptr; + }; +#endif + explicit BackgroundSyncControllerImpl(Profile* profile); ~BackgroundSyncControllerImpl() override; @@ -65,6 +79,8 @@ int num_attempts, blink::mojom::BackgroundSyncType sync_type, content::BackgroundSyncParameters* parameters) const override; + std::unique_ptr<BackgroundSyncEventKeepAlive> + CreateBackgroundSyncEventKeepAlive() override; private: // Gets the site engagement penalty for |url|, which is inversely proportional
diff --git a/chrome/browser/chrome_browser_main_linux.cc b/chrome/browser/chrome_browser_main_linux.cc index 12c64b0..57dcd04 100644 --- a/chrome/browser/chrome_browser_main_linux.cc +++ b/chrome/browser/chrome_browser_main_linux.cc
@@ -97,8 +97,7 @@ void ChromeBrowserMainPartsLinux::PostMainMessageLoopStart() { #if !defined(OS_CHROMEOS) - bluez::BluezDBusThreadManager::Initialize(); - bluez::BluezDBusManager::Initialize(); + bluez::BluezDBusManager::Initialize(nullptr /* system_bus */); #endif ChromeBrowserMainPartsPosix::PostMainMessageLoopStart();
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc index 1450ae00..690f3c95 100644 --- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc +++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -175,7 +175,6 @@ #include "crypto/scoped_nss_types.h" #include "dbus/object_path.h" #include "device/bluetooth/bluetooth_adapter_factory.h" -#include "device/bluetooth/dbus/bluez_dbus_manager.h" #include "net/base/network_change_notifier.h" #include "net/base/network_change_notifier_posix.h" #include "net/cert/nss_cert_database.h" @@ -286,8 +285,6 @@ class DBusServices { public: explicit DBusServices(const content::MainFunctionParams& parameters) { - bluez::BluezDBusManager::Initialize(); - if (!::features::IsMultiProcessMash()) { // In Mash, power policy is sent to powerd by ash. PowerPolicyController::Initialize(PowerManagerClient::Get()); @@ -410,7 +407,6 @@ if (!::features::IsMultiProcessMash()) PowerPolicyController::Shutdown(); device::BluetoothAdapterFactory::Shutdown(); - bluez::BluezDBusManager::Shutdown(); } private:
diff --git a/chrome/browser/chromeos/dbus/dbus_helper.cc b/chrome/browser/chromeos/dbus/dbus_helper.cc index b9bb36c..0a95293 100644 --- a/chrome/browser/chromeos/dbus/dbus_helper.cc +++ b/chrome/browser/chromeos/dbus/dbus_helper.cc
@@ -25,6 +25,7 @@ #include "chromeos/dbus/system_clock/system_clock_client.h" #include "chromeos/dbus/upstart/upstart_client.h" #include "chromeos/tpm/install_attributes.h" +#include "device/bluetooth/dbus/bluez_dbus_manager.h" namespace { @@ -58,6 +59,7 @@ ArcCameraClient::Initialize(bus); AuthPolicyClient::Initialize(bus); BiodClient::Initialize(bus); // For device::Fingerprint. + bluez::BluezDBusManager::Initialize(bus); CrasAudioClient::Initialize(bus); CryptohomeClient::Initialize(bus); CupsProxyClient::Initialize(bus); @@ -73,6 +75,7 @@ ArcCameraClient::InitializeFake(); AuthPolicyClient::InitializeFake(); BiodClient::InitializeFake(); // For device::Fingerprint. + bluez::BluezDBusManager::InitializeFake(); CrasAudioClient::InitializeFake(); CryptohomeClient::InitializeFake(); CupsProxyClient::InitializeFake(); @@ -105,6 +108,7 @@ CupsProxyClient::Shutdown(); CryptohomeClient::Shutdown(); CrasAudioClient::Shutdown(); + bluez::BluezDBusManager::Shutdown(); BiodClient::Shutdown(); AuthPolicyClient::Shutdown(); ArcCameraClient::Shutdown();
diff --git a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc index f24c37b..f4b6ef8d 100644 --- a/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc +++ b/chrome/browser/chromeos/file_manager/file_manager_browsertest.cc
@@ -716,6 +716,7 @@ TestCase("executeDefaultTaskDownloads").InGuestMode(), TestCase("executeDefaultTaskDrive").DisableDriveFs(), TestCase("executeDefaultTaskDrive").EnableDriveFs(), + TestCase("defaultTaskForPdf"), TestCase("defaultTaskForTextPlain"), TestCase("defaultTaskDialogDownloads"), TestCase("defaultTaskDialogDownloads").InGuestMode(),
diff --git a/chrome/browser/chromeos/file_manager/volume_manager.cc b/chrome/browser/chromeos/file_manager/volume_manager.cc index a634566..fd4b78c 100644 --- a/chrome/browser/chromeos/file_manager/volume_manager.cc +++ b/chrome/browser/chromeos/file_manager/volume_manager.cc
@@ -55,6 +55,8 @@ #include "services/device/public/mojom/mtp_manager.mojom.h" #include "services/device/public/mojom/mtp_storage_info.mojom.h" #include "storage/browser/fileapi/external_mount_points.h" +#include "ui/base/l10n/l10n_util.h" +#include "ui/chromeos/strings/grit/ui_chromeos_strings.h" namespace file_manager { namespace { @@ -413,7 +415,13 @@ volume->mount_path_ = arc::GetDocumentsProviderMountPath(authority, document_id); volume->mount_condition_ = chromeos::disks::MOUNT_CONDITION_NONE; - volume->volume_label_ = title; + if (summary.empty()) { + volume->volume_label_ = title; + } else { + volume->volume_label_ = l10n_util::GetStringFUTF8( + IDS_FILE_BROWSER_DOCPROVIDER_ROOT_LABEL_WITH_SUMMARY, + base::UTF8ToUTF16(title), base::UTF8ToUTF16(summary)); + } volume->is_read_only_ = read_only; volume->watchable_ = false; volume->volume_id_ = arc::GetDocumentsProviderVolumeId(authority, root_id);
diff --git a/chrome/browser/chromeos/fileapi/file_system_backend.cc b/chrome/browser/chromeos/fileapi/file_system_backend.cc index 2f324da..4e66eb4 100644 --- a/chrome/browser/chromeos/fileapi/file_system_backend.cc +++ b/chrome/browser/chromeos/fileapi/file_system_backend.cc
@@ -380,8 +380,10 @@ case storage::kFileSystemTypeProvided: case storage::kFileSystemTypeDeviceMediaAsFileStorage: case storage::kFileSystemTypeDriveFs: - case storage::kFileSystemTypeArcDocumentsProvider: return true; + // TODO(fukino): Support in-place copy for DocumentsProvider. + // crbug.com/953603. + case storage::kFileSystemTypeArcDocumentsProvider: case storage::kFileSystemTypeNativeLocal: case storage::kFileSystemTypeRestrictedNativeLocal: case storage::kFileSystemTypeArcContent:
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.cc b/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.cc index a70da12..41a86d7d 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.cc +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.cc
@@ -33,6 +33,7 @@ // TODO(okalitova): Manage downloads after sleep and log out. for (const auto& download : downloads) { VLOG(1) << "Download tracked by DownloadService: " << download.guid; + old_downloads_.insert(download.guid); DownloadServiceFactory::GetForBrowserContext(profile_)->CancelDownload( download.guid); } @@ -47,7 +48,15 @@ const std::vector<GURL>& url_chain, const scoped_refptr<const net::HttpResponseHeaders>& headers) { VLOG(1) << __func__ << " called"; - content_length_ = headers->GetContentLength(); + // We do not want downloads that are tracked by download service from its + // initialization to proceed. + if (old_downloads_.find(guid) != old_downloads_.end()) + return download::Client::ShouldDownload::ABORT; + + if (headers) + content_length_ = headers->GetContentLength(); + else + content_length_ = -1; GetManager()->OnDownloadStarted(); return download::Client::ShouldDownload::CONTINUE; } @@ -55,6 +64,7 @@ void PluginVmImageDownloadClient::OnDownloadUpdated(const std::string& guid, uint64_t bytes_uploaded, uint64_t bytes_downloaded) { + DCHECK(old_downloads_.find(guid) == old_downloads_.end()); VLOG(1) << __func__ << " called"; VLOG(1) << bytes_downloaded << " bytes downloaded"; GetManager()->OnDownloadProgressUpdated(bytes_downloaded, content_length_); @@ -86,6 +96,11 @@ break; } + // We do not want to notify PluginVmImageManager about the status of + // downloads that are tracked by download service from its initialization. + if (old_downloads_.find(guid) != old_downloads_.end()) + return; + if (reason == download::Client::FailureReason::CANCELLED) GetManager()->OnDownloadCancelled(); else @@ -95,6 +110,7 @@ void PluginVmImageDownloadClient::OnDownloadSucceeded( const std::string& guid, const download::CompletionInfo& completion_info) { + DCHECK(old_downloads_.find(guid) == old_downloads_.end()); VLOG(1) << __func__ << " called"; VLOG(1) << "Downloaded file is in " << completion_info.path.value(); GetManager()->OnDownloadCompleted(completion_info); @@ -110,6 +126,7 @@ void PluginVmImageDownloadClient::GetUploadData( const std::string& guid, download::GetUploadDataCallback callback) { + DCHECK(old_downloads_.find(guid) == old_downloads_.end()); VLOG(1) << __func__ << " called"; base::SequencedTaskRunnerHandle::Get()->PostTask( FROM_HERE, base::BindOnce(std::move(callback), nullptr));
diff --git a/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.h b/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.h index f699de8..8bccffe 100644 --- a/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.h +++ b/chrome/browser/chromeos/plugin_vm/plugin_vm_image_download_client.h
@@ -5,6 +5,9 @@ #ifndef CHROME_BROWSER_CHROMEOS_PLUGIN_VM_PLUGIN_VM_IMAGE_DOWNLOAD_CLIENT_H_ #define CHROME_BROWSER_CHROMEOS_PLUGIN_VM_PLUGIN_VM_IMAGE_DOWNLOAD_CLIENT_H_ +#include <set> +#include <string> + #include "base/macros.h" #include "components/download/public/background_service/client.h" @@ -25,6 +28,7 @@ ~PluginVmImageDownloadClient() override; private: + std::set<std::string> old_downloads_; Profile* profile_ = nullptr; int64_t content_length_ = -1;
diff --git a/chrome/browser/chromeos/printing/printers_sync_bridge.cc b/chrome/browser/chromeos/printing/printers_sync_bridge.cc index c4ec109..487d104 100644 --- a/chrome/browser/chromeos/printing/printers_sync_bridge.cc +++ b/chrome/browser/chromeos/printing/printers_sync_bridge.cc
@@ -281,13 +281,18 @@ // Picks the entity with the most recent updated time as the canonical version. ConflictResolution PrintersSyncBridge::ResolveConflict( - const EntityData& local_data, + const std::string& storage_key, const EntityData& remote_data) const { - DCHECK(local_data.specifics.has_printer()); DCHECK(remote_data.specifics.has_printer()); - const sync_pb::PrinterSpecifics& local_printer = - local_data.specifics.printer(); + auto iter = all_data_.find(storage_key); + // If the local printer doesn't exist, it must have been deleted. In this + // case, use the remote one. + if (iter == all_data_.end()) { + return ConflictResolution::UseRemote(); + } + const sync_pb::PrinterSpecifics& local_printer = *iter->second; + const sync_pb::PrinterSpecifics& remote_printer = remote_data.specifics.printer();
diff --git a/chrome/browser/chromeos/printing/printers_sync_bridge.h b/chrome/browser/chromeos/printing/printers_sync_bridge.h index 4f82613..bb3f7c7 100644 --- a/chrome/browser/chromeos/printing/printers_sync_bridge.h +++ b/chrome/browser/chromeos/printing/printers_sync_bridge.h
@@ -46,7 +46,7 @@ std::string GetClientTag(const syncer::EntityData& entity_data) override; std::string GetStorageKey(const syncer::EntityData& entity_data) override; syncer::ConflictResolution ResolveConflict( - const syncer::EntityData& local_data, + const std::string& storage_key, const syncer::EntityData& remote_data) const override; // Stores a |printer|. Overwrites a printer with a matching id if it exists.
diff --git a/chrome/browser/content_settings/host_content_settings_map_factory.cc b/chrome/browser/content_settings/host_content_settings_map_factory.cc index d1ac90e..82b90eb 100644 --- a/chrome/browser/content_settings/host_content_settings_map_factory.cc +++ b/chrome/browser/content_settings/host_content_settings_map_factory.cc
@@ -31,6 +31,7 @@ #endif #if defined(OS_ANDROID) +#include "chrome/browser/android/chrome_feature_list.h" #include "chrome/browser/installable/installed_webapp_provider.h" #include "chrome/browser/notifications/notification_channels_provider_android.h" #endif // OS_ANDROID @@ -123,10 +124,13 @@ HostContentSettingsMap::NOTIFICATION_ANDROID_PROVIDER, std::move(channels_provider)); - auto webapp_provider = std::make_unique<InstalledWebappProvider>(); - settings_map->RegisterProvider( - HostContentSettingsMap::INSTALLED_WEBAPP_PROVIDER, - std::move(webapp_provider)); + if (base::FeatureList::IsEnabled(chrome::android:: + kTrustedWebActivityNotificationDelegationEnrolment)) { + auto webapp_provider = std::make_unique<InstalledWebappProvider>(); + settings_map->RegisterProvider( + HostContentSettingsMap::INSTALLED_WEBAPP_PROVIDER, + std::move(webapp_provider)); + } } #endif // defined (OS_ANDROID) return settings_map;
diff --git a/chrome/browser/devtools/devtools_sanity_browsertest.cc b/chrome/browser/devtools/devtools_sanity_browsertest.cc index e3f65241..c624fe05 100644 --- a/chrome/browser/devtools/devtools_sanity_browsertest.cc +++ b/chrome/browser/devtools/devtools_sanity_browsertest.cc
@@ -1656,6 +1656,14 @@ CloseDevToolsWindow(); } +// Tests that whitelisted unhandled shortcuts are forwarded from inspected page +// into devtools frontend +IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, testKeyEventUnhandled) { + OpenDevToolsWindow("about:blank", true); + RunTestFunction(window_, "testKeyEventUnhandled"); + CloseDevToolsWindow(); +} + // Tests that settings are stored in profile correctly. IN_PROC_BROWSER_TEST_F(DevToolsSanityTest, TestSettings) { OpenDevToolsWindow("about:blank", true);
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index 306d95c..6d8ac09 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc
@@ -92,6 +92,7 @@ #include "extensions/browser/update_observer.h" #include "extensions/browser/updater/extension_cache.h" #include "extensions/browser/updater/extension_downloader.h" +#include "extensions/browser/updater/manifest_fetch_data.h" #include "extensions/common/extension_messages.h" #include "extensions/common/extension_urls.h" #include "extensions/common/feature_switch.h" @@ -1119,6 +1120,12 @@ : base::BindOnce( [](base::RepeatingClosure callback) { callback.Run(); }, external_updates_finished_callback_); + // We have to mark policy-forced extensions with foreground fetch priority, + // otherwise their installation may be throttled by bandwidth limits. + // See https://crbug.com/904600. + if (pending_extension_manager_.HasPendingExtensionFromPolicy()) { + params.fetch_priority = ManifestFetchData::FOREGROUND; + } updater()->CheckNow(std::move(params)); }
diff --git a/chrome/browser/extensions/extension_service_unittest.cc b/chrome/browser/extensions/extension_service_unittest.cc index 9f5130d13..6419a76 100644 --- a/chrome/browser/extensions/extension_service_unittest.cc +++ b/chrome/browser/extensions/extension_service_unittest.cc
@@ -65,6 +65,7 @@ #include "chrome/browser/extensions/pending_extension_manager.h" #include "chrome/browser/extensions/permissions_test_util.h" #include "chrome/browser/extensions/permissions_updater.h" +#include "chrome/browser/extensions/plugin_manager.h" #include "chrome/browser/extensions/test_blacklist.h" #include "chrome/browser/extensions/test_extension_system.h" #include "chrome/browser/extensions/unpacked_installer.h" @@ -97,7 +98,6 @@ #include "content/public/browser/render_process_host.h" #include "content/public/browser/storage_partition.h" #include "content/public/common/content_constants.h" -#include "chrome/browser/extensions/plugin_manager.h" #include "content/public/test/test_browser_thread_bundle.h" #include "content/public/test/test_utils.h" #include "extensions/browser/disable_reason.h" @@ -115,10 +115,13 @@ #include "extensions/browser/test_extension_registry_observer.h" #include "extensions/browser/test_management_policy.h" #include "extensions/browser/uninstall_reason.h" +#include "extensions/browser/updater/extension_downloader_test_helper.h" +#include "extensions/browser/updater/null_extension_cache.h" #include "extensions/common/extension.h" #include "extensions/common/extension_builder.h" #include "extensions/common/extension_l10n_util.h" #include "extensions/common/extension_resource.h" +#include "extensions/common/extension_urls.h" #include "extensions/common/file_util.h" #include "extensions/common/manifest_constants.h" #include "extensions/common/manifest_handlers/background_info.h" @@ -7419,4 +7422,48 @@ service()->BlockAllExtensions(); } +// Policy-forced extensions should be fetched with FOREGROUND priority, +// otherwise they may be throttled (web store sends “noupdate” response to +// reduce load), which is OK for updates, but not for a new install. This is +// a regression test for problems described in https://crbug.com/904600 and +// https://crbug.com/917700. +TEST_F(ExtensionServiceTest, PolicyForegroundFetch) { + ExtensionUpdater::ScopedSkipScheduledCheckForTest skip_scheduled_checks; + ExtensionServiceInitParams params = CreateDefaultInitParams(); + params.autoupdate_enabled = true; + InitializeExtensionService(params); + + ExtensionDownloaderTestHelper helper; + NullExtensionCache extension_cache; + service()->updater()->SetExtensionDownloaderForTesting( + helper.CreateDownloader()); + service()->updater()->SetExtensionCacheForTesting(&extension_cache); + service()->updater()->Start(); + + GURL update_url(extension_urls::kChromeWebstoreUpdateURL); + service()->OnExternalExtensionUpdateUrlFound( + ExternalInstallInfoUpdateUrl( + all_zero /* extension_id */, "" /* install_parameter */, update_url, + Manifest::EXTERNAL_POLICY_DOWNLOAD /* download_location */, + Extension::NO_FLAGS /* creation_flag */, + true /* mark_acknowledged */), + true /* is_initial_load */); + + MockExternalProvider provider(nullptr, Manifest::EXTERNAL_POLICY_DOWNLOAD); + service()->OnExternalProviderReady(&provider); + + content::RunAllTasksUntilIdle(); + + EXPECT_EQ(helper.test_url_loader_factory().NumPending(), 1); + network::TestURLLoaderFactory::PendingRequest* pending_request = + helper.test_url_loader_factory().GetPendingRequest(0); + std::string header; + EXPECT_TRUE(pending_request->request.headers.GetHeader( + "X-Goog-Update-Interactivity", &header)); + EXPECT_EQ(header, "fg"); + + // Destroy updater's downloader as it uses |helper|. + service()->updater()->SetExtensionDownloaderForTesting(nullptr); +} + } // namespace extensions
diff --git a/chrome/browser/extensions/pending_extension_manager.cc b/chrome/browser/extensions/pending_extension_manager.cc index eba191f..3d35a7a 100644 --- a/chrome/browser/extensions/pending_extension_manager.cc +++ b/chrome/browser/extensions/pending_extension_manager.cc
@@ -95,6 +95,15 @@ return false; } +bool PendingExtensionManager::HasPendingExtensionFromPolicy() const { + return std::find_if(pending_extension_list_.begin(), + pending_extension_list_.end(), + [](const PendingExtensionInfo& info) { + return info.install_source() == + Manifest::EXTERNAL_POLICY_DOWNLOAD; + }) != pending_extension_list_.end(); +} + void PendingExtensionManager::ExpectPolicyReinstallForCorruption( const ExtensionId& id) { if (base::ContainsKey(expected_policy_reinstalls_, id))
diff --git a/chrome/browser/extensions/pending_extension_manager.h b/chrome/browser/extensions/pending_extension_manager.h index 3cfc583..cbadf7d 100644 --- a/chrome/browser/extensions/pending_extension_manager.h +++ b/chrome/browser/extensions/pending_extension_manager.h
@@ -69,6 +69,9 @@ // Whether there is pending extension install from sync. bool HasPendingExtensionFromSync() const; + // Whether there is pending extension install from policy. + bool HasPendingExtensionFromPolicy() const; + // Notifies the manager that we are reinstalling the policy force-installed // extension with |id| because we detected corruption in the current copy. void ExpectPolicyReinstallForCorruption(const ExtensionId& id);
diff --git a/chrome/browser/extensions/updater/extension_updater.cc b/chrome/browser/extensions/updater/extension_updater.cc index 1bb1117..b13c16b 100644 --- a/chrome/browser/extensions/updater/extension_updater.cc +++ b/chrome/browser/extensions/updater/extension_updater.cc
@@ -243,6 +243,11 @@ extension_cache_ = extension_cache; } +void ExtensionUpdater::SetExtensionDownloaderForTesting( + std::unique_ptr<ExtensionDownloader> downloader) { + downloader_.swap(downloader); +} + void ExtensionUpdater::DoCheckSoon() { DCHECK(will_check_soon_); CheckNow(CheckParams());
diff --git a/chrome/browser/extensions/updater/extension_updater.h b/chrome/browser/extensions/updater/extension_updater.h index 546f8b1..f2a7f294 100644 --- a/chrome/browser/extensions/updater/extension_updater.h +++ b/chrome/browser/extensions/updater/extension_updater.h
@@ -138,6 +138,10 @@ // Overrides the extension cache with |extension_cache| for testing. void SetExtensionCacheForTesting(ExtensionCache* extension_cache); + // Overrides the extension downloader with |downloader| for testing. + void SetExtensionDownloaderForTesting( + std::unique_ptr<ExtensionDownloader> downloader); + private: friend class ExtensionUpdaterTest; friend class ExtensionUpdaterFileHandler;
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json index 823f24f..fb30c51 100644 --- a/chrome/browser/flag-metadata.json +++ b/chrome/browser/flag-metadata.json
@@ -503,21 +503,11 @@ "expiry_milestone": -1 }, { - "name": "disable-audio-support-for-desktop-share", - // "owners": [ "your-team" ], - "expiry_milestone": 76 - }, - { "name": "disable-best-effort-tasks", "owners": [ "catan-team@chromium.org" ], "expiry_milestone": 75 }, { - "name": "disable-captive-portal-bypass-proxy", - // "owners": [ "your-team" ], - "expiry_milestone": 76 - }, - { "name": "disable-eol-notification", // "owners": [ "your-team" ], "expiry_milestone": 76 @@ -2189,11 +2179,6 @@ "expiry_milestone": 76 }, { - "name": "link-managed-notice-to-management-page", - "owners": [ "chrome-enterprise-team-core@google.com" ], - "expiry_milestone": 76 - }, - { "name": "list-all-display-modes", "owners": [ "//ui/display/OWNERS" ], // This flag is used for debugging and development purposes to list all
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc index ea42147..a5bd6dc2 100644 --- a/chrome/browser/flag_descriptions.cc +++ b/chrome/browser/flag_descriptions.cc
@@ -2733,12 +2733,6 @@ "When going to a site that has URL managable by a PWA, show the intent" "picker to allow user to open the URL in the app."; -const char kLinkManagedNoticeToChromeUIManagementURLName[] = - "Link managed notice to the management page"; -const char kLinkManagedNoticeToChromeUIManagementURLDescription[] = - "Makes the managed notice 'Managed by your organization' a link to " - "chrome://management"; - const char kOmniboxDriveSuggestionsName[] = "Omnibox Google Drive Document suggestions"; const char kOmniboxDriveSuggestionsDescriptions[] = @@ -3024,13 +3018,6 @@ const char kBulkPrintersName[] = "Bulk Printers Policy"; const char kBulkPrintersDescription[] = "Enables the new bulk printers policy"; -const char kCaptivePortalBypassProxyName[] = - "Bypass proxy for Captive Portal Authorization"; -const char kCaptivePortalBypassProxyDescription[] = - "If proxy is configured, it usually prevents from authorization on " - "different captive portals. This enables opening captive portal " - "authorization dialog in a separate window, which ignores proxy settings."; - const char kCrOSContainerName[] = "Chrome OS Container"; const char kCrOSContainerDescription[] = "Enable the use of Chrome OS Container utility.";
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h index 7137fbc..d29d9b8 100644 --- a/chrome/browser/flag_descriptions.h +++ b/chrome/browser/flag_descriptions.h
@@ -1628,9 +1628,6 @@ extern const char kIntentPickerName[]; extern const char kIntentPickerDescription[]; -extern const char kLinkManagedNoticeToChromeUIManagementURLName[]; -extern const char kLinkManagedNoticeToChromeUIManagementURLDescription[]; - extern const char kOmniboxDriveSuggestionsName[]; extern const char kOmniboxDriveSuggestionsDescriptions[]; @@ -1818,9 +1815,6 @@ extern const char kBulkPrintersName[]; extern const char kBulkPrintersDescription[]; -extern const char kCaptivePortalBypassProxyName[]; -extern const char kCaptivePortalBypassProxyDescription[]; - extern const char kCrOSContainerName[]; extern const char kCrOSContainerDescription[];
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager_common.cc b/chrome/browser/media/webrtc/webrtc_event_log_manager_common.cc index a886f05..7380c34b 100644 --- a/chrome/browser/media/webrtc/webrtc_event_log_manager_common.cc +++ b/chrome/browser/media/webrtc/webrtc_event_log_manager_common.cc
@@ -69,6 +69,10 @@ base::UmaHistogramEnumeration("WebRtcEventLogging.Upload", result); } +void UmaRecordWebRtcEventLoggingNetErrorType(int net_error) { + base::UmaHistogramSparse("WebRtcEventLogging.NetError", net_error); +} + namespace { constexpr int kDefaultMemLevel = 8;
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_manager_common.h b/chrome/browser/media/webrtc/webrtc_event_log_manager_common.h index b5392ad..3529dce0 100644 --- a/chrome/browser/media/webrtc/webrtc_event_log_manager_common.h +++ b/chrome/browser/media/webrtc/webrtc_event_log_manager_common.h
@@ -155,6 +155,11 @@ void UmaRecordWebRtcEventLoggingUpload(WebRtcEventLoggingUploadUma result); +// Success is signalled by 0. +// All negative values signal errors. +// Positive values are not used. +void UmaRecordWebRtcEventLoggingNetErrorType(int net_error); + // For a given Chrome session, this is a unique key for PeerConnections. // It's not, however, unique between sessions (after Chrome is restarted). struct WebRtcEventLogPeerConnectionKey {
diff --git a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc index 2a491a8..5c2e6bd6 100644 --- a/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc +++ b/chrome/browser/media/webrtc/webrtc_event_log_uploader.cc
@@ -313,6 +313,9 @@ const bool upload_successful = (response_body.get() != nullptr && !response_body->empty()); + // NetError() is 0 when no error occurred. + UmaRecordWebRtcEventLoggingNetErrorType(url_loader_->NetError()); + DCHECK(history_file_writer_); if (upload_successful) { if (!history_file_writer_->WriteUploadId(*response_body)) {
diff --git a/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc b/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc index fa6bea6..f7c221fc 100644 --- a/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc +++ b/chrome/browser/media/webrtc/webrtc_getdisplaymedia_browsertest.cc
@@ -21,7 +21,6 @@ const char* display_surface; const char* logical_surface; const char* cursor; - bool expect_audio; }; } // namespace @@ -105,8 +104,6 @@ switches::kUseFakeDeviceForMediaStream, base::StringPrintf("display-media-type=%s", test_config_.display_surface)); - if (!test_config_.expect_audio) - command_line->AppendSwitch(switches::kDisableAudioSupportForDesktopShare); } protected: @@ -146,7 +143,7 @@ std::string result; EXPECT_TRUE(content::ExecuteScriptAndExtractString( tab->GetMainFrame(), "hasAudioTrack();", &result)); - EXPECT_EQ(result, test_config_.expect_audio ? "true" : "false"); + EXPECT_EQ(result, "true"); } IN_PROC_BROWSER_TEST_P(WebRtcGetDisplayMediaBrowserTestWithFakeUI, @@ -171,10 +168,9 @@ EXPECT_EQ(result, base::StringPrintf("%d", kMaxFrameRate)); } -INSTANTIATE_TEST_SUITE_P( - , - WebRtcGetDisplayMediaBrowserTestWithFakeUI, - testing::Values(TestConfig{"monitor", "true", "never", false}, - TestConfig{"window", "true", "never", false}, - TestConfig{"browser", "true", "never", false}, - TestConfig{"browser", "true", "never", true})); +INSTANTIATE_TEST_SUITE_P(, + WebRtcGetDisplayMediaBrowserTestWithFakeUI, + testing::Values(TestConfig{"monitor", "true", "never"}, + TestConfig{"window", "true", "never"}, + TestConfig{"browser", "true", + "never"}));
diff --git a/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc b/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc index 27b02d3..c5656b0 100644 --- a/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc +++ b/chrome/browser/page_load_metrics/observers/use_counter/ukm_features.cc
@@ -34,6 +34,7 @@ // kDataUriHasOctothorpe may not be recorded correctly for iframes. // See https://crbug.com/796173 for details. WebFeature::kDataUriHasOctothorpe, + WebFeature::kApplicationCacheInstalledButNoManifest, WebFeature::kApplicationCacheManifestSelectInsecureOrigin, WebFeature::kApplicationCacheManifestSelectSecureOrigin, WebFeature::kMixedContentAudio,
diff --git a/chrome/browser/policy/configuration_policy_handler_list_factory.cc b/chrome/browser/policy/configuration_policy_handler_list_factory.cc index cbf1c15a..ae7e585 100644 --- a/chrome/browser/policy/configuration_policy_handler_list_factory.cc +++ b/chrome/browser/policy/configuration_policy_handler_list_factory.cc
@@ -286,9 +286,6 @@ { key::kRequireOnlineRevocationChecksForLocalAnchors, prefs::kCertRevocationCheckingRequiredLocalAnchors, base::Value::Type::BOOLEAN }, - { key::kEnableSymantecLegacyInfrastructure, - prefs::kCertEnableSymantecLegacyInfrastructure, - base::Value::Type::BOOLEAN }, { key::kAuthSchemes, prefs::kAuthSchemes, base::Value::Type::STRING },
diff --git a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc index 031438a..d0eead8 100644 --- a/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc +++ b/chrome/browser/profiles/chrome_browser_main_extra_parts_profiles.cc
@@ -151,6 +151,7 @@ #include "chrome/browser/extensions/extension_management.h" #include "chrome/browser/ui/bookmarks/enhanced_bookmark_key_service_factory.h" #include "chrome/browser/ui/web_applications/web_app_metrics_factory.h" +#include "chrome/browser/ui/web_applications/web_app_ui_delegate_impl_factory.h" #include "chrome/browser/web_applications/web_app_provider_factory.h" #include "extensions/browser/api/networking_private/networking_private_delegate_factory.h" #include "extensions/browser/browser_context_keyed_service_factories.h" @@ -407,6 +408,7 @@ #endif #if BUILDFLAG(ENABLE_EXTENSIONS) web_app::WebAppProviderFactory::GetInstance(); + web_app::WebAppUiDelegateImplFactory::GetInstance(); web_app::WebAppMetricsFactory::GetInstance(); #endif WebDataServiceFactory::GetInstance();
diff --git a/chrome/browser/resources/settings/languages_page/languages_page.html b/chrome/browser/resources/settings/languages_page/languages_page.html index 3548eb6..0edf45c 100644 --- a/chrome/browser/resources/settings/languages_page/languages_page.html +++ b/chrome/browser/resources/settings/languages_page/languages_page.html
@@ -157,6 +157,11 @@ div.list-item.target ~ div.list-item.target .target-info { display: none; } + + .restart-button { + margin-inline-start: var(--settings-controlled-by-spacing); + } + </style> <settings-languages languages="{{languages}}" prefs="{{prefs}}" language-helper="{{languageHelper}}"> @@ -210,7 +215,7 @@ <if expr="chromeos or is_win"> <template is="dom-if" if="[[isRestartRequired_( item.language.code, languages.prospectiveUILanguage)]]"> - <paper-button on-click="onRestartTap_"> + <paper-button class="restart-button" on-click="onRestartTap_"> $i18n{restart} </paper-button> </template>
diff --git a/chrome/browser/resources/settings/settings_main/settings_main.html b/chrome/browser/resources/settings/settings_main/settings_main.html index 1d8db20..b1036b3 100644 --- a/chrome/browser/resources/settings/settings_main/settings_main.html +++ b/chrome/browser/resources/settings/settings_main/settings_main.html
@@ -1,6 +1,5 @@ <link rel="import" href="chrome://resources/html/polymer.html"> -<link rel="import" href="chrome://resources/cr_components/managed_footnote/managed_footnote.html"> <link rel="import" href="chrome://resources/cr_elements/hidden_style_css.html"> <link rel="import" href="chrome://resources/cr_elements/icons.html"> <link rel="import" href="chrome://resources/html/search_highlight_utils.html"> @@ -36,30 +35,11 @@ font-size: 123%; /* Should be 16px when 100% is 13px. */ margin-bottom: 10px; } - - managed-footnote { - border-top: none; - /* margin-bottom is needed to compensate for the next element's 21px - * margin at the top and 8px padding at the top. This leaves a 12px - * padding between this element's content and the top of the next - * element's text. */ - margin-bottom: calc(-21px - 8px); - padding-bottom: 16px; - padding-top: 12px; - /* The next element spills over this element. This ensures the link - * is clickable. */ - position: relative; - z-index: 1; - } </style> <div id="noSearchResults" hidden$="[[!showNoResultsFound_]]"> <div>$i18n{searchNoResults}</div> <div>$i18nRaw{searchNoResultsHelp}</div> </div> - <template is="dom-if" - if="[[showManagedHeader_(inSearchMode_, showingSubpage_)]]"> - <managed-footnote></managed-footnote> - </template> <template is="dom-if" if="[[showPages_.settings]]"> <settings-basic-page prefs="{{prefs}}" page-visibility="[[pageVisibility]]"
diff --git a/chrome/browser/resources/settings/settings_main/settings_main.js b/chrome/browser/resources/settings/settings_main/settings_main.js index 1300d197..6cb6d43 100644 --- a/chrome/browser/resources/settings/settings_main/settings_main.js +++ b/chrome/browser/resources/settings/settings_main/settings_main.js
@@ -231,12 +231,4 @@ }, 0); }); }, - - /** - * @return {boolean} - * @private - */ - showManagedHeader_: function() { - return !this.inSearchMode_ && !this.showingSubpage_; - }, });
diff --git a/chrome/browser/ssl/ssl_browsertest.cc b/chrome/browser/ssl/ssl_browsertest.cc index 766cb2e..ac0bb9c 100644 --- a/chrome/browser/ssl/ssl_browsertest.cc +++ b/chrome/browser/ssl/ssl_browsertest.cc
@@ -2009,27 +2009,6 @@ ->initial_ssl_config->symantec_enforcement_disabled); } -// Enables support for Symantec's Legacy PKI via policy, and then ensures that -// the SSLConfig is configured to trust the Legacy PKI. -IN_PROC_BROWSER_TEST_P(SSLUITest, SymantecPrefsCanEnable) { - EXPECT_FALSE(last_ssl_config_.symantec_enforcement_disabled); - EXPECT_FALSE(CreateDefaultNetworkContextParams() - ->initial_ssl_config->symantec_enforcement_disabled); - - // Enable, and make sure the default network context params reflect the - // change. - base::RunLoop run_loop; - set_ssl_config_updated_callback(run_loop.QuitClosure()); - ASSERT_NO_FATAL_FAILURE( - EnablePolicy(g_browser_process->local_state(), - policy::key::kEnableSymantecLegacyInfrastructure, - prefs::kCertEnableSymantecLegacyInfrastructure)); - run_loop.Run(); - EXPECT_TRUE(last_ssl_config_.symantec_enforcement_disabled); - EXPECT_TRUE(CreateDefaultNetworkContextParams() - ->initial_ssl_config->symantec_enforcement_disabled); -} - class CertificateTransparencySSLUITest : public CertVerifierBrowserTest { public: CertificateTransparencySSLUITest()
diff --git a/chrome/browser/ssl/ssl_config_service_manager_pref.cc b/chrome/browser/ssl/ssl_config_service_manager_pref.cc index 48ab2c0..33b63aa 100644 --- a/chrome/browser/ssl/ssl_config_service_manager_pref.cc +++ b/chrome/browser/ssl/ssl_config_service_manager_pref.cc
@@ -150,7 +150,6 @@ // The local_state prefs. BooleanPrefMember rev_checking_enabled_; BooleanPrefMember rev_checking_required_local_anchors_; - BooleanPrefMember symantec_legacy_infrastructure_enabled_; StringPrefMember ssl_version_min_; StringPrefMember ssl_version_max_; StringListPrefMember h2_client_cert_coalescing_host_patterns_; @@ -176,9 +175,6 @@ rev_checking_required_local_anchors_.Init( prefs::kCertRevocationCheckingRequiredLocalAnchors, local_state, local_state_callback); - symantec_legacy_infrastructure_enabled_.Init( - prefs::kCertEnableSymantecLegacyInfrastructure, local_state, - local_state_callback); ssl_version_min_.Init(prefs::kSSLVersionMin, local_state, local_state_callback); ssl_version_max_.Init(prefs::kSSLVersionMax, local_state, @@ -203,9 +199,6 @@ registry->RegisterBooleanPref( prefs::kCertRevocationCheckingRequiredLocalAnchors, default_verifier_config.require_rev_checking_local_anchors); - registry->RegisterBooleanPref( - prefs::kCertEnableSymantecLegacyInfrastructure, - default_verifier_config.disable_symantec_enforcement); registry->RegisterStringPref(prefs::kSSLVersionMin, std::string()); registry->RegisterStringPref(prefs::kSSLVersionMax, std::string()); registry->RegisterListPref(prefs::kCipherSuiteBlacklist); @@ -255,8 +248,6 @@ config->rev_checking_enabled = false; config->rev_checking_required_local_anchors = rev_checking_required_local_anchors_.GetValue(); - config->symantec_enforcement_disabled = - symantec_legacy_infrastructure_enabled_.GetValue(); std::string version_min_str = ssl_version_min_.GetValue(); std::string version_max_str = ssl_version_max_.GetValue();
diff --git a/chrome/browser/ssl/ssl_config_service_manager_pref_unittest.cc b/chrome/browser/ssl/ssl_config_service_manager_pref_unittest.cc index 3aca951..0c0b959 100644 --- a/chrome/browser/ssl/ssl_config_service_manager_pref_unittest.cc +++ b/chrome/browser/ssl/ssl_config_service_manager_pref_unittest.cc
@@ -237,44 +237,6 @@ EXPECT_LE(network::mojom::SSLVersion::kTLS12, initial_config_->version_max); } -// Tests that Symantec's legacy infrastructure can be enabled. -TEST_F(SSLConfigServiceManagerPrefTest, SymantecLegacyInfrastructure) { - scoped_refptr<TestingPrefStore> local_state_store(new TestingPrefStore()); - - TestingPrefServiceSimple local_state; - SSLConfigServiceManager::RegisterPrefs(local_state.registry()); - - std::unique_ptr<SSLConfigServiceManager> config_manager = - SetUpConfigServiceManager(&local_state); - - // By default, Symantec's legacy infrastructure should be disabled when - // not using any pref service. - EXPECT_FALSE(net::CertVerifier::Config().disable_symantec_enforcement); - EXPECT_FALSE(network::mojom::SSLConfig::New()->symantec_enforcement_disabled); - - // Using a pref service without any preference set should result in - // Symantec's legacy infrastructure being disabled. - EXPECT_FALSE(initial_config_->symantec_enforcement_disabled); - - // Enabling the local preference should result in Symantec's legacy - // infrastructure being enabled. - local_state.SetUserPref(prefs::kCertEnableSymantecLegacyInfrastructure, - std::make_unique<base::Value>(true)); - // Wait for the SSLConfigServiceManagerPref to be notified of the preferences - // being changed, and for it to notify the test fixture of the change. - ASSERT_NO_FATAL_FAILURE(WaitForUpdate()); - EXPECT_TRUE(observed_configs_[0]->symantec_enforcement_disabled); - - // Disabling the local preference should result in Symantec's legacy - // infrastructure being disabled. - local_state.SetUserPref(prefs::kCertEnableSymantecLegacyInfrastructure, - std::make_unique<base::Value>(false)); - // Wait for the SSLConfigServiceManagerPref to be notified of the preferences - // being changed, and for it to notify the test fixture of the change. - ASSERT_NO_FATAL_FAILURE(WaitForUpdate()); - EXPECT_FALSE(observed_configs_[1]->symantec_enforcement_disabled); -} - TEST_F(SSLConfigServiceManagerPrefTest, H2ClientCertCoalescingPref) { scoped_refptr<TestingPrefStore> local_state_store(new TestingPrefStore());
diff --git a/chrome/browser/sync/sync_ui_util.cc b/chrome/browser/sync/sync_ui_util.cc index 9fa4cdd..8920e47 100644 --- a/chrome/browser/sync/sync_ui_util.cc +++ b/chrome/browser/sync/sync_ui_util.cc
@@ -190,7 +190,7 @@ } // If first setup is in progress, show an "in progress" message. - if (service->IsFirstSetupInProgress()) { + if (service->IsSetupInProgress()) { if (status_label) { *status_label = l10n_util::GetStringUTF16(IDS_SYNC_NTP_SETUP_IN_PROGRESS); }
diff --git a/chrome/browser/sync/sync_ui_util.h b/chrome/browser/sync/sync_ui_util.h index 33652d95..acad7b8 100644 --- a/chrome/browser/sync/sync_ui_util.h +++ b/chrome/browser/sync/sync_ui_util.h
@@ -69,7 +69,7 @@ // Whether sync is currently blocked from starting because the sync // confirmation dialog hasn't been shown. Note that once the dialog is -// showing (i.e. IsFirstSetupInProgress() is true), this will return false. +// showing (i.e. IsSetupInProgress() is true), this will return false. bool ShouldRequestSyncConfirmation(const syncer::SyncService* service); // Returns whether it makes sense to show a Sync passphrase error UI, i.e.
diff --git a/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc b/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc index c474d3b4..c1353fc 100644 --- a/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc +++ b/chrome/browser/sync/test/integration/single_client_wallet_sync_test.cc
@@ -9,21 +9,25 @@ #include "base/test/metrics/histogram_tester.h" #include "build/build_config.h" #include "chrome/browser/chrome_notification_types.h" +#include "chrome/browser/sync/test/integration/bookmarks_helper.h" #include "chrome/browser/sync/test/integration/profile_sync_service_harness.h" #include "chrome/browser/sync/test/integration/secondary_account_helper.h" #include "chrome/browser/sync/test/integration/single_client_status_change_checker.h" #include "chrome/browser/sync/test/integration/sync_datatype_helper.h" +#include "chrome/browser/sync/test/integration/sync_integration_test_util.h" #include "chrome/browser/sync/test/integration/sync_test.h" #include "chrome/browser/sync/test/integration/wallet_helper.h" #include "chrome/browser/web_data_service_factory.h" #include "components/autofill/core/browser/autofill_data_util.h" #include "components/autofill/core/browser/autofill_metadata.h" +#include "components/autofill/core/browser/autofill_metrics.h" #include "components/autofill/core/browser/credit_card.h" #include "components/autofill/core/browser/field_types.h" #include "components/autofill/core/browser/payments/payments_customer_data.h" #include "components/autofill/core/browser/personal_data_manager.h" #include "components/autofill/core/browser/personal_data_manager_observer.h" #include "components/autofill/core/browser/test_autofill_clock.h" +#include "components/autofill/core/browser/webdata/autofill_sync_bridge_util.h" #include "components/autofill/core/common/autofill_features.h" #include "components/autofill/core/common/autofill_prefs.h" #include "components/autofill/core/common/autofill_switches.h" @@ -38,10 +42,12 @@ #include "testing/gmock/include/gmock/gmock.h" using autofill::AutofillMetadata; +using autofill::AutofillMetrics; using autofill::AutofillProfile; using autofill::CreditCard; using autofill::data_util::TruncateUTF8; using base::ASCIIToUTF16; +using testing::Contains; using wallet_helper::CreateDefaultSyncPaymentsCustomerData; using wallet_helper::CreateDefaultSyncWalletAddress; using wallet_helper::CreateDefaultSyncWalletCard; @@ -68,6 +74,10 @@ loop->Quit(); } +MATCHER(AddressHasConverted, "") { + return arg.specifics().wallet_metadata().address_has_converted(); +} + const char kLocalGuidA[] = "EDC609ED-7EEE-4F27-B00C-423242A9C44A"; const char kDifferentBillingAddressId[] = "another address entity ID"; const base::Time kArbitraryDefaultTime = base::Time::FromDoubleT(25); @@ -1325,6 +1335,88 @@ EXPECT_EQ(kDefaultBillingAddressID, cards[0]->billing_address_id()); } +IN_PROC_BROWSER_TEST_P(SingleClientWalletSyncTestWithDefaultFeatures, + ConvertServerAddress) { + GetFakeServer()->SetWalletData( + {CreateSyncWalletAddress(/*name=*/"address-1", /*company=*/"Company-1"), + CreateDefaultSyncPaymentsCustomerData()}); + ASSERT_TRUE(SetupSync()); + + // Wait to make sure the address got converted locally. + AutofillWalletConversionChecker(0).Wait(); + + // Make sure the wallet_metadata is committed to the server, make an + // independent later commit and wait for it to happen. + ASSERT_TRUE( + bookmarks_helper::AddURL(0, "What are you syncing about?", + GURL("https://google.com/synced-bookmark-1"))); + ASSERT_TRUE(ServerCountMatchStatusChecker(syncer::BOOKMARKS, 1).Wait()); + + // Make sure the data is present on the client. + autofill::PersonalDataManager* pdm = GetPersonalDataManager(0); + ASSERT_EQ(1uL, pdm->GetServerProfiles().size()); + ASSERT_EQ(kDefaultCustomerID, pdm->GetPaymentsCustomerData()->customer_id); + + // Check also the data related to conversion to local profiles. + ASSERT_EQ(1uL, pdm->GetProfiles().size()); + std::map<std::string, AutofillMetadata> addresses_metadata = + GetServerAddressesMetadata(0); + EXPECT_EQ(1U, addresses_metadata.size()); + EXPECT_TRUE(addresses_metadata.begin()->second.has_converted); + + // Check the data is correctly on the server. + EXPECT_THAT(fake_server_->GetSyncEntitiesByModelType( + syncer::AUTOFILL_WALLET_METADATA), + Contains(AddressHasConverted())); + + histogram_tester_.ExpectBucketCount( + "Autofill.WalletAddressConversionType", + /*bucket=*/AutofillMetrics::CONVERTED_ADDRESS_ADDED, + /*count=*/1); +} + +IN_PROC_BROWSER_TEST_P(SingleClientWalletSyncTestWithDefaultFeatures, + DoNotConvertServerAddressAgain) { + sync_pb::SyncEntity address_entity = + CreateSyncWalletAddress(/*name=*/"address-1", /*company=*/"Company-1"); + GetFakeServer()->SetWalletData( + {address_entity, CreateDefaultSyncPaymentsCustomerData()}); + + // Inject a wallet metadata entity that indicates the address has already been + // converted. + sync_pb::EntitySpecifics specifics; + sync_pb::WalletMetadataSpecifics* wallet_metadata_specifics = + specifics.mutable_wallet_metadata(); + wallet_metadata_specifics->set_type( + sync_pb::WalletMetadataSpecifics::ADDRESS); + wallet_metadata_specifics->set_use_count(3); + wallet_metadata_specifics->set_use_date(10); + wallet_metadata_specifics->set_address_has_converted(true); + // The id gets generated on the client based on the data. Simulate the process + // to get the same id. On top of it, we need to base64encode it. + AutofillProfile address = autofill::ProfileFromSpecifics( + address_entity.specifics().autofill_wallet().address()); + wallet_metadata_specifics->set_id( + autofill::GetBase64EncodedId(address.server_id())); + + GetFakeServer()->InjectEntity( + syncer::PersistentUniqueClientEntity::CreateFromSpecificsForTesting( + "non_unique_name", + /*client_tag_hash=*/"address-" + wallet_metadata_specifics->id(), + specifics, + /*creation_time=*/0, + /*last_modified_time=*/0)); + + ASSERT_TRUE(SetupSync()); + + // Wait to make sure we receive the (already converted) metadata entity. + AutofillWalletConversionChecker(0).Wait(); + + // No conversion happens now. + histogram_tester_.ExpectTotalCount("Autofill.WalletAddressConversionType", + /*count=*/0); +} + class SingleClientWalletSecondaryAccountSyncTest : public UssWalletSwitchToggler, public SingleClientWalletSyncTest {
diff --git a/chrome/browser/sync/test/integration/two_client_autofill_sync_test.cc b/chrome/browser/sync/test/integration/two_client_autofill_sync_test.cc index 3024e3d..7710d78f 100644 --- a/chrome/browser/sync/test/integration/two_client_autofill_sync_test.cc +++ b/chrome/browser/sync/test/integration/two_client_autofill_sync_test.cc
@@ -521,13 +521,12 @@ LOCAL_DELETION, 1); } -// Disabled due to flakiness, (crbug.com/952933) // Tests that modifying a profile at the same time on two clients while // syncing results in a conflict where the update wins. This only works with // a server that supports a strong consistency model and is hence capable of // detecting conflicts server-side. IN_PROC_BROWSER_TEST_P(TwoClientAutofillProfileSyncTest, - DISABLED_DeleteAndUpdateWithStrongConsistency) { + DeleteAndUpdateWithStrongConsistency) { if (GetParam() == false) { // TODO(crbug.com/890746): There seems to be a bug in directory code that // resolves conflicts in a way that local deletion wins over a remote
diff --git a/chrome/browser/sync/test/integration/two_client_wallet_sync_test.cc b/chrome/browser/sync/test/integration/two_client_wallet_sync_test.cc index 6d3958da..4ae4932 100644 --- a/chrome/browser/sync/test/integration/two_client_wallet_sync_test.cc +++ b/chrome/browser/sync/test/integration/two_client_wallet_sync_test.cc
@@ -506,11 +506,8 @@ EXPECT_TRUE(local_address_0.EqualsForSyncPurposes(*local_addresses_1[0])); } -// TODO(crbug.com/953152): Flaky on multiple builders and recently regressed on -// Mac, apparently with -// https://chromium-review.googlesource.com/c/chromium/src/+/1566296. IN_PROC_BROWSER_TEST_P(TwoClientWalletSyncTest, - DISABLED_DeleteServerCardMetadataWhenDataGetsRemoved) { + DeleteServerCardMetadataWhenDataGetsRemoved) { GetFakeServer()->SetWalletData( {CreateSyncWalletCard(/*name=*/"card-1", /*last_four=*/"0001", kDefaultBillingAddressID), @@ -557,12 +554,8 @@ EXPECT_EQ(1U, GetServerAddressesMetadata(1).size()); } -// TODO(crbug.com/953152): Flaky on multiple builders and recently regressed on -// Mac, apparently with -// https://chromium-review.googlesource.com/c/chromium/src/+/1566296. -IN_PROC_BROWSER_TEST_P( - TwoClientWalletSyncTest, - DISABLED_DeleteServerAddressMetadataWhenDataGetsRemoved) { +IN_PROC_BROWSER_TEST_P(TwoClientWalletSyncTest, + DeleteServerAddressMetadataWhenDataGetsRemoved) { GetFakeServer()->SetWalletData( {CreateSyncWalletCard(/*name=*/"card-1", /*last_four=*/"0001", kDefaultBillingAddressID),
diff --git a/chrome/browser/sync/test/integration/wallet_helper.cc b/chrome/browser/sync/test/integration/wallet_helper.cc index 2e5515d..5d936a7f 100644 --- a/chrome/browser/sync/test/integration/wallet_helper.cc +++ b/chrome/browser/sync/test/integration/wallet_helper.cc
@@ -113,7 +113,7 @@ } } -bool WalletDataAndMetadataMatchAndAddressesHaveConverted( +bool WalletDataAndMetadataMatch( int profile_a, const std::vector<CreditCard*>& server_cards_a, const std::vector<AutofillProfile*>& server_profiles_a, @@ -128,11 +128,15 @@ LogLists(server_profiles_a, server_profiles_b); return false; } - // Check that all server profiles have converted to local ones. - for (AutofillProfile* profile : server_profiles_a) { + return true; +} + +bool AddressesHaveConverted( + const std::vector<AutofillProfile*>& server_profiles) { + for (AutofillProfile* profile : server_profiles) { if (!profile->has_converted()) { DVLOG(1) << "Not all profiles are converted"; - LogLists(server_profiles_a, server_profiles_b); + LogLists(server_profiles, std::vector<AutofillProfile*>()); return false; } } @@ -520,9 +524,12 @@ wallet_helper::GetPersonalDataManager(profile_a_); autofill::PersonalDataManager* pdm_b = wallet_helper::GetPersonalDataManager(profile_b_); - return WalletDataAndMetadataMatchAndAddressesHaveConverted( - profile_a_, pdm_a->GetServerCreditCards(), pdm_a->GetServerProfiles(), - profile_b_, pdm_b->GetServerCreditCards(), pdm_b->GetServerProfiles()); + return WalletDataAndMetadataMatch(profile_a_, pdm_a->GetServerCreditCards(), + pdm_a->GetServerProfiles(), profile_b_, + pdm_b->GetServerCreditCards(), + pdm_b->GetServerProfiles()) && + // If data matches, it suffices to check addresses from profile_a_. + AddressesHaveConverted(pdm_a->GetServerProfiles()); } std::string AutofillWalletChecker::GetDebugMessage() const { @@ -533,6 +540,36 @@ CheckExitCondition(); } +AutofillWalletConversionChecker::AutofillWalletConversionChecker(int profile) + : profile_(profile) { + wallet_helper::GetPersonalDataManager(profile_)->AddObserver(this); +} + +AutofillWalletConversionChecker::~AutofillWalletConversionChecker() { + wallet_helper::GetPersonalDataManager(profile_)->RemoveObserver(this); +} + +bool AutofillWalletConversionChecker::Wait() { + // We need to make sure we are not reading before any locally instigated async + // writes. This is run exactly one time before the first + // IsExitConditionSatisfied() is called. + WaitForPDMToRefresh(profile_); + return StatusChangeChecker::Wait(); +} + +bool AutofillWalletConversionChecker::IsExitConditionSatisfied() { + return AddressesHaveConverted( + wallet_helper::GetPersonalDataManager(profile_)->GetServerProfiles()); +} + +std::string AutofillWalletConversionChecker::GetDebugMessage() const { + return "Waiting for converted autofill wallet addresses"; +} + +void AutofillWalletConversionChecker::OnPersonalDataChanged() { + CheckExitCondition(); +} + AutofillWalletMetadataSizeChecker::AutofillWalletMetadataSizeChecker( int profile_a, int profile_b)
diff --git a/chrome/browser/sync/test/integration/wallet_helper.h b/chrome/browser/sync/test/integration/wallet_helper.h index 5042dec..8eba7f9 100644 --- a/chrome/browser/sync/test/integration/wallet_helper.h +++ b/chrome/browser/sync/test/integration/wallet_helper.h
@@ -115,7 +115,7 @@ } // namespace wallet_helper // Checker to block until autofill wallet & server profiles match on both -// profiles. +// profiles and until server profiles got converted to local profiles. class AutofillWalletChecker : public StatusChangeChecker, public autofill::PersonalDataManagerObserver { public: @@ -135,6 +135,27 @@ const int profile_b_; }; +// Checker to block until autofill server profiles got converted to local +// profiles. +class AutofillWalletConversionChecker + : public StatusChangeChecker, + public autofill::PersonalDataManagerObserver { + public: + explicit AutofillWalletConversionChecker(int profile); + ~AutofillWalletConversionChecker() override; + + // StatusChangeChecker implementation. + bool Wait() override; + bool IsExitConditionSatisfied() override; + std::string GetDebugMessage() const override; + + // autofill::PersonalDataManager implementation. + void OnPersonalDataChanged() override; + + private: + const int profile_; +}; + // Checker to block until autofill wallet metadata sizes match on both profiles. class AutofillWalletMetadataSizeChecker : public StatusChangeChecker,
diff --git a/chrome/browser/ui/ash/network/network_portal_notification_controller.cc b/chrome/browser/ui/ash/network/network_portal_notification_controller.cc index bcc12c0..6d4b1893 100644 --- a/chrome/browser/ui/ash/network/network_portal_notification_controller.cc +++ b/chrome/browser/ui/ash/network/network_portal_notification_controller.cc
@@ -171,14 +171,9 @@ Profile* profile = ProfileManager::GetActiveUserProfile(); - const bool disable_bypass_proxy_switch_present = - base::CommandLine::ForCurrentProcess()->HasSwitch( - chromeos::switches::kDisableCaptivePortalBypassProxy); const bool use_incognito_profile = - disable_bypass_proxy_switch_present - ? false - : (profile && profile->GetPrefs()->GetBoolean( - prefs::kCaptivePortalAuthenticationIgnoresProxy)); + profile && profile->GetPrefs()->GetBoolean( + prefs::kCaptivePortalAuthenticationIgnoresProxy); if (use_incognito_profile) { if (controller_)
diff --git a/chrome/browser/ui/ash/session_controller_client.cc b/chrome/browser/ui/ash/session_controller_client.cc index 18aabb9d..fc63bb9f 100644 --- a/chrome/browser/ui/ash/session_controller_client.cc +++ b/chrome/browser/ui/ash/session_controller_client.cc
@@ -35,6 +35,7 @@ #include "chrome/browser/supervised_user/supervised_user_service_factory.h" #include "chrome/browser/ui/ash/multi_user/multi_user_util.h" #include "chrome/browser/ui/browser_dialogs.h" +#include "chrome/browser/ui/managed_ui.h" #include "chrome/common/pref_names.h" #include "chromeos/assistant/buildflags.h" #include "chromeos/constants/chromeos_switches.h" @@ -102,18 +103,8 @@ session->user_info->is_ephemeral = UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user.GetAccountId()); session->user_info->has_gaia_account = user.has_gaia_account(); - if (user.GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT || - user.GetType() == user_manager::USER_TYPE_KIOSK_APP || - user.GetType() == user_manager::USER_TYPE_ARC_KIOSK_APP) { - session->user_info->is_managed = true; - } else { - session->user_info->is_managed = - (profile && - policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile) != - nullptr && - policy::ProfilePolicyConnectorFactory::GetForBrowserContext(profile) - ->IsManaged()); - } + session->user_info->should_display_managed_ui = + profile && chrome::ShouldDisplayManagedUi(profile); const AccountId& owner_id = UserManager::Get()->GetOwnerAccountId(); session->user_info->is_device_owner = owner_id.is_valid() && owner_id == user.GetAccountId();
diff --git a/chrome/browser/ui/browser_command_controller.cc b/chrome/browser/ui/browser_command_controller.cc index 0665fbf..378a33d 100644 --- a/chrome/browser/ui/browser_command_controller.cc +++ b/chrome/browser/ui/browser_command_controller.cc
@@ -12,7 +12,6 @@ #include "base/command_line.h" #include "base/debug/debugging_buildflags.h" #include "base/debug/profiler.h" -#include "base/feature_list.h" #include "base/macros.h" #include "base/metrics/user_metrics.h" #include "base/stl_util.h" @@ -44,7 +43,6 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/browser/ui/web_app_browser_controller.h" #include "chrome/browser/ui/webui/inspect_ui.h" -#include "chrome/common/chrome_features.h" #include "chrome/common/content_restriction.h" #include "chrome/common/pref_names.h" #include "chrome/common/url_constants.h" @@ -689,11 +687,7 @@ PinTab(browser_); break; case IDC_SHOW_MANAGEMENT_PAGE: { - bool link_to_management_page = base::FeatureList::IsEnabled( - features::kLinkManagedNoticeToChromeUIManagementURL); - ShowSingletonTab(browser_, - GURL(link_to_management_page ? kChromeUIManagementURL - : kManagedUiLearnMoreUrl)); + ShowSingletonTab(browser_, GURL(kChromeUIManagementURL)); break; } // Hosted App commands
diff --git a/chrome/browser/ui/settings_window_manager_browsertest_chromeos.cc b/chrome/browser/ui/settings_window_manager_browsertest_chromeos.cc index e3f58f2..436845c 100644 --- a/chrome/browser/ui/settings_window_manager_browsertest_chromeos.cc +++ b/chrome/browser/ui/settings_window_manager_browsertest_chromeos.cc
@@ -4,15 +4,8 @@ #include <stddef.h> -#include "base/bind.h" -#include "base/command_line.h" -#include "base/files/file_util.h" -#include "base/files/scoped_temp_dir.h" #include "base/macros.h" -#include "base/run_loop.h" -#include "build/build_config.h" -#include "chrome/browser/browser_process.h" -#include "chrome/browser/profiles/profile_manager.h" +#include "base/test/scoped_feature_list.h" #include "chrome/browser/ui/browser.h" #include "chrome/browser/ui/browser_finder.h" #include "chrome/browser/ui/browser_list.h" @@ -20,11 +13,10 @@ #include "chrome/browser/ui/chrome_pages.h" #include "chrome/browser/ui/settings_window_manager_chromeos.h" #include "chrome/browser/ui/settings_window_manager_observer_chromeos.h" -#include "chrome/common/chrome_switches.h" #include "chrome/common/url_constants.h" +#include "chrome/common/webui_url_constants.h" #include "chrome/test/base/in_process_browser_test.h" -#include "content/public/browser/notification_service.h" -#include "content/public/test/test_utils.h" +#include "chromeos/constants/chromeos_features.h" #include "url/gurl.h" namespace { @@ -32,8 +24,8 @@ class SettingsWindowTestObserver : public chrome::SettingsWindowManagerObserver { public: - SettingsWindowTestObserver() : browser_(NULL), new_settings_count_(0) {} - ~SettingsWindowTestObserver() override {} + SettingsWindowTestObserver() = default; + ~SettingsWindowTestObserver() override = default; void OnNewSettingsWindow(Browser* settings_browser) override { browser_ = settings_browser; @@ -44,8 +36,8 @@ size_t new_settings_count() const { return new_settings_count_; } private: - Browser* browser_; - size_t new_settings_count_; + Browser* browser_ = nullptr; + size_t new_settings_count_ = 0; DISALLOW_COPY_AND_ASSIGN(SettingsWindowTestObserver); }; @@ -55,38 +47,13 @@ class SettingsWindowManagerTest : public InProcessBrowserTest { public: SettingsWindowManagerTest() - : settings_manager_(chrome::SettingsWindowManager::GetInstance()), - test_profile_(NULL) { + : settings_manager_(chrome::SettingsWindowManager::GetInstance()) { settings_manager_->AddObserver(&observer_); } ~SettingsWindowManagerTest() override { settings_manager_->RemoveObserver(&observer_); } - Profile* CreateTestProfile() { - CHECK(!test_profile_); - - ProfileManager* profile_manager = g_browser_process->profile_manager(); - base::RunLoop run_loop; - profile_manager->CreateProfileAsync( - profile_manager->GenerateNextProfileDirectoryPath(), - base::Bind(&SettingsWindowManagerTest::ProfileInitialized, - base::Unretained(this), run_loop.QuitClosure()), - base::string16(), std::string()); - run_loop.Run(); - - return test_profile_; - } - - void ProfileInitialized(const base::Closure& closure, - Profile* profile, - Profile::CreateStatus status) { - if (status == Profile::CREATE_STATUS_INITIALIZED) { - test_profile_ = profile; - closure.Run(); - } - } - void ShowSettingsForProfile(Profile* profile) { settings_manager_->ShowChromePageForProfile( profile, GURL(chrome::kChromeUISettingsURL)); @@ -107,8 +74,6 @@ protected: chrome::SettingsWindowManager* settings_manager_; SettingsWindowTestObserver observer_; - base::ScopedTempDir temp_profile_dir_; - Profile* test_profile_; // Owned by g_browser_process->profile_manager() DISALLOW_COPY_AND_ASSIGN(SettingsWindowManagerTest); }; @@ -143,34 +108,6 @@ CloseBrowserSynchronously(settings_browser2); } -#if !defined(OS_CHROMEOS) -IN_PROC_BROWSER_TEST_F(SettingsWindowManagerTest, SettingsWindowMultiProfile) { - Profile* test_profile = CreateTestProfile(); - ASSERT_TRUE(test_profile); - - // Open a settings window. - ShowSettingsForProfile(browser()->profile()); - Browser* settings_browser = - settings_manager_->FindBrowserForProfile(browser()->profile()); - ASSERT_TRUE(settings_browser); - // Ensure the observer fired correctly. - EXPECT_EQ(1u, observer_.new_settings_count()); - EXPECT_EQ(settings_browser, observer_.browser()); - - // Open a settings window for a new profile. - ShowSettingsForProfile(test_profile); - Browser* settings_browser2 = - settings_manager_->FindBrowserForProfile(test_profile); - ASSERT_TRUE(settings_browser2); - // Ensure the observer fired correctly. - EXPECT_EQ(2u, observer_.new_settings_count()); - EXPECT_EQ(settings_browser2, observer_.browser()); - - CloseBrowserSynchronously(settings_browser); - CloseBrowserSynchronously(settings_browser2); -} -#endif - IN_PROC_BROWSER_TEST_F(SettingsWindowManagerTest, OpenChromePages) { EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); @@ -201,3 +138,32 @@ chrome::ShowAboutChrome(browser()); EXPECT_EQ(2u, chrome::GetTotalBrowserCount()); } + +IN_PROC_BROWSER_TEST_F(SettingsWindowManagerTest, SplitSettings) { + base::test::ScopedFeatureList feature_list; + feature_list.InitAndEnableFeature(chromeos::features::kSplitSettings); + EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); + + // Browser settings opens in the existing browser window. + chrome::ShowSettings(browser()); + EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); + + // OS settings opens in a new window. + settings_manager_->ShowOSSettings(browser()->profile()); + EXPECT_EQ(1u, observer_.new_settings_count()); + EXPECT_EQ(2u, chrome::GetTotalBrowserCount()); + + // Showing an OS sub-page reuses the OS settings window. + settings_manager_->ShowOSSettings(browser()->profile(), + chrome::kBluetoothSubPage); + EXPECT_EQ(1u, observer_.new_settings_count()); + EXPECT_EQ(2u, chrome::GetTotalBrowserCount()); + + // Close the settings window. + CloseNonDefaultBrowsers(); + EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); + + // Showing a browser setting sub-page reuses the browser window. + chrome::ShowSettingsSubPage(browser(), chrome::kAutofillSubPage); + EXPECT_EQ(1u, chrome::GetTotalBrowserCount()); +}
diff --git a/chrome/browser/ui/views/passwords/password_pending_view.cc b/chrome/browser/ui/views/passwords/password_pending_view.cc index 74ea2bfb..4330df6 100644 --- a/chrome/browser/ui/views/passwords/password_pending_view.cc +++ b/chrome/browser/ui/views/passwords/password_pending_view.cc
@@ -234,6 +234,7 @@ password_dropdown_ = CreatePasswordEditableCombobox(password_form, are_passwords_revealed_) .release(); + password_dropdown_->set_listener(this); password_view_button_ = CreatePasswordViewButton(this, are_passwords_revealed_).release(); @@ -290,10 +291,14 @@ void PasswordPendingView::OnContentChanged( views::EditableCombobox* editable_combobox) { - bool is_update_before = model()->IsCurrentStateUpdate(); + bool is_update_state_before = model()->IsCurrentStateUpdate(); + bool is_ok_button_enabled_before = + IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK); UpdateUsernameAndPasswordInModel(); - // May be the buttons should be updated. - if (is_update_before != model()->IsCurrentStateUpdate()) { + // Maybe the buttons should be updated. + if (is_update_state_before != model()->IsCurrentStateUpdate() || + is_ok_button_enabled_before != + IsDialogButtonEnabled(ui::DIALOG_BUTTON_OK)) { DialogModelChanged(); GetDialogClientView()->Layout(); } @@ -350,6 +355,11 @@ return l10n_util::GetStringUTF16(message); } +bool PasswordPendingView::IsDialogButtonEnabled(ui::DialogButton button) const { + return button != ui::DIALOG_BUTTON_OK || + !model()->pending_password().password_value.empty(); +} + gfx::ImageSkia PasswordPendingView::GetWindowIcon() { return gfx::ImageSkia(); }
diff --git a/chrome/browser/ui/views/passwords/password_pending_view.h b/chrome/browser/ui/views/passwords/password_pending_view.h index 194c58ac..9b4ecd64 100644 --- a/chrome/browser/ui/views/passwords/password_pending_view.h +++ b/chrome/browser/ui/views/passwords/password_pending_view.h
@@ -38,6 +38,7 @@ void ButtonPressed(views::Button* sender, const ui::Event& event) override; // views::EditableComboboxListener: + // Used for both the username and password editable comboboxes. void OnContentChanged(views::EditableCombobox* editable_combobox) override; // PasswordBubbleViewBase: @@ -46,6 +47,7 @@ views::View* GetInitiallyFocusedView() override; int GetDialogButtons() const override; base::string16 GetDialogButtonLabel(ui::DialogButton button) const override; + bool IsDialogButtonEnabled(ui::DialogButton button) const override; gfx::ImageSkia GetWindowIcon() override; bool ShouldShowWindowIcon() const override; bool ShouldShowCloseButton() const override;
diff --git a/chrome/browser/ui/views/test/view_event_test_platform_part_chromeos.cc b/chrome/browser/ui/views/test/view_event_test_platform_part_chromeos.cc index 9ef1055..ac0d181 100644 --- a/chrome/browser/ui/views/test/view_event_test_platform_part_chromeos.cc +++ b/chrome/browser/ui/views/test/view_event_test_platform_part_chromeos.cc
@@ -59,7 +59,7 @@ // it is initialized by window manager service. chromeos::PowerPolicyController::Initialize( chromeos::PowerManagerClient::Get()); - bluez::BluezDBusManager::Initialize(); + bluez::BluezDBusManager::InitializeFake(); chromeos::CrasAudioHandler::InitializeForTesting(); chromeos::NetworkHandler::Initialize();
diff --git a/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.cc b/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.cc index 836684ff..2a31b94 100644 --- a/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.cc +++ b/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.cc
@@ -22,7 +22,9 @@ WebAppProvider::Get(profile_)->set_ui_delegate(this); } -WebAppUiDelegateImpl::~WebAppUiDelegateImpl() { +WebAppUiDelegateImpl::~WebAppUiDelegateImpl() = default; + +void WebAppUiDelegateImpl::Shutdown() { WebAppProvider::Get(profile_)->set_ui_delegate(nullptr); } @@ -32,6 +34,9 @@ if (browser->profile() != profile_) continue; + if (!browser->web_app_controller()) + continue; + if (browser->web_app_controller()->GetAppId() == app_id) ++num_windows_for_app; }
diff --git a/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.h b/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.h index b45911a..a2c8547 100644 --- a/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.h +++ b/chrome/browser/ui/web_applications/web_app_ui_delegate_impl.h
@@ -20,6 +20,9 @@ explicit WebAppUiDelegateImpl(Profile* profile); ~WebAppUiDelegateImpl() override; + // KeyedService + void Shutdown() override; + // WebAppUiDelegate size_t GetNumWindowsForApp(const AppId& app_id) override;
diff --git a/chrome/browser/ui/web_applications/web_app_ui_delegate_impl_browsertest.cc b/chrome/browser/ui/web_applications/web_app_ui_delegate_impl_browsertest.cc new file mode 100644 index 0000000..1d3bd08 --- /dev/null +++ b/chrome/browser/ui/web_applications/web_app_ui_delegate_impl_browsertest.cc
@@ -0,0 +1,25 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "chrome/browser/ui/browser.h" +#include "chrome/browser/ui/web_applications/web_app_ui_delegate_impl.h" +#include "chrome/browser/web_applications/web_app.h" +#include "chrome/browser/web_applications/web_app_provider.h" +#include "chrome/test/base/in_process_browser_test.h" + +namespace web_app { + +using WebAppUiDelegateImplBrowsertest = InProcessBrowserTest; + +IN_PROC_BROWSER_TEST_F(WebAppUiDelegateImplBrowsertest, NoAppWindows) { + // Should not crash. + auto& delegate = WebAppProvider::Get(browser()->profile())->ui_delegate(); + auto* delegate_impl = WebAppUiDelegateImpl::Get(browser()->profile()); + EXPECT_EQ(&delegate, delegate_impl); + + // Zero apps on start: + EXPECT_EQ(0u, delegate.GetNumWindowsForApp(AppId())); +} + +} // namespace web_app
diff --git a/chrome/browser/ui/webui/managed_ui_handler.cc b/chrome/browser/ui/webui/managed_ui_handler.cc index 4a69e87..538636e 100644 --- a/chrome/browser/ui/webui/managed_ui_handler.cc +++ b/chrome/browser/ui/webui/managed_ui_handler.cc
@@ -7,7 +7,6 @@ #include <utility> #include "base/bind.h" -#include "base/feature_list.h" #include "base/strings/utf_string_conversions.h" #include "base/values.h" #include "chrome/browser/browser_process.h" @@ -15,9 +14,7 @@ #include "chrome/browser/policy/profile_policy_connector_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/ui/managed_ui.h" -#include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" -#include "chrome/common/url_constants.h" #include "chrome/common/webui_url_constants.h" #include "chrome/grit/generated_resources.h" #include "content/public/browser/web_ui.h" @@ -123,15 +120,10 @@ const { auto update = std::make_unique<base::DictionaryValue>(); - bool link_to_management_page = base::FeatureList::IsEnabled( - features::kLinkManagedNoticeToChromeUIManagementURL); - update->SetKey("managedByOrg", base::Value(l10n_util::GetStringFUTF16( IDS_MANAGED_BY_ORG_WITH_HYPERLINK, - base::UTF8ToUTF16(link_to_management_page - ? chrome::kChromeUIManagementURL - : chrome::kManagedUiLearnMoreUrl) + base::UTF8ToUTF16(chrome::kChromeUIManagementURL) #if defined(OS_CHROMEOS) , ui::GetChromeOSDeviceName()
diff --git a/chrome/browser/ui/webui/settings/people_handler.cc b/chrome/browser/ui/webui/settings/people_handler.cc index d069926..a28457b 100644 --- a/chrome/browser/ui/webui/settings/people_handler.cc +++ b/chrome/browser/ui/webui/settings/people_handler.cc
@@ -879,7 +879,7 @@ #if !defined(OS_CHROMEOS) // Sign out the user on desktop Chrome if they click cancel during // initial setup. - if (sync_service->IsFirstSetupInProgress()) { + if (!sync_service->GetUserSettings()->IsFirstSetupComplete()) { IdentityManagerFactory::GetForProfile(profile_) ->GetPrimaryAccountMutator() ->ClearPrimaryAccount( @@ -960,7 +960,8 @@ // The before unload dialog is only shown during the first sync setup. DCHECK(IdentityManagerFactory::GetForProfile(profile_)->HasPrimaryAccount()); syncer::SyncService* service = GetSyncService(); - DCHECK(service && service->IsFirstSetupInProgress()); + DCHECK(service && service->IsSetupInProgress() && + !service->GetUserSettings()->IsFirstSetupComplete()); base::RecordAction( base::UserMetricsAction("Signin_Signin_CancelAbortAdvancedSyncSettings")); @@ -1005,10 +1006,12 @@ sync_status->SetBoolean( "signinAllowed", profile_->GetPrefs()->GetBoolean(prefs::kSigninAllowed)); sync_status->SetBoolean("syncSystemEnabled", (service != nullptr)); - sync_status->SetBoolean("setupInProgress", - service && !disallowed_by_policy && - service->IsFirstSetupInProgress() && - identity_manager->HasPrimaryAccount()); + // TODO(crbug.com/953641): Rename "setupInProgress" to "firstSetupInProgress". + sync_status->SetBoolean( + "setupInProgress", + service && !disallowed_by_policy && service->IsSetupInProgress() && + !service->GetUserSettings()->IsFirstSetupComplete() && + identity_manager->HasPrimaryAccount()); base::string16 status_label; base::string16 link_label;
diff --git a/chrome/browser/ui/webui/settings/people_handler.h b/chrome/browser/ui/webui/settings/people_handler.h index 4a3b17fd..010e9ed3 100644 --- a/chrome/browser/ui/webui/settings/people_handler.h +++ b/chrome/browser/ui/webui/settings/people_handler.h
@@ -68,17 +68,24 @@ private: friend class PeopleHandlerTest; + friend class PeopleHandlerTest_UnifiedConsentDisabled; FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndCancel); + FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest_UnifiedConsentDisabled, + DisplayConfigureWithEngineDisabledAndCancel); FRIEND_TEST_ALL_PREFIXES( PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndCancelAfterSigninSuccess); - FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, + FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest_UnifiedConsentDisabled, DisplayConfigureWithEngineDisabledAndSigninFailed); FRIEND_TEST_ALL_PREFIXES( PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndSyncStartupCompleted); - FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, HandleSetupUIWhenSyncDisabled); + FRIEND_TEST_ALL_PREFIXES( + PeopleHandlerTest_UnifiedConsentDisabled, + DisplayConfigureWithEngineDisabledAndSyncStartupCompleted); + FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest_UnifiedConsentDisabled, + HandleSetupUIWhenSyncDisabled); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupCustomPassphraseRequired); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupEncryptAll); @@ -89,9 +96,11 @@ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupSyncEverything); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSetupSyncForAllTypesIndividually); - FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSigninOnAuthError); + FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest_UnifiedConsentDisabled, + ShowSigninOnAuthError); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSyncSetup); - FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, ShowSyncSetupWhenNotSignedIn); + FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest_UnifiedConsentDisabled, + DontShowSyncSetupWhenNotSignedIn); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, TestSyncEverything); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, TestSyncAllManually); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, TestPassphraseStillRequired); @@ -109,6 +118,8 @@ FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, AcquireSyncBlockerWhenLoadingSyncSettingsSubpage); FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest, RestartSyncAfterDashboardClear); + FRIEND_TEST_ALL_PREFIXES(PeopleHandlerTest_UnifiedConsentDisabled, + RestartSyncAfterDashboardClear); FRIEND_TEST_ALL_PREFIXES( PeopleHandlerTest, RestartSyncAfterDashboardClearWithStandaloneTransport);
diff --git a/chrome/browser/ui/webui/settings/people_handler_unittest.cc b/chrome/browser/ui/webui/settings/people_handler_unittest.cc index e659f7a..1005b55f 100644 --- a/chrome/browser/ui/webui/settings/people_handler_unittest.cc +++ b/chrome/browser/ui/webui/settings/people_handler_unittest.cc
@@ -193,7 +193,10 @@ class PeopleHandlerTest : public ChromeRenderViewHostTestHarness { public: - PeopleHandlerTest() = default; + PeopleHandlerTest( + unified_consent::UnifiedConsentFeatureState unified_consent_state = + unified_consent::UnifiedConsentFeatureState::kEnabled) + : scoped_unified_consent_(unified_consent_state) {} void SetUp() override { ChromeRenderViewHostTestHarness::SetUp(); @@ -229,6 +232,7 @@ handler_.reset(new TestingPeopleHandler(&web_ui_, profile())); handler_->AllowJavascript(); + web_ui_.set_web_contents(web_contents()); } void TearDown() override { @@ -351,6 +355,8 @@ MOCK_METHOD0(OnSetupInProgressHandleDestroyed, void()); + unified_consent::ScopedUnifiedConsent scoped_unified_consent_; + syncer::MockSyncService* mock_sync_service_; std::unique_ptr<IdentityTestEnvironmentProfileAdaptor> identity_test_env_adaptor_; @@ -358,12 +364,23 @@ TestWebUIProvider test_provider_; std::unique_ptr<TestChromeWebUIControllerFactory> test_factory_; std::unique_ptr<TestingPeopleHandler> handler_; + + DISALLOW_COPY_AND_ASSIGN(PeopleHandlerTest); }; class PeopleHandlerFirstSigninTest : public PeopleHandlerTest { std::string GetTestUser() override { return std::string(); } }; +class PeopleHandlerTest_UnifiedConsentDisabled : public PeopleHandlerTest { + public: + PeopleHandlerTest_UnifiedConsentDisabled() + : PeopleHandlerTest( + unified_consent::UnifiedConsentFeatureState::kDisabled) {} + + DISALLOW_COPY_AND_ASSIGN(PeopleHandlerTest_UnifiedConsentDisabled); +}; + #if !defined(OS_CHROMEOS) TEST_F(PeopleHandlerFirstSigninTest, DisplayBasicLogin) { // Test that the HandleStartSignin call enables JavaScript. @@ -391,7 +408,8 @@ LoginUIServiceFactory::GetForProfile(profile())->current_login_ui()); } -TEST_F(PeopleHandlerTest, ShowSyncSetupWhenNotSignedIn) { +TEST_F(PeopleHandlerTest_UnifiedConsentDisabled, + DontShowSyncSetupWhenNotSignedIn) { ON_CALL(*mock_sync_service_, GetDisableReasons()) .WillByDefault(Return(syncer::SyncService::DISABLE_REASON_NOT_SIGNED_IN)); ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsFirstSetupComplete()) @@ -409,7 +427,8 @@ // Verifies that the sync setup is terminated correctly when the // sync is disabled. -TEST_F(PeopleHandlerTest, HandleSetupUIWhenSyncDisabled) { +TEST_F(PeopleHandlerTest_UnifiedConsentDisabled, + HandleSetupUIWhenSyncDisabled) { ON_CALL(*mock_sync_service_, GetDisableReasons()) .WillByDefault( Return(syncer::SyncService::DISABLE_REASON_ENTERPRISE_POLICY)); @@ -422,9 +441,41 @@ ASSERT_FALSE(handler_->is_configuring_sync()); } +TEST_F(PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndCancel) { + ON_CALL(*mock_sync_service_, GetDisableReasons()) + .WillByDefault(Return(syncer::SyncService::DISABLE_REASON_NONE)); + ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsSyncRequested()) + .WillByDefault(Return(true)); + ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsFirstSetupComplete()) + .WillByDefault(Return(false)); + ON_CALL(*mock_sync_service_, GetTransportState()) + .WillByDefault(Return(syncer::SyncService::TransportState::INITIALIZING)); + EXPECT_CALL(*mock_sync_service_->GetMockUserSettings(), + SetSyncRequested(true)); + + // We're simulating a user setting up sync, which would cause the engine to + // kick off initialization, but not download user data types. The sync + // engine will try to download control data types (e.g encryption info), but + // that won't finish for this test as we're simulating cancelling while the + // spinner is showing. + handler_->HandleShowSetupUI(nullptr); + + EXPECT_EQ( + handler_.get(), + LoginUIServiceFactory::GetForProfile(profile())->current_login_ui()); + + EXPECT_EQ(0U, web_ui_.call_data().size()); + + handler_->CloseSyncSetup(); + EXPECT_EQ( + NULL, + LoginUIServiceFactory::GetForProfile(profile())->current_login_ui()); +} + // Verifies that the handler correctly handles a cancellation when // it is displaying the spinner to the user. -TEST_F(PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndCancel) { +TEST_F(PeopleHandlerTest_UnifiedConsentDisabled, + DisplayConfigureWithEngineDisabledAndCancel) { ON_CALL(*mock_sync_service_, GetDisableReasons()) .WillByDefault(Return(syncer::SyncService::DISABLE_REASON_NONE)); ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsSyncRequested()) @@ -450,9 +501,49 @@ ExpectSpinnerAndClose(); } +// Verifies that the handler only sends the sync pref updates once the engine is +// initialized. +TEST_F(PeopleHandlerTest, + DisplayConfigureWithEngineDisabledAndSyncStartupCompleted) { + ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsFirstSetupComplete()) + .WillByDefault(Return(false)); + ON_CALL(*mock_sync_service_, GetDisableReasons()) + .WillByDefault(Return(syncer::SyncService::DISABLE_REASON_NONE)); + ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsSyncRequested()) + .WillByDefault(Return(true)); + // Sync engine is stopped initially, and will start up. + ON_CALL(*mock_sync_service_, GetTransportState()) + .WillByDefault( + Return(syncer::SyncService::TransportState::START_DEFERRED)); + EXPECT_CALL(*mock_sync_service_->GetMockUserSettings(), + SetSyncRequested(true)); + SetDefaultExpectationsForConfigPage(); + + handler_->HandleShowSetupUI(nullptr); + + // No data is sent yet, because the engine is not initialized. + EXPECT_EQ(0U, web_ui_.call_data().size()); + + Mock::VerifyAndClearExpectations(mock_sync_service_); + // Now, act as if the SyncService has started up. + SetDefaultExpectationsForConfigPage(); + ON_CALL(*mock_sync_service_, GetTransportState()) + .WillByDefault(Return(syncer::SyncService::TransportState::ACTIVE)); + NotifySyncStateChanged(); + + // Updates for the sync status and the sync prefs are sent. + EXPECT_EQ(2U, web_ui_.call_data().size()); + + const base::DictionaryValue* dictionary = ExpectSyncPrefsChanged(); + CheckBool(dictionary, "syncAllDataTypes", true); + CheckBool(dictionary, "encryptAllDataAllowed", true); + CheckBool(dictionary, "encryptAllData", false); + CheckBool(dictionary, "passphraseRequired", false); +} + // Verifies that the handler correctly transitions from showing the spinner // to showing a configuration page when sync setup completes successfully. -TEST_F(PeopleHandlerTest, +TEST_F(PeopleHandlerTest_UnifiedConsentDisabled, DisplayConfigureWithEngineDisabledAndSyncStartupCompleted) { ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsFirstSetupComplete()) .WillByDefault(Return(false)); @@ -490,10 +581,7 @@ } // Verifies the case where the user cancels after the sync engine has -// initialized (meaning it already transitioned from the spinner to a proper -// configuration page, tested by -// DisplayConfigureWithEngineDisabledAndSyncStartupCompleted), but before the -// user has continued on. +// initialized. TEST_F(PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndCancelAfterSigninSuccess) { ON_CALL(*mock_sync_service_, GetDisableReasons()) @@ -510,6 +598,9 @@ SetDefaultExpectationsForConfigPage(); handler_->HandleShowSetupUI(nullptr); + // Sync engine becomes active, so |handler_| is notified. + NotifySyncStateChanged(); + // It's important to tell sync the user cancelled the setup flow before we // tell it we're through with the setup progress. testing::InSequence seq; @@ -522,7 +613,8 @@ LoginUIServiceFactory::GetForProfile(profile())->current_login_ui()); } -TEST_F(PeopleHandlerTest, DisplayConfigureWithEngineDisabledAndSigninFailed) { +TEST_F(PeopleHandlerTest_UnifiedConsentDisabled, + DisplayConfigureWithEngineDisabledAndSigninFailed) { ON_CALL(*mock_sync_service_, GetDisableReasons()) .WillByDefault(Return(syncer::SyncService::DISABLE_REASON_NONE)); ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsSyncRequested()) @@ -572,6 +664,36 @@ }); handler_->HandleShowSetupUI(nullptr); + + // Since the engine is not initialized yet, no data should be sent. + EXPECT_EQ(0U, web_ui_.call_data().size()); +} + +TEST_F(PeopleHandlerTest_UnifiedConsentDisabled, + RestartSyncAfterDashboardClear) { + // Clearing sync from the dashboard results in DISABLE_REASON_USER_CHOICE + // being set. + ON_CALL(*mock_sync_service_, GetDisableReasons()) + .WillByDefault(Return(syncer::SyncService::DISABLE_REASON_USER_CHOICE)); + ON_CALL(*mock_sync_service_, GetTransportState()) + .WillByDefault(Return(syncer::SyncService::TransportState::DISABLED)); + + // Attempting to open the setup UI should restart sync. + EXPECT_CALL(*mock_sync_service_->GetMockUserSettings(), + SetSyncRequested(true)) + .WillOnce([&](bool) { + // SetSyncRequested(true) clears DISABLE_REASON_USER_CHOICE, and + // immediately starts initializing the engine. + ON_CALL(*mock_sync_service_, GetDisableReasons()) + .WillByDefault(Return(syncer::SyncService::DISABLE_REASON_NONE)); + ON_CALL(*mock_sync_service_->GetMockUserSettings(), IsSyncRequested()) + .WillByDefault(Return(true)); + ON_CALL(*mock_sync_service_, GetTransportState()) + .WillByDefault( + Return(syncer::SyncService::TransportState::INITIALIZING)); + }); + + handler_->HandleShowSetupUI(nullptr); // Since the engine is not initialized yet, we should get a spinner. ExpectPageStatusChanged(PeopleHandler::kSpinnerPageStatus); } @@ -621,7 +743,6 @@ TEST_F(PeopleHandlerTest, AcquireSyncBlockerWhenLoadingSyncSettingsSubpage) { // We set up a factory override here to prevent a new web ui from being // created when we navigate to a page that would normally create one. - web_ui_.set_web_contents(web_contents()); test_factory_ = std::make_unique<TestChromeWebUIControllerFactory>(); test_factory_->AddFactoryOverride( chrome::GetSettingsUrl(chrome::kSyncSetupSubPage).host(), @@ -892,7 +1013,7 @@ } // We do not display signin on chromeos in the case of auth error. -TEST_F(PeopleHandlerTest, ShowSigninOnAuthError) { +TEST_F(PeopleHandlerTest_UnifiedConsentDisabled, ShowSigninOnAuthError) { // Initialize the system to a signed in state, but with an auth error. ON_CALL(*mock_sync_service_, GetAuthError()) .WillByDefault(Return(GoogleServiceAuthError(
diff --git a/chrome/browser/unified_consent/unified_consent_browsertest.cc b/chrome/browser/unified_consent/unified_consent_browsertest.cc index 4b21c680..31cfa85 100644 --- a/chrome/browser/unified_consent/unified_consent_browsertest.cc +++ b/chrome/browser/unified_consent/unified_consent_browsertest.cc
@@ -139,7 +139,8 @@ // Second client: Start sync setup. StartSyncSetup(1); - ASSERT_TRUE(GetSyncService(1)->IsFirstSetupInProgress()); + ASSERT_TRUE(GetSyncService(1)->IsSetupInProgress()); + ASSERT_FALSE(GetSyncService(1)->GetUserSettings()->IsFirstSetupComplete()); // Second client: Turn on pref B while sync setup is in progress. GetProfile(1)->GetPrefs()->SetBoolean(pref_B, true);
diff --git a/chrome/browser/web_applications/bookmark_apps/policy/web_app_policy_manager_unittest.cc b/chrome/browser/web_applications/bookmark_apps/policy/web_app_policy_manager_unittest.cc index ddfa73a..5fb923e 100644 --- a/chrome/browser/web_applications/bookmark_apps/policy/web_app_policy_manager_unittest.cc +++ b/chrome/browser/web_applications/bookmark_apps/policy/web_app_policy_manager_unittest.cc
@@ -51,7 +51,7 @@ InstallOptions GetWindowedInstallOptions() { InstallOptions options(GURL(kWindowedUrl), LaunchContainer::kWindow, InstallSource::kExternalPolicy); - options.add_to_applications_menu = false; + options.add_to_applications_menu = true; options.add_to_desktop = false; options.add_to_quick_launch_bar = false; options.install_placeholder = true; @@ -71,7 +71,7 @@ InstallOptions GetTabbedInstallOptions() { InstallOptions options(GURL(kTabbedUrl), LaunchContainer::kTab, InstallSource::kExternalPolicy); - options.add_to_applications_menu = false; + options.add_to_applications_menu = true; options.add_to_desktop = false; options.add_to_quick_launch_bar = false; options.install_placeholder = true; @@ -89,7 +89,7 @@ InstallOptions GetNoContainerInstallOptions() { InstallOptions options(GURL(kNoContainerUrl), LaunchContainer::kTab, InstallSource::kExternalPolicy); - options.add_to_applications_menu = false; + options.add_to_applications_menu = true; options.add_to_desktop = false; options.add_to_quick_launch_bar = false; options.install_placeholder = true; @@ -107,7 +107,7 @@ InstallOptions GetCreateDesktopShorcutDefaultInstallOptions() { InstallOptions options(GURL(kNoContainerUrl), LaunchContainer::kTab, InstallSource::kExternalPolicy); - options.add_to_applications_menu = false; + options.add_to_applications_menu = true; options.add_to_desktop = false; options.add_to_quick_launch_bar = false; options.install_placeholder = true; @@ -126,7 +126,7 @@ InstallOptions GetCreateDesktopShorcutFalseInstallOptions() { InstallOptions options(GURL(kNoContainerUrl), LaunchContainer::kTab, InstallSource::kExternalPolicy); - options.add_to_applications_menu = false; + options.add_to_applications_menu = true; options.add_to_desktop = false; options.add_to_quick_launch_bar = false; options.install_placeholder = true; @@ -450,4 +450,37 @@ EXPECT_EQ(expected_options_list, install_options_list); } +TEST_F(WebAppPolicyManagerTest, SayRefreshTwoTimesQuickly) { + policy_manager()->Start(); + base::RunLoop().RunUntilIdle(); + // Add an app. + { + base::Value list(base::Value::Type::LIST); + list.GetList().push_back(GetWindowedItem()); + profile()->GetPrefs()->Set(prefs::kWebAppInstallForceList, std::move(list)); + } + // Before it gets installed, set a policy that uninstalls it. + { + base::Value list(base::Value::Type::LIST); + list.GetList().push_back(GetTabbedItem()); + profile()->GetPrefs()->Set(prefs::kWebAppInstallForceList, std::move(list)); + } + base::RunLoop().RunUntilIdle(); + + // Both apps should have been installed. + std::vector<InstallOptions> expected_options_list; + expected_options_list.push_back(GetWindowedInstallOptions()); + expected_options_list.push_back(GetTabbedInstallOptions()); + + const auto& install_options_list = pending_app_manager()->install_requests(); + EXPECT_EQ(expected_options_list, install_options_list); + EXPECT_EQ(std::vector<GURL>({GURL(kWindowedUrl)}), + pending_app_manager()->uninstall_requests()); + + // There should be exactly 1 app remaining. + EXPECT_EQ(1u, pending_app_manager()->installed_apps().size()); + EXPECT_EQ(InstallSource::kExternalPolicy, + pending_app_manager()->installed_apps().at(GURL(kTabbedUrl))); +} + } // namespace web_app
diff --git a/chrome/browser/web_applications/components/pending_app_manager.cc b/chrome/browser/web_applications/components/pending_app_manager.cc index 5bca790..d9a9248 100644 --- a/chrome/browser/web_applications/components/pending_app_manager.cc +++ b/chrome/browser/web_applications/components/pending_app_manager.cc
@@ -41,6 +41,8 @@ [&install_source](const InstallOptions& install_options) { return install_options.install_source == install_source; })); + // Only one concurrent SynchronizeInstalledApps() expected per InstallSource. + DCHECK(!base::ContainsKey(synchronize_requests_, install_source)); std::vector<GURL> current_urls = GetInstalledAppUrls(install_source); std::sort(current_urls.begin(), current_urls.end()); @@ -62,11 +64,6 @@ return; } - // TODO(calamity): Move this to the top of the function once PolicyPrefsTest - // no longer crashes because of it. - // Only one concurrent SynchronizeInstalledApps() expected per InstallSource. - DCHECK(!base::ContainsKey(synchronize_requests_, install_source)); - // Add the callback to a map and call once all installs/uninstalls finish. synchronize_requests_.insert_or_assign( install_source,
diff --git a/chrome/browser/web_applications/components/policy/web_app_policy_manager.cc b/chrome/browser/web_applications/components/policy/web_app_policy_manager.cc index 168b242..f6efb41d 100644 --- a/chrome/browser/web_applications/components/policy/web_app_policy_manager.cc +++ b/chrome/browser/web_applications/components/policy/web_app_policy_manager.cc
@@ -58,7 +58,7 @@ if (create_desktop_shortcut) create_shortcut = create_desktop_shortcut->GetBool(); - install_options->add_to_applications_menu = create_shortcut; + install_options->add_to_applications_menu = true; install_options->add_to_desktop = create_shortcut; // It's not yet clear how pinning to shelf will work for policy installed @@ -129,6 +129,16 @@ } void WebAppPolicyManager::RefreshPolicyInstalledApps() { + // If this is called again while in progress, we will run it again once the + // |SynchronizeInstalledApps| call is finished. + if (is_refreshing_) { + needs_refresh_ = true; + return; + } + + is_refreshing_ = true; + needs_refresh_ = false; + const base::Value* web_apps = pref_service_->GetList(prefs::kWebAppInstallForceList); std::vector<InstallOptions> install_options_list; @@ -150,7 +160,15 @@ pending_app_manager_->SynchronizeInstalledApps( std::move(install_options_list), InstallSource::kExternalPolicy, - base::DoNothing()); + base::BindOnce(&WebAppPolicyManager::OnAppsSynchronized, + weak_ptr_factory_.GetWeakPtr())); +} + +void WebAppPolicyManager::OnAppsSynchronized( + PendingAppManager::SynchronizeResult result) { + is_refreshing_ = false; + if (needs_refresh_) + RefreshPolicyInstalledApps(); } } // namespace web_app
diff --git a/chrome/browser/web_applications/components/policy/web_app_policy_manager.h b/chrome/browser/web_applications/components/policy/web_app_policy_manager.h index 5bb4cfd..1f67c42 100644 --- a/chrome/browser/web_applications/components/policy/web_app_policy_manager.h +++ b/chrome/browser/web_applications/components/policy/web_app_policy_manager.h
@@ -43,6 +43,7 @@ void InitChangeRegistrarAndRefreshPolicyInstalledApps(); void RefreshPolicyInstalledApps(); + void OnAppsSynchronized(PendingAppManager::SynchronizeResult result); Profile* profile_; PrefService* pref_service_; @@ -52,6 +53,9 @@ PrefChangeRegistrar pref_change_registrar_; + bool is_refreshing_ = false; + bool needs_refresh_ = false; + base::WeakPtrFactory<WebAppPolicyManager> weak_ptr_factory_{this}; DISALLOW_COPY_AND_ASSIGN(WebAppPolicyManager);
diff --git a/chrome/browser/web_applications/components/test_pending_app_manager.h b/chrome/browser/web_applications/components/test_pending_app_manager.h index bfba4686..04e59da 100644 --- a/chrome/browser/web_applications/components/test_pending_app_manager.h +++ b/chrome/browser/web_applications/components/test_pending_app_manager.h
@@ -39,6 +39,10 @@ deduped_uninstall_count_ = 0; } + const std::map<GURL, InstallSource>& installed_apps() const { + return installed_apps_; + } + void SimulatePreviouslyInstalledApp(const GURL& url, InstallSource install_source);
diff --git a/chrome/browser/web_applications/web_app_install_manager.cc b/chrome/browser/web_applications/web_app_install_manager.cc index ad4473b..c2247ae 100644 --- a/chrome/browser/web_applications/web_app_install_manager.cc +++ b/chrome/browser/web_applications/web_app_install_manager.cc
@@ -37,6 +37,8 @@ WebappInstallSource install_source, WebAppInstallDialogCallback dialog_callback, OnceInstallCallback callback) { + DCHECK(AreWebAppsUserInstallable(profile())); + auto task = std::make_unique<WebAppInstallTask>(profile(), install_finalizer_); task->InstallWebAppFromManifest(
diff --git a/chrome/browser/web_applications/web_app_provider.h b/chrome/browser/web_applications/web_app_provider.h index a8afba6..c3b7d81 100644 --- a/chrome/browser/web_applications/web_app_provider.h +++ b/chrome/browser/web_applications/web_app_provider.h
@@ -115,7 +115,7 @@ std::unique_ptr<WebAppDatabaseFactory> database_factory_; std::unique_ptr<WebAppDatabase> database_; std::unique_ptr<WebAppIconManager> icon_manager_; - WebAppUiDelegate* ui_delegate_; + WebAppUiDelegate* ui_delegate_ = nullptr; // New generalized subsystems: std::unique_ptr<AppRegistrar> registrar_;
diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc index a114c392..54392db3f 100644 --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc
@@ -542,10 +542,6 @@ #if !defined(OS_ANDROID) const base::Feature kShowManagedUi{"ShowManagedUi", base::FEATURE_ENABLED_BY_DEFAULT}; - -const base::Feature kLinkManagedNoticeToChromeUIManagementURL{ - "LinkManagedNoticeToChromeUIManagementURL", - base::FEATURE_DISABLED_BY_DEFAULT}; #endif #if defined(OS_ANDROID)
diff --git a/chrome/common/chrome_features.h b/chrome/common/chrome_features.h index 9f3fdadf..0f5b015 100644 --- a/chrome/common/chrome_features.h +++ b/chrome/common/chrome_features.h
@@ -346,8 +346,6 @@ #if !defined(OS_ANDROID) COMPONENT_EXPORT(CHROME_FEATURES) extern const base::Feature kShowManagedUi; -COMPONENT_EXPORT(CHROME_FEATURES) -extern const base::Feature kLinkManagedNoticeToChromeUIManagementURL; #endif #if defined(OS_ANDROID)
diff --git a/chrome/common/pref_names.cc b/chrome/common/pref_names.cc index a48eed4..f647df5 100644 --- a/chrome/common/pref_names.cc +++ b/chrome/common/pref_names.cc
@@ -1735,12 +1735,6 @@ const char kCertRevocationCheckingRequiredLocalAnchors[] = "ssl.rev_checking.required_for_local_anchors"; -// Boolean that specifies whether to allow certificates from the Legacy -// Symantec Infrastructure, disabling the mitigations documented in -// https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html -const char kCertEnableSymantecLegacyInfrastructure[] = - "ssl.enable_symantec_legacy_infrastructure"; - // String specifying the minimum TLS version to negotiate. Supported values // are "tls1", "tls1.1", "tls1.2", "tls1.3". const char kSSLVersionMin[] = "ssl.version_min";
diff --git a/chrome/common/pref_names.h b/chrome/common/pref_names.h index a21019b..22230a613 100644 --- a/chrome/common/pref_names.h +++ b/chrome/common/pref_names.h
@@ -701,7 +701,6 @@ extern const char kCertRevocationCheckingEnabled[]; extern const char kCertRevocationCheckingRequiredLocalAnchors[]; -extern const char kCertEnableSymantecLegacyInfrastructure[]; extern const char kSSLVersionMin[]; extern const char kSSLVersionMax[]; extern const char kCipherSuiteBlacklist[];
diff --git a/chrome/renderer/extensions/extension_localization_peer.cc b/chrome/renderer/extensions/extension_localization_peer.cc index 1cae6d6..403fd48 100644 --- a/chrome/renderer/extensions/extension_localization_peer.cc +++ b/chrome/renderer/extensions/extension_localization_peer.cc
@@ -19,23 +19,6 @@ #include "net/base/net_errors.h" #include "net/http/http_response_headers.h" -namespace { - -class StringData final : public content::RequestPeer::ReceivedData { - public: - explicit StringData(const std::string& data) : data_(data) {} - - const char* payload() override { return data_.data(); } - int length() override { return data_.size(); } - - private: - const std::string data_; - - DISALLOW_COPY_AND_ASSIGN(StringData); -}; - -} // namespace - ExtensionLocalizationPeer::DataPipeState::DataPipeState() : source_watcher_(FROM_HERE, mojo::SimpleWatcher::ArmingPolicy::MANUAL), destination_watcher_(FROM_HERE, @@ -101,10 +84,6 @@ data_pipe_state_.source_watcher_.ArmOrNotify(); } -void ExtensionLocalizationPeer::OnReceivedData(std::unique_ptr<ReceivedData>) { - NOTREACHED(); -} - void ExtensionLocalizationPeer::OnTransferSizeUpdated(int transfer_size_diff) { original_peer_->OnTransferSizeUpdated(transfer_size_diff); }
diff --git a/chrome/renderer/extensions/extension_localization_peer.h b/chrome/renderer/extensions/extension_localization_peer.h index 21ee03a..b6f6783 100644 --- a/chrome/renderer/extensions/extension_localization_peer.h +++ b/chrome/renderer/extensions/extension_localization_peer.h
@@ -59,7 +59,6 @@ void OnReceivedResponse(const network::ResourceResponseInfo& info) override; void OnStartLoadingResponseBody( mojo::ScopedDataPipeConsumerHandle body) override; - void OnReceivedData(std::unique_ptr<ReceivedData> data) override; void OnTransferSizeUpdated(int transfer_size_diff) override; void OnCompletedRequest( const network::URLLoaderCompletionStatus& status) override;
diff --git a/chrome/renderer/extensions/extension_localization_peer_unittest.cc b/chrome/renderer/extensions/extension_localization_peer_unittest.cc index fc5412e..dd3b3b1 100644 --- a/chrome/renderer/extensions/extension_localization_peer_unittest.cc +++ b/chrome/renderer/extensions/extension_localization_peer_unittest.cc
@@ -14,7 +14,6 @@ #include "base/macros.h" #include "base/run_loop.h" #include "base/test/scoped_task_environment.h" -#include "content/public/renderer/fixed_received_data.h" #include "extensions/common/message_bundle.h" #include "ipc/ipc_sender.h" #include "ipc/ipc_sync_message.h" @@ -86,9 +85,6 @@ base::Unretained(this))); } MOCK_METHOD2(OnDownloadedData, void(int len, int encoded_data_length)); - void OnReceivedData(std::unique_ptr<RequestPeer::ReceivedData>) override { - NOTREACHED(); - } MOCK_METHOD1(OnReceivedDataInternal, void(std::string data)); MOCK_METHOD1(OnTransferSizeUpdated, void(int transfer_size_diff)); MOCK_METHOD1(OnCompletedRequest,
diff --git a/chrome/renderer/security_filter_peer.cc b/chrome/renderer/security_filter_peer.cc index c87308c..5ce0a5f0 100644 --- a/chrome/renderer/security_filter_peer.cc +++ b/chrome/renderer/security_filter_peer.cc
@@ -67,10 +67,6 @@ NOTREACHED(); } -void SecurityFilterPeer::OnReceivedData(std::unique_ptr<ReceivedData> data) { - NOTREACHED(); -} - void SecurityFilterPeer::OnTransferSizeUpdated(int transfer_size_diff) { NOTREACHED(); }
diff --git a/chrome/renderer/security_filter_peer.h b/chrome/renderer/security_filter_peer.h index f69e224..b6f733b 100644 --- a/chrome/renderer/security_filter_peer.h +++ b/chrome/renderer/security_filter_peer.h
@@ -38,7 +38,6 @@ void OnReceivedResponse(const network::ResourceResponseInfo& info) override; void OnStartLoadingResponseBody( mojo::ScopedDataPipeConsumerHandle body) override; - void OnReceivedData(std::unique_ptr<ReceivedData> data) override; void OnTransferSizeUpdated(int transfer_size_diff) override; void OnCompletedRequest( const network::URLLoaderCompletionStatus& status) override;
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn index b72da29..21760ed 100644 --- a/chrome/test/BUILD.gn +++ b/chrome/test/BUILD.gn
@@ -608,6 +608,7 @@ "../browser/autofill/content_autofill_driver_browsertest.cc", "../browser/autofill/form_structure_browsertest.cc", "../browser/background_fetch/background_fetch_browsertest.cc", + "../browser/background_sync/background_sync_browsertest.cc", "../browser/background_sync/background_sync_metrics_browsertest.cc", "../browser/banners/app_banner_manager_browsertest.cc", "../browser/banners/app_banner_manager_browsertest_base.cc", @@ -1038,6 +1039,7 @@ "../browser/ui/views/webauthn/authenticator_dialog_view_browsertest.cc", "../browser/ui/views/webview_accessibility_browsertest.cc", "../browser/ui/web_applications/bookmark_app_browsertest.cc", + "../browser/ui/web_applications/web_app_ui_delegate_impl_browsertest.cc", "../browser/ui/webauthn/authenticator_dialog_browsertest.cc", "../browser/ui/webui/bookmarks/bookmarks_browsertest.cc", "../browser/ui/webui/bookmarks/bookmarks_browsertest.h", @@ -5042,6 +5044,9 @@ ] configs += [ "//build/config:precompiled_headers" ] + if (is_linux && !is_component_build) { + configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ] + } data = [ "data/",
diff --git a/chrome/test/chromedriver/test/test_expectations b/chrome/test/chromedriver/test/test_expectations index c1477264..c6368da 100644 --- a/chrome/test/chromedriver/test/test_expectations +++ b/chrome/test/chromedriver/test/test_expectations
@@ -38,22 +38,18 @@ 'FormHandlingTest.testShouldNotBeAbleToSubmitAFormThatDoesNotExist', 'PositionAndSizeTest.testShouldGetCoordinatesInViewPortOfAnElementInAFrame', 'PositionAndSizeTest.testShouldGetCoordinatesInViewPortOfAnElementInANestedFrame', - 'BasicKeyboardInterfaceTest.testSelectionSelectBySymbol', - 'BasicKeyboardInterfaceTest.testSelectionSelectByWord', - 'BasicMouseInterfaceTest.testMovingMouseToRelativeElementOffset', - 'BasicMouseInterfaceTest.testMovingMouseToRelativeZeroElementOffset', - 'BasicMouseInterfaceTest.testCanMoveOverAndOutOfAnElement', - 'BasicMouseInterfaceTest.testMoveMouseByOffsetOverAndOutOfAnElement', - 'CombinedInputActionsTest.testClickAfterMoveToAnElementWithAnOffsetShouldUseLastMousePosition', - 'CombinedInputActionsTest.testChordControlCutAndPaste', 'DragAndDropTest.testDragAndDropElementWithOffsetInScrolledDiv', 'DragAndDropTest.canDragAnElementNotVisibleInTheCurrentViewportDueToAParentOverflow', 'LocationContextTest.testShouldSetAndGetLatitude', 'LocationContextTest.testShouldSetAndGetLongitude', + + # https://bugs.chromium.org/p/chromedriver/issues/detail?id=1960 + 'CombinedInputActionsTest.testChordControlCutAndPaste', ] _READY_TO_RUN_FILTER = [ # marked as not yet implemented with chrome but already works + 'ProxySettingTest.canUsePACThatOnlyProxiesCertainHosts', ] _OS_NEGATIVE_FILTER = {} @@ -198,7 +194,6 @@ 'CorrectEventFiringTest.testShouldFireTwoClickEventsWhenClickingOnALabel', 'CorrectEventFiringTest.testShouldIssueClickEvents', 'CorrectEventFiringTest.testShouldFireMouseMoveEventWhenClicking', - 'CombinedInputActionsTest.testChordControlCutAndPaste', 'BasicKeyboardInterfaceTest.testSendingKeysWithShiftPressed', 'BasicKeyboardInterfaceTest.testBasicKeyboardInputOnActiveElement', 'BasicKeyboardInterfaceTest.testSendingKeyUp', @@ -224,6 +219,9 @@ # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2697 'CorrectEventFiringTest.testShouldEmitClickEventWhenClickingOnATextInputElement', + + # https://bugs.chromium.org/p/chromedriver/issues/detail?id=2860 + 'UploadTest.testUploadingWithInvisibleFileInput', ] _OS_NEGATIVE_FILTER['android:chrome_stable'] = (
diff --git a/chrome/test/data/background_sync/background_sync_browsertest.html b/chrome/test/data/background_sync/background_sync_browsertest.html new file mode 100644 index 0000000..3365847 --- /dev/null +++ b/chrome/test/data/background_sync/background_sync_browsertest.html
@@ -0,0 +1,12 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8" /> + <title>BackgroundSyncBrowserTest helper page</title> + <script src="../result_queue.js"></script> + <script src="background_sync_browsertest.js"></script> + </head> + <body> + <!-- Logic located in background_sync_browsertest.js. --> + </body> +</html>
diff --git a/chrome/test/data/background_sync/background_sync_browsertest.js b/chrome/test/data/background_sync/background_sync_browsertest.js new file mode 100644 index 0000000..8530028 --- /dev/null +++ b/chrome/test/data/background_sync/background_sync_browsertest.js
@@ -0,0 +1,29 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +function RegisterServiceWorker() { + navigator.serviceWorker.register('background_sync_service_worker.js') + .then(() => { + sendResultToTest('ok - service worker registered'); + }).catch(sendErrorToTest); +} + +function hasTag(tag) { + navigator.serviceWorker.ready + .then(swRegistration => swRegistration.sync.getTags()) + .then(tags => { + if (tags.indexOf(tag) >= 0) { + sendResultToTest('ok - ' + tag + ' found'); + } else { + sendResultToTest('error - ' + tag + ' not found'); + } + }) + .catch(sendErrorToTest); +} + +window.addEventListener('beforeunload', event => { + navigator.serviceWorker.ready.then(async swRegistration => { + return await swRegistration.sync.register('test'); + }); +});
diff --git a/chrome/test/data/background_sync/background_sync_service_worker.js b/chrome/test/data/background_sync/background_sync_service_worker.js new file mode 100644 index 0000000..5aacb87 --- /dev/null +++ b/chrome/test/data/background_sync/background_sync_service_worker.js
@@ -0,0 +1,14 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +'use strict'; + +// Service Worker initialization listeners. +self.addEventListener('install', e => e.waitUntil(skipWaiting())); +self.addEventListener('activate', e => e.waitUntil(clients.claim())); + +self.addEventListener('sync', e => { + e.waitUntil(fetch( + '/background_sync/background_sync_browsertest.html?syncreceived')); +});
diff --git a/chrome/test/data/policy/policy_test_cases.json b/chrome/test/data/policy/policy_test_cases.json index fd24a0dae..58baa5e 100644 --- a/chrome/test/data/policy/policy_test_cases.json +++ b/chrome/test/data/policy/policy_test_cases.json
@@ -874,13 +874,7 @@ }, "EnableSymantecLegacyInfrastructure": { - "os": ["win", "linux", "mac", "chromeos", "android"], - "test_policy": { "EnableSymantecLegacyInfrastructure": true }, - "pref_mappings": [ - { "pref": "ssl.enable_symantec_legacy_infrastructure", - "local_state": true - } - ] + "note": "This policy is deprecated and removed since Chrome 75." }, "AuthSchemes": {
diff --git a/chrome/test/data/webui/settings/settings_main_test.js b/chrome/test/data/webui/settings/settings_main_test.js index 04a5c19..31b31e0 100644 --- a/chrome/test/data/webui/settings/settings_main_test.js +++ b/chrome/test/data/webui/settings/settings_main_test.js
@@ -109,40 +109,6 @@ }); }); - function showManagedHeader() { - return settingsMain.showManagedHeader_( - settingsMain.inSearchMode_, settingsMain.showingSubpage_); - } - - test('managed header hides when searching', function() { - Polymer.dom.flush(); - - assertTrue(showManagedHeader()); - - searchManager.setMatchesFound(false); - return settingsMain.searchContents('Query1') - .then(() => { - assertFalse(showManagedHeader()); - - searchManager.setMatchesFound(true); - return settingsMain.searchContents('Query2'); - }) - .then(() => { - assertFalse(showManagedHeader()); - }); - }); - - test('managed header hides when showing subpage', function() { - Polymer.dom.flush(); - - assertTrue(showManagedHeader()); - - const basicPage = settingsMain.$$('settings-basic-page'); - basicPage.fire('subpage-expand', {}); - - assertFalse(showManagedHeader()); - }); - /** @return {!HTMLElement} */ function getToggleContainer() { const page = settingsMain.$$('settings-basic-page');
diff --git a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc index 82ca8de..b142b3d 100644 --- a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc +++ b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.cc
@@ -9,6 +9,7 @@ #include "base/command_line.h" #include "base/fuchsia/service_directory_client.h" +#include "base/memory/writable_shared_memory_region.h" #include "base/time/time.h" #include "chromecast/base/chromecast_switches.h" #include "media/base/audio_sample_types.h" @@ -104,7 +105,7 @@ DCHECK_EQ(data_size % channels_, 0); // Allocate payload buffer if necessary. - if (!payload_buffer_.mapped_size() && !InitializePayloadBuffer()) + if (!payload_buffer_.IsValid() && !InitializePayloadBuffer()) return false; // If Write() was called for the current playback position then assume that @@ -120,11 +121,11 @@ reference_time_ = base::TimeTicks(); size_t packet_size = data_size * sizeof(float); - if (payload_buffer_pos_ + packet_size > payload_buffer_.mapped_size()) { + if (payload_buffer_pos_ + packet_size > payload_buffer_.size()) { payload_buffer_pos_ = 0; } - DCHECK_LE(payload_buffer_pos_ + data_size, payload_buffer_.mapped_size()); + DCHECK_LE(payload_buffer_pos_ + data_size, payload_buffer_.size()); memcpy(reinterpret_cast<uint8_t*>(payload_buffer_.memory()) + payload_buffer_pos_, data, packet_size); @@ -184,14 +185,18 @@ bool MixerOutputStreamFuchsia::InitializePayloadBuffer() { size_t buffer_size = GetMinBufferSize(); - if (!payload_buffer_.CreateAndMapAnonymous(buffer_size)) { + auto region = base::WritableSharedMemoryRegion::Create(buffer_size); + payload_buffer_ = region.Map(); + if (!payload_buffer_.IsValid()) { LOG(WARNING) << "Failed to allocate VMO of size " << buffer_size; return false; } payload_buffer_pos_ = 0; audio_renderer_->AddPayloadBuffer( - kBufferId, zx::vmo(payload_buffer_.handle().Duplicate().GetHandle())); + kBufferId, base::WritableSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)) + .PassPlatformHandle()); return true; } @@ -215,9 +220,9 @@ // lated in PumpSamples(). This is necessary because VMO allocation may fail // and it's not possible to report that error here - OnMinLeadTimeChanged() // may be invoked before Start(). - if (payload_buffer_.mapped_size() > 0 && - GetMinBufferSize() > payload_buffer_.mapped_size()) { - payload_buffer_.Unmap(); + if (payload_buffer_.IsValid() && + GetMinBufferSize() > payload_buffer_.size()) { + payload_buffer_ = {}; } }
diff --git a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h index 3460a4e..3241c4f 100644 --- a/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h +++ b/chromecast/media/cma/backend/fuchsia/mixer_output_stream_fuchsia.h
@@ -7,7 +7,7 @@ #include <fuchsia/media/cpp/fidl.h> -#include "base/memory/shared_memory.h" +#include "base/memory/shared_memory_mapping.h" #include "base/time/time.h" #include "chromecast/public/media/mixer_output_stream.h" @@ -50,7 +50,7 @@ // Audio renderer connection. fuchsia::media::AudioRendererPtr audio_renderer_; - base::SharedMemory payload_buffer_; + base::WritableSharedMemoryMapping payload_buffer_; size_t payload_buffer_pos_ = 0; // Set only while stream is playing.
diff --git a/chromeos/constants/chromeos_switches.cc b/chromeos/constants/chromeos_switches.cc index 567b51e0..06ee0cc 100644 --- a/chromeos/constants/chromeos_switches.cc +++ b/chromeos/constants/chromeos_switches.cc
@@ -204,10 +204,6 @@ // Disables ARC Opt-in verification process and ARC is enabled by default. const char kDisableArcOptInVerification[] = "disable-arc-opt-in-verification"; -// Disables bypass proxy for captive portal authorization. -const char kDisableCaptivePortalBypassProxy[] = - "disable-captive-portal-bypass-proxy"; - // Disables the Chrome OS demo. const char kDisableDemoMode[] = "disable-demo-mode";
diff --git a/chromeos/constants/chromeos_switches.h b/chromeos/constants/chromeos_switches.h index 6fa9fee..f60117e 100644 --- a/chromeos/constants/chromeos_switches.h +++ b/chromeos/constants/chromeos_switches.h
@@ -67,8 +67,6 @@ COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kDisableArcDataWipe[]; COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kDisableArcOptInVerification[]; -COMPONENT_EXPORT(CHROMEOS_CONSTANTS) -extern const char kDisableCaptivePortalBypassProxy[]; COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kDisableDemoMode[]; COMPONENT_EXPORT(CHROMEOS_CONSTANTS) extern const char kDisableDeviceDisabling[];
diff --git a/components/autofill/core/browser/form_structure.cc b/components/autofill/core/browser/form_structure.cc index 7084fdc7..c2af03a 100644 --- a/components/autofill/core/browser/form_structure.cc +++ b/components/autofill/core/browser/form_structure.cc
@@ -342,6 +342,7 @@ void EncodePasswordAttributesVote( const std::pair<PasswordAttribute, bool>& password_attributes_vote, const size_t password_length_vote, + const int password_symbol_vote, AutofillUploadContents* upload) { switch (password_attributes_vote.first) { case PasswordAttribute::kHasLowercaseLetter: @@ -357,6 +358,8 @@ break; case PasswordAttribute::kHasSpecialSymbol: upload->set_password_has_special_symbol(password_attributes_vote.second); + if (password_attributes_vote.second) + upload->set_password_special_symbol(password_symbol_vote); break; case PasswordAttribute::kPasswordAttributesCount: NOTREACHED(); @@ -503,6 +506,7 @@ all_fields_are_passwords_(!form.fields.empty()), form_parsed_timestamp_(base::TimeTicks::Now()), passwords_were_revealed_(false), + password_symbol_vote_(0), developer_engagement_metrics_(0) { // Copy the form fields. std::map<base::string16, size_t> unique_names; @@ -610,7 +614,8 @@ if (password_attributes_vote_) { EncodePasswordAttributesVote(*password_attributes_vote_, - password_length_vote_, upload); + password_length_vote_, password_symbol_vote_, + upload); } if (IsAutofillFieldMetadataEnabled()) {
diff --git a/components/autofill/core/browser/form_structure.h b/components/autofill/core/browser/form_structure.h index 965a0157..df85abc 100644 --- a/components/autofill/core/browser/form_structure.h +++ b/components/autofill/core/browser/form_structure.h
@@ -11,6 +11,7 @@ #include <memory> #include <set> #include <string> +#include <utility> #include <vector> #include "base/gtest_prod_util.h" @@ -301,11 +302,26 @@ } #endif + void set_password_symbol_vote(int noisified_symbol) { + DCHECK(password_attributes_vote_.has_value()) + << "password_symbol_vote_| doesn't make sense if " + "|password_attributes_vote_| has no value."; + password_symbol_vote_ = noisified_symbol; + } + +#if defined(UNIT_TEST) + int get_password_symbol_vote_for_testing() { + DCHECK(password_attributes_vote_.has_value()) + << "|password_symbol_vote_| doesn't make sense if " + "|password_attributes_vote_| has no value"; + return password_symbol_vote_; + } +#endif + SubmissionSource submission_source() const { return submission_source_; } void set_submission_source(SubmissionSource submission_source) { submission_source_ = submission_source; } - bool operator==(const FormData& form) const; bool operator!=(const FormData& form) const; @@ -576,6 +592,12 @@ // character). base::Optional<std::pair<PasswordAttribute, bool>> password_attributes_vote_; + // If |password_attribute_vote_| contains (kHasSpecialSymbol, true), this + // field contains nosified information about a special symbol in a + // user-created password stored as ASCII code. The default value of 0 + // indicates that no symbol was set. + int password_symbol_vote_; + // Noisified password length for crowdsourcing. If |password_attributes_vote_| // has no value, |password_length_vote_| should be ignored. size_t password_length_vote_;
diff --git a/components/autofill/core/browser/proto/server.proto b/components/autofill/core/browser/proto/server.proto index 86bc91e2..02f57c7 100644 --- a/components/autofill/core/browser/proto/server.proto +++ b/components/autofill/core/browser/proto/server.proto
@@ -186,7 +186,7 @@ // This message contains information about the field types in a single form. // It is sent by the toolbar to contribute to the field type statistics. -// Next available id: 39 +// Next available id: 40 message AutofillUploadContents { required string client_version = 1; required fixed64 form_signature = 2; @@ -343,6 +343,13 @@ // Noisifed password length. optional uint32 password_length = 29; + + // If |password_has_special_symbol| is true, this field contains nosified + // information about a special symbol used in a user-created password stored + // in ASCII code. + // Otherwise, this field is unset. + optional uint32 password_special_symbol = 39; + // The end of the section of password attributes. // Event observed by the password manager which indicated that the form was
diff --git a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc index 9c8777c..d7a59194 100644 --- a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc +++ b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.cc
@@ -114,45 +114,6 @@ } } -// Creates an AutofillProfile from the specified |address| specifics. -AutofillProfile ProfileFromSpecifics( - const sync_pb::WalletPostalAddress& address) { - AutofillProfile profile(AutofillProfile::SERVER_PROFILE, std::string()); - - // AutofillProfile stores multi-line addresses with newline separators. - std::vector<base::StringPiece> street_address( - address.street_address().begin(), address.street_address().end()); - profile.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, - base::UTF8ToUTF16(base::JoinString(street_address, "\n"))); - - profile.SetRawInfo(COMPANY_NAME, base::UTF8ToUTF16(address.company_name())); - profile.SetRawInfo(ADDRESS_HOME_STATE, - base::UTF8ToUTF16(address.address_1())); - profile.SetRawInfo(ADDRESS_HOME_CITY, base::UTF8ToUTF16(address.address_2())); - profile.SetRawInfo(ADDRESS_HOME_DEPENDENT_LOCALITY, - base::UTF8ToUTF16(address.address_3())); - // AutofillProfile doesn't support address_4 ("sub dependent locality"). - profile.SetRawInfo(ADDRESS_HOME_ZIP, - base::UTF8ToUTF16(address.postal_code())); - profile.SetRawInfo(ADDRESS_HOME_SORTING_CODE, - base::UTF8ToUTF16(address.sorting_code())); - profile.SetRawInfo(ADDRESS_HOME_COUNTRY, - base::UTF8ToUTF16(address.country_code())); - profile.set_language_code(address.language_code()); - - // SetInfo instead of SetRawInfo so the constituent pieces will be parsed - // for these data types. - profile.SetInfo(NAME_FULL, base::UTF8ToUTF16(address.recipient_name()), - profile.language_code()); - profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, - base::UTF8ToUTF16(address.phone_number()), - profile.language_code()); - - profile.GenerateServerProfileIdentifier(); - - return profile; -} - // Creates an AutofillProfile from the specified |card| specifics. CreditCard CardFromSpecifics(const sync_pb::WalletMaskedCreditCard& card) { CreditCard result(CreditCard::MASKED_SERVER_CARD, card.id()); @@ -306,6 +267,44 @@ mutable_customer_data->set_id(customer_data.customer_id); } +AutofillProfile ProfileFromSpecifics( + const sync_pb::WalletPostalAddress& address) { + AutofillProfile profile(AutofillProfile::SERVER_PROFILE, std::string()); + + // AutofillProfile stores multi-line addresses with newline separators. + std::vector<base::StringPiece> street_address( + address.street_address().begin(), address.street_address().end()); + profile.SetRawInfo(ADDRESS_HOME_STREET_ADDRESS, + base::UTF8ToUTF16(base::JoinString(street_address, "\n"))); + + profile.SetRawInfo(COMPANY_NAME, base::UTF8ToUTF16(address.company_name())); + profile.SetRawInfo(ADDRESS_HOME_STATE, + base::UTF8ToUTF16(address.address_1())); + profile.SetRawInfo(ADDRESS_HOME_CITY, base::UTF8ToUTF16(address.address_2())); + profile.SetRawInfo(ADDRESS_HOME_DEPENDENT_LOCALITY, + base::UTF8ToUTF16(address.address_3())); + // AutofillProfile doesn't support address_4 ("sub dependent locality"). + profile.SetRawInfo(ADDRESS_HOME_ZIP, + base::UTF8ToUTF16(address.postal_code())); + profile.SetRawInfo(ADDRESS_HOME_SORTING_CODE, + base::UTF8ToUTF16(address.sorting_code())); + profile.SetRawInfo(ADDRESS_HOME_COUNTRY, + base::UTF8ToUTF16(address.country_code())); + profile.set_language_code(address.language_code()); + + // SetInfo instead of SetRawInfo so the constituent pieces will be parsed + // for these data types. + profile.SetInfo(NAME_FULL, base::UTF8ToUTF16(address.recipient_name()), + profile.language_code()); + profile.SetInfo(PHONE_HOME_WHOLE_NUMBER, + base::UTF8ToUTF16(address.phone_number()), + profile.language_code()); + + profile.GenerateServerProfileIdentifier(); + + return profile; +} + void CopyRelevantWalletMetadataFromDisk( const AutofillTable& table, std::vector<CreditCard>* cards_from_server) {
diff --git a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.h b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.h index fc6812f..d346a67 100644 --- a/components/autofill/core/browser/webdata/autofill_sync_bridge_util.h +++ b/components/autofill/core/browser/webdata/autofill_sync_bridge_util.h
@@ -48,6 +48,10 @@ const PaymentsCustomerData& customer_data, sync_pb::AutofillWalletSpecifics* wallet_specifics); +// Creates an AutofillProfile from the specified |address| specifics. +AutofillProfile ProfileFromSpecifics( + const sync_pb::WalletPostalAddress& address); + // TODO(sebsg): This should probably copy the converted state for the address // too. // Copies the metadata from the local cards (if present) to the corresponding
diff --git a/components/autofill_assistant/browser/client_status.cc b/components/autofill_assistant/browser/client_status.cc index af5602c..da69a37 100644 --- a/components/autofill_assistant/browser/client_status.cc +++ b/components/autofill_assistant/browser/client_status.cc
@@ -15,21 +15,23 @@ void ClientStatus::FillProto(ProcessedActionProto* proto) const { proto->set_status(status_); - if (has_unexpected_error_info_) - proto->mutable_unexpected_error_info()->MergeFrom(unexpected_error_info_); + if (has_details_) + proto->mutable_status_details()->MergeFrom(details_); } std::ostream& operator<<(std::ostream& out, const ClientStatus& status) { out << status.status_; #ifndef NDEBUG - if (status.has_unexpected_error_info_) { - out << status.unexpected_error_info_.source_file() << ":" - << status.unexpected_error_info_.source_line_number(); - if (!status.unexpected_error_info_.js_exception_classname().empty()) { - out << " JS error " - << status.unexpected_error_info_.js_exception_classname() << " at " - << status.unexpected_error_info_.js_exception_line_number() << ":" - << status.unexpected_error_info_.js_exception_column_number(); + if (status.details_.original_status() != UNKNOWN_ACTION_STATUS) { + out << " was: " << status.details_.original_status(); + } + if (status.details_.has_unexpected_error_info()) { + auto& error_info = status.details_.unexpected_error_info(); + out << error_info.source_file() << ":" << error_info.source_line_number(); + if (!error_info.js_exception_classname().empty()) { + out << " JS error " << error_info.js_exception_classname() << " at " + << error_info.js_exception_line_number() << ":" + << error_info.js_exception_column_number(); } } #endif @@ -116,6 +118,10 @@ out << "TOO_MANY_ELEMENTS"; break; + case ProcessedActionStatusProto::NAVIGATION_ERROR: + out << "NAVIGATION_ERROR"; + break; + // Intentionally no default case to make compilation fail if a new value // was added to the enum but not to this list. }
diff --git a/components/autofill_assistant/browser/client_status.h b/components/autofill_assistant/browser/client_status.h index 5f74d776..a17f182 100644 --- a/components/autofill_assistant/browser/client_status.h +++ b/components/autofill_assistant/browser/client_status.h
@@ -30,17 +30,14 @@ // Modifies the corresponding proto status. void set_proto_status(ProcessedActionStatusProto status) { status_ = status; } - // Returns a mutable version of unexpected error info, creates one if - // necessary. - UnexpectedErrorInfoProto* mutable_unexpected_error_info() { - has_unexpected_error_info_ = true; - return &unexpected_error_info_; + // Returns a mutable version of status details, creates one if necessary. + ProcessedActionStatusDetailsProto* mutable_details() { + has_details_ = true; + return &details_; } - // Returns the unexpected error infos associated with this status. - const UnexpectedErrorInfoProto& unexpected_error_info() const { - return unexpected_error_info_; - } + // Returns the status details associated with this status. + const ProcessedActionStatusDetailsProto& details() const { return details_; } // The output operator, for logging. friend std::ostream& operator<<(std::ostream& out, @@ -48,8 +45,8 @@ private: ProcessedActionStatusProto status_; - bool has_unexpected_error_info_ = false; - UnexpectedErrorInfoProto unexpected_error_info_; + bool has_details_ = false; + ProcessedActionStatusDetailsProto details_; }; // An OK status.
diff --git a/components/autofill_assistant/browser/controller.cc b/components/autofill_assistant/browser/controller.cc index 3c279e1..7c60ad59 100644 --- a/components/autofill_assistant/browser/controller.cc +++ b/components/autofill_assistant/browser/controller.cc
@@ -62,6 +62,7 @@ : content::WebContentsObserver(web_contents), client_(client), tick_clock_(tick_clock), + navigating_to_new_document_(web_contents->IsWaitingForResponse()), weak_ptr_factory_(this) {} Controller::~Controller() = default; @@ -225,6 +226,26 @@ GetUiController()->OnActionsChanged(GetActions()); } +bool Controller::IsNavigatingToNewDocument() { + return navigating_to_new_document_; +} + +bool Controller::HasNavigationError() { + return navigation_error_; +} + +void Controller::AddListener(ScriptExecutorDelegate::Listener* listener) { + auto found = std::find(listeners_.begin(), listeners_.end(), listener); + if (found == listeners_.end()) + listeners_.emplace_back(listener); +} + +void Controller::RemoveListener(ScriptExecutorDelegate::Listener* listener) { + auto found = std::find(listeners_.begin(), listeners_.end(), listener); + if (found != listeners_.end()) + listeners_.erase(found); +} + void Controller::SelectSuggestion(int index) { SelectChip(suggestions_.get(), index); } @@ -249,6 +270,13 @@ std::move(callback).Run(); } +void Controller::ReportNavigationStateChanged() { + // Listeners are called in the same order they were added. + for (auto* listener : listeners_) { + listener->OnNavigationStateChanged(); + } +} + void Controller::StopAndShutdown(Metrics::DropOutReason reason) { ClearInfoBox(); SetDetails(nullptr); @@ -695,10 +723,13 @@ bool shipping_address_ok = !payment_request_options_->request_shipping || payment_request_info_->shipping_address; + bool payment_method_ok = !payment_request_options_->request_payment_method || + payment_request_info_->card; + bool terms_ok = payment_request_info_->terms_and_conditions != NOT_SELECTED; - bool continue_button_enabled = contact_info_ok && shipping_address_ok && - payment_request_info_->card && terms_ok; + bool continue_button_enabled = + contact_info_ok && shipping_address_ok && payment_method_ok && terms_ok; auto chips = std::make_unique<std::vector<Chip>>(); chips->emplace_back(); @@ -816,6 +847,15 @@ void Controller::DidStartNavigation( content::NavigationHandle* navigation_handle) { + if (!navigation_handle->IsInMainFrame() || + navigation_handle->IsSameDocument()) + return; + + if (!navigating_to_new_document_) { + navigating_to_new_document_ = true; + ReportNavigationStateChanged(); + } + // The following types of navigations are allowed for the main frame, when // in PROMPT state: // - first-time URL load @@ -832,16 +872,35 @@ // Everything else, such as going back to a previous page, or refreshing the // page is considered an end condition. if (state_ == AutofillAssistantState::PROMPT && - navigation_handle->IsInMainFrame() && web_contents()->GetLastCommittedURL().is_valid() && !navigation_handle->WasServerRedirect() && - !navigation_handle->IsSameDocument() && !navigation_handle->IsRendererInitiated()) { OnFatalError(l10n_util::GetStringUTF8(IDS_AUTOFILL_ASSISTANT_GIVE_UP), Metrics::NAVIGATION); } } +void Controller::DidFinishNavigation( + content::NavigationHandle* navigation_handle) { + if (!navigation_handle->IsInMainFrame() || + navigation_handle->IsSameDocument() || + !navigation_handle->HasCommitted() || !IsNavigatingToNewDocument()) { + return; + } + + bool is_successful = + !navigation_handle->IsErrorPage() && + navigation_handle->GetNetErrorCode() == net::OK && + navigation_handle->GetResponseHeaders() && + (navigation_handle->GetResponseHeaders()->response_code() / 100) == 2; + navigation_error_ = !is_successful; + navigating_to_new_document_ = false; + ReportNavigationStateChanged(); + + if (is_successful) + GetOrCheckScripts(); +} + void Controller::DocumentAvailableInMainFrame() { GetOrCheckScripts(); }
diff --git a/components/autofill_assistant/browser/controller.h b/components/autofill_assistant/browser/controller.h index 3a5bd056..3622d5fe5 100644 --- a/components/autofill_assistant/browser/controller.h +++ b/components/autofill_assistant/browser/controller.h
@@ -93,6 +93,10 @@ void SetProgress(int progress) override; void SetProgressVisible(bool visible) override; void SetChips(std::unique_ptr<std::vector<Chip>> chips) override; + bool IsNavigatingToNewDocument() override; + bool HasNavigationError() override; + void AddListener(ScriptExecutorDelegate::Listener* listener) override; + void RemoveListener(ScriptExecutorDelegate::Listener* listener) override; // Stops the controller with |reason| and destroys this. The current status // message must contain the error message. @@ -191,6 +195,8 @@ const GURL& validated_url) override; void DidStartNavigation( content::NavigationHandle* navigation_handle) override; + void DidFinishNavigation( + content::NavigationHandle* navigation_handle) override; void DocumentAvailableInMainFrame() override; void RenderProcessGone(base::TerminationStatus status) override; void OnWebContentsFocused( @@ -199,6 +205,7 @@ void OnTouchableAreaChanged(const std::vector<RectF>& areas); void SelectChip(std::vector<Chip>* chips, int chip_index); + void ReportNavigationStateChanged(); ElementArea* touchable_element_area(); ScriptTracker* script_tracker(); @@ -284,6 +291,13 @@ std::unique_ptr<PaymentRequestOptions> payment_request_options_; std::unique_ptr<PaymentInformation> payment_request_info_; + // Value for ScriptExecutorDelegate::IsNavigatingToNewDocument() + bool navigating_to_new_document_ = false; + + // Value for ScriptExecutorDelegate::HasNavigationError() + bool navigation_error_ = false; + std::vector<ScriptExecutorDelegate::Listener*> listeners_; + // Tracks scripts and script execution. It's kept at the end, as it tend to // depend on everything the controller support, through script and script // actions.
diff --git a/components/autofill_assistant/browser/controller_unittest.cc b/components/autofill_assistant/browser/controller_unittest.cc index f983dbdf..6033f63 100644 --- a/components/autofill_assistant/browser/controller_unittest.cc +++ b/components/autofill_assistant/browser/controller_unittest.cc
@@ -16,8 +16,10 @@ #include "components/autofill_assistant/browser/mock_web_controller.h" #include "components/autofill_assistant/browser/service.h" #include "components/autofill_assistant/browser/trigger_context.h" +#include "content/public/test/navigation_simulator.h" #include "content/public/test/test_browser_context.h" #include "content/public/test/test_browser_thread_bundle.h" +#include "content/public/test/test_renderer_host.h" #include "content/public/test/web_contents_tester.h" #include "testing/gmock/include/gmock/gmock.h" @@ -33,6 +35,7 @@ using ::testing::Gt; using ::testing::InSequence; using ::testing::Invoke; +using ::testing::IsEmpty; using ::testing::NiceMock; using ::testing::Not; using ::testing::Pair; @@ -72,18 +75,17 @@ } // namespace -class ControllerTest : public testing::Test { +class ControllerTest : public content::RenderViewHostTestHarness { public: ControllerTest() - : thread_bundle_( + : RenderViewHostTestHarness( base::test::ScopedTaskEnvironment::MainThreadType::UI_MOCK_TIME), - web_contents_( - content::WebContentsTester::CreateTestWebContents(&browser_context_, - nullptr)), fake_client_(&mock_ui_controller_) {} ~ControllerTest() override {} void SetUp() override { + RenderViewHostTestHarness::SetUp(); + scoped_feature_list_.InitAndEnableFeature( features::kAutofillAssistantChromeEntry); auto web_controller = std::make_unique<NiceMock<MockWebController>>(); @@ -92,7 +94,7 @@ mock_service_ = service.get(); controller_ = std::make_unique<Controller>( - web_contents_.get(), &fake_client_, thread_bundle_.GetMockTickClock()); + web_contents(), &fake_client_, thread_bundle()->GetMockTickClock()); controller_->SetWebControllerAndServiceForTest(std::move(web_controller), std::move(service)); @@ -149,15 +151,13 @@ } void SetLastCommittedUrl(const GURL& url) { - content::WebContentsTester::For(web_contents_.get()) - ->SetLastCommittedURL(url); + content::WebContentsTester::For(web_contents())->SetLastCommittedURL(url); } - // Updates the current url of the controller and forces a refresh, without - // bothering with actually rendering any page content. void SimulateNavigateToUrl(const GURL& url) { - SetLastCommittedUrl(url); - controller_->DidFinishLoad(nullptr, url); + content::NavigationSimulator::NavigateAndCommitFromDocument( + url, web_contents()->GetMainFrame()); + content::WebContentsTester::For(web_contents())->TestSetIsLoading(false); } void SimulateWebContentsFocused() { @@ -186,10 +186,7 @@ // |thread_bundle_| must be the first field, to make sure that everything runs // in the same task environment. - content::TestBrowserThreadBundle thread_bundle_; base::test::ScopedFeatureList scoped_feature_list_; - content::TestBrowserContext browser_context_; - std::unique_ptr<content::WebContents> web_contents_; base::TimeTicks now_; std::vector<AutofillAssistantState> states_; MockService* mock_service_; @@ -200,6 +197,43 @@ std::unique_ptr<Controller> controller_; }; +struct NavigationState { + bool navigating = false; + bool has_errors = false; + + bool operator==(const NavigationState& other) const { + return navigating == other.navigating && has_errors == other.has_errors; + } +}; + +std::ostream& operator<<(std::ostream& out, const NavigationState& state) { + out << "{navigating=" << state.navigating << "," + << "has_errors=" << state.has_errors << "}"; + return out; +} + +// A Listener that keeps track of the reported state of the delegate captured +// from OnNavigationStateChanged. +class NavigationStateChangeListener : public ScriptExecutorDelegate::Listener { + public: + explicit NavigationStateChangeListener(ScriptExecutorDelegate* delegate) + : delegate_(delegate) {} + ~NavigationStateChangeListener() = default; + void OnNavigationStateChanged() override; + + std::vector<NavigationState> events; + + private: + ScriptExecutorDelegate* const delegate_; +}; + +void NavigationStateChangeListener::OnNavigationStateChanged() { + NavigationState state; + state.navigating = delegate_->IsNavigatingToNewDocument(); + state.has_errors = delegate_->HasNavigationError(); + events.emplace_back(state); +} + TEST_F(ControllerTest, FetchAndRunScripts) { SupportsScriptResponseProto script_response; AddRunnableScript(&script_response, "script1"); @@ -386,7 +420,6 @@ } TEST_F(ControllerTest, RefreshScriptWhenDomainChanges) { - EXPECT_CALL(*mock_service_, OnGetScriptsForUrl(Eq(GURL("http://a.example.com/path1")), _, _)) .WillOnce(RunOnceCallback<2>(true, "")); @@ -494,7 +527,7 @@ EXPECT_CALL(mock_ui_controller_, OnSuggestionsChanged(SizeIs(Gt(0u)))) .Times(0); - SimulateNavigateToUrl(GURL("http://a.example.com/path")); + Start("http://a.example.com/path"); EXPECT_THAT(controller_->GetSuggestions(), SizeIs(0)); } @@ -625,13 +658,13 @@ EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState()); for (int i = 0; i < 3; i++) { - thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); + thread_bundle()->FastForwardBy(base::TimeDelta::FromSeconds(1)); EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState()); } EXPECT_CALL(*mock_web_controller_, OnElementCheck(_, _)) .WillRepeatedly(RunOnceCallback<1>(true)); - thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); + thread_bundle()->FastForwardBy(base::TimeDelta::FromSeconds(1)); EXPECT_EQ(AutofillAssistantState::AUTOSTART_FALLBACK_PROMPT, controller_->GetState()); @@ -664,7 +697,7 @@ Start("http://a.example.com/path"); for (int i = 0; i < 30; i++) { EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState()); - thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); + thread_bundle()->FastForwardBy(base::TimeDelta::FromSeconds(1)); } EXPECT_EQ(AutofillAssistantState::STOPPED, controller_->GetState()); EXPECT_EQ("I give up", controller_->GetStatusMessage()); @@ -698,13 +731,124 @@ // Warning after 4s, script succeeds and the client continues to wait. for (int i = 0; i < 4; i++) { EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState()); - thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); + thread_bundle()->FastForwardBy(base::TimeDelta::FromSeconds(1)); } EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState()); EXPECT_EQ("This is slow", controller_->GetStatusMessage()); for (int i = 0; i < 10; i++) { EXPECT_EQ(AutofillAssistantState::STARTING, controller_->GetState()); - thread_bundle_.FastForwardBy(base::TimeDelta::FromSeconds(1)); + thread_bundle()->FastForwardBy(base::TimeDelta::FromSeconds(1)); } } + +TEST_F(ControllerTest, SuccessfulNavigation) { + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + NavigationStateChangeListener listener(controller_.get()); + controller_->AddListener(&listener); + content::NavigationSimulator::NavigateAndCommitFromDocument( + GURL("http://initialurl.com"), web_contents()->GetMainFrame()); + controller_->RemoveListener(&listener); + + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + EXPECT_THAT(listener.events, ElementsAre(NavigationState{true, false}, + NavigationState{false, false})); +} + +TEST_F(ControllerTest, FailedNavigation) { + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + NavigationStateChangeListener listener(controller_.get()); + controller_->AddListener(&listener); + content::NavigationSimulator::NavigateAndFailFromDocument( + GURL("http://initialurl.com"), net::ERR_CONNECTION_TIMED_OUT, + web_contents()->GetMainFrame()); + controller_->RemoveListener(&listener); + + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_TRUE(controller_->HasNavigationError()); + + EXPECT_THAT(listener.events, ElementsAre(NavigationState{true, false}, + NavigationState{false, true})); +} + +TEST_F(ControllerTest, NavigationWithRedirects) { + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + NavigationStateChangeListener listener(controller_.get()); + controller_->AddListener(&listener); + + std::unique_ptr<content::NavigationSimulator> simulator = + content::NavigationSimulator::CreateRendererInitiated( + GURL("http://original.example.com/"), web_contents()->GetMainFrame()); + simulator->SetTransition(ui::PAGE_TRANSITION_LINK); + simulator->Start(); + EXPECT_TRUE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + simulator->Redirect(GURL("http://redirect.example.com/")); + EXPECT_TRUE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + simulator->Commit(); + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + controller_->RemoveListener(&listener); + + // Redirection should not be reported as a state change. + EXPECT_THAT(listener.events, ElementsAre(NavigationState{true, false}, + NavigationState{false, false})); +} + +TEST_F(ControllerTest, EventuallySuccessfulNavigation) { + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + NavigationStateChangeListener listener(controller_.get()); + controller_->AddListener(&listener); + content::NavigationSimulator::NavigateAndFailFromDocument( + GURL("http://initialurl.com"), net::ERR_CONNECTION_TIMED_OUT, + web_contents()->GetMainFrame()); + content::NavigationSimulator::NavigateAndCommitFromDocument( + GURL("http://initialurl.com"), web_contents()->GetMainFrame()); + controller_->RemoveListener(&listener); + + EXPECT_FALSE(controller_->IsNavigatingToNewDocument()); + EXPECT_FALSE(controller_->HasNavigationError()); + + EXPECT_THAT(listener.events, + ElementsAre( + // 1st navigation starts + NavigationState{true, false}, + // 1st navigation fails + NavigationState{false, true}, + // 2nd navigation starts, while in error state + NavigationState{true, true}, + // 2nd navigation succeeds + NavigationState{false, false})); +} + +TEST_F(ControllerTest, RemoveListener) { + NavigationStateChangeListener listener(controller_.get()); + controller_->AddListener(&listener); + content::NavigationSimulator::NavigateAndCommitFromDocument( + GURL("http://initialurl.com"), web_contents()->GetMainFrame()); + listener.events.clear(); + controller_->RemoveListener(&listener); + + content::NavigationSimulator::NavigateAndFailFromDocument( + GURL("http://initialurl.com"), net::ERR_CONNECTION_TIMED_OUT, + web_contents()->GetMainFrame()); + content::NavigationSimulator::NavigateAndCommitFromDocument( + GURL("http://initialurl.com"), web_contents()->GetMainFrame()); + + EXPECT_THAT(listener.events, IsEmpty()); +} + } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/fake_script_executor_delegate.cc b/components/autofill_assistant/browser/fake_script_executor_delegate.cc index f12ada6..aea7327df 100644 --- a/components/autofill_assistant/browser/fake_script_executor_delegate.cc +++ b/components/autofill_assistant/browser/fake_script_executor_delegate.cc
@@ -87,4 +87,20 @@ void FakeScriptExecutorDelegate::CancelPaymentRequest() {} +bool FakeScriptExecutorDelegate::HasNavigationError() { + return navigation_error_; +} + +bool FakeScriptExecutorDelegate::IsNavigatingToNewDocument() { + return navigating_to_new_document_; +} + +void FakeScriptExecutorDelegate::AddListener(Listener* listener) { + listeners_.insert(listener); +} + +void FakeScriptExecutorDelegate::RemoveListener(Listener* listener) { + listeners_.erase(listener); +} + } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/fake_script_executor_delegate.h b/components/autofill_assistant/browser/fake_script_executor_delegate.h index 28c92c2..dcd62d08 100644 --- a/components/autofill_assistant/browser/fake_script_executor_delegate.h +++ b/components/autofill_assistant/browser/fake_script_executor_delegate.h
@@ -7,6 +7,7 @@ #include <map> #include <memory> +#include <set> #include <string> #include <vector> @@ -44,6 +45,10 @@ void SetPaymentRequestOptions( std::unique_ptr<PaymentRequestOptions> options) override; void CancelPaymentRequest() override; + bool HasNavigationError() override; + bool IsNavigatingToNewDocument() override; + void AddListener(Listener* listener) override; + void RemoveListener(Listener* listener) override; void SetCurrentURL(const GURL& url) { current_url_ = url; } @@ -71,6 +76,17 @@ PaymentRequestOptions* GetOptions() { return payment_request_options_.get(); } + void UpdateNavigationState(bool navigating, bool error) { + navigating_to_new_document_ = navigating; + navigation_error_ = error; + + for (auto* listener : listeners_) { + listener->OnNavigationStateChanged(); + } + } + + bool HasListeners() { return !listeners_.empty(); } + private: GURL current_url_; Service* service_ = nullptr; @@ -84,6 +100,9 @@ std::unique_ptr<InfoBox> info_box_; std::unique_ptr<std::vector<Chip>> chips_; std::unique_ptr<PaymentRequestOptions> payment_request_options_; + bool navigating_to_new_document_ = false; + bool navigation_error_ = false; + std::set<ScriptExecutorDelegate::Listener*> listeners_; DISALLOW_COPY_AND_ASSIGN(FakeScriptExecutorDelegate); };
diff --git a/components/autofill_assistant/browser/retry_timer.h b/components/autofill_assistant/browser/retry_timer.h index 8b6b09672..40f6c12 100644 --- a/components/autofill_assistant/browser/retry_timer.h +++ b/components/autofill_assistant/browser/retry_timer.h
@@ -23,7 +23,7 @@ class RetryTimer { public: // A RetryTimer with the given retry period - RetryTimer(base::TimeDelta period); + explicit RetryTimer(base::TimeDelta period); ~RetryTimer(); // Tries to run |task| once immediately and then periodically until it @@ -48,6 +48,9 @@ // Does nothing if to tasks are in progress. void Cancel(); + // Returns true if the timer was started but did not report any results yet. + bool running() { return on_done_ ? true : false; } + private: void Reset(); void RunTask();
diff --git a/components/autofill_assistant/browser/retry_timer_unittest.cc b/components/autofill_assistant/browser/retry_timer_unittest.cc index 7c9e0b7..3fbd868 100644 --- a/components/autofill_assistant/browser/retry_timer_unittest.cc +++ b/components/autofill_assistant/browser/retry_timer_unittest.cc
@@ -6,6 +6,7 @@ #include <map> #include <set> +#include <utility> #include "base/bind.h" #include "base/callback.h" @@ -189,5 +190,29 @@ EXPECT_EQ(3, try_count_); } +TEST_F(RetryTimerTest, Running) { + RetryTimer retry_timer(base::TimeDelta::FromSeconds(1)); + EXPECT_FALSE(retry_timer.running()); + + retry_timer.Start(base::TimeDelta::FromSeconds(10), SucceedsOnceCallback(1), + done_callback_.Get()); + EXPECT_TRUE(retry_timer.running()); + + EXPECT_CALL(done_callback_, Run(true)); + FastForwardOneSecond(); + EXPECT_FALSE(retry_timer.running()); +} + +TEST_F(RetryTimerTest, NotRunningAfterCancel) { + RetryTimer retry_timer(base::TimeDelta::FromSeconds(1)); + EXPECT_FALSE(retry_timer.running()); + + retry_timer.Start(base::TimeDelta::FromSeconds(10), SucceedsOnceCallback(1), + done_callback_.Get()); + EXPECT_TRUE(retry_timer.running()); + retry_timer.Cancel(); + EXPECT_FALSE(retry_timer.running()); +} + } // namespace } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/script_executor.cc b/components/autofill_assistant/browser/script_executor.cc index fb81192d..cfabf8cef 100644 --- a/components/autofill_assistant/browser/script_executor.cc +++ b/components/autofill_assistant/browser/script_executor.cc
@@ -93,12 +93,14 @@ previous_action_type_(ActionProto::ACTION_INFO_NOT_SET), scripts_state_(scripts_state), ordered_interrupts_(ordered_interrupts), - retry_timer_(kPeriodicElementCheck), weak_ptr_factory_(this) { DCHECK(delegate_); DCHECK(ordered_interrupts_); } -ScriptExecutor::~ScriptExecutor() {} + +ScriptExecutor::~ScriptExecutor() { + delegate_->RemoveListener(this); +} ScriptExecutor::Result::Result() = default; ScriptExecutor::Result::~Result() = default; @@ -107,6 +109,8 @@ DVLOG(2) << "Starting script " << script_path_; (*scripts_state_)[script_path_] = SCRIPT_STATUS_RUNNING; + delegate_->AddListener(this); + callback_ = std::move(callback); DCHECK(delegate_->GetService()); @@ -118,6 +122,17 @@ weak_ptr_factory_.GetWeakPtr())); } +void ScriptExecutor::OnNavigationStateChanged() { + if (delegate_->IsNavigatingToNewDocument()) + navigation_info_.set_started(true); + else + navigation_info_.set_ended(true); + + if (delegate_->HasNavigationError()) { + navigation_info_.set_has_error(true); + } +} + void ScriptExecutor::RunElementChecks(BatchElementChecker* checker, base::OnceCallback<void()> all_done) { return checker->Run(delegate_->GetWebController(), std::move(all_done)); @@ -126,18 +141,12 @@ void ScriptExecutor::ShortWaitForElement( const Selector& selector, base::OnceCallback<void(bool)> callback) { - retry_timer_.Start( - kShortWaitForElementDeadline, - base::BindRepeating(&ScriptExecutor::CheckForElement, - weak_ptr_factory_.GetWeakPtr(), selector), - std::move(callback)); -} - -void ScriptExecutor::CheckForElement(const Selector& selector, - base::OnceCallback<void(bool)> callback) { - delegate_->GetWebController()->ElementCheck(selector, - /* strict= */ false, - std::move(callback)); + wait_for_dom_ = std::make_unique<WaitForDomOperation>( + this, kShortWaitForElementDeadline, /* allow_interrupt= */ false, + SelectorPredicate::kMatches, selector, + base::BindOnce(&ScriptExecutor::OnShortWaitForElement, + weak_ptr_factory_.GetWeakPtr(), std::move(callback))); + wait_for_dom_->Run(); } void ScriptExecutor::WaitForDom( @@ -520,6 +529,10 @@ void ScriptExecutor::ProcessAction(Action* action) { DVLOG(2) << "Begin action: " << *action; + + navigation_info_.Clear(); + navigation_info_.set_has_error(delegate_->HasNavigationError()); + action->ProcessAction(this, base::BindOnce(&ScriptExecutor::OnProcessedAction, weak_ptr_factory_.GetWeakPtr())); } @@ -541,10 +554,20 @@ if (at_end_ == TERMINATE) { // Let the backend know that the script has been terminated. The original // action status doesn't matter. + processed_action.mutable_status_details()->set_original_status( + processed_action.status()); processed_action.set_status( ProcessedActionStatusProto::USER_ABORTED_ACTION); } + *processed_action.mutable_navigation_info() = navigation_info_; if (processed_action.status() != ProcessedActionStatusProto::ACTION_APPLIED) { + if (delegate_->HasNavigationError()) { + // Overwrite the original error, as the root cause is most likely a + // navigation error. + processed_action.mutable_status_details()->set_original_status( + processed_action.status()); + processed_action.set_status(ProcessedActionStatusProto::NAVIGATION_ERROR); + } DVLOG(1) << "Action failed: " << processed_action.status() << ", get more actions"; // Report error immediately, interrupting action processing. @@ -554,6 +577,18 @@ ProcessNextAction(); } +void ScriptExecutor::OnShortWaitForElement( + base::OnceCallback<void(bool)> callback, + bool element_found, + const Result* interrupt_result, + const std::set<std::string>& interrupt_paths) { + // Interrupts cannot run, so should never be reported. + DCHECK(!interrupt_result); + DCHECK(interrupt_paths.empty()); + + std::move(callback).Run(element_found); +} + void ScriptExecutor::OnWaitForElementVisibleWithInterrupts( base::OnceCallback<void(ProcessedActionStatusProto)> callback, bool element_found, @@ -572,12 +607,6 @@ return; } } - OnWaitForElementVisibleNoInterrupts(std::move(callback), element_found); -} - -void ScriptExecutor::OnWaitForElementVisibleNoInterrupts( - base::OnceCallback<void(ProcessedActionStatusProto)> callback, - bool element_found) { std::move(callback).Run(element_found ? ACTION_APPLIED : ELEMENT_RESOLUTION_FAILED); } @@ -598,9 +627,24 @@ retry_timer_(kPeriodicElementCheck), weak_ptr_factory_(this) {} -ScriptExecutor::WaitForDomOperation::~WaitForDomOperation() = default; +ScriptExecutor::WaitForDomOperation::~WaitForDomOperation() { + main_script_->delegate_->RemoveListener(this); +} void ScriptExecutor::WaitForDomOperation::Run() { + main_script_->delegate_->AddListener(this); + if (main_script_->delegate_->IsNavigatingToNewDocument()) + return; // start paused + + Start(); +} + +void ScriptExecutor::WaitForDomOperation::Terminate() { + if (interrupt_executor_) + interrupt_executor_->Terminate(); +} + +void ScriptExecutor::WaitForDomOperation::Start() { retry_timer_.Start( max_wait_time_, base::BindRepeating(&ScriptExecutor::WaitForDomOperation::RunChecks, @@ -610,6 +654,30 @@ base::Unretained(this))); } +void ScriptExecutor::WaitForDomOperation::Pause() { + if (interrupt_executor_) { + // If an interrupt is running, it'll be the one to be paused, if necessary. + return; + } + + retry_timer_.Cancel(); +} + +void ScriptExecutor::WaitForDomOperation::Continue() { + if (retry_timer_.running() || !callback_) + return; + + Start(); +} + +void ScriptExecutor::WaitForDomOperation::OnNavigationStateChanged() { + if (main_script_->delegate_->IsNavigatingToNewDocument()) { + Pause(); + } else { + Continue(); + } +} + void ScriptExecutor::WaitForDomOperation::OnServerPayloadChanged( const std::string& global_payload, const std::string& script_payload) { @@ -636,7 +704,7 @@ for (const auto* interrupt : *main_script_->ordered_interrupts_) { if (ran_interrupts_.find(interrupt->handle.path) != ran_interrupts_.end()) { - // Only run an interrupt once in a WaitForDom, to avoid loops. + // Only run an interrupt once in a WaitForDomOperation, to avoid loops. continue; } @@ -649,8 +717,6 @@ weak_ptr_factory_.GetWeakPtr(), base::Unretained(interrupt))); } - // The base::Unretained(this) above are safe, since the pointers belong to - // the main script, which own this instance. } batch_element_checker_->Run( @@ -726,8 +792,8 @@ // Restart. We use the original wait time since the interruption could have // triggered any kind of actions, including actions that wait on the user. We - // don't trust a previous element_check_result_, since it could have changed. - Run(); + // don't trust a previous element_found_ result, since it could have changed. + Start(); } void ScriptExecutor::WaitForDomOperation::RunCallback(bool found) { @@ -777,11 +843,6 @@ } } -void ScriptExecutor::WaitForDomOperation::Terminate() { - if (interrupt_executor_) - interrupt_executor_->Terminate(); -} - std::ostream& operator<<(std::ostream& out, const ScriptExecutor::Result& result) { result.success ? out << "succeeded. " : out << "failed. ";
diff --git a/components/autofill_assistant/browser/script_executor.h b/components/autofill_assistant/browser/script_executor.h index ddf1045a4..b033f04 100644 --- a/components/autofill_assistant/browser/script_executor.h +++ b/components/autofill_assistant/browser/script_executor.h
@@ -26,7 +26,8 @@ namespace autofill_assistant { // Class to execute an assistant script. -class ScriptExecutor : public ActionDelegate { +class ScriptExecutor : public ActionDelegate, + public ScriptExecutorDelegate::Listener { public: // Listens to events on ScriptExecutor. // TODO(b/806868): Make global_payload a part of callback instead of the @@ -101,6 +102,9 @@ // action, then returns a result with at_end set to TERMINATE. void Terminate(); + // Override ScriptExecutorDelegate::Listener + void OnNavigationStateChanged() override; + // Override ActionDelegate: void RunElementChecks(BatchElementChecker* checker, base::OnceCallback<void()> all_done) override; @@ -181,7 +185,8 @@ private: // Helper for WaitForElementVisible that keeps track of the state required to // run interrupts while waiting for a specific element. - class WaitForDomOperation : public ScriptExecutor::Listener { + class WaitForDomOperation : public ScriptExecutor::Listener, + ScriptExecutorDelegate::Listener { public: // Let the caller know about either the result of looking for the element or // of an abnormal result from an interrupt. @@ -208,6 +213,13 @@ void Terminate(); private: + void Start(); + void Pause(); + void Continue(); + + // Implements ScriptExecutorDelegate::Listener + void OnNavigationStateChanged() override; + // Implements ScriptExecutor::Listener void OnServerPayloadChanged(const std::string& global_payload, const std::string& script_payload) override; @@ -281,19 +293,15 @@ void ProcessAction(Action* action); void GetNextActions(); void OnProcessedAction(std::unique_ptr<ProcessedActionProto> action); - void WaitForElement(base::TimeDelta max_wait_time, - const Selector& selectors, - base::OnceCallback<void(bool)> callback); - void CheckForElement(const Selector& selectors, - base::OnceCallback<void(bool)> callback); + void OnShortWaitForElement(base::OnceCallback<void(bool)> callback, + bool element_found, + const Result* interrupt_result, + const std::set<std::string>& interrupt_paths); void OnWaitForElementVisibleWithInterrupts( base::OnceCallback<void(ProcessedActionStatusProto)> callback, bool element_found, const Result* interrupt_result, const std::set<std::string>& ran_interrupts); - void OnWaitForElementVisibleNoInterrupts( - base::OnceCallback<void(ProcessedActionStatusProto)> callback, - bool element_found); void OnGetPaymentInformation( base::OnceCallback<void(std::unique_ptr<PaymentInformation>)> callback, std::unique_ptr<PaymentInformation> result); @@ -322,6 +330,9 @@ std::map<std::string, ScriptStatusProto>* scripts_state_; std::unique_ptr<BatchElementChecker> batch_element_checker_; + // Navigation information relevant to the current action. + NavigationInfoProto navigation_info_; + // Paths of the interrupts that were run during the current script. std::set<std::string> ran_interrupts_; @@ -336,8 +347,6 @@ // without selecting any chips. nullptr unless showing a prompt. base::OnceCallback<void()> on_terminate_prompt_; - RetryTimer retry_timer_; - base::WeakPtrFactory<ScriptExecutor> weak_ptr_factory_; DISALLOW_COPY_AND_ASSIGN(ScriptExecutor); };
diff --git a/components/autofill_assistant/browser/script_executor_delegate.h b/components/autofill_assistant/browser/script_executor_delegate.h index 4820d09..ef37ea9 100644 --- a/components/autofill_assistant/browser/script_executor_delegate.h +++ b/components/autofill_assistant/browser/script_executor_delegate.h
@@ -35,6 +35,13 @@ class ScriptExecutorDelegate { public: + class Listener { + public: + // The values returned by IsNavigatingToNewDocument() or + // HasNavigationError() might have changed. + virtual void OnNavigationStateChanged() = 0; + }; + virtual const GURL& GetCurrentURL() = 0; virtual Service* GetService() = 0; virtual UiController* GetUiController() = 0; @@ -65,6 +72,37 @@ SetTouchableElementArea(ElementAreaProto::default_instance()); } + // Returns true if a new document is being fetched for the main frame. + // + // Navigation ends once a response, with its associated URL has been + // committed, whether the response is successful or not. + // + // Navigation of frames other than the main frame, loading of resource or + // navigation to the same document aren't reported. + // + // Changes to this value is reported to Listener::OnNavigationStateChanged() + virtual bool IsNavigatingToNewDocument() = 0; + + // Returns true if Chrome failed to fetch the response for its main document + // during its last attempt. + // + // This is cleared once a page for the main document has been successfully + // navigated to a new document. + // + // Navigation of frames other than the main frame, loading of resource or + // navigation to the same document aren't taken into account for this value. + // + // Changes to this value is reported to Listener::OnNavigationStateChanged() + virtual bool HasNavigationError() = 0; + + // Register a listener that can be told about changes. Duplicate calls are + // ignored. + virtual void AddListener(Listener* listener) = 0; + + // Removes a previously registered listener. Does nothing if no such listeners + // exists. + virtual void RemoveListener(Listener* listener) = 0; + protected: virtual ~ScriptExecutorDelegate() {} };
diff --git a/components/autofill_assistant/browser/script_executor_unittest.cc b/components/autofill_assistant/browser/script_executor_unittest.cc index bebb92c..69c9d8b 100644 --- a/components/autofill_assistant/browser/script_executor_unittest.cc +++ b/components/autofill_assistant/browser/script_executor_unittest.cc
@@ -30,7 +30,7 @@ using ::testing::ElementsAre; using ::testing::Eq; using ::testing::Field; -using ::testing::Invoke; +using ::testing::InvokeWithoutArgs; using ::testing::IsEmpty; using ::testing::NiceMock; using ::testing::Not; @@ -973,5 +973,223 @@ EXPECT_EQ("pre-interrupt status", delegate_.GetStatusMessage()); } +TEST_F(ScriptExecutorTest, PauseWaitForDomWhileNavigating) { + ActionsResponseProto actions_response; + auto* wait_for_dom = actions_response.add_actions()->mutable_wait_for_dom(); + wait_for_dom->set_timeout_ms(2000); + wait_for_dom->mutable_wait_until()->add_selectors("element"); + + EXPECT_CALL(mock_service_, OnGetActions(_, _, _, _, _, _)) + .WillOnce(RunOnceCallback<5>(true, Serialize(actions_response))); + std::vector<ProcessedActionProto> processed_actions_capture; + EXPECT_CALL(mock_service_, OnGetNextActions(_, _, _, _, _)) + .WillOnce(DoAll(SaveArg<3>(&processed_actions_capture), + RunOnceCallback<4>(true, ""))); + + // First check does not find the element, wait for dom waits 1s. + EXPECT_CALL(mock_web_controller_, + OnElementCheck(Eq(Selector({"element"})), _)) + .WillOnce(RunOnceCallback<1>(false)); + executor_->Run(executor_callback_.Get()); + + // Navigation starts while WaitForDom is waiting. The action doesn't fail, + // even though navigation takes a few seconds longer than the WaitForDom + // timeout. + delegate_.UpdateNavigationState(/* navigating= */ true, /* error= */ false); + for (int i = 0; i < 5; i++) { + scoped_task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); + } + + // The end of navigation un-pauses WaitForDom. + EXPECT_CALL(mock_web_controller_, + OnElementCheck(Eq(Selector({"element"})), _)) + .WillRepeatedly(RunOnceCallback<1>(true)); + EXPECT_CALL(executor_callback_, Run(_)); + delegate_.UpdateNavigationState(/* navigating= */ false, /* error= */ false); + + ASSERT_EQ(1u, processed_actions_capture.size()); + EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status()); +} + +TEST_F(ScriptExecutorTest, StartWaitForDomWhileNavigating) { + ActionsResponseProto actions_response; + auto* wait_for_dom = actions_response.add_actions()->mutable_wait_for_dom(); + wait_for_dom->set_timeout_ms(2000); + wait_for_dom->mutable_wait_until()->add_selectors("element"); + + EXPECT_CALL(mock_service_, OnGetActions(_, _, _, _, _, _)) + .WillOnce(RunOnceCallback<5>(true, Serialize(actions_response))); + std::vector<ProcessedActionProto> processed_actions_capture; + EXPECT_CALL(mock_service_, OnGetNextActions(_, _, _, _, _)) + .WillOnce(DoAll(SaveArg<3>(&processed_actions_capture), + RunOnceCallback<4>(true, ""))); + + // Navigation starts before WaitForDom even starts, so the operation starts in + // a paused state. + delegate_.UpdateNavigationState(/* navigating= */ true, /* error= */ false); + + executor_->Run(executor_callback_.Get()); + + // The end of navigation un-pauses WaitForDom, which then succeeds + // immediately. + EXPECT_CALL(executor_callback_, Run(_)); + delegate_.UpdateNavigationState(/* navigating= */ false, /* error= */ false); + + ASSERT_EQ(1u, processed_actions_capture.size()); + EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status()); +} + +TEST_F(ScriptExecutorTest, ReportErrorAsNavigationError) { + ActionsResponseProto actions_response; + actions_response.add_actions() + ->mutable_click() + ->mutable_element_to_click() + ->add_selectors("will fail"); + + EXPECT_CALL(mock_service_, OnGetActions(_, _, _, _, _, _)) + .WillOnce(RunOnceCallback<5>(true, Serialize(actions_response))); + std::vector<ProcessedActionProto> processed_actions_capture; + EXPECT_CALL(mock_service_, OnGetNextActions(_, _, _, _, _)) + .WillOnce(DoAll(SaveArg<3>(&processed_actions_capture), + RunOnceCallback<4>(true, ""))); + + delegate_.UpdateNavigationState(/* navigating= */ false, /* error= */ true); + EXPECT_CALL(executor_callback_, Run(_)); + executor_->Run(executor_callback_.Get()); + + ASSERT_EQ(1u, processed_actions_capture.size()); + + // The original error is overwritten; a navigation error is reported. + EXPECT_EQ(NAVIGATION_ERROR, processed_actions_capture[0].status()); + EXPECT_EQ(OTHER_ACTION_STATUS, + processed_actions_capture[0].status_details().original_status()); +} + +TEST_F(ScriptExecutorTest, NavigateWhileRunningInterrupt) { + SetupInterruptibleScript(kScriptPath, "element"); + RegisterInterrupt("interrupt", "interrupt_trigger"); + + ActionsResponseProto interrupt_actions; + InitInterruptActions(&interrupt_actions, "interrupt"); + + // A load even happens when loading the interrupt scripts, so while the + // interrupt is being executed. This should not interfere with the WaitForDom + // action that's running the interrupt. + EXPECT_CALL(mock_service_, OnGetActions(StrEq("interrupt"), _, _, _, _, _)) + .WillRepeatedly( + DoAll(InvokeWithoutArgs( + [this]() { delegate_.UpdateNavigationState(true, false); }), + RunOnceCallback<5>(true, Serialize(interrupt_actions)), + InvokeWithoutArgs([this]() { + delegate_.UpdateNavigationState(false, false); + }))); + + std::vector<ProcessedActionProto> processed_actions1_capture; + std::vector<ProcessedActionProto> processed_actions2_capture; + EXPECT_CALL(mock_service_, OnGetNextActions(_, _, _, _, _)) + .WillOnce(DoAll(SaveArg<3>(&processed_actions1_capture), + RunOnceCallback<4>(true, ""))) + .WillOnce(DoAll(SaveArg<3>(&processed_actions2_capture), + RunOnceCallback<4>(true, ""))); + + EXPECT_CALL(executor_callback_, Run(_)); + executor_->Run(executor_callback_.Get()); + + EXPECT_EQ(ACTION_APPLIED, processed_actions1_capture[0].status()); + EXPECT_EQ(ACTION_APPLIED, processed_actions2_capture[0].status()); +} + +TEST_F(ScriptExecutorTest, ReportNavigationErrors) { + ActionsResponseProto actions_response; + actions_response.add_actions()->mutable_tell()->set_message("a"); + actions_response.add_actions()->mutable_tell()->set_message("b"); + + EXPECT_CALL(mock_service_, OnGetActions(_, _, _, _, _, _)) + .WillOnce(RunOnceCallback<5>(true, Serialize(actions_response))); + std::vector<ProcessedActionProto> processed_actions_capture; + EXPECT_CALL(mock_service_, OnGetNextActions(_, _, _, _, _)) + .WillOnce(DoAll(SaveArg<3>(&processed_actions_capture), + RunOnceCallback<4>(true, ""))); + + delegate_.UpdateNavigationState(/* navigating= */ false, /* error= */ true); + EXPECT_CALL(executor_callback_, Run(_)); + executor_->Run(executor_callback_.Get()); + + ASSERT_THAT(processed_actions_capture, SizeIs(2)); + EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status()); + EXPECT_TRUE(processed_actions_capture[0].navigation_info().has_error()); + EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[1].status()); + EXPECT_TRUE(processed_actions_capture[1].navigation_info().has_error()); +} + +TEST_F(ScriptExecutorTest, ReportNavigationEnd) { + ActionsResponseProto actions_response; + auto* wait_for_dom = actions_response.add_actions()->mutable_wait_for_dom(); + wait_for_dom->mutable_wait_until()->add_selectors("element"); + + EXPECT_CALL(mock_service_, OnGetActions(_, _, _, _, _, _)) + .WillOnce(RunOnceCallback<5>(true, Serialize(actions_response))); + std::vector<ProcessedActionProto> processed_actions_capture; + EXPECT_CALL(mock_service_, OnGetNextActions(_, _, _, _, _)) + .WillOnce(DoAll(SaveArg<3>(&processed_actions_capture), + RunOnceCallback<4>(true, ""))); + + // Navigation starts, before the script is run. + delegate_.UpdateNavigationState(/* navigating= */ true, /* error= */ false); + EXPECT_CALL(executor_callback_, Run(_)); + executor_->Run(executor_callback_.Get()); + + // WaitForDom waits for navigation to end, then checks for the element, which + // fails. + EXPECT_CALL(mock_web_controller_, + OnElementCheck(Eq(Selector({"element"})), _)) + .WillOnce(RunOnceCallback<1>(false)); + delegate_.UpdateNavigationState(/* navigating= */ false, /* error= */ false); + + // Checking for the element succeeds on the second try. Waiting avoids + // depending on the order at which the listeners are called. + EXPECT_CALL(mock_web_controller_, + OnElementCheck(Eq(Selector({"element"})), _)) + .WillOnce(RunOnceCallback<1>(true)); + scoped_task_environment_.FastForwardBy(base::TimeDelta::FromSeconds(1)); + + ASSERT_THAT(processed_actions_capture, SizeIs(1)); + EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status()); + EXPECT_FALSE(processed_actions_capture[0].navigation_info().started()); + EXPECT_TRUE(processed_actions_capture[0].navigation_info().ended()); +} + +TEST_F(ScriptExecutorTest, ReportNavigationStart) { + ActionsResponseProto actions_response; + auto* wait_for_dom = actions_response.add_actions()->mutable_wait_for_dom(); + wait_for_dom->mutable_wait_until()->add_selectors("element"); + + EXPECT_CALL(mock_service_, OnGetActions(_, _, _, _, _, _)) + .WillOnce(RunOnceCallback<5>(true, Serialize(actions_response))); + std::vector<ProcessedActionProto> processed_actions_capture; + EXPECT_CALL(mock_service_, OnGetNextActions(_, _, _, _, _)) + .WillOnce(DoAll(SaveArg<3>(&processed_actions_capture), + RunOnceCallback<4>(true, ""))); + + // As the element doesn't exist, WaitForDom returns and waits for 1s. + EXPECT_CALL(mock_web_controller_, + OnElementCheck(Eq(Selector({"element"})), _)) + .WillOnce(RunOnceCallback<1>(false)); + EXPECT_CALL(executor_callback_, Run(_)); + executor_->Run(executor_callback_.Get()); + + delegate_.UpdateNavigationState(/* navigating= */ true, /* error= */ false); + + // Navigation end forces a re-check, which succeeds + EXPECT_CALL(mock_web_controller_, + OnElementCheck(Eq(Selector({"element"})), _)) + .WillRepeatedly(RunOnceCallback<1>(true)); + delegate_.UpdateNavigationState(/* navigating= */ false, /* error= */ false); + + ASSERT_THAT(processed_actions_capture, SizeIs(1)); + EXPECT_EQ(ACTION_APPLIED, processed_actions_capture[0].status()); + EXPECT_TRUE(processed_actions_capture[0].navigation_info().started()); +} + } // namespace } // namespace autofill_assistant
diff --git a/components/autofill_assistant/browser/service.proto b/components/autofill_assistant/browser/service.proto index 75748971..f516bfe 100644 --- a/components/autofill_assistant/browser/service.proto +++ b/components/autofill_assistant/browser/service.proto
@@ -362,6 +362,8 @@ optional ProcessedActionStatusProto status = 2; + optional ProcessedActionStatusDetailsProto status_details = 19; + oneof result_data { PromptProto.Choice prompt_choice = 5; string html_source = 12; @@ -371,11 +373,36 @@ SetFormFieldValueProto.Result set_form_field_value_result = 17; } + // Reports information about navigation that happened while + // processing the action. This is meant for debugging. + optional NavigationInfoProto navigation_info = 20; +} + +// Extended information about the action status, which provides more details +// about what happened than a simple ProcessedActionStatusProto can. +message ProcessedActionStatusDetailsProto { // More information included for unexpected errors. // // Only set for action whose status are OTHER_ACTION_STATUS or // UNEXPECTED_JS_ERROR. - optional UnexpectedErrorInfoProto unexpected_error_info = 18; + optional UnexpectedErrorInfoProto unexpected_error_info = 1; + + // In some case, such as USER_ABORTED_ACTION and NAVIGATION_ERROR, the status + // reported by the action is overridden after the action failed, to report a + // more appropriate error. When that happens, this field contains the original + // status, to help debugging. + optional ProcessedActionStatusProto original_status = 2; +} + +message NavigationInfoProto { + // Navigation started while processing the current action. + optional bool started = 1; + + // Navigation ended while processing the current action. + optional bool ended = 2; + + // Navigation failed before or during the processing of the current action. + optional bool has_error = 3; } // Extra debugging information included in case of unexpected errors. @@ -499,6 +526,11 @@ // only one is supported. This is generally a scripting error: the selector is // not specific enough. TOO_MANY_ELEMENTS = 18; + + // The browser failed to navigate to a new document for its main frame. Note + // that this doesn't include page load errors, which are reported as + // TIMED_OUT. + NAVIGATION_ERROR = 19; } // The pseudo type values come from
diff --git a/components/autofill_assistant/browser/web_controller.cc b/components/autofill_assistant/browser/web_controller.cc index decee21..c93c709 100644 --- a/components/autofill_assistant/browser/web_controller.cc +++ b/components/autofill_assistant/browser/web_controller.cc
@@ -250,7 +250,7 @@ // anything but a bug in the client. ClientStatus UnexpectedErrorStatus(const std::string& file, int line) { ClientStatus status(OTHER_ACTION_STATUS); - auto* info = status.mutable_unexpected_error_info(); + auto* info = status.mutable_details()->mutable_unexpected_error_info(); info->set_source_file(file); info->set_source_line_number(line); return status; @@ -261,7 +261,7 @@ int line, const runtime::ExceptionDetails* exception) { ClientStatus status(UNEXPECTED_JS_ERROR); - auto* info = status.mutable_unexpected_error_info(); + auto* info = status.mutable_details()->mutable_unexpected_error_info(); info->set_source_file(file); info->set_source_line_number(line); if (exception) {
diff --git a/components/invalidation/impl/fcm_invalidation_service.cc b/components/invalidation/impl/fcm_invalidation_service.cc index 4846628d..99ea617 100644 --- a/components/invalidation/impl/fcm_invalidation_service.cc +++ b/components/invalidation/impl/fcm_invalidation_service.cc
@@ -159,19 +159,7 @@ if (IsStarted()) { return; } - bool is_ready_to_start = IsReadyToStart(); -#if defined(OS_ANDROID) - // IsReadyToStart checks if account is available (active account logged in - // and token is available). As currently observed, FCMInvalidationService - // isn't always notified on Android when token is avaliable. - if (base::FeatureList::IsEnabled( - invalidation::switches:: - kFCMInvalidationsStartOnceActiveAccountAvailable)) { - is_ready_to_start = true; - } -#endif - - if (is_ready_to_start) { + if (IsReadyToStart()) { StartInvalidator(); } else { ReportInvalidatorState(syncer::NOT_STARTED_NO_REFRESH_TOKEN); @@ -214,7 +202,22 @@ } bool FCMInvalidationService::IsReadyToStart() { - if (!identity_provider_->IsActiveAccountWithRefreshToken()) { + bool valid_account_info_available = + identity_provider_->IsActiveAccountWithRefreshToken(); + +#if defined(OS_ANDROID) + // IsReadyToStart checks if account is available (active account logged in + // and token is available). As currently observed, FCMInvalidationService + // isn't always notified on Android when token is available. + if (base::FeatureList::IsEnabled( + invalidation::switches:: + kFCMInvalidationsStartOnceActiveAccountAvailable)) { + valid_account_info_available = + !identity_provider_->GetActiveAccountId().empty(); + } +#endif + + if (!valid_account_info_available) { DVLOG(2) << "Not starting FCMInvalidationService: " << "active account is not available"; return false;
diff --git a/components/keep_alive_registry/keep_alive_types.cc b/components/keep_alive_registry/keep_alive_types.cc index 37190e9f..78a4444 100644 --- a/components/keep_alive_registry/keep_alive_types.cc +++ b/components/keep_alive_registry/keep_alive_types.cc
@@ -19,6 +19,8 @@ return out << "BACKGROUND_MODE_MANAGER"; case KeepAliveOrigin::BACKGROUND_MODE_MANAGER_STARTUP: return out << "BACKGROUND_MODE_MANAGER_STARTUP"; + case KeepAliveOrigin::BACKGROUND_SYNC: + return out << "BACKGROUND_SYNC"; case KeepAliveOrigin::LOGIN_DISPLAY_HOST_WEBUI: return out << "LOGIN_DISPLAY_HOST_WEBUI"; case KeepAliveOrigin::PIN_MIGRATION:
diff --git a/components/keep_alive_registry/keep_alive_types.h b/components/keep_alive_registry/keep_alive_types.h index 879e0b7..b1313d2 100644 --- a/components/keep_alive_registry/keep_alive_types.h +++ b/components/keep_alive_registry/keep_alive_types.h
@@ -24,6 +24,9 @@ BACKGROUND_MODE_MANAGER, BACKGROUND_MODE_MANAGER_STARTUP, + // c/b/background_sync + BACKGROUND_SYNC, + // c/b/chromeos LOGIN_DISPLAY_HOST_WEBUI, PIN_MIGRATION,
diff --git a/components/language/content/browser/ulp_language_code_locator/BUILD.gn b/components/language/content/browser/ulp_language_code_locator/BUILD.gn index 117cefe4..99c5985 100644 --- a/components/language/content/browser/ulp_language_code_locator/BUILD.gn +++ b/components/language/content/browser/ulp_language_code_locator/BUILD.gn
@@ -8,9 +8,9 @@ action("ulp_serialized_to_static_c") { script = "ulp_serialized_to_static_c.py" inputs = [ - "geolanguage-data_rank0.txt", - "geolanguage-data_rank1.txt", - "geolanguage-data_rank2.txt", + "geolanguage-data_rank0.bin", + "geolanguage-data_rank1.bin", + "geolanguage-data_rank2.bin", ] sources = [ "ulp_language_code_locator_helper.h.tmpl", @@ -60,6 +60,7 @@ source_set("unit_tests") { testonly = true sources = [ + "s2langquadtree_datatest.cc", "s2langquadtree_unittest.cc", "ulp_language_code_locator_unittest.cc", ] @@ -74,20 +75,3 @@ "//third_party/s2cellid", ] } - -test("data_tests") { - sources = [ - "//components/test/run_all_unittests.cc", - "s2langquadtree_datatest.cc", - ] - deps = [ - ":s2langquadtree", - ":ulp_language_code_locator", - "//base", - "//base/test:test_support", - "//components/test:test_support", - "//testing/gmock", - "//testing/gtest", - "//third_party/s2cellid", - ] -}
diff --git a/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank0.txt b/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank0.bin similarity index 100% rename from components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank0.txt rename to components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank0.bin Binary files differ
diff --git a/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank1.txt b/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank1.bin similarity index 100% rename from components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank1.txt rename to components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank1.bin Binary files differ
diff --git a/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank2.txt b/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank2.bin similarity index 99% rename from components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank2.txt rename to components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank2.bin index f3dc54b0..02dafc2 100644 --- a/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank2.txt +++ b/components/language/content/browser/ulp_language_code_locator/geolanguage-data_rank2.bin Binary files differ
diff --git a/components/language/content/browser/ulp_language_code_locator/update_data.sh b/components/language/content/browser/ulp_language_code_locator/update_data.sh index c2ef22a3..2f11cf92 100755 --- a/components/language/content/browser/ulp_language_code_locator/update_data.sh +++ b/components/language/content/browser/ulp_language_code_locator/update_data.sh
@@ -19,7 +19,7 @@ fi for i in `seq 0 2`; do - cp ${DIR}/geolanguage-data_rank$i.txt \ + cp ${DIR}/geolanguage-data_rank$i.bin \ components/language/content/browser/ulp_language_code_locator/ cp ${DIR}/celltolang-data_rank$i.csv components/test/data/language/ done
diff --git a/components/page_image_annotation/core/page_annotator.cc b/components/page_image_annotation/core/page_annotator.cc index 5a63ecac4..90d148a 100644 --- a/components/page_image_annotation/core/page_annotator.cc +++ b/components/page_image_annotation/core/page_annotator.cc
@@ -3,6 +3,7 @@ // found in the LICENSE file. #include "components/page_image_annotation/core/page_annotator.h" + #include "base/bind.h" namespace page_image_annotation { @@ -57,8 +58,11 @@ if (lookup == images_.end()) return; + // TODO(crbug.com/916363): get a user's preferred language and pass it here. annotator_ptr_->AnnotateImage( - lookup->second.first.source_id, lookup->second.second.GetPtr(), + lookup->second.first.source_id, + std::string() /* description_language_tag */, + lookup->second.second.GetPtr(), base::BindOnce(&PageAnnotator::NotifyObserver, base::Unretained(this), observer, node_id)); }
diff --git a/components/page_image_annotation/core/page_annotator_unittest.cc b/components/page_image_annotation/core/page_annotator_unittest.cc index 571b1f4..f56ae3b3 100644 --- a/components/page_image_annotation/core/page_annotator_unittest.cc +++ b/components/page_image_annotation/core/page_annotator_unittest.cc
@@ -56,8 +56,11 @@ } void AnnotateImage(const std::string& source_id, + const std::string& description_language_tag, ia_mojom::ImageProcessorPtr image_processor, AnnotateImageCallback callback) override { + CHECK_EQ(description_language_tag, std::string()); + source_ids_.push_back(source_id); image_processors_.push_back(std::move(image_processor));
diff --git a/components/password_manager/core/browser/votes_uploader.cc b/components/password_manager/core/browser/votes_uploader.cc index 334955d3..6f1b45b 100644 --- a/components/password_manager/core/browser/votes_uploader.cc +++ b/components/password_manager/core/browser/votes_uploader.cc
@@ -5,8 +5,10 @@ #include "components/password_manager/core/browser/votes_uploader.h" #include <ctype.h> -#include <map> +#include <algorithm> + +#include "base/logging.h" #include "base/metrics/histogram_macros.h" #include "base/rand_util.h" #include "components/autofill/core/browser/autofill_download_manager.h" @@ -31,8 +33,12 @@ using Logger = autofill::SavePasswordProgressLogger; namespace password_manager { + namespace { +// Contains all special symbols considered for password-generation. +constexpr char kSpecialSymbols[] = "!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~"; + // Sets autofill types of password and new password fields in |field_types|. // |password_type| (the autofill type of new password field) should be equal to // NEW_PASSWORD, PROBABLY_NEW_PASSWORD or NOT_NEW_PASSWORD. These values @@ -124,9 +130,28 @@ bool IsUppercaseLetter(int c) { return 'A' <= c && c <= 'Z'; } + +// Checks if a supplied character |c| is a special symbol. +// Special symbols are defined by the string |kSpecialSymbols|. bool IsSpecialSymbol(int c) { - return ('!' <= c && c <= '/') || (':' <= c && c <= '@') || - ('[' <= c && c <= '`') || ('{' <= c && c <= '~'); + return std::find(std::begin(kSpecialSymbols), std::end(kSpecialSymbols), c) != + std::end(kSpecialSymbols); +} + +// Returns a uniformly distributed random symbol from the set of random symbols +// defined by the string |kSpecialSymbols|. +int GetRandomSpecialSymbol() { + return kSpecialSymbols[base::RandGenerator(base::size(kSpecialSymbols))]; +} + +// Returns a random special symbol used in |password|. +// It is expected that |password| contains at least one special symbol. +int GetRandomSpecialSymbolFromPassword(const base::string16& password) { + std::vector<int> symbols; + std::copy_if(password.begin(), password.end(), std::back_inserter(symbols), + &IsSpecialSymbol); + DCHECK(!symbols.empty()) << "Password must contain at least one symbol."; + return symbols[base::RandGenerator(symbols.size())]; } } // namespace @@ -284,7 +309,7 @@ } if (autofill_type == autofill::PASSWORD) { // The password attributes should be uploaded only on the first save. - DCHECK(form_to_upload.times_used == 0); + DCHECK_EQ(form_to_upload.times_used, 0); GeneratePasswordAttributesVote(form_to_upload.password_value, &form_structure); } @@ -402,8 +427,9 @@ : AutofillUploadContents::Field:: AUTOMATICALLY_TRIGGERED_GENERATION_ON_SIGN_UP_FORM; } - } else + } else { type = AutofillUploadContents::Field::IGNORED_GENERATION_POPUP; + } for (size_t i = 0; i < form_structure->field_count(); ++i) { AutofillField* field = form_structure->field(i); @@ -512,21 +538,30 @@ predicate = &IsSpecialSymbol; character_class_attribute = autofill::PasswordAttribute::kHasSpecialSymbol; } - bool actual_value_for_character_class = - std::any_of(password_value.begin(), password_value.end(), predicate); // Apply the randomized response technique to noisify the actual value // (https://en.wikipedia.org/wiki/Randomized_response). + bool respond_randomly = base::RandGenerator(2); bool randomized_value_for_character_class = - base::RandGenerator(2) ? actual_value_for_character_class - : base::RandGenerator(2); + respond_randomly ? base::RandGenerator(2) + : std::any_of(password_value.begin(), + password_value.end(), predicate); form_structure->set_password_attributes_vote(std::make_pair( character_class_attribute, randomized_value_for_character_class)); + if (character_class_attribute == + autofill::PasswordAttribute::kHasSpecialSymbol && + randomized_value_for_character_class) { + form_structure->set_password_symbol_vote( + respond_randomly ? GetRandomSpecialSymbol() + : GetRandomSpecialSymbolFromPassword(password_value)); + } + size_t actual_length = password_value.size(); size_t randomized_length = actual_length <= 1 || base::RandGenerator(5) == 0 ? actual_length : base::RandGenerator(actual_length - 1) + 1; + form_structure->set_password_length_vote(randomized_length); }
diff --git a/components/password_manager/core/browser/votes_uploader.h b/components/password_manager/core/browser/votes_uploader.h index c02d45d..e40b72d 100644 --- a/components/password_manager/core/browser/votes_uploader.h +++ b/components/password_manager/core/browser/votes_uploader.h
@@ -5,10 +5,12 @@ #ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_VOTES_UPLOADER_H_ #define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_VOTES_UPLOADER_H_ +#include <map> #include <string> +#include <vector> -#include "base/strings/string16.h" #include "base/optional.h" +#include "base/strings/string16.h" #include "components/autofill/core/browser/field_types.h" #include "components/autofill/core/browser/proto/server.pb.h" #include "components/autofill/core/common/password_form.h"
diff --git a/components/password_manager/core/browser/votes_uploader_unittest.cc b/components/password_manager/core/browser/votes_uploader_unittest.cc index cbe12bf..212eb0c 100644 --- a/components/password_manager/core/browser/votes_uploader_unittest.cc +++ b/components/password_manager/core/browser/votes_uploader_unittest.cc
@@ -5,9 +5,11 @@ #include "components/password_manager/core/browser/votes_uploader.h" #include <string> +#include <utility> #include "base/optional.h" #include "base/rand_util.h" +#include "base/strings/string16.h" #include "base/strings/string_number_conversions.h" #include "base/strings/utf_string_conversions.h" #include "base/test/scoped_task_environment.h" @@ -189,7 +191,9 @@ int reported_actual_length = 0; int reported_wrong_length = 0; - for (int i = 0; i < 1000; ++i) { + int kNumberOfRuns = 1000; + + for (int i = 0; i < kNumberOfRuns; ++i) { votes_uploader.GeneratePasswordAttributesVote(password_value, &form_structure); base::Optional<std::pair<autofill::PasswordAttribute, bool>> vote = @@ -231,6 +235,47 @@ } } +TEST_F(VotesUploaderTest, GeneratePasswordSpecialSymbolVote) { + VotesUploader votes_uploader(&client_, true); + + const base::string16 password_value = ASCIIToUTF16("password-withsymbols!"); + const int kNumberOfRuns = 2000; + const int kSpecialSymbolsAttribute = 3; + + autofill::FormData form; + + int correct_symbol_reported = 0; + int wrong_symbol_reported = 0; + int number_of_symbol_votes = 0; + + for (int i = 0; i < kNumberOfRuns; ++i) { + autofill::FormStructure form_structure(form); + + votes_uploader.GeneratePasswordAttributesVote(password_value, + &form_structure); + base::Optional<std::pair<autofill::PasswordAttribute, bool>> vote = + form_structure.get_password_attributes_vote_for_testing(); + + // Continue if the vote is not about special symbols or implies that no + // special symbols are used. + if (static_cast<int>(vote->first) != kSpecialSymbolsAttribute || + !vote->second) { + EXPECT_EQ(form_structure.get_password_symbol_vote_for_testing(), 0); + continue; + } + + number_of_symbol_votes += 1; + + int symbol = form_structure.get_password_symbol_vote_for_testing(); + if (symbol == '-' || symbol == '!') + correct_symbol_reported += 1; + else + wrong_symbol_reported += 1; + } + EXPECT_LT(0.4 * number_of_symbol_votes, correct_symbol_reported); + EXPECT_LT(0.15 * number_of_symbol_votes, wrong_symbol_reported); +} + TEST_F(VotesUploaderTest, GeneratePasswordAttributesVote_OneCharacterPassword) { // |VotesUploader::GeneratePasswordAttributesVote| shouldn't crash if a // password has only one character.
diff --git a/components/policy/resources/policy_templates.json b/components/policy/resources/policy_templates.json index 7336e3bb..fb70e47 100644 --- a/components/policy/resources/policy_templates.json +++ b/components/policy/resources/policy_templates.json
@@ -3517,7 +3517,7 @@ Each list item of the policy is a string that contains an extension ID and, optionally, an "update" URL separated by a semicolon (<ph name="SEMICOLON">;</ph>). The extension ID is the 32-letter string found e.g. on <ph name="CHROME_EXTENSIONS_LINK">chrome://extensions</ph> when in developer mode. The "update" URL, if specified, should point to an Update Manifest XML document as described at <ph name="LINK_TO_EXTENSION_DOC1">https://developer.chrome.com/extensions/autoupdate</ph>. By default, the Chrome Web Store's update URL is used (which currently is "https://clients2.google.com/service/update2/crx"). Note that the "update" URL set in this policy is only used for the initial installation; subsequent updates of the extension employ the update URL indicated in the extension's manifest. Note also that specifying the "update" URL explicitly was mandatory in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> versions up to and including 67. - For example, <ph name="EXTENSION_POLICY_EXAMPLE">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;https://clients2.google.com/service/update2/crx</ph> installs the <ph name="EXTENSION_POLICY_EXAMPLE_EXTENSION_NAME">Chrome Remote Desktop</ph> app from the standard Chrome Web Store "update" URL. For more information about hosting extensions, see: <ph name="LINK_TO_EXTENSION_DOC2">https://developer.chrome.com/extensions/hosting</ph>. + For example, <ph name="EXTENSION_POLICY_EXAMPLE">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;https://clients2.google.com/service/update2/crx</ph> installs the extension with id <ph name="EXTENSION_ID_SAMPLE">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</ph> from the standard Chrome Web Store "update" URL. For more information about hosting extensions, see: <ph name="LINK_TO_EXTENSION_DOC2">https://developer.chrome.com/extensions/hosting</ph>. If this policy is left not set, no apps or extensions are installed automatically and the user can uninstall any app or extension in <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph>. @@ -3761,6 +3761,7 @@ 'type': 'main', 'schema': { 'type': 'boolean' }, 'supported_on': ['chrome.*: 75-'], + 'future': True, 'features': { 'dynamic_refresh': True, 'per_profile': True, @@ -6609,7 +6610,7 @@ 'name': 'EnableSymantecLegacyInfrastructure', 'type': 'main', 'schema': { 'type': 'boolean' }, - 'supported_on': ['chrome.*:66-', 'chrome_os:66-', 'android:66-'], + 'supported_on': ['chrome.*:66-75', 'chrome_os:66-75', 'android:66-75'], 'features': { 'dynamic_refresh': True, 'per_profile': False,
diff --git a/components/spellcheck/common/spellcheck_common.cc b/components/spellcheck/common/spellcheck_common.cc index 94d206ca..82db6b9 100644 --- a/components/spellcheck/common/spellcheck_common.cc +++ b/components/spellcheck/common/spellcheck_common.cc
@@ -122,14 +122,14 @@ {"en-GB", "-8-0"}, {"en-US", "-8-0"}, - // March 2016: Initial check-in of Persian - {"fa-IR", "-7-0"}, - // Feb 2019: Initial check-in of Welsh. {"cy-GB", "-1-0"}, // April 2019: Initial check-in of Armenian. {"hy", "-1-0"}, + + // April 2019: Update Persian + {"fa-IR", "-8-0"}, }; // Generate the bdict file name using default version string or special
diff --git a/components/sync/BUILD.gn b/components/sync/BUILD.gn index 47bf144..b0bba32 100644 --- a/components/sync/BUILD.gn +++ b/components/sync/BUILD.gn
@@ -406,6 +406,7 @@ "model_impl/syncable_service_based_bridge.cc", "model_impl/syncable_service_based_bridge.h", "nigori/keystore_keys_handler.h", + "nigori/nigori_local_change_processor.cc", "nigori/nigori_local_change_processor.h", "nigori/nigori_model_type_processor.cc", "nigori/nigori_model_type_processor.h", @@ -1052,6 +1053,7 @@ "model_impl/model_type_store_impl_unittest.cc", "model_impl/processor_entity_unittest.cc", "model_impl/syncable_service_based_bridge_unittest.cc", + "nigori/nigori_model_type_processor_unittest.cc", "protocol/proto_enum_conversions_unittest.cc", "protocol/proto_value_conversions_unittest.cc", "syncable/change_record_unittest.cc",
diff --git a/components/sync/driver/sync_service.cc b/components/sync/driver/sync_service.cc index 2df9058..d1a5925 100644 --- a/components/sync/driver/sync_service.cc +++ b/components/sync/driver/sync_service.cc
@@ -5,6 +5,7 @@ #include "components/sync/driver/sync_service.h" #include "components/sync/driver/sync_user_settings.h" +#include "components/sync/engine/cycle/sync_cycle_snapshot.h" namespace syncer { @@ -15,6 +16,10 @@ on_destroy_.Run(); } +bool SyncService::HasCompletedSyncCycle() const { + return GetLastCycleSnapshot().is_initialized(); +} + bool SyncService::IsSyncFeatureEnabled() const { // Note: IsFirstSetupComplete() shouldn't usually be true if we don't have a // primary account, but it could happen if the account changes from primary to @@ -60,10 +65,6 @@ return false; } -bool SyncService::IsFirstSetupInProgress() const { - return !GetUserSettings()->IsFirstSetupComplete() && IsSetupInProgress(); -} - bool SyncService::HasUnrecoverableError() const { return HasDisableReason(DISABLE_REASON_UNRECOVERABLE_ERROR); }
diff --git a/components/sync/driver/sync_service.h b/components/sync/driver/sync_service.h index 848ff57..ce7bc3d 100644 --- a/components/sync/driver/sync_service.h +++ b/components/sync/driver/sync_service.h
@@ -221,6 +221,15 @@ // false, but Sync-the-transport might still run. virtual bool IsAuthenticatedAccountPrimary() const = 0; + // Returns whether the SyncService has completed at least one Sync cycle since + // starting up (i.e. since browser startup or signin). This can be useful + // in combination with GetAuthError(), if you need to know if the user's + // refresh token is really valid: Before a Sync cycle has been completed, + // Sync hasn't tried using the refresh token, so doesn't know if it's valid. + // TODO(crbug.com/831579): If Chrome would persist auth errors, this would not + // be necessary. + bool HasCompletedSyncCycle() const; + // The last authentication error that was encountered by the SyncService. This // error can be either from Chrome's identity system (e.g. while trying to get // an access token), or from the Sync server. It gets cleared when the error @@ -269,18 +278,6 @@ bool IsSyncFeatureActive() const; ////////////////////////////////////////////////////////////////////////////// - // INITIAL SETUP / CONSENT - ////////////////////////////////////////////////////////////////////////////// - - // Returns true if initial sync setup is in progress (does not return true - // if the user is customizing sync after already completing setup once). This - // is equivalent to - // IsSetupInProgress() && !GetUserSettings()->IsFirstSetupComplete(). - // Note: This refers to Sync-the-feature. Sync-the-transport may be active - // independent of first-setup state. - bool IsFirstSetupInProgress() const; - - ////////////////////////////////////////////////////////////////////////////// // SETUP-IN-PROGRESS HANDLING //////////////////////////////////////////////////////////////////////////////
diff --git a/components/sync/driver/sync_service_utils.cc b/components/sync/driver/sync_service_utils.cc index ab43d9a3..576bc1f 100644 --- a/components/sync/driver/sync_service_utils.cc +++ b/components/sync/driver/sync_service_utils.cc
@@ -5,10 +5,8 @@ #include "components/sync/driver/sync_service_utils.h" #include "base/metrics/histogram_macros.h" -#include "components/sync/base/sync_prefs.h" #include "components/sync/driver/sync_service.h" #include "components/sync/driver/sync_user_settings.h" -#include "components/sync/engine/cycle/sync_cycle_snapshot.h" #include "google_apis/gaia/google_service_auth_error.h" namespace syncer { @@ -60,14 +58,9 @@ if (sync_service->GetAuthError().IsTransientError()) { return UploadState::INITIALIZING; } - // TODO(crbug.com/831579): We currently need to wait for - // GetLastCycleSnapshot to return an initialized snapshot because we don't - // actually know if the token is valid until sync has tried it. This is - // bad because sync can take arbitrarily long to try the token (especially - // if the user doesn't have history sync enabled). Instead, if the - // identity code would persist persistent auth errors, we could read those - // from startup. - if (!sync_service->GetLastCycleSnapshot().is_initialized()) { + // TODO(crbug.com/831579): We only know if the refresh token is actually + // valid (no auth error) after we've tried talking to the Sync server. + if (!sync_service->HasCompletedSyncCycle()) { return UploadState::INITIALIZING; } return UploadState::ACTIVE;
diff --git a/components/sync/model/fake_model_type_sync_bridge.cc b/components/sync/model/fake_model_type_sync_bridge.cc index 4ead1c4..5e05b68 100644 --- a/components/sync/model/fake_model_type_sync_bridge.cc +++ b/components/sync/model/fake_model_type_sync_bridge.cc
@@ -359,7 +359,7 @@ } ConflictResolution FakeModelTypeSyncBridge::ResolveConflict( - const EntityData& local_data, + const std::string& storage_key, const EntityData& remote_data) const { DCHECK(conflict_resolution_); return std::move(*conflict_resolution_);
diff --git a/components/sync/model/fake_model_type_sync_bridge.h b/components/sync/model/fake_model_type_sync_bridge.h index dc783b80..7fbf807f 100644 --- a/components/sync/model/fake_model_type_sync_bridge.h +++ b/components/sync/model/fake_model_type_sync_bridge.h
@@ -123,7 +123,7 @@ std::string GetStorageKey(const EntityData& entity_data) override; bool SupportsGetStorageKey() const override; ConflictResolution ResolveConflict( - const EntityData& local_data, + const std::string& storage_key, const EntityData& remote_data) const override; void ApplyStopSyncChanges( std::unique_ptr<MetadataChangeList> delete_metadata_change_list) override;
diff --git a/components/sync/model/model_type_sync_bridge.cc b/components/sync/model/model_type_sync_bridge.cc index f1e94ab..b6639f30 100644 --- a/components/sync/model/model_type_sync_bridge.cc +++ b/components/sync/model/model_type_sync_bridge.cc
@@ -37,10 +37,9 @@ } ConflictResolution ModelTypeSyncBridge::ResolveConflict( - const EntityData& local_data, + const std::string& storage_key, const EntityData& remote_data) const { if (remote_data.is_deleted()) { - DCHECK(!local_data.is_deleted()); return ConflictResolution::UseLocal(); } return ConflictResolution::UseRemote();
diff --git a/components/sync/model/model_type_sync_bridge.h b/components/sync/model/model_type_sync_bridge.h index 2247c85..c753f61 100644 --- a/components/sync/model/model_type_sync_bridge.h +++ b/components/sync/model/model_type_sync_bridge.h
@@ -150,7 +150,7 @@ // guaranteed not to match (both be deleted or have identical specifics). A // default implementation chooses the server data unless it is a deletion. virtual ConflictResolution ResolveConflict( - const EntityData& local_data, + const std::string& storage_key, const EntityData& remote_data) const; // Similar to ApplySyncChanges() but called by the processor when sync
diff --git a/components/sync/model/model_type_sync_bridge_unittest.cc b/components/sync/model/model_type_sync_bridge_unittest.cc index 33164f94..761f57b 100644 --- a/components/sync/model/model_type_sync_bridge_unittest.cc +++ b/components/sync/model/model_type_sync_bridge_unittest.cc
@@ -47,19 +47,25 @@ EXPECT_FALSE(local_data.is_deleted()); EXPECT_TRUE(remote_data.is_deleted()); EXPECT_EQ(ConflictResolution::USE_LOCAL, - bridge()->ResolveConflict(local_data, remote_data).type()); + bridge() + ->ResolveConflict(/*storage_key=*/std::string(), remote_data) + .type()); remote_data.specifics.mutable_preference()->set_value("value"); EXPECT_FALSE(local_data.is_deleted()); EXPECT_FALSE(remote_data.is_deleted()); EXPECT_EQ(ConflictResolution::USE_REMOTE, - bridge()->ResolveConflict(local_data, remote_data).type()); + bridge() + ->ResolveConflict(/*storage_key=*/std::string(), remote_data) + .type()); local_data.specifics.clear_preference(); EXPECT_TRUE(local_data.is_deleted()); EXPECT_FALSE(remote_data.is_deleted()); EXPECT_EQ(ConflictResolution::USE_REMOTE, - bridge()->ResolveConflict(local_data, remote_data).type()); + bridge() + ->ResolveConflict(/*storage_key=*/std::string(), remote_data) + .type()); } } // namespace
diff --git a/components/sync/model_impl/client_tag_based_model_type_processor.cc b/components/sync/model_impl/client_tag_based_model_type_processor.cc index 8c8469d..48ca0fc 100644 --- a/components/sync/model_impl/client_tag_based_model_type_processor.cc +++ b/components/sync/model_impl/client_tag_based_model_type_processor.cc
@@ -606,7 +606,7 @@ continue; } - entity->ReceiveCommitResponse(data, commit_only_); + entity->ReceiveCommitResponse(data, commit_only_, type_); if (commit_only_) { if (!entity->IsUnsynced()) { @@ -861,15 +861,10 @@ // The remote data isn't actually changing from the last remote data that // was seen, so it must have been a re-encryption and can be ignored. resolution_type = ConflictResolution::IGNORE_REMOTE_ENCRYPTION; - } else if (entity->RequiresCommitData()) { - // TODO(crbug.com/951752): This is wrong, but since we don't have the local - // data, this is the best we could do. We should fix this be loading the - // local data and resolve the conflict accordingly. - resolution_type = ConflictResolution::USE_REMOTE; } else { // There's a real data conflict here; let the bridge resolve it. ConflictResolution resolution = - bridge_->ResolveConflict(entity->commit_data(), remote_data); + bridge_->ResolveConflict(entity->storage_key(), remote_data); resolution_type = resolution.type(); new_data = resolution.ExtractData(); }
diff --git a/components/sync/model_impl/processor_entity.cc b/components/sync/model_impl/processor_entity.cc index 81c19b2..a85ff9b 100644 --- a/components/sync/model_impl/processor_entity.cc +++ b/components/sync/model_impl/processor_entity.cc
@@ -154,7 +154,7 @@ } void ProcessorEntity::RecordEntityUpdateLatency(int64_t update_version, - const ModelType& type) { + ModelType type) { auto first_greater = unsynced_time_per_committed_server_version_.upper_bound(update_version); if (first_greater == unsynced_time_per_committed_server_version_.begin()) { @@ -277,7 +277,8 @@ } void ProcessorEntity::ReceiveCommitResponse(const CommitResponseData& data, - bool commit_only) { + bool commit_only, + ModelType type_for_uma) { DCHECK_EQ(metadata_.client_tag_hash(), data.client_tag_hash); DCHECK_GT(data.sequence_number, metadata_.acked_sequence_number()); // Version is not valid for commit only types, as it's stripped before being @@ -310,6 +311,15 @@ commit_data_->id = metadata_.server_id(); } } + + // |unsynced_time_| can be null if the commit spanned a browser restart, + // since we don't currently persist this field. In such cases, we assume + // it takes longer than 3 minutes (saturation bucket). + base::UmaHistogramMediumTimes(std::string("Sync.CommitLatency.") + + ModelTypeToHistogramSuffix(type_for_uma), + unsynced_time_.is_null() + ? base::TimeDelta::Max() + : base::Time::Now() - unsynced_time_); } void ProcessorEntity::ClearTransientSyncState() {
diff --git a/components/sync/model_impl/processor_entity.h b/components/sync/model_impl/processor_entity.h index af4259f..2951d8b 100644 --- a/components/sync/model_impl/processor_entity.h +++ b/components/sync/model_impl/processor_entity.h
@@ -70,7 +70,7 @@ // Returns true if the specified update version does not contain new data. bool UpdateIsReflection(int64_t update_version) const; - void RecordEntityUpdateLatency(int64_t update_version, const ModelType& type); + void RecordEntityUpdateLatency(int64_t update_version, ModelType type); // Records that an update from the server was received but ignores its data. void RecordIgnoredUpdate(const UpdateResponseData& response_data); @@ -101,7 +101,9 @@ // unset IsUnsynced(). If many local changes occur in quick succession, it's // possible that the committed item was already out of date by the time it // reached the server. - void ReceiveCommitResponse(const CommitResponseData& data, bool commit_only); + void ReceiveCommitResponse(const CommitResponseData& data, + bool commit_only, + ModelType type_for_uma); // Clears any in-memory sync state associated with outstanding commits. void ClearTransientSyncState();
diff --git a/components/sync/model_impl/processor_entity_unittest.cc b/components/sync/model_impl/processor_entity_unittest.cc index baf1cdc..79d04b82 100644 --- a/components/sync/model_impl/processor_entity_unittest.cc +++ b/components/sync/model_impl/processor_entity_unittest.cc
@@ -5,11 +5,14 @@ #include "components/sync/model_impl/processor_entity.h" #include <utility> +#include <vector> +#include "base/test/metrics/histogram_tester.h" #include "components/sync/base/model_type.h" #include "components/sync/base/time.h" #include "components/sync/engine/non_blocking_sync_common.h" #include "components/sync/protocol/sync.pb.h" +#include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" namespace syncer { @@ -23,6 +26,7 @@ const char kValue1[] = "value1"; const char kValue2[] = "value2"; const char kValue3[] = "value3"; +const ModelType kUnspecifiedModelTypeForUma = ModelType::UNSPECIFIED; sync_pb::EntitySpecifics GenerateSpecifics(const std::string& name, const std::string& value) { @@ -206,7 +210,8 @@ EXPECT_EQ(entity->metadata().specifics_hash(), request.specifics_hash); // Ack the commit. - entity->ReceiveCommitResponse(GenerateAckData(request, kId, 1), false); + entity->ReceiveCommitResponse(GenerateAckData(request, kId, 1), false, + kUnspecifiedModelTypeForUma); EXPECT_EQ(kId, entity->metadata().server_id()); EXPECT_FALSE(entity->metadata().is_deleted()); @@ -358,7 +363,8 @@ EXPECT_FALSE(entity->RequiresCommitRequest()); // Ack the commit. - entity->ReceiveCommitResponse(GenerateAckData(request, kId, 2), false); + entity->ReceiveCommitResponse(GenerateAckData(request, kId, 2), false, + kUnspecifiedModelTypeForUma); EXPECT_EQ(1, entity->metadata().sequence_number()); EXPECT_EQ(1, entity->metadata().acked_sequence_number()); @@ -423,7 +429,8 @@ EXPECT_EQ(entity->metadata().specifics_hash(), request.specifics_hash); // Ack the deletion. - entity->ReceiveCommitResponse(GenerateAckData(request, kId, 2), false); + entity->ReceiveCommitResponse(GenerateAckData(request, kId, 2), false, + kUnspecifiedModelTypeForUma); EXPECT_TRUE(entity->metadata().is_deleted()); EXPECT_EQ(1, entity->metadata().sequence_number()); @@ -479,7 +486,8 @@ EXPECT_FALSE(entity->CanClearMetadata()); // Ack the first commit. - entity->ReceiveCommitResponse(GenerateAckData(request_v1, kId, 2), false); + entity->ReceiveCommitResponse(GenerateAckData(request_v1, kId, 2), false, + kUnspecifiedModelTypeForUma); EXPECT_EQ(2, entity->metadata().sequence_number()); EXPECT_EQ(1, entity->metadata().acked_sequence_number()); @@ -495,7 +503,8 @@ EXPECT_FALSE(entity->HasCommitData()); // Ack the second commit. - entity->ReceiveCommitResponse(GenerateAckData(request_v2, kId, 3), false); + entity->ReceiveCommitResponse(GenerateAckData(request_v2, kId, 3), false, + kUnspecifiedModelTypeForUma); EXPECT_EQ(2, entity->metadata().sequence_number()); EXPECT_EQ(2, entity->metadata().acked_sequence_number()); @@ -523,7 +532,8 @@ // Before receiving commit response make local modification to the entity. entity->MakeLocalChange(GenerateEntityData(kHash, kName, kValue2)); - entity->ReceiveCommitResponse(GenerateAckData(request, kId, 1), false); + entity->ReceiveCommitResponse(GenerateAckData(request, kId, 1), false, + kUnspecifiedModelTypeForUma); // Receiving commit response with valid id should update // ProcessorEntity. Consecutive commit requests should include updated @@ -585,4 +595,50 @@ EXPECT_EQ(kId, request.entity->id); } +// Tests that the Sync.CommitLatency metric is correctly updated. +TEST_F(ProcessorEntityTest, CommitLatencyUmaTest) { + base::HistogramTester histogram_tester; + std::unique_ptr<ProcessorEntity> entity = CreateNew(); + CommitRequestData request; + entity->MakeLocalChange(GenerateEntityData(kHash, kName, kValue1)); + entity->InitializeCommitRequestData(&request); + entity->ReceiveCommitResponse(GenerateAckData(request, kId, 1), false, + /*type_for_uma=*/ModelType::BOOKMARKS); + + std::vector<base::Bucket> histogram_samples = + histogram_tester.GetAllSamples("Sync.CommitLatency.BOOKMARK"); + ASSERT_THAT(histogram_samples, testing::SizeIs(1)); + // Verify that the sample is in any of the buckets for 0 millis to 2 minutes. + EXPECT_EQ(1, histogram_samples.at(0).count); + EXPECT_LE(histogram_samples.at(0).min, + base::TimeDelta::FromMinutes(2).InMilliseconds()); +} + +// Tests that the Sync.CommitLatency metric is correctly updated in case the +// latency is unknown. +TEST_F(ProcessorEntityTest, CommitUnknownLatencyUmaTest) { + base::HistogramTester histogram_tester; + CommitRequestData request; + + // Create new entity and preserve its metadata. + std::unique_ptr<ProcessorEntity> entity = CreateNew(); + entity->MakeLocalChange(GenerateEntityData(kHash, kName, kValue1)); + sync_pb::EntityMetadata entity_metadata = entity->metadata(); + + // Restore entity from metadata and emulate bridge passing different specifics + // to SetCommitData. + entity = RestoreFromMetadata(std::move(entity_metadata)); + auto entity_data = GenerateEntityData(kHash, kName, kValue2); + entity->SetCommitData(std::move(entity_data)); + + entity->InitializeCommitRequestData(&request); + entity->ReceiveCommitResponse(GenerateAckData(request, kId, 1), false, + /*type_for_uma=*/ModelType::BOOKMARKS); + + EXPECT_THAT(histogram_tester.GetAllSamples("Sync.CommitLatency.BOOKMARK"), + testing::ElementsAre(base::Bucket( + /*min=*/base::TimeDelta::FromMinutes(3).InMilliseconds(), + /*count=*/1))); +} + } // namespace syncer
diff --git a/components/sync/model_impl/syncable_service_based_bridge.cc b/components/sync/model_impl/syncable_service_based_bridge.cc index 34c2fb3f..4c342613 100644 --- a/components/sync/model_impl/syncable_service_based_bridge.cc +++ b/components/sync/model_impl/syncable_service_based_bridge.cc
@@ -402,7 +402,7 @@ } ConflictResolution SyncableServiceBasedBridge::ResolveConflict( - const EntityData& local_data, + const std::string& storage_key, const EntityData& remote_data) const { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); @@ -410,8 +410,6 @@ return ConflictResolution::UseRemote(); } - DCHECK(!local_data.is_deleted()); - // Ignore local changes for extensions/apps when server had a delete, to // avoid unwanted reinstall of an uninstalled extension. if (type_ == EXTENSIONS || type_ == APPS) {
diff --git a/components/sync/model_impl/syncable_service_based_bridge.h b/components/sync/model_impl/syncable_service_based_bridge.h index 6b2ab93..3a1a64a 100644 --- a/components/sync/model_impl/syncable_service_based_bridge.h +++ b/components/sync/model_impl/syncable_service_based_bridge.h
@@ -62,7 +62,7 @@ bool SupportsGetClientTag() const override; bool SupportsGetStorageKey() const override; ConflictResolution ResolveConflict( - const EntityData& local_data, + const std::string& storage_key, const EntityData& remote_data) const override; void ApplyStopSyncChanges( std::unique_ptr<MetadataChangeList> delete_metadata_change_list) override;
diff --git a/components/sync/nigori/DEPS b/components/sync/nigori/DEPS index b9dd7f7f..b5d098f 100644 --- a/components/sync/nigori/DEPS +++ b/components/sync/nigori/DEPS
@@ -1,5 +1,7 @@ include_rules = [ + "+components/sync/base", "+components/sync/engine", "+components/sync/model", + "+components/sync/model_impl", "+components/sync/protocol", ]
diff --git a/components/sync/nigori/nigori_local_change_processor.cc b/components/sync/nigori/nigori_local_change_processor.cc new file mode 100644 index 0000000..9e8ea39 --- /dev/null +++ b/components/sync/nigori/nigori_local_change_processor.cc
@@ -0,0 +1,19 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/sync/nigori/nigori_local_change_processor.h" + +#include <memory> + +namespace syncer { + +NigoriMetadataBatch::NigoriMetadataBatch() = default; + +NigoriMetadataBatch::NigoriMetadataBatch(NigoriMetadataBatch&& other) + : model_type_state(std::move(other.model_type_state)), + entity_metadata(std::move(other.entity_metadata)) {} + +NigoriMetadataBatch::~NigoriMetadataBatch() = default; + +} // namespace syncer
diff --git a/components/sync/nigori/nigori_local_change_processor.h b/components/sync/nigori/nigori_local_change_processor.h index bc8476e..35b3cad 100644 --- a/components/sync/nigori/nigori_local_change_processor.h +++ b/components/sync/nigori/nigori_local_change_processor.h
@@ -9,6 +9,7 @@ #include <utility> #include "base/macros.h" +#include "base/optional.h" #include "components/sync/protocol/entity_metadata.pb.h" #include "components/sync/protocol/model_type_state.pb.h" @@ -17,6 +18,18 @@ class NigoriSyncBridge; struct EntityData; +struct NigoriMetadataBatch { + NigoriMetadataBatch(); + NigoriMetadataBatch(NigoriMetadataBatch&& other); + ~NigoriMetadataBatch(); + + sync_pb::ModelTypeState model_type_state; + base::Optional<sync_pb::EntityMetadata> entity_metadata; + + private: + DISALLOW_COPY_AND_ASSIGN(NigoriMetadataBatch); +}; + // Interface analogous to ModelTypeChangeProcessor for Nigori, used to propagate // local changes from the bridge to the processor. class NigoriLocalChangeProcessor { @@ -26,19 +39,17 @@ virtual ~NigoriLocalChangeProcessor() = default; // The Nigori model is expected to call this method as soon as possible during - // initialization, and must be called before invoking Put(). - virtual void ModelReadyToSync( - NigoriSyncBridge* bridge, - std::pair<sync_pb::ModelTypeState, sync_pb::EntityMetadata> - nigori_metadata) = 0; + // initialization, and must be called before invoking Put(). |bridge| must not + // be null and most outlive the NigoriLocalChangeProcessor. + virtual void ModelReadyToSync(NigoriSyncBridge* bridge, + NigoriMetadataBatch nigori_metadata) = 0; // Informs the Nigori processor of a new or updated Nigori entity. virtual void Put(std::unique_ptr<EntityData> entity_data) = 0; // Returns both the entity metadata and model type state such that the Nigori // model takes care of persisting them. - virtual std::pair<sync_pb::ModelTypeState, sync_pb::EntityMetadata> - GetMetadata() = 0; + virtual NigoriMetadataBatch GetMetadata() = 0; private: DISALLOW_COPY_AND_ASSIGN(NigoriLocalChangeProcessor);
diff --git a/components/sync/nigori/nigori_model_type_processor.cc b/components/sync/nigori/nigori_model_type_processor.cc index c697dd4..31d22fa 100644 --- a/components/sync/nigori/nigori_model_type_processor.cc +++ b/components/sync/nigori/nigori_model_type_processor.cc
@@ -4,10 +4,20 @@ #include "components/sync/nigori/nigori_model_type_processor.h" +#include "components/sync/base/time.h" #include "components/sync/engine/commit_queue.h" +#include "components/sync/model_impl/processor_entity.h" namespace syncer { +namespace { + +// TODO(mamir): remove those and adjust the code accordingly. +const char kNigoriStorageKey[] = "NigoriStorageKey"; +const char kNigoriClientTagHash[] = "NigoriClientTagHash"; + +} // namespace + NigoriModelTypeProcessor::NigoriModelTypeProcessor() : bridge_(nullptr) {} NigoriModelTypeProcessor::~NigoriModelTypeProcessor() { @@ -78,25 +88,74 @@ void NigoriModelTypeProcessor::ModelReadyToSync( NigoriSyncBridge* bridge, - std::pair<sync_pb::ModelTypeState, sync_pb::EntityMetadata> - nigori_metadata) { + NigoriMetadataBatch nigori_metadata) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); DCHECK(bridge); + DCHECK(!model_ready_to_sync_); bridge_ = bridge; + model_ready_to_sync_ = true; + + // Abort if the model already experienced an error. + if (model_error_) { + return; + } + + if (nigori_metadata.model_type_state.initial_sync_done() && + nigori_metadata.entity_metadata) { + model_type_state_ = std::move(nigori_metadata.model_type_state); + sync_pb::EntityMetadata metadata = + std::move(*nigori_metadata.entity_metadata); + metadata.set_client_tag_hash(kNigoriClientTagHash); + entity_ = ProcessorEntity::CreateFromMetadata(kNigoriStorageKey, + std::move(metadata)); + } else { + // First time syncing or persisted data are corrupted; initialize metadata. + model_type_state_.mutable_progress_marker()->set_data_type_id( + sync_pb::EntitySpecifics::kNigoriFieldNumber); + } + // TODO(mamir): ConnectIfReady(); NOTIMPLEMENTED(); } void NigoriModelTypeProcessor::Put(std::unique_ptr<EntityData> entity_data) { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); + DCHECK(entity_data); + DCHECK(!entity_data->is_deleted()); + DCHECK(!entity_data->is_folder); + DCHECK(!entity_data->non_unique_name.empty()); + DCHECK(!entity_data->specifics.has_encrypted()); + DCHECK_EQ(NIGORI, GetModelTypeFromSpecifics(entity_data->specifics)); + DCHECK(entity_); + + if (!model_type_state_.initial_sync_done()) { + // Ignore changes before the initial sync is done. + return; + } + + if (entity_->MatchesData(*entity_data)) { + // Ignore changes that don't actually change anything. + return; + } + + entity_->MakeLocalChange(std::move(entity_data)); + // TODO(mamir): NudgeForCommitIfNeeded(); NOTIMPLEMENTED(); } -std::pair<sync_pb::ModelTypeState, sync_pb::EntityMetadata> -NigoriModelTypeProcessor::GetMetadata() { +NigoriMetadataBatch NigoriModelTypeProcessor::GetMetadata() { DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - NOTIMPLEMENTED(); - return std::pair<sync_pb::ModelTypeState, sync_pb::EntityMetadata>( - sync_pb::ModelTypeState(), sync_pb::EntityMetadata()); + DCHECK(IsTrackingMetadata()); + DCHECK(entity_); + + NigoriMetadataBatch nigori_metadata_batch; + nigori_metadata_batch.model_type_state = model_type_state_; + nigori_metadata_batch.entity_metadata = entity_->metadata(); + + return nigori_metadata_batch; +} + +bool NigoriModelTypeProcessor::IsTrackingMetadata() { + return model_type_state_.initial_sync_done(); } } // namespace syncer
diff --git a/components/sync/nigori/nigori_model_type_processor.h b/components/sync/nigori/nigori_model_type_processor.h index fed0e00..b87a957 100644 --- a/components/sync/nigori/nigori_model_type_processor.h +++ b/components/sync/nigori/nigori_model_type_processor.h
@@ -18,6 +18,7 @@ namespace syncer { class NigoriSyncBridge; +class ProcessorEntity; class NigoriModelTypeProcessor : public ModelTypeProcessor, public ModelTypeControllerDelegate, @@ -45,17 +46,30 @@ void RecordMemoryUsageAndCountsHistograms() override; // NigoriLocalChangeProcessor implementation. - void ModelReadyToSync( - NigoriSyncBridge* bridge, - std::pair<sync_pb::ModelTypeState, sync_pb::EntityMetadata> - nigori_metadata) override; + void ModelReadyToSync(NigoriSyncBridge* bridge, + NigoriMetadataBatch nigori_metadata) override; void Put(std::unique_ptr<EntityData> entity_data) override; - std::pair<sync_pb::ModelTypeState, sync_pb::EntityMetadata> GetMetadata() - override; + NigoriMetadataBatch GetMetadata() override; private: + bool IsTrackingMetadata(); + // The bridge owns this processor instance so the pointer should never become + // invalid. NigoriSyncBridge* bridge_; + // The model type metadata (progress marker, initial sync done, etc). + sync_pb::ModelTypeState model_type_state_; + + // Whether the model has initialized its internal state for sync (and provided + // metadata). + bool model_ready_to_sync_ = false; + + // The first model error that occurred, if any. Stored to track model state + // and so it can be passed to sync if it happened prior to sync being ready. + base::Optional<ModelError> model_error_; + + std::unique_ptr<ProcessorEntity> entity_; + SEQUENCE_CHECKER(sequence_checker_); DISALLOW_COPY_AND_ASSIGN(NigoriModelTypeProcessor);
diff --git a/components/sync/nigori/nigori_model_type_processor_unittest.cc b/components/sync/nigori/nigori_model_type_processor_unittest.cc new file mode 100644 index 0000000..04df18c --- /dev/null +++ b/components/sync/nigori/nigori_model_type_processor_unittest.cc
@@ -0,0 +1,120 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "components/sync/nigori/nigori_model_type_processor.h" + +#include <memory> +#include <string> + +#include "components/sync/base/time.h" +#include "components/sync/nigori/nigori_sync_bridge.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" + +namespace syncer { + +namespace { + +using testing::Eq; +using testing::Ne; + +const char kNigoriNonUniqueName[] = "nigori"; + +class MockNigoriSyncBridge : public NigoriSyncBridge { + public: + MockNigoriSyncBridge() = default; + ~MockNigoriSyncBridge() = default; + + MOCK_METHOD1( + MergeSyncData, + base::Optional<ModelError>(const base::Optional<EntityData>& data)); + MOCK_METHOD1(ApplySyncChanges, + base::Optional<ModelError>(const EntityData& data)); + MOCK_METHOD0(GetData, std::unique_ptr<EntityData>()); + MOCK_METHOD2(ResolveConflict, + ConflictResolution(const EntityData& local_data, + const EntityData& remote_data)); + MOCK_METHOD0(ApplyDisableSyncChanges, void()); +}; + +class NigoriModelTypeProcessorTest : public testing::Test { + public: + NigoriModelTypeProcessorTest() = default; + + void SimulateModelReadyToSyncWithInitialSyncDone() { + NigoriMetadataBatch nigori_metadata_batch; + nigori_metadata_batch.model_type_state.set_initial_sync_done(true); + nigori_metadata_batch.entity_metadata = sync_pb::EntityMetadata(); + nigori_metadata_batch.entity_metadata->set_creation_time( + TimeToProtoTime(base::Time::Now())); + nigori_metadata_batch.entity_metadata->set_sequence_number(0); + processor_.ModelReadyToSync(mock_nigori_sync_bridge(), + std::move(nigori_metadata_batch)); + } + + MockNigoriSyncBridge* mock_nigori_sync_bridge() { + return &mock_nigori_sync_bridge_; + } + + NigoriModelTypeProcessor* processor() { return &processor_; } + + private: + testing::NiceMock<MockNigoriSyncBridge> mock_nigori_sync_bridge_; + NigoriModelTypeProcessor processor_; +}; + +TEST_F(NigoriModelTypeProcessorTest, + ShouldTrackTheMetadataWhenInitialSyncDone) { + // Build a model type state with a specific cache guid. + const std::string kCacheGuid = "cache_guid"; + sync_pb::ModelTypeState model_type_state; + model_type_state.set_initial_sync_done(true); + model_type_state.set_cache_guid(kCacheGuid); + + // Build entity metadata with a specific sequence number. + const int kSequenceNumber = 100; + sync_pb::EntityMetadata entity_metadata; + entity_metadata.set_sequence_number(kSequenceNumber); + entity_metadata.set_creation_time(TimeToProtoTime(base::Time::Now())); + + NigoriMetadataBatch nigori_metadata_batch; + nigori_metadata_batch.model_type_state = model_type_state; + nigori_metadata_batch.entity_metadata = entity_metadata; + + processor()->ModelReadyToSync(mock_nigori_sync_bridge(), + std::move(nigori_metadata_batch)); + + // The model type state and the metadata should have been stored in the + // processor. + NigoriMetadataBatch processor_metadata_batch = processor()->GetMetadata(); + EXPECT_THAT(processor_metadata_batch.model_type_state.cache_guid(), + Eq(kCacheGuid)); + ASSERT_TRUE(processor_metadata_batch.entity_metadata); + EXPECT_THAT(processor_metadata_batch.entity_metadata->sequence_number(), + Eq(kSequenceNumber)); +} + +TEST_F(NigoriModelTypeProcessorTest, ShouldIncrementSequenceNumberWhenPut) { + SimulateModelReadyToSyncWithInitialSyncDone(); + base::Optional<sync_pb::EntityMetadata> entity_metadata1 = + processor()->GetMetadata().entity_metadata; + ASSERT_TRUE(entity_metadata1); + + auto entity_data = std::make_unique<syncer::EntityData>(); + entity_data->specifics.mutable_nigori(); + entity_data->non_unique_name = kNigoriNonUniqueName; + + processor()->Put(std::move(entity_data)); + + base::Optional<sync_pb::EntityMetadata> entity_metadata2 = + processor()->GetMetadata().entity_metadata; + ASSERT_TRUE(entity_metadata1); + + EXPECT_THAT(entity_metadata2->sequence_number(), + Eq(entity_metadata1->sequence_number() + 1)); +} + +} // namespace + +} // namespace syncer
diff --git a/components/test/data/language/celltolang-data_rank0.csv b/components/test/data/language/celltolang-data_rank0.csv new file mode 100644 index 0000000..39b8c5b0 --- /dev/null +++ b/components/test/data/language/celltolang-data_rank0.csv
@@ -0,0 +1,32223 @@ +9.200000,93.800000,hi +10.400000,93.800000,hi +10.500000,93.800000,hi +10.500000,93.700000,hi +10.500000,93.600000,hi +10.600000,93.500000,hi +10.500000,93.500000,hi +10.400000,93.500000,hi +10.300000,93.500000,hi +10.300000,93.600000,hi +10.400000,93.600000,hi +10.400000,93.700000,hi +10.300000,93.700000,hi +10.200000,93.700000,hi +10.200000,93.600000,hi +10.100000,93.600000,hi +10.100000,93.700000,hi +10.000000,93.700000,hi +9.900000,93.700000,hi +9.900000,93.600000,hi +10.000000,93.600000,hi +9.900000,93.500000,hi +10.000000,93.500000,hi +10.100000,93.500000,hi +10.200000,93.500000,hi +10.200000,93.400000,hi +10.200000,93.300000,hi +10.100000,93.300000,hi +10.100000,93.400000,hi +10.000000,93.400000,hi +9.900000,93.400000,hi +9.900000,93.300000,hi +10.000000,93.300000,hi +10.000000,93.200000,hi +9.900000,93.200000,hi +9.900000,93.100000,hi +10.000000,93.100000,hi +10.100000,93.100000,hi +10.100000,93.200000,hi +10.200000,93.200000,hi +10.200000,93.100000,hi +10.300000,93.100000,hi +10.400000,93.100000,hi +10.400000,93.200000,hi +10.300000,93.200000,hi +10.300000,93.300000,hi +10.300000,93.400000,hi +10.400000,93.400000,hi +10.400000,93.300000,hi +10.500000,93.300000,hi +10.500000,93.400000,hi +10.600000,93.400000,hi +10.600000,93.300000,hi +10.600000,93.200000,hi +10.500000,93.200000,hi +10.500000,93.100000,hi +10.600000,93.100000,hi +10.600000,93.000000,hi +10.500000,93.000000,hi +10.300000,93.000000,hi +10.400000,93.000000,hi +10.400000,92.900000,hi +10.300000,92.900000,hi +10.300000,92.800000,hi +10.400000,92.800000,hi +10.500000,92.800000,hi +10.500000,92.900000,hi +10.600000,92.900000,hi +10.600000,92.800000,hi +10.600000,92.700000,hi +10.500000,92.700000,hi +10.600000,92.600000,hi +10.600000,92.500000,hi +10.500000,92.500000,hi +10.500000,92.600000,hi +10.400000,92.600000,hi +10.400000,92.500000,hi +10.300000,92.500000,hi +10.300000,92.600000,hi +10.400000,92.700000,hi +10.300000,92.700000,hi +10.200000,92.700000,hi +10.100000,92.700000,hi +10.200000,92.600000,hi +10.200000,92.500000,hi +10.100000,92.500000,hi +10.100000,92.600000,hi +10.000000,92.600000,hi +10.000000,92.500000,hi +9.900000,92.500000,hi +9.900000,92.600000,hi +10.000000,92.700000,hi +9.900000,92.700000,hi +9.900000,92.800000,hi +9.900000,92.900000,hi +10.000000,92.900000,hi +10.000000,92.800000,hi +10.100000,92.800000,hi +10.200000,92.800000,hi +10.200000,92.900000,hi +10.100000,92.900000,hi +10.100000,93.000000,hi +10.200000,93.000000,hi +10.000000,93.000000,hi +9.900000,93.000000,hi +9.800000,93.000000,hi +9.600000,93.000000,hi +9.700000,93.000000,hi +9.700000,92.900000,hi +9.600000,92.900000,hi +9.600000,92.800000,hi +9.700000,92.800000,hi +9.800000,92.800000,hi +9.800000,92.900000,hi +9.800000,92.700000,hi +9.800000,92.500000,hi +9.800000,92.600000,hi +9.700000,92.600000,hi +9.700000,92.500000,hi +9.600000,92.500000,hi +9.600000,92.600000,hi +9.700000,92.700000,hi +9.600000,92.700000,hi +9.500000,92.700000,hi +9.400000,92.700000,hi +9.500000,92.600000,hi +9.500000,92.500000,hi +9.400000,92.500000,hi +9.400000,92.600000,hi +9.300000,92.600000,hi +9.300000,92.500000,hi +9.200000,92.500000,hi +9.200000,92.600000,hi +9.300000,92.700000,hi +9.200000,92.700000,hi +9.200000,92.800000,hi +9.200000,92.900000,hi +9.300000,92.900000,hi +9.300000,92.800000,hi +9.400000,92.800000,hi +9.500000,92.800000,hi +9.500000,92.900000,hi +9.400000,92.900000,hi +9.400000,93.000000,hi +9.500000,93.000000,hi +9.300000,93.000000,hi +9.200000,93.000000,hi +9.200000,93.100000,hi +9.300000,93.100000,hi +9.300000,93.200000,hi +9.200000,93.200000,hi +9.200000,93.300000,hi +9.200000,93.400000,hi +9.300000,93.400000,hi +9.300000,93.300000,hi +9.400000,93.300000,hi +9.400000,93.400000,hi +9.500000,93.400000,hi +9.500000,93.300000,hi +9.500000,93.200000,hi +9.400000,93.200000,hi +9.400000,93.100000,hi +9.500000,93.100000,hi +9.600000,93.100000,hi +9.600000,93.200000,hi +9.700000,93.200000,hi +9.700000,93.100000,hi +9.800000,93.100000,hi +9.800000,93.200000,hi +9.800000,93.300000,hi +9.800000,93.400000,hi +9.700000,93.400000,hi +9.700000,93.300000,hi +9.600000,93.300000,hi +9.600000,93.400000,hi +9.600000,93.500000,hi +9.700000,93.500000,hi +9.800000,93.500000,hi +9.800000,93.600000,hi +9.700000,93.600000,hi +9.600000,93.600000,hi +9.600000,93.700000,hi +9.500000,93.700000,hi +9.400000,93.700000,hi +9.400000,93.600000,hi +9.500000,93.600000,hi +9.500000,93.500000,hi +9.400000,93.500000,hi +9.300000,93.500000,hi +9.200000,93.500000,hi +9.200000,93.600000,hi +9.300000,93.600000,hi +9.300000,93.700000,hi +9.200000,93.700000,hi +9.100000,93.700000,hi +9.000000,93.700000,hi +9.000000,93.600000,hi +9.100000,93.600000,hi +9.100000,93.500000,hi +9.000000,93.500000,hi +8.900000,93.500000,hi +8.900000,93.600000,hi +8.900000,93.700000,hi +8.800000,93.700000,hi +8.800000,93.600000,hi +8.700000,93.600000,hi +8.700000,93.700000,hi +8.600000,93.700000,hi +8.500000,93.700000,hi +8.500000,93.600000,hi +8.600000,93.600000,hi +8.500000,93.500000,hi +8.600000,93.500000,hi +8.700000,93.500000,hi +8.800000,93.500000,hi +8.800000,93.400000,hi +8.800000,93.300000,hi +8.700000,93.300000,hi +8.700000,93.400000,hi +8.600000,93.400000,hi +8.500000,93.400000,hi +8.500000,93.300000,hi +8.600000,93.300000,hi +8.600000,93.200000,hi +8.500000,93.200000,hi +8.500000,93.100000,hi +8.600000,93.100000,hi +8.700000,93.100000,hi +8.700000,93.200000,hi +8.800000,93.200000,hi +8.800000,93.100000,hi +8.900000,93.100000,hi +8.900000,93.200000,hi +8.900000,93.300000,hi +8.900000,93.400000,hi +9.000000,93.300000,hi +9.000000,93.400000,hi +9.100000,93.400000,hi +9.100000,93.300000,hi +9.100000,93.200000,hi +9.000000,93.200000,hi +9.000000,93.100000,hi +9.100000,93.100000,hi +9.100000,93.000000,hi +8.900000,93.000000,hi +9.000000,93.000000,hi +9.000000,92.900000,hi +8.900000,92.900000,hi +8.900000,92.800000,hi +9.000000,92.800000,hi +9.100000,92.900000,hi +9.100000,92.800000,hi +9.100000,92.700000,hi +9.100000,92.600000,hi +9.100000,92.500000,hi +9.000000,92.600000,hi +9.000000,92.500000,hi +8.900000,92.500000,hi +8.900000,92.600000,hi +9.000000,92.700000,hi +8.900000,92.700000,hi +8.800000,92.700000,hi +8.700000,92.700000,hi +8.800000,92.600000,hi +8.800000,92.500000,hi +8.700000,92.500000,hi +8.700000,92.600000,hi +8.600000,92.600000,hi +8.600000,92.500000,hi +8.500000,92.500000,hi +8.500000,92.600000,hi +8.600000,92.700000,hi +8.500000,92.700000,hi +8.500000,92.800000,hi +8.500000,92.900000,hi +8.600000,92.900000,hi +8.600000,92.800000,hi +8.700000,92.800000,hi +8.800000,92.800000,hi +8.800000,92.900000,hi +8.700000,92.900000,hi +8.700000,93.000000,hi +8.800000,93.000000,hi +8.600000,93.000000,hi +8.500000,93.000000,hi +8.400000,93.000000,hi +8.300000,93.000000,hi +8.200000,93.000000,hi +8.200000,92.900000,hi +8.200000,92.800000,hi +8.300000,92.800000,hi +8.300000,92.900000,hi +8.400000,92.900000,hi +8.400000,92.800000,hi +8.400000,92.700000,hi +8.300000,92.700000,hi +8.400000,92.600000,hi +8.300000,92.600000,hi +8.200000,92.700000,hi +8.000000,92.800000,hi +8.100000,92.800000,hi +8.100000,92.900000,hi +8.000000,92.900000,hi +8.000000,93.000000,hi +8.100000,93.000000,hi +8.000000,93.300000,hi +8.000000,93.400000,hi +8.100000,93.400000,hi +8.100000,93.300000,hi +8.100000,93.200000,hi +8.000000,93.200000,hi +8.000000,93.100000,hi +8.100000,93.100000,hi +8.200000,93.100000,hi +8.200000,93.200000,hi +8.300000,93.100000,hi +8.400000,93.100000,hi +8.400000,93.200000,hi +8.300000,93.200000,hi +8.300000,93.300000,hi +8.400000,93.300000,hi +8.400000,93.400000,hi +8.300000,93.400000,hi +8.200000,93.300000,hi +8.200000,93.400000,hi +8.200000,93.500000,hi +8.300000,93.500000,hi +8.400000,93.500000,hi +8.300000,93.600000,hi +8.400000,93.600000,hi +8.400000,93.700000,hi +8.300000,93.700000,hi +8.200000,93.600000,hi +8.200000,93.700000,hi +8.100000,93.700000,hi +8.000000,93.700000,hi +8.000000,93.600000,hi +8.100000,93.600000,hi +8.100000,93.500000,hi +8.000000,93.500000,hi +8.000000,93.800000,hi +8.100000,93.800000,hi +8.100000,93.900000,hi +8.000000,93.900000,hi +8.100000,94.000000,hi +8.000000,94.000000,hi +8.000000,94.100000,hi +8.400000,94.000000,hi +8.300000,94.000000,hi +8.200000,94.000000,hi +8.200000,93.900000,hi +8.200000,93.800000,hi +8.300000,93.800000,hi +8.300000,93.900000,hi +8.400000,93.900000,hi +8.400000,93.800000,hi +8.500000,93.800000,hi +8.600000,93.800000,hi +8.600000,93.900000,hi +8.500000,93.900000,hi +8.800000,93.900000,hi +8.700000,93.900000,hi +8.700000,93.800000,hi +8.800000,93.800000,hi +8.900000,93.800000,hi +9.000000,93.800000,hi +9.100000,93.800000,hi +8.700000,92.400000,hi +8.800000,92.400000,hi +9.000000,92.300000,hi +8.900000,92.300000,hi +8.900000,92.400000,hi +9.000000,92.400000,hi +9.100000,92.400000,hi +9.100000,92.300000,hi +9.300000,92.200000,hi +9.300000,92.300000,hi +9.200000,92.300000,hi +9.200000,92.400000,hi +9.300000,92.400000,hi +9.400000,92.400000,hi +9.500000,92.400000,hi +9.500000,92.300000,hi +9.400000,92.300000,hi +9.400000,92.200000,hi +9.500000,92.200000,hi +9.600000,92.200000,hi +9.700000,92.200000,hi +9.700000,92.300000,hi +9.600000,92.300000,hi +9.600000,92.400000,hi +9.700000,92.400000,hi +9.800000,92.400000,hi +9.800000,92.300000,hi +9.800000,92.200000,hi +9.800000,92.100000,hi +10.200000,92.100000,hi +10.100000,92.100000,hi +10.000000,92.100000,hi +9.900000,92.100000,hi +9.900000,92.200000,hi +10.000000,92.200000,hi +10.000000,92.300000,hi +9.900000,92.300000,hi +9.900000,92.400000,hi +10.000000,92.400000,hi +10.100000,92.400000,hi +10.200000,92.400000,hi +10.200000,92.300000,hi +10.100000,92.300000,hi +10.100000,92.200000,hi +10.200000,92.200000,hi +10.300000,92.200000,hi +10.400000,92.200000,hi +10.400000,92.300000,hi +10.300000,92.300000,hi +10.300000,92.400000,hi +10.400000,92.400000,hi +10.500000,92.400000,hi +10.600000,92.400000,hi +10.600000,92.300000,hi +10.500000,92.300000,hi +10.500000,92.200000,hi +10.600000,92.200000,hi +10.600000,92.100000,hi +10.600000,92.000000,hi +10.500000,92.000000,hi +10.500000,92.100000,hi +10.400000,92.100000,hi +10.300000,92.100000,hi +10.400000,92.000000,hi +12.800000,92.400000,hi +12.700000,92.400000,en +12.600000,92.400000,en +12.500000,92.400000,en +12.500000,92.300000,hi +12.100000,92.200000,en +12.100000,92.300000,hi +12.200000,92.300000,hi +12.400000,92.300000,hi +12.300000,92.300000,hi +12.400000,92.400000,en +12.300000,92.400000,en +12.200000,92.400000,hi +12.100000,92.400000,hi +12.000000,92.400000,hi +11.900000,92.400000,hi +12.000000,92.300000,hi +12.000000,92.200000,en +11.900000,92.200000,en +11.900000,92.300000,hi +11.800000,92.300000,hi +11.800000,92.200000,en +11.700000,92.200000,en +11.700000,92.300000,hi +11.800000,92.400000,en +11.700000,92.400000,en +11.600000,92.400000,en +11.500000,92.400000,en +11.400000,92.400000,hi +11.500000,92.300000,hi +11.400000,92.300000,hi +11.400000,92.200000,en +11.500000,92.200000,en +11.600000,92.200000,en +11.600000,92.300000,hi +11.600000,92.100000,hi +11.500000,92.100000,hi +11.400000,92.100000,hi +11.400000,92.000000,hi +11.700000,92.100000,hi +11.800000,92.100000,hi +10.700000,92.000000,hi +10.700000,92.100000,hi +10.800000,92.000000,hi +10.800000,92.100000,hi +10.900000,92.100000,hi +10.900000,92.000000,hi +10.900000,91.900000,hi +11.000000,91.900000,hi +11.100000,91.900000,hi +11.200000,92.000000,hi +11.300000,92.000000,hi +11.300000,92.100000,hi +11.200000,92.100000,hi +11.100000,92.100000,hi +11.100000,92.000000,hi +11.000000,92.000000,hi +11.000000,92.100000,hi +11.000000,92.200000,hi +11.000000,92.300000,hi +11.100000,92.300000,hi +11.100000,92.200000,en +11.200000,92.200000,en +11.300000,92.200000,en +11.300000,92.300000,hi +11.200000,92.300000,hi +11.300000,92.400000,hi +11.200000,92.400000,hi +11.100000,92.400000,hi +11.000000,92.400000,hi +10.900000,92.400000,hi +10.800000,92.400000,hi +10.900000,92.300000,hi +10.900000,92.200000,hi +10.800000,92.200000,hi +10.800000,92.300000,hi +10.700000,92.200000,hi +10.700000,92.300000,hi +10.700000,92.400000,hi +10.700000,92.600000,hi +10.700000,92.500000,hi +10.800000,92.500000,hi +10.900000,92.500000,hi +10.900000,92.600000,hi +10.800000,92.600000,hi +10.900000,92.700000,hi +10.800000,92.700000,hi +10.700000,92.700000,hi +10.700000,92.800000,hi +10.700000,92.900000,hi +10.700000,93.000000,hi +10.800000,93.000000,hi +10.900000,93.000000,hi +10.900000,92.900000,hi +10.800000,92.900000,hi +10.800000,92.800000,hi +10.900000,92.800000,hi +11.000000,92.800000,hi +11.100000,92.800000,hi +11.100000,92.900000,hi +11.000000,92.900000,hi +11.000000,93.000000,hi +11.100000,93.000000,hi +11.200000,93.000000,hi +11.300000,93.000000,hi +11.300000,92.900000,hi +11.200000,92.900000,hi +11.200000,92.800000,hi +11.300000,92.800000,hi +11.300000,92.700000,hi +11.200000,92.700000,hi +11.100000,92.700000,hi +11.000000,92.700000,hi +11.100000,92.600000,hi +11.000000,92.600000,hi +11.000000,92.500000,hi +11.100000,92.500000,hi +11.200000,92.500000,hi +11.200000,92.600000,hi +11.300000,92.600000,hi +11.300000,92.500000,hi +11.400000,92.500000,hi +11.500000,92.500000,hi +11.500000,92.600000,hi +11.400000,92.600000,hi +11.400000,92.700000,hi +11.500000,92.700000,hi +11.600000,92.700000,hi +11.600000,92.600000,hi +11.600000,92.500000,hi +11.700000,92.500000,hi +11.700000,92.600000,hi +11.800000,92.600000,hi +11.800000,92.500000,hi +11.900000,92.500000,hi +12.000000,92.500000,hi +12.000000,92.600000,hi +11.900000,92.600000,hi +12.000000,92.700000,hi +11.900000,92.700000,hi +11.800000,92.700000,hi +11.700000,92.700000,hi +11.700000,92.800000,hi +11.700000,92.900000,hi +11.800000,92.900000,hi +11.800000,92.800000,hi +11.900000,92.800000,hi +12.000000,92.800000,hi +12.000000,92.900000,hi +11.900000,92.900000,hi +11.900000,93.000000,hi +12.000000,93.000000,hi +11.800000,93.000000,hi +11.700000,93.000000,en +11.600000,93.000000,en +11.600000,92.800000,hi +11.600000,92.900000,hi +11.500000,92.900000,hi +11.500000,92.800000,hi +11.400000,92.800000,hi +11.400000,92.900000,hi +11.400000,93.000000,hi +11.500000,93.000000,hi +11.400000,93.100000,hi +11.500000,93.100000,hi +11.500000,93.200000,hi +11.400000,93.200000,hi +11.400000,93.300000,en +11.400000,93.400000,hi +11.500000,93.400000,hi +11.500000,93.300000,en +11.600000,93.400000,hi +11.600000,93.300000,hi +11.600000,93.200000,hi +11.600000,93.100000,hi +11.700000,93.100000,hi +11.700000,93.200000,hi +11.800000,93.200000,hi +11.800000,93.100000,en +11.900000,93.100000,hi +12.000000,93.100000,hi +12.000000,93.200000,hi +11.900000,93.200000,hi +11.900000,93.300000,hi +12.000000,93.300000,hi +12.000000,93.400000,hi +11.900000,93.400000,hi +11.800000,93.400000,hi +11.800000,93.300000,hi +11.700000,93.300000,hi +11.700000,93.400000,hi +11.700000,93.500000,hi +11.800000,93.500000,hi +11.900000,93.500000,hi +12.000000,93.500000,hi +11.900000,93.600000,hi +12.000000,93.600000,hi +12.000000,93.700000,hi +11.900000,93.700000,hi +11.800000,93.700000,hi +11.800000,93.600000,hi +11.700000,93.600000,hi +11.700000,93.700000,hi +11.600000,93.700000,hi +11.600000,93.600000,hi +11.600000,93.500000,hi +11.500000,93.500000,hi +11.400000,93.500000,hi +11.400000,93.600000,hi +11.500000,93.600000,hi +11.500000,93.700000,hi +11.400000,93.700000,hi +11.300000,93.700000,hi +11.300000,93.600000,hi +11.200000,93.600000,hi +11.200000,93.700000,hi +11.100000,93.700000,hi +11.000000,93.700000,hi +11.000000,93.600000,hi +11.100000,93.600000,hi +11.000000,93.500000,hi +11.100000,93.500000,hi +11.200000,93.500000,hi +11.300000,93.500000,hi +11.300000,93.400000,hi +11.200000,93.400000,hi +11.200000,93.300000,hi +11.300000,93.300000,en +11.300000,93.200000,hi +11.300000,93.100000,hi +11.200000,93.100000,hi +11.200000,93.200000,hi +11.100000,93.200000,hi +11.100000,93.100000,hi +11.000000,93.100000,hi +11.000000,93.200000,hi +11.000000,93.300000,hi +11.100000,93.300000,hi +11.100000,93.400000,hi +11.000000,93.400000,hi +10.900000,93.400000,hi +10.800000,93.400000,hi +10.800000,93.300000,hi +10.900000,93.300000,hi +10.900000,93.200000,hi +10.900000,93.100000,hi +10.800000,93.100000,hi +10.800000,93.200000,hi +10.700000,93.200000,hi +10.700000,93.100000,hi +10.700000,93.300000,hi +10.700000,93.400000,hi +10.700000,93.500000,hi +10.800000,93.500000,hi +10.900000,93.500000,hi +10.800000,93.600000,hi +10.900000,93.600000,hi +10.900000,93.700000,hi +10.800000,93.700000,hi +10.700000,93.700000,hi +10.700000,93.600000,hi +10.600000,93.600000,hi +10.600000,93.700000,hi +10.600000,93.800000,hi +10.700000,93.800000,hi +10.900000,93.900000,hi +10.800000,93.900000,hi +10.800000,93.800000,en +10.900000,93.800000,en +11.000000,93.800000,en +11.000000,93.900000,hi +11.100000,93.900000,hi +11.100000,93.800000,hi +11.200000,93.800000,hi +11.300000,93.800000,hi +11.300000,93.900000,hi +11.200000,93.900000,hi +11.300000,94.000000,hi +11.200000,94.000000,hi +12.000000,94.100000,hi +11.900000,94.100000,hi +11.800000,94.100000,hi +11.700000,94.100000,hi +11.600000,94.000000,hi +11.500000,94.000000,hi +11.400000,94.000000,hi +11.400000,93.900000,hi +11.400000,93.800000,hi +11.500000,93.800000,hi +11.500000,93.900000,hi +11.600000,93.900000,hi +11.600000,93.800000,hi +11.700000,93.800000,hi +11.800000,93.800000,hi +11.800000,93.900000,hi +11.700000,93.900000,hi +11.700000,94.000000,hi +11.800000,94.000000,hi +11.900000,94.000000,hi +12.000000,94.000000,hi +12.000000,93.900000,hi +11.900000,93.900000,hi +11.900000,93.800000,hi +12.000000,93.800000,hi +12.100000,93.800000,hi +12.200000,93.800000,hi +12.200000,93.900000,hi +12.100000,93.900000,hi +12.100000,94.000000,hi +12.200000,94.000000,hi +12.300000,94.000000,hi +12.400000,94.000000,hi +12.400000,93.900000,hi +12.300000,93.900000,hi +12.300000,93.800000,hi +12.400000,93.800000,hi +12.500000,93.800000,hi +12.500000,93.900000,hi +12.600000,93.800000,hi +12.700000,93.800000,hi +12.700000,93.900000,hi +12.600000,93.900000,hi +12.700000,94.000000,hi +12.600000,94.000000,hi +12.500000,94.000000,hi +12.500000,94.200000,hi +12.500000,94.100000,hi +12.600000,94.100000,hi +12.700000,94.100000,hi +12.700000,94.200000,hi +12.600000,94.200000,hi +12.600000,94.300000,hi +12.700000,94.300000,hi +12.500000,94.300000,hi +12.400000,94.200000,hi +12.400000,94.100000,hi +12.300000,94.100000,hi +12.300000,94.200000,hi +12.200000,94.200000,hi +12.200000,94.100000,hi +12.100000,94.100000,hi +12.100000,94.200000,hi +12.900000,94.400000,hi +13.000000,94.400000,hi +13.100000,94.400000,hi +13.100000,94.500000,hi +13.500000,94.600000,hi +13.300000,94.500000,hi +13.200000,94.500000,hi +13.200000,94.400000,hi +13.300000,94.400000,hi +13.400000,94.400000,hi +13.400000,94.500000,hi +13.500000,94.500000,hi +13.500000,94.400000,hi +13.400000,94.300000,hi +13.500000,94.300000,hi +13.500000,94.200000,hi +13.500000,94.100000,hi +13.400000,94.100000,hi +13.400000,94.200000,hi +13.300000,94.200000,hi +13.300000,94.100000,hi +13.200000,94.100000,hi +13.200000,94.200000,hi +13.200000,94.300000,hi +13.300000,94.300000,hi +13.100000,94.300000,hi +13.000000,94.300000,hi +12.800000,94.300000,hi +12.900000,94.300000,hi +12.900000,94.200000,hi +12.800000,94.200000,hi +12.800000,94.100000,hi +12.900000,94.100000,hi +13.000000,94.100000,hi +13.000000,94.200000,hi +13.100000,94.200000,hi +13.100000,94.100000,hi +13.100000,94.000000,hi +13.000000,94.000000,hi +12.900000,94.000000,hi +12.800000,94.000000,hi +12.900000,93.900000,hi +12.800000,93.900000,hi +12.800000,93.800000,hi +12.900000,93.800000,hi +13.000000,93.800000,hi +13.000000,93.900000,hi +13.100000,93.900000,en +13.100000,93.800000,en +13.200000,93.800000,en +13.300000,93.800000,en +13.300000,93.900000,en +13.200000,93.900000,en +13.200000,94.000000,hi +13.300000,94.000000,hi +13.400000,94.000000,hi +13.500000,94.000000,hi +13.500000,93.900000,en +13.400000,93.900000,en +13.400000,93.800000,en +13.500000,93.800000,en +13.500000,93.700000,en +13.500000,93.600000,en +13.400000,93.600000,en +13.400000,93.700000,en +13.300000,93.700000,en +13.200000,93.700000,en +13.200000,93.600000,en +13.300000,93.600000,en +13.200000,93.500000,en +13.300000,93.500000,en +13.400000,93.500000,en +13.500000,93.500000,en +13.500000,93.400000,en +13.400000,93.400000,en +13.400000,93.300000,en +13.500000,93.300000,en +13.500000,93.200000,en +13.500000,93.100000,en +13.400000,93.100000,en +13.400000,93.200000,en +13.300000,93.200000,en +13.300000,93.100000,en +13.200000,93.100000,en +13.200000,93.200000,en +13.200000,93.300000,en +13.300000,93.300000,en +13.300000,93.400000,en +13.200000,93.400000,en +13.100000,93.400000,en +13.000000,93.400000,en +13.000000,93.300000,en +13.100000,93.300000,en +13.100000,93.200000,en +13.100000,93.100000,en +13.000000,93.100000,en +13.000000,93.200000,en +12.900000,93.200000,en +12.900000,93.100000,en +12.800000,93.100000,en +12.800000,93.200000,en +12.800000,93.300000,en +12.900000,93.300000,en +12.900000,93.400000,en +12.800000,93.400000,en +12.800000,93.500000,hi +12.900000,93.500000,hi +13.000000,93.500000,hi +13.100000,93.500000,en +13.000000,93.600000,hi +13.100000,93.600000,en +13.100000,93.700000,en +13.000000,93.700000,hi +12.900000,93.700000,hi +12.900000,93.600000,hi +12.800000,93.600000,hi +12.800000,93.700000,hi +12.700000,93.700000,hi +12.600000,93.700000,hi +12.600000,93.600000,hi +12.700000,93.600000,hi +12.700000,93.500000,hi +12.600000,93.500000,hi +12.500000,93.500000,hi +12.500000,93.600000,hi +12.500000,93.700000,hi +12.400000,93.700000,hi +12.400000,93.600000,hi +12.300000,93.600000,hi +12.300000,93.700000,hi +12.200000,93.700000,hi +12.100000,93.700000,hi +12.100000,93.600000,hi +12.200000,93.600000,hi +12.100000,93.500000,hi +12.200000,93.500000,hi +12.300000,93.500000,hi +12.400000,93.500000,hi +12.400000,93.400000,hi +12.400000,93.300000,hi +12.300000,93.300000,hi +12.300000,93.400000,hi +12.200000,93.400000,hi +12.100000,93.400000,hi +12.100000,93.300000,hi +12.200000,93.300000,hi +12.200000,93.200000,hi +12.100000,93.200000,hi +12.100000,93.100000,hi +12.200000,93.100000,hi +12.300000,93.100000,hi +12.300000,93.200000,hi +12.400000,93.200000,hi +12.400000,93.100000,hi +12.500000,93.100000,en +12.600000,93.100000,en +12.600000,93.200000,en +12.500000,93.200000,hi +12.500000,93.300000,hi +12.500000,93.400000,hi +12.600000,93.400000,en +12.600000,93.300000,en +12.700000,93.400000,en +12.700000,93.300000,en +12.700000,93.200000,en +12.700000,93.100000,en +12.700000,93.000000,en +12.700000,92.900000,en +12.700000,92.800000,en +12.600000,92.900000,en +12.600000,92.800000,en +12.500000,92.800000,en +12.500000,92.900000,en +12.500000,93.000000,en +12.600000,93.000000,en +12.400000,93.000000,en +12.300000,93.000000,en +12.100000,93.000000,hi +12.200000,93.000000,hi +12.200000,92.900000,hi +12.100000,92.900000,hi +12.100000,92.800000,hi +12.200000,92.800000,hi +12.300000,92.800000,en +12.300000,92.900000,en +12.400000,92.900000,en +12.400000,92.800000,en +12.400000,92.700000,en +12.300000,92.700000,en +12.200000,92.700000,en +12.100000,92.700000,hi +12.200000,92.600000,en +12.100000,92.600000,hi +12.100000,92.500000,hi +12.200000,92.500000,hi +12.300000,92.500000,en +12.300000,92.600000,en +12.400000,92.600000,en +12.400000,92.500000,en +12.500000,92.500000,en +12.600000,92.500000,en +12.600000,92.600000,en +12.500000,92.600000,hi +12.500000,92.700000,en +12.600000,92.700000,en +12.700000,92.700000,en +12.700000,92.600000,en +12.700000,92.500000,en +12.800000,92.500000,en +12.800000,92.600000,en +12.900000,92.600000,en +12.900000,92.500000,en +13.000000,92.500000,en +13.100000,92.500000,en +13.100000,92.600000,en +13.000000,92.600000,en +13.100000,92.700000,en +13.000000,92.700000,en +12.900000,92.700000,en +12.800000,92.700000,en +12.800000,92.800000,en +12.900000,92.800000,en +12.900000,92.900000,en +12.800000,92.900000,en +12.800000,93.000000,en +12.900000,93.000000,en +13.000000,93.000000,en +13.100000,93.000000,en +13.100000,92.900000,en +13.000000,92.900000,en +13.000000,92.800000,en +13.100000,92.800000,en +13.200000,92.800000,en +13.300000,92.800000,en +13.300000,92.900000,en +13.200000,92.900000,en +13.200000,93.000000,en +13.300000,93.000000,en +13.400000,93.000000,en +13.500000,93.000000,en +13.500000,92.900000,en +13.400000,92.900000,en +13.400000,92.800000,en +13.500000,92.800000,en +13.500000,92.700000,en +13.400000,92.700000,en +13.300000,92.700000,en +13.200000,92.700000,en +13.300000,92.600000,en +13.200000,92.600000,en +13.200000,92.500000,en +13.300000,92.500000,en +13.400000,92.600000,en +13.500000,92.600000,en +13.600000,92.600000,en +13.700000,92.700000,en +13.600000,92.700000,en +13.600000,92.800000,en +13.700000,92.800000,en +13.700000,92.900000,en +13.600000,92.900000,en +13.600000,93.000000,en +13.700000,93.000000,en +13.800000,93.000000,en +13.800000,93.100000,en +13.800000,93.200000,en +13.700000,93.200000,en +13.700000,93.100000,en +13.600000,93.100000,en +13.600000,93.200000,en +13.600000,93.300000,en +13.700000,93.300000,en +13.700000,93.400000,en +13.600000,93.400000,en +13.600000,93.500000,en +13.700000,93.500000,en +13.700000,93.700000,en +13.700000,93.600000,en +13.600000,93.600000,en +13.600000,93.700000,en +13.600000,93.800000,en +13.600000,93.900000,en +13.600000,94.000000,hi +13.700000,93.900000,en +13.700000,93.800000,en +13.600000,94.100000,hi +13.600000,94.200000,hi +13.600000,94.300000,hi +13.600000,94.500000,hi +13.600000,94.400000,hi +13.600000,94.600000,hi +22.200000,92.700000,en +22.200000,92.600000,en +22.100000,92.600000,en +22.300000,92.600000,en +22.400000,92.600000,en +22.500000,92.600000,en +22.500000,92.700000,en +22.400000,92.700000,en +22.300000,92.700000,en +22.300000,92.800000,en +22.300000,92.900000,en +22.400000,92.900000,en +22.400000,92.800000,en +22.500000,92.800000,en +22.500000,92.900000,en +22.500000,93.000000,en +22.400000,93.000000,en +22.300000,93.000000,en +22.100000,93.000000,en +22.200000,93.000000,en +22.200000,92.900000,en +22.200000,92.800000,en +22.100000,92.800000,en +22.100000,92.900000,en +22.000000,92.900000,en +22.000000,93.000000,en +22.200000,93.100000,en +22.300000,93.100000,en +22.300000,93.200000,en +22.400000,93.100000,en +22.500000,93.100000,en +29.300000,96.100000,en +29.300000,96.000000,hi +29.300000,95.900000,hi +29.300000,95.800000,hi +29.200000,95.700000,hi +29.100000,95.700000,hi +29.000000,95.700000,hi +29.000000,95.600000,en +29.100000,95.600000,hi +29.100000,95.500000,hi +29.000000,95.500000,hi +29.000000,95.400000,hi +29.100000,95.400000,hi +29.000000,95.100000,hi +29.000000,95.200000,hi +29.000000,95.300000,hi +29.100000,95.300000,hi +28.800000,95.300000,hi +28.900000,95.300000,hi +28.900000,95.200000,hi +28.900000,95.100000,hi +28.800000,95.100000,hi +28.800000,95.200000,hi +28.700000,95.200000,hi +28.700000,95.100000,hi +28.600000,95.100000,hi +28.600000,95.200000,hi +28.600000,95.300000,en +28.700000,95.300000,hi +28.600000,95.400000,hi +28.600000,95.500000,hi +28.700000,95.500000,hi +28.700000,95.400000,hi +28.800000,95.400000,hi +28.900000,95.400000,hi +28.900000,95.500000,hi +28.800000,95.500000,hi +28.800000,95.600000,en +28.900000,95.600000,en +28.900000,95.700000,en +28.800000,95.700000,en +28.700000,95.700000,hi +28.700000,95.600000,hi +28.600000,95.600000,hi +28.600000,95.700000,hi +28.600000,95.800000,hi +28.700000,95.800000,hi +28.600000,95.900000,hi +28.600000,96.000000,hi +28.700000,96.000000,hi +28.700000,95.900000,hi +28.800000,95.900000,hi +28.800000,96.000000,hi +28.900000,96.000000,hi +28.900000,95.900000,hi +28.800000,95.800000,en +28.900000,95.800000,hi +29.000000,95.800000,hi +29.100000,95.800000,hi +29.200000,95.800000,hi +29.200000,95.900000,hi +29.200000,96.000000,hi +29.100000,96.000000,hi +29.100000,95.900000,hi +29.000000,95.900000,hi +29.000000,96.000000,hi +29.000000,96.100000,hi +29.000000,96.200000,hi +29.100000,96.100000,hi +29.200000,96.100000,hi +29.200000,96.200000,hi +29.000000,96.400000,hi +29.000000,96.300000,hi +28.900000,96.300000,hi +28.900000,96.400000,hi +28.800000,96.400000,hi +28.800000,96.300000,hi +28.900000,96.200000,hi +28.900000,96.100000,hi +28.800000,96.100000,hi +28.800000,96.200000,hi +28.700000,96.200000,hi +28.700000,96.100000,hi +28.600000,96.100000,hi +28.600000,96.200000,hi +28.600000,96.300000,en +28.700000,96.300000,hi +28.700000,96.400000,hi +28.600000,96.400000,hi +28.700000,96.500000,hi +28.800000,96.500000,hi +28.700000,96.600000,hi +28.900000,96.500000,hi +26.000000,95.100000,hi +26.100000,95.100000,hi +26.200000,95.100000,hi +26.300000,95.100000,hi +26.400000,95.100000,hi +26.500000,95.100000,hi +26.700000,95.200000,hi +26.600000,95.100000,hi +26.700000,95.100000,hi +26.800000,95.200000,hi +26.800000,95.100000,hi +26.900000,95.100000,hi +27.000000,95.100000,hi +27.000000,95.200000,hi +26.900000,95.200000,hi +26.900000,95.300000,hi +27.000000,95.300000,hi +26.800000,95.300000,hi +26.700000,95.300000,hi +26.700000,95.400000,hi +26.800000,95.500000,hi +26.800000,95.400000,hi +26.900000,95.400000,hi +27.000000,95.400000,hi +27.000000,95.500000,hi +26.900000,95.500000,hi +26.900000,95.600000,hi +27.000000,95.600000,hi +27.000000,95.700000,hi +26.900000,95.700000,hi +27.000000,95.800000,hi +27.300000,96.500000,hi +27.400000,96.500000,hi +27.500000,96.500000,hi +27.700000,96.500000,hi +27.600000,96.500000,hi +27.600000,96.600000,hi +27.700000,96.600000,en +27.700000,96.700000,hi +27.600000,96.700000,hi +27.500000,96.700000,hi +27.500000,96.600000,hi +27.400000,96.600000,hi +27.400000,96.700000,hi +27.400000,96.800000,hi +27.400000,96.900000,en +27.500000,96.900000,en +27.500000,96.800000,hi +27.600000,96.800000,hi +27.700000,96.800000,hi +27.700000,96.900000,en +27.700000,97.000000,en +27.200000,97.000000,en +27.300000,97.000000,en +27.300000,96.900000,en +27.200000,96.900000,hi +27.100000,97.100000,hi +27.200000,97.100000,hi +27.800000,97.100000,hi +27.900000,97.200000,hi +27.900000,97.100000,hi +28.000000,97.100000,hi +28.100000,97.100000,hi +28.100000,97.200000,hi +28.000000,97.200000,hi +28.000000,97.300000,hi +28.100000,97.300000,hi +27.900000,97.300000,hi +28.200000,97.300000,hi +28.200000,97.200000,hi +28.200000,97.100000,hi +28.300000,97.100000,hi +28.500000,96.800000,hi +28.400000,96.800000,hi +28.300000,96.900000,hi +28.300000,96.800000,hi +28.200000,96.800000,hi +28.200000,96.900000,en +28.200000,97.000000,hi +28.300000,97.000000,hi +28.100000,97.000000,hi +28.000000,97.000000,hi +27.800000,97.000000,en +27.900000,97.000000,hi +27.900000,96.900000,en +27.800000,96.900000,en +27.800000,96.800000,hi +27.900000,96.800000,hi +28.000000,96.800000,hi +28.000000,96.900000,en +28.100000,96.900000,en +28.100000,96.800000,hi +28.100000,96.700000,hi +28.100000,96.600000,hi +28.000000,96.600000,hi +28.000000,96.700000,hi +27.900000,96.700000,hi +27.800000,96.700000,hi +27.800000,96.600000,en +27.900000,96.600000,en +27.900000,96.500000,hi +27.800000,96.500000,hi +28.000000,96.500000,hi +28.100000,96.500000,hi +28.300000,96.500000,hi +28.200000,96.500000,hi +28.200000,96.600000,hi +28.200000,96.700000,hi +28.300000,96.700000,hi +28.300000,96.600000,hi +28.400000,96.600000,hi +28.400000,96.700000,hi +28.500000,96.700000,hi +28.500000,96.600000,hi +28.400000,96.500000,hi +28.500000,96.300000,hi +28.400000,96.300000,hi +28.400000,96.400000,hi +28.300000,96.400000,hi +28.200000,96.400000,hi +28.200000,96.300000,hi +28.300000,96.300000,hi +28.300000,96.200000,hi +28.200000,96.200000,hi +28.200000,96.100000,hi +28.300000,96.100000,hi +28.400000,96.100000,hi +28.400000,96.200000,hi +28.500000,96.200000,hi +28.500000,96.100000,hi +28.500000,96.000000,hi +28.400000,96.000000,hi +28.400000,95.900000,hi +28.500000,95.900000,hi +28.500000,95.800000,hi +28.400000,95.800000,hi +28.300000,95.800000,hi +28.200000,95.800000,hi +28.200000,95.900000,hi +28.300000,95.900000,hi +28.300000,96.000000,hi +28.200000,96.000000,hi +28.100000,96.000000,hi +28.000000,96.000000,hi +28.000000,95.900000,hi +28.100000,95.900000,hi +28.100000,95.800000,hi +28.000000,95.800000,hi +27.900000,95.800000,hi +27.800000,95.900000,hi +27.900000,95.900000,hi +27.900000,96.000000,hi +27.800000,96.000000,hi +27.800000,96.100000,hi +27.800000,96.200000,hi +27.900000,96.200000,hi +27.900000,96.100000,hi +28.000000,96.100000,hi +28.100000,96.100000,hi +28.100000,96.200000,hi +28.000000,96.200000,hi +28.000000,96.300000,hi +28.100000,96.300000,hi +28.100000,96.400000,hi +28.000000,96.400000,hi +27.900000,96.400000,hi +27.900000,96.300000,hi +27.800000,96.300000,hi +27.800000,96.400000,hi +27.700000,96.400000,hi +27.600000,96.400000,hi +27.600000,96.300000,hi +27.700000,96.300000,hi +27.700000,96.200000,hi +27.700000,96.100000,hi +27.600000,96.200000,hi +27.600000,96.100000,hi +27.500000,96.100000,hi +27.500000,96.200000,hi +27.500000,96.300000,hi +27.500000,96.400000,hi +27.400000,96.400000,hi +27.400000,96.300000,hi +27.300000,96.300000,hi +27.300000,96.400000,hi +27.300000,96.100000,hi +27.300000,96.200000,hi +27.400000,96.200000,hi +27.400000,96.100000,hi +27.400000,96.000000,hi +27.400000,95.900000,hi +27.300000,95.900000,hi +27.300000,96.000000,hi +27.200000,96.000000,hi +27.100000,96.000000,hi +27.100000,95.900000,hi +27.200000,95.900000,hi +27.100000,95.800000,hi +27.200000,95.800000,hi +27.300000,95.800000,hi +27.400000,95.800000,hi +27.500000,95.800000,hi +27.600000,95.800000,hi +27.500000,95.900000,hi +27.500000,96.000000,hi +27.600000,96.000000,hi +27.600000,95.900000,hi +27.700000,95.900000,hi +27.700000,96.000000,hi +27.700000,95.800000,hi +27.800000,95.800000,hi +27.800000,95.700000,hi +27.700000,95.700000,hi +27.700000,95.600000,hi +27.800000,95.600000,hi +27.800000,95.500000,hi +27.800000,95.400000,hi +27.700000,95.400000,hi +27.700000,95.500000,hi +27.600000,95.500000,hi +27.600000,95.400000,hi +27.500000,95.400000,hi +27.500000,95.500000,hi +27.500000,95.600000,hi +27.600000,95.600000,hi +27.600000,95.700000,hi +27.500000,95.700000,hi +27.400000,95.700000,hi +27.400000,95.600000,hi +27.300000,95.600000,hi +27.300000,95.700000,hi +27.200000,95.700000,hi +27.100000,95.700000,hi +27.100000,95.600000,hi +27.200000,95.600000,hi +27.200000,95.500000,hi +27.100000,95.500000,hi +27.100000,95.400000,hi +27.200000,95.400000,hi +27.300000,95.400000,hi +27.300000,95.500000,hi +27.400000,95.500000,hi +27.400000,95.400000,hi +27.400000,95.300000,hi +27.300000,95.300000,hi +27.100000,95.300000,hi +27.200000,95.300000,hi +27.200000,95.200000,hi +27.100000,95.200000,bn +27.100000,95.100000,bn +27.200000,95.100000,hi +27.300000,95.100000,hi +27.300000,95.200000,hi +27.400000,95.200000,hi +27.400000,95.100000,hi +27.500000,95.100000,hi +27.600000,95.100000,hi +27.600000,95.200000,hi +27.500000,95.200000,hi +27.500000,95.300000,hi +27.600000,95.300000,hi +27.700000,95.300000,hi +27.800000,95.300000,hi +27.800000,95.200000,hi +27.700000,95.200000,hi +27.700000,95.100000,hi +27.800000,95.100000,hi +27.900000,95.100000,hi +27.900000,95.200000,hi +28.000000,95.200000,hi +28.000000,95.100000,hi +28.100000,95.100000,hi +28.200000,95.100000,hi +28.200000,95.200000,hi +28.100000,95.200000,hi +28.100000,95.300000,hi +28.000000,95.300000,hi +27.900000,95.300000,hi +27.900000,95.400000,hi +28.000000,95.400000,hi +28.000000,95.500000,hi +27.900000,95.500000,hi +27.900000,95.600000,hi +27.900000,95.700000,hi +28.000000,95.600000,hi +28.000000,95.700000,hi +28.100000,95.700000,hi +28.100000,95.600000,hi +28.100000,95.500000,hi +28.100000,95.400000,hi +28.200000,95.400000,hi +28.300000,95.400000,hi +28.300000,95.500000,hi +28.200000,95.500000,hi +28.200000,95.600000,hi +28.200000,95.700000,hi +28.300000,95.700000,hi +28.300000,95.600000,hi +28.400000,95.600000,hi +28.400000,95.700000,hi +28.500000,95.700000,hi +28.500000,95.600000,hi +28.500000,95.500000,hi +28.400000,95.500000,en +28.400000,95.400000,en +28.500000,95.400000,en +28.500000,95.300000,en +28.400000,95.300000,en +28.200000,95.300000,hi +28.300000,95.300000,hi +28.300000,95.200000,hi +28.300000,95.100000,hi +28.400000,95.100000,hi +28.400000,95.200000,hi +28.500000,95.200000,hi +28.500000,95.100000,hi +28.500000,95.000000,hi +28.500000,94.900000,hi +28.400000,94.900000,hi +28.400000,95.000000,hi +28.300000,95.000000,hi +28.300000,94.900000,hi +28.300000,94.800000,hi +28.400000,94.800000,hi +28.500000,94.800000,hi +28.500000,94.700000,hi +28.500000,94.600000,hi +28.600000,94.400000,hi +28.500000,94.400000,hi +28.500000,94.500000,hi +28.400000,94.500000,hi +28.400000,94.400000,hi +28.300000,94.400000,hi +28.300000,94.500000,hi +28.300000,94.600000,hi +28.400000,94.600000,hi +28.400000,94.700000,hi +28.300000,94.700000,hi +28.200000,94.700000,hi +28.100000,94.700000,hi +28.100000,94.600000,hi +28.200000,94.600000,hi +28.200000,94.500000,hi +28.200000,94.400000,hi +28.100000,94.400000,hi +28.100000,94.500000,hi +28.000000,94.500000,hi +28.000000,94.400000,hi +27.900000,94.400000,hi +27.900000,94.500000,hi +27.900000,94.600000,hi +28.000000,94.600000,hi +28.000000,94.700000,hi +27.900000,94.700000,hi +27.900000,94.800000,hi +28.000000,94.800000,hi +28.100000,94.800000,hi +28.200000,94.800000,hi +28.100000,94.900000,hi +28.200000,94.900000,hi +28.200000,95.000000,hi +28.100000,95.000000,hi +28.000000,95.000000,hi +28.000000,94.900000,hi +27.900000,94.900000,hi +27.900000,95.000000,hi +27.800000,95.000000,hi +27.700000,95.000000,hi +27.700000,94.900000,hi +27.800000,94.900000,hi +27.800000,94.800000,hi +27.700000,94.800000,hi +27.600000,94.800000,hi +27.500000,94.800000,hi +27.500000,94.900000,hi +27.600000,94.900000,hi +27.600000,95.000000,hi +27.500000,95.000000,hi +27.400000,95.000000,hi +27.400000,94.900000,hi +27.300000,94.900000,hi +27.300000,95.000000,hi +27.200000,95.000000,bn +27.100000,95.000000,bn +27.100000,94.900000,bn +27.200000,94.900000,hi +27.100000,94.800000,bn +27.200000,94.800000,bn +27.300000,94.800000,hi +27.400000,94.800000,hi +27.400000,94.700000,hi +27.400000,94.600000,bn +27.300000,94.600000,bn +27.300000,94.700000,hi +27.200000,94.700000,bn +27.100000,94.700000,bn +27.100000,94.600000,bn +27.200000,94.600000,bn +27.200000,94.500000,bn +27.200000,94.400000,bn +27.300000,94.400000,bn +27.300000,94.500000,bn +27.400000,94.500000,bn +27.400000,94.400000,bn +27.500000,94.400000,bn +27.600000,94.400000,bn +27.600000,94.500000,hi +27.500000,94.500000,bn +27.500000,94.600000,bn +27.500000,94.700000,hi +27.600000,94.700000,hi +27.600000,94.600000,hi +27.700000,94.600000,hi +27.700000,94.700000,hi +27.800000,94.700000,hi +27.800000,94.600000,hi +27.800000,94.500000,hi +27.700000,94.500000,hi +27.700000,94.400000,bn +27.800000,94.400000,hi +27.700000,94.300000,hi +27.800000,94.300000,hi +27.800000,94.200000,hi +27.800000,94.100000,hi +27.700000,94.100000,hi +27.700000,94.200000,hi +27.600000,94.200000,hi +27.600000,94.100000,hi +27.500000,94.100000,hi +27.500000,94.200000,hi +27.500000,94.300000,hi +27.600000,94.300000,bn +27.400000,94.300000,bn +27.300000,94.300000,bn +27.200000,94.300000,bn +27.200000,94.200000,bn +27.200000,94.100000,hi +27.300000,94.100000,hi +27.300000,94.200000,bn +27.400000,94.200000,bn +27.400000,94.100000,hi +27.400000,94.000000,hi +27.300000,94.000000,hi +27.200000,94.000000,bn +27.300000,93.900000,hi +27.200000,93.900000,hi +27.200000,93.800000,hi +27.300000,93.800000,hi +27.400000,93.800000,hi +27.400000,93.900000,hi +27.500000,93.800000,hi +27.600000,93.800000,hi +27.600000,93.900000,hi +27.500000,93.900000,hi +27.500000,94.000000,hi +27.600000,94.000000,hi +27.700000,94.000000,hi +27.800000,94.000000,hi +27.800000,93.900000,hi +27.700000,93.900000,hi +27.700000,93.800000,hi +27.800000,93.800000,hi +27.900000,93.800000,en +27.900000,93.900000,en +28.000000,93.900000,hi +28.000000,93.800000,hi +28.100000,93.800000,hi +28.200000,93.800000,hi +28.200000,93.900000,hi +28.100000,93.900000,hi +28.200000,94.000000,hi +28.100000,94.000000,hi +28.000000,94.000000,hi +27.900000,94.000000,hi +27.900000,94.100000,hi +28.000000,94.100000,hi +28.000000,94.200000,hi +27.900000,94.200000,hi +27.900000,94.300000,hi +28.000000,94.300000,hi +28.100000,94.300000,hi +28.200000,94.300000,hi +28.200000,94.200000,hi +28.100000,94.200000,hi +28.100000,94.100000,hi +28.200000,94.100000,hi +28.300000,94.100000,hi +28.400000,94.100000,hi +28.400000,94.200000,hi +28.300000,94.200000,hi +28.300000,94.300000,hi +28.400000,94.300000,hi +28.500000,94.300000,hi +28.600000,94.300000,hi +28.600000,94.200000,hi +28.500000,94.200000,hi +28.500000,94.100000,hi +28.600000,94.100000,hi +28.600000,94.000000,hi +28.500000,94.000000,hi +28.400000,94.000000,hi +28.300000,94.000000,hi +28.400000,93.900000,hi +28.300000,93.900000,hi +28.300000,93.800000,hi +28.400000,93.800000,hi +28.500000,93.800000,hi +28.500000,93.900000,hi +28.600000,93.900000,hi +28.600000,93.800000,hi +28.600000,93.700000,hi +28.500000,93.700000,hi +28.500000,93.600000,hi +28.600000,93.600000,hi +28.600000,93.500000,hi +28.500000,93.500000,hi +28.400000,93.500000,en +28.300000,93.500000,en +28.300000,93.600000,en +28.400000,93.600000,en +28.400000,93.700000,en +28.300000,93.700000,en +28.200000,93.700000,en +28.200000,93.600000,en +28.100000,93.600000,hi +28.100000,93.700000,hi +28.000000,93.700000,en +27.900000,93.700000,en +27.900000,93.600000,en +28.000000,93.600000,en +27.900000,93.500000,en +28.000000,93.500000,en +28.100000,93.500000,en +28.200000,93.500000,en +28.200000,93.400000,en +28.200000,93.300000,en +28.100000,93.300000,en +28.100000,93.400000,en +28.000000,93.400000,en +27.900000,93.400000,en +27.900000,93.300000,en +28.000000,93.300000,en +28.000000,93.200000,en +27.900000,93.200000,en +27.900000,93.100000,hi +28.000000,93.100000,en +28.100000,93.100000,en +28.100000,93.200000,en +28.200000,93.200000,en +28.200000,93.100000,en +28.300000,93.100000,en +28.400000,93.200000,en +28.300000,93.200000,en +28.300000,93.300000,en +28.300000,93.400000,en +28.400000,93.400000,en +28.400000,93.300000,en +28.500000,93.300000,hi +28.500000,93.400000,hi +28.600000,93.400000,hi +28.100000,92.700000,hi +27.900000,92.700000,hi +27.900000,92.800000,hi +27.900000,92.900000,hi +28.000000,92.900000,en +28.000000,92.800000,hi +28.100000,92.800000,hi +28.100000,92.900000,en +28.100000,93.000000,en +28.200000,93.000000,en +28.000000,93.000000,en +27.900000,93.000000,hi +27.800000,93.000000,hi +27.600000,93.000000,hi +27.700000,93.000000,hi +27.700000,92.900000,hi +27.600000,92.900000,hi +27.600000,92.800000,hi +27.700000,92.800000,hi +27.800000,92.800000,hi +27.800000,92.900000,hi +27.800000,92.700000,hi +27.900000,92.600000,hi +27.800000,92.500000,hi +27.800000,92.600000,hi +27.700000,92.600000,hi +27.700000,92.500000,hi +27.600000,92.500000,hi +27.600000,92.600000,hi +27.700000,92.700000,hi +27.600000,92.700000,hi +27.500000,92.700000,en +27.400000,92.700000,hi +27.500000,92.600000,hi +27.500000,92.500000,hi +27.400000,92.500000,hi +27.400000,92.600000,hi +27.300000,92.600000,hi +27.300000,92.500000,hi +27.200000,92.500000,hi +27.200000,92.600000,hi +27.300000,92.700000,hi +27.200000,92.700000,hi +27.200000,92.800000,hi +27.200000,92.900000,hi +27.300000,92.900000,hi +27.300000,92.800000,hi +27.400000,92.800000,hi +27.500000,92.800000,hi +27.500000,92.900000,hi +27.400000,92.900000,hi +27.400000,93.000000,hi +27.500000,93.000000,hi +27.300000,93.000000,hi +27.200000,93.000000,hi +27.200000,93.100000,hi +27.300000,93.100000,hi +27.300000,93.200000,hi +27.200000,93.200000,hi +27.200000,93.300000,en +27.200000,93.400000,hi +27.300000,93.400000,hi +27.300000,93.300000,en +27.400000,93.300000,en +27.400000,93.400000,en +27.500000,93.400000,en +27.500000,93.300000,hi +27.500000,93.200000,hi +27.400000,93.200000,hi +27.400000,93.100000,hi +27.500000,93.100000,hi +27.600000,93.100000,hi +27.600000,93.200000,hi +27.700000,93.200000,en +27.700000,93.100000,hi +27.800000,93.100000,hi +27.800000,93.200000,en +27.700000,93.300000,en +27.800000,93.300000,en +27.800000,93.400000,en +27.700000,93.400000,en +27.600000,93.300000,hi +27.600000,93.400000,en +27.600000,93.500000,en +27.700000,93.500000,en +27.800000,93.500000,en +27.700000,93.600000,hi +27.800000,93.600000,hi +27.800000,93.700000,hi +27.700000,93.700000,hi +27.600000,93.700000,hi +27.600000,93.600000,hi +27.500000,93.700000,hi +27.400000,93.700000,hi +27.400000,93.600000,hi +27.500000,93.600000,hi +27.500000,93.500000,en +27.400000,93.500000,hi +27.300000,93.500000,hi +27.200000,93.500000,hi +27.200000,93.600000,hi +27.300000,93.600000,hi +27.300000,93.700000,hi +27.200000,93.700000,hi +27.100000,93.700000,hi +27.000000,93.700000,hi +27.000000,93.600000,hi +27.100000,93.600000,hi +27.100000,93.500000,hi +27.000000,93.500000,hi +26.900000,93.500000,hi +26.800000,93.500000,hi +26.800000,93.600000,hi +26.900000,93.600000,hi +26.900000,93.700000,hi +26.800000,93.700000,bn +26.700000,93.700000,bn +26.700000,93.600000,hi +26.600000,93.600000,hi +26.600000,93.700000,hi +26.500000,93.700000,hi +26.400000,93.700000,hi +26.400000,93.600000,hi +26.500000,93.600000,hi +26.400000,93.500000,hi +26.500000,93.500000,hi +26.600000,93.500000,hi +26.700000,93.500000,hi +26.700000,93.400000,hi +26.700000,93.300000,hi +26.600000,93.300000,hi +26.600000,93.400000,hi +26.500000,93.400000,hi +26.400000,93.400000,hi +26.400000,93.300000,hi +26.500000,93.300000,hi +26.500000,93.200000,hi +26.400000,93.200000,hi +26.400000,93.100000,hi +26.500000,93.100000,hi +26.600000,93.100000,hi +26.600000,93.200000,hi +26.700000,93.200000,hi +26.700000,93.100000,hi +26.800000,93.100000,hi +26.900000,93.100000,hi +26.900000,93.200000,hi +26.800000,93.200000,hi +26.800000,93.300000,hi +26.800000,93.400000,hi +26.900000,93.400000,hi +26.900000,93.300000,hi +27.000000,93.300000,hi +27.000000,93.400000,hi +27.100000,93.400000,hi +27.100000,93.300000,hi +27.100000,93.200000,hi +27.000000,93.200000,hi +27.000000,93.100000,hi +27.100000,93.100000,hi +27.100000,93.000000,hi +27.000000,93.000000,hi +26.800000,93.000000,hi +26.900000,93.000000,hi +26.900000,92.900000,hi +26.800000,92.900000,hi +26.800000,92.800000,hi +26.900000,92.800000,hi +27.000000,92.800000,hi +27.000000,92.900000,hi +27.100000,92.900000,hi +27.100000,92.800000,hi +27.100000,92.700000,hi +27.000000,92.700000,hi +27.100000,92.600000,hi +27.100000,92.500000,hi +27.000000,92.500000,hi +27.000000,92.600000,hi +26.900000,92.600000,hi +26.900000,92.500000,hi +26.800000,92.500000,hi +26.800000,92.600000,hi +26.900000,92.700000,hi +26.800000,92.700000,hi +26.700000,92.700000,hi +26.600000,92.700000,hi +26.700000,92.600000,hi +26.700000,92.500000,hi +26.600000,92.500000,hi +26.600000,92.600000,hi +26.500000,92.600000,hi +26.500000,92.500000,bn +26.400000,92.500000,bn +26.400000,92.600000,bn +26.500000,92.700000,hi +26.400000,92.700000,hi +26.400000,92.800000,hi +26.400000,92.900000,hi +26.500000,92.900000,hi +26.500000,92.800000,hi +26.600000,92.800000,hi +26.700000,92.800000,hi +26.700000,92.900000,hi +26.600000,92.900000,hi +26.600000,93.000000,hi +26.700000,93.000000,hi +26.500000,93.000000,hi +26.400000,93.000000,hi +26.300000,93.000000,hi +26.200000,93.000000,hi +26.100000,93.000000,hi +26.200000,92.900000,hi +26.100000,92.900000,bn +26.100000,92.800000,hi +26.200000,92.800000,hi +26.300000,92.900000,hi +26.300000,92.800000,hi +26.300000,92.700000,hi +26.300000,92.500000,bn +26.300000,92.600000,bn +26.200000,92.600000,hi +26.200000,92.500000,hi +26.100000,92.500000,hi +26.100000,92.600000,hi +26.200000,92.700000,hi +26.100000,92.700000,hi +26.000000,92.700000,hi +25.900000,92.700000,hi +26.000000,92.600000,hi +26.000000,92.500000,hi +25.900000,92.500000,hi +25.900000,92.600000,hi +25.800000,92.600000,hi +25.800000,92.500000,hi +25.700000,92.500000,hi +25.700000,92.600000,hi +25.800000,92.700000,hi +25.700000,92.700000,hi +25.700000,92.800000,hi +25.700000,92.900000,hi +25.800000,92.900000,hi +25.800000,92.800000,hi +25.900000,92.800000,hi +26.000000,92.800000,hi +26.000000,92.900000,hi +25.900000,92.900000,hi +25.900000,93.000000,hi +26.000000,93.000000,hi +25.800000,93.000000,hi +25.700000,93.000000,hi +25.700000,93.100000,hi +25.800000,93.100000,hi +25.800000,93.200000,hi +25.700000,93.200000,hi +25.700000,93.300000,hi +25.700000,93.400000,hi +25.800000,93.400000,hi +25.800000,93.300000,hi +25.900000,93.300000,hi +25.900000,93.400000,hi +26.000000,93.400000,hi +26.000000,93.300000,hi +26.000000,93.200000,hi +25.900000,93.200000,hi +25.900000,93.100000,hi +26.000000,93.100000,hi +26.100000,93.100000,bn +26.100000,93.200000,bn +26.200000,93.100000,bn +26.300000,93.100000,hi +26.300000,93.200000,hi +26.200000,93.200000,hi +26.200000,93.300000,hi +26.300000,93.300000,bn +26.300000,93.400000,hi +26.200000,93.400000,hi +26.100000,93.400000,hi +26.100000,93.300000,hi +26.000000,93.500000,hi +26.100000,93.500000,hi +26.200000,93.500000,hi +26.300000,93.500000,hi +26.200000,93.600000,hi +26.300000,93.600000,hi +26.300000,93.700000,hi +26.200000,93.700000,hi +26.100000,93.700000,hi +26.100000,93.600000,hi +26.000000,93.600000,hi +26.000000,93.700000,hi +25.900000,93.700000,hi +25.900000,93.600000,hi +25.900000,93.500000,hi +25.800000,93.500000,hi +25.700000,93.500000,hi +25.700000,93.600000,hi +25.800000,93.600000,hi +25.800000,93.700000,hi +25.700000,93.700000,hi +25.700000,93.800000,hi +25.700000,93.900000,hi +25.800000,93.900000,hi +25.800000,93.800000,hi +25.900000,93.800000,hi +25.900000,93.900000,hi +25.900000,94.000000,hi +25.800000,94.000000,hi +25.700000,94.000000,hi +25.700000,94.100000,hi +25.700000,94.200000,hi +25.600000,94.300000,hi +25.700000,94.300000,hi +25.800000,94.300000,hi +25.900000,94.300000,hi +25.900000,94.200000,hi +25.800000,94.200000,hi +25.800000,94.100000,hi +25.900000,94.100000,hi +26.000000,94.100000,hi +26.100000,94.100000,hi +26.100000,94.200000,hi +26.000000,94.200000,hi +26.000000,94.300000,hi +26.100000,94.300000,hi +26.200000,94.300000,hi +26.300000,94.300000,hi +26.300000,94.200000,hi +26.200000,94.200000,hi +26.200000,94.100000,hi +26.300000,94.100000,hi +26.300000,94.000000,hi +26.200000,94.000000,hi +26.100000,94.000000,hi +26.000000,94.000000,hi +26.100000,93.900000,hi +26.000000,93.900000,hi +26.000000,93.800000,hi +26.100000,93.800000,hi +26.200000,93.800000,hi +26.200000,93.900000,hi +26.300000,93.900000,hi +26.300000,93.800000,hi +26.400000,93.800000,hi +26.500000,93.800000,hi +26.500000,93.900000,bn +26.400000,93.900000,hi +26.400000,94.000000,bn +26.500000,94.000000,hi +26.600000,94.000000,bn +26.700000,94.000000,bn +26.700000,93.900000,bn +26.600000,93.900000,bn +26.600000,93.800000,hi +26.700000,93.800000,bn +26.800000,93.800000,bn +26.800000,93.900000,bn +26.900000,93.900000,hi +26.900000,93.800000,hi +27.000000,93.800000,hi +27.100000,93.800000,hi +27.100000,93.900000,hi +27.000000,93.900000,bn +27.100000,94.000000,bn +27.000000,94.000000,bn +26.900000,94.000000,hi +26.800000,94.000000,hi +26.800000,94.100000,hi +26.800000,94.200000,hi +26.900000,94.200000,hi +26.900000,94.100000,hi +27.000000,94.100000,bn +27.100000,94.100000,bn +27.100000,94.200000,bn +27.000000,94.200000,bn +27.000000,94.300000,bn +27.100000,94.300000,bn +26.900000,94.300000,hi +26.800000,94.300000,hi +26.600000,94.300000,hi +26.700000,94.300000,hi +26.700000,94.200000,hi +26.700000,94.100000,hi +26.600000,94.100000,hi +26.600000,94.200000,hi +26.500000,94.200000,hi +26.500000,94.100000,bn +26.400000,94.100000,bn +26.400000,94.200000,hi +26.400000,94.300000,hi +26.500000,94.300000,hi +26.400000,94.400000,hi +26.500000,94.400000,hi +26.500000,94.500000,hi +26.400000,94.500000,hi +26.400000,94.600000,hi +26.400000,94.700000,hi +26.500000,94.700000,hi +26.500000,94.600000,hi +26.600000,94.600000,hi +26.600000,94.700000,hi +26.700000,94.700000,hi +26.700000,94.600000,hi +26.700000,94.500000,hi +26.600000,94.500000,hi +26.600000,94.400000,hi +26.700000,94.400000,hi +26.800000,94.400000,hi +26.800000,94.500000,bn +26.900000,94.500000,bn +26.900000,94.400000,hi +27.000000,94.400000,bn +27.100000,94.400000,bn +27.100000,94.500000,bn +27.000000,94.500000,bn +27.000000,94.600000,hi +27.000000,94.700000,hi +26.900000,94.700000,hi +26.900000,94.600000,bn +26.800000,94.600000,hi +26.800000,94.700000,hi +26.800000,94.800000,hi +26.900000,94.800000,hi +27.000000,94.800000,bn +27.000000,94.900000,hi +27.000000,95.000000,bn +26.900000,95.000000,hi +26.900000,94.900000,hi +26.800000,94.900000,hi +26.800000,95.000000,hi +26.700000,95.000000,hi +26.600000,95.000000,hi +26.600000,94.900000,hi +26.700000,94.900000,hi +26.700000,94.800000,hi +26.600000,94.800000,hi +26.500000,94.800000,hi +26.400000,94.800000,hi +26.400000,94.900000,hi +26.500000,94.900000,hi +26.500000,95.000000,hi +26.400000,95.000000,hi +26.300000,95.000000,hi +26.300000,94.900000,hi +26.200000,94.900000,hi +26.200000,95.000000,hi +26.100000,95.000000,hi +26.000000,95.000000,hi +26.000000,94.900000,hi +26.100000,94.900000,hi +26.000000,94.800000,hi +26.100000,94.800000,hi +26.200000,94.800000,hi +26.300000,94.800000,hi +26.300000,94.700000,hi +26.200000,94.700000,hi +26.200000,94.600000,hi +26.300000,94.600000,hi +26.300000,94.500000,hi +26.300000,94.400000,hi +26.200000,94.400000,hi +26.200000,94.500000,hi +26.100000,94.500000,hi +26.100000,94.400000,hi +26.000000,94.400000,hi +26.000000,94.500000,hi +26.000000,94.600000,hi +26.100000,94.600000,hi +26.100000,94.700000,hi +26.000000,94.700000,hi +25.900000,94.700000,hi +25.800000,94.700000,hi +25.800000,94.600000,hi +25.900000,94.600000,hi +25.900000,94.500000,hi +25.900000,94.400000,hi +25.800000,94.400000,hi +25.800000,94.500000,hi +25.700000,94.500000,hi +25.700000,94.400000,hi +25.600000,94.400000,hi +25.600000,94.500000,hi +25.600000,94.600000,hi +25.700000,94.600000,hi +25.700000,94.700000,hi +25.600000,94.700000,hi +25.600000,94.800000,en +25.700000,94.800000,hi +25.800000,94.800000,hi +25.900000,94.800000,hi +25.800000,94.900000,hi +25.900000,94.900000,hi +25.900000,95.000000,hi +25.800000,95.000000,hi +25.700000,94.900000,hi +25.600000,94.900000,en +25.500000,94.800000,en +25.200000,94.600000,hi +25.100000,94.600000,hi +25.100000,94.700000,en +25.000000,94.700000,en +24.900000,94.700000,en +24.900000,94.600000,hi +25.000000,94.600000,hi +25.000000,94.500000,hi +24.900000,94.500000,hi +24.900000,94.400000,hi +25.000000,94.400000,hi +25.100000,94.400000,hi +25.100000,94.500000,hi +25.200000,94.500000,hi +25.200000,94.400000,hi +25.300000,94.400000,hi +25.400000,94.400000,hi +25.400000,94.500000,en +25.300000,94.500000,hi +25.300000,94.600000,hi +25.400000,94.600000,en +25.500000,94.700000,hi +25.500000,94.600000,hi +25.500000,94.500000,hi +25.500000,94.400000,hi +25.500000,94.300000,hi +25.300000,94.300000,hi +25.400000,94.300000,hi +25.400000,94.200000,hi +25.300000,94.200000,hi +25.300000,94.100000,hi +25.400000,94.100000,hi +25.500000,94.100000,hi +25.500000,94.200000,hi +25.600000,94.200000,hi +25.600000,94.100000,hi +25.600000,94.000000,hi +25.500000,94.000000,hi +25.600000,93.900000,hi +25.600000,93.800000,hi +25.500000,93.800000,hi +25.500000,93.900000,hi +25.400000,93.900000,hi +25.400000,93.800000,hi +25.300000,93.800000,hi +25.300000,93.900000,hi +25.400000,94.000000,hi +25.300000,94.000000,hi +25.200000,94.000000,hi +25.100000,94.000000,hi +25.200000,93.900000,hi +25.200000,93.800000,hi +25.100000,93.800000,hi +25.100000,93.900000,hi +25.000000,93.900000,hi +25.000000,93.800000,hi +24.900000,93.800000,hi +24.900000,93.900000,hi +25.000000,94.000000,hi +24.900000,94.000000,hi +24.900000,94.100000,hi +24.900000,94.200000,hi +25.000000,94.200000,hi +25.000000,94.100000,hi +25.100000,94.100000,hi +25.200000,94.100000,hi +25.200000,94.200000,hi +25.100000,94.200000,hi +25.100000,94.300000,hi +25.200000,94.300000,hi +25.000000,94.300000,hi +24.900000,94.300000,hi +24.800000,94.300000,hi +24.700000,94.300000,hi +24.500000,94.300000,hi +24.600000,94.300000,hi +24.600000,94.200000,hi +24.500000,94.200000,hi +24.500000,94.100000,hi +24.600000,94.100000,hi +24.700000,94.100000,hi +24.700000,94.200000,hi +24.800000,94.200000,hi +24.800000,94.100000,hi +24.800000,94.000000,hi +24.700000,94.000000,hi +24.800000,93.900000,hi +24.800000,93.800000,hi +24.700000,93.800000,hi +24.700000,93.900000,hi +24.600000,93.900000,hi +24.600000,93.800000,hi +24.500000,93.800000,hi +24.500000,93.900000,hi +24.600000,94.000000,hi +24.500000,94.000000,hi +24.400000,94.000000,hi +24.300000,94.000000,hi +24.400000,93.900000,hi +24.400000,93.800000,hi +24.300000,93.800000,hi +24.300000,93.900000,hi +24.200000,93.900000,hi +24.200000,93.800000,hi +24.100000,93.800000,hi +24.100000,93.900000,hi +24.200000,94.000000,hi +24.100000,94.000000,hi +24.100000,94.100000,hi +24.100000,94.200000,hi +24.200000,94.200000,hi +24.200000,94.100000,hi +24.300000,94.100000,hi +24.400000,94.100000,hi +24.400000,94.200000,hi +24.300000,94.200000,hi +24.300000,94.300000,hi +24.400000,94.300000,hi +24.500000,94.400000,hi +24.600000,94.500000,en +24.600000,94.400000,hi +24.700000,94.400000,en +24.800000,94.400000,hi +24.800000,94.500000,hi +24.700000,94.500000,en +24.700000,94.600000,en +24.800000,94.600000,en +24.000000,94.200000,my +23.900000,94.100000,en +24.000000,94.100000,my +24.000000,94.000000,hi +24.000000,93.800000,hi +24.000000,93.900000,hi +24.100000,93.600000,hi +24.000000,93.600000,hi +24.000000,93.500000,hi +24.100000,93.500000,hi +24.100000,93.400000,hi +24.000000,93.300000,en +24.100000,93.300000,en +24.100000,93.200000,en +24.100000,93.100000,en +24.000000,93.100000,en +24.000000,93.200000,en +23.900000,93.200000,en +23.900000,93.100000,hi +23.800000,93.100000,hi +23.800000,93.200000,en +23.800000,93.300000,en +23.900000,93.300000,en +23.800000,93.400000,en +23.700000,93.400000,hi +23.600000,93.400000,hi +23.600000,93.300000,hi +23.700000,93.300000,hi +23.700000,93.200000,hi +23.700000,93.100000,hi +23.600000,93.100000,hi +23.600000,93.200000,hi +23.500000,93.200000,hi +23.500000,93.100000,hi +23.400000,93.100000,hi +23.400000,93.200000,hi +23.400000,93.300000,hi +23.500000,93.300000,hi +23.500000,93.400000,hi +22.600000,93.100000,en +22.700000,93.100000,en +22.900000,93.100000,en +23.000000,93.100000,hi +23.100000,93.100000,hi +23.100000,93.200000,en +23.000000,93.300000,en +23.100000,93.300000,en +23.200000,93.300000,en +23.300000,93.300000,hi +23.300000,93.200000,hi +23.200000,93.200000,en +23.200000,93.100000,hi +23.300000,93.100000,hi +23.200000,93.000000,hi +23.300000,93.000000,hi +23.300000,92.900000,hi +23.300000,92.800000,hi +23.200000,92.800000,hi +23.200000,92.900000,hi +23.100000,92.900000,hi +23.100000,92.800000,hi +23.000000,92.800000,hi +23.000000,92.900000,hi +23.000000,93.000000,hi +23.100000,93.000000,hi +22.900000,93.000000,hi +22.800000,93.000000,hi +22.600000,93.000000,en +22.700000,93.000000,hi +22.700000,92.900000,hi +22.600000,92.900000,en +22.600000,92.800000,en +22.700000,92.800000,hi +22.800000,92.800000,hi +22.800000,92.900000,hi +22.900000,92.900000,hi +22.900000,92.800000,hi +22.900000,92.700000,hi +22.800000,92.700000,hi +22.700000,92.700000,hi +22.600000,92.700000,en +22.700000,92.600000,hi +22.600000,92.600000,en +22.800000,92.500000,hi +22.800000,92.600000,hi +22.900000,92.600000,hi +22.900000,92.500000,hi +23.000000,92.500000,hi +23.100000,92.500000,hi +23.100000,92.600000,hi +23.000000,92.600000,hi +23.000000,92.700000,hi +23.100000,92.700000,hi +23.200000,92.700000,hi +23.300000,92.700000,hi +23.300000,92.600000,en +23.200000,92.600000,en +23.200000,92.500000,en +23.300000,92.500000,en +23.400000,92.500000,en +23.400000,92.600000,en +23.500000,92.600000,hi +23.500000,92.500000,hi +23.600000,92.500000,hi +23.700000,92.500000,hi +23.700000,92.600000,hi +23.600000,92.600000,hi +23.700000,92.700000,hi +23.600000,92.700000,hi +23.500000,92.700000,hi +23.400000,92.700000,hi +23.400000,92.800000,hi +23.500000,92.800000,hi +23.500000,92.900000,hi +23.400000,92.900000,hi +23.400000,93.000000,hi +23.500000,93.000000,hi +23.600000,93.000000,hi +23.700000,93.000000,hi +23.700000,92.900000,hi +23.600000,92.900000,hi +23.600000,92.800000,hi +23.700000,92.800000,hi +23.800000,92.800000,hi +23.900000,92.800000,hi +23.900000,92.900000,hi +23.800000,92.900000,hi +23.800000,93.000000,hi +23.900000,93.000000,hi +24.000000,93.000000,en +24.100000,93.000000,en +24.100000,92.900000,hi +24.000000,92.900000,hi +24.000000,92.800000,hi +24.100000,92.800000,hi +24.100000,92.700000,hi +24.000000,92.700000,hi +23.900000,92.700000,hi +23.800000,92.700000,hi +23.900000,92.600000,hi +23.800000,92.600000,hi +23.800000,92.500000,hi +23.900000,92.500000,hi +24.000000,92.500000,hi +24.000000,92.600000,hi +24.100000,92.600000,hi +24.100000,92.500000,hi +24.200000,92.500000,hi +24.300000,92.500000,hi +24.300000,92.600000,hi +24.200000,92.600000,hi +24.200000,92.700000,hi +24.300000,92.700000,hi +24.400000,92.700000,hi +24.500000,92.700000,bn +24.500000,92.600000,bn +24.400000,92.600000,hi +24.400000,92.500000,hi +24.500000,92.500000,bn +24.600000,92.600000,bn +24.600000,92.500000,bn +24.700000,92.500000,bn +24.800000,92.500000,bn +24.800000,92.600000,bn +24.700000,92.600000,bn +24.800000,92.700000,hi +24.700000,92.700000,hi +24.600000,92.700000,hi +24.500000,92.800000,hi +24.500000,92.900000,hi +24.600000,92.900000,hi +24.600000,92.800000,hi +24.700000,92.800000,hi +24.800000,92.800000,hi +24.800000,92.900000,hi +24.700000,92.900000,hi +24.700000,93.000000,hi +24.800000,93.000000,hi +24.600000,93.000000,hi +24.500000,93.000000,hi +24.400000,93.000000,hi +24.400000,92.800000,hi +24.400000,92.900000,hi +24.300000,92.900000,hi +24.300000,92.800000,hi +24.200000,92.800000,hi +24.200000,92.900000,hi +24.200000,93.000000,en +24.300000,93.000000,hi +24.200000,93.100000,en +24.200000,93.200000,en +24.300000,93.200000,en +24.300000,93.100000,en +24.400000,93.100000,bn +24.400000,93.200000,bn +24.300000,93.300000,en +24.400000,93.300000,en +24.400000,93.400000,hi +24.300000,93.400000,hi +24.200000,93.300000,en +24.200000,93.400000,hi +24.200000,93.500000,hi +24.100000,93.700000,hi +24.200000,93.700000,hi +24.200000,93.600000,hi +24.300000,93.600000,hi +24.300000,93.700000,hi +24.400000,93.700000,hi +24.400000,93.600000,hi +24.300000,93.500000,hi +24.400000,93.500000,hi +24.500000,93.500000,hi +24.600000,93.500000,hi +24.500000,93.600000,hi +24.500000,93.700000,hi +24.600000,93.700000,hi +24.600000,93.600000,hi +24.700000,93.600000,hi +24.700000,93.700000,hi +24.800000,93.700000,hi +24.800000,93.600000,hi +24.700000,93.500000,hi +24.800000,93.500000,hi +24.800000,93.400000,hi +24.800000,93.300000,hi +24.700000,93.300000,hi +24.700000,93.400000,hi +24.600000,93.400000,hi +24.500000,93.400000,en +24.500000,93.300000,en +24.600000,93.300000,hi +24.600000,93.200000,hi +24.500000,93.200000,bn +24.500000,93.100000,bn +24.600000,93.100000,hi +24.700000,93.100000,hi +24.700000,93.200000,hi +24.800000,93.200000,hi +24.800000,93.100000,hi +24.900000,93.100000,hi +24.900000,93.200000,hi +25.000000,93.200000,hi +25.000000,93.100000,hi +25.100000,93.100000,hi +25.200000,93.100000,hi +25.200000,93.200000,hi +25.100000,93.200000,hi +25.100000,93.300000,hi +25.200000,93.300000,hi +25.200000,93.400000,hi +25.100000,93.400000,hi +25.000000,93.400000,hi +25.000000,93.300000,hi +24.900000,93.300000,hi +24.900000,93.400000,hi +24.900000,93.500000,hi +25.000000,93.500000,hi +24.900000,93.600000,hi +24.900000,93.700000,hi +25.000000,93.700000,hi +25.000000,93.600000,hi +25.100000,93.600000,hi +25.100000,93.700000,hi +25.200000,93.700000,hi +25.200000,93.600000,hi +25.100000,93.500000,hi +25.200000,93.500000,hi +25.300000,93.500000,hi +25.400000,93.500000,hi +25.300000,93.600000,hi +25.300000,93.700000,en +25.400000,93.700000,en +25.400000,93.600000,hi +25.500000,93.600000,hi +25.500000,93.700000,hi +25.600000,93.700000,hi +25.600000,93.600000,hi +25.500000,93.500000,hi +25.600000,93.500000,hi +25.600000,93.400000,hi +25.600000,93.300000,hi +25.500000,93.300000,hi +25.500000,93.400000,hi +25.400000,93.400000,hi +25.300000,93.400000,hi +25.300000,93.300000,hi +25.400000,93.300000,hi +25.400000,93.200000,hi +25.300000,93.200000,hi +25.300000,93.100000,hi +25.400000,93.100000,hi +25.500000,93.100000,hi +25.500000,93.200000,hi +25.600000,93.200000,hi +25.600000,93.100000,hi +25.500000,93.000000,hi +25.600000,93.000000,hi +25.600000,92.900000,hi +25.600000,92.800000,hi +25.500000,92.800000,hi +25.500000,92.900000,hi +25.400000,92.900000,hi +25.400000,92.800000,hi +25.300000,92.800000,hi +25.300000,92.900000,hi +25.300000,93.000000,hi +25.400000,93.000000,hi +25.200000,93.000000,hi +25.100000,93.000000,hi +24.900000,93.000000,hi +25.000000,93.000000,hi +25.000000,92.900000,hi +24.900000,92.900000,hi +24.900000,92.800000,hi +25.000000,92.800000,hi +25.100000,92.800000,hi +25.100000,92.900000,hi +25.200000,92.900000,hi +25.200000,92.800000,hi +25.200000,92.700000,bn +25.100000,92.700000,hi +25.000000,92.700000,hi +24.900000,92.700000,hi +25.000000,92.600000,bn +24.900000,92.600000,bn +24.900000,92.500000,bn +25.000000,92.500000,bn +25.100000,92.500000,bn +25.100000,92.600000,bn +25.200000,92.600000,hi +25.200000,92.500000,hi +25.300000,92.500000,hi +25.400000,92.500000,hi +25.400000,92.600000,hi +25.300000,92.600000,hi +25.300000,92.700000,hi +25.400000,92.700000,hi +25.500000,92.700000,hi +25.600000,92.700000,hi +25.600000,92.600000,hi +25.500000,92.600000,hi +25.500000,92.500000,hi +25.600000,92.500000,hi +25.600000,92.400000,hi +25.500000,92.400000,hi +25.600000,92.300000,hi +25.600000,92.200000,hi +25.500000,92.200000,hi +25.500000,92.300000,hi +25.400000,92.300000,hi +25.400000,92.200000,id +25.300000,92.200000,hi +25.300000,92.300000,hi +25.400000,92.400000,hi +25.300000,92.400000,hi +25.200000,92.400000,hi +25.100000,92.400000,bn +25.200000,92.300000,hi +25.200000,92.200000,hi +25.200000,92.100000,bn +25.200000,92.000000,bn +25.300000,91.900000,hi +25.400000,91.900000,hi +25.300000,92.000000,hi +25.300000,92.100000,hi +25.400000,92.100000,hi +25.400000,92.000000,hi +25.500000,92.000000,hi +25.500000,92.100000,hi +25.600000,92.100000,hi +25.600000,92.000000,hi +25.500000,91.900000,hi +25.600000,91.900000,hi +25.600000,91.800000,hi +25.600000,91.700000,hi +25.500000,91.700000,hi +25.500000,91.800000,hi +25.400000,91.800000,hi +25.300000,91.800000,hi +25.300000,91.700000,hi +25.400000,91.700000,hi +25.400000,91.600000,hi +25.300000,91.600000,hi +25.500000,91.600000,hi +25.600000,91.600000,hi +25.600000,91.500000,hi +25.500000,91.500000,hi +25.500000,91.400000,hi +25.600000,91.400000,hi +25.600000,91.300000,hi +25.500000,91.300000,hi +25.400000,91.300000,hi +25.300000,91.300000,bn +25.300000,91.400000,bn +25.400000,91.400000,hi +25.400000,91.500000,hi +25.300000,91.500000,bn +25.200000,91.500000,bn +25.200000,91.400000,bn +25.200000,91.600000,bn +25.200000,91.700000,hi +25.200000,91.800000,bn +24.200000,91.800000,bn +24.200000,92.000000,bn +24.200000,92.100000,bn +24.300000,92.100000,bn +24.300000,92.000000,bn +24.600000,92.300000,bn +24.800000,92.300000,bn +24.800000,92.400000,bn +24.700000,92.400000,bn +24.600000,92.400000,bn +24.500000,92.400000,bn +24.400000,92.400000,bn +24.500000,92.300000,bn +24.400000,92.200000,bn +24.400000,92.300000,bn +24.300000,92.300000,bn +24.300000,92.200000,bn +24.200000,92.200000,bn +24.200000,92.300000,bn +24.300000,92.400000,bn +24.200000,92.400000,bn +24.100000,92.400000,bn +24.000000,92.400000,bn +23.900000,92.400000,bn +23.800000,92.400000,hi +23.900000,92.300000,bn +23.800000,92.300000,bn +23.800000,92.200000,bn +23.900000,92.200000,bn +24.000000,92.200000,bn +24.000000,92.300000,bn +24.100000,92.300000,bn +24.100000,92.200000,bn +24.100000,92.100000,bn +24.000000,92.100000,bn +24.000000,92.000000,bn +24.100000,92.000000,bn +24.100000,91.900000,bn +24.000000,91.900000,bn +23.900000,91.900000,hi +23.800000,91.900000,bn +23.800000,92.000000,bn +23.900000,92.000000,bn +23.900000,92.100000,bn +23.800000,92.100000,bn +23.700000,91.900000,bn +23.600000,91.900000,bn +23.500000,91.900000,bn +23.700000,92.400000,hi +23.600000,92.400000,hi +23.500000,92.400000,en +23.400000,92.400000,en +23.200000,92.400000,en +23.200000,91.700000,bn +23.300000,91.700000,bn +23.300000,91.600000,bn +23.200000,91.600000,bn +23.100000,91.600000,bn +23.000000,91.600000,bn +23.000000,91.700000,bn +23.100000,91.700000,bn +23.100000,91.800000,bn +23.300000,91.500000,bn +23.300000,91.400000,bn +23.500000,91.300000,bn +23.700000,91.300000,bn +23.600000,91.300000,bn +23.600000,91.400000,bn +23.700000,91.400000,bn +23.700000,91.500000,bn +23.600000,91.500000,bn +23.500000,91.500000,bn +23.500000,91.400000,bn +23.400000,91.400000,bn +23.400000,91.500000,bn +23.500000,91.600000,bn +23.400000,91.600000,bn +23.400000,91.700000,bn +23.400000,91.800000,bn +23.500000,91.800000,bn +23.500000,91.700000,bn +23.600000,91.700000,bn +23.600000,91.800000,bn +23.700000,91.800000,bn +23.700000,91.700000,bn +23.700000,91.600000,bn +23.600000,91.600000,bn +23.900000,91.600000,bn +23.800000,91.600000,hi +23.800000,91.700000,bn +23.800000,91.800000,bn +23.900000,91.800000,bn +23.900000,91.700000,hi +24.000000,91.700000,bn +24.000000,91.800000,bn +24.100000,91.800000,bn +24.100000,91.700000,bn +24.000000,91.600000,bn +24.000000,91.400000,bn +24.000000,91.500000,bn +23.900000,91.500000,bn +23.800000,91.500000,bn +23.800000,91.400000,bn +23.900000,91.400000,bn +23.900000,91.300000,bn +23.800000,91.300000,bn +23.600000,91.200000,bn +25.200000,90.700000,bn +25.200000,90.800000,bn +25.200000,90.900000,bn +25.200000,91.000000,bn +25.400000,91.000000,hi +25.300000,91.000000,bn +25.300000,91.100000,bn +25.300000,91.200000,bn +25.400000,91.200000,hi +25.400000,91.100000,bn +25.500000,91.100000,hi +25.500000,91.200000,hi +25.600000,91.200000,hi +25.600000,91.100000,hi +25.600000,91.000000,hi +25.500000,91.000000,hi +25.600000,90.900000,hi +25.600000,90.800000,hi +25.500000,90.800000,hi +25.500000,90.900000,hi +25.400000,90.900000,hi +25.300000,90.900000,bn +25.300000,90.800000,hi +25.400000,90.800000,hi +25.400000,90.700000,hi +25.300000,90.700000,hi +25.500000,90.700000,hi +25.600000,90.700000,hi +25.600000,90.600000,hi +25.500000,90.600000,hi +25.500000,90.500000,hi +25.600000,90.500000,hi +25.600000,90.400000,hi +25.600000,90.300000,hi +25.500000,90.300000,hi +25.500000,90.400000,hi +25.400000,90.400000,hi +25.400000,90.300000,hi +25.300000,90.300000,hi +25.300000,90.400000,hi +25.300000,90.500000,hi +25.400000,90.500000,hi +25.400000,90.600000,hi +25.300000,90.600000,hi +25.200000,90.600000,bn +25.200000,90.500000,bn +25.200000,90.400000,bn +25.300000,90.000000,hi +25.400000,90.000000,hi +25.400000,90.100000,hi +25.300000,90.100000,hi +25.300000,90.200000,hi +25.400000,90.200000,hi +25.500000,90.200000,hi +25.600000,90.200000,hi +25.600000,90.100000,hi +25.500000,90.100000,hi +25.500000,90.000000,hi +25.600000,90.000000,hi +25.700000,90.000000,hi +25.700000,90.100000,hi +25.800000,90.100000,hi +25.800000,90.000000,hi +25.900000,90.000000,hi +26.000000,90.000000,hi +26.000000,90.100000,bn +25.900000,90.100000,bn +25.900000,90.200000,hi +26.000000,90.200000,bn +25.800000,90.200000,hi +25.700000,90.200000,hi +25.700000,90.300000,hi +25.800000,90.300000,bn +25.800000,90.400000,hi +25.700000,90.400000,hi +25.700000,90.500000,hi +25.700000,90.600000,hi +25.800000,90.600000,hi +25.800000,90.500000,hi +25.900000,90.500000,hi +25.900000,90.600000,hi +26.000000,90.600000,hi +26.000000,90.500000,hi +26.000000,90.400000,bn +25.900000,90.400000,bn +25.900000,90.300000,bn +26.000000,90.300000,bn +26.100000,90.300000,bn +26.200000,90.300000,hi +26.200000,90.400000,hi +26.100000,90.400000,bn +26.100000,90.500000,hi +26.100000,90.600000,hi +26.200000,90.600000,hi +26.200000,90.500000,hi +26.300000,90.500000,hi +26.300000,90.600000,hi +26.400000,90.600000,hi +26.400000,90.500000,hi +26.400000,90.400000,hi +26.300000,90.400000,hi +26.300000,90.300000,hi +26.400000,90.300000,hi +26.400000,90.200000,hi +26.300000,90.200000,hi +26.100000,90.200000,bn +26.200000,90.200000,hi +26.200000,90.100000,hi +26.100000,90.100000,bn +26.100000,90.000000,hi +26.200000,90.000000,hi +26.300000,90.000000,hi +26.300000,90.100000,hi +26.400000,90.100000,hi +26.400000,90.000000,hi +26.500000,90.000000,hi +26.600000,90.000000,hi +26.600000,90.100000,hi +26.500000,90.100000,hi +26.500000,90.200000,hi +26.600000,90.200000,hi +26.700000,90.200000,hi +26.700000,90.100000,hi +26.700000,90.000000,hi +26.800000,90.300000,hi +26.800000,90.400000,hi +26.800000,90.500000,hi +26.700000,90.600000,hi +26.700000,90.500000,hi +26.700000,90.300000,hi +26.700000,90.400000,hi +26.600000,90.400000,hi +26.600000,90.300000,hi +26.500000,90.300000,hi +26.500000,90.400000,hi +26.500000,90.500000,hi +26.600000,90.500000,hi +26.600000,90.600000,hi +26.500000,90.600000,hi +26.600000,90.700000,hi +26.500000,90.700000,hi +26.500000,90.800000,hi +26.500000,90.900000,hi +26.600000,90.900000,hi +26.600000,90.800000,hi +26.700000,90.800000,hi +26.700000,90.900000,hi +26.700000,90.700000,hi +26.800000,91.100000,hi +26.700000,91.200000,hi +26.700000,91.100000,hi +26.700000,91.000000,hi +26.600000,91.000000,hi +26.500000,91.000000,hi +26.500000,91.100000,bn +26.600000,91.100000,bn +26.600000,91.200000,bn +26.500000,91.200000,bn +26.400000,91.200000,bn +26.400000,91.100000,bn +26.300000,91.100000,bn +26.300000,91.200000,bn +26.200000,91.200000,bn +26.100000,91.200000,bn +26.100000,91.100000,bn +26.200000,91.100000,bn +26.200000,91.000000,bn +26.100000,91.000000,bn +26.300000,91.000000,bn +26.400000,91.000000,bn +26.400000,90.900000,bn +26.300000,90.900000,bn +26.300000,90.800000,bn +26.400000,90.800000,bn +26.400000,90.700000,hi +26.300000,90.700000,bn +26.200000,90.700000,hi +26.100000,90.700000,hi +26.100000,90.800000,bn +26.200000,90.800000,bn +26.200000,90.900000,bn +26.100000,90.900000,bn +26.000000,90.900000,bn +25.900000,90.900000,bn +25.900000,90.800000,hi +26.000000,90.800000,hi +26.000000,90.700000,hi +25.900000,90.700000,hi +25.800000,90.700000,hi +25.700000,90.700000,hi +25.700000,90.800000,hi +25.800000,90.800000,hi +25.800000,90.900000,hi +25.700000,90.900000,hi +25.700000,91.000000,hi +25.800000,91.000000,hi +26.000000,91.000000,bn +25.900000,91.000000,bn +25.900000,91.100000,hi +26.000000,91.100000,bn +26.000000,91.200000,hi +25.900000,91.200000,hi +25.800000,91.200000,hi +25.800000,91.100000,hi +25.700000,91.100000,hi +25.700000,91.200000,hi +25.800000,91.300000,hi +25.700000,91.300000,hi +25.700000,91.400000,hi +25.700000,91.500000,hi +25.800000,91.500000,hi +25.800000,91.400000,hi +25.900000,91.400000,hi +25.900000,91.500000,hi +26.000000,91.500000,hi +26.000000,91.400000,hi +26.000000,91.300000,hi +25.900000,91.300000,hi +26.100000,91.300000,bn +26.200000,91.300000,bn +26.400000,91.300000,bn +26.300000,91.300000,bn +26.300000,91.400000,bn +26.400000,91.400000,bn +26.400000,91.500000,hi +26.300000,91.500000,hi +26.200000,91.500000,hi +26.200000,91.400000,hi +26.100000,91.400000,hi +26.100000,91.500000,hi +26.100000,91.600000,hi +26.200000,91.600000,hi +26.400000,91.600000,hi +26.300000,91.600000,hi +26.300000,91.700000,hi +26.400000,91.700000,hi +26.400000,91.800000,hi +26.300000,91.800000,hi +26.200000,91.800000,hi +26.200000,91.700000,hi +26.100000,91.700000,hi +26.100000,91.800000,hi +26.000000,91.800000,hi +25.900000,91.800000,hi +25.900000,91.700000,hi +26.000000,91.700000,hi +26.000000,91.600000,hi +25.900000,91.600000,hi +25.800000,91.600000,hi +25.700000,91.600000,hi +25.700000,91.700000,hi +25.800000,91.700000,hi +25.800000,91.800000,hi +25.700000,91.800000,hi +25.700000,91.900000,hi +25.800000,91.900000,hi +25.900000,91.900000,hi +26.000000,91.900000,hi +25.900000,92.000000,hi +26.000000,92.000000,hi +26.000000,92.100000,hi +25.900000,92.100000,hi +25.800000,92.100000,hi +25.800000,92.000000,hi +25.700000,92.000000,hi +25.700000,92.100000,hi +25.700000,92.200000,hi +25.800000,92.200000,hi +25.800000,92.300000,en +25.700000,92.300000,hi +25.700000,92.400000,hi +25.800000,92.400000,hi +25.900000,92.400000,hi +26.000000,92.400000,hi +26.000000,92.300000,hi +25.900000,92.300000,hi +25.900000,92.200000,hi +26.000000,92.200000,hi +26.100000,92.200000,hi +26.200000,92.200000,hi +26.200000,92.300000,hi +26.100000,92.300000,hi +26.100000,92.400000,hi +26.200000,92.400000,hi +26.300000,92.400000,bn +26.400000,92.300000,bn +26.300000,92.300000,hi +26.300000,92.200000,hi +26.400000,92.200000,bn +26.400000,92.100000,bn +26.400000,92.000000,hi +26.300000,92.000000,hi +26.300000,92.100000,hi +26.200000,92.100000,hi +26.100000,92.100000,hi +26.100000,92.000000,hi +26.200000,92.000000,hi +26.100000,91.900000,hi +26.200000,91.900000,hi +26.300000,91.900000,hi +26.400000,91.900000,hi +26.500000,91.900000,bn +26.600000,91.900000,hi +26.700000,91.900000,hi +26.600000,92.000000,hi +26.700000,92.000000,hi +26.700000,92.100000,hi +26.600000,92.100000,bn +26.500000,92.100000,hi +26.500000,92.000000,bn +26.500000,92.200000,bn +26.500000,92.300000,hi +26.400000,92.400000,bn +26.500000,92.400000,bn +26.600000,92.400000,hi +26.700000,92.400000,hi +26.700000,92.300000,hi +26.600000,92.300000,hi +26.600000,92.200000,hi +26.700000,92.200000,hi +26.800000,92.200000,hi +26.900000,92.200000,hi +26.900000,92.300000,hi +26.800000,92.300000,hi +26.800000,92.400000,hi +26.900000,92.400000,hi +27.000000,92.400000,hi +27.100000,92.400000,hi +27.100000,92.300000,hi +27.000000,92.300000,hi +27.000000,92.200000,hi +27.100000,92.200000,hi +27.100000,92.100000,hi +26.800000,92.100000,hi +26.800000,92.000000,hi +26.800000,91.900000,hi +26.900000,91.900000,hi +26.800000,91.800000,hi +26.700000,91.800000,hi +26.700000,91.700000,hi +26.600000,91.700000,hi +26.600000,91.800000,hi +26.500000,91.800000,bn +26.500000,91.700000,hi +26.500000,91.600000,hi +26.600000,91.600000,hi +26.700000,91.600000,hi +26.700000,91.500000,hi +26.700000,91.400000,hi +26.600000,91.500000,bn +26.500000,91.500000,bn +26.500000,91.400000,hi +26.600000,91.400000,bn +26.600000,91.300000,bn +26.500000,91.300000,bn +26.700000,91.300000,hi +27.600000,91.600000,en +27.700000,91.800000,hi +27.700000,91.700000,hi +27.600000,91.700000,hi +27.600000,91.800000,hi +27.500000,91.800000,hi +27.500000,91.900000,hi +27.500000,92.000000,hi +27.500000,92.100000,hi +27.400000,92.100000,hi +27.200000,92.100000,hi +27.200000,92.200000,hi +27.300000,92.200000,hi +27.300000,92.300000,hi +27.200000,92.300000,hi +27.200000,92.400000,hi +27.300000,92.400000,hi +27.400000,92.400000,hi +27.500000,92.400000,hi +27.500000,92.300000,hi +27.400000,92.300000,hi +27.400000,92.200000,hi +27.500000,92.200000,hi +27.600000,92.200000,hi +27.700000,92.200000,hi +27.700000,92.300000,hi +27.600000,92.300000,hi +27.600000,92.400000,hi +27.700000,92.400000,hi +27.800000,92.400000,hi +27.800000,92.300000,hi +27.800000,92.200000,hi +27.700000,92.100000,hi +27.600000,92.100000,hi +27.600000,92.000000,hi +27.700000,92.000000,hi +27.600000,91.900000,hi +27.700000,91.900000,hi +28.700000,93.900000,hi +28.700000,94.000000,hi +29.100000,94.300000,hi +28.800000,94.300000,hi +28.900000,94.300000,hi +28.900000,94.200000,hi +28.800000,94.100000,hi +28.800000,94.200000,hi +28.700000,94.100000,hi +28.700000,94.200000,hi +28.700000,94.300000,hi +28.600000,94.500000,hi +28.700000,94.500000,hi +28.700000,94.400000,hi +28.800000,94.400000,hi +28.900000,94.400000,hi +28.900000,94.500000,hi +28.800000,94.500000,hi +28.800000,94.600000,hi +28.900000,94.600000,hi +28.900000,94.700000,hi +28.800000,94.700000,hi +28.700000,94.700000,hi +28.700000,94.600000,hi +28.600000,94.600000,hi +28.600000,94.700000,hi +28.600000,94.800000,hi +28.700000,94.800000,hi +28.600000,94.900000,hi +28.600000,95.000000,hi +28.700000,95.000000,hi +28.700000,94.900000,hi +28.800000,94.900000,hi +28.800000,95.000000,hi +28.900000,95.000000,hi +28.900000,94.900000,hi +28.800000,94.800000,hi +28.900000,94.800000,hi +29.000000,94.800000,hi +29.100000,94.800000,hi +29.000000,94.900000,hi +29.000000,95.000000,hi +29.100000,95.000000,hi +29.100000,94.900000,hi +29.200000,94.600000,hi +29.200000,94.700000,hi +29.100000,94.700000,hi +29.000000,94.700000,hi +29.000000,94.600000,hi +29.100000,94.600000,hi +29.100000,94.500000,hi +29.000000,94.500000,hi +29.000000,94.400000,hi +29.100000,94.400000,hi +29.200000,94.500000,hi +33.500000,74.200000,hi +33.600000,74.200000,hi +33.600000,74.100000,hi +33.700000,74.100000,hi +33.700000,74.200000,hi +33.800000,74.200000,hi +33.800000,74.100000,hi +33.700000,74.000000,hi +34.100000,74.200000,hi +34.100000,74.100000,hi +34.100000,74.000000,hi +34.100000,73.900000,en +34.400000,73.800000,hi +34.500000,73.900000,hi +34.600000,74.000000,hi +34.700000,74.200000,hi +34.600000,74.100000,hi +34.600000,74.200000,hi +34.500000,74.200000,hi +34.400000,74.200000,hi +34.400000,74.100000,hi +34.500000,74.100000,hi +34.500000,74.000000,hi +34.400000,73.900000,hi +34.400000,74.000000,hi +34.300000,74.000000,hi +34.200000,74.000000,hi +34.200000,74.100000,hi +34.300000,74.100000,hi +34.300000,74.200000,hi +34.200000,74.200000,hi +34.200000,74.300000,hi +34.300000,74.300000,hi +34.300000,74.400000,hi +34.300000,74.500000,hi +34.400000,74.500000,hi +34.500000,74.500000,hi +34.500000,74.400000,hi +34.400000,74.400000,hi +34.400000,74.300000,hi +34.500000,74.300000,hi +34.600000,74.300000,hi +34.600000,74.400000,hi +34.700000,74.400000,hi +34.700000,74.300000,hi +34.800000,74.300000,hi +34.700000,74.500000,hi +34.600000,74.500000,hi +34.600000,74.600000,hi +34.600000,74.700000,hi +34.700000,74.700000,hi +34.700000,74.600000,hi +34.600000,74.900000,hi +34.500000,74.900000,hi +34.500000,74.800000,hi +34.600000,74.800000,hi +34.500000,74.600000,hi +34.500000,74.700000,hi +34.400000,74.700000,hi +34.400000,74.600000,hi +34.300000,74.600000,hi +34.300000,74.700000,hi +34.300000,74.800000,hi +34.400000,74.800000,hi +34.400000,74.900000,hi +34.300000,74.900000,hi +34.200000,74.900000,hi +34.200000,74.800000,hi +34.100000,74.800000,hi +34.100000,74.900000,hi +34.000000,74.900000,hi +34.000000,74.800000,hi +34.000000,74.700000,hi +33.900000,74.700000,hi +33.900000,74.600000,hi +34.000000,74.600000,hi +34.100000,74.600000,hi +34.100000,74.700000,hi +34.200000,74.700000,hi +34.200000,74.600000,hi +34.200000,74.500000,hi +34.100000,74.500000,hi +34.200000,74.400000,hi +34.100000,74.300000,hi +34.100000,74.400000,hi +34.000000,74.400000,hi +34.000000,74.300000,hi +33.900000,74.300000,hi +33.900000,74.400000,hi +34.000000,74.500000,hi +33.900000,74.500000,hi +33.800000,74.500000,hi +33.700000,74.500000,hi +33.800000,74.400000,hi +33.800000,74.300000,hi +33.700000,74.300000,hi +33.700000,74.400000,hi +33.600000,74.400000,hi +33.600000,74.300000,hi +33.500000,74.300000,hi +33.600000,74.500000,hi +33.600000,74.600000,hi +33.600000,74.700000,hi +33.700000,74.700000,hi +33.700000,74.600000,hi +33.800000,74.600000,hi +33.800000,74.700000,hi +33.800000,74.800000,hi +33.900000,74.800000,hi +33.900000,74.900000,hi +33.800000,74.900000,hi +33.700000,74.900000,ur +33.700000,74.800000,hi +33.600000,74.800000,hi +33.600000,74.900000,hi +33.600000,75.000000,hi +33.700000,75.000000,hi +33.700000,75.100000,hi +33.600000,75.100000,hi +33.700000,75.300000,hi +33.700000,75.200000,hi +33.800000,75.200000,hi +33.800000,75.300000,hi +33.900000,75.300000,hi +33.900000,75.200000,hi +33.900000,75.100000,hi +33.800000,75.100000,hi +33.800000,75.000000,hi +33.900000,75.000000,hi +34.000000,75.000000,hi +34.000000,75.100000,hi +34.100000,75.100000,hi +34.100000,75.000000,hi +34.200000,75.000000,hi +34.200000,75.100000,hi +34.200000,75.200000,hi +34.300000,75.200000,hi +34.300000,75.300000,hi +34.200000,75.300000,hi +34.100000,75.300000,hi +34.100000,75.200000,hi +34.000000,75.200000,hi +34.000000,75.300000,hi +34.000000,75.400000,hi +34.000000,75.500000,hi +34.100000,75.500000,hi +34.100000,75.400000,hi +34.200000,75.400000,hi +34.300000,75.400000,hi +34.300000,75.500000,hi +34.200000,75.500000,hi +34.200000,75.600000,hi +34.300000,75.600000,hi +34.300000,75.700000,hi +34.200000,75.700000,hi +34.100000,75.600000,hi +34.100000,75.700000,hi +34.000000,75.700000,hi +33.900000,75.700000,hi +33.900000,75.600000,hi +34.000000,75.600000,hi +33.900000,75.400000,hi +33.900000,75.500000,hi +33.800000,75.500000,hi +33.800000,75.400000,hi +33.700000,75.400000,hi +33.700000,75.500000,hi +33.700000,75.600000,hi +33.800000,75.600000,hi +33.800000,75.700000,hi +33.700000,75.700000,en +33.700000,75.800000,hi +33.800000,75.800000,hi +33.900000,75.800000,hi +34.000000,75.800000,hi +33.900000,75.900000,hi +34.000000,75.900000,hi +34.000000,76.000000,hi +33.900000,76.000000,hi +33.800000,76.000000,hi +33.800000,75.900000,hi +33.700000,75.900000,hi +33.800000,76.100000,hi +33.900000,76.200000,hi +33.800000,76.200000,hi +33.800000,76.300000,hi +33.800000,76.400000,hi +33.900000,76.400000,hi +33.900000,76.300000,hi +34.000000,76.300000,hi +34.000000,76.400000,hi +34.100000,76.400000,hi +34.000000,76.200000,hi +33.900000,76.100000,hi +34.000000,76.100000,hi +34.100000,76.100000,en +34.200000,76.100000,hi +34.200000,76.200000,hi +34.100000,76.200000,hi +34.100000,76.300000,hi +34.200000,76.400000,en +34.200000,76.300000,en +34.300000,76.300000,hi +34.300000,76.400000,hi +34.400000,76.400000,hi +34.400000,76.300000,hi +34.400000,76.200000,hi +34.300000,76.200000,hi +34.300000,76.100000,hi +34.400000,76.100000,hi +34.400000,76.000000,hi +34.300000,75.900000,hi +34.300000,76.000000,hi +34.200000,76.000000,hi +34.100000,76.000000,en +34.100000,75.900000,en +34.200000,75.900000,hi +34.100000,75.800000,hi +34.200000,75.800000,hi +34.300000,75.800000,hi +34.400000,75.800000,hi +34.500000,75.800000,hi +34.600000,75.900000,hi +34.600000,76.000000,hi +34.500000,76.000000,hi +34.500000,75.900000,hi +34.400000,75.900000,hi +34.500000,76.100000,hi +34.600000,76.200000,hi +34.500000,76.200000,hi +34.500000,76.300000,hi +34.500000,76.400000,hi +34.600000,76.400000,hi +34.600000,76.300000,hi +34.700000,76.300000,hi +34.700000,76.400000,hi +34.600000,76.100000,hi +34.500000,75.700000,hi +34.400000,75.700000,hi +34.400000,75.600000,hi +34.500000,75.600000,hi +34.500000,75.500000,hi +34.400000,75.500000,hi +34.400000,75.400000,hi +34.500000,75.400000,hi +34.600000,75.300000,hi +34.600000,75.200000,hi +34.500000,75.200000,hi +34.500000,75.300000,hi +34.400000,75.300000,hi +34.400000,75.200000,hi +34.400000,75.100000,hi +34.300000,75.100000,hi +34.300000,75.000000,hi +34.400000,75.000000,hi +34.500000,75.000000,hi +34.500000,75.100000,hi +34.600000,75.100000,en +34.600000,75.000000,en +35.400000,78.000000,hi +35.300000,77.500000,hi +35.400000,77.700000,hi +35.300000,77.600000,hi +35.300000,77.700000,hi +35.300000,77.800000,hi +35.400000,77.800000,hi +35.400000,77.900000,hi +35.300000,77.900000,hi +35.200000,77.900000,hi +35.200000,77.800000,hi +35.200000,77.700000,hi +35.200000,77.600000,hi +35.100000,77.700000,en +35.100000,77.600000,en +35.000000,77.600000,hi +35.000000,77.700000,hi +35.000000,77.800000,en +35.100000,77.800000,en +35.100000,77.900000,en +35.000000,77.900000,en +34.900000,77.900000,en +34.900000,77.800000,en +34.800000,77.800000,en +34.800000,77.900000,en +34.700000,77.900000,hi +34.700000,77.800000,hi +34.700000,77.700000,hi +34.600000,77.700000,hi +34.600000,77.600000,en +34.700000,77.600000,en +34.800000,77.600000,en +34.800000,77.700000,hi +34.900000,77.700000,hi +34.900000,77.600000,hi +34.900000,77.500000,hi +34.900000,77.400000,hi +34.800000,77.400000,en +34.800000,77.500000,en +34.700000,77.500000,en +34.600000,77.500000,en +34.600000,77.400000,hi +34.700000,77.400000,hi +34.700000,77.300000,hi +34.600000,77.300000,hi +34.600000,77.200000,hi +34.700000,77.200000,hi +34.800000,77.300000,en +34.800000,77.200000,hi +34.900000,77.200000,hi +35.000000,77.200000,hi +35.000000,77.300000,hi +34.900000,77.300000,hi +35.000000,77.500000,hi +35.000000,77.400000,hi +35.100000,77.400000,en +35.100000,77.500000,en +35.200000,77.500000,hi +35.200000,77.400000,hi +35.200000,77.300000,hi +35.100000,77.300000,en +35.100000,77.200000,en +34.900000,77.100000,hi +35.000000,77.100000,hi +35.000000,77.000000,hi +34.900000,77.000000,hi +34.900000,76.900000,hi +34.900000,76.800000,hi +34.800000,76.800000,hi +34.700000,76.800000,hi +34.700000,76.700000,hi +34.800000,76.700000,hi +34.800000,76.500000,hi +34.700000,76.500000,hi +34.700000,76.600000,hi +34.600000,76.600000,en +34.600000,76.500000,en +34.500000,76.500000,en +34.500000,76.600000,en +34.500000,76.700000,en +34.600000,76.700000,hi +34.600000,76.800000,hi +34.500000,76.800000,en +34.600000,77.000000,hi +34.600000,76.900000,hi +34.700000,76.900000,hi +34.800000,76.900000,hi +34.800000,77.000000,hi +34.700000,77.000000,hi +34.800000,77.100000,hi +34.700000,77.100000,hi +34.600000,77.100000,hi +34.500000,77.100000,hi +34.400000,77.100000,hi +34.200000,77.100000,hi +34.300000,77.100000,hi +34.300000,77.000000,hi +34.200000,77.000000,en +34.200000,76.900000,en +34.300000,76.900000,en +34.400000,76.900000,en +34.400000,77.000000,hi +34.500000,77.000000,hi +34.500000,76.900000,en +34.400000,76.800000,en +34.400000,76.700000,en +34.400000,76.600000,en +34.400000,76.500000,en +34.300000,76.500000,en +34.300000,76.600000,en +34.200000,76.500000,en +34.200000,76.600000,en +34.200000,76.700000,en +34.300000,76.700000,en +34.300000,76.800000,en +34.200000,76.800000,en +34.100000,76.800000,en +34.000000,76.800000,hi +34.000000,76.700000,hi +34.100000,76.700000,en +34.100000,76.600000,hi +34.100000,76.500000,hi +34.000000,76.500000,hi +34.000000,76.600000,hi +33.900000,76.600000,hi +33.900000,76.500000,hi +33.800000,76.500000,hi +33.800000,76.600000,hi +33.800000,76.700000,hi +33.900000,76.700000,hi +33.900000,76.800000,hi +33.800000,76.800000,hi +33.900000,77.000000,hi +33.900000,76.900000,hi +34.000000,76.900000,hi +34.100000,76.900000,en +34.100000,77.000000,en +34.000000,77.000000,hi +34.100000,77.100000,hi +34.000000,77.100000,hi +33.900000,77.100000,hi +33.900000,77.200000,hi +34.000000,77.200000,hi +34.000000,77.300000,hi +33.900000,77.300000,hi +33.900000,77.400000,hi +33.900000,77.500000,hi +34.000000,77.500000,hi +34.000000,77.400000,hi +34.100000,77.400000,hi +34.100000,77.500000,hi +34.200000,77.500000,hi +34.200000,77.400000,hi +34.100000,77.300000,hi +34.100000,77.200000,hi +34.200000,77.200000,hi +34.200000,77.300000,hi +34.300000,77.300000,hi +34.300000,77.200000,hi +34.400000,77.200000,hi +34.500000,77.200000,hi +34.500000,77.300000,hi +34.400000,77.300000,hi +34.400000,77.400000,hi +34.500000,77.400000,hi +34.500000,77.500000,en +34.400000,77.500000,hi +34.300000,77.400000,hi +34.300000,77.500000,hi +34.300000,77.600000,hi +34.300000,77.700000,hi +34.400000,77.700000,hi +34.400000,77.600000,hi +34.500000,77.600000,en +34.500000,77.700000,hi +34.500000,77.800000,hi +34.600000,77.800000,hi +34.600000,77.900000,hi +34.500000,77.900000,hi +34.400000,77.900000,hi +34.400000,77.800000,hi +34.300000,77.800000,hi +34.300000,77.900000,hi +34.200000,77.900000,hi +34.100000,77.900000,hi +34.100000,77.800000,hi +34.200000,77.800000,hi +34.200000,77.700000,hi +34.200000,77.600000,hi +34.100000,77.600000,hi +34.100000,77.700000,hi +34.000000,77.700000,hi +34.000000,77.600000,hi +33.900000,77.600000,hi +33.900000,77.700000,hi +34.000000,77.800000,hi +34.000000,77.900000,hi +34.000000,78.000000,hi +34.000000,78.100000,en +34.100000,78.100000,en +34.100000,78.000000,hi +34.200000,78.000000,en +34.200000,78.100000,en +34.200000,78.200000,en +34.100000,78.200000,en +34.000000,78.200000,en +34.000000,78.300000,en +34.100000,78.300000,en +34.100000,78.400000,hi +34.000000,78.400000,hi +34.000000,78.500000,hi +34.000000,78.600000,hi +34.100000,78.600000,hi +34.100000,78.500000,hi +34.200000,78.500000,hi +34.200000,78.600000,hi +34.300000,78.600000,hi +34.300000,78.500000,hi +34.300000,78.400000,hi +34.200000,78.400000,hi +34.200000,78.300000,en +34.300000,78.300000,hi +34.400000,78.300000,en +34.400000,78.400000,en +34.400000,78.500000,en +34.400000,78.600000,en +34.500000,78.600000,en +34.500000,78.500000,en +34.500000,78.400000,en +34.500000,78.300000,en +34.600000,78.300000,en +34.600000,78.200000,en +34.500000,78.200000,en +34.300000,78.200000,hi +34.400000,78.200000,hi +34.400000,78.100000,hi +34.300000,78.100000,hi +34.300000,78.000000,hi +34.400000,78.000000,hi +34.500000,78.000000,hi +34.500000,78.100000,hi +34.600000,78.100000,en +34.600000,78.000000,hi +34.700000,78.000000,hi +34.800000,78.100000,hi +34.700000,78.100000,hi +34.700000,78.200000,hi +34.800000,78.200000,hi +34.900000,78.200000,hi +34.900000,78.100000,hi +34.800000,78.000000,en +34.900000,78.000000,en +35.000000,78.000000,en +35.000000,78.100000,hi +35.100000,78.100000,hi +35.100000,78.000000,hi +35.200000,78.000000,hi +34.500000,78.700000,en +34.400000,78.700000,en +34.400000,78.800000,hi +34.200000,78.900000,hi +34.300000,78.900000,hi +34.300000,78.800000,hi +34.300000,78.700000,hi +34.200000,78.700000,hi +34.200000,78.800000,hi +34.100000,78.700000,hi +34.000000,78.700000,hi +33.900000,78.700000,hi +33.800000,78.700000,hi +33.700000,78.700000,hi +33.600000,78.700000,hi +33.500000,78.700000,hi +33.400000,78.800000,hi +33.400000,78.700000,hi +33.300000,78.700000,hi +33.300000,78.800000,hi +33.300000,78.900000,hi +33.100000,79.100000,hi +33.000000,79.100000,hi +33.000000,79.200000,hi +33.100000,79.200000,hi +33.100000,79.300000,hi +33.000000,79.300000,hi +32.900000,79.300000,hi +32.900000,79.200000,hi +32.800000,79.200000,hi +32.800000,79.300000,hi +32.700000,79.300000,hi +32.700000,79.200000,hi +32.700000,79.100000,hi +32.800000,79.100000,hi +32.900000,79.100000,hi +32.900000,79.000000,hi +32.900000,78.900000,hi +32.800000,78.900000,hi +32.800000,79.000000,hi +32.700000,79.000000,hi +32.600000,79.000000,hi +32.600000,78.900000,hi +32.700000,78.900000,hi +32.700000,78.800000,hi +32.600000,78.800000,hi +32.700000,78.700000,hi +32.800000,78.700000,hi +32.800000,78.800000,hi +32.900000,78.800000,hi +32.900000,78.700000,hi +33.000000,78.700000,en +33.100000,78.700000,en +33.100000,78.800000,en +33.000000,78.800000,en +33.000000,78.900000,hi +33.000000,79.000000,hi +33.100000,79.000000,hi +33.100000,78.900000,hi +33.200000,78.900000,hi +33.200000,79.000000,hi +33.300000,79.000000,hi +33.200000,78.800000,en +33.200000,78.700000,en +33.200000,78.600000,en +33.100000,78.600000,en +33.100000,78.500000,en +33.200000,78.500000,en +33.200000,78.400000,en +33.200000,78.300000,en +33.100000,78.300000,en +33.100000,78.400000,en +33.000000,78.400000,en +33.000000,78.300000,en +32.900000,78.300000,hi +32.900000,78.400000,hi +33.000000,78.500000,en +33.000000,78.600000,en +32.900000,78.600000,hi +32.900000,78.500000,hi +32.800000,78.500000,hi +32.800000,78.600000,hi +32.700000,78.600000,hi +32.700000,78.500000,hi +32.700000,78.400000,hi +32.600000,78.400000,hi +32.600000,78.300000,hi +32.700000,78.300000,hi +32.800000,78.400000,en +32.800000,78.300000,en +32.800000,78.200000,en +32.700000,78.200000,hi +32.600000,78.200000,hi +32.600000,78.100000,hi +32.600000,78.000000,hi +32.700000,78.000000,hi +32.700000,78.100000,hi +32.800000,78.100000,hi +32.800000,78.000000,hi +32.900000,78.000000,hi +33.000000,78.000000,en +33.000000,78.100000,en +32.900000,78.100000,hi +32.900000,78.200000,hi +33.000000,78.200000,en +33.100000,78.200000,en +33.200000,78.200000,en +33.200000,78.100000,en +33.100000,78.100000,en +33.100000,78.000000,hi +33.200000,78.000000,hi +33.300000,78.000000,hi +33.300000,78.100000,en +33.400000,78.100000,en +33.400000,78.000000,hi +33.500000,78.000000,hi +33.500000,78.100000,hi +33.500000,78.200000,hi +33.400000,78.200000,hi +33.300000,78.200000,hi +33.300000,78.300000,hi +33.400000,78.300000,hi +33.400000,78.400000,hi +33.300000,78.400000,hi +33.300000,78.500000,en +33.300000,78.600000,hi +33.400000,78.600000,hi +33.400000,78.500000,en +33.500000,78.500000,hi +33.500000,78.600000,hi +33.600000,78.600000,hi +33.600000,78.500000,hi +33.600000,78.400000,hi +33.500000,78.400000,hi +33.500000,78.300000,hi +33.600000,78.300000,hi +33.700000,78.300000,hi +33.700000,78.400000,hi +33.700000,78.500000,hi +33.700000,78.600000,hi +33.800000,78.600000,hi +33.800000,78.500000,hi +33.900000,78.600000,hi +33.900000,78.500000,hi +33.900000,78.400000,hi +33.800000,78.400000,hi +33.800000,78.300000,hi +33.900000,78.300000,en +33.900000,78.200000,en +33.800000,78.200000,hi +33.600000,78.200000,hi +33.700000,78.200000,hi +33.700000,78.100000,hi +33.600000,78.100000,hi +33.600000,78.000000,hi +33.700000,78.000000,hi +33.800000,78.000000,hi +33.800000,78.100000,hi +33.900000,78.100000,en +33.900000,78.000000,hi +33.900000,77.900000,hi +33.800000,77.900000,hi +33.800000,77.800000,hi +33.900000,77.800000,hi +33.800000,77.600000,hi +33.800000,77.700000,hi +33.700000,77.700000,hi +33.700000,77.600000,hi +33.600000,77.600000,hi +33.600000,77.700000,hi +33.600000,77.800000,hi +33.700000,77.800000,hi +33.700000,77.900000,hi +33.600000,77.900000,hi +33.500000,77.900000,hi +33.500000,77.800000,hi +33.400000,77.800000,hi +33.400000,77.900000,hi +33.300000,77.900000,hi +33.200000,77.800000,hi +33.300000,77.800000,hi +33.300000,77.700000,hi +33.200000,77.700000,hi +33.200000,77.600000,hi +33.300000,77.600000,hi +33.400000,77.600000,hi +33.400000,77.700000,hi +33.500000,77.700000,hi +33.500000,77.600000,hi +33.500000,77.500000,hi +33.500000,77.400000,hi +33.400000,77.400000,hi +33.400000,77.500000,hi +33.300000,77.500000,hi +33.200000,77.500000,hi +33.200000,77.400000,hi +33.300000,77.400000,hi +33.300000,77.300000,hi +33.200000,77.300000,hi +33.200000,77.200000,hi +33.300000,77.200000,hi +33.400000,77.300000,hi +33.400000,77.200000,hi +33.500000,77.200000,hi +33.600000,77.200000,hi +33.600000,77.300000,hi +33.500000,77.300000,hi +33.600000,77.500000,hi +33.600000,77.400000,hi +33.700000,77.400000,hi +33.700000,77.500000,hi +33.800000,77.500000,hi +33.800000,77.400000,hi +33.800000,77.300000,hi +33.700000,77.300000,hi +33.700000,77.200000,hi +33.800000,77.200000,hi +33.800000,77.100000,hi +33.700000,77.100000,hi +33.500000,77.100000,hi +33.600000,77.100000,hi +33.600000,77.000000,hi +33.500000,77.000000,hi +33.500000,76.900000,hi +33.600000,76.900000,hi +33.700000,76.900000,hi +33.700000,77.000000,hi +33.800000,77.000000,hi +33.800000,76.900000,hi +33.700000,76.800000,hi +33.700000,76.700000,hi +33.700000,76.600000,hi +33.700000,76.500000,hi +33.600000,76.500000,hi +33.600000,76.600000,hi +33.500000,76.500000,hi +33.500000,76.600000,hi +33.500000,76.700000,hi +33.600000,76.700000,hi +33.600000,76.800000,hi +33.500000,76.800000,hi +33.400000,76.800000,hi +33.300000,76.800000,hi +33.300000,76.700000,hi +33.400000,76.700000,hi +33.400000,76.600000,hi +33.400000,76.500000,hi +33.300000,76.500000,hi +33.300000,76.600000,hi +33.200000,76.600000,hi +33.200000,76.500000,hi +33.100000,76.500000,en +33.100000,76.600000,hi +33.100000,76.700000,hi +33.200000,76.700000,hi +33.200000,76.800000,hi +33.100000,76.800000,hi +33.200000,77.000000,hi +33.200000,76.900000,hi +33.300000,76.900000,hi +33.400000,76.900000,hi +33.400000,77.000000,hi +33.300000,77.000000,hi +33.300000,77.100000,hi +33.400000,77.100000,hi +33.200000,77.100000,hi +33.100000,77.100000,hi +33.000000,77.100000,hi +32.800000,77.100000,hi +32.900000,77.100000,hi +32.900000,77.000000,hi +32.800000,77.000000,hi +32.800000,76.900000,hi +32.900000,76.900000,hi +33.000000,76.900000,hi +33.000000,77.000000,hi +33.100000,77.000000,hi +33.100000,76.900000,hi +33.000000,76.800000,hi +33.000000,76.700000,hi +33.000000,76.600000,hi +33.000000,76.500000,en +32.900000,76.500000,hi +32.900000,76.600000,hi +32.800000,76.500000,hi +32.800000,76.600000,hi +32.800000,76.700000,hi +32.900000,76.700000,hi +32.900000,76.800000,hi +32.800000,76.800000,hi +32.700000,76.800000,hi +32.600000,76.800000,hi +32.600000,76.700000,hi +32.700000,76.700000,hi +32.700000,76.600000,hi +32.700000,76.500000,hi +32.600000,76.500000,hi +32.600000,76.600000,hi +32.500000,76.600000,hi +32.500000,76.500000,hi +32.400000,76.500000,hi +32.400000,76.600000,hi +32.400000,76.700000,hi +32.500000,76.700000,hi +32.500000,76.800000,hi +32.400000,76.800000,hi +32.400000,76.900000,hi +32.500000,77.000000,hi +32.500000,76.900000,hi +32.600000,76.900000,hi +32.700000,76.900000,hi +32.700000,77.000000,hi +32.600000,77.000000,hi +32.600000,77.100000,hi +32.700000,77.100000,hi +32.500000,77.100000,hi +32.500000,77.200000,hi +32.600000,77.200000,hi +32.600000,77.300000,hi +32.500000,77.300000,hi +32.500000,77.400000,hi +32.500000,77.500000,hi +32.600000,77.500000,hi +32.600000,77.400000,hi +32.700000,77.400000,hi +32.700000,77.500000,hi +32.800000,77.500000,hi +32.700000,77.300000,hi +32.700000,77.200000,hi +32.800000,77.200000,hi +32.800000,77.300000,hi +32.900000,77.300000,hi +32.900000,77.200000,hi +33.000000,77.200000,hi +33.100000,77.200000,hi +33.100000,77.300000,hi +33.000000,77.300000,hi +33.000000,77.400000,hi +33.100000,77.400000,hi +33.100000,77.500000,hi +33.000000,77.500000,hi +32.900000,77.500000,hi +32.900000,77.400000,hi +32.800000,77.400000,hi +32.900000,77.600000,hi +32.900000,77.700000,hi +33.000000,77.700000,hi +33.000000,77.600000,hi +33.100000,77.600000,hi +33.100000,77.700000,hi +33.100000,77.800000,hi +33.200000,77.900000,hi +33.100000,77.900000,hi +33.000000,77.900000,hi +33.000000,77.800000,hi +32.900000,77.800000,hi +32.900000,77.900000,hi +32.800000,77.900000,hi +32.700000,77.900000,hi +32.700000,77.800000,hi +32.800000,77.800000,hi +32.800000,77.700000,hi +32.800000,77.600000,hi +32.700000,77.600000,hi +32.700000,77.700000,hi +32.600000,77.700000,hi +32.600000,77.600000,hi +32.500000,77.600000,hi +32.500000,77.700000,hi +32.500000,77.800000,hi +32.600000,77.800000,hi +32.600000,77.900000,hi +32.500000,77.900000,hi +32.400000,77.900000,hi +32.400000,77.800000,hi +32.400000,77.700000,hi +32.400000,77.600000,hi +32.300000,77.600000,hi +32.300000,77.700000,hi +32.200000,77.600000,hi +32.200000,77.700000,hi +32.200000,77.800000,hi +32.300000,77.800000,hi +32.300000,77.900000,hi +32.200000,77.900000,hi +32.100000,77.900000,hi +32.100000,77.800000,hi +32.000000,77.800000,hi +32.000000,77.900000,hi +31.900000,77.900000,hi +31.800000,77.900000,hi +31.800000,77.800000,hi +31.900000,77.800000,hi +31.900000,77.700000,hi +31.800000,77.700000,hi +31.800000,77.600000,hi +31.900000,77.600000,hi +32.000000,77.600000,hi +32.000000,77.700000,hi +32.100000,77.700000,hi +32.100000,77.600000,hi +32.000000,77.400000,hi +32.000000,77.500000,hi +31.900000,77.500000,hi +31.800000,77.500000,hi +31.800000,77.400000,hi +31.900000,77.400000,hi +31.800000,77.300000,hi +31.800000,77.200000,hi +31.900000,77.200000,hi +31.900000,77.300000,hi +32.000000,77.300000,hi +32.000000,77.200000,hi +32.100000,77.200000,hi +32.200000,77.200000,hi +32.200000,77.300000,hi +32.100000,77.300000,hi +32.100000,77.400000,hi +32.100000,77.500000,hi +32.200000,77.500000,hi +32.200000,77.400000,hi +32.300000,77.400000,hi +32.300000,77.500000,hi +32.400000,77.500000,hi +32.400000,77.400000,hi +32.400000,77.300000,hi +32.300000,77.300000,hi +32.300000,77.200000,hi +32.400000,77.200000,hi +32.400000,77.100000,hi +32.300000,77.100000,hi +32.100000,77.100000,hi +32.200000,77.100000,hi +32.200000,77.000000,hi +32.100000,77.000000,hi +32.100000,76.900000,hi +32.200000,76.900000,hi +32.300000,76.900000,hi +32.300000,77.000000,hi +32.400000,77.000000,hi +32.300000,76.800000,hi +32.200000,76.700000,hi +32.300000,76.700000,hi +32.300000,76.600000,hi +32.300000,76.500000,hi +32.200000,76.500000,hi +32.200000,76.600000,hi +32.100000,76.600000,hi +32.100000,76.500000,hi +32.000000,76.500000,hi +32.100000,76.700000,hi +32.200000,76.800000,hi +32.100000,76.800000,hi +32.000000,76.800000,hi +31.900000,76.800000,hi +31.900000,76.700000,hi +32.000000,76.700000,hi +32.000000,76.600000,hi +31.900000,76.500000,hi +31.900000,76.600000,hi +31.800000,76.600000,hi +31.800000,76.500000,hi +31.700000,76.500000,hi +31.700000,76.600000,hi +31.700000,76.700000,hi +31.800000,76.700000,hi +31.800000,76.800000,hi +31.700000,76.800000,hi +31.700000,76.900000,hi +31.700000,77.000000,hi +31.800000,77.000000,hi +31.800000,76.900000,hi +31.900000,76.900000,hi +32.000000,76.900000,hi +32.000000,77.000000,hi +31.900000,77.000000,hi +31.900000,77.100000,hi +32.000000,77.100000,hi +31.800000,77.100000,hi +31.700000,77.100000,hi +31.600000,77.100000,hi +31.400000,77.100000,hi +31.500000,77.100000,hi +31.500000,77.000000,hi +31.400000,77.000000,hi +31.400000,76.900000,hi +31.500000,76.900000,hi +31.600000,77.000000,hi +31.600000,76.900000,hi +31.600000,76.800000,hi +31.500000,76.800000,hi +31.500000,76.700000,hi +31.600000,76.700000,hi +31.600000,76.600000,hi +31.600000,76.500000,hi +31.500000,76.500000,hi +31.500000,76.600000,hi +31.400000,76.600000,hi +31.400000,76.500000,hi +31.300000,76.500000,hi +31.300000,76.600000,hi +31.300000,76.700000,hi +31.400000,76.700000,hi +31.400000,76.800000,hi +31.300000,76.800000,hi +31.200000,76.800000,hi +31.200000,76.700000,hi +31.200000,76.600000,hi +31.200000,76.500000,hi +31.100000,76.500000,hi +31.100000,76.600000,hi +31.000000,76.500000,hi +31.000000,76.600000,hi +31.000000,76.700000,hi +31.100000,76.700000,hi +31.100000,76.800000,hi +31.000000,76.800000,hi +31.000000,76.900000,hi +31.000000,77.000000,hi +31.100000,77.000000,hi +31.100000,76.900000,hi +31.200000,76.900000,hi +31.300000,76.900000,hi +31.300000,77.000000,hi +31.200000,77.000000,hi +31.200000,77.100000,hi +31.300000,77.100000,hi +31.100000,77.100000,hi +31.000000,77.100000,hi +31.000000,77.200000,hi +31.100000,77.200000,hi +31.100000,77.300000,hi +31.000000,77.300000,hi +31.100000,77.500000,hi +31.100000,77.400000,hi +31.200000,77.400000,hi +31.200000,77.500000,hi +31.300000,77.500000,hi +31.300000,77.400000,hi +31.300000,77.300000,hi +31.200000,77.300000,hi +31.200000,77.200000,hi +31.300000,77.200000,hi +31.400000,77.200000,hi +31.400000,77.300000,hi +31.500000,77.300000,hi +31.500000,77.200000,hi +31.600000,77.200000,hi +31.700000,77.200000,hi +31.700000,77.300000,hi +31.600000,77.300000,hi +31.600000,77.400000,hi +31.700000,77.400000,hi +31.700000,77.500000,hi +31.600000,77.500000,hi +31.500000,77.500000,hi +31.500000,77.400000,hi +31.400000,77.400000,hi +31.400000,77.500000,hi +31.400000,77.600000,hi +31.400000,77.700000,hi +31.500000,77.700000,hi +31.500000,77.600000,hi +31.600000,77.600000,hi +31.700000,77.600000,hi +31.700000,77.700000,hi +31.600000,77.700000,hi +31.600000,77.800000,hi +31.700000,77.800000,hi +31.700000,77.900000,hi +31.600000,77.900000,hi +31.500000,77.800000,hi +31.500000,77.900000,hi +31.400000,77.900000,hi +31.300000,77.900000,hi +31.300000,77.800000,hi +31.400000,77.800000,hi +31.300000,77.600000,hi +31.300000,77.700000,hi +31.200000,77.700000,hi +31.200000,77.600000,hi +31.100000,77.600000,hi +31.100000,77.700000,hi +31.100000,77.800000,hi +31.200000,77.800000,hi +31.200000,77.900000,hi +31.100000,77.900000,hi +31.100000,78.000000,hi +31.100000,78.100000,hi +31.200000,78.100000,hi +31.200000,78.000000,hi +31.300000,78.000000,hi +31.400000,78.000000,hi +31.400000,78.100000,hi +31.300000,78.100000,hi +31.300000,78.200000,hi +31.400000,78.200000,hi +31.200000,78.200000,hi +31.100000,78.200000,hi +31.100000,78.300000,hi +31.200000,78.300000,hi +31.200000,78.400000,hi +31.200000,78.500000,hi +31.200000,78.600000,hi +31.300000,78.600000,hi +31.300000,78.500000,hi +31.400000,78.600000,hi +31.400000,78.500000,hi +31.400000,78.400000,hi +31.300000,78.400000,hi +31.300000,78.300000,hi +31.400000,78.300000,hi +31.500000,78.300000,hi +31.600000,78.300000,hi +31.600000,78.400000,hi +31.500000,78.400000,hi +31.500000,78.500000,hi +31.500000,78.600000,hi +31.600000,78.600000,hi +31.600000,78.500000,hi +31.700000,78.500000,hi +31.700000,78.600000,hi +31.800000,78.600000,hi +31.800000,78.500000,hi +31.800000,78.400000,hi +31.700000,78.400000,hi +31.700000,78.300000,hi +31.800000,78.300000,hi +31.800000,78.200000,hi +31.700000,78.200000,hi +31.500000,78.200000,hi +31.600000,78.200000,hi +31.600000,78.100000,hi +31.500000,78.100000,hi +31.500000,78.000000,hi +31.600000,78.000000,hi +31.700000,78.100000,hi +31.700000,78.000000,hi +31.800000,78.000000,hi +31.900000,78.000000,hi +31.900000,78.100000,hi +31.800000,78.100000,hi +31.900000,78.200000,hi +32.000000,78.200000,hi +32.100000,78.200000,hi +32.100000,78.100000,hi +32.000000,78.100000,hi +32.000000,78.000000,hi +32.100000,78.000000,hi +32.200000,78.000000,hi +32.200000,78.100000,hi +32.300000,78.100000,hi +32.300000,78.000000,hi +32.400000,78.000000,hi +32.500000,78.000000,hi +32.500000,78.100000,hi +32.400000,78.100000,hi +32.400000,78.200000,hi +32.500000,78.200000,hi +32.300000,78.200000,hi +32.200000,78.200000,hi +32.200000,78.300000,hi +32.200000,78.400000,hi +32.300000,78.400000,hi +32.300000,78.300000,hi +32.400000,78.300000,hi +32.500000,78.300000,hi +32.500000,78.400000,hi +32.400000,78.400000,hi +32.200000,78.500000,hi +32.100000,78.600000,hi +32.100000,78.500000,hi +32.100000,78.400000,hi +32.100000,78.300000,hi +32.000000,78.300000,hi +32.000000,78.400000,hi +31.900000,78.300000,hi +31.900000,78.400000,hi +31.900000,78.500000,hi +32.000000,78.500000,hi +32.000000,78.600000,hi +31.900000,78.600000,hi +31.900000,78.700000,hi +32.000000,78.700000,hi +32.500000,78.800000,hi +32.500000,78.900000,hi +32.500000,79.000000,hi +32.400000,79.000000,hi +32.500000,79.100000,hi +32.600000,79.100000,hi +32.600000,79.200000,hi +32.600000,79.300000,hi +31.800000,78.700000,hi +31.700000,78.700000,hi +31.600000,78.800000,hi +31.600000,78.700000,hi +31.500000,78.700000,hi +31.400000,78.700000,hi +31.300000,78.700000,hi +31.200000,78.700000,hi +31.200000,78.800000,hi +31.200000,78.900000,hi +31.300000,79.000000,hi +31.200000,79.000000,hi +31.200000,79.100000,hi +31.300000,79.100000,hi +31.400000,79.100000,hi +31.300000,79.200000,hi +31.200000,79.200000,hi +31.100000,79.300000,hi +31.000000,79.200000,hi +31.100000,79.200000,hi +31.100000,79.100000,hi +31.000000,79.100000,hi +30.900000,79.100000,hi +30.900000,79.200000,hi +31.000000,79.300000,hi +30.900000,79.300000,hi +30.800000,79.300000,hi +30.800000,79.200000,hi +30.700000,79.200000,hi +30.700000,79.300000,hi +30.600000,79.300000,hi +30.500000,79.300000,hi +30.500000,79.200000,hi +30.600000,79.200000,hi +30.500000,79.100000,hi +30.600000,79.100000,hi +30.700000,79.100000,hi +30.800000,79.100000,hi +30.700000,78.900000,hi +30.700000,79.000000,hi +30.600000,79.000000,hi +30.500000,79.000000,hi +30.500000,78.900000,hi +30.600000,78.900000,hi +30.500000,78.800000,hi +30.500000,78.700000,hi +30.600000,78.700000,hi +30.600000,78.800000,hi +30.700000,78.800000,hi +30.700000,78.700000,hi +30.800000,78.700000,hi +30.900000,78.700000,hi +30.900000,78.800000,hi +30.800000,78.800000,hi +30.800000,78.900000,hi +30.800000,79.000000,hi +30.900000,79.000000,hi +30.900000,78.900000,hi +31.000000,78.900000,hi +31.000000,79.000000,hi +31.100000,79.000000,hi +31.100000,78.900000,hi +31.100000,78.800000,hi +31.000000,78.800000,hi +31.000000,78.700000,hi +31.100000,78.700000,hi +31.100000,78.600000,hi +31.100000,78.500000,hi +31.000000,78.500000,hi +31.000000,78.600000,hi +30.900000,78.600000,hi +30.800000,78.600000,hi +30.800000,78.500000,hi +30.900000,78.500000,hi +30.900000,78.400000,hi +30.800000,78.400000,hi +30.800000,78.300000,hi +30.900000,78.300000,hi +31.000000,78.300000,hi +31.000000,78.400000,hi +31.100000,78.400000,hi +31.000000,78.200000,hi +31.000000,78.100000,hi +31.000000,78.000000,hi +30.900000,78.000000,hi +30.900000,78.100000,hi +30.800000,78.000000,hi +30.800000,78.100000,hi +30.800000,78.200000,hi +30.900000,78.200000,hi +30.600000,78.200000,hi +30.700000,78.200000,hi +30.700000,78.100000,hi +30.700000,78.000000,hi +30.600000,78.000000,hi +30.600000,78.100000,hi +30.500000,78.100000,hi +30.500000,78.000000,hi +30.400000,78.000000,hi +30.400000,78.100000,hi +30.400000,78.200000,hi +30.500000,78.200000,hi +30.400000,78.300000,hi +30.400000,78.400000,hi +30.500000,78.400000,hi +30.500000,78.300000,hi +30.600000,78.300000,hi +30.700000,78.300000,hi +30.700000,78.400000,hi +30.600000,78.400000,hi +30.600000,78.500000,hi +30.700000,78.500000,hi +30.700000,78.600000,hi +30.600000,78.600000,hi +30.500000,78.600000,hi +30.500000,78.500000,hi +30.400000,78.500000,hi +30.400000,78.600000,hi +30.300000,78.500000,hi +30.300000,78.600000,hi +30.200000,78.600000,hi +30.100000,78.600000,hi +30.100000,78.500000,hi +30.200000,78.500000,hi +30.100000,78.400000,hi +30.100000,78.300000,hi +30.200000,78.300000,hi +30.200000,78.400000,hi +30.300000,78.400000,hi +30.300000,78.300000,hi +30.200000,78.200000,hi +30.300000,78.200000,hi +30.300000,78.100000,hi +30.300000,78.000000,hi +30.200000,78.000000,hi +30.200000,78.100000,hi +30.100000,78.100000,hi +30.100000,78.000000,hi +30.000000,78.000000,hi +30.000000,78.100000,hi +30.000000,78.200000,hi +30.100000,78.200000,hi +29.900000,78.200000,hi +29.900000,78.100000,hi +29.900000,78.000000,hi +29.800000,78.000000,hi +29.800000,78.100000,hi +29.700000,78.000000,hi +29.700000,78.100000,hi +29.700000,78.200000,hi +29.800000,78.200000,hi +29.700000,78.300000,hi +29.700000,78.400000,hi +29.800000,78.400000,hi +29.800000,78.300000,hi +29.900000,78.300000,hi +30.000000,78.300000,hi +30.000000,78.400000,hi +29.900000,78.400000,hi +29.900000,78.500000,hi +30.000000,78.500000,hi +30.000000,78.600000,hi +29.900000,78.600000,hi +29.800000,78.600000,hi +29.800000,78.500000,hi +29.700000,78.500000,hi +29.700000,78.600000,hi +29.700000,78.700000,hi +29.800000,78.700000,hi +29.800000,78.800000,hi +29.700000,78.800000,hi +29.700000,78.900000,hi +29.700000,79.000000,hi +29.800000,79.000000,hi +29.800000,78.900000,hi +29.900000,78.900000,hi +29.900000,79.000000,hi +30.000000,79.000000,hi +30.000000,78.900000,hi +30.000000,78.800000,hi +29.900000,78.800000,hi +29.900000,78.700000,hi +30.000000,78.700000,hi +30.100000,78.700000,hi +30.100000,78.800000,hi +30.200000,78.800000,hi +30.200000,78.700000,hi +30.300000,78.700000,hi +30.400000,78.700000,hi +30.400000,78.800000,hi +30.300000,78.800000,hi +30.300000,78.900000,hi +30.400000,78.900000,hi +30.400000,79.000000,hi +30.300000,79.000000,hi +30.200000,79.000000,hi +30.200000,78.900000,hi +30.100000,78.900000,hi +30.100000,79.000000,hi +30.100000,79.100000,hi +30.200000,79.100000,hi +30.300000,79.100000,hi +30.400000,79.100000,hi +30.300000,79.200000,hi +30.400000,79.200000,hi +30.400000,79.300000,hi +30.300000,79.300000,hi +30.200000,79.300000,hi +30.200000,79.200000,hi +30.100000,79.200000,hi +30.100000,79.300000,hi +30.000000,79.300000,hi +29.900000,79.200000,hi +30.000000,79.200000,hi +30.000000,79.100000,hi +29.900000,79.100000,hi +29.800000,79.100000,hi +29.800000,79.200000,hi +29.900000,79.300000,hi +29.800000,79.300000,hi +29.700000,79.300000,hi +29.700000,79.200000,hi +29.600000,79.200000,hi +29.600000,79.300000,hi +29.500000,79.300000,hi +29.400000,79.300000,hi +29.400000,79.200000,hi +29.500000,79.200000,hi +29.400000,79.100000,hi +29.500000,79.100000,hi +29.600000,79.100000,hi +29.700000,79.100000,hi +29.600000,79.000000,hi +29.600000,78.900000,hi +29.600000,78.800000,hi +29.600000,78.700000,hi +29.500000,78.700000,hi +29.500000,78.800000,hi +29.400000,78.700000,hi +29.400000,78.800000,hi +29.400000,78.900000,hi +29.500000,78.900000,hi +29.500000,79.000000,hi +29.400000,79.000000,hi +29.300000,79.000000,hi +29.200000,79.000000,hi +29.200000,78.900000,hi +29.300000,78.900000,hi +29.300000,78.800000,hi +29.300000,78.700000,hi +29.200000,78.700000,hi +29.200000,78.800000,hi +29.100000,78.800000,hi +29.100000,78.700000,hi +29.000000,78.700000,hi +29.000000,78.800000,hi +29.000000,78.900000,hi +29.100000,78.900000,hi +29.100000,79.000000,hi +29.000000,79.000000,hi +29.000000,79.100000,hi +29.100000,79.100000,hi +29.200000,79.100000,hi +29.300000,79.100000,hi +29.200000,79.200000,hi +29.300000,79.200000,hi +29.300000,79.300000,hi +29.200000,79.300000,hi +29.100000,79.300000,hi +29.100000,79.200000,hi +29.000000,79.200000,hi +29.000000,79.300000,hi +28.900000,79.300000,hi +28.800000,79.200000,hi +28.900000,79.200000,hi +28.900000,79.100000,hi +28.800000,79.100000,hi +28.700000,79.100000,hi +28.700000,79.200000,hi +28.800000,79.300000,hi +28.700000,79.300000,hi +28.600000,79.300000,hi +28.600000,79.200000,hi +28.500000,79.200000,hi +28.500000,79.300000,hi +28.400000,79.300000,hi +28.300000,79.300000,hi +28.300000,79.200000,hi +28.400000,79.200000,hi +28.300000,79.100000,hi +28.400000,79.100000,hi +28.500000,79.100000,hi +28.600000,79.100000,hi +28.500000,78.900000,hi +28.500000,79.000000,hi +28.400000,79.000000,hi +28.300000,79.000000,hi +28.300000,78.900000,hi +28.400000,78.900000,hi +28.300000,78.800000,hi +28.300000,78.700000,hi +28.400000,78.700000,hi +28.400000,78.800000,hi +28.500000,78.800000,hi +28.500000,78.700000,hi +28.600000,78.700000,hi +28.700000,78.700000,hi +28.700000,78.800000,hi +28.600000,78.800000,hi +28.600000,78.900000,hi +28.600000,79.000000,hi +28.700000,79.000000,hi +28.700000,78.900000,hi +28.800000,78.900000,hi +28.800000,79.000000,hi +28.900000,79.000000,hi +28.900000,78.900000,hi +28.900000,78.800000,hi +28.800000,78.800000,hi +28.800000,78.700000,hi +28.900000,78.700000,hi +28.900000,78.600000,hi +28.800000,78.600000,hi +28.800000,78.500000,hi +28.900000,78.500000,hi +28.900000,78.400000,hi +28.900000,78.300000,hi +28.800000,78.300000,hi +28.800000,78.400000,hi +28.700000,78.400000,hi +28.700000,78.300000,hi +28.600000,78.300000,hi +28.600000,78.400000,hi +28.600000,78.500000,hi +28.700000,78.500000,hi +28.700000,78.600000,hi +28.600000,78.600000,hi +28.500000,78.600000,hi +28.500000,78.500000,hi +28.400000,78.500000,hi +28.400000,78.600000,hi +28.300000,78.600000,hi +28.200000,78.600000,hi +28.200000,78.500000,hi +28.300000,78.500000,hi +28.300000,78.400000,hi +28.200000,78.400000,hi +28.200000,78.300000,hi +28.300000,78.300000,hi +28.400000,78.300000,hi +28.400000,78.400000,hi +28.500000,78.400000,hi +28.500000,78.300000,hi +28.500000,78.200000,hi +28.400000,78.200000,hi +28.200000,78.200000,hi +28.300000,78.200000,hi +28.300000,78.100000,hi +28.200000,78.100000,hi +28.200000,78.000000,hi +28.300000,78.000000,hi +28.400000,78.000000,hi +28.400000,78.100000,hi +28.500000,78.100000,hi +28.500000,78.000000,hi +28.600000,78.000000,hi +28.700000,78.100000,hi +28.600000,78.100000,hi +28.600000,78.200000,hi +28.700000,78.200000,hi +28.800000,78.200000,hi +28.800000,78.100000,hi +28.700000,78.000000,hi +28.800000,78.000000,hi +28.900000,78.000000,hi +28.900000,78.100000,hi +29.000000,78.100000,hi +29.000000,78.000000,hi +29.100000,78.000000,hi +29.200000,78.000000,hi +29.200000,78.100000,hi +29.100000,78.100000,hi +29.100000,78.200000,hi +29.200000,78.200000,hi +29.000000,78.200000,hi +28.900000,78.200000,hi +29.000000,78.300000,hi +29.000000,78.400000,hi +29.000000,78.500000,hi +29.000000,78.600000,hi +29.100000,78.600000,hi +29.100000,78.500000,hi +29.200000,78.600000,hi +29.200000,78.500000,hi +29.200000,78.400000,hi +29.100000,78.400000,hi +29.100000,78.300000,hi +29.200000,78.300000,hi +29.300000,78.300000,hi +29.400000,78.300000,hi +29.400000,78.400000,hi +29.300000,78.400000,hi +29.300000,78.500000,hi +29.300000,78.600000,hi +29.400000,78.600000,hi +29.400000,78.500000,hi +29.500000,78.500000,hi +29.500000,78.600000,hi +29.600000,78.600000,hi +29.600000,78.500000,hi +29.600000,78.400000,hi +29.500000,78.400000,hi +29.500000,78.300000,hi +29.600000,78.300000,hi +29.600000,78.200000,hi +29.500000,78.200000,hi +29.300000,78.200000,hi +29.400000,78.200000,hi +29.400000,78.100000,hi +29.300000,78.100000,hi +29.300000,78.000000,hi +29.400000,78.000000,hi +29.500000,78.000000,hi +29.500000,78.100000,hi +29.600000,78.100000,hi +29.600000,78.000000,hi +29.600000,77.900000,hi +29.500000,77.800000,hi +29.500000,77.900000,hi +29.400000,77.900000,hi +29.300000,77.900000,hi +29.300000,77.800000,hi +29.400000,77.800000,hi +29.400000,77.700000,hi +29.300000,77.700000,hi +29.300000,77.600000,hi +29.400000,77.600000,hi +29.500000,77.700000,hi +29.500000,77.600000,hi +29.500000,77.500000,hi +29.400000,77.500000,hi +29.400000,77.400000,hi +29.500000,77.400000,hi +29.500000,77.300000,hi +29.500000,77.200000,hi +29.400000,77.200000,hi +29.400000,77.300000,hi +29.300000,77.300000,hi +29.300000,77.200000,hi +29.200000,77.200000,hi +29.200000,77.300000,hi +29.200000,77.400000,hi +29.300000,77.400000,hi +29.300000,77.500000,hi +29.200000,77.500000,hi +29.100000,77.500000,hi +29.100000,77.400000,hi +29.100000,77.300000,hi +29.100000,77.200000,hi +29.000000,77.200000,hi +29.000000,77.300000,hi +28.900000,77.200000,hi +28.900000,77.300000,hi +28.900000,77.400000,hi +29.000000,77.400000,hi +29.000000,77.500000,hi +28.900000,77.500000,hi +28.900000,77.600000,hi +28.900000,77.700000,hi +29.000000,77.700000,hi +29.000000,77.600000,hi +29.100000,77.600000,hi +29.200000,77.600000,hi +29.200000,77.700000,hi +29.100000,77.700000,hi +29.100000,77.800000,hi +29.200000,77.800000,hi +29.200000,77.900000,hi +29.100000,77.900000,hi +29.000000,77.900000,hi +29.000000,77.800000,hi +28.900000,77.800000,hi +28.900000,77.900000,hi +28.800000,77.900000,hi +28.700000,77.900000,hi +28.700000,77.800000,hi +28.800000,77.800000,hi +28.800000,77.700000,hi +28.800000,77.600000,hi +28.700000,77.600000,hi +28.700000,77.700000,hi +28.600000,77.700000,hi +28.600000,77.600000,hi +28.500000,77.600000,hi +28.500000,77.700000,hi +28.500000,77.800000,hi +28.600000,77.800000,hi +28.600000,77.900000,hi +28.500000,77.900000,hi +28.400000,77.800000,hi +28.400000,77.900000,hi +28.300000,77.900000,hi +28.200000,77.900000,hi +28.200000,77.800000,hi +28.300000,77.800000,hi +28.300000,77.700000,hi +28.200000,77.700000,hi +28.200000,77.600000,hi +28.300000,77.600000,hi +28.400000,77.700000,hi +28.400000,77.600000,hi +28.400000,77.500000,hi +28.400000,77.400000,hi +28.300000,77.400000,hi +28.300000,77.500000,hi +28.200000,77.500000,hi +28.100000,77.500000,hi +28.100000,77.400000,hi +28.200000,77.400000,hi +28.200000,77.300000,hi +28.100000,77.300000,hi +28.100000,77.200000,hi +28.200000,77.200000,hi +28.300000,77.200000,hi +28.300000,77.300000,hi +28.400000,77.300000,hi +28.400000,77.200000,hi +28.500000,77.200000,hi +28.600000,77.200000,hi +28.600000,77.300000,hi +28.500000,77.300000,hi +28.500000,77.400000,hi +28.500000,77.500000,hi +28.600000,77.500000,hi +28.600000,77.400000,hi +28.700000,77.400000,hi +28.700000,77.500000,hi +28.800000,77.500000,hi +28.800000,77.400000,hi +28.800000,77.300000,hi +28.700000,77.300000,hi +28.700000,77.200000,hi +28.800000,77.200000,hi +28.700000,77.100000,hi +28.700000,77.000000,hi +28.700000,76.900000,hi +28.600000,76.900000,hi +28.600000,77.000000,hi +28.500000,76.900000,hi +28.500000,77.000000,hi +28.500000,77.100000,hi +28.600000,77.100000,hi +28.400000,77.100000,hi +28.300000,77.100000,hi +28.100000,77.100000,hi +28.200000,77.100000,hi +28.200000,77.000000,hi +28.100000,77.000000,hi +28.100000,76.900000,hi +28.200000,76.900000,hi +28.300000,76.900000,hi +28.300000,77.000000,hi +28.400000,77.000000,hi +28.400000,76.900000,hi +28.300000,76.700000,hi +28.300000,76.800000,hi +28.200000,76.800000,hi +28.100000,76.800000,hi +28.100000,76.700000,hi +28.200000,76.700000,hi +28.100000,76.600000,hi +28.100000,76.500000,hi +28.200000,76.500000,hi +28.200000,76.600000,hi +28.300000,76.600000,hi +28.300000,76.500000,hi +28.400000,76.500000,hi +28.500000,76.500000,hi +28.500000,76.600000,hi +28.400000,76.600000,hi +28.400000,76.700000,hi +28.400000,76.800000,hi +28.500000,76.800000,hi +28.500000,76.700000,hi +28.600000,76.700000,hi +28.600000,76.800000,hi +28.700000,76.800000,hi +28.700000,76.700000,hi +28.700000,76.600000,hi +28.600000,76.600000,hi +28.600000,76.500000,hi +28.700000,76.500000,hi +28.800000,76.500000,hi +28.800000,76.600000,hi +28.900000,76.600000,hi +28.900000,76.500000,hi +29.000000,76.500000,hi +29.100000,76.500000,hi +29.100000,76.600000,hi +29.000000,76.600000,hi +29.000000,76.700000,hi +29.100000,76.700000,hi +29.100000,76.800000,hi +29.000000,76.800000,hi +28.900000,76.800000,hi +28.900000,76.700000,hi +28.800000,76.700000,hi +28.800000,76.800000,hi +28.800000,76.900000,hi +28.900000,76.900000,hi +28.900000,77.000000,hi +28.800000,77.000000,hi +28.800000,77.100000,hi +28.900000,77.100000,hi +29.000000,77.100000,hi +29.100000,77.100000,hi +29.100000,77.000000,hi +29.000000,77.000000,hi +29.000000,76.900000,hi +29.100000,76.900000,hi +29.200000,76.900000,hi +29.300000,76.900000,hi +29.300000,77.000000,hi +29.200000,77.000000,hi +29.200000,77.100000,hi +29.300000,77.100000,hi +29.400000,77.100000,hi +29.500000,77.100000,hi +29.500000,77.000000,hi +29.400000,77.000000,hi +29.400000,76.900000,hi +29.500000,76.900000,hi +29.400000,76.700000,hi +29.400000,76.800000,hi +29.300000,76.800000,hi +29.200000,76.800000,hi +29.200000,76.700000,hi +29.300000,76.700000,hi +29.200000,76.600000,hi +29.200000,76.500000,hi +29.300000,76.500000,hi +29.300000,76.600000,hi +29.400000,76.600000,hi +29.400000,76.500000,hi +29.500000,76.500000,hi +29.600000,76.500000,hi +29.600000,76.600000,hi +29.500000,76.600000,hi +29.500000,76.700000,hi +29.500000,76.800000,hi +29.600000,76.800000,hi +29.600000,76.700000,hi +29.700000,76.700000,hi +29.700000,76.800000,hi +29.800000,76.800000,hi +29.800000,76.700000,hi +29.800000,76.600000,hi +29.700000,76.600000,hi +29.700000,76.500000,hi +29.800000,76.500000,hi +29.900000,76.500000,hi +29.900000,76.600000,hi +30.000000,76.600000,hi +30.000000,76.500000,hi +30.100000,76.500000,hi +30.200000,76.600000,hi +30.100000,76.600000,hi +30.100000,76.700000,hi +30.200000,76.700000,hi +30.200000,76.800000,hi +30.100000,76.800000,hi +30.000000,76.800000,hi +30.000000,76.700000,hi +29.900000,76.700000,hi +29.900000,76.800000,hi +29.900000,76.900000,hi +29.900000,77.000000,hi +30.000000,77.000000,hi +30.000000,76.900000,hi +30.100000,76.900000,hi +30.200000,76.900000,hi +30.200000,77.000000,hi +30.100000,77.000000,hi +30.100000,77.100000,hi +30.200000,77.100000,hi +30.000000,77.100000,hi +29.900000,77.100000,hi +29.800000,77.100000,hi +29.800000,77.000000,hi +29.800000,76.900000,hi +29.700000,76.900000,hi +29.700000,77.000000,hi +29.600000,76.900000,hi +29.600000,77.000000,hi +29.600000,77.100000,hi +29.700000,77.100000,hi +29.600000,77.200000,hi +29.600000,77.300000,hi +29.700000,77.300000,hi +29.700000,77.200000,hi +29.800000,77.200000,hi +29.900000,77.200000,hi +29.900000,77.300000,hi +29.800000,77.300000,hi +29.800000,77.400000,hi +29.900000,77.400000,hi +29.900000,77.500000,hi +29.800000,77.500000,hi +29.700000,77.500000,hi +29.700000,77.400000,hi +29.600000,77.400000,hi +29.600000,77.500000,hi +29.600000,77.600000,hi +29.700000,77.600000,hi +29.700000,77.700000,hi +29.600000,77.700000,hi +29.600000,77.800000,hi +29.700000,77.900000,hi +29.700000,77.800000,hi +29.800000,77.800000,hi +29.800000,77.900000,hi +29.900000,77.900000,hi +29.900000,77.800000,hi +29.900000,77.700000,hi +29.800000,77.700000,hi +29.800000,77.600000,hi +29.900000,77.600000,hi +30.000000,77.600000,hi +30.100000,77.600000,hi +30.100000,77.700000,hi +30.000000,77.700000,hi +30.000000,77.800000,hi +30.000000,77.900000,hi +30.100000,77.900000,hi +30.100000,77.800000,hi +30.200000,77.800000,hi +30.200000,77.900000,hi +30.300000,77.900000,hi +30.300000,77.800000,hi +30.300000,77.700000,hi +30.200000,77.700000,hi +30.200000,77.600000,hi +30.300000,77.600000,hi +30.200000,77.400000,hi +30.200000,77.500000,hi +30.100000,77.500000,hi +30.000000,77.500000,hi +30.000000,77.400000,hi +30.100000,77.400000,hi +30.000000,77.300000,hi +30.000000,77.200000,hi +30.100000,77.200000,hi +30.100000,77.300000,hi +30.200000,77.300000,hi +30.200000,77.200000,hi +30.300000,77.200000,hi +30.300000,77.300000,hi +30.400000,77.300000,hi +30.400000,77.200000,hi +30.500000,77.200000,hi +30.600000,77.200000,hi +30.600000,77.300000,hi +30.500000,77.300000,hi +30.500000,77.400000,hi +30.600000,77.400000,hi +30.600000,77.500000,hi +30.500000,77.500000,hi +30.400000,77.500000,hi +30.400000,77.400000,hi +30.300000,77.400000,hi +30.300000,77.500000,hi +30.400000,77.600000,hi +30.400000,77.700000,hi +30.400000,77.800000,hi +30.400000,77.900000,hi +30.500000,77.900000,hi +30.500000,77.800000,hi +30.600000,77.900000,hi +30.600000,77.800000,hi +30.600000,77.700000,hi +30.500000,77.700000,hi +30.500000,77.600000,hi +30.600000,77.600000,hi +30.700000,77.600000,hi +30.800000,77.600000,hi +30.800000,77.700000,hi +30.700000,77.700000,hi +30.700000,77.800000,hi +30.700000,77.900000,hi +30.800000,77.900000,hi +30.800000,77.800000,hi +30.900000,77.800000,hi +30.900000,77.900000,hi +31.000000,77.900000,hi +31.000000,77.800000,hi +31.000000,77.700000,hi +30.900000,77.700000,hi +30.900000,77.600000,hi +31.000000,77.600000,hi +31.000000,77.500000,hi +31.000000,77.400000,hi +30.900000,77.400000,hi +30.900000,77.500000,hi +30.800000,77.500000,hi +30.700000,77.500000,hi +30.700000,77.400000,hi +30.800000,77.400000,hi +30.800000,77.300000,hi +30.700000,77.300000,hi +30.700000,77.200000,hi +30.800000,77.200000,hi +30.900000,77.300000,hi +30.900000,77.200000,hi +30.800000,77.100000,hi +30.900000,77.100000,hi +30.900000,77.000000,hi +30.900000,76.900000,hi +30.800000,76.900000,hi +30.800000,77.000000,hi +30.700000,77.000000,hi +30.700000,76.900000,hi +30.600000,76.900000,hi +30.700000,77.100000,hi +30.600000,77.100000,hi +30.500000,77.100000,hi +30.300000,77.100000,hi +30.400000,77.100000,hi +30.400000,77.000000,hi +30.300000,77.000000,hi +30.300000,76.900000,hi +30.400000,76.900000,hi +30.500000,76.900000,hi +30.500000,77.000000,hi +30.600000,77.000000,hi +30.500000,76.800000,hi +30.500000,76.700000,hi +30.400000,76.700000,hi +30.400000,76.800000,hi +30.300000,76.800000,hi +30.300000,76.700000,hi +30.300000,76.600000,hi +30.200000,76.500000,hi +30.300000,76.500000,hi +30.400000,76.500000,hi +30.400000,76.600000,hi +30.500000,76.600000,hi +30.500000,76.500000,hi +30.600000,76.500000,hi +30.700000,76.500000,hi +30.700000,76.600000,hi +30.600000,76.600000,hi +30.600000,76.700000,hi +30.600000,76.800000,hi +30.700000,76.800000,hi +30.700000,76.700000,hi +30.800000,76.700000,hi +30.800000,76.800000,hi +30.900000,76.800000,hi +30.900000,76.700000,hi +30.900000,76.600000,hi +30.800000,76.600000,hi +30.800000,76.500000,hi +30.900000,76.500000,hi +30.900000,76.400000,hi +30.800000,76.400000,hi +30.800000,76.300000,hi +30.800000,76.200000,hi +30.800000,76.100000,hi +30.700000,76.100000,hi +30.700000,76.200000,hi +30.600000,76.100000,hi +30.600000,76.200000,hi +30.600000,76.300000,hi +30.700000,76.300000,hi +30.700000,76.400000,hi +30.600000,76.400000,hi +30.500000,76.400000,hi +30.500000,76.300000,hi +30.400000,76.300000,hi +30.400000,76.400000,hi +30.300000,76.400000,hi +30.200000,76.400000,hi +30.200000,76.300000,hi +30.300000,76.300000,hi +30.300000,76.200000,hi +30.200000,76.200000,hi +30.200000,76.100000,hi +30.300000,76.100000,hi +30.400000,76.100000,hi +30.400000,76.200000,hi +30.500000,76.200000,hi +30.500000,76.100000,hi +30.500000,76.000000,hi +30.400000,75.900000,hi +30.400000,76.000000,hi +30.300000,76.000000,hi +30.200000,76.000000,hi +30.200000,75.900000,hi +30.300000,75.900000,hi +30.200000,75.800000,hi +30.300000,75.800000,hi +30.400000,75.800000,hi +30.500000,75.800000,hi +30.600000,75.800000,hi +30.500000,75.900000,hi +30.600000,76.000000,hi +30.600000,75.900000,hi +30.700000,75.900000,hi +30.700000,76.000000,hi +30.800000,76.000000,hi +30.800000,75.900000,hi +30.700000,75.800000,hi +30.800000,75.800000,hi +30.800000,75.700000,hi +30.800000,75.600000,hi +30.700000,75.600000,hi +30.700000,75.700000,hi +30.600000,75.700000,hi +30.500000,75.700000,hi +30.500000,75.600000,hi +30.600000,75.600000,hi +30.600000,75.500000,hi +30.500000,75.500000,hi +30.500000,75.400000,hi +30.600000,75.400000,hi +30.700000,75.400000,hi +30.700000,75.500000,hi +30.800000,75.500000,hi +30.700000,75.300000,hi +30.600000,75.200000,hi +30.700000,75.200000,hi +30.700000,75.100000,hi +30.700000,75.000000,hi +30.600000,75.000000,hi +30.600000,75.100000,hi +30.500000,75.100000,hi +30.500000,75.000000,hi +30.400000,75.000000,hi +30.500000,75.200000,hi +30.600000,75.300000,hi +30.500000,75.300000,hi +30.400000,75.300000,hi +30.300000,75.300000,hi +30.300000,75.200000,hi +30.400000,75.200000,hi +30.400000,75.100000,hi +30.300000,75.000000,hi +30.300000,75.100000,hi +30.200000,75.100000,hi +30.200000,75.000000,hi +30.100000,75.000000,hi +30.100000,75.100000,hi +30.100000,75.200000,hi +30.200000,75.200000,hi +30.200000,75.300000,hi +30.100000,75.300000,hi +30.100000,75.400000,hi +30.100000,75.500000,hi +30.200000,75.500000,hi +30.200000,75.400000,hi +30.300000,75.400000,hi +30.400000,75.400000,hi +30.400000,75.500000,hi +30.300000,75.500000,hi +30.300000,75.600000,hi +30.400000,75.600000,hi +30.400000,75.700000,hi +30.300000,75.700000,hi +30.200000,75.700000,hi +30.200000,75.600000,hi +30.100000,75.600000,hi +30.100000,75.700000,hi +30.000000,75.600000,hi +30.000000,75.700000,hi +29.900000,75.700000,hi +29.800000,75.700000,hi +29.800000,75.600000,hi +29.900000,75.600000,hi +29.900000,75.500000,hi +29.800000,75.500000,hi +29.800000,75.400000,hi +29.900000,75.400000,hi +30.000000,75.500000,hi +30.000000,75.400000,hi +30.000000,75.300000,hi +29.900000,75.300000,hi +29.900000,75.200000,hi +30.000000,75.200000,hi +30.000000,75.100000,hi +30.000000,75.000000,hi +29.900000,75.000000,hi +29.900000,75.100000,hi +29.800000,75.100000,hi +29.800000,75.000000,hi +29.700000,75.000000,hi +29.700000,75.100000,hi +29.700000,75.200000,hi +29.800000,75.200000,hi +29.800000,75.300000,hi +29.700000,75.300000,hi +29.600000,75.300000,hi +29.600000,75.200000,hi +29.600000,75.100000,hi +29.600000,75.000000,hi +29.500000,75.000000,hi +29.500000,75.100000,hi +29.400000,75.000000,hi +29.400000,75.100000,hi +29.400000,75.200000,hi +29.500000,75.200000,hi +29.500000,75.300000,hi +29.400000,75.300000,hi +29.400000,75.400000,hi +29.400000,75.500000,hi +29.500000,75.500000,hi +29.500000,75.400000,hi +29.600000,75.400000,hi +29.700000,75.400000,hi +29.700000,75.500000,hi +29.600000,75.500000,hi +29.600000,75.600000,hi +29.700000,75.600000,hi +29.700000,75.700000,hi +29.600000,75.700000,hi +29.500000,75.700000,hi +29.500000,75.600000,hi +29.400000,75.600000,hi +29.400000,75.700000,hi +29.400000,75.800000,hi +29.500000,75.800000,hi +29.500000,76.000000,hi +29.500000,75.900000,hi +29.600000,75.900000,hi +29.600000,76.000000,hi +29.700000,76.000000,hi +29.700000,75.900000,hi +29.600000,75.800000,hi +29.700000,75.800000,hi +29.800000,75.800000,hi +29.900000,75.800000,hi +30.000000,75.800000,hi +30.100000,75.800000,hi +30.000000,75.900000,hi +30.100000,75.900000,hi +30.100000,76.000000,hi +30.000000,76.000000,hi +29.900000,76.000000,hi +29.900000,75.900000,hi +29.800000,75.900000,hi +29.800000,76.000000,hi +29.800000,76.100000,hi +29.800000,76.200000,hi +29.900000,76.200000,hi +29.900000,76.100000,hi +30.000000,76.100000,hi +30.100000,76.100000,hi +30.100000,76.200000,hi +30.000000,76.200000,hi +30.000000,76.300000,hi +30.100000,76.300000,hi +30.100000,76.400000,hi +30.000000,76.400000,hi +29.900000,76.300000,hi +29.900000,76.400000,hi +29.800000,76.400000,hi +29.700000,76.400000,hi +29.700000,76.300000,hi +29.800000,76.300000,hi +29.700000,76.100000,hi +29.700000,76.200000,hi +29.600000,76.200000,hi +29.600000,76.100000,hi +29.500000,76.100000,hi +29.500000,76.200000,hi +29.500000,76.300000,hi +29.600000,76.300000,hi +29.600000,76.400000,hi +29.500000,76.400000,hi +29.400000,76.400000,hi +29.400000,76.300000,hi +29.300000,76.300000,hi +29.300000,76.400000,hi +29.200000,76.400000,hi +29.100000,76.400000,hi +29.100000,76.300000,hi +29.200000,76.300000,hi +29.200000,76.200000,hi +29.100000,76.200000,hi +29.100000,76.100000,hi +29.200000,76.100000,hi +29.300000,76.100000,hi +29.300000,76.200000,hi +29.400000,76.200000,hi +29.400000,76.100000,hi +29.400000,76.000000,hi +29.300000,76.000000,hi +29.300000,75.900000,hi +29.400000,75.900000,hi +29.300000,75.800000,hi +29.200000,75.800000,hi +29.100000,75.800000,hi +29.100000,75.900000,hi +29.200000,75.900000,hi +29.200000,76.000000,hi +29.100000,76.000000,hi +29.000000,76.000000,hi +28.900000,76.000000,hi +28.900000,75.900000,hi +29.000000,75.900000,hi +29.000000,75.800000,hi +28.900000,75.800000,hi +28.800000,75.800000,hi +28.700000,75.800000,hi +28.700000,75.900000,hi +28.800000,75.900000,hi +28.800000,76.000000,hi +28.700000,76.000000,hi +28.700000,76.100000,hi +28.800000,76.200000,hi +28.800000,76.100000,hi +28.900000,76.100000,hi +29.000000,76.100000,hi +29.000000,76.200000,hi +28.900000,76.200000,hi +28.900000,76.300000,hi +29.000000,76.300000,hi +29.000000,76.400000,hi +28.900000,76.400000,hi +28.800000,76.300000,hi +28.800000,76.400000,hi +28.700000,76.400000,hi +28.600000,76.400000,hi +28.600000,76.300000,hi +28.700000,76.300000,hi +28.700000,76.200000,hi +28.600000,76.100000,hi +28.600000,76.200000,hi +28.500000,76.200000,hi +28.500000,76.100000,hi +28.400000,76.100000,hi +28.400000,76.200000,hi +28.400000,76.300000,hi +28.500000,76.300000,hi +28.500000,76.400000,hi +28.400000,76.400000,hi +28.300000,76.400000,hi +28.300000,76.300000,hi +28.200000,76.300000,hi +28.200000,76.400000,hi +28.100000,76.400000,hi +28.000000,76.400000,hi +28.000000,76.300000,hi +28.100000,76.300000,hi +28.100000,76.200000,hi +28.000000,76.200000,hi +28.000000,76.100000,hi +28.100000,76.100000,hi +28.200000,76.100000,hi +28.200000,76.200000,hi +28.300000,76.200000,hi +28.300000,76.100000,hi +28.300000,76.000000,hi +28.300000,75.900000,hi +28.200000,75.900000,hi +28.200000,76.000000,hi +28.100000,76.000000,hi +28.000000,76.000000,hi +28.000000,75.900000,hi +28.100000,75.900000,hi +28.000000,75.800000,hi +28.100000,75.800000,hi +28.200000,75.800000,hi +28.300000,75.800000,hi +28.400000,75.800000,hi +28.400000,76.000000,hi +28.500000,76.000000,hi +28.400000,75.900000,hi +28.500000,75.900000,hi +28.600000,76.000000,hi +28.600000,75.900000,hi +28.500000,75.800000,hi +28.600000,75.800000,hi +28.600000,75.700000,hi +28.500000,75.700000,hi +28.500000,75.600000,hi +28.600000,75.600000,hi +28.600000,75.500000,hi +28.600000,75.400000,hi +28.500000,75.400000,hi +28.500000,75.500000,hi +28.400000,75.500000,hi +28.400000,75.400000,hi +28.300000,75.400000,hi +28.300000,75.500000,hi +28.300000,75.600000,hi +28.400000,75.600000,hi +28.400000,75.700000,hi +28.300000,75.700000,hi +28.200000,75.700000,hi +28.200000,75.600000,hi +28.100000,75.600000,hi +28.100000,75.700000,hi +28.000000,75.700000,hi +28.000000,75.600000,hi +28.000000,75.500000,hi +27.900000,75.500000,hi +27.900000,75.400000,hi +28.000000,75.400000,hi +28.100000,75.400000,hi +28.100000,75.500000,hi +28.200000,75.500000,hi +28.200000,75.400000,hi +28.200000,75.300000,hi +28.200000,75.200000,hi +28.100000,75.200000,hi +28.100000,75.300000,hi +28.000000,75.300000,hi +27.900000,75.300000,hi +27.900000,75.200000,hi +28.000000,75.200000,hi +28.000000,75.100000,hi +27.900000,75.100000,hi +27.900000,75.000000,hi +28.000000,75.000000,hi +28.100000,75.000000,hi +28.100000,75.100000,hi +28.200000,75.100000,hi +28.200000,75.000000,hi +28.300000,75.000000,hi +28.400000,75.100000,hi +28.300000,75.100000,hi +28.300000,75.200000,hi +28.300000,75.300000,hi +28.400000,75.300000,hi +28.400000,75.200000,hi +28.500000,75.200000,hi +28.500000,75.300000,hi +28.600000,75.300000,hi +28.500000,75.100000,hi +28.400000,75.000000,hi +28.500000,75.000000,hi +28.600000,75.000000,hi +28.600000,75.100000,hi +28.700000,75.100000,hi +28.700000,75.000000,hi +28.800000,75.000000,hi +28.900000,75.000000,hi +28.900000,75.100000,hi +28.800000,75.100000,hi +28.800000,75.200000,hi +28.900000,75.200000,hi +28.900000,75.300000,hi +28.800000,75.300000,hi +28.700000,75.200000,hi +28.600000,75.200000,hi +28.700000,75.300000,hi +28.700000,75.400000,hi +28.800000,75.400000,hi +28.800000,75.500000,hi +28.700000,75.500000,hi +28.700000,75.600000,hi +28.700000,75.700000,hi +28.800000,75.700000,hi +28.800000,75.600000,hi +28.900000,75.600000,hi +28.900000,75.700000,hi +29.000000,75.700000,hi +29.000000,75.600000,hi +28.900000,75.500000,hi +28.900000,75.400000,hi +29.000000,75.400000,hi +29.100000,75.400000,hi +29.100000,75.500000,hi +29.000000,75.500000,hi +29.100000,75.700000,hi +29.100000,75.600000,hi +29.200000,75.600000,hi +29.200000,75.700000,hi +29.300000,75.700000,hi +29.300000,75.600000,hi +29.300000,75.500000,hi +29.200000,75.500000,hi +29.200000,75.400000,hi +29.300000,75.400000,hi +29.300000,75.300000,hi +29.300000,75.200000,hi +29.200000,75.200000,hi +29.200000,75.300000,hi +29.100000,75.300000,hi +29.000000,75.300000,hi +29.000000,75.200000,hi +29.100000,75.200000,hi +29.100000,75.100000,hi +29.000000,75.100000,hi +29.000000,75.000000,hi +29.100000,75.000000,hi +29.200000,75.000000,hi +29.200000,75.100000,hi +29.300000,75.100000,hi +29.300000,75.000000,hi +29.200000,74.800000,hi +29.100000,74.800000,hi +29.200000,74.900000,hi +29.100000,74.900000,hi +29.000000,74.900000,hi +29.000000,74.800000,hi +29.000000,74.700000,hi +28.900000,74.600000,hi +29.000000,74.600000,hi +29.100000,74.600000,hi +29.100000,74.700000,hi +29.200000,74.700000,hi +29.200000,74.600000,hi +29.200000,74.500000,hi +29.100000,74.500000,hi +29.200000,74.400000,hi +29.200000,74.300000,hi +29.100000,74.300000,hi +29.100000,74.400000,hi +29.000000,74.400000,hi +29.000000,74.300000,hi +28.900000,74.300000,hi +28.900000,74.400000,hi +29.000000,74.500000,hi +28.900000,74.500000,hi +28.800000,74.500000,hi +28.800000,74.400000,hi +28.800000,74.300000,hi +28.700000,74.300000,hi +28.700000,74.400000,hi +28.600000,74.400000,hi +28.600000,74.300000,hi +28.500000,74.300000,hi +28.700000,74.500000,hi +28.600000,74.500000,hi +28.600000,74.600000,hi +28.600000,74.700000,hi +28.700000,74.700000,hi +28.700000,74.600000,hi +28.800000,74.600000,hi +28.900000,74.700000,hi +28.800000,74.700000,hi +28.800000,74.800000,hi +28.900000,74.800000,hi +28.900000,74.900000,hi +28.800000,74.900000,hi +28.700000,74.900000,hi +28.700000,74.800000,hi +28.600000,74.800000,hi +28.600000,74.900000,hi +28.500000,74.900000,hi +28.400000,74.900000,hi +28.400000,74.800000,hi +28.500000,74.800000,hi +28.500000,74.700000,hi +28.500000,74.600000,hi +28.400000,74.600000,hi +28.400000,74.700000,hi +28.300000,74.700000,hi +28.300000,74.600000,hi +28.200000,74.600000,hi +28.200000,74.700000,hi +28.200000,74.800000,hi +28.300000,74.800000,hi +28.300000,74.900000,hi +28.200000,74.900000,hi +28.100000,74.800000,hi +28.100000,74.900000,hi +28.000000,74.900000,hi +27.900000,74.900000,hi +27.900000,74.800000,hi +28.000000,74.800000,hi +27.900000,74.700000,hi +27.800000,74.600000,hi +27.900000,74.600000,hi +28.000000,74.600000,hi +28.000000,74.700000,hi +28.100000,74.700000,hi +28.100000,74.600000,hi +28.100000,74.500000,hi +28.000000,74.500000,hi +27.900000,74.500000,hi +27.800000,74.500000,hi +27.900000,74.400000,hi +27.800000,74.400000,hi +27.800000,74.300000,hi +27.900000,74.300000,hi +28.000000,74.300000,hi +28.000000,74.400000,hi +28.100000,74.400000,hi +28.100000,74.300000,hi +28.200000,74.300000,hi +28.300000,74.300000,hi +28.300000,74.400000,hi +28.200000,74.400000,hi +28.200000,74.500000,hi +28.300000,74.500000,hi +28.400000,74.500000,hi +28.500000,74.500000,hi +28.500000,74.400000,hi +28.400000,74.400000,hi +28.400000,74.300000,hi +28.400000,74.200000,hi +28.300000,74.100000,hi +28.400000,74.100000,hi +28.400000,74.000000,hi +28.400000,73.900000,hi +28.300000,73.900000,hi +28.300000,74.000000,hi +28.200000,74.000000,hi +28.200000,73.900000,hi +28.100000,73.900000,hi +28.100000,74.000000,hi +28.200000,74.100000,hi +28.300000,74.200000,hi +28.200000,74.200000,hi +28.100000,74.200000,hi +28.100000,74.100000,hi +28.000000,74.100000,hi +28.000000,74.200000,hi +27.900000,74.200000,hi +27.800000,74.200000,hi +27.800000,74.100000,hi +27.900000,74.100000,hi +27.900000,74.000000,hi +27.800000,74.000000,hi +27.800000,73.900000,hi +27.900000,73.900000,hi +28.000000,74.000000,hi +28.000000,73.900000,hi +28.000000,73.800000,hi +28.000000,73.700000,hi +27.900000,73.700000,hi +27.900000,73.800000,hi +27.800000,73.800000,hi +27.700000,73.700000,hi +27.800000,73.700000,hi +27.800000,73.600000,hi +27.700000,73.600000,hi +27.700000,73.500000,hi +27.800000,73.500000,hi +27.900000,73.500000,hi +27.900000,73.600000,hi +28.000000,73.600000,hi +28.000000,73.500000,hi +28.100000,73.500000,hi +28.200000,73.500000,hi +28.200000,73.600000,hi +28.100000,73.600000,hi +28.100000,73.700000,hi +28.100000,73.800000,hi +28.200000,73.800000,hi +28.200000,73.700000,hi +28.300000,73.700000,hi +28.300000,73.800000,hi +28.400000,73.800000,hi +28.400000,73.700000,hi +28.400000,73.600000,hi +28.300000,73.600000,hi +28.300000,73.500000,hi +28.400000,73.500000,hi +28.500000,73.600000,hi +28.500000,73.500000,hi +28.600000,73.500000,hi +28.700000,73.500000,hi +28.700000,73.600000,hi +28.600000,73.600000,hi +28.700000,73.700000,hi +28.700000,73.800000,hi +28.600000,73.800000,hi +28.600000,73.700000,hi +28.500000,73.700000,hi +28.500000,73.800000,hi +28.500000,73.900000,hi +28.600000,73.900000,hi +28.600000,74.000000,hi +28.500000,74.000000,hi +28.500000,74.100000,hi +28.500000,74.200000,hi +28.600000,74.200000,hi +28.600000,74.100000,hi +28.700000,74.100000,hi +28.700000,74.200000,hi +28.800000,74.200000,hi +28.800000,74.100000,hi +28.800000,74.000000,hi +28.700000,74.000000,hi +28.700000,73.900000,hi +28.800000,73.900000,hi +28.900000,73.900000,hi +29.000000,74.000000,hi +28.900000,74.000000,hi +28.900000,74.100000,hi +28.900000,74.200000,hi +29.000000,74.200000,hi +29.000000,74.100000,hi +29.100000,74.100000,hi +29.100000,74.200000,hi +29.200000,74.200000,hi +29.100000,74.000000,hi +29.000000,73.900000,hi +29.100000,73.900000,hi +29.100000,73.800000,hi +29.100000,73.700000,hi +29.000000,73.700000,hi +29.000000,73.800000,hi +28.900000,73.800000,hi +28.800000,73.800000,hi +28.800000,73.700000,hi +28.900000,73.700000,hi +28.900000,73.600000,hi +28.800000,73.600000,hi +28.800000,73.500000,hi +28.900000,73.500000,hi +29.000000,73.500000,hi +29.000000,73.600000,hi +29.100000,73.600000,hi +29.100000,73.500000,hi +29.200000,73.500000,hi +29.300000,73.500000,hi +29.300000,73.600000,hi +29.200000,73.600000,hi +29.200000,73.700000,hi +29.200000,73.800000,hi +29.300000,73.800000,hi +29.300000,73.700000,hi +29.400000,73.700000,hi +29.400000,73.800000,hi +29.500000,73.800000,hi +29.500000,73.700000,hi +29.400000,73.600000,hi +29.400000,73.500000,hi +29.500000,73.500000,hi +29.500000,73.600000,hi +29.600000,73.600000,hi +29.600000,73.500000,hi +29.700000,73.500000,hi +29.800000,73.500000,hi +29.800000,73.600000,hi +29.700000,73.600000,hi +29.700000,73.700000,hi +29.800000,73.700000,hi +29.800000,73.800000,hi +29.700000,73.800000,hi +29.600000,73.700000,hi +29.600000,73.800000,hi +29.600000,73.900000,hi +29.600000,74.000000,hi +29.700000,74.000000,hi +29.700000,73.900000,hi +29.800000,73.900000,hi +29.900000,74.000000,hi +29.800000,74.000000,hi +29.800000,74.100000,hi +29.900000,74.100000,hi +29.900000,74.200000,hi +29.800000,74.200000,hi +29.700000,74.200000,hi +29.700000,74.100000,hi +29.600000,74.100000,hi +29.600000,74.200000,hi +29.500000,74.200000,hi +29.400000,74.200000,hi +29.400000,74.100000,hi +29.500000,74.100000,hi +29.500000,74.000000,hi +29.500000,73.900000,hi +29.400000,73.900000,hi +29.400000,74.000000,hi +29.300000,74.000000,hi +29.300000,73.900000,hi +29.200000,73.900000,hi +29.200000,74.000000,hi +29.200000,74.100000,hi +29.300000,74.100000,hi +29.300000,74.200000,hi +29.300000,74.300000,hi +29.300000,74.400000,hi +29.400000,74.400000,hi +29.400000,74.300000,hi +29.500000,74.300000,hi +29.500000,74.400000,hi +29.600000,74.500000,hi +29.500000,74.500000,hi +29.400000,74.500000,hi +29.300000,74.500000,hi +29.300000,74.600000,hi +29.400000,74.600000,hi +29.400000,74.700000,hi +29.300000,74.700000,hi +29.300000,74.800000,hi +29.300000,74.900000,hi +29.400000,74.900000,hi +29.400000,74.800000,hi +29.500000,74.800000,hi +29.500000,74.900000,hi +29.600000,74.900000,hi +29.600000,74.800000,hi +29.600000,74.700000,hi +29.500000,74.700000,hi +29.500000,74.600000,hi +29.600000,74.600000,hi +29.700000,74.600000,hi +29.800000,74.600000,hi +29.800000,74.700000,hi +29.700000,74.700000,hi +29.700000,74.800000,hi +29.700000,74.900000,hi +29.800000,74.900000,hi +29.800000,74.800000,hi +29.900000,74.800000,hi +29.900000,74.900000,hi +30.000000,74.900000,hi +30.000000,74.800000,hi +29.900000,74.700000,hi +29.900000,74.600000,hi +29.900000,74.500000,hi +29.800000,74.500000,hi +29.700000,74.500000,hi +29.700000,74.400000,hi +29.600000,74.400000,hi +29.600000,74.300000,hi +29.700000,74.300000,hi +29.800000,74.300000,hi +29.800000,74.400000,hi +29.900000,74.400000,hi +29.900000,74.300000,hi +30.000000,74.300000,hi +30.000000,74.400000,hi +30.100000,74.400000,hi +30.100000,74.300000,hi +30.200000,74.300000,hi +30.300000,74.300000,hi +30.300000,74.400000,hi +30.200000,74.400000,hi +30.300000,74.500000,hi +30.200000,74.500000,hi +30.100000,74.500000,hi +30.000000,74.500000,hi +30.000000,74.600000,hi +30.100000,74.600000,hi +30.100000,74.700000,hi +30.000000,74.700000,hi +30.100000,74.900000,hi +30.100000,74.800000,hi +30.200000,74.800000,hi +30.200000,74.900000,hi +30.300000,74.900000,hi +30.300000,74.800000,hi +30.300000,74.700000,hi +30.200000,74.700000,hi +30.200000,74.600000,hi +30.300000,74.600000,hi +30.400000,74.600000,hi +30.500000,74.600000,hi +30.500000,74.700000,hi +30.400000,74.700000,hi +30.400000,74.800000,hi +30.400000,74.900000,hi +30.500000,74.900000,hi +30.500000,74.800000,hi +30.600000,74.800000,hi +30.600000,74.900000,hi +30.700000,74.900000,hi +30.700000,74.800000,hi +30.700000,74.700000,hi +30.600000,74.700000,hi +30.600000,74.600000,hi +30.700000,74.600000,hi +30.600000,74.500000,hi +30.500000,74.500000,hi +30.400000,74.500000,hi +30.400000,74.400000,hi +30.400000,74.300000,hi +30.500000,74.300000,hi +30.500000,74.400000,hi +30.600000,74.400000,hi +30.600000,74.300000,hi +30.600000,74.200000,hi +30.500000,74.200000,hi +30.500000,74.100000,hi +30.600000,74.100000,hi +30.500000,74.000000,hi +30.400000,74.000000,hi +30.300000,74.000000,hi +30.300000,74.100000,hi +30.400000,74.100000,hi +30.400000,74.200000,hi +30.300000,74.200000,hi +30.200000,74.100000,hi +30.200000,74.200000,hi +30.100000,74.200000,hi +30.000000,74.200000,hi +30.000000,74.100000,hi +30.100000,74.100000,hi +30.000000,74.000000,hi +29.900000,73.900000,hi +30.000000,73.900000,hi +30.100000,73.900000,hi +30.100000,74.000000,hi +30.200000,74.000000,hi +30.000000,73.800000,hi +29.900000,73.800000,hi +29.900000,73.700000,hi +30.000000,73.700000,hi +30.000000,73.600000,hi +29.900000,73.600000,hi +29.900000,73.500000,hi +30.000000,73.500000,hi +31.700000,74.500000,en +31.800000,74.600000,en +31.800000,74.700000,hi +31.900000,74.700000,hi +31.900000,74.600000,hi +32.000000,74.900000,hi +31.900000,74.900000,hi +31.900000,74.800000,hi +31.800000,74.800000,hi +31.800000,74.900000,hi +31.700000,74.900000,hi +31.700000,74.800000,hi +31.700000,74.700000,hi +31.700000,74.600000,en +31.600000,74.600000,en +31.600000,74.700000,hi +31.500000,74.600000,en +31.500000,74.700000,hi +31.500000,74.800000,hi +31.600000,74.800000,hi +31.600000,74.900000,hi +31.500000,74.900000,hi +31.400000,74.900000,hi +31.400000,74.800000,hi +31.300000,74.800000,hi +31.300000,74.900000,hi +31.200000,74.900000,hi +31.100000,74.900000,hi +31.100000,74.800000,hi +31.200000,74.800000,hi +31.200000,74.700000,hi +31.100000,74.700000,hi +31.100000,74.600000,hi +31.200000,74.600000,hi +31.300000,74.600000,en +31.300000,74.700000,hi +31.400000,74.700000,hi +31.400000,74.600000,en +31.200000,74.500000,en +31.000000,74.500000,hi +30.900000,74.500000,hi +30.900000,74.400000,hi +30.800000,74.400000,hi +30.800000,74.300000,hi +30.700000,74.300000,hi +30.700000,74.400000,hi +30.800000,74.500000,hi +30.700000,74.500000,hi +30.800000,74.700000,hi +30.800000,74.600000,hi +30.900000,74.600000,hi +31.000000,74.600000,hi +31.000000,74.700000,hi +30.900000,74.700000,hi +31.000000,74.800000,hi +31.000000,74.900000,hi +30.900000,74.900000,hi +30.900000,74.800000,hi +30.800000,74.800000,hi +30.800000,74.900000,hi +30.800000,75.000000,hi +30.900000,75.000000,hi +30.900000,75.100000,hi +30.800000,75.100000,hi +30.800000,75.200000,hi +30.800000,75.300000,hi +30.900000,75.300000,hi +30.900000,75.200000,hi +31.000000,75.200000,hi +31.000000,75.300000,hi +31.100000,75.300000,hi +31.100000,75.200000,hi +31.100000,75.100000,hi +31.000000,75.100000,hi +31.000000,75.000000,hi +31.100000,75.000000,hi +31.200000,75.100000,hi +31.200000,75.000000,hi +31.300000,75.000000,hi +31.400000,75.000000,hi +31.400000,75.100000,hi +31.300000,75.100000,hi +31.400000,75.200000,hi +31.500000,75.300000,hi +31.400000,75.300000,hi +31.300000,75.300000,hi +31.300000,75.200000,hi +31.200000,75.200000,hi +31.200000,75.300000,hi +31.200000,75.400000,hi +31.200000,75.500000,hi +31.300000,75.500000,hi +31.300000,75.400000,hi +31.400000,75.400000,hi +31.500000,75.400000,hi +31.500000,75.500000,hi +31.400000,75.500000,hi +31.400000,75.600000,hi +31.500000,75.600000,hi +31.500000,75.700000,hi +31.400000,75.700000,hi +31.300000,75.700000,hi +31.300000,75.600000,hi +31.200000,75.600000,hi +31.200000,75.700000,hi +31.100000,75.700000,hi +31.000000,75.600000,hi +31.100000,75.600000,hi +31.100000,75.500000,hi +31.100000,75.400000,hi +31.000000,75.400000,hi +31.000000,75.500000,hi +30.900000,75.500000,hi +30.900000,75.400000,hi +30.800000,75.400000,hi +30.900000,75.600000,hi +31.000000,75.700000,hi +30.900000,75.700000,hi +30.900000,75.800000,hi +31.000000,75.800000,hi +31.100000,75.800000,hi +31.100000,75.900000,hi +31.200000,75.900000,hi +31.200000,76.000000,hi +31.100000,76.000000,hi +31.000000,76.000000,hi +31.000000,75.900000,hi +30.900000,75.900000,hi +30.900000,76.000000,hi +30.900000,76.100000,hi +31.000000,76.100000,hi +31.000000,76.200000,hi +30.900000,76.200000,hi +30.900000,76.300000,hi +31.000000,76.400000,hi +31.000000,76.300000,hi +31.100000,76.300000,hi +31.100000,76.400000,hi +31.200000,76.400000,hi +31.200000,76.300000,hi +31.200000,76.200000,hi +31.100000,76.200000,hi +31.100000,76.100000,hi +31.200000,76.100000,hi +31.300000,76.100000,hi +31.400000,76.100000,hi +31.400000,76.200000,hi +31.300000,76.200000,hi +31.300000,76.300000,hi +31.300000,76.400000,hi +31.400000,76.400000,hi +31.400000,76.300000,hi +31.500000,76.300000,hi +31.500000,76.400000,hi +31.600000,76.400000,hi +31.600000,76.300000,hi +31.600000,76.200000,hi +31.500000,76.200000,hi +31.500000,76.100000,hi +31.500000,76.000000,hi +31.500000,75.900000,hi +31.400000,75.900000,hi +31.400000,76.000000,hi +31.300000,76.000000,hi +31.300000,75.900000,hi +31.200000,75.800000,hi +31.300000,75.800000,hi +31.400000,75.800000,hi +31.500000,75.800000,hi +31.600000,75.800000,hi +31.700000,75.800000,hi +31.800000,75.800000,hi +31.900000,75.800000,hi +31.800000,75.900000,hi +31.900000,75.900000,hi +31.900000,76.000000,hi +31.800000,76.000000,hi +31.700000,76.000000,hi +31.700000,75.900000,hi +31.600000,75.900000,hi +31.600000,76.000000,hi +31.600000,76.100000,hi +31.700000,76.100000,hi +31.700000,76.200000,hi +31.700000,76.300000,hi +31.700000,76.400000,hi +31.800000,76.400000,hi +31.800000,76.300000,hi +31.900000,76.400000,hi +31.900000,76.300000,hi +31.900000,76.200000,hi +31.800000,76.200000,hi +31.800000,76.100000,hi +31.900000,76.100000,hi +32.000000,76.100000,hi +32.100000,76.100000,hi +32.100000,76.200000,hi +32.000000,76.200000,hi +32.000000,76.300000,hi +32.000000,76.400000,hi +32.100000,76.400000,hi +32.100000,76.300000,hi +32.200000,76.300000,hi +32.200000,76.400000,hi +32.300000,76.400000,hi +32.300000,76.300000,hi +32.300000,76.200000,hi +32.200000,76.200000,hi +32.200000,76.100000,hi +32.300000,76.100000,hi +32.200000,75.900000,hi +32.200000,76.000000,hi +32.100000,76.000000,hi +32.000000,76.000000,hi +32.000000,75.900000,hi +32.100000,75.900000,hi +32.000000,75.800000,hi +32.100000,75.800000,hi +32.200000,75.800000,hi +32.200000,75.700000,hi +32.100000,75.700000,hi +32.100000,75.600000,hi +32.200000,75.600000,hi +32.200000,75.500000,hi +32.200000,75.400000,hi +32.100000,75.400000,hi +32.100000,75.500000,hi +32.000000,75.500000,hi +32.000000,75.400000,hi +31.900000,75.400000,hi +31.900000,75.500000,hi +31.900000,75.600000,hi +32.000000,75.600000,hi +32.000000,75.700000,hi +31.900000,75.700000,hi +31.800000,75.600000,hi +31.800000,75.700000,hi +31.700000,75.700000,hi +31.600000,75.700000,hi +31.600000,75.600000,hi +31.700000,75.600000,hi +31.700000,75.500000,hi +31.600000,75.500000,hi +31.600000,75.400000,hi +31.700000,75.400000,hi +31.800000,75.500000,hi +31.800000,75.400000,hi +31.800000,75.300000,hi +31.800000,75.200000,hi +31.700000,75.200000,hi +31.700000,75.300000,hi +31.600000,75.300000,hi +31.500000,75.200000,hi +31.600000,75.200000,hi +31.600000,75.100000,hi +31.500000,75.100000,hi +31.500000,75.000000,hi +31.600000,75.000000,hi +31.700000,75.000000,hi +31.700000,75.100000,hi +31.800000,75.100000,hi +31.800000,75.000000,hi +31.900000,75.000000,hi +32.000000,75.100000,hi +31.900000,75.100000,hi +31.900000,75.200000,hi +31.900000,75.300000,hi +32.000000,75.300000,hi +32.000000,75.200000,hi +32.100000,75.200000,hi +32.100000,75.300000,hi +32.200000,75.300000,hi +32.000000,75.000000,hi +32.400000,75.200000,hi +32.400000,75.300000,hi +32.500000,75.300000,hi +32.500000,75.200000,hi +32.500000,75.100000,hi +32.500000,75.000000,hi +32.600000,75.000000,hi +32.600000,75.100000,hi +32.700000,75.100000,hi +32.700000,75.000000,hi +32.800000,75.000000,hi +32.800000,75.100000,hi +32.800000,75.200000,hi +32.900000,75.200000,hi +32.900000,75.300000,hi +32.800000,75.300000,hi +32.700000,75.300000,hi +32.700000,75.200000,hi +32.600000,75.200000,hi +32.600000,75.300000,hi +32.600000,75.400000,hi +32.600000,75.500000,hi +32.700000,75.500000,hi +32.700000,75.400000,hi +32.800000,75.400000,hi +32.900000,75.400000,hi +32.900000,75.500000,hi +32.800000,75.500000,hi +32.800000,75.600000,hi +32.900000,75.600000,hi +32.900000,75.700000,hi +32.800000,75.700000,hi +32.700000,75.600000,hi +32.700000,75.700000,hi +32.600000,75.700000,hi +32.500000,75.700000,hi +32.500000,75.600000,hi +32.600000,75.600000,hi +32.500000,75.400000,hi +32.500000,75.500000,hi +32.400000,75.500000,hi +32.400000,75.400000,hi +32.300000,75.400000,hi +32.300000,75.500000,hi +32.300000,75.600000,hi +32.400000,75.600000,hi +32.400000,75.700000,hi +32.300000,75.700000,hi +32.300000,75.800000,hi +32.400000,75.800000,hi +32.500000,75.800000,hi +32.600000,75.800000,hi +32.500000,75.900000,hi +32.600000,75.900000,hi +32.600000,76.000000,hi +32.500000,76.000000,hi +32.400000,76.000000,hi +32.400000,75.900000,hi +32.300000,75.900000,hi +32.300000,76.000000,hi +32.400000,76.100000,hi +32.400000,76.200000,hi +32.400000,76.300000,hi +32.400000,76.400000,hi +32.500000,76.400000,hi +32.500000,76.300000,hi +32.600000,76.400000,hi +32.600000,76.300000,hi +32.600000,76.200000,hi +32.500000,76.200000,hi +32.500000,76.100000,hi +32.600000,76.100000,hi +32.700000,76.100000,hi +32.800000,76.100000,hi +32.800000,76.200000,hi +32.700000,76.200000,hi +32.700000,76.300000,hi +32.700000,76.400000,hi +32.800000,76.400000,hi +32.800000,76.300000,hi +32.900000,76.300000,hi +32.900000,76.400000,hi +33.000000,76.400000,hi +33.000000,76.300000,hi +33.000000,76.200000,hi +32.900000,76.200000,hi +32.900000,76.100000,hi +33.000000,76.100000,hi +33.000000,76.000000,hi +32.900000,75.900000,hi +32.900000,76.000000,hi +32.800000,76.000000,hi +32.700000,76.000000,hi +32.700000,75.900000,hi +32.800000,75.900000,hi +32.700000,75.800000,hi +32.800000,75.800000,hi +32.900000,75.800000,hi +33.000000,75.800000,hi +33.100000,75.800000,hi +33.200000,75.800000,hi +33.300000,75.800000,hi +33.200000,75.900000,hi +33.300000,75.900000,hi +33.300000,76.000000,hi +33.200000,76.000000,hi +33.100000,76.000000,hi +33.100000,75.900000,hi +33.000000,75.900000,hi +33.100000,76.100000,hi +33.200000,76.200000,en +33.100000,76.200000,hi +33.100000,76.300000,hi +33.100000,76.400000,hi +33.200000,76.400000,hi +33.200000,76.300000,en +33.300000,76.300000,en +33.300000,76.400000,hi +33.400000,76.400000,hi +33.300000,76.200000,en +33.200000,76.100000,hi +33.300000,76.100000,hi +33.400000,76.100000,en +33.500000,76.100000,en +33.500000,76.200000,hi +33.400000,76.200000,hi +33.400000,76.300000,hi +33.500000,76.400000,hi +33.500000,76.300000,hi +33.600000,76.300000,hi +33.600000,76.400000,hi +33.700000,76.400000,hi +33.700000,76.300000,hi +33.700000,76.200000,hi +33.600000,76.200000,hi +33.600000,76.100000,hi +33.700000,76.100000,hi +33.700000,76.000000,hi +33.600000,75.900000,hi +33.600000,76.000000,hi +33.500000,76.000000,hi +33.400000,76.000000,hi +33.400000,75.900000,hi +33.500000,75.900000,hi +33.400000,75.800000,hi +33.500000,75.800000,hi +33.600000,75.800000,hi +33.600000,75.700000,hi +33.500000,75.700000,hi +33.500000,75.600000,hi +33.600000,75.600000,hi +33.600000,75.500000,hi +33.600000,75.400000,hi +33.500000,75.400000,hi +33.500000,75.500000,hi +33.400000,75.500000,hi +33.400000,75.400000,hi +33.300000,75.400000,hi +33.300000,75.500000,hi +33.400000,75.600000,hi +33.400000,75.700000,hi +33.300000,75.700000,hi +33.300000,75.600000,hi +33.200000,75.600000,hi +33.200000,75.700000,hi +33.100000,75.700000,hi +33.000000,75.700000,hi +33.000000,75.600000,hi +33.100000,75.600000,hi +33.100000,75.500000,hi +33.000000,75.500000,hi +33.000000,75.400000,hi +33.100000,75.400000,hi +33.200000,75.500000,hi +33.200000,75.400000,hi +33.200000,75.300000,hi +33.200000,75.200000,hi +33.100000,75.200000,hi +33.100000,75.300000,hi +33.000000,75.300000,hi +33.000000,75.200000,hi +33.000000,75.100000,hi +32.900000,75.100000,hi +32.900000,75.000000,hi +33.000000,75.000000,hi +33.100000,75.000000,hi +33.100000,75.100000,hi +33.200000,75.100000,hi +33.200000,75.000000,hi +33.300000,75.000000,hi +33.400000,75.000000,hi +33.400000,75.100000,hi +33.300000,75.100000,hi +33.300000,75.200000,hi +33.300000,75.300000,hi +33.400000,75.300000,hi +33.400000,75.200000,hi +33.500000,75.200000,hi +33.500000,75.300000,hi +33.600000,75.300000,hi +33.600000,75.200000,hi +33.500000,75.100000,hi +33.500000,75.000000,hi +33.500000,74.900000,hi +33.500000,74.800000,hi +33.400000,74.800000,hi +33.400000,74.900000,hi +33.300000,74.900000,hi +33.300000,74.800000,hi +33.300000,74.700000,hi +33.200000,74.700000,hi +33.200000,74.600000,hi +33.300000,74.600000,hi +33.400000,74.600000,hi +33.400000,74.700000,hi +33.500000,74.700000,hi +33.500000,74.600000,hi +33.500000,74.500000,hi +33.400000,74.500000,hi +33.500000,74.400000,hi +33.400000,74.300000,hi +33.400000,74.400000,hi +33.300000,74.400000,hi +33.300000,74.300000,hi +33.200000,74.300000,hi +33.200000,74.400000,hi +33.300000,74.500000,hi +33.200000,74.500000,hi +33.100000,74.500000,hi +33.000000,74.500000,hi +33.100000,74.400000,hi +33.100000,74.300000,hi +33.000000,74.400000,hi +32.900000,74.400000,hi +32.900000,74.500000,hi +32.900000,74.600000,hi +32.900000,74.700000,hi +33.000000,74.700000,hi +33.000000,74.600000,hi +33.100000,74.600000,hi +33.100000,74.700000,hi +33.100000,74.800000,hi +33.200000,74.800000,hi +33.200000,74.900000,hi +33.100000,74.900000,hi +33.000000,74.900000,hi +33.000000,74.800000,hi +32.900000,74.800000,hi +32.900000,74.900000,hi +32.800000,74.900000,hi +32.700000,74.900000,hi +32.700000,74.800000,hi +32.800000,74.800000,hi +32.800000,74.700000,hi +32.800000,74.600000,hi +32.700000,74.700000,hi +32.600000,74.700000,hi +32.500000,74.700000,hi +32.600000,74.800000,hi +32.600000,74.900000,hi +32.500000,74.900000,hi +32.500000,74.800000,hi +32.800000,74.500000,hi +33.100000,74.200000,hi +33.200000,74.100000,hi +33.200000,74.200000,hi +33.300000,74.200000,hi +33.400000,74.200000,hi +27.200000,69.600000,en +28.000000,70.400000,en +27.900000,70.400000,en +27.900000,70.300000,hi +27.800000,70.300000,en +27.800000,70.400000,en +27.700000,70.400000,hi +27.700000,70.300000,hi +27.700000,70.200000,en +27.600000,70.200000,hi +27.600000,70.100000,en +27.700000,70.100000,en +27.800000,70.200000,en +27.900000,70.200000,hi +27.500000,70.000000,en +27.400000,70.000000,en +27.400000,69.900000,en +27.300000,69.800000,en +27.300000,69.700000,en +27.200000,69.700000,hi +27.200000,69.800000,hi +27.200000,69.900000,en +27.300000,69.900000,en +27.300000,70.000000,hi +27.200000,70.000000,hi +27.300000,70.100000,hi +27.300000,70.200000,hi +27.400000,70.200000,hi +27.400000,70.100000,hi +27.500000,70.100000,hi +27.500000,70.200000,hi +27.500000,70.300000,hi +27.600000,70.300000,hi +27.600000,70.400000,hi +27.500000,70.400000,hi +27.400000,70.400000,hi +27.400000,70.300000,hi +27.300000,70.300000,hi +27.300000,70.400000,hi +27.300000,70.500000,hi +27.400000,70.500000,hi +27.400000,70.600000,hi +27.300000,70.600000,hi +27.400000,70.800000,hi +27.400000,70.700000,hi +27.500000,70.700000,hi +27.500000,70.800000,hi +27.600000,70.800000,hi +27.600000,70.700000,hi +27.600000,70.600000,hi +27.500000,70.600000,hi +27.500000,70.500000,hi +27.600000,70.500000,hi +27.700000,70.500000,hi +27.700000,70.600000,hi +27.800000,70.600000,en +27.800000,70.500000,en +27.900000,70.500000,en +28.000000,70.600000,en +27.900000,70.600000,en +27.800000,70.700000,hi +27.700000,70.700000,hi +27.700000,70.800000,hi +27.700000,70.900000,hi +27.800000,71.100000,hi +27.700000,71.100000,hi +27.600000,71.100000,hi +27.700000,71.000000,hi +27.600000,70.900000,hi +27.600000,71.000000,hi +27.500000,71.000000,hi +27.500000,70.900000,hi +27.400000,70.900000,hi +27.400000,71.000000,hi +27.500000,71.100000,hi +27.400000,71.100000,hi +27.400000,71.200000,hi +27.400000,71.300000,hi +27.500000,71.300000,hi +27.500000,71.200000,hi +27.600000,71.200000,hi +27.700000,71.200000,hi +27.700000,71.300000,hi +27.600000,71.300000,hi +27.600000,71.400000,hi +27.700000,71.400000,hi +27.700000,71.500000,hi +27.600000,71.500000,hi +27.500000,71.400000,hi +27.400000,71.400000,hi +27.500000,71.500000,hi +27.500000,71.600000,hi +27.600000,71.600000,hi +27.600000,71.700000,hi +27.500000,71.700000,hi +27.500000,71.800000,hi +27.500000,71.900000,hi +27.600000,71.900000,hi +27.600000,71.800000,hi +27.700000,71.800000,hi +27.700000,71.900000,hi +27.800000,71.900000,hi +27.800000,71.800000,hi +27.800000,71.700000,hi +27.700000,71.700000,hi +27.700000,71.600000,hi +27.800000,71.600000,hi +27.900000,71.700000,hi +27.900000,71.800000,hi +27.900000,71.900000,hi +28.000000,71.900000,hi +27.800000,71.500000,hi +27.800000,71.400000,hi +27.800000,71.300000,hi +27.800000,71.200000,hi +28.000000,70.500000,hi +29.900000,73.400000,hi +29.800000,73.400000,hi +29.700000,73.400000,hi +29.600000,73.400000,hi +29.500000,73.400000,hi +29.500000,73.300000,hi +29.600000,73.300000,hi +29.100000,73.000000,hi +29.100000,73.100000,hi +29.100000,73.200000,hi +29.200000,73.200000,hi +29.200000,73.100000,hi +29.400000,73.200000,hi +29.300000,73.200000,hi +29.300000,73.300000,hi +29.400000,73.300000,hi +29.400000,73.400000,hi +29.300000,73.400000,hi +29.200000,73.300000,hi +29.100000,73.300000,hi +29.200000,73.400000,hi +29.100000,73.400000,hi +29.000000,73.400000,hi +29.000000,73.300000,hi +29.000000,73.200000,hi +29.000000,73.100000,hi +28.900000,73.100000,hi +28.900000,73.200000,hi +28.800000,73.100000,hi +28.800000,73.200000,hi +28.800000,73.300000,hi +28.900000,73.300000,hi +28.900000,73.400000,hi +28.800000,73.400000,hi +28.700000,73.400000,hi +28.700000,73.300000,hi +28.600000,73.300000,hi +28.600000,73.400000,hi +28.500000,73.400000,hi +28.400000,73.400000,hi +28.400000,73.300000,hi +28.500000,73.300000,hi +28.500000,73.200000,hi +28.400000,73.200000,hi +28.400000,73.100000,hi +28.500000,73.100000,hi +28.600000,73.100000,hi +28.600000,73.200000,hi +28.700000,73.200000,hi +28.700000,73.100000,hi +28.600000,72.900000,hi +28.600000,73.000000,hi +28.500000,73.000000,hi +28.400000,73.000000,hi +28.400000,72.900000,hi +28.500000,72.900000,hi +28.400000,72.800000,hi +28.500000,72.800000,hi +28.600000,72.800000,hi +28.700000,72.800000,hi +28.800000,72.800000,hi +28.700000,72.900000,hi +28.700000,73.000000,hi +28.800000,73.000000,hi +28.800000,72.900000,hi +28.900000,72.900000,hi +28.900000,73.000000,hi +29.000000,73.000000,hi +29.000000,72.900000,hi +28.900000,72.800000,hi +28.900000,72.700000,hi +28.800000,72.700000,hi +28.700000,72.700000,hi +28.700000,72.600000,hi +28.800000,72.600000,hi +28.800000,72.500000,hi +28.700000,72.500000,hi +28.700000,72.400000,hi +28.600000,72.300000,hi +28.500000,72.300000,hi +28.300000,72.100000,hi +28.300000,72.200000,hi +28.400000,72.200000,hi +28.400000,72.300000,hi +28.300000,72.300000,hi +28.300000,72.400000,hi +28.300000,72.500000,hi +28.400000,72.500000,hi +28.400000,72.400000,hi +28.500000,72.400000,hi +28.600000,72.400000,hi +28.600000,72.500000,hi +28.500000,72.500000,hi +28.500000,72.600000,hi +28.600000,72.600000,hi +28.600000,72.700000,hi +28.500000,72.700000,hi +28.400000,72.700000,hi +28.400000,72.600000,hi +28.300000,72.600000,hi +28.300000,72.700000,hi +28.200000,72.600000,hi +28.200000,72.700000,hi +28.100000,72.700000,hi +28.000000,72.700000,hi +28.000000,72.600000,hi +28.100000,72.600000,hi +28.000000,72.500000,hi +27.900000,72.400000,hi +28.000000,72.400000,hi +28.100000,72.400000,hi +28.100000,72.500000,hi +28.200000,72.500000,hi +28.200000,72.400000,hi +28.200000,72.300000,hi +28.100000,72.300000,hi +28.100000,72.200000,hi +28.200000,72.200000,hi +28.200000,72.100000,hi +28.200000,72.000000,hi +28.100000,72.000000,hi +28.100000,72.100000,hi +28.000000,72.100000,hi +28.000000,72.000000,hi +27.900000,72.000000,hi +27.900000,72.100000,hi +27.900000,72.200000,hi +28.000000,72.200000,hi +28.000000,72.300000,hi +27.900000,72.300000,hi +27.800000,72.300000,hi +27.700000,72.200000,hi +27.800000,72.200000,hi +27.800000,72.100000,hi +27.800000,72.000000,hi +27.700000,72.000000,hi +27.700000,72.100000,hi +27.600000,72.100000,hi +27.600000,72.000000,hi +27.500000,72.000000,hi +27.500000,72.100000,hi +27.600000,72.200000,hi +27.700000,72.300000,hi +27.600000,72.300000,hi +27.600000,72.400000,hi +27.600000,72.500000,hi +27.700000,72.500000,hi +27.700000,72.400000,hi +27.800000,72.400000,hi +27.900000,72.500000,hi +27.800000,72.500000,hi +27.800000,72.600000,hi +27.900000,72.600000,hi +27.900000,72.700000,hi +27.800000,72.700000,hi +27.700000,72.700000,hi +27.700000,72.600000,hi +27.600000,72.600000,hi +27.600000,72.700000,hi +27.600000,72.800000,hi +27.700000,72.800000,hi +27.600000,72.900000,hi +27.700000,73.000000,hi +27.700000,72.900000,hi +27.800000,72.900000,hi +27.800000,73.000000,hi +27.900000,73.000000,hi +27.900000,72.900000,hi +27.800000,72.800000,hi +27.900000,72.800000,hi +28.000000,72.800000,hi +28.100000,72.800000,hi +28.200000,72.800000,hi +28.300000,72.800000,hi +28.200000,72.900000,hi +28.300000,72.900000,hi +28.300000,73.000000,hi +28.200000,73.000000,hi +28.100000,73.000000,hi +28.100000,72.900000,hi +28.000000,72.900000,hi +28.000000,73.000000,hi +28.000000,73.100000,hi +28.000000,73.200000,hi +28.100000,73.200000,hi +28.100000,73.100000,hi +28.200000,73.100000,hi +28.300000,73.100000,hi +28.300000,73.200000,hi +28.200000,73.200000,hi +28.200000,73.300000,hi +28.300000,73.300000,hi +28.300000,73.400000,hi +28.200000,73.400000,hi +28.100000,73.300000,hi +28.100000,73.400000,hi +28.000000,73.400000,hi +27.900000,73.400000,hi +27.900000,73.300000,hi +28.000000,73.300000,hi +27.900000,73.100000,hi +27.900000,73.200000,hi +27.800000,73.200000,hi +27.800000,73.100000,hi +27.700000,73.100000,hi +27.700000,73.200000,hi +27.700000,73.300000,hi +27.800000,73.300000,hi +27.800000,73.400000,hi +27.700000,73.400000,hi +27.600000,73.400000,hi +27.500000,73.400000,hi +27.500000,73.300000,hi +27.600000,73.300000,hi +27.600000,73.200000,hi +27.600000,73.100000,hi +27.500000,73.100000,hi +27.500000,73.200000,hi +27.400000,73.200000,hi +27.400000,73.100000,hi +27.300000,73.100000,hi +27.300000,73.200000,hi +27.300000,73.300000,hi +27.400000,73.300000,hi +27.400000,73.400000,hi +27.300000,73.400000,hi +27.200000,73.300000,hi +27.100000,73.300000,hi +27.200000,73.400000,hi +27.100000,73.400000,hi +27.000000,73.400000,hi +27.000000,73.300000,hi +27.000000,73.200000,hi +26.900000,73.100000,hi +27.000000,73.100000,hi +27.100000,73.100000,hi +27.100000,73.200000,hi +27.200000,73.200000,hi +27.200000,73.100000,hi +27.200000,73.000000,hi +27.200000,72.900000,hi +27.100000,72.900000,hi +27.100000,73.000000,hi +27.000000,73.000000,hi +26.900000,73.000000,hi +26.900000,72.900000,hi +27.000000,72.900000,hi +26.900000,72.800000,hi +27.000000,72.800000,hi +27.100000,72.800000,hi +27.200000,72.800000,hi +27.300000,72.800000,hi +27.400000,72.800000,hi +27.300000,72.900000,hi +27.300000,73.000000,hi +27.400000,73.000000,hi +27.400000,72.900000,hi +27.500000,72.900000,hi +27.500000,73.000000,hi +27.600000,73.000000,hi +27.500000,72.800000,hi +27.500000,72.700000,hi +27.500000,72.600000,hi +27.400000,72.600000,hi +27.400000,72.700000,hi +27.300000,72.700000,hi +27.200000,72.600000,hi +27.300000,72.600000,hi +27.300000,72.500000,hi +27.200000,72.500000,hi +27.200000,72.400000,hi +27.300000,72.400000,hi +27.400000,72.400000,hi +27.400000,72.500000,hi +27.500000,72.500000,hi +27.500000,72.400000,hi +27.500000,72.300000,hi +27.400000,72.300000,hi +27.400000,72.200000,hi +27.500000,72.200000,hi +27.400000,72.000000,hi +27.300000,72.000000,hi +27.400000,72.100000,hi +27.300000,72.100000,hi +27.200000,72.000000,hi +27.200000,72.100000,hi +27.200000,72.200000,hi +27.300000,72.200000,hi +27.300000,72.300000,hi +27.200000,72.300000,hi +27.100000,72.300000,hi +27.000000,72.300000,hi +27.000000,72.200000,hi +27.100000,72.200000,hi +27.100000,72.100000,hi +27.100000,72.000000,hi +27.000000,72.000000,hi +27.000000,72.100000,hi +26.900000,72.100000,hi +26.900000,72.000000,hi +26.800000,72.000000,hi +26.800000,72.100000,hi +26.800000,72.200000,hi +26.900000,72.200000,hi +26.900000,72.300000,hi +26.800000,72.300000,hi +26.900000,72.500000,hi +26.900000,72.400000,hi +27.000000,72.400000,hi +27.100000,72.400000,hi +27.100000,72.500000,hi +27.000000,72.500000,hi +27.100000,72.600000,hi +27.200000,72.700000,hi +27.100000,72.700000,hi +27.000000,72.700000,hi +27.000000,72.600000,hi +26.900000,72.600000,hi +26.900000,72.700000,hi +26.800000,72.700000,hi +26.800000,72.600000,hi +26.700000,72.600000,hi +26.700000,72.700000,hi +26.600000,72.700000,hi +26.500000,72.700000,hi +26.500000,72.600000,hi +26.600000,72.600000,hi +26.600000,72.500000,hi +26.500000,72.500000,hi +26.500000,72.400000,hi +26.600000,72.400000,hi +26.700000,72.400000,hi +26.700000,72.500000,hi +26.800000,72.500000,hi +26.800000,72.400000,hi +26.700000,72.300000,hi +26.600000,72.200000,hi +26.700000,72.200000,hi +26.700000,72.100000,hi +26.700000,72.000000,hi +26.600000,72.000000,hi +26.600000,72.100000,hi +26.500000,72.100000,hi +26.500000,72.000000,hi +26.400000,72.000000,hi +26.500000,72.200000,hi +26.600000,72.300000,hi +26.500000,72.300000,hi +26.400000,72.300000,hi +26.300000,72.300000,hi +26.300000,72.200000,hi +26.400000,72.200000,hi +26.400000,72.100000,hi +26.300000,72.000000,hi +26.300000,72.100000,hi +26.200000,72.100000,hi +26.200000,72.000000,hi +26.100000,72.000000,hi +26.100000,72.100000,hi +26.100000,72.200000,hi +26.200000,72.200000,hi +26.200000,72.300000,hi +26.100000,72.300000,hi +26.100000,72.400000,hi +26.100000,72.500000,hi +26.200000,72.500000,hi +26.200000,72.400000,hi +26.300000,72.400000,hi +26.400000,72.400000,hi +26.400000,72.500000,hi +26.300000,72.500000,hi +26.300000,72.600000,hi +26.400000,72.600000,hi +26.400000,72.700000,hi +26.300000,72.700000,hi +26.200000,72.600000,hi +26.100000,72.600000,hi +26.200000,72.700000,hi +26.200000,72.800000,hi +26.300000,72.800000,hi +26.200000,72.900000,hi +26.200000,73.000000,hi +26.300000,73.000000,hi +26.300000,72.900000,hi +26.400000,72.900000,hi +26.400000,73.000000,hi +26.500000,73.000000,hi +26.500000,72.900000,hi +26.400000,72.800000,hi +26.500000,72.800000,hi +26.600000,72.800000,hi +26.700000,72.800000,hi +26.800000,72.800000,hi +26.700000,72.900000,hi +26.800000,72.900000,hi +26.800000,73.000000,hi +26.700000,73.000000,hi +26.600000,72.900000,hi +26.600000,73.000000,hi +26.600000,73.100000,hi +26.600000,73.200000,hi +26.700000,73.200000,hi +26.700000,73.100000,hi +26.800000,73.100000,hi +26.900000,73.200000,hi +26.800000,73.200000,hi +26.800000,73.300000,hi +26.900000,73.300000,hi +26.900000,73.400000,hi +26.800000,73.400000,hi +26.700000,73.400000,hi +26.700000,73.300000,hi +26.600000,73.300000,hi +26.600000,73.400000,hi +26.500000,73.400000,hi +26.400000,73.400000,hi +26.400000,73.300000,hi +26.500000,73.300000,hi +26.500000,73.200000,hi +26.500000,73.100000,hi +26.400000,73.100000,hi +26.400000,73.200000,hi +26.300000,73.200000,hi +26.300000,73.100000,hi +26.200000,73.100000,hi +26.200000,73.200000,hi +26.200000,73.300000,hi +26.300000,73.300000,hi +26.300000,73.400000,hi +26.200000,73.400000,hi +26.100000,73.300000,hi +26.000000,73.300000,hi +26.100000,73.400000,hi +26.000000,73.400000,hi +25.900000,73.400000,hi +25.900000,73.300000,hi +25.900000,73.200000,hi +25.800000,73.100000,hi +25.900000,73.100000,hi +26.000000,73.100000,hi +26.000000,73.200000,hi +26.100000,73.200000,hi +26.100000,73.100000,hi +26.100000,73.000000,hi +26.000000,73.000000,hi +26.000000,72.900000,hi +26.100000,72.900000,hi +26.100000,72.800000,hi +26.000000,72.800000,hi +25.900000,72.800000,hi +25.800000,72.800000,hi +25.800000,72.900000,hi +25.900000,72.900000,hi +25.900000,73.000000,hi +25.800000,73.000000,hi +25.700000,73.000000,hi +25.600000,73.000000,hi +25.600000,72.900000,hi +25.700000,72.900000,hi +25.700000,72.800000,hi +25.600000,72.800000,hi +25.500000,72.800000,hi +25.400000,72.800000,hi +25.500000,72.900000,hi +25.500000,73.000000,hi +25.500000,73.100000,hi +25.500000,73.200000,hi +25.600000,73.200000,hi +25.600000,73.100000,hi +25.700000,73.100000,hi +25.800000,73.200000,hi +25.700000,73.200000,hi +25.700000,73.300000,hi +25.800000,73.300000,hi +25.800000,73.400000,hi +25.700000,73.400000,hi +25.600000,73.400000,hi +25.600000,73.300000,hi +25.500000,73.300000,hi +25.500000,73.400000,hi +25.400000,73.400000,hi +25.300000,73.400000,hi +25.300000,73.300000,hi +25.400000,73.300000,hi +25.400000,73.200000,hi +25.400000,73.100000,hi +25.300000,73.100000,hi +25.300000,73.200000,hi +25.200000,73.200000,hi +25.200000,73.100000,hi +25.100000,73.100000,hi +25.100000,73.200000,hi +25.100000,73.300000,hi +25.200000,73.300000,hi +25.200000,73.400000,hi +25.100000,73.400000,hi +25.000000,73.400000,hi +25.000000,73.300000,hi +24.900000,73.300000,hi +24.900000,73.400000,hi +24.800000,73.400000,hi +24.800000,73.300000,hi +24.800000,73.200000,hi +24.700000,73.100000,hi +24.800000,73.100000,hi +24.900000,73.100000,hi +24.900000,73.200000,hi +25.000000,73.200000,hi +25.000000,73.100000,hi +25.000000,73.000000,hi +25.000000,72.900000,hi +24.900000,72.900000,hi +24.900000,73.000000,hi +24.800000,73.000000,hi +24.700000,73.000000,hi +24.700000,72.900000,hi +24.800000,72.900000,hi +24.700000,72.800000,hi +24.800000,72.800000,hi +24.900000,72.800000,hi +25.000000,72.800000,hi +25.100000,72.800000,hi +25.200000,72.800000,hi +25.100000,72.900000,hi +25.100000,73.000000,hi +25.200000,73.000000,hi +25.200000,72.900000,hi +25.300000,72.900000,hi +25.300000,73.000000,hi +25.400000,73.000000,hi +25.400000,72.900000,hi +25.300000,72.800000,hi +25.300000,72.700000,hi +25.200000,72.700000,hi +25.200000,72.600000,hi +25.300000,72.600000,hi +25.300000,72.500000,hi +25.300000,72.400000,hi +25.200000,72.400000,hi +25.200000,72.500000,hi +25.100000,72.500000,hi +25.100000,72.400000,hi +25.000000,72.400000,hi +25.000000,72.500000,hi +25.000000,72.600000,hi +25.100000,72.600000,hi +25.100000,72.700000,hi +25.000000,72.700000,hi +24.900000,72.600000,hi +24.900000,72.700000,hi +24.800000,72.700000,hi +24.700000,72.700000,hi +24.700000,72.600000,hi +24.800000,72.600000,hi +24.800000,72.500000,hi +24.700000,72.500000,hi +24.700000,72.400000,hi +24.800000,72.400000,hi +24.900000,72.500000,hi +24.900000,72.400000,hi +24.900000,72.300000,hi +24.900000,72.200000,hi +24.800000,72.200000,hi +24.800000,72.300000,hi +24.700000,72.300000,hi +24.600000,72.300000,hi +24.600000,72.200000,hi +24.700000,72.200000,hi +24.700000,72.100000,hi +24.600000,72.100000,hi +24.600000,72.000000,hi +24.700000,72.000000,hi +24.800000,72.000000,hi +24.800000,72.100000,hi +24.900000,72.100000,hi +24.900000,72.000000,hi +25.000000,72.000000,hi +25.100000,72.000000,hi +25.100000,72.100000,hi +25.000000,72.100000,hi +25.000000,72.200000,hi +25.000000,72.300000,hi +25.100000,72.300000,hi +25.100000,72.200000,hi +25.200000,72.200000,hi +25.200000,72.300000,hi +25.300000,72.300000,hi +25.300000,72.200000,hi +25.300000,72.100000,hi +25.200000,72.100000,hi +25.200000,72.000000,hi +25.300000,72.000000,hi +25.400000,72.100000,hi +25.400000,72.000000,hi +25.500000,72.000000,hi +25.600000,72.000000,hi +25.600000,72.100000,hi +25.500000,72.100000,hi +25.500000,72.200000,hi +25.600000,72.200000,hi +25.600000,72.300000,hi +25.500000,72.300000,hi +25.400000,72.200000,hi +25.400000,72.300000,hi +25.400000,72.400000,hi +25.500000,72.400000,hi +25.500000,72.500000,hi +25.400000,72.500000,hi +25.400000,72.600000,hi +25.400000,72.700000,hi +25.500000,72.700000,hi +25.500000,72.600000,hi +25.600000,72.600000,hi +25.600000,72.700000,hi +25.700000,72.700000,hi +25.700000,72.600000,hi +25.700000,72.500000,hi +25.600000,72.500000,hi +25.600000,72.400000,hi +25.700000,72.400000,hi +25.800000,72.400000,hi +25.900000,72.500000,hi +25.800000,72.500000,hi +25.800000,72.600000,hi +25.800000,72.700000,hi +25.900000,72.700000,hi +25.900000,72.600000,hi +26.000000,72.600000,hi +26.000000,72.700000,hi +26.100000,72.700000,hi +26.000000,72.500000,hi +25.900000,72.400000,hi +26.000000,72.400000,hi +26.000000,72.300000,hi +26.000000,72.200000,hi +25.900000,72.200000,hi +25.900000,72.300000,hi +25.800000,72.300000,hi +25.700000,72.300000,hi +25.700000,72.200000,hi +25.800000,72.200000,hi +25.800000,72.100000,hi +25.700000,72.100000,hi +25.700000,72.000000,hi +25.800000,72.000000,hi +25.900000,72.000000,hi +25.900000,72.100000,hi +26.000000,72.100000,hi +26.000000,72.000000,hi +26.000000,71.900000,hi +25.900000,71.800000,hi +25.900000,71.900000,hi +25.800000,71.900000,hi +25.700000,71.900000,hi +25.700000,71.800000,hi +25.800000,71.800000,hi +25.800000,71.700000,hi +25.700000,71.700000,hi +25.700000,71.600000,hi +25.800000,71.600000,hi +25.900000,71.700000,hi +25.900000,71.600000,hi +25.900000,71.500000,hi +25.800000,71.500000,hi +25.800000,71.400000,hi +25.900000,71.400000,hi +25.900000,71.300000,hi +25.900000,71.200000,hi +25.800000,71.200000,hi +25.800000,71.300000,hi +25.700000,71.300000,hi +25.700000,71.200000,hi +25.600000,71.200000,hi +25.600000,71.300000,hi +25.600000,71.400000,hi +25.700000,71.400000,hi +25.700000,71.500000,hi +25.600000,71.500000,hi +25.500000,71.500000,hi +25.400000,71.400000,hi +25.500000,71.400000,hi +25.500000,71.300000,hi +25.500000,71.200000,hi +25.400000,71.200000,hi +25.400000,71.300000,hi +25.300000,71.300000,hi +25.300000,71.200000,hi +25.200000,71.200000,hi +25.300000,71.400000,hi +25.400000,71.500000,hi +25.300000,71.500000,hi +25.300000,71.600000,hi +25.300000,71.700000,hi +25.400000,71.700000,hi +25.400000,71.600000,hi +25.500000,71.600000,hi +25.600000,71.600000,hi +25.600000,71.700000,hi +25.500000,71.700000,hi +25.500000,71.800000,hi +25.600000,71.800000,hi +25.600000,71.900000,hi +25.500000,71.900000,hi +25.400000,71.900000,hi +25.400000,71.800000,hi +25.300000,71.800000,hi +25.300000,71.900000,hi +25.200000,71.900000,hi +25.100000,71.900000,hi +25.100000,71.800000,hi +25.200000,71.800000,hi +25.200000,71.700000,hi +25.200000,71.600000,hi +25.100000,71.600000,hi +25.100000,71.700000,hi +25.000000,71.700000,hi +25.000000,71.600000,hi +24.900000,71.600000,hi +24.900000,71.700000,hi +24.900000,71.800000,hi +25.000000,71.800000,hi +25.000000,71.900000,hi +24.900000,71.900000,hi +24.800000,71.800000,hi +24.800000,71.900000,hi +24.700000,71.900000,hi +24.600000,71.900000,hi +24.600000,71.800000,hi +24.700000,71.800000,hi +24.700000,71.700000,hi +24.600000,71.700000,hi +24.600000,71.600000,hi +24.700000,71.600000,hi +24.800000,71.700000,hi +24.800000,71.600000,hi +24.800000,71.500000,hi +24.800000,71.400000,hi +24.700000,71.400000,hi +24.700000,71.500000,hi +24.600000,71.500000,gu +24.500000,71.500000,gu +24.500000,71.400000,gu +24.600000,71.400000,gu +24.600000,71.300000,hi +24.500000,71.300000,gu +24.500000,71.200000,gu +24.600000,71.200000,hi +24.700000,71.200000,hi +24.700000,71.300000,hi +24.800000,71.300000,hi +24.800000,71.200000,hi +24.900000,71.200000,hi +25.000000,71.200000,hi +25.000000,71.300000,hi +24.900000,71.300000,hi +24.900000,71.400000,hi +24.900000,71.500000,hi +25.000000,71.500000,hi +25.000000,71.400000,hi +25.100000,71.400000,hi +25.100000,71.500000,hi +25.200000,71.500000,hi +25.200000,71.400000,hi +25.200000,71.300000,hi +25.100000,71.300000,hi +25.100000,71.200000,hi +25.100000,71.100000,hi +25.000000,71.100000,hi +25.100000,71.000000,hi +25.100000,70.900000,hi +25.000000,71.000000,hi +24.900000,71.000000,hi +24.900000,71.100000,hi +24.800000,71.100000,hi +24.700000,71.100000,hi +24.600000,71.100000,hi +24.500000,71.100000,en +24.600000,71.000000,hi +24.500000,71.000000,en +24.400000,70.500000,en +25.400000,70.700000,hi +25.400000,70.800000,hi +25.300000,70.800000,hi +25.200000,70.900000,hi +25.300000,70.900000,hi +25.300000,71.000000,hi +25.200000,71.000000,hi +25.200000,71.100000,hi +25.300000,71.100000,hi +25.400000,71.100000,hi +25.500000,71.100000,hi +25.500000,71.000000,hi +25.400000,71.000000,hi +25.400000,70.900000,hi +25.500000,70.900000,hi +25.600000,70.900000,hi +25.700000,71.000000,hi +25.600000,71.000000,hi +25.600000,71.100000,hi +25.700000,71.100000,hi +25.800000,71.100000,hi +25.900000,71.100000,hi +25.800000,71.000000,hi +25.700000,70.900000,hi +25.800000,70.900000,hi +25.800000,70.800000,hi +25.800000,70.700000,hi +25.700000,70.700000,hi +25.700000,70.800000,hi +25.600000,70.800000,hi +25.500000,70.800000,hi +25.500000,70.700000,hi +25.600000,70.700000,hi +25.700000,70.500000,hi +25.700000,70.600000,hi +25.800000,70.600000,hi +25.800000,70.500000,hi +25.900000,70.500000,hi +26.000000,70.500000,hi +26.000000,70.600000,hi +25.900000,70.600000,hi +25.900000,70.700000,hi +25.900000,70.800000,hi +26.000000,70.800000,hi +26.000000,70.700000,hi +26.100000,70.700000,hi +26.100000,70.800000,hi +26.200000,70.800000,hi +26.200000,70.700000,hi +26.100000,70.600000,hi +26.100000,70.500000,hi +26.200000,70.500000,hi +26.200000,70.600000,hi +26.300000,70.600000,hi +26.300000,70.500000,hi +26.400000,70.500000,hi +26.500000,70.500000,hi +26.500000,70.600000,hi +26.400000,70.600000,hi +26.400000,70.700000,hi +26.500000,70.700000,hi +26.500000,70.800000,hi +26.400000,70.800000,hi +26.300000,70.700000,hi +26.300000,70.800000,hi +26.300000,70.900000,hi +26.300000,71.000000,hi +26.400000,71.000000,hi +26.400000,70.900000,hi +26.500000,70.900000,hi +26.600000,70.900000,hi +26.600000,71.000000,hi +26.500000,71.000000,hi +26.600000,71.100000,hi +26.500000,71.100000,hi +26.400000,71.100000,hi +26.300000,71.100000,hi +26.200000,71.100000,hi +26.100000,71.100000,hi +26.200000,71.000000,hi +26.200000,70.900000,hi +26.100000,70.900000,hi +26.100000,71.000000,hi +26.000000,71.000000,hi +26.000000,70.900000,hi +25.900000,70.900000,hi +25.900000,71.000000,hi +26.000000,71.100000,hi +26.000000,71.200000,hi +26.000000,71.300000,hi +26.100000,71.300000,hi +26.100000,71.200000,hi +26.200000,71.200000,hi +26.200000,71.300000,hi +26.200000,71.400000,hi +26.300000,71.400000,hi +26.300000,71.500000,hi +26.200000,71.500000,hi +26.100000,71.500000,hi +26.100000,71.400000,hi +26.000000,71.400000,hi +26.000000,71.500000,hi +26.000000,71.600000,hi +26.100000,71.600000,hi +26.100000,71.700000,hi +26.000000,71.700000,hi +26.000000,71.800000,hi +26.100000,71.900000,hi +26.100000,71.800000,hi +26.200000,71.800000,hi +26.200000,71.900000,hi +26.300000,71.900000,hi +26.300000,71.800000,hi +26.300000,71.700000,hi +26.200000,71.700000,hi +26.200000,71.600000,hi +26.300000,71.600000,hi +26.400000,71.600000,hi +26.500000,71.600000,hi +26.500000,71.700000,hi +26.400000,71.700000,hi +26.400000,71.800000,hi +26.400000,71.900000,hi +26.500000,71.900000,hi +26.500000,71.800000,hi +26.600000,71.800000,hi +26.600000,71.900000,hi +26.700000,71.900000,hi +26.700000,71.800000,hi +26.700000,71.700000,hi +26.600000,71.700000,hi +26.600000,71.600000,hi +26.600000,71.500000,hi +26.600000,71.400000,hi +26.500000,71.400000,hi +26.500000,71.500000,hi +26.400000,71.500000,hi +26.400000,71.400000,hi +26.400000,71.300000,hi +26.300000,71.300000,hi +26.300000,71.200000,hi +26.400000,71.200000,hi +26.500000,71.200000,hi +26.500000,71.300000,hi +26.600000,71.300000,hi +26.600000,71.200000,hi +26.700000,71.200000,hi +26.700000,71.300000,hi +26.800000,71.300000,hi +26.800000,71.200000,hi +26.900000,71.200000,hi +27.000000,71.200000,hi +27.000000,71.300000,hi +26.900000,71.300000,hi +26.900000,71.400000,hi +27.000000,71.400000,hi +27.000000,71.500000,hi +26.900000,71.500000,hi +26.800000,71.500000,hi +26.800000,71.400000,hi +26.700000,71.400000,hi +26.700000,71.500000,hi +26.700000,71.600000,hi +26.800000,71.600000,hi +26.800000,71.700000,hi +26.800000,71.800000,hi +26.800000,71.900000,hi +26.900000,71.900000,hi +26.900000,71.800000,hi +27.000000,71.900000,hi +27.100000,71.900000,hi +27.000000,71.800000,hi +27.000000,71.700000,hi +26.900000,71.700000,hi +26.900000,71.600000,hi +27.000000,71.600000,hi +27.100000,71.600000,hi +27.200000,71.600000,hi +27.200000,71.700000,hi +27.100000,71.700000,hi +27.100000,71.800000,hi +27.200000,71.900000,hi +27.200000,71.800000,hi +27.300000,71.800000,hi +27.300000,71.900000,hi +27.400000,71.900000,hi +27.400000,71.800000,hi +27.400000,71.700000,hi +27.300000,71.700000,hi +27.300000,71.600000,hi +27.400000,71.600000,hi +27.400000,71.500000,hi +27.300000,71.400000,hi +27.300000,71.500000,hi +27.200000,71.500000,hi +27.100000,71.500000,hi +27.100000,71.400000,hi +27.200000,71.400000,hi +27.200000,71.300000,hi +27.100000,71.300000,hi +27.100000,71.200000,hi +27.200000,71.200000,hi +27.300000,71.300000,hi +27.300000,71.200000,hi +27.300000,71.100000,hi +27.200000,71.100000,hi +27.300000,71.000000,hi +27.300000,70.900000,hi +27.200000,70.900000,hi +27.200000,71.000000,hi +27.100000,71.000000,hi +27.100000,70.900000,hi +27.000000,70.900000,hi +27.000000,71.000000,hi +27.100000,71.100000,hi +27.000000,71.100000,hi +26.900000,71.100000,hi +26.800000,71.100000,hi +26.700000,71.100000,hi +26.700000,71.000000,hi +26.700000,70.900000,hi +26.800000,70.900000,hi +26.800000,71.000000,hi +26.900000,71.000000,hi +26.900000,70.900000,hi +26.900000,70.800000,hi +26.900000,70.700000,hi +26.800000,70.700000,hi +26.800000,70.800000,hi +26.700000,70.800000,hi +26.600000,70.800000,hi +26.600000,70.700000,hi +26.700000,70.700000,hi +26.700000,70.600000,hi +26.600000,70.600000,hi +26.600000,70.500000,hi +26.700000,70.500000,hi +26.800000,70.500000,hi +26.800000,70.600000,hi +26.900000,70.600000,hi +26.900000,70.500000,hi +27.000000,70.500000,hi +27.100000,70.600000,hi +27.000000,70.600000,hi +27.000000,70.700000,hi +27.000000,70.800000,hi +27.100000,70.800000,hi +27.100000,70.700000,hi +27.200000,70.700000,hi +27.200000,70.800000,hi +27.300000,70.800000,hi +27.300000,70.700000,hi +27.200000,70.600000,hi +27.100000,70.500000,hi +27.200000,70.500000,hi +27.200000,70.400000,hi +27.200000,70.300000,hi +27.100000,70.300000,hi +27.100000,70.400000,hi +27.000000,70.400000,hi +26.900000,70.400000,hi +26.900000,70.300000,hi +27.000000,70.300000,hi +27.000000,70.200000,hi +26.900000,70.200000,hi +26.900000,70.100000,hi +27.000000,70.100000,hi +27.100000,70.100000,hi +27.100000,70.200000,hi +27.200000,70.200000,hi +27.200000,70.100000,hi +27.100000,70.000000,hi +27.100000,69.900000,en +27.100000,69.800000,en +27.100000,69.700000,en +27.000000,69.700000,en +27.000000,69.800000,en +26.900000,69.800000,en +26.900000,69.700000,hi +26.800000,69.700000,hi +26.900000,69.900000,en +27.000000,69.900000,en +27.000000,70.000000,hi +26.900000,70.000000,hi +26.800000,70.000000,hi +26.700000,70.000000,hi +26.700000,69.900000,hi +26.800000,69.900000,hi +26.800000,69.800000,en +26.700000,69.700000,en +26.700000,69.800000,en +26.600000,69.800000,en +26.600000,69.900000,hi +26.600000,70.000000,hi +26.600000,70.200000,hi +26.600000,70.100000,hi +26.700000,70.100000,hi +26.800000,70.100000,hi +26.800000,70.200000,hi +26.700000,70.200000,hi +26.800000,70.300000,hi +26.800000,70.400000,hi +26.700000,70.400000,hi +26.700000,70.300000,hi +26.600000,70.300000,hi +26.600000,70.400000,hi +26.500000,70.400000,hi +26.400000,70.400000,hi +26.400000,70.300000,hi +26.500000,70.300000,hi +26.500000,70.200000,hi +26.400000,70.200000,hi +26.300000,70.200000,hi +26.200000,70.200000,hi +26.200000,70.300000,hi +26.300000,70.300000,hi +26.300000,70.400000,hi +26.200000,70.400000,hi +26.100000,70.400000,hi +26.100000,70.300000,hi +26.000000,70.300000,hi +26.000000,70.400000,hi +25.900000,70.400000,hi +25.800000,70.300000,hi +25.900000,70.300000,hi +25.900000,70.200000,hi +25.800000,70.200000,hi +26.000000,70.100000,hi +26.000000,70.200000,hi +26.100000,70.200000,hi +26.100000,70.100000,hi +26.700000,69.600000,en +26.800000,69.500000,en +26.800000,69.600000,en +26.900000,69.600000,hi +26.900000,69.500000,en +27.000000,69.600000,hi +27.100000,69.600000,hi +24.200000,68.800000,en +24.300000,68.800000,en +24.300000,68.900000,en +24.200000,68.900000,en +24.200000,69.000000,en +24.200000,69.100000,en +24.200000,69.200000,en +24.300000,69.600000,en +25.700000,70.300000,hi +25.800000,70.400000,hi +25.700000,70.400000,hi +24.300000,70.400000,en +24.300000,70.300000,en +24.200000,70.300000,en +24.200000,70.400000,en +24.100000,70.400000,hi +24.000000,70.400000,hi +24.000000,70.300000,hi +24.100000,70.300000,hi +24.100000,70.200000,hi +24.000000,70.200000,hi +24.000000,70.100000,hi +24.100000,70.100000,hi +24.200000,70.100000,en +24.200000,70.200000,en +24.300000,70.200000,en +24.300000,70.100000,en +24.200000,69.700000,en +24.100000,69.700000,hi +24.100000,69.800000,hi +24.000000,69.800000,hi +24.000000,69.700000,hi +23.900000,69.700000,hi +24.000000,69.900000,hi +24.100000,69.900000,hi +24.100000,70.000000,hi +24.000000,70.000000,hi +23.900000,70.000000,hi +23.800000,70.000000,hi +23.800000,69.900000,hi +23.900000,69.900000,hi +23.900000,69.800000,hi +23.800000,69.700000,hi +23.800000,69.800000,hi +23.700000,69.800000,hi +23.700000,69.700000,hi +23.600000,69.700000,hi +23.600000,69.800000,hi +23.600000,69.900000,hi +23.700000,69.900000,hi +23.700000,70.000000,hi +23.600000,70.000000,hi +23.600000,70.100000,hi +23.600000,70.200000,hi +23.700000,70.200000,hi +23.700000,70.100000,hi +23.800000,70.100000,hi +23.900000,70.100000,hi +23.900000,70.200000,hi +23.800000,70.200000,hi +23.800000,70.300000,hi +23.900000,70.300000,hi +23.900000,70.400000,hi +23.800000,70.400000,hi +23.700000,70.300000,hi +23.700000,70.400000,hi +23.600000,70.400000,hi +23.500000,70.400000,hi +23.500000,70.300000,hi +23.600000,70.300000,hi +23.500000,70.100000,hi +23.500000,70.200000,hi +23.400000,70.200000,hi +23.400000,70.100000,hi +23.300000,70.100000,hi +23.300000,70.200000,hi +23.300000,70.300000,hi +23.400000,70.300000,hi +23.400000,70.400000,hi +23.300000,70.400000,hi +23.200000,70.400000,hi +23.200000,70.300000,hi +23.100000,70.300000,hi +23.100000,70.400000,hi +23.000000,70.400000,hi +22.900000,70.400000,hi +22.900000,70.300000,hi +23.000000,70.300000,hi +23.000000,70.200000,hi +22.900000,70.200000,hi +22.900000,70.100000,hi +23.000000,70.100000,hi +23.100000,70.100000,hi +23.100000,70.200000,hi +23.200000,70.200000,hi +23.200000,70.100000,hi +23.200000,70.000000,hi +23.100000,69.900000,hi +23.100000,70.000000,hi +23.000000,70.000000,hi +22.900000,70.000000,hi +22.900000,69.900000,hi +23.000000,69.900000,hi +22.900000,69.800000,hi +22.900000,69.700000,hi +23.000000,69.700000,hi +23.000000,69.800000,hi +23.100000,69.800000,hi +23.100000,69.700000,hi +23.200000,69.700000,hi +23.300000,69.700000,hi +23.300000,69.800000,hi +23.200000,69.800000,hi +23.200000,69.900000,hi +23.300000,70.000000,hi +23.300000,69.900000,hi +23.400000,69.900000,hi +23.400000,70.000000,hi +23.500000,70.000000,hi +23.500000,69.900000,hi +23.500000,69.800000,hi +23.400000,69.800000,hi +23.400000,69.700000,hi +23.500000,69.700000,hi +23.500000,69.600000,hi +23.400000,69.600000,hi +23.400000,69.500000,hi +23.500000,69.500000,hi +23.400000,69.400000,hi +23.400000,69.300000,hi +23.300000,69.300000,hi +23.300000,69.400000,hi +23.200000,69.300000,hi +23.200000,69.400000,hi +23.200000,69.500000,hi +23.300000,69.500000,hi +23.300000,69.600000,hi +23.200000,69.600000,hi +23.100000,69.600000,hi +23.100000,69.500000,hi +23.000000,69.500000,hi +23.000000,69.600000,hi +22.900000,69.600000,hi +22.800000,69.600000,hi +22.800000,69.500000,hi +22.900000,69.500000,hi +22.900000,69.400000,hi +22.800000,69.400000,hi +22.800000,69.300000,hi +22.900000,69.300000,hi +23.000000,69.300000,hi +23.000000,69.400000,hi +23.100000,69.400000,hi +23.100000,69.300000,hi +23.000000,69.100000,hi +23.000000,69.200000,hi +22.900000,69.200000,hi +22.800000,69.200000,hi +22.800000,69.100000,hi +22.900000,69.100000,hi +22.800000,69.000000,hi +22.900000,69.000000,hi +23.000000,69.000000,hi +23.100000,69.000000,hi +23.200000,69.000000,hi +23.100000,69.100000,hi +23.100000,69.200000,hi +23.200000,69.200000,hi +23.200000,69.100000,hi +23.300000,69.100000,hi +23.300000,69.200000,hi +23.400000,69.200000,hi +23.400000,69.100000,hi +23.300000,69.000000,hi +23.400000,69.000000,hi +23.500000,69.000000,hi +23.600000,69.000000,hi +23.700000,69.000000,hi +23.700000,69.100000,hi +23.800000,69.100000,hi +23.800000,69.200000,hi +23.700000,69.200000,hi +23.600000,69.200000,hi +23.600000,69.100000,hi +23.500000,69.100000,hi +23.500000,69.200000,hi +23.500000,69.300000,hi +23.600000,69.300000,hi +23.600000,69.400000,hi +23.500000,69.400000,hi +23.600000,69.600000,hi +23.600000,69.500000,hi +23.700000,69.500000,hi +23.700000,69.600000,hi +23.800000,69.600000,hi +23.800000,69.500000,hi +23.800000,69.400000,hi +23.700000,69.400000,hi +23.700000,69.300000,hi +23.800000,69.300000,hi +23.900000,69.300000,hi +24.000000,69.300000,hi +24.000000,69.400000,hi +23.900000,69.400000,hi +23.900000,69.500000,hi +23.900000,69.600000,hi +24.000000,69.600000,hi +24.000000,69.500000,hi +24.100000,69.500000,hi +24.100000,69.600000,hi +24.200000,69.600000,en +24.200000,69.500000,en +24.200000,69.400000,en +24.100000,69.400000,hi +24.100000,69.300000,hi +24.200000,69.300000,en +24.100000,69.200000,hi +24.100000,69.100000,hi +24.000000,69.100000,hi +24.000000,69.200000,hi +23.900000,69.200000,hi +23.900000,69.100000,hi +23.800000,69.000000,hi +23.900000,69.000000,hi +24.000000,69.000000,hi +24.100000,69.000000,hi +24.100000,68.900000,hi +24.000000,68.900000,hi +24.000000,68.800000,hi +24.100000,68.800000,hi +23.900000,68.700000,hi +23.900000,68.600000,hi +23.800000,68.600000,hi +23.800000,68.700000,hi +23.800000,68.800000,hi +23.900000,68.800000,hi +23.900000,68.900000,hi +23.800000,68.900000,hi +23.700000,68.900000,hi +23.700000,68.800000,hi +23.600000,68.800000,hi +23.600000,68.900000,hi +23.500000,68.900000,hi +23.500000,68.800000,hi +23.500000,68.700000,hi +23.400000,68.700000,hi +23.400000,68.600000,hi +23.500000,68.600000,hi +23.600000,68.600000,hi +23.600000,68.700000,hi +23.700000,68.700000,hi +23.700000,68.600000,hi +23.700000,68.500000,hi +23.700000,68.400000,hi +23.600000,68.400000,hi +23.600000,68.500000,hi +23.500000,68.500000,hi +23.400000,68.500000,hi +23.400000,68.400000,hi +23.500000,68.400000,hi +23.500000,68.300000,hi +23.400000,68.300000,hi +23.500000,68.200000,hi +23.600000,68.300000,hi +23.600000,68.200000,hi +23.700000,68.200000,hi +23.800000,68.200000,hi +23.800000,68.300000,hi +23.700000,68.300000,hi +23.800000,68.400000,hi +23.800000,68.500000,hi +23.900000,68.500000,hi +23.900000,68.400000,hi +23.900000,68.300000,hi +23.300000,68.400000,hi +23.300000,68.500000,hi +23.200000,68.500000,hi +23.100000,68.600000,hi +23.100000,68.700000,hi +23.200000,68.700000,hi +23.200000,68.600000,hi +23.300000,68.600000,hi +23.300000,68.700000,hi +23.300000,68.800000,hi +23.400000,68.800000,hi +23.400000,68.900000,hi +23.300000,68.900000,hi +23.200000,68.900000,hi +23.200000,68.800000,hi +23.100000,68.800000,hi +23.100000,68.900000,hi +23.000000,68.900000,hi +22.900000,68.900000,hi +23.000000,68.800000,hi +23.000000,68.700000,hi +22.700000,68.900000,hi +22.600000,68.900000,hi +22.500000,68.800000,hi +22.600000,68.800000,hi +22.400000,68.800000,hi +22.500000,68.900000,hi +22.400000,68.900000,hi +22.300000,68.900000,hi +22.300000,68.800000,hi +22.200000,68.800000,hi +22.200000,68.900000,hi +22.100000,68.900000,hi +22.000000,68.900000,hi +21.900000,68.900000,hi +21.600000,69.200000,hi +21.400000,69.400000,hi +21.400000,69.500000,hi +21.400000,69.600000,hi +21.500000,69.600000,hi +21.500000,69.500000,hi +21.600000,69.600000,hi +21.600000,69.500000,hi +21.600000,69.400000,hi +21.500000,69.400000,hi +21.500000,69.300000,hi +21.600000,69.300000,gu +21.700000,69.300000,hi +21.800000,69.300000,hi +21.800000,69.400000,hi +21.700000,69.400000,hi +21.700000,69.500000,hi +21.700000,69.600000,hi +21.800000,69.600000,hi +21.800000,69.500000,hi +21.900000,69.500000,hi +21.900000,69.600000,gu +22.000000,69.600000,gu +22.000000,69.500000,gu +22.000000,69.400000,hi +21.900000,69.400000,hi +21.900000,69.300000,hi +22.000000,69.300000,hi +22.000000,69.200000,hi +21.900000,69.100000,hi +21.900000,69.200000,hi +21.800000,69.200000,hi +21.700000,69.200000,hi +21.700000,69.100000,hi +21.800000,69.100000,hi +21.800000,69.000000,hi +21.900000,69.000000,hi +22.000000,69.000000,hi +22.100000,69.000000,hi +22.000000,69.100000,hi +22.100000,69.200000,hi +22.100000,69.100000,hi +22.200000,69.100000,hi +22.200000,69.200000,hi +22.300000,69.200000,hi +22.300000,69.100000,hi +22.200000,69.000000,hi +22.300000,69.000000,hi +22.400000,69.000000,hi +22.500000,69.000000,hi +22.600000,69.000000,hi +22.700000,69.000000,hi +22.600000,69.100000,hi +22.700000,69.100000,hi +22.700000,69.200000,hi +22.600000,69.200000,hi +22.500000,69.200000,hi +22.500000,69.100000,hi +22.400000,69.100000,hi +22.400000,69.200000,hi +22.400000,69.300000,hi +22.400000,69.400000,hi +22.500000,69.400000,hi +22.500000,69.300000,hi +22.600000,69.300000,hi +22.700000,69.300000,hi +22.700000,69.400000,hi +22.600000,69.400000,hi +22.600000,69.500000,hi +22.700000,69.500000,hi +22.700000,69.600000,hi +22.600000,69.600000,hi +22.500000,69.500000,hi +22.500000,69.600000,hi +22.400000,69.600000,hi +22.300000,69.600000,hi +22.300000,69.500000,hi +22.400000,69.500000,hi +22.300000,69.300000,hi +22.300000,69.400000,hi +22.200000,69.400000,hi +22.200000,69.300000,hi +22.100000,69.300000,hi +22.100000,69.400000,hi +22.100000,69.500000,gu +22.200000,69.500000,hi +22.200000,69.600000,hi +22.100000,69.600000,hi +22.100000,69.700000,hi +22.200000,69.700000,hi +22.200000,69.800000,hi +22.100000,69.800000,hi +22.100000,69.900000,hi +22.200000,70.000000,hi +22.200000,69.900000,hi +22.300000,69.900000,hi +22.300000,70.000000,hi +22.400000,70.000000,hi +22.400000,69.900000,hi +22.400000,69.800000,hi +22.300000,69.800000,hi +22.300000,69.700000,hi +22.400000,69.700000,hi +22.500000,69.700000,hi +22.500000,69.800000,hi +22.600000,69.800000,hi +22.600000,69.700000,hi +22.700000,69.700000,hi +22.800000,69.700000,hi +22.800000,69.800000,hi +22.700000,69.800000,hi +22.700000,69.900000,hi +22.800000,69.900000,hi +22.800000,70.000000,hi +22.700000,70.000000,hi +22.600000,70.000000,hi +22.600000,69.900000,hi +22.500000,69.900000,hi +22.500000,70.000000,hi +22.500000,70.100000,hi +22.600000,70.200000,hi +22.600000,70.100000,hi +22.700000,70.100000,hi +22.800000,70.100000,hi +22.800000,70.200000,hi +22.700000,70.200000,hi +22.700000,70.300000,hi +22.800000,70.300000,hi +22.800000,70.400000,hi +22.700000,70.400000,hi +22.600000,70.300000,hi +22.600000,70.400000,hi +22.500000,70.400000,hi +22.400000,70.400000,hi +22.400000,70.300000,hi +22.500000,70.300000,hi +22.500000,70.200000,hi +22.400000,70.100000,hi +22.400000,70.200000,hi +22.300000,70.200000,hi +22.300000,70.100000,hi +22.200000,70.100000,hi +22.200000,70.200000,hi +22.200000,70.300000,hi +22.300000,70.300000,hi +22.300000,70.400000,hi +22.200000,70.400000,hi +22.100000,70.400000,hi +22.100000,70.300000,gu +22.000000,70.300000,gu +22.000000,70.400000,hi +21.900000,70.400000,hi +21.800000,70.400000,hi +21.800000,70.300000,hi +21.900000,70.300000,hi +21.900000,70.200000,hi +21.800000,70.200000,hi +21.800000,70.100000,hi +21.900000,70.100000,hi +22.000000,70.100000,gu +22.000000,70.200000,gu +22.100000,70.200000,hi +22.100000,70.100000,hi +22.100000,70.000000,hi +22.000000,70.000000,gu +22.000000,69.900000,gu +22.000000,69.800000,gu +22.000000,69.700000,hi +21.900000,69.700000,gu +21.900000,69.800000,gu +21.800000,69.700000,hi +21.800000,69.800000,hi +21.800000,69.900000,gu +21.900000,69.900000,gu +21.900000,70.000000,hi +21.800000,70.000000,gu +21.700000,70.000000,gu +21.600000,70.000000,gu +21.600000,69.900000,gu +21.700000,69.900000,gu +21.700000,69.800000,hi +21.700000,69.700000,hi +21.600000,69.700000,hi +21.600000,69.800000,hi +21.500000,69.800000,hi +21.500000,69.700000,hi +21.400000,69.700000,hi +21.400000,69.800000,hi +21.400000,69.900000,gu +21.500000,69.900000,hi +21.500000,70.000000,gu +21.400000,70.000000,gu +21.400000,70.100000,gu +21.500000,70.200000,hi +21.500000,70.100000,hi +21.600000,70.100000,gu +21.700000,70.100000,gu +21.700000,70.200000,hi +21.600000,70.200000,gu +21.700000,70.300000,hi +21.700000,70.400000,hi +21.600000,70.400000,hi +21.600000,70.300000,hi +21.500000,70.300000,hi +21.500000,70.400000,hi +21.500000,70.500000,hi +21.600000,70.500000,hi +21.600000,70.600000,hi +21.500000,70.600000,hi +21.500000,70.700000,hi +21.500000,70.800000,hi +21.600000,70.800000,hi +21.600000,70.700000,hi +21.700000,70.700000,hi +21.700000,70.800000,hi +21.800000,70.800000,hi +21.800000,70.700000,hi +21.800000,70.600000,hi +21.700000,70.600000,hi +21.700000,70.500000,hi +21.800000,70.500000,hi +21.900000,70.500000,hi +21.900000,70.600000,hi +22.000000,70.600000,hi +22.000000,70.500000,hi +22.100000,70.500000,hi +22.100000,70.600000,hi +22.100000,70.700000,hi +22.200000,70.800000,hi +22.100000,70.800000,hi +22.000000,70.800000,hi +22.000000,70.700000,hi +21.900000,70.700000,hi +21.900000,70.800000,hi +21.900000,70.900000,hi +21.900000,71.000000,hi +22.000000,71.000000,hi +22.000000,70.900000,hi +22.100000,70.900000,hi +22.200000,70.900000,hi +22.200000,71.000000,hi +22.100000,71.000000,hi +22.200000,71.100000,hi +22.100000,71.100000,gu +22.000000,71.100000,gu +21.900000,71.100000,gu +21.800000,71.100000,gu +21.700000,71.100000,gu +21.800000,71.000000,gu +21.800000,70.900000,hi +21.700000,70.900000,gu +21.700000,71.000000,gu +21.600000,71.000000,gu +21.600000,70.900000,gu +21.500000,70.900000,gu +21.600000,71.100000,gu +21.600000,71.200000,gu +21.600000,71.300000,gu +21.700000,71.300000,gu +21.700000,71.200000,gu +21.800000,71.200000,gu +21.900000,71.300000,gu +21.800000,71.300000,gu +21.800000,71.400000,gu +21.900000,71.400000,gu +21.900000,71.500000,gu +21.800000,71.500000,hi +21.700000,71.500000,gu +21.700000,71.400000,gu +21.600000,71.400000,gu +21.600000,71.500000,gu +21.600000,71.600000,gu +21.700000,71.600000,gu +21.700000,71.700000,gu +21.600000,71.700000,gu +21.600000,71.800000,gu +21.700000,71.900000,hi +21.700000,71.800000,gu +21.800000,71.800000,gu +21.800000,71.900000,hi +21.900000,71.900000,hi +21.900000,71.800000,gu +21.900000,71.700000,gu +21.800000,71.700000,gu +21.800000,71.600000,gu +21.900000,71.600000,gu +22.000000,71.600000,gu +22.100000,71.600000,gu +22.100000,71.700000,gu +22.000000,71.700000,gu +22.000000,71.800000,gu +22.000000,71.900000,hi +22.100000,71.900000,gu +22.100000,71.800000,gu +22.200000,71.800000,gu +22.200000,71.900000,gu +22.300000,71.900000,gu +22.300000,71.800000,gu +22.300000,71.700000,gu +22.200000,71.700000,gu +22.200000,71.600000,gu +22.300000,71.600000,gu +22.200000,71.400000,gu +22.100000,71.400000,gu +22.200000,71.500000,gu +22.100000,71.500000,gu +22.000000,71.500000,gu +22.000000,71.400000,gu +22.000000,71.300000,gu +21.900000,71.200000,gu +22.000000,71.200000,gu +22.100000,71.200000,gu +22.100000,71.300000,gu +22.200000,71.300000,gu +22.200000,71.200000,hi +22.300000,71.200000,hi +22.300000,71.300000,hi +22.400000,71.300000,hi +22.400000,71.200000,hi +22.500000,71.200000,hi +22.600000,71.200000,hi +22.600000,71.300000,gu +22.500000,71.300000,hi +22.500000,71.400000,gu +22.600000,71.400000,hi +22.600000,71.500000,hi +22.500000,71.500000,gu +22.400000,71.500000,gu +22.400000,71.400000,gu +22.300000,71.400000,gu +22.300000,71.500000,gu +22.400000,71.600000,gu +22.500000,71.700000,gu +22.400000,71.700000,gu +22.400000,71.800000,gu +22.400000,71.900000,gu +22.500000,71.900000,gu +22.500000,71.800000,gu +22.600000,71.800000,hi +22.600000,71.900000,gu +22.700000,71.900000,gu +22.600000,71.700000,hi +22.500000,71.600000,gu +22.600000,71.600000,hi +22.700000,71.600000,hi +22.800000,71.600000,hi +22.800000,71.700000,hi +22.700000,71.700000,hi +22.700000,71.800000,hi +22.800000,71.900000,gu +22.800000,71.800000,hi +22.900000,71.800000,hi +22.900000,71.900000,hi +23.000000,71.900000,hi +23.000000,71.800000,hi +23.000000,71.700000,hi +22.900000,71.700000,hi +22.900000,71.600000,hi +23.000000,71.600000,hi +23.000000,71.500000,hi +23.000000,71.400000,hi +22.900000,71.400000,hi +22.900000,71.500000,hi +22.800000,71.500000,hi +22.700000,71.500000,hi +22.700000,71.400000,hi +22.800000,71.400000,hi +22.800000,71.300000,gu +22.700000,71.300000,gu +22.700000,71.200000,gu +22.800000,71.200000,gu +22.900000,71.200000,gu +22.900000,71.300000,gu +23.000000,71.300000,hi +22.900000,71.100000,hi +22.800000,71.100000,hi +22.900000,71.000000,hi +22.900000,70.900000,hi +22.800000,70.900000,hi +22.800000,71.000000,hi +22.700000,71.000000,hi +22.700000,70.900000,hi +22.600000,70.900000,hi +22.700000,71.100000,hi +22.600000,71.100000,hi +22.500000,71.100000,hi +22.400000,71.100000,hi +22.300000,71.100000,hi +22.400000,71.000000,hi +22.300000,71.000000,hi +22.300000,70.900000,hi +22.400000,70.900000,hi +22.500000,71.000000,hi +22.600000,71.000000,hi +22.500000,70.900000,hi +22.500000,70.800000,hi +22.500000,70.700000,hi +22.400000,70.700000,hi +22.400000,70.800000,hi +22.300000,70.800000,hi +22.200000,70.700000,hi +22.300000,70.700000,hi +22.300000,70.600000,hi +22.200000,70.600000,hi +22.200000,70.500000,hi +22.300000,70.500000,hi +22.400000,70.500000,hi +22.400000,70.600000,hi +22.500000,70.600000,hi +22.500000,70.500000,hi +22.600000,70.500000,gu +22.700000,70.500000,gu +22.700000,70.600000,hi +22.600000,70.600000,hi +22.600000,70.700000,hi +22.600000,70.800000,hi +22.700000,70.800000,hi +22.700000,70.700000,hi +22.800000,70.700000,hi +22.800000,70.800000,hi +22.900000,70.800000,hi +22.900000,70.700000,hi +22.900000,70.600000,hi +22.800000,70.600000,hi +22.800000,70.500000,hi +22.900000,70.500000,hi +23.000000,70.600000,hi +23.100000,70.600000,hi +23.000000,70.500000,hi +23.100000,70.500000,hi +23.200000,70.500000,hi +23.200000,70.600000,hi +23.200000,70.700000,hi +23.300000,70.800000,hi +23.200000,70.800000,hi +23.100000,70.800000,hi +23.100000,70.700000,hi +23.000000,70.700000,hi +23.000000,70.800000,hi +23.000000,70.900000,hi +23.100000,70.900000,hi +23.100000,71.000000,hi +23.000000,71.000000,hi +23.000000,71.100000,hi +23.100000,71.100000,hi +23.200000,71.100000,hi +23.300000,71.100000,gu +23.300000,71.000000,hi +23.200000,71.000000,hi +23.200000,70.900000,hi +23.300000,70.900000,hi +23.400000,70.900000,hi +23.500000,70.900000,hi +23.500000,71.000000,hi +23.400000,71.000000,hi +23.400000,71.100000,hi +23.500000,71.100000,hi +23.600000,71.100000,hi +23.700000,71.100000,hi +23.700000,71.000000,hi +23.600000,71.000000,hi +23.600000,70.900000,hi +23.600000,70.800000,hi +23.600000,70.700000,hi +23.500000,70.700000,hi +23.500000,70.800000,hi +23.400000,70.800000,hi +23.300000,70.700000,hi +23.400000,70.700000,hi +23.400000,70.600000,hi +23.300000,70.600000,hi +23.300000,70.500000,hi +23.400000,70.500000,hi +23.500000,70.500000,hi +23.500000,70.600000,hi +23.600000,70.600000,hi +23.600000,70.500000,gu +23.700000,70.500000,hi +23.800000,70.500000,hi +23.800000,70.600000,hi +23.700000,70.600000,hi +23.700000,70.700000,hi +23.700000,70.800000,hi +23.800000,70.800000,hi +23.800000,70.700000,gu +23.900000,70.700000,hi +23.900000,70.800000,hi +24.000000,70.800000,gu +24.000000,70.700000,gu +24.000000,70.600000,gu +23.900000,70.600000,hi +23.900000,70.500000,hi +24.000000,70.500000,gu +24.100000,70.600000,en +24.100000,70.500000,en +24.200000,70.500000,en +24.300000,70.500000,en +24.200000,70.600000,hi +24.200000,70.800000,en +24.200000,70.700000,hi +24.100000,70.700000,en +24.100000,70.800000,en +24.100000,70.900000,en +24.100000,71.000000,hi +24.200000,71.000000,hi +24.200000,70.900000,en +24.300000,70.900000,en +24.300000,71.000000,hi +24.400000,71.100000,hi +24.300000,71.100000,hi +24.200000,71.100000,hi +24.100000,71.100000,hi +24.000000,71.100000,hi +23.900000,71.100000,hi +24.000000,71.000000,hi +24.000000,70.900000,gu +23.900000,70.900000,gu +23.900000,71.000000,hi +23.800000,71.000000,hi +23.800000,70.900000,hi +23.700000,70.900000,hi +23.800000,71.100000,hi +23.800000,71.200000,hi +23.900000,71.200000,hi +23.900000,71.300000,hi +23.800000,71.300000,hi +23.800000,71.400000,hi +23.800000,71.500000,gu +23.900000,71.500000,gu +23.900000,71.400000,hi +24.000000,71.400000,hi +24.000000,71.500000,gu +24.100000,71.500000,gu +24.100000,71.400000,gu +24.100000,71.300000,gu +24.000000,71.300000,hi +24.000000,71.200000,hi +24.100000,71.200000,hi +24.200000,71.300000,gu +24.200000,71.200000,hi +24.300000,71.200000,gu +24.400000,71.200000,gu +24.400000,71.300000,gu +24.300000,71.300000,gu +24.400000,71.400000,gu +24.400000,71.500000,gu +24.300000,71.500000,gu +24.300000,71.400000,gu +24.200000,71.400000,gu +24.200000,71.500000,gu +24.200000,71.600000,gu +24.200000,71.700000,gu +24.300000,71.700000,gu +24.300000,71.600000,gu +24.400000,71.600000,gu +24.500000,71.600000,gu +24.500000,71.700000,gu +24.400000,71.700000,gu +24.400000,71.800000,gu +24.500000,71.800000,hi +24.500000,71.900000,hi +24.400000,71.900000,hi +24.300000,71.900000,hi +24.300000,71.800000,gu +24.200000,71.800000,gu +24.200000,71.900000,gu +24.100000,71.900000,gu +24.000000,71.900000,hi +24.000000,71.800000,hi +24.100000,71.800000,hi +24.100000,71.700000,gu +24.100000,71.600000,hi +24.000000,71.600000,gu +24.000000,71.700000,gu +23.900000,71.700000,gu +23.900000,71.600000,gu +23.800000,71.600000,hi +23.800000,71.700000,gu +23.800000,71.800000,gu +23.900000,71.800000,hi +23.900000,71.900000,hi +23.800000,71.900000,hi +23.700000,71.800000,hi +23.700000,71.900000,hi +23.600000,71.900000,hi +23.500000,71.900000,hi +23.500000,71.800000,hi +23.600000,71.800000,hi +23.600000,71.700000,gu +23.500000,71.700000,gu +23.500000,71.600000,gu +23.600000,71.600000,gu +23.700000,71.700000,gu +23.700000,71.600000,gu +23.700000,71.500000,gu +23.600000,71.500000,hi +23.600000,71.400000,hi +23.700000,71.400000,gu +23.700000,71.300000,hi +23.700000,71.200000,hi +23.600000,71.200000,hi +23.600000,71.300000,hi +23.500000,71.300000,hi +23.500000,71.200000,hi +23.400000,71.200000,hi +23.400000,71.300000,hi +23.400000,71.400000,hi +23.500000,71.400000,gu +23.500000,71.500000,gu +23.400000,71.500000,gu +23.300000,71.500000,gu +23.300000,71.400000,gu +23.300000,71.300000,gu +23.300000,71.200000,gu +23.200000,71.200000,gu +23.200000,71.300000,hi +23.100000,71.300000,gu +23.100000,71.200000,gu +23.000000,71.200000,hi +23.100000,71.400000,gu +23.200000,71.400000,hi +23.200000,71.500000,hi +23.100000,71.500000,hi +23.100000,71.600000,hi +23.100000,71.700000,hi +23.200000,71.700000,hi +23.200000,71.600000,hi +23.300000,71.600000,hi +23.400000,71.600000,hi +23.400000,71.700000,gu +23.300000,71.700000,hi +23.300000,71.800000,hi +23.400000,71.800000,hi +23.400000,71.900000,hi +23.300000,71.900000,hi +23.200000,71.900000,hi +23.200000,71.800000,hi +23.100000,71.800000,hi +23.100000,71.900000,hi +23.100000,72.000000,hi +23.200000,72.100000,hi +23.200000,72.000000,hi +23.300000,72.000000,hi +23.400000,72.000000,hi +23.400000,72.100000,hi +23.300000,72.100000,hi +23.300000,72.200000,hi +23.400000,72.200000,hi +23.400000,72.300000,hi +23.300000,72.300000,hi +23.200000,72.200000,hi +23.200000,72.300000,hi +23.200000,72.400000,hi +23.300000,72.400000,hi +23.300000,72.500000,hi +23.200000,72.500000,hi +23.200000,72.600000,hi +23.200000,72.700000,hi +23.300000,72.700000,hi +23.300000,72.600000,hi +23.400000,72.600000,hi +23.400000,72.700000,hi +23.500000,72.700000,hi +23.500000,72.600000,hi +23.500000,72.500000,hi +23.400000,72.500000,hi +23.400000,72.400000,hi +23.500000,72.400000,hi +23.600000,72.400000,hi +23.600000,72.500000,hi +23.600000,72.600000,hi +23.600000,72.700000,hi +23.700000,72.700000,hi +23.700000,72.600000,hi +23.800000,72.600000,hi +23.800000,72.700000,hi +23.900000,72.700000,hi +23.800000,72.500000,hi +23.700000,72.500000,hi +23.700000,72.400000,hi +23.800000,72.400000,hi +23.800000,72.300000,hi +23.800000,72.200000,hi +23.700000,72.200000,hi +23.700000,72.300000,hi +23.600000,72.300000,hi +23.500000,72.300000,hi +23.500000,72.200000,hi +23.600000,72.200000,hi +23.600000,72.100000,hi +23.500000,72.100000,hi +23.500000,72.000000,hi +23.600000,72.000000,hi +23.700000,72.000000,hi +23.700000,72.100000,hi +23.800000,72.100000,hi +23.800000,72.000000,hi +23.900000,72.000000,hi +24.000000,72.000000,hi +24.000000,72.100000,hi +23.900000,72.100000,hi +23.900000,72.200000,hi +23.900000,72.300000,hi +24.000000,72.300000,hi +24.000000,72.200000,hi +24.100000,72.200000,hi +24.100000,72.300000,hi +24.200000,72.300000,hi +24.200000,72.200000,hi +24.200000,72.100000,hi +24.100000,72.100000,hi +24.100000,72.000000,hi +24.200000,72.000000,hi +24.300000,72.100000,hi +24.300000,72.000000,hi +24.400000,72.000000,hi +24.500000,72.000000,hi +24.500000,72.100000,hi +24.400000,72.100000,hi +24.400000,72.200000,hi +24.500000,72.200000,hi +24.500000,72.300000,hi +24.400000,72.300000,hi +24.300000,72.200000,hi +24.300000,72.300000,hi +24.300000,72.400000,hi +24.300000,72.500000,hi +24.400000,72.500000,hi +24.400000,72.400000,hi +24.500000,72.400000,hi +24.600000,72.400000,hi +24.600000,72.500000,hi +24.500000,72.500000,hi +24.500000,72.600000,hi +24.600000,72.600000,hi +24.600000,72.700000,hi +24.500000,72.700000,hi +24.400000,72.700000,hi +24.400000,72.600000,hi +24.300000,72.600000,hi +24.300000,72.700000,hi +24.200000,72.700000,hi +24.100000,72.700000,hi +24.100000,72.600000,hi +24.200000,72.600000,hi +24.200000,72.500000,hi +24.200000,72.400000,hi +24.100000,72.400000,hi +24.100000,72.500000,hi +24.000000,72.500000,hi +24.000000,72.400000,hi +23.900000,72.400000,hi +23.900000,72.500000,hi +23.900000,72.600000,hi +24.000000,72.600000,hi +24.000000,72.700000,hi +24.000000,72.800000,hi +24.100000,72.800000,hi +24.000000,72.900000,hi +24.000000,73.000000,hi +24.100000,73.000000,hi +24.100000,72.900000,hi +24.200000,72.900000,hi +24.200000,73.000000,hi +24.300000,73.000000,hi +24.200000,72.800000,hi +24.300000,72.800000,hi +24.400000,72.800000,hi +24.500000,72.800000,hi +24.600000,72.800000,hi +24.500000,72.900000,hi +24.600000,72.900000,hi +24.600000,73.000000,hi +24.500000,73.000000,hi +24.400000,72.900000,hi +24.300000,72.900000,hi +24.400000,73.000000,hi +24.400000,73.100000,hi +24.400000,73.200000,hi +24.500000,73.200000,hi +24.500000,73.100000,hi +24.600000,73.100000,hi +24.700000,73.200000,hi +24.600000,73.200000,hi +24.600000,73.300000,hi +24.700000,73.300000,hi +24.700000,73.400000,hi +24.600000,73.400000,hi +24.500000,73.400000,hi +24.500000,73.300000,hi +24.400000,73.300000,hi +24.400000,73.400000,hi +24.300000,73.400000,hi +24.200000,73.400000,hi +24.200000,73.300000,hi +24.300000,73.300000,hi +24.300000,73.200000,hi +24.300000,73.100000,hi +24.200000,73.100000,hi +24.200000,73.200000,hi +24.100000,73.200000,hi +24.100000,73.100000,hi +24.000000,73.100000,hi +24.000000,73.200000,hi +24.000000,73.300000,hi +24.100000,73.300000,hi +24.100000,73.400000,hi +24.000000,73.400000,hi +23.900000,73.400000,hi +23.900000,73.300000,hi +23.800000,73.300000,hi +23.800000,73.400000,hi +23.700000,73.400000,hi +23.700000,73.300000,hi +23.700000,73.200000,hi +23.600000,73.200000,hi +23.600000,73.100000,hi +23.700000,73.100000,hi +23.800000,73.100000,hi +23.800000,73.200000,hi +23.900000,73.200000,hi +23.900000,73.100000,hi +23.900000,73.000000,hi +23.800000,73.000000,hi +23.800000,72.900000,hi +23.900000,72.900000,hi +23.900000,72.800000,hi +23.800000,72.800000,hi +23.700000,72.800000,hi +23.600000,72.800000,hi +23.600000,72.900000,hi +23.700000,72.900000,hi +23.700000,73.000000,hi +23.600000,73.000000,hi +23.500000,73.000000,hi +23.400000,73.000000,hi +23.400000,72.900000,hi +23.500000,72.900000,hi +23.500000,72.800000,hi +23.400000,72.800000,hi +23.300000,72.800000,hi +23.200000,72.800000,hi +23.200000,72.900000,hi +23.300000,72.900000,hi +23.300000,73.000000,hi +23.300000,73.100000,hi +23.300000,73.200000,hi +23.400000,73.200000,hi +23.400000,73.100000,hi +23.500000,73.100000,hi +23.500000,73.200000,hi +23.500000,73.300000,hi +23.600000,73.300000,hi +23.600000,73.400000,hi +23.500000,73.400000,hi +23.400000,73.400000,hi +23.400000,73.300000,hi +23.300000,73.300000,hi +23.300000,73.400000,hi +23.200000,73.400000,hi +23.100000,73.400000,hi +23.100000,73.300000,hi +23.200000,73.300000,hi +23.200000,73.200000,hi +23.200000,73.100000,hi +23.100000,73.100000,hi +23.100000,73.200000,hi +23.000000,73.200000,hi +23.000000,73.100000,hi +22.900000,73.100000,hi +22.900000,73.200000,hi +22.900000,73.300000,hi +23.000000,73.300000,hi +23.000000,73.400000,hi +22.900000,73.400000,hi +22.800000,73.400000,hi +22.800000,73.300000,hi +22.700000,73.300000,hi +22.700000,73.400000,hi +22.600000,73.400000,hi +22.500000,73.300000,hi +22.600000,73.300000,hi +22.600000,73.200000,hi +22.500000,73.200000,hi +22.500000,73.100000,hi +22.600000,73.100000,hi +22.700000,73.100000,hi +22.700000,73.200000,hi +22.800000,73.200000,hi +22.800000,73.100000,hi +22.800000,73.000000,hi +22.800000,72.900000,hi +22.700000,72.900000,hi +22.700000,73.000000,hi +22.600000,73.000000,hi +22.500000,73.000000,hi +22.500000,72.900000,hi +22.600000,72.900000,hi +22.500000,72.800000,hi +22.600000,72.800000,hi +22.700000,72.800000,hi +22.800000,72.800000,hi +22.900000,72.800000,hi +22.900000,72.900000,hi +22.900000,73.000000,hi +23.000000,73.000000,hi +23.000000,72.900000,hi +23.100000,73.000000,hi +23.200000,73.000000,hi +23.100000,72.900000,hi +23.000000,72.800000,hi +23.100000,72.800000,hi +23.100000,72.700000,hi +23.100000,72.600000,hi +23.000000,72.600000,hi +23.000000,72.700000,hi +22.900000,72.700000,hi +22.800000,72.600000,hi +22.900000,72.600000,hi +22.900000,72.500000,hi +22.800000,72.500000,hi +22.800000,72.400000,hi +22.900000,72.400000,hi +23.000000,72.400000,hi +23.000000,72.500000,hi +23.100000,72.500000,hi +23.100000,72.400000,hi +23.100000,72.300000,hi +23.000000,72.300000,hi +23.000000,72.200000,hi +23.100000,72.200000,hi +23.100000,72.100000,hi +23.000000,72.000000,hi +23.000000,72.100000,hi +22.900000,72.100000,hi +22.900000,72.000000,hi +22.800000,72.000000,gu +22.800000,72.100000,hi +22.800000,72.200000,hi +22.900000,72.200000,hi +22.900000,72.300000,hi +22.800000,72.300000,hi +22.700000,72.300000,hi +22.600000,72.300000,hi +22.600000,72.200000,hi +22.700000,72.200000,hi +22.700000,72.100000,hi +22.700000,72.000000,gu +22.600000,72.000000,hi +22.600000,72.100000,hi +22.500000,72.100000,gu +22.500000,72.000000,gu +22.400000,72.000000,hi +22.400000,72.100000,hi +22.400000,72.200000,hi +22.500000,72.200000,hi +22.500000,72.300000,hi +22.400000,72.300000,hi +22.400000,72.400000,hi +22.500000,72.500000,hi +22.500000,72.400000,hi +22.600000,72.400000,hi +22.700000,72.400000,hi +22.700000,72.500000,hi +22.600000,72.500000,hi +22.700000,72.600000,hi +22.800000,72.700000,hi +22.700000,72.700000,hi +22.600000,72.700000,hi +22.600000,72.600000,hi +22.500000,72.600000,hi +22.500000,72.700000,hi +22.400000,72.700000,hi +22.400000,72.600000,hi +22.300000,72.600000,hi +22.300000,72.700000,hi +22.200000,72.700000,hi +22.100000,72.700000,hi +22.100000,72.600000,hi +22.200000,72.600000,hi +22.200000,72.500000,hi +22.100000,72.500000,hi +22.100000,72.400000,hi +22.200000,72.400000,hi +22.300000,72.400000,hi +22.300000,72.500000,hi +22.400000,72.500000,hi +22.300000,72.300000,hi +22.200000,72.200000,hi +22.300000,72.200000,hi +22.300000,72.100000,gu +22.300000,72.000000,gu +22.200000,72.000000,gu +22.200000,72.100000,gu +22.100000,72.100000,gu +22.100000,72.000000,gu +22.000000,72.000000,hi +22.000000,72.100000,hi +22.100000,72.200000,gu +22.200000,72.300000,hi +22.100000,72.300000,hi +22.000000,72.300000,hi +21.900000,72.300000,hi +21.900000,72.200000,hi +22.000000,72.200000,hi +21.900000,72.000000,hi +21.900000,72.100000,hi +21.800000,72.100000,hi +21.800000,72.000000,hi +21.700000,72.000000,hi +21.700000,72.100000,hi +21.700000,72.200000,hi +21.800000,72.200000,hi +21.800000,72.300000,hi +21.700000,72.300000,hi +21.700000,72.400000,hi +21.700000,72.500000,hi +21.800000,72.500000,hi +21.800000,72.400000,hi +21.900000,72.400000,hi +22.000000,72.400000,hi +22.000000,72.500000,hi +21.900000,72.500000,hi +21.900000,72.600000,hi +22.000000,72.600000,hi +22.000000,72.700000,hi +21.900000,72.700000,hi +21.800000,72.700000,hi +21.800000,72.600000,hi +21.700000,72.600000,hi +21.700000,72.700000,hi +21.800000,72.800000,hi +21.800000,72.900000,hi +21.800000,73.000000,hi +21.900000,73.000000,hi +21.900000,72.900000,hi +22.000000,73.000000,hi +22.000000,72.900000,hi +21.900000,72.800000,hi +22.000000,72.800000,hi +22.100000,72.800000,hi +22.200000,72.800000,hi +22.300000,72.800000,hi +22.400000,72.800000,hi +22.300000,72.900000,hi +22.400000,72.900000,hi +22.400000,73.000000,hi +22.300000,73.000000,hi +22.200000,73.000000,hi +22.200000,72.900000,hi +22.100000,72.900000,hi +22.100000,73.000000,hi +22.200000,73.200000,hi +22.300000,73.200000,hi +22.200000,73.100000,hi +22.300000,73.100000,hi +22.400000,73.100000,hi +22.400000,73.200000,hi +22.400000,73.300000,hi +22.500000,73.400000,hi +22.400000,73.400000,hi +22.300000,73.400000,hi +22.300000,73.300000,hi +22.200000,73.300000,hi +22.200000,73.400000,hi +22.100000,73.400000,hi +22.000000,73.400000,hi +22.000000,73.300000,hi +22.100000,73.300000,hi +22.100000,73.200000,hi +22.100000,73.100000,hi +22.000000,73.100000,hi +22.000000,73.200000,hi +21.900000,73.200000,hi +21.900000,73.100000,hi +21.800000,73.100000,hi +21.800000,73.200000,hi +21.800000,73.300000,hi +21.900000,73.300000,hi +21.900000,73.400000,hi +21.800000,73.400000,hi +21.800000,73.500000,hi +21.800000,73.600000,hi +21.900000,73.600000,hi +21.900000,73.500000,hi +22.000000,73.500000,hi +22.100000,73.500000,hi +22.100000,73.600000,hi +22.000000,73.600000,hi +22.000000,73.700000,hi +22.100000,73.700000,hi +22.100000,73.800000,hi +22.000000,73.800000,hi +21.900000,73.700000,hi +21.800000,73.700000,hi +21.900000,73.800000,hi +21.900000,73.900000,hi +22.000000,73.900000,hi +22.000000,74.000000,hi +21.900000,74.000000,hi +21.900000,74.100000,hi +21.900000,74.200000,hi +22.000000,74.200000,hi +22.000000,74.100000,hi +22.100000,74.100000,hi +22.100000,74.200000,hi +22.200000,74.200000,hi +22.200000,74.100000,hi +22.100000,74.000000,hi +22.100000,73.900000,hi +22.200000,73.900000,hi +22.300000,73.900000,hi +22.300000,74.000000,hi +22.200000,74.000000,hi +22.300000,74.100000,hi +22.300000,74.200000,hi +22.400000,74.200000,hi +22.400000,74.100000,hi +22.500000,74.200000,hi +22.500000,74.100000,hi +22.500000,74.000000,hi +22.400000,74.000000,hi +22.400000,73.900000,hi +22.500000,73.900000,hi +22.500000,73.800000,hi +22.500000,73.700000,hi +22.400000,73.700000,hi +22.400000,73.800000,hi +22.300000,73.800000,hi +22.200000,73.800000,hi +22.200000,73.700000,hi +22.300000,73.700000,hi +22.300000,73.600000,hi +22.200000,73.600000,hi +22.200000,73.500000,hi +22.300000,73.500000,hi +22.400000,73.500000,hi +22.400000,73.600000,hi +22.500000,73.600000,hi +22.500000,73.500000,hi +22.600000,73.500000,hi +22.700000,73.500000,hi +22.700000,73.600000,hi +22.600000,73.600000,hi +22.600000,73.700000,hi +22.600000,73.800000,hi +22.700000,73.800000,hi +22.700000,73.700000,hi +22.800000,73.700000,hi +22.800000,73.800000,hi +22.900000,73.800000,hi +22.900000,73.700000,hi +22.800000,73.600000,hi +22.800000,73.500000,hi +22.900000,73.500000,hi +22.900000,73.600000,hi +23.000000,73.600000,hi +23.000000,73.500000,hi +23.100000,73.500000,hi +23.200000,73.500000,hi +23.200000,73.600000,hi +23.100000,73.600000,hi +23.100000,73.700000,hi +23.200000,73.700000,hi +23.200000,73.800000,hi +23.100000,73.800000,hi +23.000000,73.700000,hi +23.000000,73.800000,hi +23.000000,73.900000,hi +23.000000,74.000000,hi +23.100000,74.000000,hi +23.100000,73.900000,hi +23.200000,73.900000,hi +23.300000,74.000000,hi +23.200000,74.000000,hi +23.200000,74.100000,hi +23.300000,74.100000,hi +23.300000,74.200000,hi +23.200000,74.200000,hi +23.100000,74.200000,hi +23.100000,74.100000,hi +23.000000,74.100000,hi +23.000000,74.200000,hi +22.900000,74.200000,hi +22.800000,74.200000,hi +22.800000,74.100000,hi +22.900000,74.100000,hi +22.900000,74.000000,hi +22.900000,73.900000,hi +22.800000,73.900000,hi +22.800000,74.000000,hi +22.700000,74.000000,hi +22.700000,73.900000,hi +22.600000,73.900000,gu +22.600000,74.000000,hi +22.600000,74.100000,hi +22.700000,74.100000,hi +22.700000,74.200000,hi +22.600000,74.200000,hi +22.600000,74.300000,hi +22.700000,74.300000,hi +22.700000,74.400000,hi +22.700000,74.500000,hi +22.800000,74.500000,hi +22.900000,74.500000,hi +22.900000,74.400000,hi +22.800000,74.400000,hi +22.800000,74.300000,hi +22.900000,74.300000,hi +23.000000,74.300000,hi +23.000000,74.400000,hi +23.100000,74.400000,hi +23.100000,74.300000,hi +23.200000,74.300000,hi +23.300000,74.300000,hi +23.300000,74.400000,hi +23.200000,74.400000,hi +23.300000,74.500000,hi +23.200000,74.500000,hi +23.100000,74.500000,hi +23.000000,74.500000,hi +23.100000,74.700000,hi +23.100000,74.600000,hi +23.200000,74.600000,hi +23.300000,74.600000,hi +23.300000,74.700000,hi +23.200000,74.700000,hi +23.300000,74.800000,hi +23.400000,74.900000,hi +23.300000,74.900000,hi +23.200000,74.900000,hi +23.200000,74.800000,hi +23.100000,74.800000,hi +23.100000,74.900000,hi +23.000000,74.900000,hi +22.900000,74.900000,hi +22.900000,74.800000,hi +23.000000,74.800000,hi +23.000000,74.700000,hi +23.000000,74.600000,hi +22.900000,74.600000,hi +22.900000,74.700000,hi +22.800000,74.700000,hi +22.800000,74.600000,hi +22.700000,74.600000,hi +22.700000,74.700000,hi +22.700000,74.800000,hi +22.800000,74.800000,hi +22.800000,74.900000,hi +22.700000,74.900000,hi +22.600000,74.900000,hi +22.600000,74.800000,hi +22.500000,74.800000,hi +22.500000,74.900000,hi +22.400000,74.900000,hi +22.300000,74.900000,hi +22.300000,74.800000,hi +22.400000,74.800000,hi +22.400000,74.700000,hi +22.300000,74.700000,hi +22.300000,74.600000,hi +22.400000,74.600000,hi +22.500000,74.600000,hi +22.500000,74.700000,hi +22.600000,74.700000,hi +22.600000,74.600000,hi +22.600000,74.500000,hi +22.500000,74.500000,hi +22.600000,74.400000,hi +22.500000,74.300000,hi +22.500000,74.400000,hi +22.400000,74.400000,hi +22.400000,74.300000,hi +22.300000,74.300000,hi +22.300000,74.400000,hi +22.400000,74.500000,hi +22.300000,74.500000,hi +22.200000,74.500000,hi +22.100000,74.500000,hi +22.200000,74.400000,hi +22.200000,74.300000,hi +22.100000,74.300000,hi +22.100000,74.400000,hi +22.000000,74.400000,hi +22.000000,74.300000,hi +21.900000,74.300000,hi +21.900000,74.400000,hi +22.000000,74.500000,hi +21.900000,74.500000,hi +21.900000,74.600000,hi +21.900000,74.700000,hi +22.000000,74.700000,hi +22.000000,74.600000,hi +22.100000,74.600000,hi +22.200000,74.600000,hi +22.200000,74.700000,hi +22.100000,74.700000,hi +22.100000,74.800000,hi +22.200000,74.800000,hi +22.200000,74.900000,hi +22.100000,74.900000,hi +22.000000,74.800000,hi +22.000000,74.900000,hi +22.000000,75.000000,hi +22.100000,75.000000,hi +22.100000,75.100000,hi +22.000000,75.100000,hi +22.000000,75.200000,hi +22.000000,75.300000,hi +22.100000,75.300000,hi +22.100000,75.200000,hi +22.200000,75.200000,hi +22.200000,75.300000,hi +22.300000,75.300000,hi +22.300000,75.200000,hi +22.300000,75.100000,hi +22.200000,75.100000,hi +22.200000,75.000000,hi +22.300000,75.000000,hi +22.400000,75.100000,hi +22.400000,75.000000,hi +22.500000,75.000000,hi +22.600000,75.000000,hi +22.600000,75.100000,hi +22.500000,75.100000,hi +22.600000,75.200000,hi +22.600000,75.300000,hi +22.500000,75.300000,hi +22.500000,75.200000,hi +22.400000,75.200000,hi +22.400000,75.300000,hi +22.400000,75.400000,hi +22.400000,75.500000,hi +22.500000,75.500000,hi +22.500000,75.400000,hi +22.600000,75.400000,hi +22.700000,75.400000,hi +22.700000,75.500000,hi +22.600000,75.500000,hi +22.600000,75.600000,hi +22.700000,75.600000,hi +22.700000,75.700000,hi +22.600000,75.700000,hi +22.500000,75.700000,hi +22.500000,75.600000,hi +22.400000,75.600000,hi +22.400000,75.700000,hi +22.300000,75.700000,hi +22.200000,75.700000,hi +22.200000,75.600000,hi +22.300000,75.600000,hi +22.300000,75.500000,hi +22.300000,75.400000,hi +22.200000,75.400000,hi +22.200000,75.500000,hi +22.100000,75.500000,hi +22.100000,75.400000,hi +22.000000,75.400000,hi +22.000000,75.500000,hi +22.000000,75.600000,hi +22.100000,75.600000,hi +22.100000,75.700000,hi +22.000000,75.700000,hi +22.000000,75.800000,hi +22.100000,75.800000,hi +22.200000,75.800000,hi +22.300000,75.800000,hi +22.200000,75.900000,hi +22.300000,75.900000,hi +22.300000,76.000000,hi +22.200000,76.000000,hi +22.100000,75.900000,hi +22.100000,76.000000,hi +22.100000,76.100000,hi +22.200000,76.100000,hi +22.200000,76.200000,hi +22.100000,76.200000,hi +22.100000,76.300000,hi +22.100000,76.400000,hi +22.200000,76.400000,hi +22.200000,76.300000,hi +22.300000,76.300000,hi +22.300000,76.400000,hi +22.400000,76.400000,hi +22.400000,76.300000,hi +22.400000,76.200000,hi +22.300000,76.200000,hi +22.300000,76.100000,hi +22.400000,76.100000,hi +22.500000,76.100000,hi +22.500000,76.200000,hi +22.500000,76.300000,hi +22.500000,76.400000,hi +22.600000,76.400000,hi +22.600000,76.300000,hi +22.700000,76.400000,hi +22.700000,76.300000,hi +22.700000,76.200000,hi +22.600000,76.200000,hi +22.600000,76.100000,hi +22.700000,76.100000,hi +22.700000,76.000000,hi +22.700000,75.900000,hi +22.600000,75.900000,hi +22.600000,76.000000,hi +22.500000,76.000000,hi +22.400000,76.000000,hi +22.400000,75.900000,hi +22.500000,75.900000,hi +22.400000,75.800000,hi +22.500000,75.800000,hi +22.600000,75.800000,hi +22.700000,75.800000,hi +22.800000,75.800000,hi +22.900000,75.800000,hi +23.000000,75.800000,hi +23.100000,75.800000,hi +23.000000,75.900000,hi +23.100000,75.900000,hi +23.100000,76.000000,hi +23.000000,76.000000,hi +22.900000,76.000000,hi +22.900000,75.900000,hi +22.800000,75.900000,hi +22.800000,76.000000,hi +22.800000,76.100000,hi +22.900000,76.100000,hi +22.900000,76.200000,hi +22.800000,76.200000,hi +22.800000,76.300000,hi +22.800000,76.400000,hi +22.900000,76.400000,hi +22.900000,76.300000,hi +23.000000,76.300000,hi +23.000000,76.400000,hi +23.100000,76.400000,hi +23.100000,76.300000,hi +23.100000,76.200000,hi +23.000000,76.200000,hi +23.000000,76.100000,hi +23.100000,76.100000,hi +23.200000,76.100000,hi +23.300000,76.100000,hi +23.300000,76.200000,hi +23.200000,76.200000,hi +23.200000,76.300000,hi +23.200000,76.400000,hi +23.300000,76.400000,hi +23.300000,76.300000,hi +23.400000,76.300000,hi +23.400000,76.400000,hi +23.500000,76.400000,hi +23.500000,76.300000,hi +23.500000,76.200000,hi +23.400000,76.200000,hi +23.400000,76.100000,hi +23.500000,76.100000,hi +23.500000,76.000000,hi +23.400000,75.900000,hi +23.400000,76.000000,hi +23.300000,76.000000,hi +23.200000,76.000000,hi +23.200000,75.900000,hi +23.300000,75.900000,hi +23.200000,75.800000,hi +23.300000,75.800000,hi +23.400000,75.800000,hi +23.400000,75.700000,hi +23.300000,75.700000,hi +23.300000,75.600000,hi +23.400000,75.600000,hi +23.400000,75.500000,hi +23.400000,75.400000,hi +23.300000,75.400000,hi +23.300000,75.500000,hi +23.200000,75.500000,hi +23.200000,75.400000,hi +23.100000,75.400000,hi +23.100000,75.500000,hi +23.100000,75.600000,hi +23.200000,75.600000,hi +23.200000,75.700000,hi +23.100000,75.700000,hi +23.000000,75.600000,hi +23.000000,75.700000,hi +22.900000,75.700000,hi +22.800000,75.700000,hi +22.800000,75.600000,hi +22.900000,75.600000,hi +22.900000,75.500000,hi +22.800000,75.500000,hi +22.800000,75.400000,hi +22.900000,75.400000,hi +23.000000,75.500000,hi +23.000000,75.400000,hi +23.000000,75.300000,hi +23.000000,75.200000,hi +22.900000,75.200000,hi +22.900000,75.300000,hi +22.800000,75.300000,hi +22.700000,75.300000,hi +22.700000,75.200000,hi +22.800000,75.200000,hi +22.800000,75.100000,hi +22.700000,75.100000,hi +22.700000,75.000000,hi +22.800000,75.000000,hi +22.900000,75.000000,hi +22.900000,75.100000,hi +23.000000,75.100000,hi +23.000000,75.000000,hi +23.100000,75.000000,hi +23.200000,75.000000,hi +23.200000,75.100000,hi +23.100000,75.100000,hi +23.100000,75.200000,hi +23.100000,75.300000,hi +23.200000,75.300000,hi +23.200000,75.200000,hi +23.300000,75.200000,hi +23.300000,75.300000,hi +23.400000,75.300000,hi +23.400000,75.200000,hi +23.400000,75.100000,hi +23.300000,75.100000,hi +23.300000,75.000000,hi +23.400000,75.000000,hi +23.500000,75.000000,hi +23.600000,75.100000,hi +23.500000,75.100000,hi +23.500000,75.200000,hi +23.500000,75.300000,hi +23.600000,75.300000,hi +23.600000,75.200000,hi +23.700000,75.200000,hi +23.700000,75.300000,hi +23.800000,75.300000,hi +23.800000,75.200000,hi +23.700000,75.100000,hi +23.600000,75.000000,hi +23.700000,75.000000,hi +23.800000,75.000000,hi +23.800000,75.100000,hi +23.900000,75.100000,hi +23.900000,75.000000,hi +24.000000,75.000000,hi +24.100000,75.000000,hi +24.100000,75.100000,hi +24.000000,75.100000,hi +24.000000,75.200000,hi +24.100000,75.200000,hi +24.100000,75.300000,hi +24.000000,75.300000,hi +23.900000,75.200000,hi +23.900000,75.300000,hi +23.900000,75.400000,hi +23.900000,75.500000,hi +24.000000,75.500000,hi +24.000000,75.400000,hi +24.100000,75.400000,hi +24.200000,75.500000,hi +24.100000,75.500000,hi +24.100000,75.600000,hi +24.200000,75.600000,hi +24.200000,75.700000,hi +24.100000,75.700000,hi +24.000000,75.700000,hi +24.000000,75.600000,hi +23.900000,75.600000,hi +23.900000,75.700000,hi +23.800000,75.700000,hi +23.700000,75.700000,hi +23.700000,75.600000,hi +23.800000,75.600000,hi +23.800000,75.500000,hi +23.800000,75.400000,hi +23.700000,75.400000,hi +23.700000,75.500000,hi +23.600000,75.500000,hi +23.600000,75.400000,hi +23.500000,75.400000,hi +23.500000,75.500000,hi +23.500000,75.600000,hi +23.600000,75.600000,hi +23.600000,75.700000,hi +23.500000,75.700000,hi +23.500000,75.800000,hi +23.600000,75.800000,hi +23.700000,75.800000,hi +23.800000,75.800000,hi +23.700000,75.900000,hi +23.800000,75.900000,hi +23.800000,76.000000,hi +23.700000,76.000000,hi +23.600000,76.000000,hi +23.600000,75.900000,hi +23.500000,75.900000,hi +23.600000,76.100000,hi +23.700000,76.100000,hi +23.700000,76.200000,hi +23.600000,76.200000,hi +23.600000,76.300000,hi +23.600000,76.400000,hi +23.700000,76.400000,hi +23.700000,76.300000,hi +23.800000,76.300000,hi +23.800000,76.400000,hi +23.900000,76.400000,hi +23.900000,76.300000,hi +23.800000,76.200000,hi +23.800000,76.100000,hi +23.900000,76.100000,hi +24.000000,76.100000,hi +24.000000,76.200000,hi +23.900000,76.200000,hi +24.000000,76.400000,hi +24.100000,76.400000,hi +24.000000,76.300000,hi +24.100000,76.300000,hi +24.200000,76.400000,hi +24.200000,76.300000,hi +24.200000,76.200000,hi +24.100000,76.200000,hi +24.100000,76.100000,hi +24.200000,76.100000,hi +24.200000,76.000000,hi +24.200000,75.900000,hi +24.100000,75.900000,hi +24.100000,76.000000,hi +24.000000,76.000000,hi +23.900000,76.000000,hi +23.900000,75.900000,hi +24.000000,75.900000,hi +23.900000,75.800000,hi +24.000000,75.800000,hi +24.100000,75.800000,hi +24.200000,75.800000,hi +24.300000,75.800000,hi +24.400000,75.800000,hi +24.500000,75.800000,hi +24.600000,75.800000,hi +24.500000,75.900000,hi +24.600000,75.900000,hi +24.600000,76.000000,hi +24.500000,76.000000,hi +24.400000,76.000000,hi +24.400000,75.900000,hi +24.300000,75.900000,hi +24.300000,76.000000,hi +24.300000,76.100000,hi +24.400000,76.100000,hi +24.400000,76.200000,hi +24.300000,76.200000,hi +24.300000,76.300000,hi +24.300000,76.400000,hi +24.400000,76.400000,hi +24.400000,76.300000,hi +24.500000,76.300000,hi +24.500000,76.400000,hi +24.600000,76.400000,hi +24.600000,76.300000,hi +24.600000,76.200000,hi +24.500000,76.200000,hi +24.500000,76.100000,hi +24.600000,76.100000,hi +24.700000,76.100000,hi +24.800000,76.100000,hi +24.800000,76.200000,hi +24.700000,76.200000,hi +24.700000,76.300000,hi +24.700000,76.400000,hi +24.800000,76.400000,hi +24.800000,76.300000,hi +24.900000,76.300000,hi +24.900000,76.400000,hi +25.000000,76.400000,hi +25.000000,76.300000,hi +25.000000,76.200000,hi +24.900000,76.200000,hi +24.900000,76.100000,hi +25.000000,76.100000,hi +24.900000,75.900000,hi +24.800000,75.900000,hi +24.900000,76.000000,hi +24.800000,76.000000,hi +24.700000,76.000000,hi +24.700000,75.900000,hi +24.700000,75.800000,hi +24.800000,75.800000,hi +24.900000,75.800000,hi +24.900000,75.700000,hi +24.800000,75.700000,hi +24.800000,75.600000,hi +24.900000,75.600000,hi +24.900000,75.500000,hi +24.900000,75.400000,hi +24.800000,75.400000,hi +24.800000,75.500000,hi +24.700000,75.500000,hi +24.700000,75.400000,hi +24.600000,75.400000,hi +24.600000,75.500000,hi +24.600000,75.600000,hi +24.700000,75.600000,hi +24.700000,75.700000,hi +24.600000,75.700000,hi +24.500000,75.600000,hi +24.400000,75.600000,hi +24.500000,75.700000,hi +24.400000,75.700000,hi +24.300000,75.700000,hi +24.300000,75.600000,hi +24.300000,75.500000,hi +24.200000,75.400000,hi +24.300000,75.400000,hi +24.400000,75.400000,hi +24.400000,75.500000,hi +24.500000,75.500000,hi +24.500000,75.400000,hi +24.500000,75.300000,hi +24.500000,75.200000,hi +24.400000,75.200000,hi +24.400000,75.300000,hi +24.300000,75.300000,hi +24.200000,75.300000,hi +24.200000,75.200000,hi +24.300000,75.200000,hi +24.300000,75.100000,hi +24.200000,75.100000,hi +24.200000,75.000000,hi +24.300000,75.000000,hi +24.400000,75.000000,hi +24.400000,75.100000,hi +24.500000,75.100000,hi +24.500000,75.000000,hi +24.600000,75.000000,hi +24.700000,75.000000,hi +24.700000,75.100000,hi +24.600000,75.100000,hi +24.600000,75.200000,hi +24.600000,75.300000,hi +24.700000,75.300000,hi +24.700000,75.200000,hi +24.800000,75.200000,hi +24.800000,75.300000,hi +24.900000,75.300000,hi +24.900000,75.200000,hi +24.900000,75.100000,hi +24.800000,75.100000,hi +24.800000,75.000000,hi +24.800000,74.900000,hi +24.800000,74.800000,hi +24.700000,74.800000,hi +24.700000,74.900000,hi +24.600000,74.900000,hi +24.600000,74.800000,hi +24.600000,74.700000,hi +24.500000,74.700000,hi +24.500000,74.600000,hi +24.600000,74.600000,hi +24.700000,74.600000,hi +24.700000,74.700000,hi +24.800000,74.700000,hi +24.800000,74.600000,hi +24.800000,74.500000,hi +24.700000,74.500000,hi +24.800000,74.400000,hi +24.800000,74.300000,hi +24.700000,74.300000,hi +24.700000,74.400000,hi +24.600000,74.400000,hi +24.600000,74.300000,hi +24.500000,74.300000,hi +24.500000,74.400000,hi +24.600000,74.500000,hi +24.500000,74.500000,hi +24.400000,74.500000,hi +24.300000,74.500000,hi +24.400000,74.400000,hi +24.400000,74.300000,hi +24.300000,74.300000,hi +24.300000,74.400000,hi +24.200000,74.400000,hi +24.200000,74.300000,hi +24.100000,74.300000,hi +24.100000,74.400000,hi +24.200000,74.500000,hi +24.200000,74.600000,hi +24.200000,74.700000,hi +24.300000,74.700000,hi +24.300000,74.600000,hi +24.400000,74.600000,hi +24.400000,74.700000,hi +24.400000,74.800000,hi +24.500000,74.800000,hi +24.500000,74.900000,hi +24.400000,74.900000,hi +24.300000,74.900000,hi +24.300000,74.800000,hi +24.200000,74.800000,hi +24.200000,74.900000,hi +24.100000,74.900000,hi +24.000000,74.900000,hi +24.000000,74.800000,hi +24.100000,74.800000,hi +24.100000,74.700000,hi +24.100000,74.600000,hi +24.000000,74.600000,hi +24.000000,74.700000,hi +23.900000,74.700000,hi +23.900000,74.600000,hi +23.800000,74.600000,hi +23.800000,74.700000,hi +23.800000,74.800000,hi +23.900000,74.800000,hi +23.900000,74.900000,hi +23.800000,74.900000,hi +23.700000,74.900000,hi +23.700000,74.800000,hi +23.600000,74.800000,hi +23.600000,74.900000,hi +23.500000,74.900000,hi +23.400000,74.800000,hi +23.500000,74.800000,hi +23.500000,74.700000,hi +23.400000,74.700000,hi +23.400000,74.600000,hi +23.500000,74.600000,hi +23.600000,74.600000,hi +23.600000,74.700000,hi +23.700000,74.700000,hi +23.700000,74.600000,hi +23.700000,74.500000,hi +23.600000,74.500000,hi +23.500000,74.500000,hi +23.400000,74.500000,hi +23.500000,74.400000,hi +23.400000,74.400000,hi +23.400000,74.300000,hi +23.500000,74.300000,hi +23.600000,74.300000,hi +23.600000,74.400000,hi +23.700000,74.400000,hi +23.700000,74.300000,hi +23.800000,74.300000,hi +23.900000,74.400000,hi +23.800000,74.400000,hi +23.800000,74.500000,hi +23.900000,74.500000,hi +24.000000,74.500000,hi +24.100000,74.500000,hi +24.000000,74.400000,hi +23.900000,74.300000,hi +24.000000,74.300000,hi +24.000000,74.200000,hi +23.900000,74.200000,hi +23.900000,74.100000,hi +24.000000,74.100000,hi +24.000000,74.000000,hi +24.000000,73.900000,hi +23.900000,73.900000,hi +23.900000,74.000000,hi +23.800000,74.000000,hi +23.800000,73.900000,hi +23.700000,73.900000,hi +23.700000,74.000000,hi +23.700000,74.100000,hi +23.800000,74.100000,hi +23.800000,74.200000,hi +23.700000,74.200000,hi +23.600000,74.100000,hi +23.600000,74.200000,hi +23.500000,74.200000,hi +23.400000,74.200000,hi +23.400000,74.100000,hi +23.500000,74.100000,hi +23.400000,74.000000,hi +23.300000,73.900000,hi +23.400000,73.900000,hi +23.500000,73.900000,hi +23.500000,74.000000,hi +23.600000,74.000000,hi +23.600000,73.900000,hi +23.600000,73.800000,hi +23.600000,73.700000,hi +23.500000,73.700000,hi +23.500000,73.800000,hi +23.400000,73.800000,hi +23.300000,73.800000,hi +23.300000,73.700000,hi +23.400000,73.700000,hi +23.400000,73.600000,hi +23.300000,73.600000,hi +23.300000,73.500000,hi +23.400000,73.500000,hi +23.500000,73.500000,hi +23.500000,73.600000,hi +23.600000,73.600000,hi +23.600000,73.500000,hi +23.700000,73.500000,hi +23.800000,73.500000,hi +23.800000,73.600000,hi +23.700000,73.600000,hi +23.700000,73.700000,hi +23.700000,73.800000,hi +23.800000,73.800000,hi +23.800000,73.700000,hi +23.900000,73.700000,hi +23.900000,73.800000,hi +24.000000,73.800000,hi +24.000000,73.700000,hi +24.000000,73.600000,hi +23.900000,73.600000,hi +23.900000,73.500000,hi +24.000000,73.500000,hi +24.100000,73.600000,hi +24.100000,73.500000,hi +24.200000,73.500000,hi +24.300000,73.500000,hi +24.300000,73.600000,hi +24.200000,73.600000,hi +24.300000,73.700000,hi +24.300000,73.800000,hi +24.200000,73.800000,hi +24.200000,73.700000,hi +24.100000,73.700000,hi +24.100000,73.800000,hi +24.100000,73.900000,hi +24.200000,73.900000,hi +24.200000,74.000000,hi +24.100000,74.000000,hi +24.100000,74.100000,hi +24.100000,74.200000,hi +24.200000,74.200000,hi +24.200000,74.100000,hi +24.300000,74.100000,hi +24.300000,74.200000,hi +24.400000,74.200000,hi +24.400000,74.100000,hi +24.400000,74.000000,hi +24.300000,74.000000,hi +24.300000,73.900000,hi +24.400000,73.900000,hi +24.500000,73.900000,hi +24.600000,74.000000,hi +24.500000,74.000000,hi +24.500000,74.100000,hi +24.500000,74.200000,hi +24.600000,74.200000,hi +24.600000,74.100000,hi +24.700000,74.100000,hi +24.700000,74.200000,hi +24.800000,74.200000,hi +24.800000,74.100000,hi +24.700000,74.000000,hi +24.600000,73.900000,hi +24.700000,73.900000,hi +24.700000,73.800000,hi +24.700000,73.700000,hi +24.600000,73.700000,hi +24.600000,73.800000,hi +24.500000,73.800000,hi +24.400000,73.800000,hi +24.400000,73.700000,hi +24.500000,73.700000,hi +24.500000,73.600000,hi +24.400000,73.600000,hi +24.400000,73.500000,hi +24.500000,73.500000,hi +24.600000,73.500000,hi +24.600000,73.600000,hi +24.700000,73.600000,hi +24.700000,73.500000,hi +24.800000,73.500000,hi +24.900000,73.500000,hi +24.900000,73.600000,hi +24.800000,73.600000,hi +24.800000,73.700000,hi +24.800000,73.800000,hi +24.900000,73.800000,hi +24.900000,73.700000,hi +25.000000,73.700000,hi +25.000000,73.800000,hi +25.100000,73.800000,hi +25.100000,73.700000,hi +25.100000,73.600000,hi +25.000000,73.600000,hi +25.000000,73.500000,hi +25.100000,73.500000,hi +25.200000,73.600000,hi +25.200000,73.500000,hi +25.300000,73.500000,hi +25.400000,73.500000,hi +25.400000,73.600000,hi +25.300000,73.600000,hi +25.400000,73.700000,hi +25.500000,73.800000,hi +25.400000,73.800000,hi +25.300000,73.800000,hi +25.300000,73.700000,hi +25.200000,73.700000,hi +25.200000,73.800000,hi +25.200000,73.900000,hi +25.200000,74.000000,hi +25.300000,74.000000,hi +25.300000,73.900000,hi +25.400000,73.900000,hi +25.500000,73.900000,hi +25.500000,74.000000,hi +25.400000,74.000000,hi +25.400000,74.100000,hi +25.500000,74.100000,hi +25.500000,74.200000,hi +25.400000,74.200000,hi +25.300000,74.200000,hi +25.300000,74.100000,hi +25.200000,74.100000,hi +25.200000,74.200000,hi +25.100000,74.200000,hi +25.000000,74.200000,hi +25.000000,74.100000,hi +25.100000,74.100000,hi +25.100000,74.000000,hi +25.100000,73.900000,hi +25.000000,73.900000,hi +25.000000,74.000000,hi +24.900000,74.000000,hi +24.900000,73.900000,hi +24.800000,73.900000,hi +24.800000,74.000000,hi +24.900000,74.100000,hi +24.900000,74.200000,hi +24.900000,74.300000,hi +24.900000,74.400000,hi +25.000000,74.400000,hi +25.000000,74.300000,hi +25.100000,74.300000,hi +25.200000,74.400000,hi +25.100000,74.400000,hi +25.200000,74.500000,hi +25.100000,74.500000,hi +25.000000,74.500000,hi +24.900000,74.500000,hi +24.900000,74.600000,hi +25.000000,74.600000,hi +25.000000,74.700000,hi +24.900000,74.700000,hi +24.900000,74.800000,hi +24.900000,74.900000,hi +25.000000,74.900000,hi +25.000000,74.800000,hi +25.100000,74.800000,hi +25.100000,74.900000,hi +25.200000,74.900000,hi +25.200000,74.800000,hi +25.200000,74.700000,hi +25.100000,74.700000,hi +25.100000,74.600000,hi +25.200000,74.600000,hi +25.300000,74.600000,hi +25.400000,74.600000,hi +25.400000,74.700000,hi +25.300000,74.700000,hi +25.300000,74.800000,hi +25.300000,74.900000,hi +25.400000,74.900000,hi +25.400000,74.800000,hi +25.500000,74.800000,hi +25.500000,74.900000,hi +25.600000,74.900000,hi +25.600000,74.800000,hi +25.600000,74.700000,hi +25.500000,74.700000,hi +25.500000,74.600000,hi +25.500000,74.500000,hi +25.400000,74.500000,hi +25.300000,74.500000,hi +25.300000,74.400000,hi +25.200000,74.300000,hi +25.300000,74.300000,hi +25.400000,74.300000,hi +25.400000,74.400000,hi +25.500000,74.400000,hi +25.500000,74.300000,hi +25.600000,74.300000,hi +25.600000,74.400000,hi +25.700000,74.400000,hi +25.700000,74.300000,hi +25.800000,74.300000,hi +25.900000,74.300000,hi +25.900000,74.400000,hi +25.800000,74.400000,hi +25.900000,74.500000,hi +25.800000,74.500000,hi +25.700000,74.500000,hi +25.600000,74.500000,hi +25.600000,74.600000,hi +25.700000,74.600000,hi +25.700000,74.700000,hi +25.700000,74.800000,hi +25.700000,74.900000,hi +25.800000,74.900000,hi +25.800000,74.800000,hi +25.900000,74.900000,hi +25.900000,74.800000,hi +25.900000,74.700000,hi +25.800000,74.700000,hi +25.800000,74.600000,hi +25.900000,74.600000,hi +26.000000,74.600000,hi +26.100000,74.600000,hi +26.100000,74.700000,hi +26.000000,74.700000,hi +26.000000,74.800000,hi +26.000000,74.900000,hi +26.100000,74.900000,hi +26.100000,74.800000,hi +26.200000,74.800000,hi +26.200000,74.900000,hi +26.300000,74.900000,hi +26.300000,74.800000,hi +26.300000,74.700000,hi +26.200000,74.700000,hi +26.200000,74.600000,hi +26.300000,74.600000,hi +26.300000,74.500000,hi +26.200000,74.500000,hi +26.100000,74.500000,hi +26.000000,74.500000,hi +26.100000,74.400000,hi +26.000000,74.400000,hi +26.000000,74.300000,hi +26.100000,74.300000,hi +26.200000,74.300000,hi +26.200000,74.400000,hi +26.300000,74.400000,hi +26.200000,74.200000,hi +26.100000,74.100000,hi +26.200000,74.100000,hi +26.200000,74.000000,hi +26.200000,73.900000,hi +26.100000,73.900000,hi +26.100000,74.000000,hi +26.000000,74.000000,hi +26.000000,73.900000,hi +25.900000,73.900000,hi +25.900000,74.000000,hi +26.000000,74.100000,hi +26.100000,74.200000,hi +26.000000,74.200000,hi +25.900000,74.200000,hi +25.900000,74.100000,hi +25.800000,74.100000,hi +25.800000,74.200000,hi +25.700000,74.200000,hi +25.600000,74.200000,hi +25.600000,74.100000,hi +25.700000,74.100000,hi +25.700000,74.000000,hi +25.600000,74.000000,hi +25.600000,73.900000,hi +25.700000,73.900000,hi +25.800000,74.000000,hi +25.800000,73.900000,hi +25.800000,73.800000,hi +25.800000,73.700000,hi +25.700000,73.700000,hi +25.700000,73.800000,hi +25.600000,73.800000,hi +25.500000,73.700000,hi +25.600000,73.700000,hi +25.600000,73.600000,hi +25.500000,73.600000,hi +25.500000,73.500000,hi +25.600000,73.500000,hi +25.700000,73.500000,hi +25.700000,73.600000,hi +25.800000,73.600000,hi +25.800000,73.500000,hi +25.900000,73.500000,hi +26.000000,73.500000,hi +26.000000,73.600000,hi +25.900000,73.600000,hi +25.900000,73.700000,hi +25.900000,73.800000,hi +26.000000,73.800000,hi +26.000000,73.700000,hi +26.100000,73.700000,hi +26.100000,73.800000,hi +26.200000,73.800000,hi +26.200000,73.700000,hi +26.200000,73.600000,hi +26.100000,73.600000,hi +26.100000,73.500000,hi +26.200000,73.500000,hi +26.300000,73.600000,hi +26.400000,73.600000,hi +26.300000,73.500000,hi +26.400000,73.500000,hi +26.500000,73.500000,hi +26.500000,73.600000,hi +26.500000,73.700000,hi +26.600000,73.800000,hi +26.500000,73.800000,hi +26.400000,73.800000,hi +26.400000,73.700000,hi +26.300000,73.700000,hi +26.300000,73.800000,hi +26.300000,73.900000,hi +26.400000,73.900000,hi +26.400000,74.000000,hi +26.300000,74.000000,hi +26.300000,74.100000,hi +26.300000,74.200000,hi +26.400000,74.200000,hi +26.400000,74.100000,hi +26.500000,74.100000,hi +26.500000,74.200000,hi +26.600000,74.200000,hi +26.600000,74.100000,hi +26.600000,74.000000,hi +26.500000,74.000000,hi +26.500000,73.900000,hi +26.600000,73.900000,hi +26.700000,73.900000,hi +26.800000,73.900000,hi +26.800000,74.000000,hi +26.700000,74.000000,hi +26.700000,74.100000,hi +26.700000,74.200000,hi +26.800000,74.200000,hi +26.800000,74.100000,hi +26.900000,74.100000,hi +26.900000,74.200000,hi +27.000000,74.200000,hi +27.000000,74.100000,hi +26.900000,74.000000,hi +26.900000,73.900000,hi +26.900000,73.800000,hi +26.900000,73.700000,hi +26.800000,73.700000,hi +26.800000,73.800000,hi +26.700000,73.800000,hi +26.600000,73.700000,hi +26.700000,73.700000,hi +26.700000,73.600000,hi +26.600000,73.600000,hi +26.600000,73.500000,hi +26.700000,73.500000,hi +26.800000,73.500000,hi +26.800000,73.600000,hi +26.900000,73.600000,hi +26.900000,73.500000,hi +27.000000,73.500000,hi +27.100000,73.500000,hi +27.100000,73.600000,hi +27.000000,73.600000,hi +27.000000,73.700000,hi +27.000000,73.800000,hi +27.100000,73.800000,hi +27.100000,73.700000,hi +27.200000,73.700000,hi +27.200000,73.800000,hi +27.300000,73.800000,hi +27.300000,73.700000,hi +27.300000,73.600000,hi +27.200000,73.600000,hi +27.200000,73.500000,hi +27.300000,73.500000,hi +27.400000,73.600000,hi +27.500000,73.600000,hi +27.400000,73.500000,hi +27.500000,73.500000,hi +27.600000,73.500000,hi +27.600000,73.600000,hi +27.600000,73.700000,hi +27.700000,73.800000,hi +27.600000,73.800000,hi +27.500000,73.800000,hi +27.500000,73.700000,hi +27.400000,73.700000,hi +27.400000,73.800000,hi +27.400000,73.900000,hi +27.400000,74.000000,hi +27.500000,74.000000,hi +27.500000,73.900000,hi +27.600000,73.900000,hi +27.700000,73.900000,hi +27.700000,74.000000,hi +27.600000,74.000000,hi +27.600000,74.100000,hi +27.700000,74.100000,hi +27.700000,74.200000,hi +27.600000,74.200000,hi +27.500000,74.200000,hi +27.500000,74.100000,hi +27.400000,74.100000,hi +27.400000,74.200000,hi +27.300000,74.200000,hi +27.200000,74.100000,hi +27.300000,74.100000,hi +27.300000,74.000000,hi +27.300000,73.900000,hi +27.200000,73.900000,hi +27.200000,74.000000,hi +27.100000,74.000000,hi +27.100000,73.900000,hi +27.000000,73.900000,hi +27.000000,74.000000,hi +27.100000,74.100000,hi +27.200000,74.200000,hi +27.100000,74.200000,hi +27.100000,74.300000,hi +27.200000,74.300000,hi +27.200000,74.400000,hi +27.100000,74.400000,hi +27.100000,74.500000,hi +27.200000,74.500000,hi +27.300000,74.500000,hi +27.400000,74.500000,hi +27.400000,74.400000,hi +27.300000,74.400000,hi +27.300000,74.300000,hi +27.400000,74.300000,hi +27.500000,74.400000,hi +27.500000,74.300000,hi +27.600000,74.300000,hi +27.700000,74.300000,hi +27.700000,74.400000,hi +27.600000,74.400000,hi +27.700000,74.500000,hi +27.600000,74.500000,hi +27.500000,74.500000,hi +27.500000,74.600000,hi +27.500000,74.700000,hi +27.600000,74.700000,hi +27.600000,74.600000,hi +27.700000,74.600000,hi +27.800000,74.700000,hi +27.700000,74.700000,hi +27.700000,74.800000,hi +27.800000,74.800000,hi +27.800000,74.900000,hi +27.700000,74.900000,hi +27.600000,74.900000,hi +27.600000,74.800000,hi +27.500000,74.800000,hi +27.500000,74.900000,hi +27.400000,74.900000,hi +27.300000,74.900000,hi +27.300000,74.800000,hi +27.400000,74.800000,hi +27.400000,74.700000,hi +27.400000,74.600000,hi +27.300000,74.600000,hi +27.300000,74.700000,hi +27.200000,74.700000,hi +27.200000,74.600000,hi +27.100000,74.600000,hi +27.100000,74.700000,hi +27.100000,74.800000,hi +27.200000,74.800000,hi +27.200000,74.900000,hi +27.100000,74.900000,hi +27.000000,74.800000,hi +27.000000,74.900000,hi +26.900000,74.900000,hi +26.800000,74.900000,hi +26.800000,74.800000,hi +26.900000,74.800000,hi +26.800000,74.700000,hi +26.700000,74.600000,hi +26.800000,74.600000,hi +26.900000,74.600000,hi +26.900000,74.700000,hi +27.000000,74.700000,hi +27.000000,74.600000,hi +27.000000,74.500000,hi +26.900000,74.500000,hi +27.000000,74.400000,hi +27.000000,74.300000,hi +26.900000,74.300000,hi +26.900000,74.400000,hi +26.800000,74.400000,hi +26.800000,74.300000,hi +26.700000,74.300000,hi +26.700000,74.400000,hi +26.800000,74.500000,hi +26.700000,74.500000,hi +26.600000,74.500000,hi +26.600000,74.400000,hi +26.600000,74.300000,hi +26.500000,74.300000,hi +26.500000,74.400000,hi +26.400000,74.300000,hi +26.300000,74.300000,hi +26.400000,74.400000,hi +26.500000,74.500000,hi +26.400000,74.500000,hi +26.400000,74.600000,hi +26.400000,74.700000,hi +26.500000,74.700000,hi +26.500000,74.600000,hi +26.600000,74.600000,hi +26.700000,74.700000,hi +26.600000,74.700000,hi +26.600000,74.800000,hi +26.700000,74.800000,hi +26.700000,74.900000,hi +26.600000,74.900000,hi +26.500000,74.900000,hi +26.500000,74.800000,hi +26.400000,74.800000,hi +26.400000,74.900000,hi +26.400000,75.000000,hi +26.400000,75.100000,hi +26.500000,75.100000,hi +26.500000,75.000000,hi +26.600000,75.000000,hi +26.700000,75.000000,hi +26.700000,75.100000,hi +26.600000,75.100000,hi +26.600000,75.200000,hi +26.700000,75.200000,hi +26.700000,75.300000,hi +26.600000,75.300000,hi +26.500000,75.300000,hi +26.500000,75.200000,hi +26.400000,75.200000,hi +26.500000,75.400000,hi +26.600000,75.400000,hi +26.600000,75.500000,hi +26.500000,75.500000,hi +26.500000,75.600000,hi +26.500000,75.700000,hi +26.600000,75.700000,hi +26.600000,75.600000,hi +26.700000,75.600000,hi +26.700000,75.700000,hi +26.800000,75.700000,hi +26.800000,75.600000,hi +26.700000,75.500000,hi +26.700000,75.400000,hi +26.800000,75.400000,hi +26.900000,75.400000,hi +26.900000,75.500000,hi +26.800000,75.500000,hi +26.900000,75.700000,hi +27.000000,75.700000,hi +26.900000,75.600000,hi +27.000000,75.600000,hi +27.100000,75.700000,hi +27.100000,75.600000,hi +27.100000,75.500000,hi +27.000000,75.500000,hi +27.000000,75.400000,hi +27.100000,75.400000,hi +27.100000,75.300000,hi +27.100000,75.200000,hi +27.000000,75.200000,hi +27.000000,75.300000,hi +26.900000,75.300000,hi +26.800000,75.300000,hi +26.800000,75.200000,hi +26.900000,75.200000,hi +26.900000,75.100000,hi +26.800000,75.100000,hi +26.800000,75.000000,hi +26.900000,75.000000,hi +27.000000,75.000000,hi +27.000000,75.100000,hi +27.100000,75.100000,hi +27.100000,75.000000,hi +27.200000,75.000000,hi +27.300000,75.100000,hi +27.200000,75.100000,hi +27.200000,75.200000,hi +27.200000,75.300000,hi +27.300000,75.300000,hi +27.300000,75.200000,hi +27.400000,75.200000,hi +27.400000,75.300000,hi +27.500000,75.300000,hi +27.500000,75.200000,hi +27.400000,75.100000,hi +27.300000,75.000000,hi +27.400000,75.000000,hi +27.500000,75.000000,hi +27.500000,75.100000,hi +27.600000,75.100000,hi +27.600000,75.000000,hi +27.700000,75.000000,hi +27.800000,75.000000,hi +27.800000,75.100000,hi +27.700000,75.100000,hi +27.700000,75.200000,hi +27.800000,75.200000,hi +27.800000,75.300000,hi +27.700000,75.300000,hi +27.600000,75.200000,hi +27.600000,75.300000,hi +27.600000,75.400000,hi +27.600000,75.500000,hi +27.700000,75.500000,hi +27.700000,75.400000,hi +27.800000,75.400000,hi +27.800000,75.500000,hi +27.800000,75.600000,hi +27.900000,75.600000,hi +27.900000,75.700000,hi +27.800000,75.700000,hi +27.700000,75.700000,hi +27.700000,75.600000,hi +27.600000,75.600000,hi +27.600000,75.700000,hi +27.500000,75.700000,hi +27.400000,75.700000,hi +27.400000,75.600000,hi +27.500000,75.600000,hi +27.500000,75.500000,hi +27.500000,75.400000,hi +27.400000,75.400000,hi +27.400000,75.500000,hi +27.300000,75.500000,hi +27.300000,75.400000,hi +27.200000,75.400000,hi +27.200000,75.500000,hi +27.200000,75.600000,hi +27.300000,75.600000,hi +27.300000,75.700000,hi +27.200000,75.700000,hi +27.200000,75.800000,hi +27.300000,75.800000,hi +27.300000,76.000000,hi +27.400000,76.000000,hi +27.300000,75.900000,hi +27.400000,75.900000,hi +27.500000,76.000000,hi +27.500000,75.900000,hi +27.400000,75.800000,hi +27.500000,75.800000,hi +27.600000,75.800000,hi +27.700000,75.800000,hi +27.800000,75.800000,hi +27.900000,75.800000,hi +27.800000,75.900000,hi +27.900000,75.900000,hi +27.900000,76.000000,hi +27.800000,76.000000,hi +27.700000,76.000000,hi +27.700000,75.900000,hi +27.600000,75.900000,hi +27.600000,76.000000,hi +27.600000,76.100000,hi +27.700000,76.200000,hi +27.700000,76.100000,hi +27.800000,76.100000,hi +27.900000,76.100000,hi +27.900000,76.200000,hi +27.800000,76.200000,hi +27.800000,76.300000,hi +27.900000,76.300000,hi +27.900000,76.400000,hi +27.800000,76.400000,hi +27.700000,76.300000,hi +27.700000,76.400000,hi +27.600000,76.400000,hi +27.500000,76.400000,hi +27.500000,76.300000,hi +27.600000,76.300000,hi +27.600000,76.200000,hi +27.500000,76.100000,hi +27.500000,76.200000,hi +27.400000,76.200000,hi +27.400000,76.100000,hi +27.300000,76.100000,hi +27.300000,76.200000,hi +27.300000,76.300000,hi +27.400000,76.300000,hi +27.400000,76.400000,hi +27.300000,76.400000,hi +27.200000,76.400000,hi +27.200000,76.300000,hi +27.100000,76.300000,hi +27.100000,76.400000,hi +27.000000,76.400000,hi +26.900000,76.400000,hi +26.900000,76.300000,hi +27.000000,76.300000,hi +27.000000,76.200000,hi +26.900000,76.200000,hi +26.900000,76.100000,hi +27.000000,76.100000,hi +27.100000,76.100000,hi +27.100000,76.200000,hi +27.200000,76.200000,hi +27.200000,76.100000,hi +27.200000,76.000000,hi +27.100000,76.000000,hi +27.100000,75.900000,hi +27.200000,75.900000,hi +27.100000,75.800000,hi +27.000000,75.800000,hi +26.900000,75.800000,hi +26.900000,75.900000,hi +27.000000,75.900000,hi +27.000000,76.000000,hi +26.900000,76.000000,hi +26.800000,76.000000,hi +26.700000,76.000000,hi +26.700000,75.900000,hi +26.800000,75.900000,hi +26.800000,75.800000,hi +26.700000,75.800000,hi +26.600000,75.800000,hi +26.500000,75.800000,hi +26.500000,75.900000,hi +26.600000,75.900000,hi +26.600000,76.000000,hi +26.500000,76.000000,hi +26.500000,76.100000,hi +26.500000,76.200000,hi +26.600000,76.200000,hi +26.600000,76.100000,hi +26.700000,76.100000,hi +26.800000,76.100000,hi +26.800000,76.200000,hi +26.700000,76.200000,hi +26.700000,76.300000,hi +26.800000,76.300000,hi +26.800000,76.400000,hi +26.700000,76.400000,hi +26.600000,76.300000,hi +26.600000,76.400000,hi +26.500000,76.400000,hi +26.400000,76.400000,hi +26.400000,76.300000,hi +26.500000,76.300000,hi +26.400000,76.100000,hi +26.400000,76.200000,hi +26.300000,76.200000,hi +26.300000,76.100000,hi +26.200000,76.100000,hi +26.200000,76.200000,hi +26.200000,76.300000,hi +26.300000,76.300000,hi +26.300000,76.400000,hi +26.200000,76.400000,hi +26.100000,76.400000,hi +26.100000,76.300000,hi +26.000000,76.300000,hi +26.000000,76.400000,hi +25.900000,76.400000,hi +25.800000,76.400000,hi +25.800000,76.300000,hi +25.900000,76.300000,hi +25.900000,76.200000,hi +25.800000,76.200000,hi +25.800000,76.100000,hi +25.900000,76.100000,hi +26.000000,76.100000,hi +26.000000,76.200000,hi +26.100000,76.200000,hi +26.100000,76.100000,hi +26.100000,76.000000,hi +26.000000,75.900000,hi +26.000000,76.000000,hi +25.900000,76.000000,hi +25.800000,76.000000,hi +25.800000,75.900000,hi +25.900000,75.900000,hi +25.800000,75.800000,hi +25.900000,75.800000,hi +26.000000,75.800000,hi +26.100000,75.800000,hi +26.200000,75.800000,hi +26.100000,75.900000,hi +26.200000,76.000000,hi +26.200000,75.900000,hi +26.300000,75.900000,hi +26.300000,76.000000,hi +26.400000,76.000000,hi +26.400000,75.900000,hi +26.300000,75.800000,hi +26.400000,75.800000,hi +26.400000,75.700000,hi +26.400000,75.600000,hi +26.300000,75.600000,hi +26.300000,75.700000,hi +26.200000,75.700000,hi +26.100000,75.700000,hi +26.100000,75.600000,hi +26.200000,75.600000,hi +26.200000,75.500000,hi +26.100000,75.500000,hi +26.100000,75.400000,hi +26.200000,75.400000,hi +26.300000,75.400000,hi +26.300000,75.500000,hi +26.400000,75.500000,hi +26.400000,75.400000,hi +26.400000,75.300000,hi +26.300000,75.300000,hi +26.300000,75.200000,hi +26.300000,75.100000,hi +26.300000,75.000000,hi +26.200000,75.000000,hi +26.200000,75.100000,hi +26.100000,75.000000,hi +26.100000,75.100000,hi +26.100000,75.200000,hi +26.200000,75.200000,hi +26.200000,75.300000,hi +26.100000,75.300000,hi +26.000000,75.300000,hi +25.900000,75.300000,hi +25.900000,75.200000,hi +26.000000,75.200000,hi +26.000000,75.100000,hi +26.000000,75.000000,hi +25.900000,75.000000,hi +25.900000,75.100000,hi +25.800000,75.100000,hi +25.800000,75.000000,hi +25.700000,75.000000,hi +25.700000,75.100000,hi +25.700000,75.200000,hi +25.800000,75.200000,hi +25.800000,75.300000,hi +25.700000,75.300000,hi +25.700000,75.400000,hi +25.700000,75.500000,hi +25.800000,75.500000,hi +25.800000,75.400000,hi +25.900000,75.400000,hi +26.000000,75.400000,hi +26.000000,75.500000,hi +25.900000,75.500000,hi +25.900000,75.600000,hi +26.000000,75.600000,hi +26.000000,75.700000,hi +25.900000,75.700000,hi +25.800000,75.600000,hi +25.700000,75.600000,hi +25.800000,75.700000,hi +25.700000,75.700000,hi +25.600000,75.600000,hi +25.600000,75.700000,hi +25.500000,75.700000,hi +25.400000,75.700000,hi +25.400000,75.600000,hi +25.500000,75.600000,hi +25.500000,75.500000,hi +25.400000,75.500000,hi +25.400000,75.400000,hi +25.500000,75.400000,hi +25.600000,75.500000,hi +25.600000,75.400000,hi +25.600000,75.300000,hi +25.500000,75.300000,hi +25.500000,75.200000,hi +25.600000,75.200000,hi +25.600000,75.100000,hi +25.600000,75.000000,hi +25.500000,75.000000,hi +25.500000,75.100000,hi +25.400000,75.100000,hi +25.400000,75.000000,hi +25.300000,75.000000,hi +25.300000,75.100000,hi +25.300000,75.200000,hi +25.400000,75.200000,hi +25.400000,75.300000,hi +25.300000,75.300000,hi +25.200000,75.300000,hi +25.200000,75.200000,hi +25.200000,75.100000,hi +25.200000,75.000000,hi +25.100000,75.000000,hi +25.100000,75.100000,hi +25.000000,75.100000,hi +25.000000,75.000000,hi +24.900000,75.000000,hi +25.000000,75.200000,hi +25.100000,75.200000,hi +25.100000,75.300000,hi +25.000000,75.300000,hi +25.000000,75.400000,hi +25.000000,75.500000,hi +25.100000,75.500000,hi +25.100000,75.400000,hi +25.200000,75.400000,hi +25.300000,75.400000,hi +25.300000,75.500000,hi +25.200000,75.500000,hi +25.200000,75.600000,hi +25.300000,75.600000,hi +25.300000,75.700000,hi +25.200000,75.700000,hi +25.100000,75.700000,hi +25.100000,75.600000,hi +25.000000,75.600000,hi +25.000000,75.700000,hi +25.000000,75.800000,hi +25.100000,75.800000,hi +25.000000,75.900000,hi +25.000000,76.000000,hi +25.100000,76.000000,hi +25.100000,75.900000,hi +25.200000,75.900000,hi +25.200000,76.000000,hi +25.300000,76.000000,hi +25.300000,75.900000,hi +25.200000,75.800000,hi +25.300000,75.800000,hi +25.400000,75.800000,hi +25.500000,75.800000,hi +25.600000,75.800000,hi +25.700000,75.800000,hi +25.600000,75.900000,hi +25.700000,75.900000,hi +25.700000,76.000000,hi +25.600000,76.000000,hi +25.500000,76.000000,hi +25.500000,75.900000,hi +25.400000,75.900000,hi +25.400000,76.000000,hi +25.400000,76.100000,hi +25.400000,76.200000,hi +25.500000,76.200000,hi +25.500000,76.100000,hi +25.600000,76.100000,hi +25.700000,76.100000,hi +25.700000,76.200000,hi +25.600000,76.200000,hi +25.600000,76.300000,hi +25.700000,76.300000,hi +25.700000,76.400000,hi +25.600000,76.400000,hi +25.500000,76.400000,hi +25.500000,76.300000,hi +25.400000,76.300000,hi +25.400000,76.400000,hi +25.300000,76.400000,hi +25.300000,76.300000,hi +25.300000,76.200000,hi +25.300000,76.100000,hi +25.200000,76.100000,hi +25.200000,76.200000,hi +25.100000,76.100000,hi +25.100000,76.200000,hi +25.100000,76.300000,hi +25.200000,76.300000,hi +25.200000,76.400000,hi +25.100000,76.400000,hi +25.100000,76.500000,hi +25.200000,76.500000,hi +25.200000,76.600000,hi +25.100000,76.600000,hi +25.100000,76.700000,hi +25.100000,76.800000,hi +25.200000,76.800000,hi +25.200000,76.700000,hi +25.300000,76.700000,hi +25.300000,76.800000,hi +25.400000,76.800000,hi +25.400000,76.700000,hi +25.400000,76.600000,hi +25.300000,76.600000,hi +25.300000,76.500000,hi +25.400000,76.500000,hi +25.500000,76.500000,hi +25.500000,76.600000,hi +25.600000,76.600000,hi +25.600000,76.500000,hi +25.700000,76.500000,hi +25.700000,76.600000,hi +25.700000,76.700000,hi +25.800000,76.700000,hi +25.800000,76.800000,hi +25.700000,76.800000,hi +25.600000,76.800000,hi +25.600000,76.700000,hi +25.500000,76.700000,hi +25.500000,76.800000,hi +25.500000,76.900000,hi +25.500000,77.000000,hi +25.600000,77.000000,hi +25.600000,76.900000,hi +25.700000,76.900000,hi +25.800000,76.900000,hi +25.800000,77.000000,hi +25.700000,77.000000,hi +25.700000,77.100000,hi +25.800000,77.100000,hi +25.600000,77.100000,hi +25.500000,77.100000,hi +25.300000,77.100000,hi +25.400000,77.100000,hi +25.400000,77.000000,hi +25.400000,76.900000,hi +25.300000,76.900000,hi +25.300000,77.000000,hi +25.200000,77.000000,hi +25.200000,76.900000,hi +25.100000,76.900000,hi +25.100000,77.000000,hi +25.100000,77.100000,hi +25.200000,77.100000,hi +25.200000,77.300000,hi +25.200000,77.200000,hi +25.300000,77.200000,hi +25.400000,77.200000,hi +25.400000,77.300000,hi +25.300000,77.300000,hi +25.400000,77.400000,hi +25.500000,77.500000,hi +25.400000,77.500000,hi +25.300000,77.500000,hi +25.300000,77.400000,hi +25.200000,77.400000,hi +25.200000,77.500000,hi +25.200000,77.600000,hi +25.300000,77.600000,hi +25.300000,77.700000,hi +25.200000,77.700000,hi +25.200000,77.800000,hi +25.200000,77.900000,hi +25.300000,77.900000,hi +25.300000,77.800000,hi +25.400000,77.800000,hi +25.400000,77.900000,hi +25.500000,77.900000,hi +25.500000,77.800000,hi +25.500000,77.700000,hi +25.400000,77.700000,hi +25.400000,77.600000,hi +25.500000,77.600000,hi +25.600000,77.600000,hi +25.700000,77.700000,hi +25.600000,77.700000,hi +25.600000,77.800000,hi +25.600000,77.900000,hi +25.700000,77.900000,hi +25.700000,77.800000,hi +25.800000,77.800000,hi +25.800000,77.900000,hi +25.900000,77.900000,hi +25.900000,77.800000,hi +25.800000,77.700000,hi +25.700000,77.600000,hi +25.800000,77.600000,hi +25.800000,77.500000,hi +25.800000,77.400000,hi +25.700000,77.400000,hi +25.700000,77.500000,hi +25.600000,77.500000,hi +25.500000,77.400000,hi +25.600000,77.400000,hi +25.600000,77.300000,hi +25.500000,77.300000,hi +25.500000,77.200000,hi +25.600000,77.200000,hi +25.700000,77.200000,hi +25.700000,77.300000,hi +25.800000,77.300000,hi +25.800000,77.200000,hi +25.900000,77.200000,hi +25.900000,77.300000,hi +26.000000,77.300000,hi +26.000000,77.200000,hi +26.100000,77.200000,hi +26.200000,77.200000,hi +26.200000,77.300000,hi +26.100000,77.300000,hi +26.100000,77.400000,hi +26.200000,77.400000,hi +26.200000,77.500000,hi +26.100000,77.500000,hi +26.000000,77.500000,hi +26.000000,77.400000,hi +25.900000,77.400000,hi +25.900000,77.500000,hi +25.900000,77.600000,hi +26.000000,77.600000,hi +26.000000,77.700000,hi +25.900000,77.700000,hi +26.000000,77.900000,hi +26.000000,77.800000,hi +26.100000,77.800000,hi +26.100000,77.900000,hi +26.200000,77.900000,hi +26.200000,77.800000,hi +26.200000,77.700000,hi +26.100000,77.700000,hi +26.100000,77.600000,hi +26.200000,77.600000,hi +26.300000,77.600000,hi +26.400000,77.600000,hi +26.400000,77.700000,hi +26.300000,77.700000,hi +26.300000,77.800000,hi +26.300000,77.900000,hi +26.400000,77.900000,hi +26.400000,77.800000,hi +26.500000,77.800000,hi +26.500000,77.900000,hi +26.600000,77.900000,hi +26.600000,77.800000,hi +26.600000,77.700000,hi +26.500000,77.700000,hi +26.500000,77.600000,hi +26.600000,77.600000,hi +26.600000,77.500000,hi +26.600000,77.400000,hi +26.500000,77.400000,hi +26.500000,77.500000,hi +26.400000,77.500000,hi +26.300000,77.500000,hi +26.300000,77.400000,hi +26.400000,77.400000,hi +26.400000,77.300000,hi +26.300000,77.300000,hi +26.300000,77.200000,hi +26.400000,77.200000,hi +26.500000,77.300000,hi +26.600000,77.300000,hi +26.500000,77.200000,hi +26.400000,77.100000,hi +26.500000,77.100000,hi +26.500000,77.000000,hi +26.500000,76.900000,hi +26.400000,76.900000,hi +26.400000,77.000000,hi +26.300000,77.000000,hi +26.300000,76.900000,hi +26.200000,76.900000,hi +26.300000,77.100000,hi +26.200000,77.100000,hi +26.100000,77.100000,hi +25.900000,77.100000,hi +26.000000,77.100000,hi +26.000000,77.000000,hi +25.900000,77.000000,hi +25.900000,76.900000,hi +26.000000,76.900000,hi +26.100000,76.900000,hi +26.100000,77.000000,hi +26.200000,77.000000,hi +26.100000,76.800000,hi +26.100000,76.700000,hi +26.000000,76.700000,hi +26.000000,76.800000,hi +25.900000,76.800000,hi +25.900000,76.700000,hi +25.900000,76.600000,hi +25.800000,76.600000,hi +25.800000,76.500000,hi +25.900000,76.500000,hi +26.000000,76.500000,hi +26.000000,76.600000,hi +26.100000,76.600000,hi +26.100000,76.500000,hi +26.200000,76.500000,hi +26.300000,76.500000,hi +26.300000,76.600000,hi +26.200000,76.600000,hi +26.200000,76.700000,hi +26.200000,76.800000,hi +26.300000,76.800000,hi +26.300000,76.700000,hi +26.400000,76.700000,hi +26.400000,76.800000,hi +26.500000,76.800000,hi +26.500000,76.700000,hi +26.500000,76.600000,hi +26.400000,76.600000,hi +26.400000,76.500000,hi +26.500000,76.500000,hi +26.600000,76.500000,hi +26.600000,76.600000,hi +26.700000,76.600000,hi +26.700000,76.500000,hi +26.800000,76.500000,hi +26.900000,76.600000,hi +26.800000,76.600000,hi +26.800000,76.700000,hi +26.900000,76.700000,hi +26.900000,76.800000,hi +26.800000,76.800000,hi +26.700000,76.800000,hi +26.700000,76.700000,hi +26.600000,76.700000,hi +26.600000,76.800000,hi +26.600000,76.900000,hi +26.700000,76.900000,hi +26.700000,77.000000,hi +26.600000,77.000000,hi +26.600000,77.100000,hi +26.700000,77.100000,hi +26.800000,77.100000,hi +26.900000,77.100000,hi +26.900000,77.000000,hi +26.800000,77.000000,hi +26.800000,76.900000,hi +26.900000,76.900000,hi +27.000000,76.900000,hi +27.100000,76.900000,hi +27.100000,77.000000,hi +27.000000,77.000000,hi +27.000000,77.100000,hi +27.100000,77.100000,hi +27.200000,77.100000,hi +27.300000,77.100000,hi +27.300000,77.000000,hi +27.200000,77.000000,hi +27.200000,76.900000,hi +27.300000,76.900000,hi +27.200000,76.700000,hi +27.200000,76.800000,hi +27.100000,76.800000,hi +27.000000,76.800000,hi +27.000000,76.700000,hi +27.100000,76.700000,hi +27.000000,76.600000,hi +26.900000,76.500000,hi +27.000000,76.500000,hi +27.100000,76.500000,hi +27.100000,76.600000,hi +27.200000,76.600000,hi +27.200000,76.500000,hi +27.300000,76.500000,hi +27.400000,76.500000,hi +27.400000,76.600000,hi +27.300000,76.600000,hi +27.300000,76.700000,hi +27.300000,76.800000,hi +27.400000,76.800000,hi +27.400000,76.700000,hi +27.500000,76.700000,hi +27.500000,76.800000,hi +27.600000,76.800000,hi +27.600000,76.700000,hi +27.600000,76.600000,hi +27.500000,76.600000,hi +27.500000,76.500000,hi +27.600000,76.500000,hi +27.700000,76.500000,hi +27.700000,76.600000,hi +27.800000,76.600000,hi +27.800000,76.500000,hi +27.900000,76.500000,hi +28.000000,76.500000,hi +28.000000,76.600000,hi +27.900000,76.600000,hi +27.900000,76.700000,hi +28.000000,76.700000,hi +28.000000,76.800000,hi +27.900000,76.800000,hi +27.800000,76.800000,hi +27.800000,76.700000,hi +27.700000,76.700000,hi +27.700000,76.800000,hi +27.700000,76.900000,hi +27.700000,77.000000,hi +27.800000,77.000000,hi +27.800000,76.900000,hi +27.900000,76.900000,hi +28.000000,76.900000,hi +28.000000,77.000000,hi +27.900000,77.000000,hi +27.900000,77.100000,hi +28.000000,77.100000,hi +27.800000,77.100000,hi +27.700000,77.100000,hi +27.600000,77.100000,hi +27.600000,77.000000,hi +27.600000,76.900000,hi +27.500000,76.900000,hi +27.500000,77.000000,hi +27.400000,76.900000,hi +27.400000,77.000000,hi +27.400000,77.100000,hi +27.500000,77.100000,hi +27.400000,77.200000,hi +27.500000,77.200000,hi +27.500000,77.300000,hi +27.400000,77.300000,hi +27.400000,77.400000,hi +27.400000,77.500000,hi +27.500000,77.500000,hi +27.500000,77.400000,hi +27.600000,77.400000,hi +27.600000,77.500000,hi +27.700000,77.500000,hi +27.700000,77.400000,hi +27.700000,77.300000,hi +27.600000,77.300000,hi +27.600000,77.200000,hi +27.700000,77.200000,hi +27.800000,77.300000,hi +27.800000,77.200000,hi +27.900000,77.200000,hi +28.000000,77.200000,hi +28.000000,77.300000,hi +27.900000,77.300000,hi +28.000000,77.400000,hi +28.000000,77.500000,hi +27.900000,77.500000,hi +27.900000,77.400000,hi +27.800000,77.400000,hi +27.800000,77.500000,hi +27.800000,77.600000,hi +27.800000,77.700000,hi +27.900000,77.700000,hi +27.900000,77.600000,hi +28.000000,77.600000,hi +28.100000,77.600000,hi +28.100000,77.700000,hi +28.000000,77.700000,hi +28.000000,77.800000,hi +28.100000,77.800000,hi +28.100000,77.900000,hi +28.000000,77.900000,hi +27.900000,77.900000,hi +27.900000,77.800000,hi +27.800000,77.800000,hi +27.800000,77.900000,hi +27.700000,77.900000,hi +27.600000,77.900000,hi +27.600000,77.800000,hi +27.700000,77.800000,hi +27.700000,77.700000,hi +27.700000,77.600000,hi +27.600000,77.600000,hi +27.600000,77.700000,hi +27.500000,77.700000,hi +27.500000,77.600000,hi +27.400000,77.600000,hi +27.400000,77.700000,hi +27.400000,77.800000,hi +27.500000,77.800000,hi +27.500000,77.900000,hi +27.400000,77.900000,hi +27.300000,77.800000,hi +27.300000,77.900000,hi +27.200000,77.900000,hi +27.100000,77.900000,hi +27.100000,77.800000,hi +27.200000,77.800000,hi +27.100000,77.700000,hi +27.000000,77.600000,hi +27.100000,77.600000,hi +27.200000,77.600000,hi +27.200000,77.700000,hi +27.300000,77.700000,hi +27.300000,77.600000,hi +27.300000,77.500000,hi +27.200000,77.500000,hi +27.200000,77.400000,hi +27.300000,77.400000,hi +27.300000,77.300000,hi +27.300000,77.200000,hi +27.200000,77.200000,hi +27.200000,77.300000,hi +27.100000,77.300000,hi +27.100000,77.200000,hi +27.000000,77.200000,hi +27.000000,77.300000,hi +27.000000,77.400000,hi +27.100000,77.400000,hi +27.100000,77.500000,hi +27.000000,77.500000,hi +26.900000,77.500000,hi +26.800000,77.400000,hi +26.900000,77.400000,hi +26.900000,77.300000,hi +26.900000,77.200000,hi +26.800000,77.200000,hi +26.800000,77.300000,hi +26.700000,77.300000,hi +26.700000,77.200000,hi +26.600000,77.200000,hi +26.700000,77.400000,hi +26.800000,77.500000,hi +26.700000,77.500000,hi +26.700000,77.600000,hi +26.700000,77.700000,hi +26.800000,77.700000,hi +26.800000,77.600000,hi +26.900000,77.600000,hi +27.000000,77.700000,hi +26.900000,77.700000,hi +26.900000,77.800000,hi +27.000000,77.800000,hi +27.000000,77.900000,hi +26.900000,77.900000,hi +26.800000,77.900000,hi +26.800000,77.800000,hi +26.700000,77.800000,hi +26.700000,77.900000,hi +26.700000,78.000000,hi +26.700000,78.100000,hi +26.800000,78.100000,hi +26.800000,78.000000,hi +26.900000,78.000000,hi +27.000000,78.000000,hi +27.000000,78.100000,hi +26.900000,78.100000,hi +26.900000,78.200000,hi +27.000000,78.200000,hi +26.800000,78.200000,hi +26.700000,78.200000,hi +26.700000,78.300000,hi +26.800000,78.300000,hi +26.800000,78.400000,hi +26.700000,78.400000,hi +26.800000,78.600000,hi +26.800000,78.500000,hi +26.900000,78.500000,hi +26.900000,78.600000,hi +27.000000,78.600000,hi +27.000000,78.500000,hi +27.000000,78.400000,hi +26.900000,78.400000,hi +26.900000,78.300000,hi +27.000000,78.300000,hi +27.100000,78.300000,hi +27.200000,78.300000,hi +27.200000,78.400000,hi +27.100000,78.400000,hi +27.100000,78.500000,hi +27.100000,78.600000,hi +27.200000,78.600000,hi +27.200000,78.500000,hi +27.300000,78.500000,hi +27.300000,78.600000,hi +27.400000,78.600000,hi +27.400000,78.500000,hi +27.400000,78.400000,hi +27.300000,78.400000,hi +27.300000,78.300000,hi +27.400000,78.300000,hi +27.400000,78.200000,hi +27.300000,78.200000,hi +27.100000,78.200000,hi +27.200000,78.200000,hi +27.200000,78.100000,hi +27.100000,78.100000,hi +27.100000,78.000000,hi +27.200000,78.000000,hi +27.300000,78.000000,hi +27.300000,78.100000,hi +27.400000,78.100000,hi +27.400000,78.000000,hi +27.500000,78.000000,hi +27.500000,78.100000,hi +27.500000,78.200000,hi +27.600000,78.200000,hi +27.700000,78.200000,hi +27.700000,78.100000,hi +27.600000,78.100000,hi +27.600000,78.000000,hi +27.700000,78.000000,hi +27.800000,78.000000,hi +27.800000,78.100000,hi +27.900000,78.100000,hi +27.900000,78.000000,hi +28.000000,78.000000,hi +28.100000,78.000000,hi +28.100000,78.100000,hi +28.000000,78.100000,hi +28.000000,78.200000,hi +28.100000,78.200000,hi +27.900000,78.200000,hi +27.800000,78.200000,hi +27.900000,78.400000,hi +27.900000,78.300000,hi +28.000000,78.300000,hi +28.100000,78.300000,hi +28.100000,78.400000,hi +28.000000,78.400000,hi +28.100000,78.500000,hi +28.100000,78.600000,hi +28.000000,78.600000,hi +28.000000,78.500000,hi +27.900000,78.500000,hi +27.900000,78.600000,hi +27.800000,78.600000,hi +27.700000,78.600000,hi +27.700000,78.500000,hi +27.800000,78.500000,hi +27.800000,78.400000,hi +27.800000,78.300000,hi +27.700000,78.300000,hi +27.700000,78.400000,hi +27.600000,78.400000,hi +27.600000,78.300000,hi +27.500000,78.300000,hi +27.500000,78.400000,hi +27.500000,78.500000,hi +27.600000,78.500000,hi +27.600000,78.600000,hi +27.500000,78.600000,hi +27.500000,78.700000,hi +27.600000,78.700000,hi +27.600000,78.800000,hi +27.500000,78.800000,hi +27.500000,78.900000,hi +27.500000,79.000000,hi +27.600000,79.000000,hi +27.600000,78.900000,hi +27.700000,78.900000,hi +27.700000,79.000000,hi +27.800000,79.000000,hi +27.800000,78.900000,hi +27.800000,78.800000,hi +27.700000,78.800000,hi +27.700000,78.700000,hi +27.800000,78.700000,hi +27.900000,78.700000,hi +27.900000,78.800000,hi +28.000000,78.800000,hi +28.000000,78.700000,hi +28.100000,78.700000,hi +28.200000,78.700000,hi +28.200000,78.800000,hi +28.100000,78.800000,hi +28.100000,78.900000,hi +28.200000,78.900000,hi +28.200000,79.000000,hi +28.100000,79.000000,hi +28.000000,79.000000,hi +28.000000,78.900000,hi +27.900000,78.900000,hi +27.900000,79.000000,hi +27.900000,79.100000,hi +28.000000,79.100000,hi +28.100000,79.100000,hi +28.200000,79.100000,hi +28.100000,79.200000,hi +28.200000,79.200000,hi +28.200000,79.300000,hi +28.100000,79.300000,hi +28.000000,79.300000,hi +28.000000,79.200000,hi +27.900000,79.200000,hi +27.900000,79.300000,hi +27.800000,79.300000,hi +27.700000,79.300000,hi +27.700000,79.200000,hi +27.800000,79.200000,hi +27.800000,79.100000,hi +27.700000,79.100000,hi +27.600000,79.100000,hi +27.500000,79.100000,hi +27.600000,79.200000,hi +27.600000,79.300000,hi +27.500000,79.300000,hi +27.500000,79.200000,hi +27.400000,79.200000,hi +27.400000,79.300000,hi +27.300000,79.300000,hi +27.200000,79.300000,hi +27.200000,79.200000,hi +27.300000,79.200000,hi +27.200000,79.100000,hi +27.300000,79.100000,hi +27.400000,79.100000,hi +27.400000,79.000000,hi +27.300000,78.900000,hi +27.400000,78.900000,hi +27.400000,78.800000,hi +27.400000,78.700000,hi +27.300000,78.700000,hi +27.300000,78.800000,hi +27.200000,78.800000,hi +27.200000,78.700000,hi +27.100000,78.700000,hi +27.200000,78.900000,hi +27.300000,79.000000,hi +27.200000,79.000000,hi +27.100000,79.000000,hi +27.000000,79.000000,hi +27.000000,78.900000,hi +27.100000,78.900000,hi +27.100000,78.800000,hi +27.000000,78.700000,hi +27.000000,78.800000,hi +26.900000,78.800000,hi +26.900000,78.700000,hi +26.800000,78.700000,hi +26.800000,78.800000,hi +26.800000,78.900000,hi +26.900000,78.900000,hi +26.900000,79.000000,hi +26.800000,79.000000,hi +26.800000,79.100000,hi +26.900000,79.100000,hi +27.000000,79.100000,hi +27.100000,79.100000,hi +27.000000,79.200000,hi +27.100000,79.200000,hi +27.100000,79.300000,hi +27.000000,79.300000,hi +26.900000,79.300000,hi +26.900000,79.200000,hi +26.800000,79.200000,hi +26.800000,79.300000,hi +26.700000,79.300000,hi +26.600000,79.300000,hi +26.600000,79.200000,hi +26.700000,79.200000,hi +26.700000,79.100000,hi +26.600000,79.100000,hi +26.500000,79.100000,hi +26.400000,79.100000,hi +26.400000,79.200000,hi +26.500000,79.200000,hi +26.500000,79.300000,hi +26.400000,79.300000,hi +26.300000,79.200000,hi +26.300000,79.300000,hi +26.200000,79.300000,hi +26.100000,79.300000,hi +26.100000,79.200000,hi +26.200000,79.200000,hi +26.100000,79.100000,hi +26.200000,79.100000,hi +26.300000,79.100000,hi +26.300000,79.000000,hi +26.300000,78.900000,hi +26.200000,78.900000,hi +26.200000,79.000000,hi +26.100000,79.000000,hi +26.000000,79.000000,hi +26.000000,78.900000,hi +26.100000,78.900000,hi +26.100000,78.800000,hi +26.000000,78.800000,hi +26.000000,78.700000,hi +26.100000,78.700000,hi +26.200000,78.700000,hi +26.200000,78.800000,hi +26.300000,78.800000,hi +26.300000,78.700000,hi +26.400000,78.700000,hi +26.500000,78.700000,hi +26.500000,78.800000,hi +26.400000,78.800000,hi +26.400000,78.900000,hi +26.400000,79.000000,hi +26.500000,79.000000,hi +26.500000,78.900000,hi +26.600000,78.900000,hi +26.600000,79.000000,hi +26.700000,79.000000,hi +26.700000,78.900000,hi +26.700000,78.800000,hi +26.600000,78.800000,hi +26.600000,78.700000,hi +26.700000,78.700000,hi +26.700000,78.600000,hi +26.700000,78.500000,hi +26.600000,78.500000,hi +26.600000,78.600000,hi +26.500000,78.600000,hi +26.400000,78.600000,hi +26.400000,78.500000,hi +26.500000,78.500000,hi +26.500000,78.400000,hi +26.400000,78.400000,hi +26.400000,78.300000,hi +26.500000,78.300000,hi +26.600000,78.400000,hi +26.600000,78.300000,hi +26.500000,78.200000,hi +26.600000,78.200000,hi +26.600000,78.100000,hi +26.600000,78.000000,hi +26.500000,78.000000,hi +26.500000,78.100000,hi +26.400000,78.100000,hi +26.400000,78.000000,hi +26.300000,78.000000,hi +26.300000,78.100000,hi +26.400000,78.200000,hi +26.200000,78.200000,hi +26.300000,78.200000,hi +26.200000,78.000000,hi +26.200000,78.100000,hi +26.100000,78.100000,hi +26.100000,78.000000,hi +26.000000,78.000000,hi +26.000000,78.100000,hi +26.000000,78.200000,hi +26.100000,78.200000,hi +26.000000,78.300000,hi +26.000000,78.400000,hi +26.100000,78.400000,hi +26.100000,78.300000,hi +26.200000,78.300000,hi +26.300000,78.300000,hi +26.300000,78.400000,hi +26.200000,78.400000,hi +26.200000,78.500000,hi +26.300000,78.500000,hi +26.300000,78.600000,hi +26.200000,78.600000,hi +26.100000,78.600000,hi +26.100000,78.500000,hi +26.000000,78.500000,hi +26.000000,78.600000,hi +25.900000,78.600000,hi +25.900000,78.500000,hi +25.800000,78.500000,hi +25.800000,78.600000,hi +25.700000,78.600000,hi +25.600000,78.600000,hi +25.600000,78.500000,hi +25.700000,78.500000,hi +25.700000,78.400000,hi +25.600000,78.400000,hi +25.600000,78.300000,hi +25.700000,78.300000,hi +25.800000,78.300000,hi +25.800000,78.400000,hi +25.900000,78.400000,hi +25.900000,78.300000,hi +25.800000,78.200000,hi +25.900000,78.200000,hi +25.900000,78.100000,hi +25.900000,78.000000,hi +25.800000,78.000000,hi +25.800000,78.100000,hi +25.700000,78.100000,hi +25.700000,78.000000,hi +25.600000,78.000000,hi +25.600000,78.100000,hi +25.600000,78.200000,hi +25.700000,78.200000,hi +25.400000,78.200000,hi +25.500000,78.200000,hi +25.500000,78.100000,hi +25.500000,78.000000,hi +25.400000,78.000000,hi +25.400000,78.100000,hi +25.300000,78.100000,hi +25.300000,78.000000,hi +25.200000,78.000000,hi +25.200000,78.100000,hi +25.200000,78.200000,hi +25.300000,78.200000,hi +25.200000,78.300000,hi +25.300000,78.400000,hi +25.300000,78.300000,hi +25.400000,78.300000,hi +25.500000,78.300000,hi +25.500000,78.400000,hi +25.400000,78.400000,hi +25.400000,78.500000,hi +25.500000,78.500000,hi +25.500000,78.600000,hi +25.400000,78.600000,hi +25.300000,78.500000,hi +25.300000,78.600000,hi +25.300000,78.700000,hi +25.400000,78.700000,hi +25.400000,78.800000,hi +25.300000,78.800000,hi +25.300000,78.900000,hi +25.300000,79.000000,hi +25.400000,79.000000,hi +25.400000,78.900000,hi +25.500000,78.900000,hi +25.500000,79.000000,hi +25.600000,79.000000,hi +25.600000,78.900000,hi +25.600000,78.800000,hi +25.500000,78.800000,hi +25.500000,78.700000,hi +25.600000,78.700000,hi +25.700000,78.800000,hi +25.700000,78.700000,hi +25.800000,78.700000,hi +25.900000,78.700000,hi +25.900000,78.800000,hi +25.800000,78.800000,hi +25.900000,78.900000,hi +25.900000,79.000000,hi +25.800000,79.000000,hi +25.800000,78.900000,hi +25.700000,78.900000,hi +25.700000,79.000000,hi +25.700000,79.100000,hi +25.800000,79.100000,hi +25.900000,79.100000,hi +26.000000,79.100000,hi +25.900000,79.200000,hi +26.000000,79.200000,hi +26.000000,79.300000,hi +25.900000,79.300000,hi +25.800000,79.300000,hi +25.800000,79.200000,hi +25.700000,79.200000,hi +25.700000,79.300000,hi +25.600000,79.300000,hi +25.500000,79.300000,hi +25.500000,79.200000,hi +25.600000,79.200000,hi +25.600000,79.100000,hi +25.500000,79.100000,hi +25.400000,79.100000,hi +25.300000,79.100000,hi +25.300000,79.200000,hi +25.400000,79.200000,hi +25.400000,79.300000,hi +25.300000,79.300000,hi +25.200000,79.300000,hi +25.200000,79.200000,hi +25.100000,79.200000,hi +25.100000,79.300000,hi +25.000000,79.300000,hi +24.900000,79.300000,hi +24.900000,79.200000,hi +25.000000,79.200000,hi +24.900000,79.100000,hi +25.000000,79.100000,hi +25.100000,79.100000,hi +25.200000,79.100000,hi +25.200000,79.000000,hi +25.100000,79.000000,hi +25.100000,78.900000,hi +25.200000,78.900000,hi +25.200000,78.800000,hi +25.200000,78.700000,hi +25.100000,78.700000,hi +25.100000,78.800000,hi +25.000000,78.800000,hi +25.000000,78.700000,hi +24.900000,78.700000,hi +24.900000,78.800000,hi +24.900000,78.900000,hi +25.000000,78.900000,hi +25.000000,79.000000,hi +24.900000,79.000000,hi +24.800000,79.000000,hi +24.700000,79.000000,hi +24.700000,78.900000,hi +24.800000,78.900000,hi +24.800000,78.800000,hi +24.800000,78.700000,hi +24.700000,78.700000,hi +24.700000,78.800000,hi +24.600000,78.800000,hi +24.600000,78.700000,hi +24.500000,78.700000,hi +24.500000,78.800000,hi +24.500000,78.900000,hi +24.600000,78.900000,hi +24.600000,79.000000,hi +24.600000,79.100000,hi +24.700000,79.100000,hi +24.800000,79.100000,hi +24.800000,79.200000,hi +24.800000,79.300000,hi +24.700000,79.300000,hi +24.700000,79.200000,hi +24.600000,79.200000,hi +24.600000,79.300000,hi +24.500000,79.300000,hi +24.400000,79.300000,hi +24.400000,79.200000,hi +24.500000,79.200000,hi +24.500000,79.100000,hi +24.400000,79.100000,hi +24.300000,79.100000,hi +24.200000,79.100000,hi +24.200000,79.200000,hi +24.300000,79.200000,hi +24.300000,79.300000,hi +24.200000,79.300000,hi +24.100000,79.300000,hi +24.100000,79.200000,hi +24.000000,79.200000,hi +24.000000,79.300000,hi +23.900000,79.300000,hi +23.800000,79.300000,hi +23.800000,79.200000,hi +23.900000,79.200000,hi +23.800000,79.100000,hi +23.900000,79.100000,hi +24.000000,79.100000,hi +24.100000,79.100000,hi +24.100000,79.000000,hi +24.100000,78.900000,hi +24.000000,78.900000,hi +24.000000,79.000000,hi +23.900000,79.000000,hi +23.800000,79.000000,hi +23.800000,78.900000,hi +23.900000,78.900000,hi +23.900000,78.800000,hi +23.800000,78.800000,hi +23.800000,78.700000,hi +23.900000,78.700000,hi +24.000000,78.700000,hi +24.000000,78.800000,hi +24.100000,78.800000,hi +24.100000,78.700000,hi +24.200000,78.700000,hi +24.200000,78.800000,hi +24.200000,78.900000,hi +24.200000,79.000000,hi +24.300000,79.000000,hi +24.300000,78.900000,hi +24.400000,79.000000,hi +24.500000,79.000000,hi +24.400000,78.900000,hi +24.400000,78.800000,hi +24.300000,78.800000,hi +24.300000,78.700000,hi +24.400000,78.700000,hi +24.400000,78.600000,hi +24.300000,78.600000,hi +24.300000,78.500000,hi +24.400000,78.500000,hi +24.400000,78.400000,hi +24.400000,78.300000,hi +24.300000,78.300000,hi +24.300000,78.400000,hi +24.200000,78.400000,hi +24.200000,78.300000,hi +24.100000,78.300000,hi +24.100000,78.400000,hi +24.100000,78.500000,hi +24.200000,78.500000,hi +24.200000,78.600000,hi +24.100000,78.600000,hi +24.000000,78.500000,hi +24.000000,78.600000,hi +23.900000,78.600000,hi +23.800000,78.600000,hi +23.800000,78.500000,hi +23.900000,78.500000,hi +23.800000,78.400000,hi +23.700000,78.300000,hi +23.800000,78.300000,hi +23.900000,78.300000,hi +23.900000,78.400000,hi +24.000000,78.400000,hi +24.000000,78.300000,hi +24.000000,78.200000,hi +23.900000,78.200000,hi +23.700000,78.200000,hi +23.800000,78.200000,hi +23.800000,78.100000,hi +23.700000,78.100000,hi +23.700000,78.000000,hi +23.800000,78.000000,hi +23.900000,78.000000,hi +23.900000,78.100000,hi +24.000000,78.100000,hi +24.000000,78.000000,hi +24.100000,78.000000,hi +24.200000,78.000000,hi +24.200000,78.100000,hi +24.100000,78.100000,hi +24.100000,78.200000,hi +24.200000,78.200000,hi +24.300000,78.200000,hi +24.400000,78.200000,hi +24.400000,78.100000,hi +24.300000,78.100000,hi +24.300000,78.000000,hi +24.400000,78.000000,hi +24.500000,78.000000,hi +24.500000,78.100000,hi +24.600000,78.100000,hi +24.600000,78.000000,hi +24.700000,78.000000,hi +24.800000,78.100000,hi +24.700000,78.100000,hi +24.700000,78.200000,hi +24.800000,78.200000,hi +24.600000,78.200000,hi +24.500000,78.200000,hi +24.500000,78.300000,hi +24.600000,78.300000,hi +24.600000,78.400000,hi +24.500000,78.400000,hi +24.500000,78.500000,hi +24.500000,78.600000,hi +24.600000,78.600000,hi +24.600000,78.500000,hi +24.700000,78.500000,hi +24.700000,78.600000,hi +24.800000,78.600000,hi +24.800000,78.500000,hi +24.800000,78.400000,hi +24.700000,78.400000,hi +24.700000,78.300000,hi +24.800000,78.300000,hi +24.900000,78.300000,hi +25.000000,78.300000,hi +25.000000,78.400000,hi +24.900000,78.400000,hi +24.900000,78.500000,hi +24.900000,78.600000,hi +25.000000,78.600000,hi +25.000000,78.500000,hi +25.100000,78.500000,hi +25.100000,78.600000,hi +25.200000,78.600000,hi +25.200000,78.500000,hi +25.200000,78.400000,hi +25.100000,78.400000,hi +25.100000,78.300000,hi +25.100000,78.200000,hi +24.900000,78.200000,hi +25.000000,78.200000,hi +24.900000,78.100000,hi +24.800000,78.000000,hi +24.900000,78.000000,hi +25.000000,78.000000,hi +25.000000,78.100000,hi +25.100000,78.100000,hi +25.100000,78.000000,hi +25.100000,77.900000,hi +25.000000,77.900000,hi +25.000000,77.800000,hi +25.100000,77.800000,hi +25.100000,77.700000,hi +25.100000,77.600000,hi +25.000000,77.600000,hi +25.000000,77.700000,hi +24.900000,77.700000,hi +24.900000,77.600000,hi +24.800000,77.600000,hi +24.800000,77.700000,hi +24.800000,77.800000,hi +24.900000,77.800000,hi +24.900000,77.900000,hi +24.800000,77.900000,hi +24.700000,77.900000,hi +24.700000,77.800000,hi +24.600000,77.800000,hi +24.600000,77.900000,hi +24.500000,77.900000,hi +24.500000,77.800000,hi +24.500000,77.700000,hi +24.400000,77.700000,hi +24.400000,77.600000,hi +24.500000,77.600000,hi +24.600000,77.600000,hi +24.600000,77.700000,hi +24.700000,77.700000,hi +24.700000,77.600000,hi +24.700000,77.500000,hi +24.700000,77.400000,hi +24.600000,77.400000,hi +24.600000,77.500000,hi +24.500000,77.500000,hi +24.400000,77.500000,hi +24.400000,77.400000,hi +24.500000,77.400000,hi +24.500000,77.300000,hi +24.400000,77.300000,hi +24.400000,77.200000,hi +24.500000,77.200000,hi +24.600000,77.200000,hi +24.600000,77.300000,hi +24.700000,77.300000,hi +24.700000,77.200000,hi +24.800000,77.200000,hi +24.900000,77.200000,hi +24.900000,77.300000,hi +24.800000,77.300000,hi +24.800000,77.400000,hi +24.800000,77.500000,hi +24.900000,77.500000,hi +24.900000,77.400000,hi +25.000000,77.400000,hi +25.000000,77.500000,hi +25.100000,77.500000,hi +25.100000,77.400000,hi +25.100000,77.300000,hi +25.000000,77.300000,hi +25.000000,77.200000,hi +25.100000,77.200000,hi +25.000000,77.100000,hi +24.800000,77.100000,hi +24.900000,77.100000,hi +24.900000,77.000000,hi +24.800000,77.000000,hi +24.800000,76.900000,hi +24.900000,76.900000,hi +25.000000,77.000000,hi +25.000000,76.900000,hi +25.000000,76.800000,hi +24.900000,76.800000,hi +24.900000,76.700000,hi +25.000000,76.700000,hi +25.000000,76.600000,hi +25.000000,76.500000,hi +24.900000,76.500000,hi +24.900000,76.600000,hi +24.800000,76.600000,hi +24.800000,76.500000,hi +24.700000,76.500000,hi +24.700000,76.600000,hi +24.700000,76.700000,hi +24.800000,76.700000,hi +24.800000,76.800000,hi +24.700000,76.800000,hi +24.600000,76.800000,hi +24.600000,76.700000,hi +24.600000,76.600000,hi +24.600000,76.500000,hi +24.500000,76.500000,hi +24.500000,76.600000,hi +24.400000,76.600000,hi +24.400000,76.500000,hi +24.300000,76.500000,hi +24.400000,76.700000,hi +24.500000,76.700000,hi +24.500000,76.800000,hi +24.400000,76.800000,hi +24.400000,76.900000,hi +24.400000,77.000000,hi +24.500000,77.000000,hi +24.500000,76.900000,hi +24.600000,76.900000,hi +24.700000,76.900000,hi +24.700000,77.000000,hi +24.600000,77.000000,hi +24.600000,77.100000,hi +24.700000,77.100000,hi +24.500000,77.100000,hi +24.400000,77.100000,hi +24.300000,77.100000,hi +24.200000,77.100000,hi +24.000000,77.100000,hi +24.100000,77.100000,hi +24.100000,77.000000,hi +24.000000,77.000000,hi +24.000000,76.900000,hi +24.100000,76.900000,hi +24.200000,76.900000,hi +24.200000,77.000000,hi +24.300000,77.000000,hi +24.300000,76.900000,hi +24.300000,76.800000,hi +24.200000,76.800000,hi +24.200000,76.700000,hi +24.300000,76.700000,hi +24.300000,76.600000,hi +24.200000,76.500000,hi +24.200000,76.600000,hi +24.100000,76.600000,hi +24.100000,76.500000,hi +24.000000,76.500000,hi +24.000000,76.600000,hi +24.000000,76.700000,hi +24.100000,76.700000,hi +24.100000,76.800000,hi +24.000000,76.800000,hi +23.900000,76.800000,hi +23.800000,76.800000,hi +23.800000,76.700000,hi +23.900000,76.700000,hi +23.900000,76.600000,hi +23.900000,76.500000,hi +23.800000,76.500000,hi +23.800000,76.600000,hi +23.700000,76.600000,hi +23.700000,76.500000,hi +23.600000,76.500000,hi +23.600000,76.600000,hi +23.600000,76.700000,hi +23.700000,76.700000,hi +23.700000,76.800000,hi +23.600000,76.800000,hi +23.600000,76.900000,hi +23.600000,77.000000,hi +23.700000,77.000000,hi +23.700000,76.900000,hi +23.800000,76.900000,hi +23.900000,76.900000,hi +23.900000,77.000000,hi +23.800000,77.000000,hi +23.800000,77.100000,hi +23.900000,77.100000,hi +23.700000,77.100000,hi +23.700000,77.200000,hi +23.800000,77.300000,hi +23.700000,77.300000,hi +23.700000,77.400000,hi +23.700000,77.500000,hi +23.800000,77.500000,hi +23.800000,77.400000,hi +23.900000,77.400000,hi +23.900000,77.500000,hi +24.000000,77.500000,hi +24.000000,77.400000,hi +23.900000,77.300000,hi +23.800000,77.200000,hi +23.900000,77.200000,hi +24.000000,77.200000,hi +24.000000,77.300000,hi +24.100000,77.300000,hi +24.100000,77.200000,hi +24.200000,77.200000,hi +24.300000,77.200000,hi +24.300000,77.300000,hi +24.200000,77.300000,hi +24.200000,77.400000,hi +24.300000,77.400000,hi +24.300000,77.500000,hi +24.200000,77.500000,hi +24.100000,77.400000,hi +24.100000,77.500000,hi +24.100000,77.600000,hi +24.100000,77.700000,hi +24.200000,77.700000,hi +24.200000,77.600000,hi +24.300000,77.600000,hi +24.300000,77.700000,hi +24.300000,77.800000,hi +24.400000,77.800000,hi +24.400000,77.900000,hi +24.300000,77.900000,hi +24.200000,77.900000,hi +24.200000,77.800000,hi +24.100000,77.800000,hi +24.100000,77.900000,hi +24.000000,77.900000,hi +23.900000,77.900000,hi +23.900000,77.800000,hi +24.000000,77.800000,hi +24.000000,77.700000,hi +24.000000,77.600000,hi +23.900000,77.600000,hi +23.900000,77.700000,hi +23.800000,77.700000,hi +23.800000,77.600000,hi +23.700000,77.600000,hi +23.700000,77.700000,hi +23.700000,77.800000,hi +23.800000,77.800000,hi +23.800000,77.900000,hi +23.700000,77.900000,hi +23.600000,77.900000,hi +23.500000,77.900000,hi +23.500000,77.800000,hi +23.600000,77.800000,hi +23.600000,77.700000,hi +23.600000,77.600000,hi +23.500000,77.600000,hi +23.500000,77.700000,hi +23.400000,77.700000,hi +23.400000,77.600000,hi +23.300000,77.600000,hi +23.300000,77.700000,hi +23.300000,77.800000,hi +23.400000,77.800000,hi +23.400000,77.900000,hi +23.300000,77.900000,hi +23.200000,77.900000,hi +23.200000,77.800000,hi +23.100000,77.800000,hi +23.100000,77.900000,hi +23.000000,77.900000,hi +23.000000,77.800000,hi +23.000000,77.700000,hi +22.900000,77.600000,hi +23.000000,77.600000,hi +23.100000,77.600000,hi +23.100000,77.700000,hi +23.200000,77.700000,hi +23.200000,77.600000,hi +23.200000,77.500000,hi +23.200000,77.400000,hi +23.100000,77.400000,hi +23.100000,77.500000,hi +23.000000,77.500000,hi +22.900000,77.500000,hi +22.900000,77.400000,hi +23.000000,77.400000,hi +23.000000,77.300000,hi +22.900000,77.300000,hi +22.900000,77.200000,hi +23.000000,77.200000,hi +23.100000,77.200000,hi +23.100000,77.300000,hi +23.200000,77.300000,hi +23.200000,77.200000,hi +23.300000,77.200000,hi +23.400000,77.200000,hi +23.400000,77.300000,hi +23.300000,77.300000,hi +23.300000,77.400000,hi +23.300000,77.500000,hi +23.400000,77.500000,hi +23.400000,77.400000,hi +23.500000,77.400000,hi +23.500000,77.500000,hi +23.600000,77.500000,hi +23.600000,77.400000,hi +23.600000,77.300000,hi +23.500000,77.300000,hi +23.500000,77.200000,hi +23.600000,77.200000,hi +23.600000,77.100000,hi +23.500000,77.100000,hi +23.300000,77.100000,hi +23.400000,77.100000,hi +23.400000,77.000000,hi +23.300000,77.000000,hi +23.300000,76.900000,hi +23.400000,76.900000,hi +23.500000,77.000000,hi +23.500000,76.900000,hi +23.500000,76.800000,hi +23.400000,76.800000,hi +23.400000,76.700000,hi +23.500000,76.700000,hi +23.500000,76.600000,hi +23.500000,76.500000,hi +23.400000,76.500000,hi +23.400000,76.600000,hi +23.300000,76.600000,hi +23.300000,76.500000,hi +23.200000,76.500000,hi +23.200000,76.600000,hi +23.200000,76.700000,hi +23.300000,76.700000,hi +23.300000,76.800000,hi +23.200000,76.800000,hi +23.100000,76.800000,hi +23.100000,76.700000,hi +23.100000,76.600000,hi +23.100000,76.500000,hi +23.000000,76.500000,hi +23.000000,76.600000,hi +22.900000,76.500000,hi +22.900000,76.600000,hi +22.900000,76.700000,hi +23.000000,76.700000,hi +23.000000,76.800000,hi +22.900000,76.800000,hi +22.900000,76.900000,hi +22.900000,77.000000,hi +23.000000,77.000000,hi +23.000000,76.900000,hi +23.100000,76.900000,hi +23.200000,76.900000,hi +23.200000,77.000000,hi +23.100000,77.000000,hi +23.100000,77.100000,hi +23.200000,77.100000,hi +23.000000,77.100000,hi +22.900000,77.100000,hi +22.800000,77.100000,hi +22.700000,77.100000,hi +22.500000,77.100000,hi +22.600000,77.100000,hi +22.600000,77.000000,hi +22.500000,77.000000,hi +22.500000,76.900000,hi +22.600000,76.900000,hi +22.700000,76.900000,hi +22.700000,77.000000,hi +22.800000,77.000000,hi +22.800000,76.900000,hi +22.800000,76.800000,hi +22.700000,76.800000,hi +22.700000,76.700000,hi +22.800000,76.700000,hi +22.800000,76.600000,hi +22.800000,76.500000,hi +22.700000,76.500000,hi +22.700000,76.600000,hi +22.600000,76.600000,hi +22.600000,76.500000,hi +22.500000,76.500000,hi +22.500000,76.600000,hi +22.500000,76.700000,hi +22.600000,76.700000,hi +22.600000,76.800000,hi +22.500000,76.800000,hi +22.400000,76.800000,hi +22.300000,76.800000,hi +22.300000,76.700000,hi +22.400000,76.700000,hi +22.400000,76.600000,hi +22.400000,76.500000,hi +22.300000,76.500000,hi +22.300000,76.600000,hi +22.200000,76.600000,hi +22.200000,76.500000,hi +22.100000,76.500000,hi +22.100000,76.600000,hi +22.100000,76.700000,hi +22.200000,76.700000,hi +22.200000,76.800000,hi +22.100000,76.800000,hi +22.100000,76.900000,hi +22.100000,77.000000,hi +22.200000,77.000000,hi +22.200000,76.900000,hi +22.300000,76.900000,hi +22.400000,76.900000,hi +22.400000,77.000000,hi +22.300000,77.000000,hi +22.300000,77.100000,hi +22.400000,77.100000,hi +22.200000,77.100000,hi +22.200000,77.200000,hi +22.300000,77.300000,hi +22.200000,77.300000,hi +22.200000,77.400000,hi +22.200000,77.500000,hi +22.300000,77.500000,hi +22.300000,77.400000,hi +22.400000,77.400000,hi +22.400000,77.500000,hi +22.500000,77.500000,hi +22.500000,77.400000,hi +22.400000,77.300000,hi +22.300000,77.200000,hi +22.400000,77.200000,hi +22.500000,77.200000,hi +22.500000,77.300000,hi +22.600000,77.300000,hi +22.600000,77.200000,hi +22.700000,77.200000,hi +22.800000,77.200000,hi +22.800000,77.300000,hi +22.700000,77.300000,hi +22.700000,77.400000,hi +22.800000,77.400000,hi +22.800000,77.500000,hi +22.700000,77.500000,hi +22.600000,77.400000,hi +22.600000,77.500000,hi +22.600000,77.600000,hi +22.600000,77.700000,hi +22.700000,77.700000,hi +22.700000,77.600000,hi +22.800000,77.600000,hi +22.900000,77.700000,hi +22.800000,77.700000,hi +22.800000,77.800000,hi +22.900000,77.800000,hi +22.900000,77.900000,hi +22.800000,77.900000,hi +22.700000,77.900000,hi +22.700000,77.800000,hi +22.600000,77.800000,hi +22.600000,77.900000,hi +22.500000,77.900000,hi +22.400000,77.900000,hi +22.400000,77.800000,hi +22.500000,77.800000,hi +22.500000,77.700000,hi +22.500000,77.600000,hi +22.400000,77.600000,hi +22.400000,77.700000,hi +22.300000,77.700000,hi +22.300000,77.600000,hi +22.200000,77.600000,hi +22.200000,77.700000,hi +22.200000,77.800000,hi +22.300000,77.800000,hi +22.300000,77.900000,hi +22.200000,77.900000,hi +22.200000,78.000000,hi +22.200000,78.100000,hi +22.300000,78.100000,hi +22.300000,78.000000,hi +22.400000,78.000000,hi +22.500000,78.000000,hi +22.500000,78.100000,hi +22.400000,78.100000,hi +22.400000,78.200000,hi +22.500000,78.200000,hi +22.300000,78.200000,hi +22.200000,78.200000,hi +22.200000,78.300000,hi +22.300000,78.300000,hi +22.300000,78.400000,hi +22.300000,78.500000,hi +22.300000,78.600000,hi +22.400000,78.600000,hi +22.400000,78.500000,hi +22.500000,78.600000,hi +22.500000,78.500000,hi +22.500000,78.400000,hi +22.400000,78.400000,hi +22.400000,78.300000,hi +22.500000,78.300000,hi +22.600000,78.300000,hi +22.700000,78.300000,hi +22.700000,78.400000,hi +22.600000,78.400000,hi +22.600000,78.500000,hi +22.600000,78.600000,hi +22.700000,78.600000,hi +22.700000,78.500000,hi +22.800000,78.500000,hi +22.800000,78.600000,hi +22.900000,78.600000,hi +22.900000,78.500000,hi +22.900000,78.400000,hi +22.800000,78.400000,hi +22.800000,78.300000,hi +22.900000,78.300000,hi +22.900000,78.200000,hi +22.800000,78.200000,hi +22.600000,78.200000,hi +22.700000,78.200000,hi +22.700000,78.100000,hi +22.600000,78.100000,hi +22.600000,78.000000,hi +22.700000,78.000000,hi +22.800000,78.000000,hi +22.800000,78.100000,hi +22.900000,78.100000,hi +22.900000,78.000000,hi +23.000000,78.000000,hi +23.100000,78.000000,hi +23.100000,78.100000,hi +23.000000,78.100000,hi +23.000000,78.200000,hi +23.100000,78.200000,hi +23.200000,78.200000,hi +23.300000,78.200000,hi +23.300000,78.100000,hi +23.200000,78.100000,hi +23.200000,78.000000,hi +23.300000,78.000000,hi +23.400000,78.100000,hi +23.400000,78.000000,hi +23.500000,78.000000,hi +23.600000,78.000000,hi +23.600000,78.100000,hi +23.500000,78.100000,hi +23.600000,78.200000,hi +23.500000,78.200000,hi +23.400000,78.200000,hi +23.400000,78.300000,hi +23.400000,78.400000,hi +23.500000,78.400000,hi +23.500000,78.300000,hi +23.600000,78.300000,hi +23.700000,78.400000,hi +23.600000,78.400000,hi +23.600000,78.500000,hi +23.700000,78.500000,hi +23.700000,78.600000,hi +23.600000,78.600000,hi +23.500000,78.600000,hi +23.500000,78.500000,hi +23.400000,78.500000,hi +23.400000,78.600000,hi +23.300000,78.600000,hi +23.200000,78.600000,hi +23.200000,78.500000,hi +23.300000,78.500000,hi +23.300000,78.400000,hi +23.300000,78.300000,hi +23.200000,78.300000,hi +23.200000,78.400000,hi +23.100000,78.400000,hi +23.100000,78.300000,hi +23.000000,78.300000,hi +23.000000,78.400000,hi +23.000000,78.500000,hi +23.100000,78.500000,hi +23.100000,78.600000,hi +23.000000,78.600000,hi +23.000000,78.700000,hi +23.100000,78.700000,hi +23.100000,78.800000,hi +23.000000,78.800000,hi +23.000000,78.900000,hi +23.000000,79.000000,hi +23.100000,79.000000,hi +23.100000,78.900000,hi +23.200000,78.900000,hi +23.200000,79.000000,hi +23.300000,79.000000,hi +23.300000,78.900000,hi +23.300000,78.800000,hi +23.200000,78.800000,hi +23.200000,78.700000,hi +23.300000,78.700000,hi +23.400000,78.700000,hi +23.400000,78.800000,hi +23.500000,78.800000,hi +23.500000,78.700000,hi +23.600000,78.700000,hi +23.700000,78.700000,hi +23.700000,78.800000,hi +23.600000,78.800000,hi +23.600000,78.900000,hi +23.700000,78.900000,hi +23.700000,79.000000,hi +23.600000,79.000000,hi +23.500000,79.000000,hi +23.500000,78.900000,hi +23.400000,78.900000,hi +23.400000,79.000000,hi +23.400000,79.100000,hi +23.500000,79.100000,hi +23.600000,79.100000,hi +23.700000,79.100000,hi +23.600000,79.200000,hi +23.700000,79.200000,hi +23.700000,79.300000,hi +23.600000,79.300000,hi +23.500000,79.300000,hi +23.500000,79.200000,hi +23.400000,79.200000,hi +23.400000,79.300000,hi +23.300000,79.300000,hi +23.200000,79.200000,hi +23.300000,79.200000,hi +23.300000,79.100000,hi +23.200000,79.100000,hi +23.100000,79.100000,hi +23.100000,79.200000,hi +23.200000,79.300000,hi +23.100000,79.300000,hi +23.000000,79.300000,hi +23.000000,79.200000,hi +22.900000,79.200000,hi +22.900000,79.300000,hi +22.800000,79.300000,hi +22.700000,79.300000,hi +22.700000,79.200000,hi +22.800000,79.200000,hi +22.700000,79.100000,hi +22.800000,79.100000,hi +22.900000,79.100000,hi +23.000000,79.100000,hi +22.900000,79.000000,hi +22.900000,78.900000,hi +22.900000,78.800000,hi +22.900000,78.700000,hi +22.800000,78.700000,hi +22.800000,78.800000,hi +22.700000,78.700000,hi +22.700000,78.800000,hi +22.700000,78.900000,hi +22.800000,78.900000,hi +22.800000,79.000000,hi +22.700000,79.000000,hi +22.600000,79.000000,hi +22.500000,79.000000,hi +22.500000,78.900000,hi +22.600000,78.900000,hi +22.600000,78.800000,hi +22.600000,78.700000,hi +22.500000,78.700000,hi +22.500000,78.800000,hi +22.400000,78.800000,hi +22.400000,78.700000,hi +22.300000,78.700000,hi +22.300000,78.800000,hi +22.300000,78.900000,hi +22.400000,78.900000,hi +22.400000,79.000000,hi +22.300000,79.000000,hi +22.300000,79.100000,hi +22.400000,79.100000,hi +22.500000,79.100000,hi +22.600000,79.100000,hi +22.500000,79.200000,hi +22.600000,79.200000,hi +22.600000,79.300000,hi +22.500000,79.300000,hi +22.400000,79.300000,hi +22.400000,79.200000,hi +22.300000,79.200000,hi +22.300000,79.300000,hi +22.300000,79.400000,hi +22.400000,79.400000,hi +22.400000,79.500000,hi +22.300000,79.500000,hi +22.300000,79.600000,hi +22.300000,79.700000,hi +22.400000,79.700000,hi +22.400000,79.600000,hi +22.500000,79.600000,hi +22.500000,79.700000,hi +22.600000,79.700000,hi +22.600000,79.600000,hi +22.600000,79.500000,hi +22.500000,79.500000,hi +22.500000,79.400000,hi +22.600000,79.400000,hi +22.700000,79.400000,hi +22.700000,79.500000,hi +22.800000,79.500000,hi +22.800000,79.400000,hi +22.900000,79.400000,hi +23.000000,79.400000,hi +23.000000,79.500000,hi +22.900000,79.500000,hi +22.900000,79.600000,hi +23.000000,79.600000,hi +23.000000,79.700000,hi +22.900000,79.700000,hi +22.800000,79.700000,hi +22.800000,79.600000,hi +22.700000,79.600000,hi +22.700000,79.700000,hi +22.700000,79.800000,hi +22.700000,79.900000,hi +22.800000,79.900000,hi +22.800000,79.800000,hi +22.900000,79.800000,hi +23.000000,79.800000,hi +23.000000,79.900000,hi +22.900000,79.900000,hi +22.900000,80.000000,hi +23.000000,80.000000,hi +22.800000,80.000000,hi +22.700000,80.000000,hi +22.500000,80.000000,hi +22.600000,80.000000,hi +22.600000,79.900000,hi +22.600000,79.800000,hi +22.500000,79.800000,hi +22.500000,79.900000,hi +22.400000,79.900000,hi +22.400000,79.800000,hi +22.300000,79.800000,hi +22.400000,80.000000,hi +22.400000,80.100000,hi +22.400000,80.200000,hi +22.500000,80.200000,hi +22.500000,80.100000,hi +22.600000,80.100000,hi +22.600000,80.200000,hi +22.600000,80.300000,hi +22.700000,80.300000,hi +22.700000,80.400000,hi +22.600000,80.400000,hi +22.500000,80.400000,hi +22.500000,80.300000,hi +22.400000,80.300000,hi +22.400000,80.400000,hi +22.400000,80.500000,hi +22.500000,80.500000,hi +22.500000,80.600000,hi +22.400000,80.600000,hi +22.400000,80.700000,hi +22.400000,80.800000,hi +22.500000,80.800000,hi +22.500000,80.700000,hi +22.600000,80.700000,hi +22.600000,80.800000,hi +22.700000,80.800000,hi +22.700000,80.700000,hi +22.700000,80.600000,hi +22.600000,80.600000,hi +22.600000,80.500000,hi +22.700000,80.500000,hi +22.800000,80.500000,hi +22.900000,80.500000,hi +22.900000,80.600000,hi +22.800000,80.600000,hi +22.800000,80.700000,hi +22.800000,80.800000,hi +22.900000,80.800000,hi +22.900000,80.700000,hi +23.000000,80.700000,hi +23.000000,80.800000,hi +23.100000,80.800000,hi +23.100000,80.700000,hi +23.100000,80.600000,hi +23.000000,80.600000,hi +23.000000,80.500000,hi +23.000000,80.400000,hi +23.000000,80.300000,hi +22.900000,80.300000,hi +22.900000,80.400000,hi +22.800000,80.400000,hi +22.800000,80.300000,hi +22.800000,80.200000,hi +22.700000,80.200000,hi +22.700000,80.100000,hi +22.800000,80.100000,hi +22.900000,80.100000,hi +22.900000,80.200000,hi +23.000000,80.200000,hi +23.000000,80.100000,hi +23.100000,80.100000,hi +23.100000,80.200000,hi +23.200000,80.200000,hi +23.200000,80.100000,hi +23.300000,80.100000,hi +23.400000,80.100000,hi +23.400000,80.200000,hi +23.300000,80.200000,hi +23.300000,80.300000,hi +23.400000,80.300000,hi +23.400000,80.400000,hi +23.300000,80.400000,hi +23.200000,80.400000,hi +23.200000,80.300000,hi +23.100000,80.300000,hi +23.100000,80.400000,hi +23.100000,80.500000,hi +23.200000,80.500000,hi +23.200000,80.600000,hi +23.200000,80.700000,hi +23.200000,80.800000,hi +23.300000,80.800000,hi +23.300000,80.700000,hi +23.400000,80.800000,hi +23.400000,80.700000,hi +23.400000,80.600000,hi +23.300000,80.600000,hi +23.300000,80.500000,hi +23.400000,80.500000,hi +23.500000,80.500000,hi +23.600000,80.500000,hi +23.600000,80.600000,hi +23.500000,80.600000,hi +23.500000,80.700000,hi +23.500000,80.800000,hi +23.600000,80.800000,hi +23.600000,80.700000,hi +23.700000,80.700000,hi +23.700000,80.800000,hi +23.800000,80.800000,hi +23.800000,80.700000,hi +23.800000,80.600000,hi +23.700000,80.600000,hi +23.700000,80.500000,hi +23.800000,80.500000,hi +23.800000,80.400000,hi +23.800000,80.300000,hi +23.700000,80.300000,hi +23.700000,80.400000,hi +23.600000,80.400000,hi +23.500000,80.400000,hi +23.500000,80.300000,hi +23.600000,80.300000,hi +23.600000,80.200000,hi +23.500000,80.200000,hi +23.500000,80.100000,hi +23.600000,80.100000,hi +23.700000,80.100000,hi +23.700000,80.200000,hi +23.800000,80.200000,hi +23.800000,80.100000,hi +23.700000,80.000000,hi +23.800000,80.000000,hi +23.800000,79.900000,hi +23.800000,79.800000,hi +23.700000,79.800000,hi +23.700000,79.900000,hi +23.600000,79.900000,hi +23.600000,79.800000,hi +23.500000,79.800000,hi +23.500000,79.900000,hi +23.500000,80.000000,hi +23.600000,80.000000,hi +23.400000,80.000000,hi +23.300000,80.000000,hi +23.100000,80.000000,hi +23.200000,80.000000,hi +23.200000,79.900000,hi +23.100000,79.900000,hi +23.100000,79.800000,hi +23.200000,79.800000,hi +23.300000,79.800000,hi +23.300000,79.900000,hi +23.400000,79.900000,hi +23.400000,79.800000,hi +23.400000,79.700000,hi +23.400000,79.600000,hi +23.300000,79.600000,hi +23.300000,79.700000,hi +23.200000,79.700000,hi +23.100000,79.700000,hi +23.100000,79.600000,hi +23.200000,79.600000,hi +23.200000,79.500000,hi +23.100000,79.500000,hi +23.100000,79.400000,hi +23.200000,79.400000,hi +23.300000,79.400000,hi +23.300000,79.500000,hi +23.400000,79.500000,hi +23.400000,79.400000,hi +23.500000,79.400000,hi +23.500000,79.500000,hi +23.500000,79.600000,hi +23.500000,79.700000,hi +23.600000,79.700000,hi +23.600000,79.600000,hi +23.700000,79.700000,hi +23.700000,79.600000,hi +23.700000,79.500000,hi +23.600000,79.500000,hi +23.600000,79.400000,hi +23.700000,79.400000,hi +23.800000,79.400000,hi +23.800000,79.500000,hi +23.900000,79.500000,hi +23.900000,79.400000,hi +24.000000,79.400000,hi +24.100000,79.400000,hi +24.100000,79.500000,hi +24.000000,79.500000,hi +24.000000,79.600000,hi +24.100000,79.600000,hi +24.100000,79.700000,hi +24.000000,79.700000,hi +23.900000,79.700000,hi +23.900000,79.600000,hi +23.800000,79.600000,hi +23.800000,79.700000,hi +23.900000,79.800000,hi +23.900000,79.900000,hi +23.900000,80.000000,hi +24.000000,80.000000,hi +24.100000,80.000000,hi +24.100000,79.900000,hi +24.000000,79.900000,hi +24.000000,79.800000,hi +24.100000,79.800000,hi +24.200000,79.800000,hi +24.300000,79.800000,hi +24.300000,79.900000,hi +24.200000,79.900000,hi +24.200000,80.000000,hi +24.300000,80.000000,hi +24.400000,80.000000,hi +24.500000,80.000000,hi +24.500000,79.900000,hi +24.400000,79.900000,hi +24.400000,79.800000,hi +24.500000,79.800000,hi +24.500000,79.700000,hi +24.500000,79.600000,hi +24.400000,79.600000,hi +24.400000,79.700000,hi +24.300000,79.700000,hi +24.200000,79.700000,hi +24.200000,79.600000,hi +24.300000,79.600000,hi +24.300000,79.500000,hi +24.200000,79.500000,hi +24.200000,79.400000,hi +24.300000,79.400000,hi +24.400000,79.400000,hi +24.400000,79.500000,hi +24.500000,79.500000,hi +24.500000,79.400000,hi +24.600000,79.400000,hi +24.700000,79.400000,hi +24.700000,79.500000,hi +24.600000,79.500000,hi +24.600000,79.600000,hi +24.600000,79.700000,hi +24.700000,79.700000,hi +24.700000,79.600000,hi +24.800000,79.600000,hi +24.800000,79.700000,hi +24.900000,79.700000,hi +24.900000,79.600000,hi +24.900000,79.500000,hi +24.800000,79.500000,hi +24.800000,79.400000,hi +24.900000,79.400000,hi +25.000000,79.500000,hi +25.000000,79.400000,hi +25.100000,79.400000,hi +25.200000,79.400000,hi +25.200000,79.500000,hi +25.100000,79.500000,hi +25.200000,79.600000,hi +25.300000,79.700000,hi +25.200000,79.700000,hi +25.100000,79.700000,hi +25.100000,79.600000,hi +25.000000,79.600000,hi +25.000000,79.700000,hi +25.000000,79.800000,hi +25.000000,79.900000,hi +25.100000,79.900000,hi +25.100000,79.800000,hi +25.200000,79.800000,hi +25.300000,79.800000,hi +25.300000,79.900000,hi +25.200000,79.900000,hi +25.200000,80.000000,hi +25.300000,80.000000,hi +25.100000,80.000000,hi +25.000000,80.000000,hi +24.800000,80.000000,hi +24.900000,80.000000,hi +24.900000,79.900000,hi +24.900000,79.800000,hi +24.800000,79.800000,hi +24.800000,79.900000,hi +24.700000,79.900000,hi +24.700000,79.800000,hi +24.600000,79.800000,hi +24.600000,79.900000,hi +24.600000,80.000000,hi +24.700000,80.000000,hi +24.600000,80.100000,hi +24.700000,80.100000,hi +24.700000,80.200000,hi +24.600000,80.200000,hi +24.600000,80.300000,hi +24.600000,80.400000,hi +24.700000,80.400000,hi +24.700000,80.300000,hi +24.800000,80.300000,hi +24.800000,80.400000,hi +24.900000,80.400000,hi +24.900000,80.300000,hi +24.900000,80.200000,hi +24.800000,80.200000,hi +24.800000,80.100000,hi +24.900000,80.100000,hi +25.000000,80.100000,hi +25.000000,80.200000,hi +25.100000,80.200000,hi +25.100000,80.100000,hi +25.200000,80.100000,hi +25.300000,80.100000,hi +25.300000,80.200000,hi +25.200000,80.200000,hi +25.200000,80.300000,hi +25.300000,80.300000,hi +25.300000,80.400000,hi +25.200000,80.400000,hi +25.100000,80.400000,hi +25.100000,80.300000,hi +25.000000,80.300000,hi +25.000000,80.400000,hi +25.000000,80.500000,hi +25.000000,80.600000,hi +25.100000,80.600000,hi +25.100000,80.500000,hi +25.200000,80.500000,hi +25.300000,80.500000,hi +25.300000,80.600000,hi +25.200000,80.600000,hi +25.200000,80.700000,hi +25.300000,80.700000,hi +25.300000,80.800000,hi +25.200000,80.800000,hi +25.100000,80.800000,hi +25.100000,80.700000,hi +25.000000,80.700000,hi +25.000000,80.800000,hi +24.900000,80.800000,hi +24.900000,80.700000,hi +24.900000,80.600000,hi +24.900000,80.500000,hi +24.800000,80.500000,hi +24.800000,80.600000,hi +24.700000,80.500000,hi +24.700000,80.600000,hi +24.700000,80.700000,hi +24.800000,80.700000,hi +24.800000,80.800000,hi +24.700000,80.800000,hi +24.600000,80.800000,hi +24.600000,80.700000,hi +24.500000,80.700000,hi +24.500000,80.800000,hi +24.400000,80.800000,hi +24.300000,80.800000,hi +24.300000,80.700000,hi +24.400000,80.700000,hi +24.400000,80.600000,hi +24.300000,80.600000,hi +24.300000,80.500000,hi +24.400000,80.500000,hi +24.500000,80.500000,hi +24.500000,80.600000,hi +24.600000,80.600000,hi +24.600000,80.500000,hi +24.500000,80.400000,hi +24.500000,80.300000,hi +24.500000,80.200000,hi +24.500000,80.100000,hi +24.400000,80.100000,hi +24.400000,80.200000,hi +24.300000,80.100000,hi +24.300000,80.200000,hi +24.300000,80.300000,hi +24.400000,80.300000,hi +24.400000,80.400000,hi +24.300000,80.400000,hi +24.200000,80.400000,hi +24.100000,80.400000,hi +24.100000,80.300000,hi +24.200000,80.300000,hi +24.200000,80.200000,hi +24.200000,80.100000,hi +24.100000,80.100000,hi +24.100000,80.200000,hi +24.000000,80.200000,hi +24.000000,80.100000,hi +23.900000,80.100000,hi +23.900000,80.200000,hi +23.900000,80.300000,hi +24.000000,80.300000,hi +24.000000,80.400000,hi +23.900000,80.400000,hi +23.900000,80.500000,hi +23.900000,80.600000,hi +24.000000,80.600000,hi +24.000000,80.500000,hi +24.100000,80.500000,hi +24.200000,80.500000,hi +24.200000,80.600000,hi +24.100000,80.600000,hi +24.100000,80.700000,hi +24.200000,80.700000,hi +24.200000,80.800000,hi +24.100000,80.800000,hi +24.000000,80.800000,hi +24.000000,80.700000,hi +23.900000,80.700000,hi +23.900000,80.800000,hi +23.900000,80.900000,hi +24.000000,80.900000,hi +24.200000,80.900000,hi +24.100000,80.900000,hi +24.100000,81.000000,hi +24.200000,81.000000,hi +24.200000,81.100000,hi +24.100000,81.100000,hi +24.000000,81.100000,hi +24.000000,81.000000,hi +23.900000,81.000000,hi +23.900000,81.100000,hi +23.900000,81.200000,hi +24.000000,81.200000,hi +24.000000,81.300000,hi +23.900000,81.300000,hi +24.000000,81.500000,hi +24.000000,81.400000,hi +24.100000,81.400000,hi +24.100000,81.500000,hi +24.200000,81.500000,hi +24.200000,81.400000,hi +24.200000,81.300000,hi +24.100000,81.300000,hi +24.100000,81.200000,hi +24.200000,81.200000,hi +24.300000,81.200000,hi +24.400000,81.200000,hi +24.400000,81.300000,hi +24.300000,81.300000,hi +24.300000,81.400000,hi +24.300000,81.500000,hi +24.400000,81.500000,hi +24.400000,81.400000,hi +24.500000,81.400000,hi +24.500000,81.500000,hi +24.600000,81.500000,hi +24.600000,81.400000,hi +24.600000,81.300000,hi +24.500000,81.300000,hi +24.500000,81.200000,hi +24.600000,81.200000,hi +24.600000,81.100000,hi +24.600000,81.000000,hi +24.500000,81.000000,hi +24.500000,81.100000,hi +24.400000,81.100000,hi +24.300000,81.100000,hi +24.300000,81.000000,hi +24.400000,81.000000,hi +24.400000,80.900000,hi +24.300000,80.900000,hi +24.500000,80.900000,hi +24.600000,80.900000,hi +24.800000,80.900000,hi +24.700000,80.900000,hi +24.700000,81.000000,hi +24.700000,81.100000,hi +24.800000,81.100000,hi +24.800000,81.000000,hi +24.900000,81.000000,hi +24.900000,81.100000,hi +25.000000,81.100000,hi +25.000000,81.000000,hi +25.000000,80.900000,hi +24.900000,80.900000,hi +25.100000,80.900000,hi +25.300000,80.900000,hi +25.200000,80.900000,hi +25.200000,81.000000,hi +25.300000,81.000000,hi +25.300000,81.100000,hi +25.200000,81.100000,hi +25.100000,81.000000,hi +25.100000,81.100000,hi +25.100000,81.200000,hi +25.100000,81.300000,hi +25.200000,81.300000,hi +25.200000,81.200000,hi +25.300000,81.200000,hi +25.400000,81.300000,hi +25.300000,81.300000,hi +25.300000,81.400000,hi +25.400000,81.400000,hi +25.400000,81.500000,hi +25.300000,81.500000,hi +25.200000,81.500000,hi +25.200000,81.400000,hi +25.100000,81.400000,hi +25.100000,81.500000,hi +25.000000,81.500000,hi +24.900000,81.500000,hi +24.900000,81.400000,hi +25.000000,81.400000,hi +25.000000,81.300000,hi +25.000000,81.200000,hi +24.900000,81.200000,hi +24.900000,81.300000,hi +24.800000,81.300000,hi +24.800000,81.200000,hi +24.700000,81.200000,hi +24.700000,81.300000,hi +24.700000,81.400000,hi +24.800000,81.400000,hi +24.800000,81.500000,hi +24.700000,81.500000,hi +24.700000,81.600000,hi +24.800000,81.600000,hi +24.700000,81.700000,hi +24.700000,81.800000,hi +24.800000,81.800000,hi +24.800000,81.700000,hi +24.900000,81.700000,hi +24.900000,81.800000,hi +25.000000,81.800000,hi +25.000000,81.700000,hi +24.900000,81.600000,hi +25.000000,81.600000,hi +25.100000,81.600000,hi +25.200000,81.600000,hi +25.300000,81.600000,hi +25.400000,81.600000,hi +25.300000,81.700000,hi +25.400000,81.700000,hi +25.400000,81.800000,hi +25.300000,81.800000,hi +25.200000,81.800000,hi +25.200000,81.700000,hi +25.100000,81.700000,hi +25.100000,81.800000,hi +25.100000,81.900000,hi +25.100000,82.000000,hi +25.200000,82.000000,hi +25.200000,81.900000,hi +25.300000,81.900000,hi +25.400000,81.900000,hi +25.400000,82.000000,hi +25.300000,82.000000,hi +25.300000,82.100000,hi +25.400000,82.100000,hi +25.400000,82.200000,hi +25.300000,82.200000,hi +25.200000,82.200000,hi +25.200000,82.100000,hi +25.100000,82.100000,hi +25.100000,82.200000,hi +25.000000,82.200000,hi +24.900000,82.200000,hi +24.900000,82.100000,hi +25.000000,82.100000,hi +25.000000,82.000000,hi +25.000000,81.900000,hi +24.900000,81.900000,hi +24.900000,82.000000,hi +24.800000,82.000000,hi +24.800000,81.900000,hi +24.700000,81.900000,hi +24.700000,82.000000,hi +24.700000,82.100000,hi +24.800000,82.100000,hi +24.800000,82.200000,hi +24.700000,82.200000,hi +24.600000,82.100000,hi +24.600000,82.200000,hi +24.500000,82.200000,hi +24.400000,82.200000,hi +24.400000,82.100000,hi +24.500000,82.100000,hi +24.500000,82.000000,hi +24.400000,82.000000,hi +24.400000,81.900000,hi +24.500000,81.900000,hi +24.600000,82.000000,hi +24.600000,81.900000,hi +24.600000,81.800000,hi +24.500000,81.800000,hi +24.500000,81.700000,hi +24.600000,81.700000,hi +24.600000,81.600000,hi +24.500000,81.600000,hi +24.400000,81.600000,hi +24.300000,81.600000,hi +24.300000,81.700000,hi +24.400000,81.700000,hi +24.400000,81.800000,hi +24.300000,81.800000,hi +24.200000,81.800000,hi +24.200000,81.700000,hi +24.200000,81.600000,hi +24.100000,81.600000,hi +24.000000,81.600000,hi +24.000000,81.700000,hi +24.100000,81.700000,hi +24.100000,81.800000,hi +24.000000,81.800000,hi +24.000000,81.900000,hi +24.000000,82.000000,hi +24.100000,82.000000,hi +24.100000,81.900000,hi +24.200000,81.900000,hi +24.300000,81.900000,hi +24.300000,82.000000,hi +24.200000,82.000000,hi +24.200000,82.100000,hi +24.300000,82.100000,hi +24.300000,82.200000,hi +24.200000,82.200000,hi +24.100000,82.200000,hi +24.100000,82.100000,hi +24.000000,82.100000,hi +24.000000,82.200000,hi +23.900000,82.200000,hi +23.800000,82.200000,hi +23.800000,82.100000,hi +23.900000,82.100000,hi +23.900000,82.000000,hi +23.900000,81.900000,hi +23.800000,81.900000,hi +23.800000,82.000000,hi +23.700000,82.000000,hi +23.700000,81.900000,hi +23.600000,81.900000,hi +23.600000,82.000000,hi +23.600000,82.100000,hi +23.700000,82.100000,hi +23.700000,82.200000,hi +23.600000,82.200000,hi +23.500000,82.200000,hi +23.500000,82.100000,hi +23.400000,82.100000,hi +23.400000,82.200000,hi +23.300000,82.200000,hi +23.200000,82.200000,hi +23.200000,82.100000,hi +23.300000,82.100000,hi +23.300000,82.000000,hi +23.200000,82.000000,hi +23.200000,81.900000,hi +23.300000,81.900000,hi +23.400000,81.900000,hi +23.400000,82.000000,hi +23.500000,82.000000,hi +23.500000,81.900000,hi +23.500000,81.800000,hi +23.500000,81.700000,hi +23.400000,81.700000,hi +23.400000,81.800000,hi +23.300000,81.800000,hi +23.200000,81.800000,hi +23.200000,81.700000,hi +23.300000,81.700000,hi +23.200000,81.600000,hi +23.300000,81.600000,hi +23.400000,81.600000,hi +23.500000,81.600000,hi +23.600000,81.600000,hi +23.700000,81.600000,hi +23.600000,81.700000,hi +23.600000,81.800000,hi +23.700000,81.800000,hi +23.700000,81.700000,hi +23.800000,81.700000,hi +23.800000,81.800000,hi +23.900000,81.800000,hi +23.900000,81.700000,hi +23.800000,81.600000,hi +23.900000,81.600000,hi +23.900000,81.500000,hi +23.900000,81.400000,hi +23.800000,81.400000,hi +23.800000,81.500000,hi +23.700000,81.500000,hi +23.600000,81.500000,hi +23.600000,81.400000,hi +23.700000,81.400000,hi +23.700000,81.300000,hi +23.600000,81.300000,hi +23.600000,81.200000,hi +23.700000,81.200000,hi +23.800000,81.300000,hi +23.800000,81.200000,hi +23.800000,81.100000,hi +23.700000,81.100000,hi +23.700000,81.000000,hi +23.800000,81.000000,hi +23.800000,80.900000,hi +23.700000,80.900000,hi +23.600000,80.900000,hi +23.500000,80.900000,hi +23.600000,81.000000,hi +23.600000,81.100000,hi +23.500000,81.100000,hi +23.400000,81.100000,hi +23.400000,81.000000,hi +23.500000,81.000000,hi +23.400000,80.900000,hi +23.300000,80.900000,hi +23.200000,80.900000,hi +23.200000,81.000000,hi +23.300000,81.000000,hi +23.300000,81.100000,hi +23.200000,81.100000,hi +23.200000,81.200000,hi +23.200000,81.300000,hi +23.300000,81.300000,hi +23.300000,81.200000,hi +23.400000,81.200000,hi +23.500000,81.200000,hi +23.500000,81.300000,hi +23.400000,81.300000,hi +23.400000,81.400000,hi +23.500000,81.400000,hi +23.500000,81.500000,hi +23.400000,81.500000,hi +23.300000,81.500000,hi +23.300000,81.400000,hi +23.200000,81.400000,hi +23.200000,81.500000,hi +23.100000,81.500000,hi +23.100000,81.400000,hi +23.000000,81.400000,hi +23.000000,81.500000,hi +22.900000,81.500000,hi +22.800000,81.500000,hi +22.800000,81.400000,hi +22.900000,81.400000,hi +22.900000,81.300000,hi +22.800000,81.300000,hi +22.800000,81.200000,hi +22.900000,81.200000,hi +23.000000,81.200000,hi +23.000000,81.300000,hi +23.100000,81.300000,hi +23.100000,81.200000,hi +23.100000,81.100000,hi +23.000000,81.100000,hi +23.000000,81.000000,hi +23.100000,81.000000,hi +23.100000,80.900000,hi +23.000000,80.900000,hi +22.900000,80.900000,hi +22.800000,80.900000,hi +22.800000,81.000000,hi +22.900000,81.000000,hi +22.900000,81.100000,hi +22.800000,81.100000,hi +22.700000,81.100000,hi +22.600000,81.100000,hi +22.600000,81.000000,hi +22.700000,81.000000,hi +22.700000,80.900000,hi +22.600000,80.900000,hi +22.500000,80.900000,hi +22.400000,80.900000,hi +22.400000,81.000000,hi +22.500000,81.000000,hi +22.500000,81.100000,hi +22.400000,81.100000,hi +22.400000,81.200000,hi +22.400000,81.300000,hi +22.500000,81.300000,hi +22.500000,81.200000,hi +22.600000,81.200000,hi +22.700000,81.200000,hi +22.700000,81.300000,hi +22.600000,81.300000,hi +22.600000,81.400000,hi +22.700000,81.400000,hi +22.700000,81.500000,hi +22.600000,81.500000,hi +22.500000,81.500000,hi +22.500000,81.400000,hi +22.400000,81.400000,hi +22.400000,81.500000,hi +22.500000,81.600000,hi +22.500000,81.700000,hi +22.500000,81.800000,hi +22.600000,81.800000,hi +22.600000,81.700000,hi +22.700000,81.800000,hi +22.700000,81.700000,hi +22.600000,81.600000,hi +22.700000,81.600000,hi +22.800000,81.600000,hi +22.900000,81.600000,hi +23.000000,81.600000,hi +23.100000,81.600000,hi +23.000000,81.700000,hi +23.100000,81.700000,hi +23.100000,81.800000,hi +23.000000,81.800000,hi +22.900000,81.800000,hi +22.900000,81.700000,hi +22.800000,81.700000,hi +22.800000,81.800000,hi +22.800000,81.900000,hi +22.900000,82.000000,hi +22.900000,81.900000,hi +23.000000,81.900000,hi +23.100000,81.900000,hi +23.100000,82.000000,hi +23.000000,82.000000,hi +23.000000,82.100000,hi +23.100000,82.100000,hi +23.100000,82.200000,hi +23.000000,82.200000,hi +22.900000,82.100000,hi +22.900000,82.200000,hi +22.800000,82.200000,hi +22.700000,82.200000,hi +22.700000,82.100000,hi +22.800000,82.100000,hi +22.800000,82.000000,hi +22.700000,81.900000,hi +22.700000,82.000000,hi +22.600000,82.000000,hi +22.600000,81.900000,hi +22.500000,81.900000,hi +22.500000,82.000000,hi +22.500000,82.100000,hi +22.600000,82.100000,hi +22.600000,82.200000,hi +22.500000,82.200000,hi +22.500000,82.300000,hi +22.600000,82.300000,hi +22.700000,82.300000,hi +22.800000,82.300000,hi +22.700000,82.400000,hi +22.800000,82.400000,hi +22.800000,82.500000,hi +22.700000,82.500000,hi +22.600000,82.500000,hi +22.600000,82.400000,hi +22.500000,82.400000,hi +22.500000,82.500000,hi +22.500000,82.600000,hi +22.600000,82.600000,hi +22.600000,82.700000,hi +22.500000,82.700000,hi +22.500000,82.800000,hi +22.500000,82.900000,hi +22.600000,82.900000,hi +22.600000,82.800000,hi +22.700000,82.800000,hi +22.700000,82.900000,hi +22.800000,82.900000,hi +22.800000,82.800000,hi +22.800000,82.700000,hi +22.700000,82.700000,hi +22.700000,82.600000,hi +22.800000,82.600000,hi +22.900000,82.600000,hi +23.000000,82.600000,hi +23.000000,82.700000,hi +22.900000,82.700000,hi +22.900000,82.800000,hi +22.900000,82.900000,hi +23.000000,82.900000,hi +23.000000,82.800000,hi +23.100000,82.800000,hi +23.100000,82.900000,hi +23.200000,82.900000,hi +23.200000,82.800000,hi +23.200000,82.700000,hi +23.100000,82.700000,hi +23.100000,82.600000,hi +23.200000,82.600000,hi +23.200000,82.500000,hi +23.100000,82.400000,hi +23.100000,82.500000,hi +23.000000,82.500000,hi +22.900000,82.500000,hi +22.900000,82.400000,hi +23.000000,82.400000,hi +22.900000,82.300000,hi +23.000000,82.300000,hi +23.100000,82.300000,hi +23.200000,82.300000,hi +23.300000,82.300000,hi +23.200000,82.400000,hi +23.300000,82.500000,hi +23.300000,82.400000,hi +23.400000,82.400000,hi +23.400000,82.500000,hi +23.500000,82.500000,hi +23.500000,82.400000,hi +23.400000,82.300000,hi +23.500000,82.300000,hi +23.600000,82.300000,hi +23.700000,82.300000,hi +23.800000,82.300000,hi +23.900000,82.300000,hi +23.800000,82.400000,hi +23.900000,82.400000,hi +23.900000,82.500000,hi +23.800000,82.500000,hi +23.700000,82.500000,hi +23.700000,82.400000,hi +23.600000,82.400000,hi +23.600000,82.500000,hi +23.600000,82.600000,hi +23.600000,82.700000,hi +23.700000,82.700000,hi +23.700000,82.600000,hi +23.800000,82.600000,hi +23.900000,82.600000,hi +23.900000,82.700000,hi +23.800000,82.700000,hi +23.800000,82.800000,hi +23.900000,82.800000,hi +23.900000,82.900000,hi +23.800000,82.900000,hi +23.700000,82.900000,hi +23.700000,82.800000,hi +23.600000,82.800000,hi +23.600000,82.900000,hi +23.500000,82.900000,hi +23.500000,82.800000,hi +23.500000,82.700000,hi +23.500000,82.600000,hi +23.400000,82.600000,hi +23.400000,82.700000,hi +23.300000,82.600000,hi +23.300000,82.700000,hi +23.300000,82.800000,hi +23.400000,82.800000,hi +23.400000,82.900000,hi +23.300000,82.900000,hi +23.400000,83.000000,hi +23.300000,83.000000,hi +23.300000,83.100000,hi +23.300000,83.200000,hi +23.400000,83.200000,hi +23.400000,83.100000,hi +23.500000,83.100000,hi +23.500000,83.200000,hi +23.600000,83.200000,hi +23.600000,83.100000,hi +23.600000,83.000000,hi +23.500000,83.000000,hi +23.700000,83.000000,hi +23.900000,83.000000,hi +23.800000,83.000000,hi +23.800000,83.100000,hi +23.900000,83.100000,hi +23.900000,83.200000,hi +23.800000,83.200000,hi +23.700000,83.100000,hi +23.700000,83.200000,hi +23.700000,83.300000,hi +23.700000,83.400000,hi +23.800000,83.400000,hi +23.800000,83.300000,hi +23.900000,83.300000,hi +24.000000,83.400000,hi +23.900000,83.400000,hi +23.900000,83.500000,hi +24.000000,83.500000,hi +23.800000,83.500000,hi +23.700000,83.500000,hi +23.500000,83.500000,hi +23.600000,83.500000,hi +23.600000,83.400000,hi +23.600000,83.300000,hi +23.500000,83.300000,hi +23.500000,83.400000,hi +23.400000,83.400000,hi +23.400000,83.300000,hi +23.300000,83.300000,hi +23.300000,83.400000,hi +23.300000,83.500000,hi +23.400000,83.500000,hi +23.200000,83.500000,hi +23.100000,83.500000,hi +22.900000,83.500000,hi +23.000000,83.500000,hi +23.000000,83.400000,hi +22.900000,83.400000,hi +22.900000,83.300000,hi +23.000000,83.300000,hi +23.100000,83.300000,hi +23.100000,83.400000,hi +23.200000,83.400000,hi +23.200000,83.300000,hi +23.200000,83.200000,hi +23.100000,83.200000,hi +23.100000,83.100000,hi +23.200000,83.100000,hi +23.200000,83.000000,hi +23.100000,83.000000,hi +23.000000,83.000000,hi +22.900000,83.000000,hi +22.900000,83.100000,hi +23.000000,83.100000,hi +23.000000,83.200000,hi +22.900000,83.200000,hi +22.800000,83.200000,hi +22.700000,83.200000,hi +22.700000,83.100000,hi +22.800000,83.100000,hi +22.800000,83.000000,hi +22.700000,83.000000,hi +22.600000,83.000000,hi +22.500000,83.000000,hi +22.500000,83.100000,hi +22.600000,83.100000,hi +22.600000,83.200000,hi +22.500000,83.200000,hi +22.500000,83.300000,hi +22.500000,83.400000,hi +22.600000,83.400000,hi +22.600000,83.300000,hi +22.700000,83.300000,hi +22.800000,83.300000,hi +22.800000,83.400000,hi +22.700000,83.400000,hi +22.700000,83.500000,hi +22.800000,83.500000,hi +22.600000,83.500000,hi +22.500000,83.500000,hi +22.500000,83.600000,hi +22.600000,83.600000,hi +22.600000,83.700000,hi +22.500000,83.700000,hi +22.600000,83.900000,hi +22.600000,83.800000,hi +22.700000,83.800000,hi +22.700000,83.900000,hi +22.800000,83.900000,hi +22.800000,83.800000,hi +22.800000,83.700000,hi +22.700000,83.700000,hi +22.700000,83.600000,hi +22.800000,83.600000,hi +22.900000,83.600000,hi +22.900000,83.700000,hi +23.000000,83.700000,hi +23.000000,83.600000,hi +23.100000,83.600000,hi +23.200000,83.600000,hi +23.200000,83.700000,hi +23.100000,83.700000,hi +23.100000,83.800000,hi +23.200000,83.800000,hi +23.200000,83.900000,hi +23.100000,83.900000,hi +23.000000,83.900000,hi +23.000000,83.800000,hi +22.900000,83.800000,hi +22.900000,83.900000,hi +22.900000,84.000000,hi +22.900000,84.100000,hi +23.000000,84.100000,hi +23.000000,84.000000,hi +23.100000,84.000000,hi +23.200000,84.000000,hi +23.200000,84.100000,hi +23.100000,84.100000,hi +23.200000,84.200000,hi +23.100000,84.200000,hi +23.000000,84.200000,hi +22.900000,84.200000,hi +22.800000,84.200000,hi +22.800000,84.100000,hi +22.800000,84.000000,hi +22.700000,84.000000,hi +22.700000,84.100000,hi +22.600000,84.000000,hi +22.600000,84.100000,hi +22.700000,84.200000,hi +22.600000,84.200000,hi +22.600000,84.300000,hi +22.600000,84.400000,hi +22.700000,84.400000,hi +22.700000,84.300000,hi +22.800000,84.300000,hi +22.900000,84.400000,hi +22.800000,84.400000,hi +22.800000,84.500000,hi +22.900000,84.500000,hi +22.900000,84.600000,hi +22.800000,84.600000,hi +22.700000,84.600000,hi +22.700000,84.500000,hi +22.600000,84.500000,hi +22.600000,84.600000,hi +22.700000,84.700000,hi +22.600000,84.700000,hi +22.600000,84.800000,hi +22.600000,84.900000,hi +22.700000,84.900000,hi +22.700000,84.800000,hi +22.800000,84.800000,hi +22.800000,84.900000,hi +22.900000,84.900000,hi +22.900000,84.800000,hi +22.900000,84.700000,hi +22.800000,84.700000,hi +23.100000,84.700000,hi +23.000000,84.700000,hi +23.000000,84.800000,hi +23.000000,84.900000,hi +23.100000,84.900000,hi +23.100000,84.800000,hi +23.200000,84.800000,hi +23.200000,84.900000,hi +23.200000,84.700000,hi +23.200000,84.600000,hi +23.200000,84.500000,hi +23.100000,84.500000,hi +23.100000,84.600000,hi +23.000000,84.600000,hi +23.000000,84.500000,hi +23.000000,84.400000,hi +22.900000,84.300000,hi +23.000000,84.300000,hi +23.100000,84.300000,hi +23.100000,84.400000,hi +23.200000,84.400000,hi +23.200000,84.300000,hi +23.300000,84.300000,hi +23.300000,84.400000,hi +23.400000,84.400000,hi +23.400000,84.300000,hi +23.500000,84.300000,hi +23.600000,84.300000,hi +23.600000,84.400000,hi +23.500000,84.400000,hi +23.500000,84.500000,hi +23.600000,84.500000,hi +23.600000,84.600000,hi +23.500000,84.600000,hi +23.400000,84.600000,hi +23.400000,84.500000,hi +23.300000,84.500000,hi +23.300000,84.600000,hi +23.400000,84.700000,hi +23.300000,84.700000,hi +23.300000,84.800000,hi +23.300000,84.900000,hi +23.400000,84.900000,hi +23.400000,84.800000,hi +23.500000,84.800000,hi +23.500000,84.900000,hi +23.600000,84.900000,hi +23.600000,84.800000,hi +23.600000,84.700000,hi +23.500000,84.700000,hi +23.800000,84.700000,hi +23.700000,84.700000,hi +23.700000,84.800000,hi +23.700000,84.900000,hi +23.800000,84.900000,hi +23.800000,84.800000,hi +23.900000,84.800000,hi +23.900000,84.900000,hi +24.000000,84.900000,hi +24.000000,84.800000,hi +24.000000,84.700000,hi +23.900000,84.700000,hi +24.000000,84.600000,hi +24.000000,84.500000,hi +23.900000,84.500000,hi +23.900000,84.600000,hi +23.800000,84.600000,hi +23.700000,84.600000,hi +23.700000,84.500000,hi +23.800000,84.500000,hi +23.800000,84.400000,hi +23.700000,84.400000,hi +23.700000,84.300000,hi +23.800000,84.300000,hi +23.900000,84.300000,hi +23.900000,84.400000,hi +24.000000,84.400000,hi +24.000000,84.300000,hi +24.000000,84.200000,hi +23.900000,84.200000,hi +24.000000,84.100000,hi +24.000000,84.000000,hi +23.900000,84.000000,hi +23.900000,84.100000,hi +23.800000,84.100000,hi +23.800000,84.000000,hi +23.700000,84.000000,hi +23.700000,84.100000,hi +23.800000,84.200000,hi +23.700000,84.200000,hi +23.600000,84.200000,hi +23.500000,84.200000,hi +23.400000,84.200000,hi +23.300000,84.200000,hi +23.400000,84.100000,hi +23.300000,84.100000,hi +23.300000,84.000000,hi +23.400000,84.000000,hi +23.500000,84.000000,hi +23.500000,84.100000,hi +23.600000,84.100000,hi +23.600000,84.000000,hi +23.600000,83.900000,hi +23.600000,83.800000,hi +23.500000,83.800000,hi +23.500000,83.900000,hi +23.400000,83.900000,hi +23.300000,83.900000,hi +23.300000,83.800000,hi +23.400000,83.800000,hi +23.400000,83.700000,hi +23.300000,83.700000,hi +23.300000,83.600000,hi +23.400000,83.600000,hi +23.500000,83.600000,hi +23.500000,83.700000,hi +23.600000,83.700000,hi +23.600000,83.600000,hi +23.700000,83.600000,hi +23.800000,83.600000,hi +23.800000,83.700000,hi +23.700000,83.700000,hi +23.700000,83.800000,hi +23.700000,83.900000,hi +23.800000,83.900000,hi +23.800000,83.800000,hi +23.900000,83.800000,hi +23.900000,83.900000,hi +24.000000,83.900000,hi +24.000000,83.800000,hi +24.000000,83.700000,hi +23.900000,83.700000,hi +23.900000,83.600000,hi +24.000000,83.600000,hi +24.100000,83.600000,hi +24.200000,83.700000,hi +24.100000,83.700000,hi +24.100000,83.800000,hi +24.100000,83.900000,hi +24.200000,83.900000,hi +24.200000,83.800000,hi +24.300000,83.800000,hi +24.300000,83.900000,hi +24.400000,83.900000,hi +24.300000,83.700000,hi +24.200000,83.600000,hi +24.300000,83.600000,hi +24.400000,83.600000,hi +24.400000,83.700000,hi +24.500000,83.700000,hi +24.500000,83.600000,hi +24.600000,83.600000,hi +24.700000,83.600000,hi +24.700000,83.700000,hi +24.600000,83.700000,hi +24.600000,83.800000,hi +24.700000,83.800000,hi +24.700000,83.900000,hi +24.600000,83.900000,hi +24.500000,83.900000,hi +24.500000,83.800000,hi +24.400000,83.800000,hi +24.500000,84.000000,hi +24.500000,84.100000,hi +24.600000,84.000000,hi +24.700000,84.000000,hi +24.700000,84.100000,hi +24.600000,84.100000,hi +24.700000,84.200000,hi +24.600000,84.200000,hi +24.500000,84.200000,hi +24.400000,84.200000,hi +24.300000,84.200000,hi +24.400000,84.100000,hi +24.400000,84.000000,hi +24.300000,84.000000,hi +24.300000,84.100000,hi +24.200000,84.100000,hi +24.200000,84.000000,hi +24.100000,84.000000,hi +24.100000,84.100000,hi +24.200000,84.200000,hi +24.100000,84.200000,hi +24.100000,84.300000,hi +24.100000,84.400000,hi +24.200000,84.400000,hi +24.200000,84.300000,hi +24.300000,84.300000,hi +24.400000,84.300000,hi +24.400000,84.400000,hi +24.300000,84.400000,hi +24.300000,84.500000,hi +24.400000,84.500000,hi +24.400000,84.600000,hi +24.300000,84.600000,hi +24.200000,84.600000,hi +24.200000,84.500000,hi +24.100000,84.500000,hi +24.100000,84.600000,hi +24.200000,84.700000,hi +24.100000,84.700000,hi +24.100000,84.800000,hi +24.100000,84.900000,hi +24.200000,84.900000,hi +24.200000,84.800000,hi +24.300000,84.800000,hi +24.300000,84.900000,hi +24.400000,84.900000,hi +24.400000,84.800000,hi +24.400000,84.700000,hi +24.300000,84.700000,hi +24.600000,84.700000,hi +24.500000,84.700000,hi +24.500000,84.800000,hi +24.500000,84.900000,hi +24.600000,84.900000,hi +24.600000,84.800000,hi +24.700000,84.800000,hi +24.700000,84.900000,hi +24.800000,84.900000,hi +24.800000,84.800000,hi +24.800000,84.700000,hi +24.700000,84.700000,hi +24.800000,84.600000,hi +24.800000,84.500000,hi +24.700000,84.500000,hi +24.700000,84.600000,hi +24.600000,84.600000,hi +24.500000,84.600000,hi +24.500000,84.500000,hi +24.600000,84.500000,hi +24.600000,84.400000,hi +24.500000,84.400000,hi +24.500000,84.300000,hi +24.600000,84.300000,hi +24.700000,84.300000,hi +24.700000,84.400000,hi +24.800000,84.300000,hi +24.800000,84.400000,hi +24.900000,84.400000,hi +24.900000,84.300000,hi +25.000000,84.300000,hi +25.100000,84.300000,hi +25.100000,84.400000,hi +25.000000,84.400000,hi +25.000000,84.500000,hi +25.100000,84.500000,hi +25.100000,84.600000,hi +25.000000,84.600000,hi +24.900000,84.500000,hi +24.900000,84.600000,hi +24.900000,84.700000,hi +24.900000,84.800000,hi +24.900000,84.900000,hi +25.000000,84.900000,hi +25.000000,84.800000,hi +25.100000,84.900000,hi +25.100000,84.800000,hi +25.100000,84.700000,hi +25.000000,84.700000,hi +25.300000,84.700000,hi +25.200000,84.700000,hi +25.200000,84.800000,hi +25.200000,84.900000,hi +25.300000,84.900000,hi +25.300000,84.800000,hi +25.400000,84.800000,hi +25.400000,84.900000,hi +25.500000,84.900000,hi +25.500000,84.800000,hi +25.500000,84.700000,hi +25.400000,84.700000,hi +25.500000,84.600000,hi +25.500000,84.500000,hi +25.400000,84.500000,hi +25.400000,84.600000,hi +25.300000,84.600000,hi +25.200000,84.600000,hi +25.200000,84.500000,hi +25.300000,84.500000,hi +25.300000,84.400000,hi +25.200000,84.400000,hi +25.200000,84.300000,hi +25.300000,84.300000,hi +25.400000,84.300000,hi +25.400000,84.400000,hi +25.500000,84.400000,hi +25.500000,84.300000,hi +25.500000,84.200000,hi +25.400000,84.200000,hi +25.500000,84.100000,hi +25.500000,84.000000,hi +25.400000,84.000000,hi +25.400000,84.100000,hi +25.300000,84.100000,hi +25.300000,84.000000,hi +25.200000,84.000000,hi +25.200000,84.100000,hi +25.300000,84.200000,hi +25.200000,84.200000,hi +25.100000,84.200000,hi +25.000000,84.200000,hi +24.900000,84.200000,hi +24.800000,84.200000,hi +24.900000,84.100000,hi +24.800000,84.100000,hi +24.800000,84.000000,hi +24.900000,84.000000,hi +25.000000,84.000000,hi +25.000000,84.100000,hi +25.100000,84.100000,hi +25.100000,84.000000,hi +25.100000,83.900000,hi +25.100000,83.800000,hi +25.000000,83.800000,hi +25.000000,83.900000,hi +24.900000,83.900000,hi +24.800000,83.900000,hi +24.800000,83.800000,hi +24.900000,83.800000,hi +24.900000,83.700000,hi +24.800000,83.700000,hi +24.800000,83.600000,hi +24.900000,83.600000,hi +25.000000,83.600000,hi +25.000000,83.700000,hi +25.100000,83.700000,hi +25.100000,83.600000,hi +25.200000,83.600000,hi +25.300000,83.600000,hi +25.300000,83.700000,hi +25.200000,83.700000,hi +25.200000,83.800000,hi +25.200000,83.900000,hi +25.300000,83.900000,hi +25.300000,83.800000,hi +25.400000,83.800000,hi +25.400000,83.900000,hi +25.500000,83.900000,hi +25.500000,83.800000,hi +25.500000,83.700000,hi +25.400000,83.700000,hi +25.400000,83.600000,hi +25.500000,83.600000,hi +25.500000,83.500000,hi +25.400000,83.500000,hi +25.200000,83.500000,hi +25.300000,83.500000,hi +25.300000,83.400000,hi +25.200000,83.400000,hi +25.200000,83.300000,hi +25.300000,83.300000,hi +25.400000,83.300000,hi +25.400000,83.400000,hi +25.500000,83.400000,hi +25.500000,83.300000,hi +25.500000,83.200000,hi +25.400000,83.200000,hi +25.400000,83.100000,hi +25.500000,83.100000,hi +25.400000,83.000000,hi +25.300000,83.000000,hi +25.200000,83.000000,hi +25.200000,83.100000,hi +25.300000,83.100000,hi +25.300000,83.200000,hi +25.200000,83.200000,hi +25.100000,83.200000,hi +25.000000,83.200000,hi +25.000000,83.100000,hi +25.100000,83.100000,hi +25.100000,83.000000,hi +25.000000,83.000000,hi +24.900000,83.000000,hi +24.800000,83.000000,hi +24.800000,83.100000,hi +24.900000,83.100000,hi +24.900000,83.200000,hi +24.800000,83.200000,hi +24.800000,83.300000,hi +24.800000,83.400000,hi +24.900000,83.400000,hi +24.900000,83.300000,hi +25.000000,83.300000,hi +25.100000,83.300000,hi +25.100000,83.400000,hi +25.000000,83.400000,hi +25.000000,83.500000,hi +25.100000,83.500000,hi +24.900000,83.500000,hi +24.800000,83.500000,hi +24.600000,83.500000,hi +24.700000,83.500000,hi +24.700000,83.400000,hi +24.700000,83.300000,hi +24.600000,83.300000,hi +24.600000,83.400000,hi +24.500000,83.400000,hi +24.500000,83.300000,hi +24.400000,83.300000,hi +24.400000,83.400000,hi +24.400000,83.500000,hi +24.500000,83.500000,hi +24.300000,83.500000,hi +24.200000,83.500000,hi +24.100000,83.500000,hi +24.100000,83.400000,hi +24.000000,83.300000,hi +24.100000,83.300000,hi +24.200000,83.300000,hi +24.200000,83.400000,hi +24.300000,83.400000,hi +24.300000,83.300000,hi +24.300000,83.200000,hi +24.300000,83.100000,hi +24.200000,83.100000,hi +24.200000,83.200000,hi +24.100000,83.200000,hi +24.000000,83.200000,hi +24.000000,83.100000,hi +24.100000,83.100000,hi +24.100000,83.000000,hi +24.000000,83.000000,hi +24.200000,83.000000,hi +24.300000,83.000000,hi +24.500000,83.000000,hi +24.400000,83.000000,hi +24.400000,83.100000,hi +24.400000,83.200000,hi +24.500000,83.200000,hi +24.500000,83.100000,hi +24.600000,83.100000,hi +24.600000,83.200000,hi +24.700000,83.200000,hi +24.700000,83.100000,hi +24.700000,83.000000,hi +24.600000,83.000000,hi +24.700000,82.900000,hi +24.600000,82.900000,hi +24.600000,82.800000,hi +24.700000,82.800000,hi +24.700000,82.700000,hi +24.700000,82.600000,hi +24.600000,82.600000,hi +24.600000,82.700000,hi +24.500000,82.700000,hi +24.500000,82.600000,hi +24.400000,82.600000,hi +24.400000,82.700000,hi +24.400000,82.800000,hi +24.500000,82.800000,hi +24.500000,82.900000,hi +24.400000,82.900000,hi +24.300000,82.900000,hi +24.300000,82.800000,hi +24.200000,82.800000,hi +24.200000,82.900000,hi +24.100000,82.900000,hi +24.000000,82.900000,hi +24.000000,82.800000,hi +24.100000,82.800000,hi +24.100000,82.700000,hi +24.000000,82.700000,hi +24.000000,82.600000,hi +24.100000,82.600000,hi +24.200000,82.600000,hi +24.200000,82.700000,hi +24.300000,82.700000,hi +24.300000,82.600000,hi +24.300000,82.500000,hi +24.300000,82.400000,hi +24.200000,82.400000,hi +24.200000,82.500000,hi +24.100000,82.500000,hi +24.000000,82.500000,hi +24.000000,82.400000,hi +24.100000,82.400000,hi +24.000000,82.300000,hi +24.100000,82.300000,hi +24.200000,82.300000,hi +24.300000,82.300000,hi +24.400000,82.300000,hi +24.500000,82.300000,hi +24.400000,82.400000,hi +24.400000,82.500000,hi +24.500000,82.500000,hi +24.500000,82.400000,hi +24.600000,82.400000,hi +24.600000,82.500000,hi +24.700000,82.500000,hi +24.700000,82.400000,hi +24.600000,82.300000,hi +24.700000,82.300000,hi +24.800000,82.300000,hi +24.900000,82.300000,hi +25.000000,82.300000,hi +25.000000,82.400000,hi +25.000000,82.500000,hi +24.900000,82.500000,hi +24.900000,82.400000,hi +24.800000,82.400000,hi +24.800000,82.500000,hi +24.800000,82.600000,hi +24.900000,82.600000,hi +24.900000,82.700000,hi +24.800000,82.700000,hi +24.800000,82.800000,hi +24.800000,82.900000,hi +24.900000,82.900000,hi +24.900000,82.800000,hi +25.000000,82.800000,hi +25.000000,82.900000,hi +25.100000,82.900000,hi +25.100000,82.800000,hi +25.100000,82.700000,hi +25.000000,82.700000,hi +25.000000,82.600000,hi +25.100000,82.600000,hi +25.200000,82.600000,hi +25.200000,82.700000,hi +25.200000,82.800000,hi +25.200000,82.900000,hi +25.300000,82.900000,hi +25.300000,82.800000,hi +25.400000,82.900000,hi +25.400000,82.800000,hi +25.400000,82.700000,hi +25.300000,82.700000,hi +25.300000,82.600000,hi +25.400000,82.600000,hi +25.400000,82.500000,hi +25.400000,82.400000,hi +25.300000,82.400000,hi +25.300000,82.500000,hi +25.200000,82.500000,hi +25.100000,82.500000,hi +25.100000,82.400000,hi +25.200000,82.400000,hi +25.100000,82.300000,hi +25.200000,82.300000,hi +25.300000,82.300000,hi +25.400000,82.300000,hi +25.500000,82.300000,hi +25.600000,82.300000,hi +25.700000,82.300000,hi +25.800000,82.300000,hi +25.700000,82.400000,hi +25.800000,82.400000,hi +25.800000,82.500000,hi +25.700000,82.500000,hi +25.600000,82.500000,hi +25.600000,82.400000,hi +25.500000,82.400000,hi +25.500000,82.500000,hi +25.500000,82.600000,hi +25.600000,82.600000,hi +25.600000,82.700000,hi +25.500000,82.700000,hi +25.500000,82.800000,hi +25.500000,82.900000,hi +25.600000,82.900000,hi +25.600000,82.800000,hi +25.700000,82.800000,hi +25.700000,82.900000,hi +25.800000,82.900000,hi +25.800000,82.800000,hi +25.800000,82.700000,hi +25.700000,82.700000,hi +25.700000,82.600000,hi +25.800000,82.600000,hi +25.900000,82.600000,hi +26.000000,82.600000,hi +26.000000,82.700000,hi +25.900000,82.700000,hi +25.900000,82.800000,hi +25.900000,82.900000,hi +26.000000,82.900000,hi +26.000000,82.800000,hi +26.100000,82.800000,hi +26.100000,82.900000,hi +26.200000,82.900000,hi +26.200000,82.800000,hi +26.200000,82.700000,hi +26.100000,82.700000,hi +26.100000,82.600000,hi +26.200000,82.600000,hi +26.200000,82.500000,hi +26.200000,82.400000,hi +26.100000,82.400000,hi +26.100000,82.500000,hi +26.000000,82.500000,hi +25.900000,82.500000,hi +25.900000,82.400000,hi +26.000000,82.400000,hi +25.900000,82.300000,hi +26.000000,82.300000,hi +26.100000,82.300000,hi +26.200000,82.300000,hi +26.300000,82.300000,hi +26.400000,82.300000,hi +26.300000,82.400000,hi +26.300000,82.500000,hi +26.400000,82.500000,hi +26.400000,82.400000,hi +26.500000,82.400000,hi +26.500000,82.500000,hi +26.500000,82.300000,hi +26.600000,82.300000,hi +26.700000,82.300000,hi +26.800000,82.300000,hi +26.900000,82.300000,hi +26.800000,82.400000,hi +26.900000,82.400000,hi +26.900000,82.500000,hi +26.800000,82.500000,hi +26.700000,82.500000,hi +26.700000,82.400000,hi +26.600000,82.400000,hi +26.600000,82.500000,hi +26.700000,82.700000,hi +26.700000,82.600000,hi +26.800000,82.600000,hi +26.900000,82.600000,hi +26.900000,82.700000,hi +26.800000,82.700000,hi +26.900000,82.800000,hi +26.900000,82.900000,hi +26.800000,82.900000,hi +26.800000,82.800000,hi +26.700000,82.800000,hi +26.700000,82.900000,hi +26.600000,82.900000,hi +26.500000,82.900000,hi +26.500000,82.800000,hi +26.600000,82.800000,hi +26.600000,82.700000,hi +26.600000,82.600000,hi +26.500000,82.600000,hi +26.500000,82.700000,hi +26.400000,82.700000,hi +26.400000,82.600000,hi +26.300000,82.600000,hi +26.300000,82.700000,hi +26.300000,82.800000,hi +26.400000,82.800000,hi +26.400000,82.900000,hi +26.300000,82.900000,hi +26.400000,83.000000,hi +26.300000,83.000000,hi +26.300000,83.100000,hi +26.300000,83.200000,hi +26.400000,83.200000,hi +26.400000,83.100000,hi +26.500000,83.100000,hi +26.500000,83.200000,hi +26.600000,83.200000,hi +26.600000,83.100000,hi +26.600000,83.000000,hi +26.500000,83.000000,hi +26.700000,83.000000,hi +26.800000,83.000000,hi +26.900000,83.000000,hi +26.900000,83.100000,hi +27.000000,83.100000,hi +27.000000,83.200000,hi +26.900000,83.200000,hi +26.800000,83.200000,hi +26.800000,83.100000,hi +26.700000,83.100000,hi +26.700000,83.200000,hi +26.700000,83.300000,hi +26.700000,83.400000,hi +26.800000,83.400000,hi +26.800000,83.300000,hi +26.900000,83.300000,hi +27.000000,83.300000,hi +27.000000,83.400000,hi +26.900000,83.400000,hi +26.900000,83.500000,hi +27.000000,83.500000,hi +26.800000,83.500000,hi +26.700000,83.500000,hi +26.500000,83.500000,hi +26.600000,83.500000,hi +26.600000,83.400000,hi +26.600000,83.300000,hi +26.500000,83.300000,hi +26.500000,83.400000,hi +26.400000,83.400000,hi +26.400000,83.300000,hi +26.300000,83.300000,hi +26.300000,83.400000,hi +26.300000,83.500000,hi +26.400000,83.500000,hi +26.200000,83.500000,hi +26.100000,83.500000,hi +25.900000,83.500000,hi +26.000000,83.500000,hi +26.000000,83.400000,hi +25.900000,83.400000,hi +25.900000,83.300000,hi +26.000000,83.300000,hi +26.100000,83.300000,hi +26.100000,83.400000,hi +26.200000,83.400000,hi +26.200000,83.300000,hi +26.200000,83.200000,hi +26.100000,83.200000,hi +26.100000,83.100000,hi +26.200000,83.100000,hi +26.200000,83.000000,hi +26.100000,83.000000,hi +26.000000,83.000000,hi +25.900000,83.000000,hi +25.900000,83.100000,hi +26.000000,83.100000,hi +26.000000,83.200000,hi +25.900000,83.200000,hi +25.800000,83.200000,hi +25.700000,83.200000,hi +25.700000,83.100000,hi +25.800000,83.100000,hi +25.800000,83.000000,hi +25.700000,83.000000,hi +25.600000,83.000000,hi +25.500000,83.000000,hi +25.600000,83.100000,hi +25.600000,83.200000,hi +25.600000,83.300000,hi +25.600000,83.400000,hi +25.700000,83.400000,hi +25.700000,83.300000,hi +25.800000,83.300000,hi +25.800000,83.400000,hi +25.800000,83.500000,hi +25.700000,83.500000,hi +25.600000,83.500000,hi +25.600000,83.600000,hi +25.700000,83.600000,hi +25.700000,83.700000,hi +25.600000,83.700000,hi +25.600000,83.800000,hi +25.600000,83.900000,hi +25.700000,83.900000,hi +25.700000,83.800000,hi +25.800000,83.800000,hi +25.800000,83.900000,hi +25.900000,83.900000,hi +25.900000,83.800000,hi +25.900000,83.700000,hi +25.800000,83.700000,hi +25.800000,83.600000,hi +25.900000,83.600000,hi +26.000000,83.700000,hi +26.000000,83.600000,hi +26.100000,83.600000,hi +26.200000,83.600000,hi +26.200000,83.700000,hi +26.100000,83.700000,hi +26.100000,83.800000,hi +26.200000,83.800000,hi +26.200000,83.900000,hi +26.100000,83.900000,hi +26.000000,83.800000,hi +26.000000,83.900000,hi +26.000000,84.000000,hi +26.000000,84.100000,hi +26.100000,84.100000,hi +26.100000,84.000000,hi +26.200000,84.000000,hi +26.200000,84.100000,hi +26.300000,84.200000,hi +26.200000,84.200000,hi +26.100000,84.200000,hi +26.000000,84.200000,hi +25.900000,84.200000,hi +25.800000,84.200000,hi +25.900000,84.100000,hi +25.900000,84.000000,hi +25.800000,84.000000,hi +25.800000,84.100000,hi +25.700000,84.100000,hi +25.700000,84.000000,hi +25.600000,84.000000,hi +25.600000,84.100000,hi +25.700000,84.200000,hi +25.600000,84.200000,hi +25.600000,84.300000,hi +25.600000,84.400000,hi +25.700000,84.400000,hi +25.700000,84.300000,hi +25.800000,84.300000,hi +25.900000,84.300000,hi +25.900000,84.400000,hi +25.800000,84.400000,hi +25.800000,84.500000,hi +25.900000,84.500000,hi +25.900000,84.600000,hi +25.800000,84.600000,hi +25.700000,84.600000,hi +25.700000,84.500000,hi +25.600000,84.500000,hi +25.600000,84.600000,hi +25.700000,84.700000,hi +25.600000,84.700000,hi +25.600000,84.800000,hi +25.600000,84.900000,hi +25.700000,84.900000,hi +25.700000,84.800000,hi +25.800000,84.800000,hi +25.800000,84.900000,hi +25.900000,84.900000,hi +25.900000,84.800000,hi +25.900000,84.700000,hi +25.800000,84.700000,hi +26.100000,84.700000,hi +26.000000,84.700000,hi +26.000000,84.800000,hi +26.000000,84.900000,hi +26.100000,84.900000,hi +26.100000,84.800000,hi +26.200000,84.800000,hi +26.200000,84.900000,hi +26.300000,84.900000,hi +26.300000,84.800000,hi +26.300000,84.700000,hi +26.200000,84.700000,hi +26.300000,84.600000,hi +26.300000,84.500000,hi +26.200000,84.500000,hi +26.200000,84.600000,hi +26.100000,84.600000,hi +26.000000,84.600000,hi +26.000000,84.500000,hi +26.100000,84.500000,hi +26.100000,84.400000,hi +26.000000,84.400000,hi +26.000000,84.300000,hi +26.100000,84.300000,hi +26.200000,84.300000,hi +26.200000,84.400000,hi +26.300000,84.400000,hi +26.300000,84.300000,hi +26.400000,84.300000,hi +26.400000,84.400000,hi +26.500000,84.300000,hi +26.600000,84.300000,hi +26.600000,84.400000,hi +26.500000,84.400000,hi +26.600000,84.500000,hi +26.600000,84.600000,hi +26.500000,84.600000,hi +26.500000,84.500000,hi +26.400000,84.500000,hi +26.400000,84.600000,hi +26.500000,84.700000,hi +26.400000,84.700000,hi +26.400000,84.800000,hi +26.400000,84.900000,hi +26.500000,84.900000,hi +26.500000,84.800000,hi +26.600000,84.800000,hi +26.600000,84.900000,hi +26.700000,84.900000,hi +26.700000,84.800000,hi +26.600000,84.700000,hi +26.800000,84.700000,hi +26.700000,84.700000,hi +26.800000,84.900000,hi +26.800000,84.800000,hi +26.900000,84.800000,hi +26.900000,84.900000,hi +27.000000,84.800000,hi +27.000000,84.700000,hi +26.900000,84.700000,hi +27.000000,84.600000,hi +27.000000,84.500000,hi +26.900000,84.500000,hi +26.900000,84.600000,hi +26.800000,84.600000,hi +26.700000,84.600000,hi +26.700000,84.500000,hi +26.800000,84.500000,hi +26.800000,84.400000,hi +26.700000,84.400000,hi +26.700000,84.300000,hi +26.800000,84.300000,hi +26.900000,84.300000,hi +26.900000,84.400000,hi +27.000000,84.400000,hi +27.000000,84.300000,hi +27.000000,84.200000,hi +26.900000,84.200000,hi +27.000000,84.100000,hi +27.000000,84.000000,hi +26.900000,84.000000,hi +26.900000,84.100000,hi +26.800000,84.100000,hi +26.800000,84.000000,hi +26.700000,84.000000,hi +26.700000,84.100000,hi +26.800000,84.200000,hi +26.700000,84.200000,hi +26.600000,84.200000,hi +26.500000,84.200000,hi +26.400000,84.200000,hi +26.400000,84.100000,hi +26.300000,84.100000,hi +26.300000,84.000000,hi +26.400000,84.000000,hi +26.500000,84.000000,hi +26.500000,84.100000,hi +26.600000,84.100000,hi +26.600000,84.000000,hi +26.600000,83.900000,hi +26.600000,83.800000,hi +26.500000,83.800000,hi +26.500000,83.900000,hi +26.400000,83.900000,hi +26.300000,83.900000,hi +26.300000,83.800000,hi +26.400000,83.800000,hi +26.400000,83.700000,hi +26.300000,83.700000,hi +26.300000,83.600000,hi +26.400000,83.600000,hi +26.500000,83.600000,hi +26.500000,83.700000,hi +26.600000,83.700000,hi +26.600000,83.600000,hi +26.700000,83.600000,hi +26.800000,83.600000,hi +26.800000,83.700000,hi +26.700000,83.700000,hi +26.700000,83.800000,hi +26.700000,83.900000,hi +26.800000,83.900000,hi +26.800000,83.800000,hi +26.900000,83.800000,hi +26.900000,83.900000,hi +27.000000,83.900000,hi +27.000000,83.800000,hi +27.000000,83.700000,hi +26.900000,83.700000,hi +26.900000,83.600000,hi +27.000000,83.600000,hi +27.100000,83.600000,hi +27.200000,83.600000,hi +27.200000,83.700000,hi +27.100000,83.700000,hi +27.100000,83.800000,hi +27.100000,83.900000,hi +27.200000,83.900000,hi +27.200000,83.800000,hi +27.300000,83.800000,hi +27.300000,83.900000,hi +27.400000,83.900000,hi +27.400000,83.800000,hi +27.400000,83.700000,hi +27.300000,83.700000,hi +27.300000,83.600000,hi +27.400000,83.600000,hi +27.500000,84.100000,en +27.400000,84.200000,hi +27.300000,84.200000,hi +27.400000,84.100000,hi +27.400000,84.000000,hi +27.300000,84.000000,hi +27.300000,84.100000,hi +27.200000,84.100000,hi +27.200000,84.000000,hi +27.100000,84.000000,hi +27.100000,84.100000,hi +27.200000,84.200000,hi +27.100000,84.200000,hi +27.100000,84.300000,hi +27.100000,84.400000,hi +27.200000,84.400000,hi +27.200000,84.300000,hi +27.300000,84.300000,hi +27.400000,84.300000,en +27.300000,84.400000,hi +27.300000,84.500000,hi +27.300000,84.600000,hi +27.200000,84.600000,hi +27.200000,84.500000,hi +27.100000,84.500000,hi +27.100000,84.600000,hi +27.400000,83.400000,hi +27.400000,83.500000,hi +27.300000,83.500000,hi +27.100000,83.500000,hi +27.200000,83.500000,hi +27.200000,83.400000,hi +27.100000,83.400000,hi +27.100000,83.300000,hi +27.200000,83.300000,hi +27.300000,83.400000,hi +27.300000,83.300000,hi +27.300000,83.200000,hi +27.300000,83.100000,hi +27.200000,83.100000,hi +27.200000,83.200000,hi +27.100000,83.200000,hi +27.100000,83.100000,hi +27.100000,83.000000,hi +27.000000,83.000000,hi +27.200000,83.000000,hi +27.300000,83.000000,hi +27.400000,83.000000,hi +27.400000,83.100000,hi +27.400000,83.200000,hi +27.700000,82.700000,hi +27.700000,82.600000,hi +27.600000,82.600000,hi +27.600000,82.700000,hi +27.500000,82.700000,hi +27.500000,82.600000,hi +27.400000,82.600000,hi +27.400000,82.700000,hi +27.400000,82.800000,hi +27.500000,82.800000,hi +27.500000,82.900000,hi +27.400000,82.900000,hi +27.300000,82.900000,hi +27.300000,82.800000,hi +27.200000,82.800000,hi +27.200000,82.900000,hi +27.100000,82.900000,hi +27.000000,82.900000,hi +27.000000,82.800000,hi +27.100000,82.800000,hi +27.100000,82.700000,hi +27.000000,82.700000,hi +27.000000,82.600000,hi +27.100000,82.600000,hi +27.200000,82.600000,hi +27.200000,82.700000,hi +27.300000,82.700000,hi +27.300000,82.600000,hi +27.300000,82.500000,hi +27.300000,82.400000,hi +27.200000,82.400000,hi +27.200000,82.500000,hi +27.100000,82.500000,hi +27.000000,82.500000,hi +27.000000,82.400000,hi +27.100000,82.400000,hi +27.000000,82.300000,hi +27.100000,82.300000,hi +27.200000,82.300000,hi +27.300000,82.300000,hi +27.400000,82.300000,hi +27.500000,82.300000,hi +27.400000,82.400000,hi +27.400000,82.500000,hi +27.500000,82.500000,hi +27.500000,82.400000,hi +27.600000,82.400000,hi +27.600000,82.500000,hi +27.700000,82.400000,hi +27.600000,82.300000,hi +27.700000,82.300000,hi +27.800000,82.300000,en +27.900000,82.100000,hi +27.800000,82.200000,hi +27.700000,82.100000,hi +27.800000,82.100000,hi +27.800000,82.000000,hi +27.700000,82.000000,hi +27.700000,81.900000,hi +27.800000,81.900000,hi +27.900000,82.000000,hi +28.000000,81.700000,hi +27.900000,81.700000,hi +27.900000,81.800000,hi +27.800000,81.800000,hi +27.700000,81.800000,hi +27.700000,81.700000,hi +27.800000,81.700000,hi +27.700000,81.600000,hi +27.800000,81.600000,hi +27.900000,81.600000,hi +28.000000,81.600000,hi +28.100000,81.400000,hi +28.200000,81.300000,hi +28.100000,81.300000,hi +28.100000,81.200000,hi +28.200000,81.200000,hi +28.300000,81.200000,hi +28.300000,81.100000,hi +28.200000,81.100000,hi +28.200000,81.000000,hi +28.300000,81.000000,hi +28.300000,80.900000,hi +28.200000,80.900000,hi +28.100000,80.900000,hi +28.000000,80.900000,hi +28.100000,81.000000,hi +28.100000,81.100000,hi +28.000000,81.100000,hi +27.900000,81.100000,hi +27.900000,81.000000,hi +28.000000,81.000000,hi +27.900000,80.900000,hi +27.800000,80.900000,hi +27.700000,80.900000,hi +27.700000,81.000000,hi +27.800000,81.000000,hi +27.800000,81.100000,hi +27.700000,81.100000,hi +27.700000,81.200000,hi +27.700000,81.300000,hi +27.800000,81.300000,hi +27.800000,81.200000,hi +27.900000,81.200000,hi +28.000000,81.200000,hi +28.000000,81.300000,hi +27.900000,81.300000,hi +27.900000,81.400000,hi +28.000000,81.400000,hi +28.000000,81.500000,hi +27.900000,81.500000,hi +27.800000,81.500000,hi +27.800000,81.400000,hi +27.700000,81.400000,hi +27.700000,81.500000,hi +27.600000,81.500000,hi +27.600000,81.400000,hi +27.500000,81.400000,hi +27.500000,81.500000,hi +27.400000,81.500000,hi +27.300000,81.500000,hi +27.300000,81.400000,hi +27.400000,81.400000,hi +27.400000,81.300000,hi +27.300000,81.300000,hi +27.300000,81.200000,hi +27.400000,81.200000,hi +27.500000,81.200000,hi +27.500000,81.300000,hi +27.600000,81.300000,hi +27.600000,81.200000,hi +27.600000,81.100000,hi +27.500000,81.100000,hi +27.500000,81.000000,hi +27.600000,81.000000,hi +27.600000,80.900000,hi +27.500000,80.900000,hi +27.400000,80.900000,hi +27.300000,80.900000,hi +27.300000,81.000000,hi +27.400000,81.000000,hi +27.400000,81.100000,hi +27.300000,81.100000,hi +27.200000,81.100000,hi +27.100000,81.100000,hi +27.100000,81.000000,hi +27.200000,81.000000,hi +27.200000,80.900000,hi +27.100000,80.900000,hi +27.000000,80.900000,hi +26.900000,80.900000,hi +26.900000,81.000000,hi +27.000000,81.000000,hi +27.000000,81.100000,hi +26.900000,81.100000,hi +26.900000,81.200000,hi +27.000000,81.300000,hi +27.000000,81.200000,hi +27.100000,81.200000,hi +27.200000,81.200000,hi +27.200000,81.300000,hi +27.100000,81.300000,hi +27.100000,81.400000,hi +27.200000,81.400000,hi +27.200000,81.500000,hi +27.100000,81.500000,hi +27.000000,81.400000,hi +27.000000,81.500000,hi +27.000000,81.600000,hi +27.100000,81.600000,hi +27.000000,81.700000,hi +27.000000,81.800000,hi +27.100000,81.800000,hi +27.100000,81.700000,hi +27.200000,81.700000,hi +27.200000,81.800000,hi +27.300000,81.800000,hi +27.300000,81.700000,hi +27.200000,81.600000,hi +27.300000,81.600000,hi +27.400000,81.600000,hi +27.500000,81.600000,hi +27.600000,81.600000,hi +27.500000,81.700000,hi +27.600000,81.700000,hi +27.600000,81.800000,hi +27.500000,81.800000,hi +27.400000,81.700000,hi +27.400000,81.800000,hi +27.400000,81.900000,hi +27.400000,82.000000,hi +27.500000,82.000000,hi +27.500000,81.900000,hi +27.600000,81.900000,hi +27.600000,82.000000,hi +27.600000,82.100000,hi +27.700000,82.200000,hi +27.600000,82.200000,hi +27.500000,82.200000,hi +27.500000,82.100000,hi +27.400000,82.100000,hi +27.400000,82.200000,hi +27.300000,82.200000,hi +27.200000,82.200000,hi +27.200000,82.100000,hi +27.300000,82.100000,hi +27.300000,82.000000,hi +27.300000,81.900000,hi +27.200000,81.900000,hi +27.200000,82.000000,hi +27.100000,82.000000,hi +27.100000,81.900000,hi +27.000000,81.900000,hi +27.000000,82.000000,hi +27.000000,82.100000,hi +27.100000,82.100000,hi +27.100000,82.200000,hi +27.000000,82.200000,hi +26.900000,82.200000,hi +26.900000,82.100000,hi +26.800000,82.100000,hi +26.800000,82.200000,hi +26.700000,82.200000,hi +26.600000,82.200000,hi +26.600000,82.100000,hi +26.700000,82.100000,hi +26.700000,82.000000,hi +26.600000,82.000000,hi +26.600000,81.900000,hi +26.700000,81.900000,hi +26.800000,81.900000,hi +26.800000,82.000000,hi +26.900000,82.000000,hi +26.900000,81.900000,hi +26.900000,81.800000,hi +26.800000,81.800000,hi +26.800000,81.700000,hi +26.900000,81.700000,hi +26.900000,81.600000,hi +26.800000,81.600000,hi +26.700000,81.600000,hi +26.600000,81.600000,hi +26.600000,81.700000,hi +26.700000,81.700000,hi +26.700000,81.800000,hi +26.600000,81.800000,hi +26.500000,81.800000,hi +26.400000,81.800000,hi +26.400000,81.700000,hi +26.500000,81.700000,hi +26.500000,81.600000,hi +26.400000,81.600000,hi +26.300000,81.600000,hi +26.200000,81.600000,hi +26.200000,81.700000,hi +26.300000,81.700000,hi +26.300000,81.800000,hi +26.200000,81.800000,hi +26.200000,81.900000,hi +26.200000,82.000000,hi +26.300000,82.000000,hi +26.300000,81.900000,hi +26.400000,81.900000,hi +26.500000,81.900000,hi +26.500000,82.000000,hi +26.400000,82.000000,hi +26.400000,82.100000,hi +26.500000,82.100000,hi +26.500000,82.200000,hi +26.400000,82.200000,hi +26.300000,82.100000,hi +26.300000,82.200000,hi +26.200000,82.200000,hi +26.100000,82.200000,hi +26.100000,82.100000,hi +26.200000,82.100000,hi +26.100000,81.900000,hi +26.100000,82.000000,hi +26.000000,82.000000,hi +26.000000,81.900000,hi +25.900000,81.900000,hi +25.900000,82.000000,hi +25.900000,82.100000,hi +26.000000,82.100000,hi +26.000000,82.200000,hi +25.900000,82.200000,hi +25.800000,82.200000,hi +25.800000,82.100000,hi +25.700000,82.100000,hi +25.700000,82.200000,hi +25.600000,82.200000,hi +25.500000,82.200000,hi +25.500000,82.100000,hi +25.600000,82.100000,hi +25.600000,82.000000,hi +25.500000,82.000000,hi +25.500000,81.900000,hi +25.600000,81.900000,hi +25.700000,81.900000,hi +25.700000,82.000000,hi +25.800000,82.000000,hi +25.800000,81.900000,hi +25.800000,81.800000,hi +25.800000,81.700000,hi +25.700000,81.700000,hi +25.700000,81.800000,hi +25.600000,81.800000,hi +25.500000,81.800000,hi +25.500000,81.700000,hi +25.600000,81.700000,hi +25.500000,81.600000,hi +25.600000,81.600000,hi +25.700000,81.600000,hi +25.800000,81.600000,hi +25.900000,81.600000,hi +25.900000,81.800000,hi +25.900000,81.700000,hi +26.000000,81.700000,hi +26.000000,81.800000,hi +26.100000,81.800000,hi +26.100000,81.700000,hi +26.000000,81.600000,hi +26.100000,81.600000,hi +26.100000,81.500000,hi +26.000000,81.500000,hi +26.000000,81.400000,hi +26.100000,81.400000,hi +26.100000,81.300000,hi +26.100000,81.200000,hi +26.000000,81.200000,hi +26.000000,81.300000,hi +25.900000,81.300000,hi +25.900000,81.200000,hi +25.800000,81.200000,hi +25.800000,81.300000,hi +25.800000,81.400000,hi +25.900000,81.400000,hi +25.900000,81.500000,hi +25.800000,81.500000,hi +25.700000,81.500000,hi +25.700000,81.400000,hi +25.600000,81.400000,hi +25.600000,81.500000,hi +25.500000,81.500000,hi +25.500000,81.400000,hi +25.500000,81.300000,hi +25.400000,81.200000,hi +25.500000,81.200000,hi +25.600000,81.200000,hi +25.600000,81.300000,hi +25.700000,81.300000,hi +25.700000,81.200000,hi +25.700000,81.100000,hi +25.700000,81.000000,hi +25.600000,81.000000,hi +25.600000,81.100000,hi +25.500000,81.100000,hi +25.400000,81.100000,hi +25.400000,81.000000,hi +25.500000,81.000000,hi +25.500000,80.900000,hi +25.400000,80.900000,hi +25.600000,80.900000,hi +25.700000,80.900000,hi +25.900000,80.900000,hi +25.800000,80.900000,hi +25.800000,81.000000,hi +25.800000,81.100000,hi +25.900000,81.100000,hi +25.900000,81.000000,hi +26.000000,81.000000,hi +26.000000,81.100000,hi +26.100000,81.100000,hi +26.100000,81.000000,hi +26.100000,80.900000,hi +26.000000,80.900000,hi +26.200000,80.900000,hi +26.300000,80.900000,hi +26.500000,80.900000,hi +26.400000,80.900000,hi +26.400000,81.000000,hi +26.500000,81.000000,hi +26.500000,81.100000,hi +26.400000,81.100000,hi +26.300000,81.100000,hi +26.300000,81.000000,hi +26.200000,81.000000,hi +26.200000,81.100000,hi +26.200000,81.200000,hi +26.300000,81.200000,hi +26.300000,81.300000,hi +26.200000,81.300000,hi +26.200000,81.400000,hi +26.200000,81.500000,hi +26.300000,81.500000,hi +26.300000,81.400000,hi +26.400000,81.400000,hi +26.400000,81.500000,hi +26.500000,81.500000,hi +26.500000,81.400000,hi +26.500000,81.300000,hi +26.400000,81.300000,hi +26.400000,81.200000,hi +26.500000,81.200000,hi +26.600000,81.200000,hi +26.700000,81.200000,hi +26.700000,81.300000,hi +26.600000,81.300000,hi +26.600000,81.400000,hi +26.600000,81.500000,hi +26.700000,81.500000,hi +26.700000,81.400000,hi +26.800000,81.400000,hi +26.800000,81.500000,hi +26.900000,81.500000,hi +26.900000,81.400000,hi +26.900000,81.300000,hi +26.800000,81.300000,hi +26.800000,81.200000,hi +26.800000,81.100000,hi +26.800000,81.000000,hi +26.700000,81.000000,hi +26.700000,81.100000,hi +26.600000,81.100000,hi +26.600000,81.000000,hi +26.600000,80.900000,hi +26.700000,80.900000,hi +26.800000,80.900000,hi +26.800000,80.800000,hi +26.800000,80.700000,hi +26.700000,80.700000,hi +26.700000,80.800000,hi +26.600000,80.800000,hi +26.500000,80.800000,hi +26.500000,80.700000,hi +26.600000,80.700000,hi +26.600000,80.600000,hi +26.500000,80.600000,hi +26.500000,80.500000,hi +26.600000,80.500000,hi +26.700000,80.500000,hi +26.700000,80.600000,hi +26.800000,80.600000,hi +26.800000,80.500000,hi +26.800000,80.400000,hi +26.700000,80.400000,hi +26.700000,80.300000,hi +26.800000,80.300000,hi +26.800000,80.200000,hi +26.800000,80.100000,hi +26.700000,80.100000,hi +26.700000,80.200000,hi +26.600000,80.200000,hi +26.600000,80.100000,hi +26.500000,80.100000,hi +26.500000,80.200000,hi +26.500000,80.300000,hi +26.600000,80.300000,hi +26.600000,80.400000,hi +26.500000,80.400000,hi +26.400000,80.400000,hi +26.300000,80.400000,hi +26.300000,80.300000,hi +26.400000,80.300000,hi +26.400000,80.200000,hi +26.400000,80.100000,hi +26.300000,80.100000,hi +26.300000,80.200000,hi +26.200000,80.200000,hi +26.200000,80.100000,hi +26.100000,80.100000,hi +26.100000,80.200000,hi +26.100000,80.300000,hi +26.200000,80.300000,hi +26.200000,80.400000,hi +26.100000,80.400000,hi +26.200000,80.600000,hi +26.200000,80.500000,hi +26.300000,80.500000,hi +26.400000,80.500000,hi +26.400000,80.600000,hi +26.300000,80.600000,hi +26.400000,80.700000,hi +26.400000,80.800000,hi +26.300000,80.800000,hi +26.300000,80.700000,hi +26.200000,80.700000,hi +26.200000,80.800000,hi +26.100000,80.800000,hi +26.000000,80.800000,hi +26.000000,80.700000,hi +26.100000,80.700000,hi +26.100000,80.600000,hi +26.100000,80.500000,hi +26.000000,80.500000,hi +26.000000,80.600000,hi +25.900000,80.600000,hi +25.900000,80.500000,hi +25.800000,80.500000,hi +25.800000,80.600000,hi +25.800000,80.700000,hi +25.900000,80.700000,hi +25.900000,80.800000,hi +25.800000,80.800000,hi +25.700000,80.800000,hi +25.700000,80.700000,hi +25.600000,80.700000,hi +25.600000,80.800000,hi +25.500000,80.800000,hi +25.400000,80.800000,hi +25.400000,80.700000,hi +25.500000,80.700000,hi +25.500000,80.600000,hi +25.400000,80.600000,hi +25.400000,80.500000,hi +25.500000,80.500000,hi +25.600000,80.500000,hi +25.600000,80.600000,hi +25.700000,80.600000,hi +25.700000,80.500000,hi +25.700000,80.400000,hi +25.700000,80.300000,hi +25.600000,80.300000,hi +25.600000,80.400000,hi +25.500000,80.400000,hi +25.400000,80.400000,hi +25.400000,80.300000,hi +25.500000,80.300000,hi +25.500000,80.200000,hi +25.400000,80.200000,hi +25.400000,80.100000,hi +25.500000,80.100000,hi +25.600000,80.100000,hi +25.600000,80.200000,hi +25.700000,80.200000,hi +25.700000,80.100000,hi +25.800000,80.100000,hi +25.800000,80.200000,hi +25.800000,80.300000,hi +25.800000,80.400000,hi +25.900000,80.400000,hi +25.900000,80.300000,hi +26.000000,80.400000,hi +26.000000,80.300000,hi +26.000000,80.200000,hi +25.900000,80.200000,hi +25.900000,80.100000,hi +26.000000,80.100000,hi +25.900000,80.000000,hi +26.000000,80.000000,hi +26.000000,79.900000,hi +26.000000,79.800000,hi +25.900000,79.800000,hi +25.900000,79.900000,hi +25.800000,79.900000,hi +25.800000,79.800000,hi +25.700000,79.800000,hi +25.700000,79.900000,hi +25.700000,80.000000,hi +25.800000,80.000000,hi +25.600000,80.000000,hi +25.400000,80.000000,hi +25.500000,80.000000,hi +25.500000,79.900000,hi +25.400000,79.900000,hi +25.400000,79.800000,hi +25.500000,79.800000,hi +25.600000,79.900000,hi +25.600000,79.800000,hi +25.600000,79.700000,hi +25.600000,79.600000,hi +25.500000,79.600000,hi +25.500000,79.700000,hi +25.400000,79.700000,hi +25.300000,79.600000,hi +25.400000,79.600000,hi +25.400000,79.500000,hi +25.300000,79.500000,hi +25.300000,79.400000,hi +25.400000,79.400000,hi +25.500000,79.400000,hi +25.500000,79.500000,hi +25.600000,79.500000,hi +25.600000,79.400000,hi +25.700000,79.400000,hi +25.800000,79.400000,hi +25.800000,79.500000,hi +25.700000,79.500000,hi +25.700000,79.600000,hi +25.700000,79.700000,hi +25.800000,79.700000,hi +25.800000,79.600000,hi +25.900000,79.600000,hi +25.900000,79.700000,hi +26.000000,79.700000,hi +26.000000,79.600000,hi +26.000000,79.500000,hi +25.900000,79.500000,hi +25.900000,79.400000,hi +26.000000,79.400000,hi +26.100000,79.400000,hi +26.100000,79.500000,hi +26.200000,79.500000,hi +26.200000,79.400000,hi +26.300000,79.400000,hi +26.400000,79.400000,hi +26.400000,79.500000,hi +26.300000,79.500000,hi +26.300000,79.600000,hi +26.400000,79.600000,hi +26.400000,79.700000,hi +26.300000,79.700000,hi +26.200000,79.700000,hi +26.200000,79.600000,hi +26.100000,79.600000,hi +26.100000,79.700000,hi +26.100000,79.800000,hi +26.200000,79.800000,hi +26.200000,79.900000,hi +26.100000,79.900000,hi +26.100000,80.000000,hi +26.200000,80.000000,hi +26.300000,80.000000,hi +26.400000,80.000000,hi +26.400000,79.900000,hi +26.300000,79.900000,hi +26.300000,79.800000,hi +26.400000,79.800000,hi +26.500000,79.800000,hi +26.600000,79.800000,hi +26.600000,79.900000,hi +26.500000,79.900000,hi +26.500000,80.000000,hi +26.600000,80.000000,hi +26.700000,80.000000,hi +26.800000,80.000000,hi +26.800000,79.900000,hi +26.700000,79.900000,hi +26.700000,79.800000,hi +26.800000,79.800000,hi +26.700000,79.600000,hi +26.700000,79.700000,hi +26.600000,79.700000,hi +26.500000,79.700000,hi +26.500000,79.600000,hi +26.600000,79.600000,hi +26.500000,79.500000,hi +26.500000,79.400000,hi +26.600000,79.400000,hi +26.600000,79.500000,hi +26.700000,79.500000,hi +26.700000,79.400000,hi +26.800000,79.400000,hi +26.900000,79.400000,hi +26.900000,79.500000,hi +26.800000,79.500000,hi +26.800000,79.600000,hi +26.800000,79.700000,hi +26.900000,79.700000,hi +26.900000,79.600000,hi +27.000000,79.600000,hi +27.000000,79.700000,hi +27.100000,79.700000,hi +27.100000,79.600000,hi +27.100000,79.500000,hi +27.000000,79.500000,hi +27.000000,79.400000,hi +27.100000,79.400000,hi +27.200000,79.400000,hi +27.200000,79.500000,hi +27.300000,79.500000,hi +27.300000,79.400000,hi +27.400000,79.400000,hi +27.500000,79.400000,hi +27.500000,79.500000,hi +27.400000,79.500000,hi +27.400000,79.600000,hi +27.500000,79.600000,hi +27.500000,79.700000,hi +27.400000,79.700000,hi +27.300000,79.700000,hi +27.300000,79.600000,hi +27.200000,79.600000,hi +27.200000,79.700000,hi +27.200000,79.800000,hi +27.200000,79.900000,hi +27.300000,79.900000,hi +27.300000,79.800000,hi +27.400000,79.800000,hi +27.500000,79.800000,hi +27.500000,79.900000,hi +27.400000,79.900000,hi +27.400000,80.000000,hi +27.500000,80.000000,hi +27.300000,80.000000,hi +27.200000,80.000000,hi +27.100000,80.000000,hi +27.100000,79.900000,hi +27.100000,79.800000,hi +27.000000,79.800000,hi +27.000000,79.900000,hi +26.900000,79.800000,hi +26.900000,79.900000,hi +26.900000,80.000000,hi +27.000000,80.000000,hi +26.900000,80.100000,hi +26.900000,80.200000,hi +27.000000,80.200000,hi +27.000000,80.100000,hi +27.100000,80.100000,hi +27.200000,80.200000,hi +27.100000,80.200000,hi +27.100000,80.300000,hi +27.200000,80.300000,hi +27.200000,80.400000,hi +27.100000,80.400000,hi +27.000000,80.400000,hi +27.000000,80.300000,hi +26.900000,80.300000,hi +26.900000,80.400000,hi +26.900000,80.500000,hi +27.000000,80.500000,hi +27.000000,80.600000,hi +26.900000,80.600000,hi +26.900000,80.700000,hi +26.900000,80.800000,hi +27.000000,80.800000,hi +27.000000,80.700000,hi +27.100000,80.700000,hi +27.100000,80.800000,hi +27.200000,80.800000,hi +27.200000,80.700000,hi +27.200000,80.600000,hi +27.100000,80.600000,hi +27.100000,80.500000,hi +27.200000,80.500000,hi +27.300000,80.500000,hi +27.400000,80.500000,hi +27.400000,80.600000,hi +27.300000,80.600000,hi +27.300000,80.700000,hi +27.300000,80.800000,hi +27.400000,80.800000,hi +27.400000,80.700000,hi +27.500000,80.700000,hi +27.500000,80.800000,hi +27.600000,80.800000,hi +27.600000,80.700000,hi +27.600000,80.600000,hi +27.500000,80.600000,hi +27.500000,80.500000,hi +27.500000,80.400000,hi +27.500000,80.300000,hi +27.400000,80.300000,hi +27.400000,80.400000,hi +27.300000,80.400000,hi +27.300000,80.300000,hi +27.300000,80.200000,hi +27.200000,80.100000,hi +27.300000,80.100000,hi +27.400000,80.100000,hi +27.400000,80.200000,hi +27.500000,80.200000,hi +27.500000,80.100000,hi +27.600000,80.100000,hi +27.600000,80.200000,hi +27.700000,80.200000,hi +27.700000,80.100000,hi +27.800000,80.100000,hi +27.900000,80.100000,hi +27.900000,80.200000,hi +27.800000,80.200000,hi +27.800000,80.300000,hi +27.900000,80.300000,hi +27.900000,80.400000,hi +27.800000,80.400000,hi +27.700000,80.400000,hi +27.700000,80.300000,hi +27.600000,80.300000,hi +27.600000,80.400000,hi +27.600000,80.500000,hi +27.700000,80.500000,hi +27.700000,80.600000,hi +27.700000,80.700000,hi +27.700000,80.800000,hi +27.800000,80.800000,hi +27.800000,80.700000,hi +27.900000,80.800000,hi +27.900000,80.700000,hi +27.900000,80.600000,hi +27.800000,80.600000,hi +27.800000,80.500000,hi +27.900000,80.500000,hi +28.000000,80.500000,hi +28.100000,80.500000,hi +28.100000,80.600000,hi +28.000000,80.600000,hi +28.000000,80.700000,hi +28.000000,80.800000,hi +28.100000,80.800000,hi +28.100000,80.700000,hi +28.200000,80.700000,hi +28.200000,80.800000,hi +28.300000,80.800000,hi +28.300000,80.700000,hi +28.300000,80.600000,hi +28.200000,80.600000,hi +28.200000,80.500000,hi +28.300000,80.500000,hi +28.300000,80.400000,hi +28.300000,80.300000,hi +28.200000,80.300000,hi +28.200000,80.400000,hi +28.100000,80.400000,hi +28.000000,80.400000,hi +28.000000,80.300000,hi +28.100000,80.300000,hi +28.100000,80.200000,hi +28.000000,80.200000,hi +28.000000,80.100000,hi +28.100000,80.100000,hi +28.200000,80.100000,hi +28.200000,80.200000,hi +28.300000,80.200000,hi +28.300000,80.100000,hi +28.200000,80.000000,hi +28.300000,80.000000,hi +28.200000,79.800000,hi +28.200000,79.900000,hi +28.100000,79.900000,hi +28.100000,79.800000,hi +28.000000,79.800000,hi +28.000000,79.900000,hi +28.000000,80.000000,hi +28.100000,80.000000,hi +27.900000,80.000000,hi +27.800000,80.000000,hi +27.600000,80.000000,hi +27.700000,80.000000,hi +27.700000,79.900000,hi +27.600000,79.900000,hi +27.600000,79.800000,hi +27.700000,79.800000,hi +27.800000,79.800000,hi +27.800000,79.900000,hi +27.900000,79.900000,hi +27.900000,79.800000,hi +27.900000,79.700000,hi +27.900000,79.600000,hi +27.800000,79.600000,hi +27.800000,79.700000,hi +27.700000,79.700000,hi +27.600000,79.700000,hi +27.600000,79.600000,hi +27.700000,79.600000,hi +27.700000,79.500000,hi +27.600000,79.500000,hi +27.600000,79.400000,hi +27.700000,79.400000,hi +27.800000,79.500000,hi +27.800000,79.400000,hi +27.900000,79.400000,hi +28.000000,79.400000,hi +28.000000,79.500000,hi +27.900000,79.500000,hi +28.000000,79.700000,hi +28.000000,79.600000,hi +28.100000,79.600000,hi +28.100000,79.700000,hi +28.200000,79.700000,hi +28.200000,79.600000,hi +28.200000,79.500000,hi +28.100000,79.500000,hi +28.100000,79.400000,hi +28.200000,79.400000,hi +28.300000,79.400000,hi +28.300000,79.500000,hi +28.400000,79.500000,hi +28.400000,79.400000,hi +28.500000,79.400000,hi +28.600000,79.400000,hi +28.600000,79.500000,hi +28.500000,79.500000,hi +28.500000,79.600000,hi +28.600000,79.600000,hi +28.600000,79.700000,hi +28.500000,79.700000,hi +28.400000,79.700000,hi +28.400000,79.600000,hi +28.300000,79.600000,hi +28.300000,79.700000,hi +28.300000,79.800000,hi +28.400000,79.800000,hi +28.400000,79.900000,hi +28.300000,79.900000,hi +28.400000,80.000000,hi +28.500000,80.000000,hi +28.600000,80.000000,hi +28.600000,79.900000,hi +28.500000,79.900000,hi +28.500000,79.800000,hi +28.600000,79.800000,hi +28.700000,79.800000,hi +28.800000,79.800000,hi +28.800000,79.900000,hi +28.700000,79.900000,hi +28.700000,80.000000,hi +28.800000,80.000000,hi +28.900000,80.000000,hi +29.000000,80.000000,hi +29.000000,79.900000,hi +28.900000,79.900000,hi +28.900000,79.800000,hi +29.000000,79.800000,hi +29.000000,79.700000,hi +29.000000,79.600000,hi +28.900000,79.600000,hi +28.900000,79.700000,hi +28.800000,79.700000,hi +28.700000,79.700000,hi +28.700000,79.600000,hi +28.800000,79.600000,hi +28.800000,79.500000,hi +28.700000,79.500000,hi +28.700000,79.400000,hi +28.800000,79.400000,hi +28.900000,79.400000,hi +28.900000,79.500000,hi +29.000000,79.500000,hi +29.000000,79.400000,hi +29.100000,79.400000,hi +29.100000,79.500000,hi +29.100000,79.600000,hi +29.100000,79.700000,hi +29.200000,79.700000,hi +29.200000,79.600000,hi +29.300000,79.700000,hi +29.300000,79.600000,hi +29.300000,79.500000,hi +29.200000,79.500000,hi +29.200000,79.400000,hi +29.300000,79.400000,hi +29.400000,79.400000,hi +29.400000,79.500000,hi +29.500000,79.500000,hi +29.500000,79.400000,hi +29.600000,79.400000,hi +29.700000,79.400000,hi +29.700000,79.500000,hi +29.600000,79.500000,hi +29.600000,79.600000,hi +29.700000,79.600000,hi +29.700000,79.700000,hi +29.600000,79.700000,hi +29.500000,79.700000,hi +29.500000,79.600000,hi +29.400000,79.600000,hi +29.400000,79.700000,hi +29.400000,79.800000,hi +29.500000,79.900000,hi +29.500000,79.800000,hi +29.600000,79.800000,hi +29.700000,79.800000,hi +29.700000,79.900000,hi +29.600000,79.900000,hi +29.600000,80.000000,hi +29.700000,80.000000,hi +29.500000,80.000000,hi +29.300000,80.000000,hi +29.400000,80.000000,hi +29.400000,79.900000,hi +29.300000,79.800000,hi +29.300000,79.900000,hi +29.200000,79.900000,hi +29.200000,79.800000,hi +29.100000,79.800000,hi +29.100000,79.900000,hi +29.100000,80.000000,hi +29.200000,80.000000,hi +29.100000,80.100000,hi +29.200000,80.100000,hi +29.200000,80.200000,hi +29.300000,80.300000,hi +29.400000,80.200000,hi +29.300000,80.200000,hi +29.300000,80.100000,hi +29.400000,80.100000,hi +29.500000,80.100000,hi +29.500000,80.200000,hi +29.600000,80.200000,hi +29.600000,80.100000,hi +29.700000,80.100000,hi +29.700000,80.200000,hi +29.700000,80.300000,hi +29.800000,80.300000,hi +29.800000,80.400000,hi +29.600000,80.400000,hi +29.600000,80.300000,hi +29.500000,80.300000,hi +29.800000,80.500000,hi +29.000000,80.100000,hi +28.800000,80.100000,hi +28.700000,80.100000,hi +28.700000,80.200000,hi +28.700000,80.300000,hi +28.600000,80.400000,hi +28.600000,80.300000,hi +28.600000,80.200000,hi +28.600000,80.100000,hi +28.500000,80.100000,hi +28.500000,80.200000,hi +28.400000,80.100000,hi +28.400000,80.200000,hi +28.400000,80.300000,hi +28.500000,80.300000,hi +28.500000,80.400000,hi +28.400000,80.400000,hi +28.400000,80.500000,hi +28.400000,80.600000,hi +28.500000,80.600000,hi +28.500000,80.500000,hi +28.600000,80.500000,hi +28.600000,80.600000,hi +28.500000,80.800000,hi +28.500000,80.700000,hi +28.400000,80.700000,hi +28.400000,80.800000,hi +28.500000,80.900000,hi +28.400000,80.900000,hi +28.400000,81.000000,hi +30.200000,81.000000,hi +30.600000,80.100000,hi +30.600000,80.200000,hi +30.400000,80.700000,hi +30.400000,80.500000,hi +30.400000,80.600000,hi +30.300000,80.600000,hi +30.300000,80.500000,hi +30.200000,80.500000,hi +30.200000,80.600000,hi +30.200000,80.700000,hi +30.300000,80.700000,hi +30.300000,80.800000,hi +30.200000,80.800000,hi +30.100000,80.700000,hi +30.100000,80.800000,hi +30.000000,80.700000,hi +30.000000,80.600000,hi +29.900000,80.500000,hi +30.000000,80.500000,hi +30.100000,80.600000,hi +30.100000,80.500000,hi +30.100000,80.400000,hi +30.100000,80.300000,hi +30.000000,80.300000,hi +30.000000,80.400000,hi +29.900000,80.400000,hi +29.900000,80.300000,hi +29.900000,80.200000,hi +29.800000,80.200000,hi +29.800000,80.100000,hi +29.900000,80.100000,hi +30.000000,80.100000,hi +30.000000,80.200000,hi +30.100000,80.200000,hi +30.100000,80.100000,hi +30.200000,80.100000,hi +30.300000,80.100000,hi +30.300000,80.200000,hi +30.200000,80.200000,hi +30.200000,80.300000,hi +30.200000,80.400000,hi +30.300000,80.400000,hi +30.300000,80.300000,hi +30.400000,80.300000,hi +30.400000,80.400000,hi +30.500000,80.400000,hi +30.500000,80.300000,hi +30.500000,80.200000,hi +30.400000,80.200000,hi +30.400000,80.100000,hi +30.500000,80.100000,hi +30.400000,80.000000,hi +30.500000,80.000000,hi +30.500000,79.900000,hi +30.400000,79.800000,hi +30.400000,79.900000,hi +30.300000,79.900000,hi +30.300000,79.800000,hi +30.200000,79.800000,hi +30.200000,79.900000,hi +30.200000,80.000000,hi +30.300000,80.000000,hi +30.100000,80.000000,hi +30.000000,80.000000,hi +29.800000,80.000000,hi +29.900000,80.000000,hi +29.900000,79.900000,hi +29.800000,79.900000,hi +29.800000,79.800000,hi +29.900000,79.800000,hi +30.000000,79.800000,hi +30.000000,79.900000,hi +30.100000,79.900000,hi +30.100000,79.800000,hi +30.100000,79.700000,hi +30.100000,79.600000,hi +30.000000,79.600000,hi +30.000000,79.700000,hi +29.900000,79.700000,hi +29.800000,79.700000,hi +29.800000,79.600000,hi +29.900000,79.600000,hi +29.900000,79.500000,hi +29.800000,79.500000,hi +29.800000,79.400000,hi +29.900000,79.400000,hi +30.000000,79.400000,hi +30.000000,79.500000,hi +30.100000,79.500000,hi +30.100000,79.400000,hi +30.200000,79.400000,hi +30.200000,79.500000,hi +30.200000,79.600000,hi +30.200000,79.700000,hi +30.300000,79.700000,hi +30.300000,79.600000,hi +30.400000,79.700000,hi +30.400000,79.600000,hi +30.400000,79.500000,hi +30.300000,79.500000,hi +30.300000,79.400000,hi +30.400000,79.400000,hi +30.500000,79.400000,hi +30.500000,79.500000,hi +30.600000,79.500000,hi +30.600000,79.400000,hi +30.700000,79.400000,hi +30.800000,79.400000,hi +30.800000,79.500000,hi +30.700000,79.500000,hi +30.700000,79.600000,hi +30.800000,79.600000,hi +30.800000,79.700000,hi +30.700000,79.700000,hi +30.600000,79.700000,hi +30.600000,79.600000,hi +30.500000,79.600000,hi +30.500000,79.700000,hi +30.500000,79.800000,hi +30.600000,79.800000,hi +30.600000,79.900000,hi +30.600000,80.000000,hi +30.700000,80.000000,hi +30.700000,79.900000,hi +30.700000,79.800000,hi +30.800000,79.800000,hi +30.900000,79.700000,hi +30.900000,79.600000,hi +30.900000,79.500000,hi +30.900000,79.400000,hi +31.000000,79.400000,hi +32.600000,79.400000,hi +32.700000,79.400000,hi +32.700000,79.500000,hi +32.800000,79.400000,hi +28.000000,88.800000,en +27.900000,88.800000,hi +27.800000,88.800000,hi +27.700000,88.800000,hi +27.400000,88.800000,hi +27.300000,88.900000,hi +27.300000,88.800000,hi +26.800000,89.400000,hi +26.700000,89.700000,hi +26.700000,89.600000,hi +26.700000,89.400000,hi +26.700000,89.500000,hi +26.600000,89.500000,hi +26.600000,89.400000,hi +26.500000,89.400000,bn +26.500000,89.500000,bn +26.500000,89.600000,bn +26.600000,89.600000,hi +26.600000,89.700000,bn +26.500000,89.700000,bn +26.500000,89.800000,bn +26.600000,89.800000,bn +26.700000,89.800000,hi +26.700000,89.900000,hi +26.600000,89.900000,hi +26.500000,89.900000,hi +26.300000,89.900000,bn +26.400000,89.900000,hi +26.400000,89.800000,bn +26.300000,89.800000,bn +26.200000,89.800000,bn +26.100000,89.800000,bn +26.100000,89.900000,bn +26.200000,89.900000,bn +26.000000,89.900000,hi +25.900000,89.900000,hi +25.700000,89.900000,hi +25.800000,89.900000,hi +26.100000,89.400000,bn +26.200000,89.400000,bn +26.200000,89.500000,bn +26.100000,89.500000,bn +26.200000,89.600000,bn +26.300000,89.600000,bn +26.300000,89.700000,bn +26.400000,89.700000,bn +26.400000,89.600000,bn +26.400000,89.500000,bn +26.300000,89.500000,bn +26.300000,89.400000,bn +26.400000,89.400000,bn +26.300000,89.300000,bn +26.400000,89.300000,bn +26.400000,89.200000,bn +26.400000,89.100000,bn +26.300000,89.200000,bn +26.200000,89.200000,bn +26.100000,89.300000,bn +26.200000,89.300000,bn +26.400000,88.900000,bn +26.300000,88.900000,bn +26.400000,88.800000,bn +26.500000,88.800000,bn +26.500000,88.900000,bn +26.600000,88.900000,bn +26.600000,88.800000,bn +26.700000,88.800000,bn +26.700000,88.900000,bn +26.700000,89.000000,hi +26.600000,89.000000,bn +26.500000,89.000000,bn +26.500000,89.100000,bn +26.600000,89.100000,bn +26.600000,89.200000,bn +26.500000,89.200000,bn +26.500000,89.300000,bn +26.600000,89.300000,hi +26.700000,89.300000,hi +26.700000,89.200000,hi +26.700000,89.100000,hi +26.800000,89.100000,hi +26.800000,89.300000,hi +26.800000,89.000000,hi +26.900000,89.000000,hi +26.900000,88.900000,hi +26.800000,88.900000,hi +26.800000,88.800000,hi +26.900000,88.800000,hi +27.000000,88.800000,hi +27.100000,88.800000,hi +27.100000,88.700000,hi +27.000000,88.700000,hi +26.800000,88.700000,hi +26.900000,88.700000,hi +26.900000,88.600000,hi +26.800000,88.600000,hi +26.800000,88.500000,hi +26.900000,88.500000,hi +27.000000,88.500000,hi +27.000000,88.600000,hi +27.100000,88.600000,hi +27.100000,88.500000,hi +27.000000,88.400000,hi +27.100000,88.400000,hi +27.100000,88.300000,hi +27.100000,88.200000,hi +27.000000,88.200000,hi +27.000000,88.300000,hi +26.900000,88.300000,hi +26.900000,88.200000,hi +26.800000,88.200000,hi +26.800000,88.300000,hi +26.800000,88.400000,hi +26.900000,88.400000,hi +26.700000,88.400000,hi +26.700000,88.300000,hi +26.700000,88.200000,hi +26.600000,88.200000,hi +26.600000,88.300000,hi +26.500000,88.200000,hi +26.500000,88.300000,hi +26.500000,88.600000,hi +26.600000,88.600000,hi +26.600000,88.500000,hi +26.700000,88.500000,hi +26.700000,88.600000,hi +26.700000,88.700000,bn +26.600000,88.700000,bn +26.500000,88.700000,bn +25.700000,88.300000,bn +25.700000,88.200000,bn +26.200000,88.200000,hi +26.400000,88.400000,bn +26.400000,88.300000,hi +26.300000,88.300000,hi +26.300000,88.200000,hi +26.400000,88.200000,hi +26.400000,88.100000,hi +26.300000,88.100000,hi +26.400000,87.900000,hi +26.300000,87.900000,hi +26.300000,88.000000,hi +26.200000,88.000000,hi +26.200000,87.900000,hi +26.100000,87.900000,hi +26.100000,88.000000,hi +26.200000,88.100000,hi +26.100000,88.100000,hi +26.000000,88.100000,hi +25.700000,88.100000,bn +25.800000,88.000000,hi +25.700000,88.000000,hi +25.700000,87.900000,hi +25.800000,87.900000,hi +25.900000,87.900000,hi +25.900000,88.000000,hi +26.000000,88.000000,hi +26.000000,87.900000,hi +26.000000,87.800000,hi +26.000000,87.700000,hi +25.900000,87.700000,hi +25.900000,87.800000,hi +25.800000,87.800000,hi +25.700000,87.800000,hi +25.700000,87.700000,hi +25.800000,87.700000,hi +25.700000,87.600000,hi +25.800000,87.600000,hi +25.900000,87.600000,hi +26.000000,87.600000,hi +26.100000,87.600000,hi +26.200000,87.600000,hi +26.100000,87.700000,hi +26.100000,87.800000,hi +26.200000,87.800000,hi +26.200000,87.700000,hi +26.300000,87.700000,hi +26.300000,87.800000,hi +26.400000,87.800000,hi +26.400000,87.700000,hi +26.300000,87.600000,hi +26.500000,88.100000,hi +27.000000,88.100000,hi +27.100000,88.100000,hi +27.100000,88.000000,hi +27.600000,88.100000,hi +27.500000,88.100000,hi +27.400000,88.100000,hi +27.200000,88.000000,hi +27.300000,88.100000,hi +27.200000,88.100000,hi +27.200000,88.200000,hi +27.200000,88.300000,hi +27.300000,88.300000,hi +27.300000,88.200000,hi +27.400000,88.200000,hi +27.500000,88.200000,hi +27.500000,88.300000,hi +27.400000,88.300000,hi +27.400000,88.400000,hi +27.500000,88.400000,hi +27.300000,88.400000,hi +27.200000,88.400000,hi +27.200000,88.500000,hi +27.300000,88.500000,hi +27.300000,88.600000,hi +27.200000,88.600000,hi +27.200000,88.700000,hi +27.300000,88.700000,hi +27.400000,88.700000,hi +27.500000,88.700000,hi +27.500000,88.600000,hi +27.400000,88.600000,hi +27.400000,88.500000,hi +27.500000,88.500000,hi +27.600000,88.500000,hi +27.700000,88.500000,hi +27.700000,88.600000,hi +27.600000,88.600000,hi +27.600000,88.700000,hi +27.700000,88.700000,hi +27.800000,88.700000,hi +27.900000,88.700000,hi +27.900000,88.600000,hi +27.800000,88.600000,hi +27.800000,88.500000,hi +27.900000,88.500000,hi +27.900000,88.400000,hi +27.800000,88.400000,hi +27.600000,88.400000,hi +27.700000,88.400000,hi +27.700000,88.300000,hi +27.600000,88.300000,hi +27.600000,88.200000,hi +27.700000,88.200000,hi +27.800000,88.200000,hi +27.800000,88.300000,hi +27.900000,88.300000,hi +27.900000,88.200000,hi +28.000000,88.500000,hi +28.000000,88.600000,hi +28.000000,88.700000,hi +26.600000,86.100000,hi +26.600000,86.200000,hi +26.500000,86.200000,hi +26.400000,86.200000,hi +26.400000,86.100000,hi +26.500000,86.100000,hi +26.400000,86.000000,hi +26.500000,86.000000,hi +26.600000,86.000000,hi +26.600000,85.800000,hi +26.600000,85.900000,hi +26.500000,85.900000,hi +26.400000,85.900000,hi +26.400000,85.800000,hi +26.500000,85.800000,hi +26.500000,85.700000,hi +26.400000,85.700000,hi +26.600000,85.700000,hi +26.700000,85.700000,hi +26.800000,85.700000,hi +26.800000,85.600000,hi +26.800000,85.500000,hi +26.900000,85.000000,hi +26.800000,85.000000,hi +26.800000,85.100000,hi +26.800000,85.200000,hi +26.700000,85.200000,hi +26.600000,85.200000,hi +26.700000,85.100000,hi +26.700000,85.000000,hi +26.600000,85.000000,hi +26.600000,85.100000,hi +26.500000,85.100000,hi +26.500000,85.000000,hi +26.400000,85.000000,hi +26.400000,85.100000,hi +26.500000,85.200000,hi +26.400000,85.200000,hi +26.400000,85.300000,hi +26.400000,85.400000,hi +26.500000,85.400000,hi +26.500000,85.300000,hi +26.600000,85.300000,hi +26.700000,85.300000,hi +26.700000,85.400000,hi +26.600000,85.400000,hi +26.600000,85.500000,hi +26.700000,85.500000,hi +26.700000,85.600000,hi +26.600000,85.600000,hi +26.500000,85.600000,hi +26.500000,85.500000,hi +26.400000,85.500000,hi +26.400000,85.600000,hi +26.300000,85.600000,hi +26.300000,85.500000,hi +26.200000,85.500000,hi +26.200000,85.600000,hi +26.100000,85.600000,hi +26.000000,85.600000,hi +26.000000,85.500000,hi +26.100000,85.500000,hi +26.100000,85.400000,hi +26.000000,85.400000,hi +26.000000,85.300000,hi +26.100000,85.300000,hi +26.200000,85.300000,hi +26.200000,85.400000,hi +26.300000,85.400000,hi +26.300000,85.300000,hi +26.300000,85.200000,hi +26.200000,85.200000,hi +26.300000,85.100000,hi +26.300000,85.000000,hi +26.200000,85.000000,hi +26.200000,85.100000,hi +26.100000,85.100000,hi +26.100000,85.000000,hi +26.000000,85.000000,hi +26.000000,85.100000,hi +26.100000,85.200000,hi +26.000000,85.200000,hi +25.900000,85.200000,hi +25.800000,85.200000,hi +25.900000,85.100000,hi +25.900000,85.000000,hi +25.800000,85.000000,hi +25.800000,85.100000,hi +25.700000,85.100000,hi +25.700000,85.000000,hi +25.600000,85.000000,hi +25.600000,85.100000,hi +25.700000,85.200000,hi +25.600000,85.200000,hi +25.600000,85.300000,hi +25.600000,85.400000,hi +25.700000,85.400000,hi +25.700000,85.300000,hi +25.800000,85.300000,hi +25.900000,85.300000,hi +25.900000,85.400000,hi +25.800000,85.400000,hi +25.800000,85.500000,hi +25.900000,85.500000,hi +25.900000,85.600000,hi +25.800000,85.600000,hi +25.700000,85.600000,hi +25.700000,85.500000,hi +25.600000,85.500000,hi +25.600000,85.600000,hi +25.700000,85.700000,hi +25.600000,85.700000,hi +25.700000,85.900000,hi +25.700000,85.800000,hi +25.800000,85.800000,hi +25.800000,85.900000,hi +25.900000,85.900000,hi +25.900000,85.800000,hi +25.900000,85.700000,hi +25.800000,85.700000,hi +26.000000,85.700000,hi +26.100000,85.700000,hi +26.300000,85.700000,hi +26.200000,85.700000,hi +26.200000,85.800000,hi +26.300000,85.800000,hi +26.300000,85.900000,hi +26.200000,85.900000,hi +26.100000,85.900000,hi +26.100000,85.800000,hi +26.000000,85.800000,hi +26.000000,85.900000,hi +26.000000,86.000000,hi +26.100000,86.000000,hi +26.200000,86.000000,hi +26.300000,86.000000,hi +26.200000,86.100000,hi +26.300000,86.100000,hi +26.300000,86.200000,hi +26.200000,86.200000,hi +26.100000,86.200000,hi +26.100000,86.100000,hi +26.000000,86.100000,hi +26.000000,86.200000,hi +25.900000,86.200000,hi +25.900000,86.100000,hi +25.900000,86.000000,hi +25.800000,86.000000,hi +25.700000,86.000000,hi +25.700000,86.100000,hi +25.800000,86.100000,hi +25.800000,86.200000,hi +25.700000,86.200000,hi +25.700000,86.300000,hi +25.700000,86.400000,hi +25.800000,86.400000,hi +25.800000,86.300000,hi +25.900000,86.300000,hi +25.900000,86.400000,hi +25.900000,86.500000,hi +25.800000,86.500000,hi +25.700000,86.500000,hi +25.700000,86.600000,hi +25.800000,86.600000,hi +25.800000,86.700000,hi +25.700000,86.700000,hi +25.700000,86.800000,hi +25.700000,86.900000,hi +25.800000,86.900000,hi +25.800000,86.800000,hi +25.900000,86.800000,hi +25.900000,86.900000,hi +26.000000,86.900000,hi +26.000000,86.800000,hi +26.000000,86.700000,hi +25.900000,86.700000,hi +25.900000,86.600000,hi +26.000000,86.600000,hi +26.100000,86.600000,hi +26.100000,86.700000,hi +26.100000,86.800000,hi +26.100000,86.900000,hi +26.200000,86.800000,hi +26.200000,86.900000,hi +26.300000,86.900000,hi +26.300000,86.800000,hi +26.300000,86.700000,hi +26.200000,86.700000,hi +26.200000,86.600000,hi +26.300000,86.600000,hi +26.300000,86.500000,hi +26.200000,86.500000,hi +26.100000,86.500000,hi +26.000000,86.500000,hi +26.100000,86.400000,hi +26.000000,86.400000,hi +26.000000,86.300000,hi +26.100000,86.300000,hi +26.200000,86.300000,hi +26.200000,86.400000,hi +26.300000,86.400000,hi +26.300000,86.300000,hi +26.400000,86.300000,hi +26.500000,86.300000,hi +26.500000,86.400000,hi +26.400000,86.400000,hi +26.400000,86.500000,hi +26.500000,86.500000,hi +26.600000,86.300000,hi +26.400000,86.600000,hi +26.400000,86.700000,hi +26.400000,86.800000,hi +26.500000,86.900000,hi +26.400000,86.900000,hi +26.500000,87.000000,hi +26.400000,87.000000,hi +26.400000,87.100000,hi +26.400000,87.200000,hi +26.500000,87.100000,hi +26.400000,87.400000,hi +26.400000,87.500000,hi +26.300000,87.400000,hi +26.300000,87.500000,hi +26.200000,87.500000,hi +26.100000,87.500000,hi +26.100000,87.400000,hi +26.200000,87.400000,hi +26.100000,87.300000,hi +26.200000,87.300000,hi +26.300000,87.300000,hi +26.300000,87.200000,hi +26.300000,87.100000,hi +26.300000,87.000000,hi +26.200000,87.000000,hi +26.100000,87.000000,hi +26.100000,87.100000,hi +26.200000,87.100000,hi +26.200000,87.200000,hi +26.100000,87.200000,hi +26.000000,87.200000,hi +25.900000,87.200000,hi +25.900000,87.100000,hi +26.000000,87.100000,hi +26.000000,87.000000,hi +25.900000,87.000000,hi +25.800000,87.000000,hi +25.700000,87.000000,hi +25.700000,87.100000,hi +25.800000,87.100000,hi +25.800000,87.200000,hi +25.700000,87.200000,hi +25.700000,87.300000,hi +25.800000,87.300000,hi +25.900000,87.300000,hi +26.000000,87.300000,hi +25.900000,87.400000,hi +26.000000,87.400000,hi +26.000000,87.500000,hi +25.900000,87.500000,hi +25.800000,87.500000,hi +25.800000,87.400000,hi +25.700000,87.400000,hi +25.700000,87.500000,hi +25.600000,87.500000,hi +25.600000,87.400000,hi +25.500000,87.400000,hi +25.500000,87.500000,hi +25.400000,87.500000,hi +25.300000,87.500000,hi +25.300000,87.400000,hi +25.400000,87.400000,hi +25.300000,87.300000,hi +25.400000,87.300000,hi +25.500000,87.300000,hi +25.600000,87.300000,hi +25.600000,87.200000,hi +25.500000,87.200000,hi +25.500000,87.100000,hi +25.600000,87.100000,hi +25.600000,87.000000,hi +25.500000,87.000000,hi +25.400000,87.000000,hi +25.300000,87.000000,hi +25.300000,87.100000,hi +25.400000,87.100000,hi +25.400000,87.200000,hi +25.300000,87.200000,hi +25.200000,87.200000,hi +25.100000,87.200000,hi +25.100000,87.100000,hi +25.200000,87.100000,hi +25.200000,87.000000,hi +25.100000,87.000000,hi +25.000000,87.000000,hi +24.900000,87.000000,hi +24.900000,87.100000,hi +25.000000,87.100000,hi +25.000000,87.200000,hi +24.900000,87.200000,hi +24.900000,87.300000,hi +25.000000,87.300000,hi +25.100000,87.300000,hi +25.200000,87.300000,hi +25.100000,87.400000,hi +25.200000,87.400000,hi +25.200000,87.500000,hi +25.100000,87.500000,hi +25.000000,87.500000,hi +25.000000,87.400000,hi +24.900000,87.400000,hi +24.900000,87.500000,hi +24.800000,87.500000,hi +24.700000,87.500000,hi +24.700000,87.400000,hi +24.800000,87.400000,hi +24.800000,87.300000,hi +24.700000,87.300000,hi +24.600000,87.300000,hi +24.600000,87.400000,hi +24.600000,87.500000,hi +24.500000,87.500000,hi +24.500000,87.400000,hi +24.400000,87.400000,hi +24.400000,87.500000,hi +24.300000,87.500000,hi +24.200000,87.500000,hi +24.200000,87.400000,hi +24.300000,87.400000,hi +24.200000,87.300000,hi +24.300000,87.300000,hi +24.400000,87.300000,hi +24.500000,87.300000,hi +24.400000,87.100000,hi +24.400000,87.200000,hi +24.300000,87.200000,hi +24.200000,87.200000,hi +24.200000,87.100000,hi +24.300000,87.100000,hi +24.300000,87.000000,hi +24.200000,87.000000,hi +24.400000,87.000000,hi +24.600000,87.000000,hi +24.500000,87.000000,hi +24.500000,87.100000,hi +24.500000,87.200000,hi +24.600000,87.200000,hi +24.600000,87.100000,hi +24.700000,87.100000,hi +24.700000,87.200000,hi +24.800000,87.200000,hi +24.800000,87.100000,hi +24.800000,87.000000,hi +24.700000,87.000000,hi +24.800000,86.900000,hi +24.700000,86.900000,hi +24.700000,86.800000,hi +24.800000,86.800000,hi +24.800000,86.700000,hi +24.800000,86.600000,hi +24.700000,86.600000,hi +24.700000,86.700000,hi +24.600000,86.700000,hi +24.600000,86.600000,hi +24.500000,86.600000,hi +24.500000,86.700000,hi +24.500000,86.800000,hi +24.600000,86.800000,hi +24.600000,86.900000,hi +24.500000,86.900000,hi +24.400000,86.900000,hi +24.400000,86.800000,hi +24.300000,86.900000,hi +24.200000,86.900000,hi +24.200000,86.800000,hi +24.300000,86.800000,hi +24.200000,86.700000,hi +24.200000,86.600000,hi +24.300000,86.600000,hi +24.300000,86.700000,hi +24.400000,86.700000,hi +24.400000,86.600000,hi +24.400000,86.500000,hi +24.300000,86.500000,hi +24.200000,86.500000,hi +24.200000,86.400000,hi +24.100000,86.300000,hi +24.200000,86.300000,hi +24.300000,86.300000,hi +24.300000,86.400000,hi +24.400000,86.400000,hi +24.400000,86.300000,hi +24.500000,86.300000,hi +24.600000,86.300000,hi +24.600000,86.400000,hi +24.500000,86.400000,hi +24.500000,86.500000,hi +24.600000,86.500000,hi +24.700000,86.500000,hi +24.800000,86.500000,hi +24.800000,86.400000,hi +24.700000,86.400000,hi +24.700000,86.300000,hi +24.800000,86.300000,hi +24.900000,86.300000,hi +24.900000,86.400000,hi +25.000000,86.400000,hi +25.000000,86.300000,hi +25.100000,86.300000,hi +25.200000,86.300000,hi +25.200000,86.400000,hi +25.100000,86.400000,hi +25.200000,86.500000,hi +25.100000,86.500000,hi +25.000000,86.500000,hi +24.900000,86.500000,hi +24.900000,86.600000,hi +25.000000,86.600000,hi +25.000000,86.700000,hi +24.900000,86.700000,hi +24.900000,86.800000,hi +24.900000,86.900000,hi +25.000000,86.900000,hi +25.000000,86.800000,hi +25.100000,86.800000,hi +25.100000,86.900000,hi +25.200000,86.900000,hi +25.200000,86.800000,hi +25.200000,86.700000,hi +25.100000,86.700000,hi +25.100000,86.600000,hi +25.200000,86.600000,hi +25.300000,86.600000,hi +25.400000,86.600000,hi +25.400000,86.700000,hi +25.300000,86.700000,hi +25.300000,86.800000,hi +25.300000,86.900000,hi +25.400000,86.900000,hi +25.400000,86.800000,hi +25.500000,86.800000,hi +25.500000,86.900000,hi +25.600000,86.900000,hi +25.600000,86.800000,hi +25.600000,86.700000,hi +25.500000,86.700000,hi +25.500000,86.600000,hi +25.600000,86.600000,hi +25.600000,86.500000,hi +25.500000,86.500000,hi +25.400000,86.500000,hi +25.300000,86.500000,hi +25.400000,86.400000,hi +25.300000,86.400000,hi +25.300000,86.300000,hi +25.400000,86.300000,hi +25.500000,86.300000,hi +25.500000,86.400000,hi +25.600000,86.400000,hi +25.600000,86.300000,hi +25.600000,86.200000,hi +25.500000,86.200000,hi +25.500000,86.100000,hi +25.600000,86.100000,hi +25.600000,86.000000,hi +25.500000,86.000000,hi +25.400000,86.000000,hi +25.300000,86.000000,hi +25.300000,86.100000,hi +25.400000,86.100000,hi +25.400000,86.200000,hi +25.300000,86.200000,hi +25.200000,86.200000,hi +25.200000,86.100000,hi +25.100000,86.100000,hi +25.100000,86.200000,hi +25.000000,86.200000,hi +24.900000,86.200000,hi +24.900000,86.100000,hi +25.000000,86.100000,hi +24.900000,86.000000,hi +25.000000,86.000000,hi +25.100000,86.000000,hi +25.200000,86.000000,hi +25.200000,85.900000,hi +25.200000,85.800000,hi +25.100000,85.800000,hi +25.100000,85.900000,hi +25.000000,85.900000,hi +24.900000,85.900000,hi +24.900000,85.800000,hi +25.000000,85.800000,hi +25.000000,85.700000,hi +24.900000,85.700000,hi +25.100000,85.700000,hi +25.200000,85.700000,hi +25.400000,85.700000,hi +25.300000,85.700000,hi +25.300000,85.800000,hi +25.300000,85.900000,hi +25.400000,85.900000,hi +25.400000,85.800000,hi +25.500000,85.800000,hi +25.500000,85.900000,hi +25.600000,85.900000,hi +25.600000,85.800000,hi +25.500000,85.700000,hi +25.500000,85.500000,hi +25.500000,85.600000,hi +25.400000,85.600000,hi +25.300000,85.600000,hi +25.300000,85.500000,hi +25.400000,85.500000,hi +25.400000,85.400000,hi +25.300000,85.400000,hi +25.300000,85.300000,hi +25.400000,85.300000,hi +25.500000,85.400000,hi +25.500000,85.300000,hi +25.500000,85.200000,hi +25.400000,85.200000,hi +25.500000,85.100000,hi +25.500000,85.000000,hi +25.400000,85.000000,hi +25.400000,85.100000,hi +25.300000,85.100000,hi +25.300000,85.000000,hi +25.200000,85.000000,hi +25.300000,85.200000,hi +25.200000,85.200000,hi +25.100000,85.200000,hi +25.200000,85.100000,hi +25.100000,85.000000,hi +25.100000,85.100000,hi +25.000000,85.100000,hi +25.000000,85.000000,hi +24.900000,85.000000,hi +24.900000,85.100000,hi +25.000000,85.200000,hi +24.900000,85.200000,hi +24.900000,85.300000,hi +24.900000,85.400000,hi +25.000000,85.400000,hi +25.000000,85.300000,hi +25.100000,85.300000,hi +25.200000,85.300000,hi +25.200000,85.400000,hi +25.100000,85.400000,hi +25.100000,85.500000,hi +25.200000,85.500000,hi +25.200000,85.600000,hi +25.100000,85.600000,hi +25.000000,85.600000,hi +25.000000,85.500000,hi +24.900000,85.500000,hi +24.900000,85.600000,hi +24.800000,85.600000,hi +24.800000,85.500000,hi +24.700000,85.500000,hi +24.700000,85.600000,hi +24.600000,85.600000,hi +24.500000,85.600000,hi +24.500000,85.500000,hi +24.600000,85.500000,hi +24.600000,85.400000,hi +24.500000,85.400000,hi +24.500000,85.300000,hi +24.600000,85.300000,hi +24.700000,85.300000,hi +24.700000,85.400000,hi +24.800000,85.400000,hi +24.800000,85.300000,hi +24.800000,85.200000,hi +24.700000,85.200000,hi +24.800000,85.100000,hi +24.800000,85.000000,hi +24.700000,85.000000,hi +24.700000,85.100000,hi +24.600000,85.100000,hi +24.600000,85.000000,hi +24.500000,85.000000,hi +24.500000,85.100000,hi +24.600000,85.200000,hi +24.500000,85.200000,hi +24.400000,85.200000,hi +24.300000,85.200000,hi +24.400000,85.100000,hi +24.400000,85.000000,hi +24.300000,85.000000,hi +24.300000,85.100000,hi +24.200000,85.100000,hi +24.200000,85.000000,hi +24.100000,85.000000,hi +24.100000,85.100000,hi +24.200000,85.200000,hi +24.100000,85.200000,hi +24.100000,85.300000,hi +24.100000,85.400000,hi +24.200000,85.400000,hi +24.200000,85.300000,hi +24.300000,85.300000,hi +24.400000,85.300000,hi +24.400000,85.400000,hi +24.300000,85.400000,hi +24.300000,85.500000,hi +24.400000,85.500000,hi +24.400000,85.600000,hi +24.300000,85.600000,hi +24.200000,85.600000,hi +24.200000,85.500000,hi +24.100000,85.500000,hi +24.100000,85.600000,hi +24.200000,85.700000,hi +24.100000,85.700000,hi +24.100000,85.800000,hi +24.100000,85.900000,hi +24.200000,85.900000,hi +24.200000,85.800000,hi +24.300000,85.800000,hi +24.300000,85.900000,hi +24.400000,85.900000,hi +24.400000,85.800000,hi +24.400000,85.700000,hi +24.300000,85.700000,hi +24.500000,85.700000,hi +24.600000,85.700000,hi +24.800000,85.700000,hi +24.700000,85.700000,hi +24.700000,85.800000,hi +24.800000,85.800000,hi +24.800000,85.900000,hi +24.700000,85.900000,hi +24.600000,85.900000,hi +24.600000,85.800000,hi +24.500000,85.800000,hi +24.500000,85.900000,hi +24.500000,86.000000,hi +24.600000,86.000000,hi +24.700000,86.000000,hi +24.800000,86.000000,hi +24.700000,86.100000,hi +24.800000,86.100000,hi +24.800000,86.200000,hi +24.700000,86.200000,hi +24.600000,86.200000,hi +24.600000,86.100000,hi +24.500000,86.100000,hi +24.500000,86.200000,hi +24.400000,86.200000,hi +24.300000,86.200000,hi +24.300000,86.100000,hi +24.400000,86.100000,hi +24.400000,86.000000,hi +24.300000,86.000000,hi +24.200000,86.000000,hi +24.100000,86.000000,hi +24.100000,86.100000,hi +24.200000,86.100000,hi +24.200000,86.200000,hi +24.100000,86.200000,hi +24.000000,86.200000,hi +24.000000,86.100000,hi +24.000000,86.000000,hi +23.900000,86.000000,hi +23.800000,86.000000,hi +23.800000,86.100000,hi +23.900000,86.100000,hi +23.900000,86.200000,hi +23.800000,86.200000,hi +23.700000,86.200000,hi +23.700000,86.100000,hi +23.600000,86.100000,hi +23.600000,86.200000,hi +23.500000,86.200000,hi +23.400000,86.200000,hi +23.400000,86.100000,hi +23.500000,86.100000,hi +23.400000,86.000000,hi +23.500000,86.000000,hi +23.600000,86.000000,hi +23.700000,86.000000,hi +23.700000,85.900000,hi +23.700000,85.800000,hi +23.600000,85.800000,hi +23.600000,85.900000,hi +23.500000,85.900000,hi +23.400000,85.900000,hi +23.400000,85.800000,hi +23.500000,85.800000,hi +23.500000,85.700000,hi +23.400000,85.700000,hi +23.600000,85.700000,hi +23.700000,85.700000,hi +23.800000,85.700000,hi +23.800000,85.800000,hi +23.800000,85.900000,hi +23.900000,85.800000,hi +23.900000,85.900000,hi +24.000000,85.900000,hi +24.000000,85.800000,hi +24.000000,85.700000,hi +23.900000,85.700000,hi +24.000000,85.600000,hi +24.000000,85.500000,hi +23.900000,85.500000,hi +23.900000,85.600000,hi +23.800000,85.600000,hi +23.700000,85.500000,hi +23.800000,85.500000,hi +23.800000,85.400000,hi +23.700000,85.400000,hi +23.700000,85.300000,hi +23.800000,85.300000,hi +23.900000,85.300000,hi +23.900000,85.400000,hi +24.000000,85.400000,hi +24.000000,85.300000,hi +24.000000,85.200000,hi +23.900000,85.200000,hi +24.000000,85.100000,hi +24.000000,85.000000,hi +23.900000,85.000000,hi +23.900000,85.100000,hi +23.800000,85.100000,hi +23.800000,85.000000,hi +23.700000,85.000000,hi +23.700000,85.100000,hi +23.800000,85.200000,hi +23.700000,85.200000,hi +23.600000,85.200000,hi +23.500000,85.200000,hi +23.600000,85.100000,hi +23.600000,85.000000,hi +23.500000,85.000000,hi +23.500000,85.100000,hi +23.400000,85.000000,hi +23.400000,85.100000,hi +23.400000,85.200000,hi +23.400000,85.300000,hi +23.400000,85.400000,hi +23.500000,85.400000,hi +23.500000,85.300000,hi +23.600000,85.300000,hi +23.600000,85.400000,hi +23.600000,85.500000,hi +23.700000,85.600000,hi +23.600000,85.600000,hi +23.500000,85.600000,hi +23.500000,85.500000,hi +23.400000,85.500000,hi +23.400000,85.600000,hi +23.300000,85.600000,hi +23.300000,85.500000,hi +23.200000,85.500000,hi +23.200000,85.600000,hi +23.100000,85.600000,hi +23.000000,85.600000,hi +23.000000,85.500000,hi +23.100000,85.500000,hi +23.100000,85.400000,hi +23.000000,85.400000,hi +23.000000,85.300000,hi +23.100000,85.300000,hi +23.200000,85.300000,hi +23.200000,85.400000,hi +23.300000,85.400000,hi +23.300000,85.300000,hi +23.300000,85.200000,hi +23.200000,85.200000,hi +23.300000,85.100000,hi +23.300000,85.000000,hi +23.200000,85.000000,hi +23.200000,85.100000,hi +23.100000,85.100000,hi +23.100000,85.000000,hi +23.000000,85.000000,hi +23.000000,85.100000,hi +23.100000,85.200000,hi +23.000000,85.200000,hi +22.900000,85.200000,hi +22.800000,85.200000,hi +22.900000,85.100000,hi +22.900000,85.000000,hi +22.800000,85.000000,hi +22.800000,85.100000,hi +22.700000,85.100000,hi +22.700000,85.000000,hi +22.600000,85.000000,hi +22.600000,85.100000,hi +22.700000,85.200000,hi +22.600000,85.200000,hi +22.600000,85.300000,hi +22.600000,85.400000,hi +22.700000,85.400000,hi +22.700000,85.300000,hi +22.800000,85.300000,hi +22.900000,85.300000,hi +22.900000,85.400000,hi +22.800000,85.400000,hi +22.800000,85.500000,hi +22.900000,85.500000,hi +22.900000,85.600000,hi +22.800000,85.600000,hi +22.700000,85.600000,hi +22.700000,85.500000,hi +22.600000,85.500000,hi +22.600000,85.600000,hi +22.700000,85.700000,hi +22.600000,85.700000,hi +22.600000,85.800000,hi +22.600000,85.900000,hi +22.700000,85.900000,hi +22.700000,85.800000,hi +22.800000,85.800000,hi +22.800000,85.900000,hi +22.900000,85.900000,hi +22.900000,85.800000,hi +22.900000,85.700000,hi +22.800000,85.700000,hi +23.000000,85.700000,hi +23.100000,85.700000,hi +23.300000,85.700000,hi +23.200000,85.700000,hi +23.200000,85.800000,hi +23.300000,85.800000,hi +23.300000,85.900000,hi +23.200000,85.900000,hi +23.100000,85.900000,hi +23.100000,85.800000,hi +23.000000,85.800000,hi +23.000000,85.900000,hi +23.000000,86.000000,hi +23.100000,86.000000,hi +23.200000,86.000000,hi +23.300000,86.000000,hi +23.200000,86.100000,hi +23.300000,86.100000,hi +23.300000,86.200000,bn +23.200000,86.200000,hi +23.100000,86.200000,hi +23.100000,86.100000,hi +23.000000,86.100000,hi +23.000000,86.200000,hi +22.900000,86.200000,hi +22.800000,86.200000,hi +22.800000,86.100000,hi +22.900000,86.100000,hi +22.900000,86.000000,hi +22.800000,86.000000,hi +22.700000,86.000000,hi +22.600000,86.000000,hi +22.600000,86.100000,hi +22.700000,86.100000,hi +22.700000,86.200000,hi +22.600000,86.200000,hi +22.600000,86.300000,hi +22.600000,86.400000,hi +22.700000,86.400000,hi +22.700000,86.300000,hi +22.800000,86.300000,hi +22.900000,86.300000,hi +22.900000,86.400000,hi +22.800000,86.400000,hi +22.900000,86.500000,hi +22.800000,86.500000,hi +22.700000,86.500000,hi +22.600000,86.500000,hi +22.600000,86.600000,hi +22.700000,86.600000,hi +22.700000,86.700000,hi +22.600000,86.700000,hi +22.600000,86.800000,bn +22.600000,86.900000,bn +22.700000,86.900000,bn +22.700000,86.800000,bn +22.800000,86.800000,bn +22.800000,86.900000,bn +22.900000,86.900000,bn +22.900000,86.800000,bn +22.900000,86.700000,bn +22.800000,86.700000,bn +22.800000,86.600000,hi +22.900000,86.600000,bn +23.000000,86.600000,bn +23.100000,86.600000,bn +23.100000,86.700000,bn +23.000000,86.700000,bn +23.000000,86.800000,bn +23.000000,86.900000,bn +23.100000,86.900000,bn +23.100000,86.800000,bn +23.200000,86.800000,bn +23.200000,86.900000,bn +23.300000,86.900000,bn +23.300000,86.800000,bn +23.300000,86.700000,bn +23.200000,86.700000,bn +23.200000,86.600000,bn +23.300000,86.600000,bn +23.300000,86.500000,bn +23.200000,86.500000,bn +23.100000,86.500000,bn +23.000000,86.500000,hi +23.100000,86.400000,bn +23.000000,86.400000,hi +23.000000,86.300000,hi +23.100000,86.300000,bn +23.200000,86.300000,bn +23.200000,86.400000,bn +23.300000,86.400000,bn +23.300000,86.300000,bn +23.400000,86.300000,hi +23.500000,86.300000,hi +23.500000,86.400000,hi +23.400000,86.400000,hi +23.400000,86.500000,bn +23.500000,86.500000,hi +23.600000,86.500000,hi +23.700000,86.500000,hi +23.700000,86.400000,hi +23.600000,86.400000,hi +23.600000,86.300000,hi +23.700000,86.300000,hi +23.800000,86.300000,hi +23.800000,86.400000,hi +23.900000,86.400000,hi +23.900000,86.300000,hi +24.000000,86.300000,hi +24.100000,86.400000,hi +24.000000,86.400000,hi +24.100000,86.500000,hi +24.000000,86.500000,hi +23.900000,86.500000,hi +23.800000,86.500000,hi +23.800000,86.600000,hi +23.800000,86.700000,hi +23.900000,86.700000,hi +23.900000,86.600000,hi +24.000000,86.600000,hi +24.100000,86.600000,hi +24.100000,86.700000,hi +24.000000,86.700000,hi +24.000000,86.800000,hi +24.100000,86.800000,hi +24.100000,86.900000,hi +24.000000,86.900000,hi +23.900000,86.900000,hi +23.900000,86.800000,hi +23.800000,86.800000,hi +23.800000,86.900000,hi +23.700000,86.900000,hi +23.600000,86.900000,hi +23.600000,86.800000,hi +23.700000,86.800000,hi +23.700000,86.700000,hi +23.700000,86.600000,hi +23.600000,86.600000,hi +23.600000,86.700000,hi +23.500000,86.700000,hi +23.500000,86.600000,hi +23.400000,86.600000,bn +23.400000,86.700000,bn +23.400000,86.800000,bn +23.500000,86.800000,hi +23.500000,86.900000,hi +23.400000,86.900000,bn +23.500000,87.000000,hi +23.400000,87.000000,bn +23.400000,87.100000,bn +23.400000,87.200000,hi +23.500000,87.200000,hi +23.500000,87.100000,hi +23.600000,87.100000,hi +23.600000,87.200000,hi +23.700000,87.200000,hi +23.700000,87.100000,hi +23.700000,87.000000,hi +23.600000,87.000000,hi +23.800000,87.000000,hi +23.900000,87.000000,hi +24.100000,87.000000,hi +24.000000,87.000000,hi +24.000000,87.100000,hi +24.100000,87.100000,hi +24.100000,87.200000,hi +24.000000,87.200000,hi +23.900000,87.200000,hi +23.900000,87.100000,hi +23.800000,87.100000,hi +23.800000,87.200000,hi +23.800000,87.300000,hi +23.900000,87.300000,bn +24.000000,87.300000,bn +24.100000,87.300000,hi +24.000000,87.400000,bn +24.100000,87.400000,hi +24.100000,87.500000,bn +24.000000,87.500000,bn +23.900000,87.500000,bn +23.900000,87.400000,bn +23.800000,87.400000,bn +23.800000,87.500000,bn +23.700000,87.500000,bn +23.600000,87.500000,bn +23.600000,87.400000,hi +23.700000,87.400000,hi +23.700000,87.300000,hi +23.600000,87.300000,hi +23.500000,87.300000,hi +23.400000,87.300000,hi +23.400000,87.400000,hi +23.500000,87.400000,hi +23.500000,87.500000,hi +23.400000,87.500000,hi +23.300000,87.500000,bn +23.300000,87.400000,bn +23.200000,87.400000,bn +23.200000,87.500000,bn +23.100000,87.500000,bn +23.000000,87.500000,bn +23.000000,87.400000,bn +23.100000,87.400000,bn +23.000000,87.300000,bn +23.100000,87.300000,bn +23.200000,87.300000,bn +23.300000,87.300000,bn +23.300000,87.200000,bn +23.200000,87.200000,bn +23.200000,87.100000,bn +23.300000,87.100000,bn +23.300000,87.000000,bn +23.200000,87.000000,bn +23.100000,87.000000,bn +23.000000,87.000000,bn +23.000000,87.100000,bn +23.100000,87.100000,bn +23.100000,87.200000,bn +23.000000,87.200000,bn +22.900000,87.200000,bn +22.800000,87.200000,bn +22.800000,87.100000,bn +22.900000,87.100000,bn +22.900000,87.000000,bn +22.800000,87.000000,bn +22.700000,87.000000,bn +22.600000,87.000000,bn +22.600000,87.100000,bn +22.700000,87.100000,bn +22.700000,87.200000,bn +22.600000,87.200000,bn +22.600000,87.300000,bn +22.700000,87.300000,bn +22.800000,87.300000,bn +22.900000,87.300000,bn +22.800000,87.400000,bn +22.900000,87.400000,bn +22.900000,87.500000,bn +22.800000,87.500000,bn +22.700000,87.500000,bn +22.700000,87.400000,bn +22.600000,87.400000,bn +22.700000,87.600000,bn +22.700000,87.800000,bn +22.700000,87.700000,bn +22.800000,87.700000,bn +22.800000,87.800000,bn +22.900000,87.800000,bn +22.900000,87.700000,bn +22.800000,87.600000,bn +22.900000,87.600000,bn +23.000000,87.600000,bn +23.100000,87.600000,bn +23.200000,87.600000,bn +23.300000,87.600000,bn +23.200000,87.700000,bn +23.300000,87.700000,bn +23.300000,87.800000,bn +23.200000,87.800000,bn +23.100000,87.800000,bn +23.100000,87.700000,bn +23.000000,87.700000,bn +23.000000,87.800000,bn +23.000000,87.900000,bn +23.000000,88.000000,bn +23.100000,88.000000,bn +23.100000,87.900000,bn +23.200000,87.900000,bn +23.300000,87.900000,bn +23.300000,88.000000,bn +23.200000,88.000000,bn +23.300000,88.100000,bn +23.200000,88.100000,bn +23.100000,88.100000,bn +23.000000,88.100000,bn +22.900000,88.100000,bn +22.800000,88.100000,bn +22.900000,88.000000,bn +22.900000,87.900000,bn +22.800000,87.900000,bn +22.800000,88.000000,bn +22.700000,87.900000,bn +22.700000,88.000000,bn +22.700000,88.100000,bn +22.700000,88.200000,hi +22.700000,88.300000,hi +22.800000,88.300000,hi +22.800000,88.200000,bn +22.900000,88.200000,bn +22.900000,88.300000,bn +22.900000,88.400000,bn +22.800000,88.400000,hi +22.700000,88.400000,bn +22.700000,88.500000,bn +22.800000,88.500000,bn +22.800000,88.600000,bn +22.700000,88.600000,bn +22.700000,88.700000,bn +22.800000,88.700000,bn +22.900000,88.700000,bn +22.900000,88.600000,bn +22.900000,88.500000,bn +23.000000,88.500000,bn +23.100000,88.500000,bn +23.100000,88.600000,bn +23.000000,88.600000,bn +23.000000,88.700000,bn +23.100000,88.700000,bn +23.200000,88.700000,bn +23.300000,88.600000,bn +23.200000,88.600000,bn +23.200000,88.500000,bn +23.300000,88.500000,bn +23.300000,88.400000,bn +23.200000,88.400000,bn +23.000000,88.400000,bn +23.100000,88.400000,bn +23.100000,88.300000,bn +23.000000,88.300000,bn +23.000000,88.200000,bn +23.100000,88.200000,bn +23.200000,88.200000,bn +23.200000,88.300000,bn +23.300000,88.300000,bn +23.300000,88.200000,bn +23.400000,88.200000,bn +23.400000,88.300000,bn +23.500000,88.300000,bn +23.500000,88.200000,bn +23.600000,88.200000,bn +23.700000,88.200000,bn +23.700000,88.300000,bn +23.600000,88.300000,bn +23.600000,88.400000,bn +23.700000,88.400000,bn +23.500000,88.400000,bn +23.400000,88.400000,bn +23.400000,88.500000,bn +23.500000,88.500000,bn +23.500000,88.600000,bn +23.400000,88.600000,bn +23.400000,88.700000,bn +23.600000,88.500000,bn +23.700000,88.500000,bn +23.800000,88.500000,bn +23.900000,88.500000,bn +23.900000,88.600000,bn +24.000000,88.700000,bn +24.100000,88.600000,bn +24.000000,88.600000,bn +24.000000,88.500000,bn +24.100000,88.500000,bn +24.100000,88.400000,bn +24.000000,88.400000,bn +23.800000,88.400000,bn +23.900000,88.400000,bn +23.900000,88.300000,bn +23.800000,88.300000,bn +23.800000,88.200000,bn +23.900000,88.200000,bn +24.000000,88.200000,bn +24.000000,88.300000,bn +24.100000,88.300000,bn +24.100000,88.200000,bn +24.100000,88.100000,bn +24.000000,88.100000,bn +24.100000,88.000000,bn +24.100000,87.900000,bn +24.000000,87.900000,bn +24.000000,88.000000,bn +23.900000,88.000000,bn +23.900000,87.900000,bn +23.800000,87.900000,bn +23.800000,88.000000,bn +23.900000,88.100000,bn +23.800000,88.100000,bn +23.700000,88.100000,bn +23.600000,88.100000,bn +23.500000,88.100000,bn +23.400000,88.100000,bn +23.500000,88.000000,bn +23.400000,88.000000,bn +23.400000,87.900000,bn +23.500000,87.900000,bn +23.600000,87.900000,bn +23.600000,88.000000,bn +23.700000,88.000000,bn +23.700000,87.900000,bn +23.700000,87.800000,bn +23.700000,87.700000,bn +23.600000,87.700000,bn +23.600000,87.800000,bn +23.500000,87.800000,bn +23.400000,87.800000,bn +23.400000,87.700000,bn +23.500000,87.700000,bn +23.400000,87.600000,bn +23.500000,87.600000,bn +23.600000,87.600000,bn +23.700000,87.600000,bn +23.800000,87.600000,bn +23.900000,87.600000,bn +23.800000,87.700000,bn +23.800000,87.800000,bn +23.900000,87.800000,bn +23.900000,87.700000,bn +24.000000,87.700000,bn +24.000000,87.800000,bn +24.100000,87.800000,bn +24.100000,87.700000,bn +24.000000,87.600000,bn +24.100000,87.600000,bn +24.200000,87.600000,bn +24.300000,87.600000,hi +24.400000,87.600000,hi +24.500000,87.600000,hi +24.400000,87.700000,hi +24.500000,87.700000,hi +24.500000,87.800000,hi +24.400000,87.800000,bn +24.300000,87.800000,bn +24.300000,87.700000,bn +24.200000,87.700000,bn +24.200000,87.800000,bn +24.200000,87.900000,bn +24.300000,87.900000,bn +24.300000,88.000000,bn +24.200000,88.000000,bn +24.200000,88.100000,bn +24.300000,88.100000,bn +24.400000,88.100000,bn +24.500000,88.100000,bn +24.500000,88.000000,bn +24.400000,88.000000,bn +24.400000,87.900000,bn +24.500000,87.900000,bn +24.600000,87.900000,hi +24.700000,88.000000,bn +24.600000,88.000000,bn +24.800000,88.000000,bn +24.700000,87.900000,bn +24.800000,87.900000,hi +24.800000,87.800000,hi +24.800000,87.700000,hi +24.700000,87.700000,hi +24.700000,87.800000,hi +24.600000,87.800000,hi +24.600000,87.700000,hi +24.600000,87.600000,hi +24.700000,87.600000,hi +24.800000,87.600000,hi +24.900000,87.600000,hi +25.000000,87.600000,hi +24.900000,87.700000,hi +24.900000,87.800000,hi +25.000000,87.800000,hi +25.000000,87.700000,hi +25.100000,87.700000,hi +25.100000,87.800000,hi +25.200000,87.800000,hi +25.200000,87.700000,hi +25.100000,87.600000,hi +25.200000,87.600000,hi +25.300000,87.600000,hi +25.400000,87.600000,hi +25.500000,87.600000,hi +25.600000,87.600000,hi +25.500000,87.700000,hi +25.600000,87.700000,hi +25.600000,87.800000,hi +25.500000,87.800000,hi +25.400000,87.800000,hi +25.400000,87.700000,hi +25.300000,87.700000,hi +25.300000,87.800000,hi +25.300000,87.900000,bn +25.300000,88.000000,bn +25.400000,88.000000,bn +25.400000,87.900000,bn +25.500000,87.900000,hi +25.600000,87.900000,hi +25.600000,88.000000,hi +25.500000,88.000000,hi +25.600000,88.100000,bn +25.500000,88.100000,bn +25.400000,88.100000,bn +25.300000,88.100000,bn +25.200000,88.100000,bn +25.100000,88.100000,bn +25.200000,88.000000,bn +25.200000,87.900000,bn +25.100000,87.900000,bn +25.100000,88.000000,bn +25.000000,88.000000,bn +25.000000,87.900000,bn +24.900000,87.900000,hi +24.900000,88.000000,bn +25.000000,88.100000,bn +24.900000,88.100000,bn +25.000000,88.200000,bn +25.000000,88.300000,bn +24.900000,88.300000,bn +25.000000,88.400000,bn +25.100000,88.400000,bn +25.200000,88.400000,bn +25.200000,88.300000,bn +25.100000,88.300000,bn +25.100000,88.200000,bn +25.200000,88.200000,bn +25.300000,88.200000,bn +25.300000,88.300000,bn +25.400000,88.300000,bn +25.400000,88.200000,bn +25.500000,88.200000,bn +25.600000,88.200000,bn +25.600000,88.300000,bn +25.500000,88.300000,bn +25.500000,88.400000,bn +25.600000,88.400000,bn +25.400000,88.400000,bn +25.300000,88.400000,bn +25.300000,88.500000,bn +25.300000,88.600000,bn +25.400000,88.600000,bn +25.400000,88.500000,bn +25.500000,88.500000,bn +25.400000,88.700000,bn +25.300000,88.700000,bn +24.400000,88.200000,bn +24.300000,88.300000,bn +24.300000,88.200000,bn +24.200000,88.200000,bn +24.200000,88.300000,bn +24.200000,88.400000,bn +24.300000,88.400000,bn +24.200000,88.500000,bn +24.200000,88.600000,bn +24.300000,88.600000,bn +24.300000,88.500000,bn +24.300000,88.700000,bn +24.200000,88.700000,bn +25.200000,88.800000,bn +25.300000,88.800000,bn +25.300000,88.900000,bn +25.400000,88.800000,bn +25.500000,88.800000,bn +25.500000,89.900000,hi +25.600000,89.900000,bn +25.400000,89.900000,bn +23.200000,88.800000,bn +23.200000,88.900000,bn +23.100000,88.800000,bn +23.000000,88.800000,bn +22.900000,88.800000,bn +22.800000,88.900000,bn +22.800000,88.800000,bn +22.700000,88.800000,bn +22.700000,88.900000,bn +21.600000,89.100000,bn +21.400000,88.800000,bn +21.500000,88.800000,bn +21.600000,88.800000,bn +21.600000,88.900000,bn +21.500000,88.900000,bn +21.500000,89.000000,bn +21.600000,89.000000,bn +21.700000,89.000000,bn +21.800000,89.000000,bn +21.800000,88.900000,bn +21.700000,88.900000,bn +21.700000,88.800000,bn +21.800000,88.800000,bn +21.900000,88.800000,bn +21.900000,88.900000,bn +22.000000,88.900000,bn +22.000000,88.800000,bn +22.100000,88.800000,bn +22.200000,88.800000,bn +22.200000,88.900000,bn +22.100000,88.900000,bn +22.100000,89.000000,bn +22.200000,89.000000,bn +22.000000,89.000000,bn +21.900000,89.000000,bn +22.400000,88.900000,bn +22.300000,88.900000,bn +22.300000,88.800000,bn +22.400000,88.800000,bn +22.500000,88.800000,bn +22.500000,88.900000,bn +22.600000,88.900000,bn +22.600000,88.800000,bn +22.500000,88.700000,bn +22.600000,88.700000,bn +22.600000,88.600000,bn +22.600000,88.500000,hi +22.500000,88.500000,hi +22.500000,88.600000,bn +22.400000,88.600000,bn +22.400000,88.500000,bn +22.300000,88.500000,bn +22.300000,88.600000,bn +22.300000,88.700000,bn +22.400000,88.700000,bn +22.200000,88.700000,bn +22.100000,88.700000,bn +21.900000,88.700000,bn +22.000000,88.700000,bn +22.000000,88.600000,bn +21.900000,88.600000,bn +21.900000,88.500000,bn +22.000000,88.500000,bn +22.100000,88.500000,bn +22.100000,88.600000,bn +22.200000,88.600000,bn +22.200000,88.500000,bn +22.200000,88.400000,bn +22.100000,88.400000,bn +21.900000,88.400000,bn +22.000000,88.400000,bn +22.000000,88.300000,bn +21.900000,88.300000,bn +21.900000,88.200000,bn +22.000000,88.200000,bn +22.100000,88.200000,bn +22.100000,88.300000,bn +22.200000,88.300000,bn +22.200000,88.200000,bn +22.300000,88.200000,bn +22.400000,88.200000,bn +22.400000,88.300000,bn +22.300000,88.300000,bn +22.300000,88.400000,bn +22.400000,88.400000,bn +22.500000,88.400000,hi +22.600000,88.400000,hi +22.600000,88.300000,hi +22.500000,88.300000,hi +22.500000,88.200000,hi +22.600000,88.200000,hi +22.600000,88.100000,bn +22.500000,88.100000,bn +22.400000,88.100000,bn +22.300000,88.100000,bn +22.400000,88.000000,bn +22.300000,88.000000,bn +22.300000,87.900000,bn +22.400000,87.900000,bn +22.500000,87.900000,bn +22.500000,88.000000,bn +22.600000,88.000000,bn +22.600000,87.900000,bn +22.600000,87.800000,bn +22.500000,87.800000,bn +22.500000,87.700000,bn +22.600000,87.700000,bn +22.600000,87.600000,bn +22.500000,87.600000,bn +22.400000,87.600000,bn +22.300000,87.600000,bn +22.300000,87.700000,bn +22.400000,87.700000,bn +22.400000,87.800000,hi +22.300000,87.800000,bn +22.200000,87.800000,bn +22.100000,87.800000,bn +22.100000,87.700000,bn +22.200000,87.700000,bn +22.200000,87.600000,bn +22.100000,87.600000,bn +22.000000,87.600000,bn +21.900000,87.600000,bn +21.900000,87.700000,bn +22.000000,87.700000,bn +22.000000,87.800000,bn +21.900000,87.800000,bn +21.900000,87.900000,bn +21.900000,88.000000,bn +22.000000,88.000000,bn +22.000000,87.900000,bn +22.100000,87.900000,bn +22.200000,87.900000,bn +22.200000,88.000000,bn +22.100000,88.000000,bn +22.200000,88.100000,bn +22.100000,88.100000,bn +22.000000,88.100000,bn +21.900000,88.100000,bn +21.800000,88.100000,bn +21.700000,88.100000,bn +21.600000,88.100000,bn +21.500000,88.100000,bn +21.600000,88.000000,bn +21.500000,88.000000,bn +21.500000,87.900000,bn +21.600000,87.900000,bn +21.700000,87.900000,bn +21.700000,88.000000,bn +21.800000,88.000000,bn +21.800000,87.900000,bn +21.800000,87.800000,bn +21.700000,87.800000,bn +21.700000,87.700000,bn +21.800000,87.700000,bn +21.800000,87.600000,bn +21.700000,87.600000,bn +21.600000,87.600000,bn +21.500000,87.600000,bn +21.500000,87.700000,bn +21.600000,87.700000,bn +21.600000,87.800000,bn +21.500000,87.800000,bn +21.400000,87.800000,bn +21.300000,87.800000,bn +21.300000,87.700000,bn +21.400000,87.700000,bn +21.400000,87.600000,bn +21.300000,87.600000,bn +21.200000,87.600000,bn +21.100000,87.600000,hi +21.100000,87.700000,bn +21.200000,87.700000,bn +21.200000,87.800000,bn +21.100000,87.800000,bn +21.100000,87.900000,bn +21.100000,88.000000,bn +21.200000,88.000000,bn +21.200000,87.900000,bn +21.300000,87.900000,bn +21.400000,87.900000,bn +21.400000,88.000000,bn +21.300000,88.000000,bn +21.400000,88.100000,bn +21.300000,88.100000,bn +21.200000,88.100000,bn +21.100000,88.100000,bn +21.100000,88.200000,bn +21.200000,88.200000,bn +21.200000,88.300000,bn +21.100000,88.300000,bn +21.200000,88.400000,bn +21.300000,88.400000,bn +21.400000,88.400000,bn +21.400000,88.300000,bn +21.300000,88.300000,bn +21.300000,88.200000,bn +21.400000,88.200000,bn +21.500000,88.200000,bn +21.500000,88.300000,bn +21.600000,88.300000,bn +21.600000,88.200000,bn +21.700000,88.200000,bn +21.800000,88.200000,bn +21.800000,88.300000,bn +21.700000,88.300000,bn +21.700000,88.400000,bn +21.800000,88.400000,bn +21.600000,88.400000,bn +21.500000,88.400000,bn +21.500000,88.500000,bn +21.500000,88.600000,bn +21.600000,88.600000,bn +21.600000,88.500000,bn +21.700000,88.500000,bn +21.800000,88.500000,bn +21.800000,88.600000,bn +21.700000,88.600000,bn +21.700000,88.700000,bn +21.800000,88.700000,bn +21.600000,88.700000,bn +21.500000,88.700000,bn +21.400000,88.700000,bn +21.400000,88.600000,bn +21.400000,88.500000,bn +21.300000,88.500000,bn +21.300000,88.600000,bn +21.200000,88.500000,bn +21.000000,88.200000,bn +21.000000,88.100000,bn +20.800000,87.900000,hi +20.900000,87.900000,hi +20.900000,88.000000,bn +21.000000,88.000000,bn +21.000000,87.900000,bn +21.000000,87.800000,bn +20.900000,87.800000,hi +20.900000,87.700000,hi +21.000000,87.700000,hi +21.000000,87.600000,hi +20.900000,87.600000,hi +20.800000,87.600000,hi +20.700000,87.600000,hi +20.700000,87.700000,hi +20.800000,87.700000,hi +20.800000,87.800000,hi +20.600000,87.600000,hi +19.500000,86.500000,hi +19.500000,86.400000,hi +19.500000,86.300000,hi +19.400000,86.300000,hi +19.400000,86.400000,hi +19.300000,86.300000,hi +18.100000,85.000000,te +18.300000,85.200000,hi +18.300000,85.100000,hi +18.200000,85.100000,te +18.200000,85.000000,te +18.300000,85.000000,hi +18.400000,85.000000,hi +18.400000,85.100000,hi +18.500000,85.100000,hi +18.500000,85.000000,te +18.600000,85.000000,te +18.700000,85.000000,hi +18.700000,85.100000,hi +18.600000,85.100000,te +18.700000,85.200000,hi +18.600000,85.200000,hi +18.500000,85.200000,hi +18.400000,85.200000,hi +18.400000,85.300000,hi +18.400000,85.400000,hi +18.500000,85.400000,hi +18.500000,85.300000,hi +18.600000,85.300000,hi +18.700000,85.300000,hi +18.700000,85.400000,hi +18.600000,85.400000,hi +18.600000,85.500000,hi +18.700000,85.500000,hi +18.700000,85.600000,hi +18.600000,85.600000,hi +18.500000,85.500000,hi +18.300000,85.300000,hi +18.700000,85.700000,hi +18.800000,85.700000,hi +18.900000,85.700000,hi +19.100000,85.700000,hi +19.000000,85.700000,hi +19.000000,85.800000,hi +19.100000,85.800000,hi +19.100000,85.900000,hi +19.000000,85.900000,hi +18.900000,85.900000,hi +18.900000,85.800000,hi +18.800000,85.800000,hi +19.100000,86.100000,hi +19.000000,86.000000,hi +19.100000,86.000000,hi +19.200000,86.000000,hi +19.300000,86.000000,hi +19.200000,86.100000,hi +19.200000,86.200000,hi +19.300000,86.200000,hi +19.300000,86.100000,hi +19.400000,86.100000,hi +19.400000,86.200000,hi +19.500000,86.200000,hi +19.500000,86.100000,hi +19.400000,86.000000,hi +19.500000,86.000000,hi +19.500000,85.900000,hi +19.500000,85.800000,hi +19.400000,85.800000,hi +19.400000,85.900000,hi +19.300000,85.900000,hi +19.200000,85.900000,hi +19.200000,85.800000,hi +19.300000,85.800000,hi +19.300000,85.700000,hi +19.200000,85.700000,hi +19.400000,85.700000,hi +19.500000,85.700000,hi +19.500000,85.600000,hi +19.400000,85.600000,hi +19.400000,85.500000,hi +19.500000,85.500000,hi +19.500000,85.400000,hi +19.500000,85.300000,hi +19.400000,85.300000,hi +19.400000,85.400000,hi +19.300000,85.400000,hi +19.300000,85.300000,hi +19.200000,85.300000,hi +19.200000,85.400000,hi +19.200000,85.500000,hi +19.300000,85.500000,hi +19.300000,85.600000,hi +19.200000,85.600000,hi +19.100000,85.600000,hi +19.100000,85.500000,hi +19.000000,85.500000,hi +19.000000,85.600000,hi +18.900000,85.600000,hi +18.800000,85.600000,hi +18.800000,85.500000,hi +18.900000,85.500000,hi +18.900000,85.400000,hi +18.800000,85.400000,hi +18.800000,85.300000,hi +18.900000,85.300000,hi +19.000000,85.300000,hi +19.000000,85.400000,hi +19.100000,85.400000,hi +19.100000,85.300000,hi +19.100000,85.200000,hi +19.000000,85.200000,hi +18.900000,85.200000,hi +18.800000,85.200000,hi +18.900000,85.100000,hi +18.800000,85.100000,hi +18.800000,85.000000,hi +18.900000,85.000000,hi +19.000000,85.000000,hi +19.000000,85.100000,hi +19.100000,85.100000,hi +19.100000,85.000000,hi +19.200000,85.000000,hi +19.300000,85.000000,hi +19.300000,85.100000,hi +19.200000,85.100000,hi +19.200000,85.200000,hi +19.300000,85.200000,hi +19.400000,85.200000,hi +19.500000,85.200000,hi +19.500000,85.100000,hi +19.400000,85.100000,hi +19.400000,85.000000,hi +19.500000,85.000000,hi +19.600000,85.100000,hi +19.600000,85.000000,hi +19.700000,85.000000,hi +19.800000,85.000000,hi +19.800000,85.100000,hi +19.700000,85.100000,hi +19.800000,85.200000,hi +19.700000,85.200000,hi +19.600000,85.200000,hi +19.600000,85.300000,hi +19.700000,85.400000,hi +19.600000,85.400000,hi +19.600000,85.500000,hi +19.600000,85.600000,hi +19.700000,85.600000,hi +19.700000,85.500000,hi +19.800000,85.600000,hi +19.800000,85.500000,hi +19.800000,85.400000,hi +19.700000,85.300000,hi +19.800000,85.300000,hi +19.900000,85.300000,hi +20.000000,85.300000,hi +20.000000,85.400000,hi +19.900000,85.400000,hi +19.900000,85.500000,hi +19.900000,85.600000,hi +20.000000,85.600000,hi +20.000000,85.500000,hi +20.100000,85.500000,hi +20.100000,85.600000,hi +20.200000,85.600000,hi +20.200000,85.500000,hi +20.200000,85.400000,hi +20.100000,85.400000,hi +20.100000,85.300000,hi +20.200000,85.300000,hi +20.200000,85.200000,hi +20.100000,85.200000,hi +20.000000,85.200000,hi +19.900000,85.200000,hi +20.000000,85.100000,hi +19.900000,85.100000,hi +19.900000,85.000000,hi +20.000000,85.000000,hi +20.100000,85.000000,hi +20.100000,85.100000,hi +20.200000,85.100000,hi +20.200000,85.000000,hi +20.300000,85.000000,hi +20.400000,85.000000,hi +20.400000,85.100000,hi +20.300000,85.100000,hi +20.300000,85.200000,hi +20.400000,85.200000,hi +20.500000,85.200000,hi +20.600000,85.200000,hi +20.600000,85.100000,hi +20.500000,85.100000,hi +20.500000,85.000000,hi +20.600000,85.000000,hi +20.700000,85.000000,hi +20.700000,85.100000,hi +20.800000,85.100000,hi +20.800000,85.000000,hi +20.900000,85.000000,hi +21.000000,85.000000,hi +21.000000,85.100000,hi +20.900000,85.100000,hi +21.000000,85.200000,hi +20.900000,85.200000,hi +20.800000,85.200000,hi +20.700000,85.200000,hi +20.700000,85.300000,hi +20.700000,85.400000,hi +20.800000,85.400000,hi +20.800000,85.300000,hi +20.900000,85.300000,hi +21.000000,85.300000,hi +21.000000,85.400000,hi +20.900000,85.400000,hi +20.900000,85.500000,hi +21.000000,85.500000,hi +21.000000,85.600000,hi +20.900000,85.600000,hi +20.800000,85.600000,hi +20.800000,85.500000,hi +20.700000,85.500000,hi +20.700000,85.600000,hi +20.600000,85.600000,hi +20.500000,85.600000,hi +20.500000,85.500000,hi +20.600000,85.500000,hi +20.600000,85.400000,hi +20.600000,85.300000,hi +20.500000,85.300000,hi +20.500000,85.400000,hi +20.400000,85.400000,hi +20.400000,85.300000,hi +20.300000,85.300000,hi +20.300000,85.400000,hi +20.300000,85.500000,hi +20.400000,85.500000,hi +20.400000,85.600000,hi +20.300000,85.600000,hi +20.400000,85.700000,hi +20.300000,85.700000,hi +20.300000,85.800000,hi +20.300000,85.900000,hi +20.400000,85.900000,hi +20.400000,85.800000,hi +20.500000,85.800000,hi +20.500000,85.900000,hi +20.600000,85.900000,hi +20.600000,85.800000,hi +20.600000,85.700000,hi +20.500000,85.700000,hi +20.700000,85.700000,hi +20.800000,85.700000,hi +21.000000,85.700000,hi +20.900000,85.700000,hi +20.900000,85.800000,hi +21.000000,85.800000,hi +21.000000,85.900000,hi +20.900000,85.900000,hi +20.800000,85.900000,hi +20.800000,85.800000,hi +20.700000,85.800000,hi +20.700000,85.900000,hi +20.700000,86.000000,hi +20.800000,86.000000,hi +20.900000,86.000000,hi +21.000000,86.000000,hi +20.900000,86.100000,hi +21.000000,86.100000,hi +21.000000,86.200000,hi +20.900000,86.200000,hi +20.800000,86.200000,hi +20.800000,86.100000,hi +20.700000,86.100000,hi +20.700000,86.200000,hi +20.600000,86.200000,hi +20.500000,86.200000,hi +20.500000,86.100000,hi +20.600000,86.100000,hi +20.600000,86.000000,hi +20.500000,86.000000,hi +20.400000,86.000000,hi +20.300000,86.000000,hi +20.300000,86.100000,hi +20.400000,86.100000,hi +20.400000,86.200000,hi +20.300000,86.200000,hi +20.200000,86.200000,hi +20.200000,86.100000,hi +20.100000,86.100000,hi +20.100000,86.200000,hi +20.000000,86.200000,hi +20.000000,86.100000,hi +20.000000,86.000000,hi +20.100000,86.000000,hi +20.200000,86.000000,hi +20.200000,85.900000,hi +20.100000,85.900000,hi +20.100000,85.800000,hi +20.200000,85.800000,hi +20.200000,85.700000,hi +20.100000,85.700000,hi +20.000000,85.700000,hi +19.900000,85.700000,hi +20.000000,85.800000,hi +20.000000,85.900000,hi +19.900000,85.900000,hi +19.800000,85.900000,hi +19.800000,85.800000,hi +19.900000,85.800000,hi +19.800000,85.700000,hi +19.700000,85.700000,hi +19.600000,85.700000,hi +19.600000,85.800000,hi +19.700000,85.800000,hi +19.700000,85.900000,hi +19.600000,85.900000,hi +19.600000,86.000000,hi +19.700000,86.000000,hi +19.800000,86.000000,hi +19.900000,86.000000,hi +19.800000,86.100000,hi +19.900000,86.100000,hi +19.900000,86.200000,hi +19.800000,86.200000,hi +19.700000,86.200000,hi +19.700000,86.100000,hi +19.600000,86.100000,hi +19.600000,86.200000,hi +19.600000,86.300000,hi +19.700000,86.300000,hi +19.700000,86.400000,hi +19.600000,86.400000,hi +19.600000,86.500000,hi +19.700000,86.500000,hi +19.800000,86.500000,hi +19.900000,86.500000,hi +19.900000,86.400000,hi +19.800000,86.400000,hi +19.800000,86.300000,hi +19.900000,86.300000,hi +20.000000,86.300000,hi +20.000000,86.400000,hi +20.100000,86.400000,hi +20.100000,86.300000,hi +20.200000,86.300000,hi +20.200000,86.400000,hi +20.200000,86.500000,hi +20.100000,86.500000,hi +20.000000,86.500000,hi +20.000000,86.600000,hi +20.000000,86.700000,hi +20.100000,86.700000,hi +20.100000,86.600000,hi +20.200000,86.600000,hi +20.200000,86.700000,hi +20.200000,86.800000,hi +20.300000,86.800000,hi +20.300000,86.900000,hi +20.200000,86.900000,hi +20.100000,86.900000,hi +20.100000,86.800000,hi +20.000000,86.800000,hi +20.000000,86.900000,hi +19.900000,86.900000,hi +19.800000,86.800000,hi +19.900000,86.800000,hi +19.900000,86.700000,hi +19.900000,86.600000,en +19.800000,86.600000,hi +19.800000,86.700000,hi +19.700000,86.700000,hi +19.700000,86.600000,hi +19.600000,86.600000,hi +20.300000,87.300000,hi +20.300000,87.200000,hi +20.300000,87.100000,hi +20.200000,87.100000,hi +20.200000,87.200000,hi +20.100000,87.100000,hi +20.100000,87.000000,hi +20.000000,87.000000,hi +20.200000,87.000000,hi +20.300000,87.000000,hi +20.400000,87.000000,en +20.600000,87.000000,hi +20.500000,87.000000,hi +20.500000,87.100000,en +20.600000,87.100000,hi +20.600000,87.200000,hi +20.500000,87.200000,hi +20.400000,87.100000,hi +20.400000,87.200000,hi +20.400000,87.300000,hi +20.500000,87.300000,hi +20.400000,87.400000,hi +20.500000,87.500000,hi +20.500000,87.400000,hi +20.600000,87.500000,hi +20.600000,87.400000,hi +20.600000,87.300000,hi +20.700000,87.300000,hi +20.800000,87.300000,hi +20.700000,87.400000,hi +20.700000,87.500000,hi +20.800000,87.500000,hi +20.800000,87.400000,hi +20.900000,87.400000,hi +20.900000,87.500000,hi +21.000000,87.500000,hi +21.000000,87.400000,hi +20.900000,87.300000,hi +21.000000,87.300000,hi +21.000000,87.200000,hi +21.000000,87.100000,hi +20.900000,87.100000,hi +20.900000,87.200000,hi +20.800000,87.200000,hi +20.700000,87.200000,hi +20.700000,87.100000,hi +20.800000,87.100000,hi +20.800000,87.000000,hi +20.700000,87.000000,hi +20.900000,87.000000,hi +21.000000,87.000000,hi +21.000000,86.900000,hi +20.900000,86.900000,hi +20.900000,86.800000,hi +21.000000,86.800000,hi +21.000000,86.700000,hi +21.000000,86.600000,hi +20.900000,86.600000,hi +20.900000,86.700000,hi +20.800000,86.700000,hi +20.800000,86.600000,hi +20.700000,86.600000,hi +20.700000,86.700000,hi +20.700000,86.800000,hi +20.800000,86.800000,hi +20.800000,86.900000,hi +20.700000,86.900000,hi +20.600000,86.900000,hi +20.600000,86.800000,hi +20.500000,86.800000,hi +20.500000,86.900000,hi +20.400000,86.900000,hi +20.400000,86.800000,hi +20.400000,86.700000,hi +20.300000,86.700000,hi +20.300000,86.600000,hi +20.400000,86.600000,hi +20.500000,86.600000,hi +20.500000,86.700000,hi +20.600000,86.700000,hi +20.600000,86.600000,hi +20.600000,86.500000,hi +20.500000,86.500000,hi +20.400000,86.500000,hi +20.300000,86.500000,hi +20.400000,86.400000,hi +20.300000,86.400000,hi +20.300000,86.300000,hi +20.400000,86.300000,hi +20.500000,86.300000,hi +20.500000,86.400000,hi +20.600000,86.400000,hi +20.600000,86.300000,hi +20.700000,86.300000,hi +20.800000,86.300000,hi +20.800000,86.400000,hi +20.700000,86.400000,hi +20.700000,86.500000,hi +20.800000,86.500000,hi +20.900000,86.500000,hi +21.000000,86.500000,hi +21.000000,86.400000,hi +20.900000,86.400000,hi +20.900000,86.300000,hi +21.000000,86.300000,hi +21.100000,86.300000,hi +21.200000,86.300000,hi +21.200000,86.400000,hi +21.100000,86.400000,hi +21.100000,86.500000,hi +21.200000,86.500000,hi +21.300000,86.500000,hi +21.400000,86.500000,hi +21.400000,86.400000,hi +21.300000,86.400000,hi +21.300000,86.300000,hi +21.400000,86.300000,hi +21.500000,86.300000,hi +21.500000,86.400000,hi +21.600000,86.400000,hi +21.600000,86.300000,hi +21.700000,86.300000,hi +21.800000,86.300000,hi +21.800000,86.400000,hi +21.700000,86.400000,hi +21.800000,86.500000,hi +21.700000,86.500000,hi +21.600000,86.500000,hi +21.500000,86.500000,hi +21.500000,86.600000,hi +21.500000,86.700000,hi +21.600000,86.700000,hi +21.600000,86.600000,hi +21.700000,86.600000,hi +21.800000,86.600000,hi +21.800000,86.700000,hi +21.700000,86.700000,hi +21.700000,86.800000,hi +21.800000,86.800000,hi +21.800000,86.900000,hi +21.700000,86.900000,hi +21.600000,86.900000,hi +21.600000,86.800000,hi +21.500000,86.800000,hi +21.500000,86.900000,hi +21.400000,86.900000,hi +21.300000,86.900000,hi +21.300000,86.800000,hi +21.400000,86.800000,hi +21.400000,86.700000,hi +21.400000,86.600000,hi +21.300000,86.600000,hi +21.300000,86.700000,hi +21.200000,86.700000,hi +21.200000,86.600000,hi +21.100000,86.600000,hi +21.100000,86.700000,hi +21.100000,86.800000,hi +21.200000,86.800000,hi +21.200000,86.900000,hi +21.100000,86.900000,hi +21.100000,87.000000,hi +21.200000,87.000000,hi +21.400000,87.000000,hi +21.300000,87.000000,hi +21.300000,87.100000,hi +21.400000,87.100000,hi +21.400000,87.200000,hi +21.300000,87.200000,hi +21.200000,87.200000,hi +21.200000,87.100000,hi +21.100000,87.100000,hi +21.100000,87.200000,hi +21.100000,87.300000,hi +21.200000,87.300000,hi +21.100000,87.400000,hi +21.100000,87.500000,hi +21.200000,87.500000,hi +21.200000,87.400000,hi +21.300000,87.400000,bn +21.300000,87.500000,bn +21.400000,87.500000,bn +21.400000,87.400000,bn +21.300000,87.300000,hi +21.400000,87.300000,hi +21.500000,87.300000,hi +21.600000,87.300000,hi +21.500000,87.400000,hi +21.500000,87.500000,bn +21.600000,87.500000,bn +21.600000,87.400000,hi +21.700000,87.400000,hi +21.700000,87.500000,bn +21.800000,87.500000,bn +21.800000,87.400000,bn +21.700000,87.300000,hi +21.800000,87.300000,bn +21.800000,87.200000,hi +21.800000,87.100000,hi +21.700000,87.100000,hi +21.700000,87.200000,hi +21.600000,87.200000,hi +21.500000,87.200000,hi +21.500000,87.100000,hi +21.600000,87.100000,hi +21.600000,87.000000,hi +21.500000,87.000000,hi +21.700000,87.000000,hi +21.800000,87.000000,hi +21.900000,87.000000,hi +22.000000,87.000000,hi +22.200000,87.000000,bn +22.100000,87.000000,bn +22.100000,87.100000,hi +22.200000,87.100000,bn +22.200000,87.200000,bn +22.100000,87.200000,bn +22.000000,87.200000,bn +22.000000,87.100000,bn +21.900000,87.100000,bn +21.900000,87.200000,hi +21.900000,87.300000,bn +22.000000,87.300000,bn +21.900000,87.400000,bn +21.900000,87.500000,bn +22.000000,87.500000,bn +22.000000,87.400000,bn +22.100000,87.400000,bn +22.100000,87.500000,bn +22.200000,87.500000,bn +22.200000,87.400000,bn +22.100000,87.300000,bn +22.200000,87.300000,hi +22.300000,87.300000,hi +22.400000,87.300000,bn +22.300000,87.400000,bn +22.300000,87.500000,bn +22.400000,87.500000,bn +22.400000,87.400000,bn +22.500000,87.400000,bn +22.500000,87.500000,bn +22.600000,87.500000,bn +22.500000,87.300000,bn +22.500000,87.100000,bn +22.500000,87.200000,bn +22.400000,87.200000,bn +22.300000,87.200000,hi +22.300000,87.100000,hi +22.400000,87.100000,bn +22.400000,87.000000,bn +22.300000,87.000000,bn +22.500000,87.000000,bn +22.500000,86.900000,bn +22.400000,86.900000,bn +22.400000,86.800000,hi +22.500000,86.800000,hi +22.500000,86.700000,hi +22.500000,86.600000,hi +22.400000,86.600000,hi +22.400000,86.700000,hi +22.300000,86.600000,hi +22.300000,86.700000,hi +22.300000,86.800000,hi +22.300000,86.900000,bn +22.200000,86.900000,bn +22.200000,86.800000,hi +22.100000,86.800000,hi +22.100000,86.900000,hi +22.000000,86.900000,hi +21.900000,86.900000,hi +21.900000,86.800000,hi +22.000000,86.800000,hi +22.000000,86.700000,hi +21.900000,86.700000,hi +21.900000,86.600000,hi +22.000000,86.600000,hi +22.100000,86.600000,hi +22.100000,86.700000,hi +22.200000,86.700000,hi +22.200000,86.600000,hi +22.200000,86.500000,hi +22.100000,86.500000,hi +22.000000,86.500000,hi +21.900000,86.500000,hi +22.000000,86.400000,hi +21.900000,86.400000,hi +21.900000,86.300000,hi +22.000000,86.300000,hi +22.100000,86.300000,hi +22.100000,86.400000,hi +22.200000,86.300000,hi +22.300000,86.300000,hi +22.300000,86.400000,hi +22.200000,86.400000,hi +22.300000,86.500000,hi +22.400000,86.500000,hi +22.500000,86.500000,hi +22.500000,86.400000,hi +22.400000,86.400000,hi +22.400000,86.300000,hi +22.500000,86.300000,hi +22.500000,86.200000,hi +22.500000,86.100000,hi +22.400000,86.100000,hi +22.400000,86.200000,hi +22.300000,86.200000,hi +22.200000,86.200000,hi +22.200000,86.100000,hi +22.300000,86.100000,hi +22.200000,86.000000,hi +22.300000,86.000000,hi +22.400000,86.000000,hi +22.500000,86.000000,hi +22.500000,85.900000,hi +22.400000,85.900000,hi +22.400000,85.800000,hi +22.500000,85.800000,hi +22.500000,85.700000,hi +22.400000,85.700000,hi +22.300000,85.700000,hi +22.200000,85.700000,hi +22.200000,85.800000,hi +22.300000,85.800000,hi +22.300000,85.900000,hi +22.200000,85.900000,hi +22.100000,85.900000,hi +22.000000,85.900000,hi +22.000000,85.800000,hi +22.100000,85.800000,hi +22.100000,85.700000,hi +22.000000,85.700000,hi +21.900000,85.700000,hi +21.900000,85.800000,hi +21.900000,85.900000,hi +21.900000,86.000000,hi +22.000000,86.000000,hi +22.100000,86.000000,hi +22.100000,86.100000,hi +22.100000,86.200000,hi +22.000000,86.200000,hi +22.000000,86.100000,hi +21.900000,86.100000,hi +21.900000,86.200000,hi +21.800000,86.200000,hi +21.700000,86.200000,hi +21.700000,86.100000,hi +21.800000,86.100000,hi +21.800000,86.000000,hi +21.700000,86.000000,hi +21.600000,86.000000,hi +21.500000,86.000000,hi +21.500000,86.100000,hi +21.600000,86.100000,hi +21.600000,86.200000,hi +21.500000,86.200000,hi +21.400000,86.200000,hi +21.400000,86.100000,hi +21.300000,86.100000,hi +21.300000,86.200000,hi +21.200000,86.200000,hi +21.100000,86.200000,hi +21.100000,86.100000,hi +21.200000,86.100000,hi +21.100000,86.000000,hi +21.200000,86.000000,hi +21.300000,86.000000,hi +21.400000,86.000000,hi +21.400000,85.900000,hi +21.400000,85.800000,hi +21.300000,85.800000,hi +21.300000,85.900000,hi +21.200000,85.900000,hi +21.100000,85.900000,hi +21.100000,85.800000,hi +21.200000,85.800000,hi +21.200000,85.700000,hi +21.100000,85.700000,hi +21.300000,85.700000,hi +21.400000,85.700000,hi +21.600000,85.700000,hi +21.500000,85.700000,hi +21.500000,85.800000,hi +21.500000,85.900000,hi +21.600000,85.900000,hi +21.600000,85.800000,hi +21.700000,85.800000,hi +21.700000,85.900000,hi +21.800000,85.900000,hi +21.800000,85.800000,hi +21.800000,85.700000,hi +21.700000,85.700000,hi +21.700000,85.600000,hi +21.700000,85.500000,hi +21.700000,85.400000,hi +21.700000,85.300000,hi +21.600000,85.300000,hi +21.600000,85.400000,hi +21.500000,85.300000,hi +21.500000,85.400000,hi +21.500000,85.500000,hi +21.600000,85.500000,hi +21.600000,85.600000,hi +21.500000,85.600000,hi +21.400000,85.600000,hi +21.400000,85.500000,hi +21.300000,85.500000,hi +21.300000,85.600000,hi +21.200000,85.600000,hi +21.100000,85.600000,hi +21.100000,85.500000,hi +21.200000,85.500000,hi +21.200000,85.400000,hi +21.100000,85.400000,hi +21.100000,85.300000,hi +21.200000,85.300000,hi +21.300000,85.300000,hi +21.300000,85.400000,hi +21.400000,85.400000,hi +21.400000,85.300000,hi +21.400000,85.200000,hi +21.300000,85.200000,hi +21.200000,85.200000,hi +21.100000,85.200000,hi +21.200000,85.100000,hi +21.100000,85.100000,hi +21.100000,85.000000,hi +21.200000,85.000000,hi +21.300000,85.000000,hi +21.300000,85.100000,hi +21.400000,85.100000,hi +21.400000,85.000000,hi +21.500000,85.000000,hi +21.500000,85.100000,hi +21.500000,85.200000,hi +21.600000,85.200000,hi +21.700000,85.200000,hi +21.700000,85.100000,hi +21.600000,85.100000,hi +21.600000,85.000000,hi +21.700000,85.000000,hi +21.800000,85.000000,hi +21.800000,85.100000,hi +21.900000,85.100000,hi +21.900000,85.000000,hi +22.000000,85.000000,hi +22.100000,85.000000,hi +22.100000,85.100000,hi +22.000000,85.100000,hi +22.100000,85.200000,hi +22.000000,85.200000,hi +21.900000,85.200000,hi +21.800000,85.200000,hi +21.800000,85.300000,hi +21.900000,85.300000,hi +21.900000,85.400000,hi +21.800000,85.400000,hi +21.800000,85.500000,hi +21.800000,85.600000,hi +21.900000,85.600000,hi +21.900000,85.500000,hi +22.000000,85.500000,hi +22.000000,85.600000,hi +22.100000,85.600000,hi +22.100000,85.500000,hi +22.100000,85.400000,hi +22.000000,85.400000,hi +22.000000,85.300000,hi +22.100000,85.300000,hi +22.200000,85.300000,hi +22.300000,85.300000,hi +22.300000,85.400000,hi +22.200000,85.400000,hi +22.200000,85.500000,hi +22.200000,85.600000,hi +22.300000,85.600000,hi +22.300000,85.500000,hi +22.400000,85.500000,hi +22.400000,85.600000,hi +22.500000,85.600000,hi +22.500000,85.500000,hi +22.500000,85.400000,hi +22.400000,85.400000,hi +22.400000,85.300000,hi +22.500000,85.300000,hi +22.500000,85.200000,hi +22.400000,85.200000,hi +22.300000,85.200000,hi +22.200000,85.200000,hi +22.300000,85.100000,hi +22.200000,85.100000,hi +22.200000,85.000000,hi +22.300000,85.000000,hi +22.400000,85.000000,hi +22.400000,85.100000,hi +22.500000,85.100000,hi +22.500000,85.000000,hi +22.500000,84.900000,hi +22.400000,84.900000,hi +22.400000,84.800000,hi +22.500000,84.800000,hi +22.500000,84.700000,hi +22.400000,84.700000,hi +22.300000,84.700000,hi +22.200000,84.700000,hi +22.200000,84.800000,hi +22.300000,84.800000,hi +22.300000,84.900000,hi +22.200000,84.900000,hi +22.100000,84.900000,hi +22.100000,84.800000,hi +22.000000,84.800000,hi +22.000000,84.900000,hi +21.900000,84.900000,hi +21.800000,84.900000,hi +21.800000,84.800000,hi +21.900000,84.800000,hi +21.900000,84.700000,hi +21.800000,84.700000,hi +22.000000,84.700000,hi +22.100000,84.700000,hi +22.100000,84.600000,hi +22.100000,84.500000,hi +22.000000,84.500000,hi +22.000000,84.600000,hi +21.900000,84.600000,hi +21.800000,84.600000,hi +21.800000,84.500000,hi +21.900000,84.500000,hi +21.900000,84.400000,hi +21.800000,84.400000,hi +21.800000,84.300000,hi +21.900000,84.300000,hi +22.000000,84.300000,hi +22.000000,84.400000,hi +22.100000,84.400000,hi +22.100000,84.300000,hi +22.200000,84.300000,hi +22.300000,84.300000,hi +22.300000,84.400000,hi +22.200000,84.400000,hi +22.200000,84.500000,hi +22.200000,84.600000,hi +22.300000,84.600000,hi +22.300000,84.500000,hi +22.400000,84.500000,hi +22.400000,84.600000,hi +22.500000,84.600000,hi +22.500000,84.500000,hi +22.500000,84.400000,hi +22.400000,84.400000,hi +22.400000,84.300000,hi +22.500000,84.300000,hi +22.500000,84.200000,hi +22.400000,84.200000,hi +22.300000,84.200000,hi +22.200000,84.200000,hi +22.300000,84.100000,hi +22.200000,84.100000,hi +22.200000,84.000000,hi +22.300000,84.000000,hi +22.400000,84.000000,hi +22.400000,84.100000,hi +22.500000,84.100000,hi +22.500000,84.000000,hi +22.500000,83.900000,hi +22.400000,83.900000,hi +22.400000,83.800000,hi +22.500000,83.800000,hi +22.400000,83.600000,hi +22.400000,83.700000,hi +22.300000,83.700000,hi +22.300000,83.600000,hi +22.200000,83.600000,hi +22.200000,83.700000,hi +22.200000,83.800000,hi +22.300000,83.800000,hi +22.300000,83.900000,hi +22.200000,83.900000,hi +22.100000,83.900000,hi +22.000000,83.900000,hi +22.000000,83.800000,hi +22.100000,83.800000,hi +22.100000,83.700000,hi +22.100000,83.600000,hi +22.000000,83.600000,hi +22.000000,83.700000,hi +21.900000,83.700000,hi +21.900000,83.600000,hi +21.800000,83.600000,hi +21.800000,83.700000,hi +21.800000,83.800000,hi +21.900000,83.800000,hi +21.900000,83.900000,hi +21.800000,83.900000,hi +21.800000,84.000000,hi +21.800000,84.100000,hi +21.900000,84.100000,hi +21.900000,84.000000,hi +22.000000,84.000000,hi +22.100000,84.000000,hi +22.100000,84.100000,hi +22.000000,84.100000,hi +22.100000,84.200000,hi +22.000000,84.200000,hi +21.900000,84.200000,hi +21.800000,84.200000,hi +21.700000,84.200000,hi +21.600000,84.200000,hi +21.500000,84.200000,hi +21.400000,84.200000,hi +21.500000,84.100000,hi +21.400000,84.100000,hi +21.400000,84.000000,hi +21.500000,84.000000,hi +21.600000,84.000000,hi +21.600000,84.100000,hi +21.700000,84.100000,hi +21.700000,84.000000,hi +21.700000,83.900000,hi +21.600000,83.900000,hi +21.600000,83.800000,hi +21.700000,83.800000,hi +21.700000,83.700000,hi +21.700000,83.600000,hi +21.600000,83.600000,hi +21.600000,83.700000,hi +21.500000,83.700000,hi +21.500000,83.600000,hi +21.400000,83.600000,hi +21.400000,83.700000,hi +21.400000,83.800000,hi +21.500000,83.800000,hi +21.500000,83.900000,hi +21.400000,83.900000,hi +21.300000,83.900000,hi +21.200000,83.900000,hi +21.200000,83.800000,hi +21.300000,83.800000,hi +21.300000,83.700000,hi +21.300000,83.600000,hi +21.200000,83.600000,hi +21.200000,83.700000,hi +21.100000,83.700000,hi +21.100000,83.600000,hi +21.000000,83.600000,hi +21.000000,83.700000,hi +21.000000,83.800000,hi +21.100000,83.800000,hi +21.100000,83.900000,hi +21.000000,83.900000,hi +21.000000,84.000000,hi +21.000000,84.100000,hi +21.100000,84.100000,hi +21.100000,84.000000,hi +21.200000,84.000000,hi +21.300000,84.000000,hi +21.300000,84.100000,hi +21.200000,84.100000,hi +21.300000,84.200000,hi +21.200000,84.200000,hi +21.100000,84.200000,hi +21.000000,84.200000,hi +21.000000,84.300000,hi +21.100000,84.300000,hi +21.100000,84.400000,hi +21.100000,84.500000,hi +21.100000,84.600000,hi +21.200000,84.500000,hi +21.200000,84.600000,hi +21.300000,84.600000,hi +21.300000,84.500000,hi +21.300000,84.400000,hi +21.200000,84.400000,hi +21.200000,84.300000,hi +21.300000,84.300000,hi +21.400000,84.300000,hi +21.400000,84.400000,hi +21.500000,84.400000,hi +21.500000,84.300000,hi +21.600000,84.300000,hi +21.700000,84.300000,hi +21.700000,84.400000,hi +21.600000,84.400000,hi +21.600000,84.500000,hi +21.700000,84.500000,hi +21.700000,84.600000,hi +21.600000,84.600000,hi +21.500000,84.600000,hi +21.500000,84.500000,hi +21.400000,84.500000,hi +21.400000,84.600000,hi +21.400000,84.700000,hi +21.500000,84.700000,hi +21.700000,84.700000,hi +21.600000,84.700000,hi +21.600000,84.800000,hi +21.700000,84.800000,hi +21.700000,84.900000,hi +21.600000,84.900000,hi +21.500000,84.900000,hi +21.500000,84.800000,hi +21.400000,84.800000,hi +21.400000,84.900000,hi +21.300000,84.900000,hi +21.300000,84.800000,hi +21.300000,84.700000,hi +21.200000,84.700000,hi +21.100000,84.700000,hi +21.100000,84.800000,hi +21.200000,84.800000,hi +21.200000,84.900000,hi +21.100000,84.900000,hi +21.000000,84.900000,hi +21.000000,84.800000,hi +20.900000,84.800000,hi +20.900000,84.900000,hi +20.800000,84.900000,hi +20.700000,84.900000,hi +20.700000,84.800000,hi +20.800000,84.800000,hi +20.800000,84.700000,hi +20.700000,84.700000,hi +20.900000,84.700000,hi +21.000000,84.700000,hi +21.000000,84.600000,hi +20.900000,84.600000,hi +20.900000,84.500000,hi +21.000000,84.500000,hi +21.000000,84.400000,hi +20.900000,84.300000,hi +20.900000,84.400000,hi +20.800000,84.400000,hi +20.800000,84.300000,hi +20.700000,84.300000,hi +20.700000,84.400000,hi +20.700000,84.500000,hi +20.800000,84.500000,hi +20.800000,84.600000,hi +20.700000,84.600000,hi +20.600000,84.600000,hi +20.500000,84.600000,hi +20.500000,84.500000,hi +20.600000,84.500000,hi +20.600000,84.400000,hi +20.600000,84.300000,hi +20.500000,84.300000,hi +20.500000,84.400000,hi +20.400000,84.400000,hi +20.400000,84.300000,hi +20.300000,84.300000,hi +20.300000,84.400000,hi +20.300000,84.500000,hi +20.400000,84.500000,hi +20.400000,84.600000,hi +20.300000,84.600000,hi +20.300000,84.700000,hi +20.400000,84.700000,hi +20.600000,84.700000,hi +20.500000,84.700000,hi +20.500000,84.800000,hi +20.600000,84.800000,hi +20.600000,84.900000,hi +20.500000,84.900000,hi +20.400000,84.900000,hi +20.400000,84.800000,hi +20.300000,84.800000,hi +20.300000,84.900000,hi +20.200000,84.900000,hi +20.100000,84.900000,hi +20.100000,84.800000,hi +20.200000,84.800000,hi +20.200000,84.700000,hi +20.100000,84.700000,hi +20.000000,84.700000,hi +19.900000,84.700000,hi +19.900000,84.800000,hi +20.000000,84.800000,hi +20.000000,84.900000,hi +19.900000,84.900000,hi +19.800000,84.900000,hi +19.800000,84.800000,hi +19.700000,84.800000,hi +19.700000,84.900000,hi +19.600000,84.900000,hi +19.500000,84.900000,hi +19.500000,84.800000,hi +19.600000,84.800000,hi +19.600000,84.700000,hi +19.500000,84.700000,hi +19.700000,84.700000,hi +19.800000,84.700000,hi +19.800000,84.600000,hi +19.800000,84.500000,hi +19.700000,84.500000,hi +19.700000,84.600000,hi +19.600000,84.600000,hi +19.500000,84.600000,hi +19.500000,84.500000,hi +19.600000,84.500000,hi +19.600000,84.400000,hi +19.500000,84.400000,hi +19.500000,84.300000,hi +19.600000,84.300000,hi +19.700000,84.300000,hi +19.700000,84.400000,hi +19.800000,84.400000,hi +19.800000,84.300000,hi +19.900000,84.300000,hi +20.000000,84.300000,hi +20.000000,84.400000,hi +19.900000,84.400000,hi +19.900000,84.500000,hi +19.900000,84.600000,hi +20.000000,84.600000,hi +20.000000,84.500000,hi +20.100000,84.500000,hi +20.100000,84.600000,hi +20.200000,84.600000,hi +20.200000,84.500000,hi +20.200000,84.400000,hi +20.100000,84.400000,hi +20.100000,84.300000,hi +20.200000,84.300000,hi +20.200000,84.200000,hi +20.100000,84.200000,hi +20.200000,84.100000,hi +20.200000,84.000000,hi +20.100000,84.000000,hi +20.100000,84.100000,hi +20.000000,84.100000,hi +20.000000,84.000000,hi +19.900000,84.000000,hi +19.900000,84.100000,hi +20.000000,84.200000,hi +19.900000,84.200000,hi +19.800000,84.200000,hi +19.700000,84.200000,hi +19.600000,84.200000,hi +19.500000,84.200000,hi +19.600000,84.100000,hi +19.500000,84.100000,hi +19.500000,84.000000,hi +19.600000,84.000000,en +19.700000,84.000000,hi +19.700000,84.100000,hi +19.800000,84.100000,hi +19.800000,84.000000,hi +19.800000,83.900000,hi +19.800000,83.800000,hi +19.700000,83.800000,hi +19.700000,83.900000,hi +19.600000,83.900000,hi +19.500000,83.900000,hi +19.500000,83.800000,hi +19.600000,83.800000,hi +19.600000,83.700000,hi +19.500000,83.700000,hi +19.500000,83.600000,hi +19.600000,83.600000,hi +19.700000,83.600000,hi +19.700000,83.700000,hi +19.800000,83.700000,hi +19.800000,83.600000,hi +19.900000,83.600000,hi +20.000000,83.600000,hi +20.000000,83.700000,hi +19.900000,83.700000,hi +19.900000,83.800000,hi +19.900000,83.900000,hi +20.000000,83.900000,hi +20.000000,83.800000,hi +20.100000,83.800000,hi +20.100000,83.900000,hi +20.200000,83.900000,hi +20.200000,83.800000,hi +20.200000,83.700000,hi +20.100000,83.700000,hi +20.100000,83.600000,hi +20.200000,83.600000,hi +20.300000,83.600000,hi +20.300000,83.700000,hi +20.400000,83.700000,hi +20.400000,83.600000,hi +20.500000,83.600000,hi +20.500000,83.700000,hi +20.500000,83.800000,hi +20.600000,83.800000,hi +20.600000,83.900000,hi +20.500000,83.900000,hi +20.400000,83.900000,hi +20.400000,83.800000,hi +20.300000,83.800000,hi +20.300000,83.900000,hi +20.300000,84.000000,hi +20.400000,84.000000,hi +20.400000,84.100000,hi +20.300000,84.100000,hi +20.300000,84.200000,hi +20.400000,84.200000,hi +20.500000,84.200000,hi +20.600000,84.200000,hi +20.600000,84.100000,hi +20.500000,84.100000,hi +20.500000,84.000000,hi +20.600000,84.000000,hi +20.700000,84.000000,hi +20.800000,84.100000,hi +20.700000,84.100000,hi +20.700000,84.200000,hi +20.800000,84.200000,hi +20.900000,84.200000,hi +20.900000,84.100000,hi +20.800000,84.000000,hi +20.900000,84.000000,hi +20.900000,83.900000,hi +20.900000,83.800000,hi +20.800000,83.800000,hi +20.800000,83.900000,hi +20.700000,83.900000,hi +20.700000,83.800000,hi +20.700000,83.700000,hi +20.600000,83.700000,hi +20.600000,83.600000,hi +20.700000,83.600000,hi +20.800000,83.600000,hi +20.800000,83.700000,hi +20.900000,83.700000,hi +20.900000,83.600000,hi +20.900000,83.500000,hi +20.800000,83.500000,hi +20.600000,83.500000,hi +20.700000,83.500000,hi +20.700000,83.400000,hi +20.600000,83.400000,hi +20.600000,83.300000,hi +20.700000,83.300000,hi +20.800000,83.300000,hi +20.800000,83.400000,hi +20.900000,83.400000,hi +20.900000,83.300000,hi +20.900000,83.200000,hi +20.800000,83.200000,hi +20.800000,83.100000,hi +20.900000,83.100000,hi +20.900000,83.000000,hi +20.800000,83.000000,hi +20.700000,83.000000,hi +20.600000,83.000000,hi +20.600000,83.100000,hi +20.700000,83.100000,hi +20.700000,83.200000,hi +20.600000,83.200000,hi +20.500000,83.200000,hi +20.400000,83.200000,hi +20.400000,83.100000,hi +20.500000,83.100000,hi +20.500000,83.000000,hi +20.400000,83.000000,hi +20.300000,83.000000,hi +20.200000,83.000000,hi +20.200000,83.100000,hi +20.300000,83.100000,hi +20.300000,83.200000,hi +20.200000,83.200000,hi +20.300000,83.400000,hi +20.300000,83.300000,hi +20.400000,83.300000,hi +20.500000,83.300000,hi +20.500000,83.400000,hi +20.400000,83.400000,hi +20.500000,83.500000,hi +20.400000,83.500000,hi +20.300000,83.500000,hi +20.100000,83.500000,hi +20.200000,83.500000,hi +20.200000,83.400000,hi +20.200000,83.300000,hi +20.100000,83.300000,hi +20.100000,83.400000,hi +20.000000,83.400000,hi +20.000000,83.300000,hi +19.900000,83.300000,hi +19.900000,83.400000,hi +19.900000,83.500000,hi +20.000000,83.500000,hi +19.800000,83.500000,hi +19.700000,83.500000,hi +19.500000,83.500000,hi +19.600000,83.500000,hi +19.600000,83.400000,hi +19.500000,83.400000,hi +19.500000,83.300000,hi +19.600000,83.300000,hi +19.700000,83.300000,hi +19.700000,83.400000,hi +19.800000,83.400000,hi +19.800000,83.300000,hi +19.800000,83.200000,hi +19.800000,83.100000,hi +19.700000,83.100000,hi +19.700000,83.200000,hi +19.600000,83.200000,hi +19.500000,83.200000,hi +19.500000,83.100000,hi +19.600000,83.100000,hi +19.600000,83.000000,hi +19.500000,83.000000,hi +19.700000,83.000000,hi +19.800000,83.000000,hi +20.000000,83.000000,hi +19.900000,83.000000,hi +19.900000,83.100000,hi +19.900000,83.200000,hi +20.000000,83.200000,hi +20.000000,83.100000,hi +20.100000,83.100000,hi +20.100000,83.200000,hi +20.100000,83.000000,hi +20.100000,82.900000,hi +20.000000,82.900000,hi +20.000000,82.800000,hi +20.100000,82.800000,hi +20.100000,82.700000,hi +20.100000,82.600000,hi +20.000000,82.600000,hi +20.000000,82.700000,hi +19.900000,82.700000,hi +19.900000,82.600000,hi +19.800000,82.600000,hi +19.900000,82.800000,hi +19.900000,82.900000,hi +19.800000,82.900000,hi +19.800000,82.800000,hi +19.700000,82.800000,hi +19.700000,82.900000,hi +19.600000,82.900000,hi +19.500000,82.900000,hi +19.500000,82.800000,hi +19.600000,82.800000,hi +19.600000,82.700000,hi +19.500000,82.700000,hi +19.500000,82.600000,hi +19.600000,82.600000,hi +19.700000,82.600000,hi +19.700000,82.700000,hi +19.800000,82.700000,hi +19.700000,82.500000,hi +19.700000,82.400000,hi +19.600000,82.400000,hi +19.600000,82.500000,hi +19.500000,82.500000,hi +19.500000,82.400000,hi +19.500000,82.300000,hi +19.600000,82.300000,hi +19.700000,82.300000,hi +19.800000,82.300000,hi +19.900000,82.300000,hi +19.800000,82.400000,hi +19.800000,82.500000,hi +19.900000,82.500000,hi +19.900000,82.400000,hi +20.000000,82.400000,hi +20.000000,82.500000,hi +20.100000,82.500000,hi +20.100000,82.400000,hi +20.000000,82.300000,hi +20.100000,82.300000,hi +20.200000,82.300000,hi +20.300000,82.300000,hi +20.400000,82.300000,hi +20.500000,82.300000,hi +20.400000,82.400000,hi +20.500000,82.400000,hi +20.500000,82.500000,hi +20.400000,82.500000,hi +20.300000,82.500000,hi +20.300000,82.400000,hi +20.200000,82.400000,hi +20.200000,82.500000,hi +20.200000,82.600000,hi +20.300000,82.600000,hi +20.300000,82.700000,hi +20.200000,82.700000,hi +20.200000,82.800000,hi +20.200000,82.900000,hi +20.300000,82.900000,hi +20.300000,82.800000,hi +20.400000,82.800000,hi +20.400000,82.900000,hi +20.500000,82.900000,hi +20.500000,82.800000,hi +20.500000,82.700000,hi +20.400000,82.700000,hi +20.400000,82.600000,hi +20.500000,82.600000,hi +20.600000,82.600000,hi +20.700000,82.600000,hi +20.700000,82.700000,hi +20.600000,82.700000,hi +20.600000,82.800000,hi +20.600000,82.900000,hi +20.700000,82.900000,hi +20.700000,82.800000,hi +20.800000,82.800000,hi +20.800000,82.900000,hi +20.900000,82.900000,hi +20.900000,82.800000,hi +20.900000,82.700000,hi +20.800000,82.700000,hi +20.800000,82.600000,hi +20.900000,82.600000,hi +20.900000,82.500000,hi +20.900000,82.400000,hi +20.800000,82.400000,hi +20.800000,82.500000,hi +20.700000,82.500000,hi +20.600000,82.500000,hi +20.600000,82.400000,hi +20.700000,82.400000,hi +20.600000,82.300000,hi +20.700000,82.300000,hi +20.800000,82.300000,hi +20.900000,82.300000,hi +21.000000,82.300000,hi +21.100000,82.300000,hi +21.000000,82.400000,hi +21.000000,82.500000,hi +21.100000,82.500000,hi +21.100000,82.400000,hi +21.200000,82.400000,hi +21.200000,82.500000,hi +21.300000,82.500000,hi +21.300000,82.400000,hi +21.200000,82.300000,hi +21.300000,82.300000,hi +21.400000,82.300000,hi +21.500000,82.300000,hi +21.600000,82.300000,hi +21.500000,82.400000,hi +21.600000,82.400000,hi +21.600000,82.500000,hi +21.500000,82.500000,hi +21.400000,82.400000,hi +21.400000,82.500000,hi +21.400000,82.600000,hi +21.400000,82.700000,hi +21.500000,82.700000,hi +21.500000,82.600000,hi +21.600000,82.600000,hi +21.600000,82.700000,hi +21.600000,82.800000,hi +21.700000,82.800000,hi +21.700000,82.900000,hi +21.600000,82.900000,hi +21.500000,82.900000,hi +21.500000,82.800000,hi +21.400000,82.800000,hi +21.400000,82.900000,hi +21.300000,82.900000,hi +21.200000,82.900000,hi +21.200000,82.800000,hi +21.300000,82.800000,hi +21.300000,82.700000,hi +21.300000,82.600000,hi +21.200000,82.600000,hi +21.200000,82.700000,hi +21.100000,82.700000,hi +21.100000,82.600000,hi +21.000000,82.600000,hi +21.000000,82.700000,hi +21.000000,82.800000,hi +21.100000,82.800000,hi +21.100000,82.900000,hi +21.000000,82.900000,hi +21.000000,83.000000,hi +21.100000,83.000000,hi +21.300000,83.000000,hi +21.200000,83.000000,hi +21.200000,83.100000,hi +21.300000,83.100000,hi +21.300000,83.200000,hi +21.200000,83.200000,hi +21.100000,83.200000,hi +21.100000,83.100000,hi +21.000000,83.100000,hi +21.000000,83.200000,hi +21.000000,83.300000,hi +21.100000,83.300000,hi +21.100000,83.400000,hi +21.000000,83.400000,hi +21.000000,83.500000,hi +21.100000,83.500000,hi +21.200000,83.500000,hi +21.300000,83.500000,hi +21.300000,83.400000,hi +21.200000,83.400000,hi +21.200000,83.300000,hi +21.300000,83.300000,hi +21.400000,83.300000,hi +21.500000,83.300000,hi +21.500000,83.400000,hi +21.400000,83.400000,hi +21.400000,83.500000,hi +21.500000,83.500000,hi +21.600000,83.500000,hi +21.700000,83.500000,hi +21.700000,83.400000,hi +21.600000,83.400000,hi +21.600000,83.300000,hi +21.700000,83.300000,hi +21.700000,83.200000,hi +21.700000,83.100000,hi +21.600000,83.100000,hi +21.600000,83.200000,hi +21.500000,83.200000,hi +21.400000,83.200000,hi +21.400000,83.100000,hi +21.500000,83.100000,hi +21.500000,83.000000,hi +21.400000,83.000000,hi +21.600000,83.000000,hi +21.700000,83.000000,hi +21.800000,83.000000,hi +22.000000,83.000000,hi +21.900000,83.000000,hi +22.000000,83.100000,hi +22.000000,83.200000,hi +21.900000,83.200000,hi +21.900000,83.100000,hi +21.800000,83.100000,hi +21.800000,83.200000,hi +21.800000,83.300000,hi +21.900000,83.300000,hi +21.900000,83.400000,hi +21.800000,83.400000,hi +21.800000,83.500000,hi +21.900000,83.500000,hi +22.000000,83.500000,hi +22.100000,83.500000,hi +22.100000,83.400000,hi +22.000000,83.400000,hi +22.000000,83.300000,hi +22.100000,83.300000,hi +22.200000,83.300000,hi +22.200000,83.400000,hi +22.200000,83.500000,hi +22.300000,83.500000,hi +22.400000,83.500000,hi +22.400000,83.400000,hi +22.300000,83.400000,hi +22.300000,83.300000,hi +22.400000,83.300000,hi +22.400000,83.200000,hi +22.400000,83.100000,hi +22.300000,83.100000,hi +22.300000,83.200000,hi +22.200000,83.200000,hi +22.100000,83.200000,hi +22.100000,83.100000,hi +22.200000,83.100000,hi +22.200000,83.000000,hi +22.100000,83.000000,hi +22.300000,83.000000,hi +22.400000,83.000000,hi +22.400000,82.900000,hi +22.300000,82.900000,hi +22.300000,82.800000,hi +22.400000,82.800000,hi +22.400000,82.700000,hi +22.400000,82.600000,hi +22.300000,82.600000,hi +22.300000,82.700000,hi +22.200000,82.700000,hi +22.200000,82.600000,hi +22.100000,82.600000,hi +22.100000,82.700000,hi +22.100000,82.800000,hi +22.200000,82.800000,hi +22.200000,82.900000,hi +22.100000,82.900000,hi +22.000000,82.900000,hi +22.000000,82.800000,hi +21.900000,82.800000,hi +21.900000,82.900000,hi +21.800000,82.900000,hi +21.800000,82.800000,hi +21.800000,82.700000,hi +21.700000,82.700000,hi +21.700000,82.600000,hi +21.800000,82.600000,hi +21.900000,82.600000,hi +21.900000,82.700000,hi +22.000000,82.700000,hi +22.000000,82.600000,hi +22.000000,82.500000,hi +22.000000,82.400000,hi +21.900000,82.400000,hi +21.900000,82.500000,hi +21.800000,82.500000,hi +21.700000,82.500000,hi +21.700000,82.400000,hi +21.800000,82.400000,hi +21.700000,82.300000,hi +21.800000,82.300000,hi +21.900000,82.300000,hi +22.000000,82.300000,hi +22.100000,82.300000,hi +22.200000,82.300000,hi +22.100000,82.400000,hi +22.100000,82.500000,hi +22.200000,82.500000,hi +22.200000,82.400000,hi +22.300000,82.400000,hi +22.300000,82.500000,hi +22.400000,82.500000,hi +22.400000,82.400000,hi +22.300000,82.300000,hi +22.400000,82.300000,hi +22.400000,82.200000,hi +22.400000,82.100000,hi +22.300000,82.100000,hi +22.300000,82.200000,hi +22.200000,82.200000,hi +22.100000,82.200000,hi +22.100000,82.100000,hi +22.200000,82.100000,hi +22.200000,82.000000,hi +22.100000,82.000000,hi +22.100000,81.900000,hi +22.200000,81.900000,hi +22.300000,81.900000,hi +22.300000,82.000000,hi +22.400000,82.000000,hi +22.400000,81.900000,hi +22.400000,81.800000,hi +22.300000,81.800000,hi +22.300000,81.700000,hi +22.400000,81.700000,hi +22.400000,81.600000,hi +22.300000,81.600000,hi +22.200000,81.600000,hi +22.100000,81.600000,hi +22.100000,81.700000,hi +22.200000,81.700000,hi +22.200000,81.800000,hi +22.100000,81.800000,hi +22.000000,81.800000,hi +21.900000,81.800000,hi +21.900000,81.700000,hi +22.000000,81.700000,hi +22.000000,81.600000,hi +21.900000,81.600000,hi +21.800000,81.600000,hi +21.700000,81.600000,hi +21.700000,81.700000,hi +21.800000,81.700000,hi +21.800000,81.800000,hi +21.700000,81.800000,hi +21.700000,81.900000,hi +21.700000,82.000000,hi +21.800000,82.000000,hi +21.800000,81.900000,hi +21.900000,81.900000,hi +22.000000,81.900000,hi +22.000000,82.000000,hi +21.900000,82.000000,hi +21.900000,82.100000,hi +22.000000,82.100000,hi +22.000000,82.200000,hi +21.900000,82.200000,hi +21.800000,82.200000,hi +21.800000,82.100000,hi +21.700000,82.100000,hi +21.700000,82.200000,hi +21.600000,82.200000,hi +21.500000,82.200000,hi +21.500000,82.100000,hi +21.600000,82.100000,hi +21.600000,82.000000,hi +21.600000,81.900000,hi +21.500000,81.900000,hi +21.500000,82.000000,hi +21.400000,82.000000,hi +21.400000,81.900000,hi +21.300000,81.900000,hi +21.300000,82.000000,hi +21.300000,82.100000,hi +21.400000,82.100000,hi +21.400000,82.200000,hi +21.300000,82.200000,hi +21.200000,82.200000,hi +21.200000,82.100000,hi +21.100000,82.200000,hi +21.000000,82.200000,hi +21.000000,82.100000,hi +21.100000,82.100000,hi +21.000000,82.000000,hi +21.000000,81.900000,hi +21.100000,81.900000,hi +21.100000,82.000000,hi +21.200000,82.000000,hi +21.200000,81.900000,hi +21.200000,81.800000,hi +21.200000,81.700000,hi +21.100000,81.700000,hi +21.100000,81.800000,hi +21.000000,81.800000,hi +20.900000,81.800000,hi +20.900000,81.700000,hi +21.000000,81.700000,hi +20.900000,81.600000,hi +21.000000,81.600000,hi +21.100000,81.600000,hi +21.200000,81.600000,hi +21.300000,81.600000,hi +21.400000,81.600000,hi +21.300000,81.700000,hi +21.300000,81.800000,hi +21.400000,81.800000,hi +21.400000,81.700000,hi +21.500000,81.700000,hi +21.500000,81.800000,hi +21.600000,81.800000,hi +21.600000,81.700000,hi +21.500000,81.600000,hi +21.600000,81.600000,hi +21.600000,81.500000,hi +21.500000,81.500000,hi +21.500000,81.400000,hi +21.600000,81.400000,hi +21.600000,81.300000,hi +21.600000,81.200000,hi +21.500000,81.200000,hi +21.500000,81.300000,hi +21.400000,81.300000,hi +21.400000,81.200000,hi +21.300000,81.200000,hi +21.300000,81.300000,hi +21.300000,81.400000,hi +21.400000,81.400000,hi +21.400000,81.500000,hi +21.300000,81.500000,hi +21.200000,81.500000,hi +21.200000,81.400000,hi +21.100000,81.400000,hi +21.100000,81.500000,hi +21.000000,81.500000,hi +20.900000,81.500000,hi +20.900000,81.400000,hi +21.000000,81.400000,hi +21.000000,81.300000,hi +20.900000,81.300000,hi +20.900000,81.200000,hi +21.000000,81.200000,hi +21.100000,81.200000,hi +21.100000,81.300000,hi +21.200000,81.300000,hi +21.200000,81.200000,hi +21.200000,81.100000,hi +21.200000,81.000000,hi +21.100000,81.000000,hi +21.100000,81.100000,hi +21.000000,81.100000,hi +20.900000,81.100000,hi +20.900000,81.000000,hi +21.000000,81.000000,hi +21.000000,80.900000,hi +20.900000,80.900000,hi +21.100000,80.900000,hi +21.200000,80.900000,hi +21.400000,80.900000,hi +21.300000,80.900000,hi +21.300000,81.000000,hi +21.300000,81.100000,hi +21.400000,81.100000,hi +21.400000,81.000000,hi +21.500000,81.000000,hi +21.500000,81.100000,hi +21.600000,81.100000,hi +21.600000,81.000000,hi +21.600000,80.900000,hi +21.500000,80.900000,hi +21.700000,80.900000,hi +21.900000,80.900000,hi +21.800000,80.900000,hi +21.900000,81.000000,hi +21.900000,81.100000,hi +21.800000,81.100000,hi +21.800000,81.000000,hi +21.700000,81.000000,hi +21.700000,81.100000,hi +21.700000,81.200000,hi +21.800000,81.200000,hi +21.800000,81.300000,hi +21.700000,81.300000,hi +21.700000,81.400000,hi +21.700000,81.500000,hi +21.800000,81.500000,hi +21.800000,81.400000,hi +21.900000,81.400000,hi +21.900000,81.500000,hi +22.000000,81.500000,hi +22.000000,81.400000,hi +22.000000,81.300000,hi +21.900000,81.300000,hi +21.900000,81.200000,hi +22.000000,81.200000,hi +22.100000,81.200000,hi +22.100000,81.300000,hi +22.100000,81.400000,hi +22.100000,81.500000,hi +22.200000,81.500000,hi +22.200000,81.400000,hi +22.300000,81.500000,hi +22.300000,81.400000,hi +22.300000,81.300000,hi +22.200000,81.300000,hi +22.200000,81.200000,hi +22.300000,81.200000,hi +22.300000,81.100000,hi +22.300000,81.000000,hi +22.200000,81.000000,hi +22.200000,81.100000,hi +22.100000,81.100000,hi +22.000000,81.100000,hi +22.000000,81.000000,hi +22.100000,81.000000,hi +22.100000,80.900000,hi +22.000000,80.900000,hi +22.200000,80.900000,hi +22.300000,80.900000,hi +22.300000,80.800000,hi +22.200000,80.800000,hi +22.200000,80.700000,hi +22.300000,80.700000,hi +22.300000,80.600000,hi +22.300000,80.500000,hi +22.200000,80.500000,hi +22.200000,80.600000,hi +22.100000,80.600000,hi +22.100000,80.500000,hi +22.000000,80.500000,hi +22.000000,80.600000,hi +22.000000,80.700000,hi +22.100000,80.700000,hi +22.100000,80.800000,hi +22.000000,80.800000,hi +21.900000,80.800000,hi +21.900000,80.700000,hi +21.800000,80.700000,hi +21.800000,80.800000,hi +21.700000,80.800000,hi +21.600000,80.700000,hi +21.700000,80.700000,hi +21.700000,80.600000,hi +21.600000,80.600000,hi +21.600000,80.500000,hi +21.700000,80.500000,hi +21.800000,80.500000,hi +21.800000,80.600000,hi +21.900000,80.600000,hi +21.900000,80.500000,hi +21.900000,80.400000,hi +21.900000,80.300000,hi +21.800000,80.300000,hi +21.800000,80.400000,hi +21.700000,80.400000,hi +21.600000,80.400000,hi +21.600000,80.300000,hi +21.700000,80.300000,hi +21.700000,80.200000,hi +21.600000,80.200000,hi +21.600000,80.100000,hi +21.700000,80.100000,hi +21.800000,80.100000,hi +21.800000,80.200000,hi +21.900000,80.200000,hi +21.900000,80.100000,hi +22.000000,80.100000,hi +22.100000,80.100000,hi +22.100000,80.200000,hi +22.000000,80.200000,hi +22.000000,80.300000,hi +22.000000,80.400000,hi +22.100000,80.400000,hi +22.100000,80.300000,hi +22.200000,80.300000,hi +22.200000,80.400000,hi +22.300000,80.400000,hi +22.300000,80.300000,hi +22.300000,80.200000,hi +22.200000,80.200000,hi +22.200000,80.100000,hi +22.300000,80.100000,hi +22.300000,80.000000,hi +22.200000,80.000000,hi +22.000000,80.000000,hi +22.100000,80.000000,hi +22.100000,79.900000,hi +22.000000,79.900000,hi +22.000000,79.800000,hi +22.100000,79.800000,hi +22.200000,79.800000,hi +22.200000,79.900000,hi +22.300000,79.900000,hi +22.200000,79.700000,hi +22.100000,79.600000,hi +22.200000,79.600000,hi +22.200000,79.500000,hi +22.200000,79.400000,hi +22.100000,79.400000,hi +22.100000,79.500000,hi +22.000000,79.500000,hi +22.000000,79.400000,hi +21.900000,79.400000,hi +22.000000,79.600000,hi +22.100000,79.700000,hi +22.000000,79.700000,hi +21.900000,79.700000,hi +21.800000,79.700000,hi +21.800000,79.600000,hi +21.900000,79.600000,hi +21.900000,79.500000,hi +21.800000,79.400000,hi +21.800000,79.500000,hi +21.700000,79.500000,hi +21.700000,79.400000,hi +21.600000,79.400000,hi +21.600000,79.500000,hi +21.600000,79.600000,hi +21.700000,79.600000,hi +21.700000,79.700000,hi +21.600000,79.700000,hi +21.600000,79.800000,hi +21.600000,79.900000,hi +21.700000,79.900000,hi +21.700000,79.800000,hi +21.800000,79.800000,hi +21.900000,79.800000,hi +21.900000,79.900000,hi +21.800000,79.900000,hi +21.800000,80.000000,hi +21.900000,80.000000,hi +21.700000,80.000000,hi +21.600000,80.000000,hi +21.500000,80.000000,hi +21.400000,80.000000,hi +21.200000,80.000000,hi +21.300000,80.000000,hi +21.300000,79.900000,hi +21.200000,79.900000,hi +21.200000,79.800000,hi +21.300000,79.800000,hi +21.400000,79.800000,hi +21.400000,79.900000,hi +21.500000,79.900000,hi +21.500000,79.800000,hi +21.500000,79.700000,hi +21.400000,79.700000,hi +21.400000,79.600000,hi +21.500000,79.600000,hi +21.500000,79.500000,hi +21.500000,79.400000,hi +21.400000,79.400000,hi +21.400000,79.500000,hi +21.300000,79.500000,hi +21.300000,79.400000,hi +21.200000,79.400000,hi +21.200000,79.500000,hi +21.200000,79.600000,hi +21.300000,79.600000,hi +21.300000,79.700000,hi +21.200000,79.700000,hi +21.100000,79.700000,hi +21.000000,79.700000,hi +21.000000,79.600000,hi +21.100000,79.600000,hi +21.100000,79.500000,hi +21.100000,79.400000,hi +21.000000,79.400000,hi +21.000000,79.500000,hi +20.900000,79.500000,hi +20.900000,79.400000,hi +20.800000,79.400000,hi +20.800000,79.500000,hi +20.800000,79.600000,hi +20.900000,79.600000,hi +20.900000,79.700000,hi +20.800000,79.700000,hi +20.800000,79.800000,hi +20.800000,79.900000,hi +20.900000,79.900000,hi +20.900000,79.800000,hi +21.000000,79.800000,hi +21.100000,79.800000,hi +21.100000,79.900000,hi +21.000000,79.900000,hi +21.000000,80.000000,hi +21.100000,80.000000,hi +20.900000,80.000000,hi +20.900000,80.100000,hi +21.000000,80.200000,hi +20.900000,80.200000,hi +20.900000,80.300000,hi +20.900000,80.400000,hi +21.000000,80.400000,hi +21.000000,80.300000,hi +21.100000,80.300000,hi +21.100000,80.400000,hi +21.200000,80.400000,hi +21.100000,80.200000,hi +21.000000,80.100000,hi +21.100000,80.100000,hi +21.200000,80.100000,hi +21.200000,80.200000,hi +21.300000,80.200000,hi +21.300000,80.100000,hi +21.400000,80.100000,hi +21.500000,80.100000,hi +21.500000,80.200000,hi +21.400000,80.200000,hi +21.400000,80.300000,hi +21.500000,80.300000,hi +21.500000,80.400000,hi +21.400000,80.400000,hi +21.300000,80.400000,hi +21.300000,80.300000,hi +21.200000,80.300000,hi +21.300000,80.500000,hi +21.300000,80.600000,hi +21.400000,80.600000,hi +21.400000,80.500000,hi +21.500000,80.500000,hi +21.500000,80.600000,hi +21.500000,80.700000,hi +21.600000,80.800000,hi +21.500000,80.800000,hi +21.400000,80.800000,hi +21.400000,80.700000,hi +21.300000,80.700000,hi +21.300000,80.800000,hi +21.200000,80.800000,hi +21.100000,80.800000,hi +21.100000,80.700000,hi +21.200000,80.700000,hi +21.200000,80.600000,hi +21.200000,80.500000,hi +21.100000,80.500000,hi +21.100000,80.600000,hi +21.000000,80.600000,hi +21.000000,80.500000,hi +20.900000,80.500000,hi +20.900000,80.600000,hi +20.900000,80.700000,hi +21.000000,80.700000,hi +21.000000,80.800000,hi +20.900000,80.800000,hi +20.800000,80.800000,hi +20.700000,80.800000,hi +20.700000,80.700000,hi +20.800000,80.700000,hi +20.800000,80.600000,hi +20.800000,80.500000,hi +20.700000,80.500000,hi +20.700000,80.600000,hi +20.600000,80.600000,hi +20.600000,80.500000,hi +20.500000,80.500000,hi +20.500000,80.600000,hi +20.500000,80.700000,hi +20.600000,80.700000,hi +20.600000,80.800000,hi +20.500000,80.800000,hi +20.400000,80.800000,hi +20.400000,80.700000,hi +20.300000,80.700000,hi +20.300000,80.800000,hi +20.200000,80.800000,hi +20.100000,80.800000,hi +20.100000,80.700000,hi +20.200000,80.700000,hi +20.200000,80.600000,hi +20.100000,80.600000,hi +20.100000,80.500000,hi +20.200000,80.500000,hi +20.300000,80.500000,hi +20.300000,80.600000,hi +20.400000,80.600000,hi +20.400000,80.500000,hi +20.400000,80.400000,hi +20.400000,80.300000,mr +20.300000,80.300000,hi +20.300000,80.400000,hi +20.200000,80.400000,hi +20.100000,80.400000,hi +20.100000,80.300000,hi +20.200000,80.300000,mr +20.200000,80.200000,mr +20.100000,80.200000,mr +20.100000,80.100000,mr +20.200000,80.100000,mr +20.300000,80.100000,mr +20.300000,80.200000,mr +20.400000,80.200000,hi +20.400000,80.100000,hi +20.500000,80.100000,hi +20.600000,80.100000,hi +20.600000,80.200000,hi +20.500000,80.200000,hi +20.500000,80.300000,mr +20.500000,80.400000,hi +20.600000,80.400000,hi +20.600000,80.300000,hi +20.700000,80.300000,hi +20.700000,80.400000,hi +20.800000,80.400000,hi +20.800000,80.300000,hi +20.800000,80.200000,hi +20.700000,80.200000,hi +20.700000,80.100000,hi +20.800000,80.100000,hi +20.800000,80.000000,hi +20.700000,80.000000,hi +20.500000,80.000000,hi +20.600000,80.000000,hi +20.600000,79.900000,hi +20.500000,79.900000,hi +20.500000,79.800000,hi +20.600000,79.800000,hi +20.700000,79.900000,hi +20.700000,79.800000,hi +20.700000,79.700000,hi +20.600000,79.700000,hi +20.600000,79.600000,hi +20.700000,79.600000,hi +20.700000,79.500000,hi +20.700000,79.400000,hi +20.600000,79.400000,hi +20.600000,79.500000,hi +20.500000,79.500000,hi +20.500000,79.400000,hi +20.400000,79.400000,hi +20.400000,79.500000,hi +20.500000,79.600000,hi +20.500000,79.700000,hi +20.400000,79.700000,hi +20.300000,79.700000,hi +20.300000,79.600000,hi +20.400000,79.600000,hi +20.300000,79.400000,hi +20.200000,79.400000,hi +20.300000,79.500000,hi +20.200000,79.500000,hi +20.100000,79.400000,hi +20.100000,79.500000,hi +20.100000,79.600000,hi +20.200000,79.600000,hi +20.200000,79.700000,hi +20.100000,79.700000,hi +20.100000,79.800000,hi +20.100000,79.900000,hi +20.200000,79.900000,hi +20.200000,79.800000,hi +20.300000,79.800000,hi +20.400000,79.800000,hi +20.400000,79.900000,hi +20.300000,79.900000,hi +20.300000,80.000000,hi +20.400000,80.000000,hi +20.200000,80.000000,mr +20.100000,80.000000,mr +20.000000,80.000000,mr +19.900000,80.000000,hi +19.700000,80.000000,hi +19.800000,80.000000,mr +19.800000,79.900000,hi +19.700000,79.900000,hi +19.700000,79.800000,hi +19.800000,79.800000,mr +19.900000,79.800000,hi +19.900000,79.900000,hi +20.000000,79.900000,hi +20.000000,79.800000,mr +20.000000,79.700000,hi +19.900000,79.700000,hi +19.900000,79.600000,hi +20.000000,79.600000,hi +20.000000,79.500000,hi +20.000000,79.400000,hi +19.900000,79.400000,hi +19.900000,79.500000,hi +19.800000,79.500000,hi +19.800000,79.400000,hi +19.700000,79.400000,hi +19.700000,79.500000,hi +19.700000,79.600000,hi +19.800000,79.600000,hi +19.800000,79.700000,mr +19.700000,79.700000,mr +19.600000,79.700000,hi +19.500000,79.700000,te +19.500000,79.600000,hi +19.600000,79.600000,hi +19.600000,79.500000,hi +19.600000,79.400000,hi +19.500000,79.400000,hi +19.500000,79.500000,hi +19.400000,79.500000,hi +19.400000,79.400000,te +19.300000,79.400000,te +19.300000,79.500000,te +19.300000,79.600000,te +19.400000,79.600000,te +19.400000,79.700000,te +19.300000,79.700000,te +19.300000,79.800000,te +19.300000,79.900000,te +19.400000,79.900000,hi +19.400000,79.800000,te +19.500000,79.800000,hi +19.600000,79.800000,hi +19.600000,79.900000,hi +19.500000,79.900000,hi +19.500000,80.000000,hi +19.600000,80.000000,hi +19.400000,80.000000,hi +19.300000,80.000000,hi +19.300000,80.100000,hi +19.400000,80.100000,hi +19.400000,80.200000,hi +19.400000,80.300000,hi +19.400000,80.400000,hi +19.500000,80.400000,hi +19.500000,80.300000,hi +19.600000,80.400000,hi +19.600000,80.300000,hi +19.600000,80.200000,hi +19.500000,80.200000,hi +19.500000,80.100000,hi +19.600000,80.100000,hi +19.700000,80.100000,hi +19.700000,80.200000,hi +19.800000,80.200000,hi +19.800000,80.100000,hi +19.900000,80.100000,hi +20.000000,80.100000,mr +20.000000,80.200000,mr +19.900000,80.200000,mr +19.900000,80.300000,hi +20.000000,80.300000,hi +20.000000,80.400000,hi +19.900000,80.400000,hi +19.800000,80.400000,hi +19.800000,80.300000,hi +19.700000,80.300000,hi +19.700000,80.400000,hi +19.700000,80.500000,hi +19.800000,80.600000,hi +19.800000,80.500000,hi +19.900000,80.500000,hi +20.000000,80.500000,hi +20.000000,80.600000,hi +19.900000,80.600000,hi +19.900000,80.700000,hi +20.000000,80.700000,hi +20.000000,80.800000,hi +19.900000,80.800000,hi +19.800000,80.700000,hi +19.800000,80.800000,hi +19.700000,80.800000,hi +19.600000,80.800000,hi +19.600000,80.700000,hi +19.700000,80.700000,hi +19.700000,80.600000,hi +19.600000,80.500000,hi +19.600000,80.600000,hi +19.500000,80.600000,hi +19.500000,80.500000,hi +19.400000,80.500000,hi +19.400000,80.600000,hi +19.400000,80.700000,hi +19.500000,80.700000,hi +19.500000,80.800000,hi +19.400000,80.800000,hi +19.400000,80.900000,hi +19.500000,80.900000,hi +19.700000,80.900000,hi +19.600000,80.900000,hi +19.600000,81.000000,hi +19.700000,81.000000,hi +19.700000,81.100000,hi +19.600000,81.100000,hi +19.500000,81.100000,hi +19.500000,81.000000,hi +19.400000,81.000000,hi +19.400000,81.100000,en +19.400000,81.200000,en +19.500000,81.200000,hi +19.500000,81.300000,hi +19.400000,81.300000,hi +19.400000,81.400000,hi +19.400000,81.500000,hi +19.500000,81.500000,hi +19.500000,81.400000,hi +19.600000,81.400000,hi +19.600000,81.500000,hi +19.700000,81.500000,hi +19.700000,81.400000,hi +19.700000,81.300000,hi +19.600000,81.300000,hi +19.600000,81.200000,hi +19.700000,81.200000,hi +19.800000,81.200000,hi +19.900000,81.200000,hi +19.900000,81.300000,hi +19.800000,81.300000,hi +19.800000,81.400000,hi +19.800000,81.500000,hi +19.900000,81.500000,hi +19.900000,81.400000,hi +20.000000,81.400000,hi +20.000000,81.500000,hi +20.100000,81.500000,hi +20.100000,81.400000,hi +20.100000,81.300000,hi +20.000000,81.300000,hi +20.000000,81.200000,hi +20.100000,81.200000,hi +20.100000,81.100000,hi +20.100000,81.000000,hi +20.000000,81.000000,hi +20.000000,81.100000,hi +19.900000,81.100000,hi +19.800000,81.100000,hi +19.800000,81.000000,hi +19.900000,81.000000,hi +19.900000,80.900000,hi +19.800000,80.900000,hi +20.000000,80.900000,hi +20.200000,80.900000,hi +20.100000,80.900000,hi +20.200000,81.100000,hi +20.200000,81.000000,hi +20.300000,81.000000,hi +20.300000,81.100000,hi +20.400000,81.100000,hi +20.400000,81.000000,hi +20.400000,80.900000,hi +20.300000,80.900000,hi +20.500000,80.900000,hi +20.600000,80.900000,hi +20.800000,80.900000,hi +20.700000,80.900000,hi +20.700000,81.000000,hi +20.800000,81.000000,hi +20.800000,81.100000,hi +20.700000,81.100000,hi +20.600000,81.100000,hi +20.600000,81.000000,hi +20.500000,81.000000,hi +20.500000,81.100000,hi +20.500000,81.200000,hi +20.500000,81.300000,hi +20.600000,81.300000,hi +20.600000,81.200000,hi +20.700000,81.200000,hi +20.800000,81.200000,hi +20.800000,81.300000,hi +20.700000,81.300000,hi +20.700000,81.400000,hi +20.800000,81.400000,hi +20.800000,81.500000,hi +20.700000,81.500000,hi +20.600000,81.500000,hi +20.600000,81.400000,hi +20.500000,81.400000,hi +20.500000,81.500000,hi +20.400000,81.500000,hi +20.400000,81.400000,hi +20.400000,81.300000,hi +20.400000,81.200000,hi +20.300000,81.200000,hi +20.300000,81.300000,hi +20.200000,81.200000,hi +20.200000,81.300000,hi +20.200000,81.400000,hi +20.300000,81.400000,hi +20.300000,81.500000,hi +20.200000,81.500000,hi +20.200000,81.600000,hi +20.300000,81.600000,hi +20.200000,81.700000,hi +20.200000,81.800000,hi +20.300000,81.800000,hi +20.300000,81.700000,hi +20.400000,81.700000,hi +20.400000,81.800000,hi +20.500000,81.800000,hi +20.500000,81.700000,hi +20.400000,81.600000,hi +20.500000,81.600000,hi +20.600000,81.600000,hi +20.700000,81.600000,hi +20.800000,81.600000,hi +20.800000,81.700000,hi +20.800000,81.800000,hi +20.700000,81.800000,hi +20.700000,81.700000,hi +20.600000,81.700000,hi +20.600000,81.800000,hi +20.600000,81.900000,hi +20.600000,82.000000,hi +20.700000,82.000000,hi +20.700000,81.900000,hi +20.800000,81.900000,hi +20.900000,81.900000,hi +20.900000,82.000000,hi +20.800000,82.000000,hi +20.800000,82.100000,hi +20.900000,82.100000,hi +20.900000,82.200000,hi +20.800000,82.200000,hi +20.700000,82.200000,hi +20.700000,82.100000,hi +20.600000,82.100000,hi +20.600000,82.200000,hi +20.500000,82.200000,hi +20.400000,82.200000,hi +20.400000,82.100000,hi +20.500000,82.100000,hi +20.500000,82.000000,hi +20.500000,81.900000,hi +20.400000,81.900000,hi +20.400000,82.000000,hi +20.300000,82.000000,hi +20.300000,81.900000,hi +20.200000,81.900000,hi +20.200000,82.000000,hi +20.200000,82.100000,hi +20.300000,82.100000,hi +20.300000,82.200000,hi +20.200000,82.200000,hi +20.100000,82.200000,hi +20.100000,82.100000,hi +20.000000,82.100000,hi +20.000000,82.200000,hi +19.900000,82.200000,hi +19.800000,82.200000,hi +19.800000,82.100000,hi +19.900000,82.100000,hi +19.900000,82.000000,hi +19.800000,82.000000,hi +19.800000,81.900000,hi +19.900000,81.900000,hi +20.000000,81.900000,hi +20.000000,82.000000,hi +20.100000,82.000000,hi +20.100000,81.900000,hi +20.100000,81.800000,hi +20.000000,81.800000,hi +20.000000,81.700000,hi +20.100000,81.700000,hi +20.100000,81.600000,hi +20.000000,81.600000,hi +19.900000,81.600000,hi +19.800000,81.600000,hi +19.800000,81.700000,hi +19.900000,81.700000,hi +19.900000,81.800000,hi +19.800000,81.800000,hi +19.700000,81.800000,hi +19.600000,81.800000,hi +19.600000,81.700000,hi +19.700000,81.700000,hi +19.700000,81.600000,hi +19.600000,81.600000,hi +19.500000,81.600000,hi +19.400000,81.600000,hi +19.400000,81.700000,hi +19.500000,81.700000,hi +19.500000,81.800000,hi +19.400000,81.800000,hi +19.400000,81.900000,hi +19.400000,82.000000,hi +19.500000,82.000000,hi +19.500000,81.900000,hi +19.600000,81.900000,hi +19.700000,81.900000,hi +19.700000,82.000000,hi +19.600000,82.000000,hi +19.600000,82.100000,hi +19.700000,82.100000,hi +19.700000,82.200000,hi +19.600000,82.200000,hi +19.500000,82.200000,hi +19.500000,82.100000,hi +19.400000,82.100000,hi +19.400000,82.200000,hi +19.300000,82.100000,hi +19.300000,82.200000,hi +19.200000,82.200000,hi +19.100000,82.200000,hi +19.100000,82.100000,hi +19.200000,82.100000,hi +19.200000,82.000000,hi +19.100000,82.000000,hi +19.100000,81.900000,hi +19.200000,81.900000,hi +19.300000,82.000000,hi +19.300000,81.900000,hi +19.300000,81.800000,hi +19.200000,81.800000,hi +19.200000,81.700000,hi +19.300000,81.700000,hi +19.300000,81.600000,hi +19.200000,81.600000,hi +19.100000,81.600000,hi +19.000000,81.600000,hi +19.100000,81.700000,hi +19.100000,81.800000,hi +19.000000,81.800000,hi +18.900000,81.800000,hi +18.900000,81.700000,hi +19.000000,81.700000,hi +18.900000,81.600000,hi +18.800000,81.600000,hi +18.700000,81.600000,hi +18.700000,81.700000,hi +18.800000,81.700000,hi +18.800000,81.800000,hi +18.700000,81.800000,hi +18.700000,81.900000,hi +18.700000,82.000000,hi +18.800000,82.000000,hi +18.800000,81.900000,hi +18.900000,81.900000,hi +19.000000,81.900000,hi +19.000000,82.000000,hi +18.900000,82.000000,hi +18.900000,82.100000,hi +19.000000,82.100000,hi +19.000000,82.200000,hi +18.900000,82.200000,hi +18.800000,82.200000,hi +18.800000,82.100000,hi +18.700000,82.100000,hi +18.700000,82.200000,hi +18.600000,82.200000,hi +18.500000,82.200000,hi +18.500000,82.100000,hi +18.600000,82.100000,hi +18.600000,82.000000,hi +18.600000,81.900000,hi +18.500000,81.900000,hi +18.500000,82.000000,hi +18.400000,82.000000,hi +18.400000,81.900000,hi +18.300000,81.900000,hi +18.300000,82.000000,hi +18.300000,82.100000,hi +18.400000,82.100000,hi +18.400000,82.200000,hi +18.300000,82.200000,hi +18.200000,82.200000,hi +18.200000,82.100000,hi +18.100000,82.100000,hi +18.100000,82.200000,hi +18.000000,82.200000,hi +17.900000,82.200000,te +17.900000,82.100000,hi +18.000000,82.100000,hi +18.000000,82.000000,hi +17.900000,82.000000,hi +17.900000,81.900000,hi +18.000000,81.900000,hi +18.100000,81.900000,hi +18.100000,82.000000,hi +18.200000,82.000000,hi +18.200000,81.900000,hi +18.200000,81.800000,hi +18.200000,81.700000,hi +18.100000,81.700000,hi +18.100000,81.800000,hi +18.000000,81.800000,hi +17.900000,81.800000,hi +17.900000,81.700000,hi +18.000000,81.700000,hi +17.900000,81.600000,hi +18.000000,81.600000,hi +18.100000,81.600000,hi +18.200000,81.600000,hi +18.300000,81.600000,hi +18.400000,81.600000,hi +18.300000,81.700000,hi +18.300000,81.800000,hi +18.400000,81.800000,hi +18.400000,81.700000,hi +18.500000,81.700000,hi +18.500000,81.800000,hi +18.600000,81.800000,hi +18.600000,81.700000,hi +18.500000,81.600000,hi +18.600000,81.600000,hi +18.600000,81.500000,hi +18.500000,81.500000,hi +18.500000,81.400000,hi +18.600000,81.400000,hi +18.600000,81.300000,hi +18.600000,81.200000,hi +18.500000,81.200000,hi +18.500000,81.300000,hi +18.400000,81.300000,hi +18.400000,81.200000,hi +18.300000,81.200000,hi +18.300000,81.300000,hi +18.300000,81.400000,hi +18.400000,81.400000,hi +18.400000,81.500000,hi +18.300000,81.500000,hi +18.200000,81.500000,hi +18.200000,81.400000,hi +18.100000,81.400000,hi +18.100000,81.500000,hi +18.000000,81.500000,hi +17.900000,81.500000,hi +17.900000,81.400000,hi +18.000000,81.400000,hi +18.000000,81.300000,hi +17.900000,81.300000,hi +17.900000,81.200000,te +18.000000,81.200000,hi +18.100000,81.200000,hi +18.100000,81.300000,hi +18.200000,81.300000,hi +18.200000,81.200000,hi +18.200000,81.100000,hi +18.200000,81.000000,te +18.100000,81.000000,te +18.100000,81.100000,te +18.000000,81.100000,te +17.900000,81.100000,te +17.900000,81.000000,te +18.000000,81.000000,te +18.000000,80.900000,te +17.900000,80.900000,te +18.100000,80.900000,te +18.200000,80.900000,te +18.300000,80.900000,te +18.300000,81.000000,te +18.300000,81.100000,hi +18.400000,81.100000,hi +18.400000,81.000000,hi +18.500000,81.100000,hi +18.500000,81.000000,hi +18.500000,80.900000,hi +18.400000,80.900000,hi +18.600000,80.900000,hi +18.700000,80.900000,hi +18.900000,80.900000,hi +18.800000,80.900000,hi +18.800000,81.000000,hi +18.900000,81.000000,hi +18.900000,81.100000,hi +18.800000,81.100000,hi +18.700000,81.100000,hi +18.700000,81.000000,hi +18.600000,81.000000,hi +18.600000,81.100000,hi +18.700000,81.200000,hi +18.700000,81.300000,hi +18.700000,81.400000,hi +18.700000,81.500000,hi +18.800000,81.500000,hi +18.800000,81.400000,hi +18.900000,81.500000,hi +18.900000,81.400000,hi +18.900000,81.300000,hi +18.800000,81.300000,hi +18.800000,81.200000,hi +18.900000,81.200000,hi +19.000000,81.200000,hi +19.100000,81.200000,hi +19.100000,81.300000,hi +19.000000,81.300000,hi +19.000000,81.400000,hi +19.000000,81.500000,hi +19.100000,81.500000,hi +19.100000,81.400000,hi +19.200000,81.400000,hi +19.200000,81.500000,hi +19.300000,81.500000,hi +19.300000,81.400000,hi +19.300000,81.300000,hi +19.200000,81.300000,hi +19.200000,81.200000,hi +19.300000,81.200000,hi +19.300000,81.100000,hi +19.300000,81.000000,hi +19.200000,81.000000,hi +19.200000,81.100000,hi +19.100000,81.100000,hi +19.000000,81.100000,hi +19.000000,81.000000,hi +19.100000,81.000000,hi +19.100000,80.900000,hi +19.000000,80.900000,hi +19.200000,80.900000,hi +19.300000,80.900000,hi +19.300000,80.800000,hi +19.200000,80.800000,hi +19.200000,80.700000,hi +19.300000,80.700000,hi +19.300000,80.600000,hi +19.300000,80.500000,hi +19.200000,80.500000,hi +19.200000,80.600000,hi +19.100000,80.600000,hi +19.100000,80.500000,hi +19.000000,80.500000,hi +19.000000,80.600000,hi +19.000000,80.700000,hi +19.100000,80.700000,hi +19.100000,80.800000,hi +19.000000,80.800000,hi +18.900000,80.800000,hi +18.900000,80.700000,hi +18.800000,80.700000,hi +18.800000,80.800000,hi +18.700000,80.800000,hi +18.600000,80.800000,hi +18.600000,80.700000,hi +18.700000,80.700000,hi +18.700000,80.600000,hi +18.600000,80.600000,hi +18.600000,80.500000,hi +18.700000,80.500000,hi +18.800000,80.500000,hi +18.800000,80.600000,hi +18.900000,80.600000,hi +18.900000,80.500000,hi +18.900000,80.400000,hi +18.900000,80.300000,hi +18.800000,80.300000,hi +18.800000,80.400000,hi +18.700000,80.400000,hi +18.600000,80.400000,hi +18.600000,80.300000,hi +18.700000,80.300000,hi +18.700000,80.200000,te +18.600000,80.200000,te +18.600000,80.100000,te +18.700000,80.100000,te +18.800000,80.100000,te +18.800000,80.200000,hi +18.900000,80.200000,hi +18.900000,80.100000,hi +19.000000,80.100000,hi +19.100000,80.100000,te +19.100000,80.200000,hi +19.000000,80.200000,hi +19.000000,80.300000,hi +19.000000,80.400000,hi +19.100000,80.400000,hi +19.100000,80.300000,hi +19.200000,80.300000,hi +19.200000,80.400000,hi +19.300000,80.400000,hi +19.300000,80.300000,hi +19.300000,80.200000,hi +19.200000,80.200000,hi +19.200000,80.100000,hi +19.200000,80.000000,hi +19.000000,80.000000,te +19.100000,80.000000,te +19.000000,79.900000,te +19.000000,79.800000,te +19.100000,79.800000,te +19.100000,79.900000,te +19.200000,79.900000,hi +19.200000,79.800000,te +19.200000,79.700000,te +19.100000,79.700000,te +19.100000,79.600000,te +19.200000,79.600000,te +19.200000,79.500000,te +19.200000,79.400000,te +19.100000,79.400000,te +19.100000,79.500000,te +19.000000,79.500000,te +19.000000,79.400000,te +18.900000,79.400000,te +18.900000,79.500000,te +18.900000,79.600000,te +19.000000,79.600000,te +19.000000,79.700000,te +18.900000,79.700000,te +18.800000,79.700000,te +18.800000,79.600000,te +18.800000,79.500000,te +18.800000,79.400000,te +18.700000,79.400000,te +18.700000,79.500000,te +18.600000,79.400000,te +18.600000,79.500000,te +18.600000,79.600000,te +18.700000,79.600000,te +18.700000,79.700000,te +18.600000,79.700000,te +18.600000,79.800000,te +18.600000,79.900000,te +18.700000,79.900000,te +18.700000,79.800000,te +18.800000,79.800000,te +18.900000,79.800000,te +18.900000,79.900000,te +18.800000,79.900000,te +18.800000,80.000000,hi +18.900000,80.000000,te +18.700000,80.000000,te +18.600000,80.000000,te +18.500000,80.000000,te +18.400000,80.000000,te +18.200000,80.000000,te +18.300000,80.000000,te +18.300000,79.900000,te +18.200000,79.900000,te +18.200000,79.800000,te +18.300000,79.800000,te +18.400000,79.800000,te +18.400000,79.900000,te +18.500000,79.900000,te +18.500000,79.800000,te +18.500000,79.700000,te +18.400000,79.700000,te +18.400000,79.600000,te +18.500000,79.600000,te +18.500000,79.500000,te +18.500000,79.400000,te +18.400000,79.400000,te +18.400000,79.500000,te +18.300000,79.500000,te +18.300000,79.400000,te +18.200000,79.400000,te +18.200000,79.500000,te +18.200000,79.600000,te +18.300000,79.600000,te +18.300000,79.700000,te +18.200000,79.700000,te +18.100000,79.700000,te +18.000000,79.700000,te +18.000000,79.600000,te +18.100000,79.600000,te +18.100000,79.500000,te +18.100000,79.400000,te +18.000000,79.400000,te +18.000000,79.500000,te +17.900000,79.500000,te +17.900000,79.400000,te +17.800000,79.400000,te +17.800000,79.500000,te +17.800000,79.600000,te +17.900000,79.600000,te +17.900000,79.700000,te +17.800000,79.700000,te +17.800000,79.800000,te +17.800000,79.900000,te +17.900000,79.900000,te +17.900000,79.800000,te +18.000000,79.800000,te +18.100000,79.800000,te +18.100000,79.900000,te +18.000000,79.900000,te +18.000000,80.000000,te +18.100000,80.000000,te +17.900000,80.000000,te +17.800000,80.000000,te +17.800000,80.100000,te +17.900000,80.100000,te +17.900000,80.200000,te +17.900000,80.300000,te +17.900000,80.400000,hi +18.000000,80.300000,te +18.000000,80.400000,te +18.100000,80.400000,te +18.100000,80.300000,te +18.100000,80.200000,te +18.000000,80.200000,te +18.000000,80.100000,te +18.100000,80.100000,te +18.200000,80.100000,te +18.200000,80.200000,te +18.300000,80.200000,te +18.300000,80.100000,te +18.400000,80.100000,te +18.500000,80.100000,te +18.500000,80.200000,te +18.400000,80.200000,te +18.400000,80.300000,te +18.500000,80.300000,te +18.500000,80.400000,te +18.400000,80.400000,te +18.300000,80.400000,te +18.300000,80.300000,te +18.200000,80.300000,te +18.200000,80.400000,te +18.200000,80.500000,te +18.200000,80.600000,te +18.300000,80.600000,te +18.300000,80.500000,te +18.400000,80.500000,te +18.500000,80.500000,te +18.500000,80.600000,te +18.400000,80.600000,te +18.400000,80.700000,te +18.500000,80.700000,te +18.500000,80.800000,hi +18.400000,80.800000,te +18.300000,80.700000,te +18.300000,80.800000,te +18.200000,80.800000,te +18.100000,80.800000,te +18.100000,80.700000,te +18.200000,80.700000,te +18.100000,80.500000,te +18.100000,80.600000,te +18.000000,80.600000,te +18.000000,80.500000,te +17.900000,80.500000,te +17.900000,80.600000,te +17.900000,80.700000,te +18.000000,80.700000,te +18.000000,80.800000,te +17.900000,80.800000,te +17.800000,80.800000,te +17.700000,80.800000,te +17.700000,80.700000,te +17.800000,80.700000,te +17.800000,80.600000,te +17.800000,80.500000,te +17.700000,80.500000,te +17.700000,80.600000,te +17.600000,80.600000,te +17.600000,80.500000,te +17.500000,80.500000,te +17.500000,80.600000,te +17.500000,80.700000,te +17.600000,80.700000,te +17.600000,80.800000,te +17.500000,80.800000,te +17.400000,80.800000,te +17.400000,80.700000,te +17.300000,80.700000,te +17.300000,80.800000,te +17.200000,80.800000,te +17.100000,80.800000,te +17.100000,80.700000,te +17.200000,80.700000,te +17.200000,80.600000,te +17.100000,80.600000,te +17.100000,80.500000,te +17.200000,80.500000,te +17.300000,80.500000,te +17.300000,80.600000,te +17.400000,80.600000,te +17.400000,80.500000,te +17.400000,80.400000,te +17.400000,80.300000,te +17.300000,80.300000,te +17.300000,80.400000,te +17.200000,80.400000,te +17.100000,80.400000,te +17.100000,80.300000,te +17.200000,80.300000,te +17.200000,80.200000,te +17.100000,80.200000,te +17.100000,80.100000,te +17.200000,80.100000,te +17.300000,80.100000,te +17.300000,80.200000,te +17.400000,80.200000,te +17.400000,80.100000,te +17.500000,80.100000,te +17.600000,80.100000,te +17.600000,80.200000,te +17.500000,80.200000,te +17.500000,80.300000,te +17.500000,80.400000,te +17.600000,80.400000,te +17.600000,80.300000,te +17.700000,80.300000,te +17.700000,80.400000,te +17.800000,80.400000,te +17.800000,80.300000,te +17.800000,80.200000,te +17.700000,80.200000,te +17.700000,80.100000,te +17.700000,80.000000,te +17.500000,80.000000,te +17.600000,80.000000,te +17.500000,79.900000,te +17.500000,79.800000,te +17.600000,79.800000,te +17.600000,79.900000,te +17.700000,79.900000,te +17.700000,79.800000,te +17.700000,79.700000,te +17.600000,79.700000,te +17.600000,79.600000,te +17.700000,79.600000,te +17.700000,79.500000,te +17.700000,79.400000,te +17.600000,79.400000,te +17.600000,79.500000,te +17.500000,79.500000,te +17.500000,79.400000,te +17.400000,79.400000,te +17.400000,79.500000,te +17.400000,79.600000,te +17.500000,79.600000,te +17.500000,79.700000,te +17.400000,79.700000,te +17.300000,79.700000,te +17.300000,79.600000,te +17.300000,79.500000,te +17.300000,79.400000,te +17.200000,79.400000,te +17.200000,79.500000,te +17.100000,79.400000,te +17.100000,79.500000,te +17.100000,79.600000,te +17.200000,79.600000,te +17.200000,79.700000,te +17.100000,79.700000,te +17.100000,79.800000,te +17.100000,79.900000,te +17.200000,79.900000,te +17.200000,79.800000,te +17.300000,79.800000,te +17.400000,79.800000,te +17.400000,79.900000,te +17.300000,79.900000,te +17.300000,80.000000,te +17.400000,80.000000,te +17.200000,80.000000,te +17.100000,80.000000,te +17.000000,80.000000,te +16.900000,80.000000,te +16.700000,80.000000,te +16.800000,80.000000,te +16.800000,79.900000,te +16.700000,79.900000,te +16.700000,79.800000,te +16.800000,79.800000,te +16.900000,79.800000,te +16.900000,79.900000,te +17.000000,79.900000,te +17.000000,79.800000,te +17.000000,79.700000,te +16.900000,79.700000,te +16.900000,79.600000,te +17.000000,79.600000,te +17.000000,79.500000,te +17.000000,79.400000,te +16.900000,79.400000,te +16.900000,79.500000,te +16.800000,79.500000,te +16.800000,79.400000,te +16.700000,79.400000,te +16.700000,79.500000,te +16.700000,79.600000,te +16.800000,79.600000,te +16.800000,79.700000,te +16.700000,79.700000,te +16.600000,79.700000,te +16.500000,79.700000,te +16.500000,79.600000,te +16.600000,79.600000,te +16.600000,79.500000,te +16.600000,79.400000,te +16.500000,79.400000,te +16.500000,79.500000,te +16.400000,79.500000,te +16.400000,79.400000,te +16.300000,79.400000,te +16.300000,79.500000,te +16.300000,79.600000,te +16.400000,79.600000,te +16.400000,79.700000,te +16.300000,79.700000,te +16.300000,79.800000,te +16.300000,79.900000,te +16.400000,79.900000,te +16.400000,79.800000,te +16.500000,79.800000,te +16.600000,79.800000,te +16.600000,79.900000,te +16.500000,79.900000,te +16.500000,80.000000,te +16.600000,80.000000,te +16.400000,80.000000,te +16.300000,80.000000,te +16.400000,80.100000,te +16.400000,80.200000,te +16.400000,80.300000,te +16.400000,80.400000,te +16.500000,80.400000,te +16.500000,80.300000,te +16.600000,80.400000,te +16.600000,80.300000,te +16.600000,80.200000,te +16.500000,80.200000,te +16.500000,80.100000,te +16.600000,80.100000,te +16.700000,80.100000,te +16.700000,80.200000,te +16.800000,80.200000,te +16.800000,80.100000,te +16.900000,80.100000,te +17.000000,80.100000,te +17.000000,80.200000,te +16.900000,80.200000,te +16.900000,80.300000,te +17.000000,80.300000,te +17.000000,80.400000,te +16.900000,80.400000,te +16.800000,80.400000,te +16.800000,80.300000,te +16.700000,80.300000,te +16.700000,80.400000,te +16.700000,80.500000,te +16.700000,80.600000,te +16.800000,80.600000,te +16.800000,80.500000,te +16.900000,80.500000,te +17.000000,80.500000,te +17.000000,80.600000,te +16.900000,80.600000,te +16.900000,80.700000,te +17.000000,80.700000,te +17.000000,80.800000,te +16.900000,80.800000,te +16.800000,80.700000,te +16.800000,80.800000,te +16.700000,80.800000,te +16.600000,80.800000,te +16.600000,80.700000,te +16.700000,80.700000,te +16.600000,80.500000,te +16.600000,80.600000,te +16.500000,80.600000,te +16.500000,80.500000,te +16.400000,80.500000,te +16.400000,80.600000,te +16.400000,80.700000,te +16.500000,80.700000,te +16.500000,80.800000,te +16.400000,80.800000,te +16.400000,80.900000,te +16.500000,80.900000,te +16.700000,80.900000,te +16.600000,80.900000,te +16.600000,81.000000,te +16.700000,81.000000,te +16.700000,81.100000,te +16.600000,81.100000,te +16.500000,81.100000,te +16.500000,81.000000,te +16.400000,81.000000,te +16.400000,81.100000,te +16.400000,81.200000,te +16.500000,81.200000,te +16.500000,81.300000,te +16.400000,81.300000,te +16.400000,81.400000,te +16.400000,81.500000,te +16.500000,81.500000,te +16.500000,81.400000,te +16.600000,81.400000,te +16.600000,81.500000,te +16.700000,81.500000,te +16.700000,81.400000,te +16.700000,81.300000,te +16.600000,81.300000,te +16.600000,81.200000,te +16.700000,81.200000,te +16.800000,81.200000,te +16.900000,81.200000,te +16.900000,81.300000,te +16.800000,81.300000,te +16.800000,81.400000,te +16.800000,81.500000,te +16.900000,81.500000,te +16.900000,81.400000,te +17.000000,81.400000,te +17.000000,81.500000,te +17.100000,81.500000,te +17.100000,81.400000,te +17.100000,81.300000,te +17.000000,81.300000,te +17.000000,81.200000,te +17.000000,81.000000,te +17.000000,81.100000,te +16.900000,81.100000,te +16.800000,81.100000,te +16.800000,81.000000,te +16.900000,81.000000,te +16.800000,80.900000,te +16.900000,80.900000,te +17.000000,80.900000,te +17.200000,80.900000,te +17.100000,80.900000,te +17.100000,81.000000,te +17.100000,81.100000,te +17.200000,81.100000,te +17.200000,81.000000,te +17.300000,81.000000,te +17.300000,81.100000,te +17.400000,81.100000,te +17.400000,81.000000,te +17.400000,80.900000,te +17.300000,80.900000,te +17.500000,80.900000,te +17.600000,80.900000,te +17.800000,80.900000,te +17.700000,80.900000,te +17.700000,81.000000,te +17.800000,81.000000,te +17.800000,81.100000,te +17.700000,81.100000,te +17.600000,81.100000,te +17.600000,81.000000,te +17.500000,81.000000,te +17.500000,81.100000,te +17.500000,81.200000,te +17.500000,81.300000,te +17.600000,81.300000,te +17.600000,81.200000,te +17.700000,81.200000,te +17.800000,81.200000,te +17.800000,81.300000,te +17.700000,81.300000,te +17.700000,81.400000,te +17.800000,81.400000,hi +17.800000,81.500000,te +17.700000,81.500000,te +17.600000,81.500000,te +17.600000,81.400000,te +17.500000,81.400000,te +17.500000,81.500000,te +17.400000,81.500000,te +17.300000,81.500000,te +17.300000,81.400000,te +17.400000,81.400000,te +17.400000,81.300000,te +17.400000,81.200000,te +17.300000,81.200000,te +17.300000,81.300000,te +17.200000,81.300000,te +17.200000,81.200000,te +17.100000,81.200000,te +17.200000,81.400000,te +17.200000,81.500000,te +17.200000,81.600000,te +17.300000,81.600000,te +17.200000,81.700000,te +17.200000,81.800000,te +17.300000,81.800000,te +17.300000,81.700000,te +17.400000,81.700000,te +17.400000,81.800000,te +17.400000,81.600000,te +17.500000,81.600000,te +17.600000,81.600000,te +17.700000,81.600000,te +17.800000,81.600000,te +17.700000,81.700000,te +17.800000,81.700000,te +17.800000,81.800000,te +17.700000,81.800000,te +17.600000,81.800000,te +17.600000,81.700000,te +17.500000,81.700000,te +17.500000,81.800000,te +17.600000,82.000000,te +17.600000,81.900000,te +17.700000,81.900000,te +17.800000,81.900000,te +17.800000,82.000000,en +17.700000,82.000000,te +17.700000,82.100000,te +17.800000,82.100000,en +17.800000,82.200000,te +17.700000,82.200000,te +17.600000,82.100000,te +17.600000,82.200000,te +17.500000,82.200000,te +17.400000,82.200000,te +17.400000,82.100000,te +17.500000,82.100000,te +17.500000,82.000000,te +17.500000,81.900000,te +17.400000,81.900000,te +17.400000,82.000000,te +17.300000,82.000000,te +17.300000,81.900000,te +17.200000,81.900000,te +17.200000,82.000000,te +17.200000,82.100000,te +17.300000,82.100000,te +17.300000,82.200000,te +17.200000,82.200000,te +17.100000,82.200000,te +17.100000,82.100000,te +17.000000,82.100000,te +17.000000,82.200000,te +16.900000,82.200000,te +16.800000,82.200000,te +16.800000,82.100000,te +16.900000,82.100000,te +16.900000,82.000000,te +16.800000,82.000000,te +16.800000,81.900000,te +16.900000,81.900000,te +17.000000,81.900000,te +17.000000,82.000000,te +17.100000,82.000000,te +17.100000,81.900000,te +17.100000,81.800000,te +17.000000,81.800000,te +17.000000,81.700000,te +17.100000,81.700000,te +17.100000,81.600000,te +17.000000,81.600000,te +16.900000,81.600000,te +16.800000,81.600000,te +16.800000,81.700000,te +16.900000,81.700000,te +16.900000,81.800000,te +16.800000,81.800000,te +16.700000,81.800000,te +16.600000,81.800000,te +16.600000,81.700000,te +16.700000,81.700000,te +16.700000,81.600000,te +16.600000,81.600000,te +16.500000,81.600000,te +16.400000,81.600000,te +16.400000,81.700000,te +16.500000,81.700000,te +16.500000,81.800000,te +16.400000,81.800000,te +16.400000,81.900000,te +16.400000,82.000000,te +16.500000,82.000000,te +16.500000,81.900000,te +16.600000,81.900000,te +16.700000,81.900000,te +16.700000,82.000000,te +16.600000,82.000000,te +16.600000,82.100000,te +16.700000,82.100000,te +16.700000,82.200000,te +16.600000,82.200000,te +16.500000,82.200000,te +16.500000,82.100000,te +16.400000,82.100000,te +16.400000,82.200000,te +16.400000,82.300000,te +16.500000,82.300000,te +16.400000,82.400000,te +16.500000,82.500000,te +16.500000,82.400000,te +16.600000,82.400000,te +16.600000,82.500000,te +16.700000,82.500000,te +16.700000,82.400000,te +16.600000,82.300000,te +16.700000,82.300000,te +16.800000,82.300000,te +16.900000,82.300000,te +17.000000,82.300000,te +17.100000,82.300000,te +17.000000,82.400000,te +17.100000,82.400000,te +17.100000,82.500000,te +17.000000,82.500000,te +16.900000,82.500000,te +16.900000,82.400000,te +16.800000,82.400000,te +16.800000,82.500000,te +16.800000,82.600000,en +16.800000,82.700000,te +16.900000,82.700000,te +16.900000,82.600000,en +17.000000,82.600000,te +17.100000,82.600000,te +17.100000,82.700000,te +17.000000,82.700000,te +17.000000,82.800000,te +17.100000,82.800000,te +17.100000,82.900000,te +17.000000,82.900000,te +16.900000,82.900000,te +16.900000,82.800000,te +16.800000,82.800000,te +16.800000,82.900000,te +16.700000,82.900000,te +16.600000,82.800000,en +16.700000,82.800000,en +16.700000,82.700000,te +16.700000,82.600000,en +16.600000,82.600000,en +16.600000,82.700000,te +16.500000,82.600000,en +16.500000,82.700000,te +16.500000,82.800000,en +16.600000,82.900000,te +16.500000,82.900000,te +16.500000,83.000000,te +16.600000,83.000000,te +16.700000,83.000000,te +16.700000,83.100000,te +16.800000,83.200000,te +16.700000,83.200000,te +16.600000,83.200000,te +16.600000,83.100000,te +16.500000,83.100000,te +16.500000,83.200000,te +16.500000,83.300000,te +16.600000,83.300000,te +16.600000,83.400000,te +16.500000,83.400000,te +16.600000,83.500000,te +16.700000,83.500000,te +16.800000,83.500000,te +16.800000,83.400000,te +16.700000,83.400000,te +16.700000,83.300000,te +16.800000,83.300000,te +16.900000,83.300000,te +16.900000,83.400000,te +16.900000,83.500000,te +17.000000,83.500000,te +17.100000,83.500000,te +17.100000,83.400000,te +17.000000,83.400000,te +17.000000,83.300000,te +17.100000,83.300000,te +17.100000,83.200000,te +17.100000,83.100000,te +17.000000,83.100000,te +17.000000,83.200000,te +16.900000,83.200000,te +16.800000,83.100000,te +16.900000,83.100000,te +16.900000,83.000000,te +16.800000,83.000000,te +17.000000,83.000000,te +17.100000,83.000000,te +17.200000,83.000000,te +17.300000,83.000000,te +17.500000,83.000000,te +17.400000,83.000000,te +17.400000,83.100000,te +17.500000,83.100000,te +17.500000,83.200000,te +17.400000,83.200000,te +17.300000,83.200000,te +17.300000,83.100000,te +17.200000,83.100000,te +17.200000,83.200000,te +17.200000,83.300000,te +17.300000,83.300000,te +17.300000,83.400000,te +17.200000,83.400000,te +17.200000,83.500000,te +17.300000,83.500000,te +17.400000,83.500000,te +17.500000,83.500000,te +17.500000,83.400000,te +17.400000,83.400000,te +17.400000,83.300000,te +17.500000,83.300000,te +17.600000,83.300000,te +17.700000,83.300000,te +17.700000,83.400000,te +17.600000,83.400000,te +17.600000,83.500000,te +17.700000,83.500000,te +17.800000,83.500000,te +17.900000,83.500000,te +17.900000,83.400000,te +17.800000,83.400000,te +17.800000,83.300000,te +17.900000,83.300000,te +17.900000,83.200000,te +17.900000,83.100000,te +17.800000,83.100000,te +17.800000,83.200000,te +17.700000,83.200000,te +17.600000,83.200000,te +17.600000,83.100000,te +17.700000,83.100000,te +17.700000,83.000000,te +17.600000,83.000000,te +17.800000,83.000000,te +17.900000,83.000000,te +17.900000,82.900000,te +17.800000,82.900000,te +17.800000,82.800000,te +17.900000,82.800000,te +17.900000,82.700000,te +17.900000,82.600000,te +17.800000,82.600000,te +17.800000,82.700000,te +17.700000,82.700000,te +17.700000,82.600000,te +17.600000,82.600000,te +17.600000,82.700000,te +17.600000,82.800000,te +17.700000,82.800000,te +17.700000,82.900000,te +17.600000,82.900000,te +17.500000,82.900000,te +17.500000,82.800000,te +17.400000,82.800000,te +17.400000,82.900000,te +17.300000,82.900000,te +17.200000,82.900000,te +17.200000,82.800000,te +17.300000,82.800000,te +17.300000,82.700000,te +17.200000,82.700000,te +17.200000,82.600000,te +17.300000,82.600000,te +17.400000,82.600000,te +17.400000,82.700000,te +17.500000,82.700000,te +17.500000,82.600000,te +17.500000,82.500000,te +17.500000,82.400000,te +17.400000,82.400000,te +17.400000,82.500000,te +17.300000,82.500000,te +17.200000,82.500000,te +17.200000,82.400000,te +17.300000,82.400000,te +17.200000,82.300000,te +17.300000,82.300000,te +17.400000,82.300000,te +17.500000,82.300000,te +17.600000,82.300000,te +17.700000,82.300000,te +17.600000,82.400000,te +17.600000,82.500000,te +17.700000,82.500000,te +17.700000,82.400000,te +17.800000,82.400000,te +17.800000,82.500000,te +17.900000,82.500000,te +17.800000,82.300000,te +17.900000,82.300000,te +18.000000,82.300000,te +18.100000,82.300000,hi +18.200000,82.300000,hi +18.100000,82.400000,te +18.200000,82.400000,te +18.200000,82.500000,te +18.100000,82.500000,te +18.000000,82.500000,te +18.000000,82.400000,te +17.900000,82.400000,te +18.000000,82.600000,te +18.000000,82.700000,te +18.000000,82.800000,te +18.000000,82.900000,te +18.100000,82.900000,te +18.100000,82.800000,te +18.200000,82.900000,te +18.200000,82.800000,te +18.200000,82.700000,te +18.100000,82.700000,te +18.100000,82.600000,te +18.200000,82.600000,te +18.300000,82.600000,te +18.400000,82.600000,hi +18.400000,82.700000,te +18.300000,82.700000,te +18.300000,82.800000,te +18.300000,82.900000,te +18.400000,82.900000,te +18.400000,82.800000,te +18.500000,82.800000,hi +18.500000,82.900000,hi +18.600000,82.900000,hi +18.600000,82.800000,hi +18.600000,82.700000,hi +18.500000,82.700000,hi +18.500000,82.600000,hi +18.600000,82.600000,hi +18.600000,82.500000,hi +18.600000,82.400000,hi +18.500000,82.400000,hi +18.500000,82.500000,hi +18.400000,82.500000,hi +18.300000,82.500000,te +18.300000,82.400000,te +18.400000,82.400000,hi +18.300000,82.300000,hi +18.400000,82.300000,hi +18.500000,82.300000,hi +18.600000,82.300000,hi +18.700000,82.300000,hi +18.800000,82.300000,hi +18.700000,82.400000,hi +18.700000,82.500000,hi +18.800000,82.500000,hi +18.800000,82.400000,hi +18.900000,82.400000,hi +18.900000,82.500000,hi +19.000000,82.500000,hi +19.000000,82.400000,hi +18.900000,82.300000,hi +19.000000,82.300000,hi +19.100000,82.300000,hi +19.200000,82.300000,hi +19.300000,82.300000,hi +19.400000,82.300000,hi +19.300000,82.400000,hi +19.400000,82.400000,hi +19.400000,82.500000,hi +19.300000,82.500000,hi +19.200000,82.500000,hi +19.200000,82.400000,hi +19.100000,82.400000,hi +19.100000,82.500000,hi +19.100000,82.600000,hi +19.100000,82.700000,hi +19.200000,82.700000,hi +19.200000,82.600000,hi +19.300000,82.600000,hi +19.400000,82.600000,hi +19.400000,82.700000,hi +19.300000,82.700000,hi +19.300000,82.800000,hi +19.400000,82.800000,hi +19.400000,82.900000,hi +19.300000,82.900000,hi +19.200000,82.900000,hi +19.200000,82.800000,hi +19.100000,82.800000,hi +19.100000,82.900000,hi +19.000000,82.900000,hi +18.900000,82.900000,hi +18.900000,82.800000,hi +19.000000,82.800000,hi +19.000000,82.700000,hi +19.000000,82.600000,hi +18.900000,82.600000,hi +18.900000,82.700000,hi +18.800000,82.700000,hi +18.800000,82.600000,hi +18.700000,82.600000,hi +18.700000,82.700000,hi +18.700000,82.800000,hi +18.800000,82.800000,hi +18.800000,82.900000,hi +18.700000,82.900000,hi +18.800000,83.000000,hi +18.700000,83.000000,hi +18.700000,83.100000,hi +18.700000,83.200000,te +18.800000,83.200000,te +18.800000,83.100000,hi +18.900000,83.100000,hi +18.900000,83.200000,te +19.000000,83.200000,hi +19.000000,83.100000,hi +19.000000,83.000000,hi +18.900000,83.000000,hi +19.100000,83.000000,hi +19.200000,83.000000,hi +19.400000,83.000000,hi +19.300000,83.000000,hi +19.300000,83.100000,hi +19.400000,83.100000,hi +19.400000,83.200000,hi +19.300000,83.200000,hi +19.200000,83.200000,hi +19.200000,83.100000,hi +19.100000,83.100000,hi +19.100000,83.200000,hi +19.100000,83.300000,hi +19.100000,83.400000,hi +19.200000,83.400000,hi +19.200000,83.300000,hi +19.300000,83.300000,hi +19.400000,83.300000,hi +19.400000,83.400000,hi +19.300000,83.400000,hi +19.300000,83.500000,hi +19.400000,83.500000,hi +19.200000,83.500000,hi +19.100000,83.500000,hi +18.900000,83.500000,te +19.000000,83.500000,hi +19.000000,83.400000,hi +19.000000,83.300000,hi +18.900000,83.300000,te +18.900000,83.400000,te +18.800000,83.400000,te +18.800000,83.300000,te +18.700000,83.300000,te +18.700000,83.400000,te +18.700000,83.500000,te +18.800000,83.500000,te +18.600000,83.500000,te +18.400000,83.500000,te +18.500000,83.500000,te +18.500000,83.400000,te +18.400000,83.400000,te +18.400000,83.300000,te +18.500000,83.300000,te +18.600000,83.400000,te +18.600000,83.300000,te +18.600000,83.200000,te +18.500000,83.200000,te +18.500000,83.100000,te +18.600000,83.100000,te +18.600000,83.000000,hi +18.500000,83.000000,hi +18.400000,83.000000,te +18.300000,83.000000,te +18.400000,83.100000,te +18.400000,83.200000,te +18.300000,83.200000,te +18.200000,83.200000,te +18.200000,83.100000,te +18.300000,83.100000,te +18.200000,83.000000,te +18.100000,83.000000,te +18.000000,83.000000,te +18.000000,83.100000,te +18.100000,83.100000,te +18.100000,83.200000,te +18.000000,83.200000,te +18.000000,83.300000,te +18.000000,83.400000,te +18.100000,83.400000,te +18.100000,83.300000,te +18.200000,83.300000,te +18.300000,83.300000,te +18.300000,83.400000,te +18.200000,83.400000,te +18.200000,83.500000,te +18.300000,83.500000,te +18.100000,83.500000,te +18.000000,83.500000,te +18.000000,83.600000,te +18.000000,83.700000,te +18.100000,83.700000,te +18.100000,83.600000,te +18.200000,83.600000,te +18.300000,83.600000,te +18.300000,83.700000,te +18.200000,83.700000,te +18.200000,83.800000,te +18.300000,83.800000,te +18.300000,83.900000,te +18.200000,83.900000,te +18.100000,83.900000,te +18.100000,83.800000,te +18.000000,83.800000,te +18.000000,83.900000,te +18.000000,84.000000,te +18.100000,84.000000,te +18.100000,84.100000,te +18.000000,84.100000,te +18.000000,84.200000,te +18.100000,84.200000,te +18.200000,84.200000,te +18.300000,84.200000,te +18.300000,84.100000,te +18.200000,84.100000,te +18.200000,84.000000,te +18.300000,84.000000,te +18.400000,84.000000,te +18.500000,84.000000,te +18.500000,84.100000,te +18.400000,84.100000,te +18.400000,84.200000,te +18.500000,84.200000,te +18.600000,84.200000,te +18.700000,84.200000,te +18.700000,84.100000,te +18.600000,84.100000,te +18.600000,84.000000,te +18.700000,84.000000,te +18.700000,83.900000,te +18.700000,83.800000,te +18.600000,83.800000,te +18.600000,83.900000,te +18.500000,83.900000,te +18.400000,83.900000,te +18.400000,83.800000,te +18.500000,83.800000,te +18.500000,83.700000,te +18.400000,83.700000,te +18.400000,83.600000,te +18.500000,83.600000,te +18.600000,83.600000,te +18.600000,83.700000,te +18.700000,83.700000,te +18.700000,83.600000,te +18.800000,83.600000,te +18.800000,83.700000,te +18.800000,83.900000,te +18.800000,83.800000,te +18.900000,83.800000,te +18.900000,83.900000,te +19.000000,83.900000,hi +19.000000,83.800000,hi +19.000000,83.700000,te +18.900000,83.700000,te +18.900000,83.600000,te +19.000000,83.600000,hi +19.100000,83.600000,hi +19.100000,83.700000,hi +19.200000,83.700000,hi +19.200000,83.600000,hi +19.300000,83.600000,hi +19.400000,83.600000,hi +19.400000,83.700000,hi +19.300000,83.700000,hi +19.300000,83.800000,hi +19.400000,83.800000,hi +19.400000,83.900000,hi +19.300000,83.900000,hi +19.200000,83.900000,hi +19.200000,83.800000,hi +19.100000,83.800000,hi +19.100000,83.900000,hi +19.100000,84.000000,hi +19.100000,84.100000,te +19.200000,84.100000,hi +19.200000,84.000000,hi +19.300000,84.000000,hi +19.400000,84.000000,hi +19.400000,84.100000,hi +19.300000,84.100000,hi +19.400000,84.200000,hi +19.300000,84.200000,hi +19.200000,84.200000,hi +19.100000,84.200000,hi +19.000000,84.200000,te +19.000000,84.100000,te +19.000000,84.000000,hi +18.900000,84.100000,te +18.900000,84.000000,te +18.800000,84.000000,te +18.800000,84.100000,hi +18.900000,84.200000,te +18.800000,84.200000,te +18.800000,84.300000,te +18.900000,84.300000,te +18.900000,84.400000,te +18.800000,84.400000,te +18.800000,84.500000,te +18.800000,84.600000,te +18.900000,84.600000,te +18.900000,84.500000,te +19.000000,84.500000,te +19.000000,84.600000,te +19.100000,84.600000,hi +19.100000,84.500000,te +19.100000,84.400000,te +19.000000,84.400000,te +19.000000,84.300000,te +19.100000,84.300000,te +19.200000,84.400000,hi +19.200000,84.300000,hi +19.300000,84.300000,hi +19.400000,84.300000,hi +19.400000,84.400000,hi +19.300000,84.400000,hi +19.300000,84.500000,hi +19.400000,84.500000,hi +19.400000,84.600000,hi +19.300000,84.600000,hi +19.200000,84.500000,hi +19.200000,84.600000,hi +19.200000,84.700000,hi +19.300000,84.700000,hi +19.400000,84.700000,hi +19.400000,84.800000,hi +19.400000,84.900000,hi +19.300000,84.900000,hi +19.300000,84.800000,hi +19.200000,84.800000,hi +19.200000,84.900000,hi +19.100000,84.900000,hi +19.000000,84.900000,hi +19.000000,84.800000,te +19.100000,84.800000,hi +19.100000,84.700000,hi +19.000000,84.700000,te +18.900000,84.700000,te +18.800000,84.700000,te +18.800000,84.800000,te +18.900000,84.800000,te +18.900000,84.900000,te +18.800000,84.900000,hi +18.700000,84.900000,te +18.700000,84.800000,te +18.600000,84.800000,te +18.600000,84.900000,te +18.500000,84.900000,te +18.400000,84.900000,te +18.400000,84.800000,te +18.500000,84.800000,te +18.500000,84.700000,te +18.400000,84.700000,te +18.600000,84.700000,te +18.700000,84.700000,te +18.700000,84.600000,te +18.600000,84.600000,te +18.600000,84.500000,te +18.700000,84.500000,te +18.700000,84.400000,te +18.700000,84.300000,te +18.600000,84.300000,te +18.600000,84.400000,te +18.500000,84.400000,te +18.500000,84.300000,te +18.400000,84.300000,te +18.400000,84.400000,te +18.400000,84.500000,te +18.500000,84.500000,te +18.500000,84.600000,te +18.400000,84.600000,te +18.300000,84.600000,te +18.200000,84.600000,te +18.200000,84.500000,te +18.300000,84.500000,te +18.300000,84.400000,te +18.300000,84.300000,te +18.200000,84.300000,te +18.200000,84.400000,te +18.100000,84.400000,te +18.100000,84.300000,te +18.000000,84.300000,te +18.000000,84.400000,te +18.000000,84.500000,te +18.100000,84.500000,te +18.100000,84.600000,te +18.000000,84.600000,te +18.000000,84.700000,te +18.100000,84.700000,te +18.300000,84.700000,te +18.200000,84.700000,te +18.200000,84.800000,te +18.300000,84.800000,te +18.300000,84.900000,te +18.200000,84.900000,te +18.100000,84.900000,te +18.100000,84.800000,te +18.000000,84.800000,te +18.000000,84.900000,te +17.900000,84.800000,te +17.900000,84.700000,te +17.800000,84.700000,te +17.400000,84.300000,te +17.500000,84.400000,te +17.500000,84.300000,te +17.600000,84.300000,te +17.700000,84.300000,te +17.700000,84.400000,te +17.600000,84.400000,te +17.600000,84.500000,te +17.700000,84.600000,te +17.700000,84.500000,te +17.800000,84.500000,te +17.800000,84.600000,te +17.900000,84.600000,te +17.900000,84.500000,te +17.900000,84.400000,te +17.800000,84.400000,te +17.800000,84.300000,te +17.900000,84.300000,te +17.900000,84.200000,te +17.800000,84.200000,te +17.700000,84.200000,te +17.600000,84.200000,te +17.700000,84.100000,te +17.600000,84.100000,te +17.600000,84.000000,te +17.700000,84.000000,te +17.800000,84.000000,te +17.800000,84.100000,te +17.900000,84.100000,te +17.900000,84.000000,te +17.900000,83.900000,te +17.800000,83.900000,te +17.800000,83.800000,te +17.900000,83.800000,te +17.900000,83.700000,te +17.900000,83.600000,te +17.800000,83.600000,te +17.800000,83.700000,te +17.700000,83.700000,te +17.700000,83.600000,te +17.600000,83.600000,te +17.600000,83.700000,te +17.600000,83.800000,te +17.700000,83.800000,te +17.700000,83.900000,te +17.600000,83.900000,te +17.500000,83.900000,te +17.400000,83.900000,te +17.400000,83.800000,te +17.500000,83.800000,te +17.500000,83.700000,te +17.500000,83.600000,te +17.400000,83.600000,te +17.400000,83.700000,te +17.300000,83.700000,te +17.300000,83.600000,te +17.200000,83.600000,te +17.200000,83.700000,te +17.200000,83.800000,te +17.300000,83.800000,te +17.300000,83.900000,te +17.200000,83.900000,te +17.300000,84.100000,te +17.300000,84.000000,te +17.400000,84.000000,te +17.500000,84.000000,te +17.500000,84.100000,te +17.400000,84.100000,te +17.500000,84.200000,te +17.400000,84.200000,te +17.300000,84.200000,te +17.100000,84.000000,te +17.200000,84.100000,te +17.200000,84.000000,te +17.100000,83.900000,te +17.100000,83.800000,te +17.100000,83.700000,te +17.100000,83.600000,te +17.000000,83.700000,te +17.000000,83.600000,te +16.900000,83.600000,te +16.900000,83.700000,te +16.900000,83.800000,te +17.000000,83.800000,te +17.000000,83.900000,te +16.800000,83.700000,te +16.800000,83.600000,te +16.700000,83.600000,te +16.400000,83.300000,te +16.400000,83.200000,te +16.400000,83.100000,te +16.300000,83.100000,te +16.300000,83.200000,te +16.200000,83.100000,te +16.200000,83.000000,te +16.100000,83.000000,te +16.300000,83.000000,te +16.400000,83.000000,te +16.400000,82.900000,te +16.300000,82.900000,te +16.300000,82.800000,en +16.400000,82.800000,en +16.400000,82.700000,te +16.400000,82.600000,te +16.300000,82.600000,te +16.300000,82.700000,te +16.200000,82.700000,en +16.200000,82.600000,te +16.100000,82.600000,te +16.100000,82.700000,en +16.100000,82.800000,te +16.200000,82.800000,te +16.200000,82.900000,te +16.100000,82.900000,te +16.000000,82.800000,te +15.900000,82.600000,en +16.000000,82.700000,en +16.000000,82.600000,en +16.000000,82.500000,te +16.000000,82.400000,te +15.900000,82.400000,te +15.900000,82.500000,te +15.800000,82.300000,en +15.900000,82.300000,te +16.000000,82.300000,te +16.100000,82.300000,en +16.200000,82.300000,en +16.100000,82.400000,en +16.100000,82.500000,te +16.200000,82.500000,te +16.200000,82.400000,en +16.300000,82.400000,en +16.300000,82.500000,en +16.400000,82.500000,en +16.300000,82.300000,te +16.300000,82.200000,te +16.300000,82.100000,te +16.200000,82.100000,te +16.200000,82.200000,te +16.100000,82.200000,te +16.100000,82.100000,te +16.100000,82.000000,en +16.100000,81.900000,te +16.200000,81.900000,te +16.200000,82.000000,te +16.300000,82.000000,te +16.300000,81.900000,te +16.300000,81.800000,te +16.200000,81.800000,te +16.200000,81.700000,te +16.300000,81.700000,te +16.300000,81.600000,te +16.200000,81.600000,te +16.100000,81.600000,hi +16.000000,81.600000,te +16.000000,81.700000,te +16.100000,81.700000,hi +16.100000,81.800000,hi +16.000000,81.800000,te +15.900000,81.800000,te +15.900000,81.700000,te +15.900000,81.600000,te +15.800000,81.600000,te +15.700000,81.600000,te +15.700000,81.700000,te +15.800000,81.700000,hi +15.800000,81.800000,hi +15.700000,81.800000,te +15.700000,81.900000,te +15.700000,82.000000,te +15.800000,82.000000,hi +15.800000,81.900000,hi +15.900000,81.900000,te +16.000000,81.900000,te +16.000000,82.000000,te +15.900000,82.000000,te +15.900000,82.100000,te +16.000000,82.100000,te +16.000000,82.200000,te +15.900000,82.200000,te +15.800000,82.200000,hi +15.800000,82.100000,hi +15.700000,82.100000,te +15.600000,81.900000,te +15.500000,81.700000,te +15.600000,81.800000,te +15.600000,81.700000,te +15.500000,81.600000,te +15.600000,81.600000,en +15.600000,81.500000,te +15.500000,81.500000,te +15.500000,81.400000,te +15.600000,81.400000,te +15.600000,81.300000,te +15.600000,81.200000,te +15.500000,81.200000,te +15.500000,81.300000,te +15.400000,81.300000,te +15.400000,81.200000,en +15.300000,81.200000,en +15.300000,81.300000,te +15.400000,81.400000,te +15.400000,81.500000,te +15.200000,81.000000,te +15.000000,80.900000,te +15.100000,80.900000,te +15.200000,80.900000,te +15.400000,80.900000,te +15.300000,80.900000,te +15.300000,81.000000,hi +15.300000,81.100000,en +15.400000,81.100000,en +15.400000,81.000000,hi +15.500000,81.000000,te +15.500000,81.100000,te +15.600000,81.100000,te +15.500000,80.900000,te +15.600000,80.900000,te +15.700000,80.900000,te +15.900000,80.900000,te +15.800000,80.900000,te +15.800000,81.000000,te +15.900000,81.000000,te +15.900000,81.100000,te +15.800000,81.100000,te +15.700000,81.100000,te +15.700000,81.000000,te +15.600000,81.000000,te +15.700000,81.200000,te +15.700000,81.300000,te +15.700000,81.400000,te +15.700000,81.500000,te +15.800000,81.500000,te +15.800000,81.400000,te +15.900000,81.500000,te +15.900000,81.400000,te +15.900000,81.300000,te +15.800000,81.300000,te +15.800000,81.200000,te +15.900000,81.200000,te +16.000000,81.200000,te +16.100000,81.200000,te +16.100000,81.300000,te +16.000000,81.300000,te +16.000000,81.400000,te +16.000000,81.500000,te +16.100000,81.500000,hi +16.100000,81.400000,te +16.200000,81.400000,te +16.200000,81.500000,te +16.300000,81.500000,te +16.300000,81.400000,te +16.300000,81.300000,te +16.200000,81.300000,te +16.200000,81.200000,te +16.300000,81.200000,te +16.300000,81.100000,te +16.300000,81.000000,te +16.200000,81.000000,te +16.200000,81.100000,te +16.100000,81.100000,te +16.000000,81.100000,te +16.000000,81.000000,te +16.100000,81.000000,te +16.100000,80.900000,te +16.000000,80.900000,te +16.200000,80.900000,te +16.300000,80.900000,te +16.300000,80.800000,te +16.200000,80.800000,te +16.200000,80.700000,te +16.300000,80.700000,te +16.300000,80.600000,te +16.300000,80.500000,te +16.200000,80.500000,te +16.200000,80.600000,te +16.100000,80.600000,te +16.100000,80.500000,te +16.000000,80.500000,te +16.000000,80.600000,te +16.000000,80.700000,te +16.100000,80.700000,te +16.100000,80.800000,te +16.000000,80.800000,te +15.900000,80.800000,te +15.900000,80.700000,te +15.800000,80.700000,te +15.800000,80.800000,te +15.700000,80.800000,te +15.600000,80.800000,te +15.600000,80.700000,hi +15.700000,80.700000,te +15.700000,80.600000,te +15.600000,80.600000,te +15.600000,80.500000,te +15.700000,80.500000,te +15.800000,80.500000,te +15.800000,80.600000,te +15.900000,80.600000,te +15.900000,80.500000,te +15.900000,80.400000,te +15.900000,80.300000,te +15.800000,80.300000,te +15.800000,80.400000,te +15.700000,80.400000,te +15.600000,80.400000,te +15.600000,80.300000,te +15.700000,80.300000,te +15.700000,80.200000,te +15.600000,80.200000,te +15.600000,80.100000,te +15.700000,80.100000,te +15.800000,80.100000,te +15.800000,80.200000,te +15.900000,80.200000,te +15.900000,80.100000,te +16.000000,80.100000,te +16.100000,80.100000,te +16.100000,80.200000,te +16.000000,80.200000,te +16.000000,80.300000,te +16.000000,80.400000,te +16.100000,80.400000,te +16.100000,80.300000,te +16.200000,80.300000,te +16.200000,80.400000,te +16.300000,80.400000,te +16.300000,80.300000,te +16.300000,80.200000,te +16.200000,80.200000,te +16.200000,80.100000,te +16.300000,80.100000,te +16.200000,80.000000,te +16.000000,80.000000,te +16.100000,80.000000,te +16.100000,79.900000,te +16.000000,79.900000,te +16.000000,79.800000,te +16.100000,79.800000,te +16.200000,79.900000,te +16.200000,79.800000,te +16.200000,79.700000,te +16.100000,79.700000,te +16.100000,79.600000,te +16.200000,79.600000,te +16.200000,79.500000,te +16.200000,79.400000,te +16.100000,79.400000,te +16.100000,79.500000,te +16.000000,79.500000,te +16.000000,79.400000,te +15.900000,79.400000,te +16.000000,79.600000,te +16.000000,79.700000,te +15.900000,79.700000,te +15.800000,79.700000,te +15.800000,79.600000,te +15.900000,79.600000,te +15.900000,79.500000,te +15.800000,79.400000,te +15.800000,79.500000,te +15.700000,79.500000,te +15.700000,79.400000,te +15.600000,79.400000,te +15.600000,79.500000,te +15.600000,79.600000,te +15.700000,79.600000,te +15.700000,79.700000,te +15.600000,79.700000,te +15.600000,79.800000,te +15.600000,79.900000,te +15.700000,79.900000,te +15.700000,79.800000,te +15.800000,79.800000,te +15.900000,79.800000,te +15.900000,79.900000,te +15.800000,79.900000,te +15.800000,80.000000,te +15.900000,80.000000,te +15.700000,80.000000,te +15.600000,80.000000,te +15.500000,80.000000,te +15.400000,80.000000,te +15.200000,80.000000,te +15.300000,80.000000,te +15.300000,79.900000,te +15.200000,79.900000,te +15.200000,79.800000,te +15.300000,79.800000,te +15.400000,79.800000,te +15.400000,79.900000,te +15.500000,79.900000,te +15.500000,79.800000,te +15.500000,79.700000,te +15.400000,79.700000,te +15.400000,79.600000,te +15.500000,79.600000,te +15.500000,79.500000,te +15.500000,79.400000,te +15.400000,79.400000,te +15.400000,79.500000,te +15.300000,79.500000,te +15.300000,79.400000,te +15.200000,79.400000,te +15.200000,79.500000,te +15.200000,79.600000,te +15.300000,79.600000,te +15.300000,79.700000,te +15.200000,79.700000,te +15.100000,79.700000,te +15.000000,79.700000,te +15.000000,79.600000,te +15.100000,79.600000,te +15.100000,79.500000,te +15.100000,79.400000,te +15.000000,79.400000,te +15.000000,79.500000,te +14.900000,79.500000,te +14.900000,79.400000,te +14.800000,79.400000,te +14.800000,79.500000,te +14.800000,79.600000,te +14.900000,79.600000,te +14.900000,79.700000,te +14.900000,79.900000,te +14.900000,79.800000,te +15.000000,79.800000,te +15.100000,79.800000,te +15.100000,79.900000,te +15.000000,79.900000,te +15.000000,80.000000,te +15.100000,80.000000,te +14.900000,80.000000,te +14.900000,80.100000,te +15.000000,80.100000,te +15.000000,80.200000,te +14.900000,80.200000,te +14.900000,80.300000,te +14.900000,80.400000,te +15.000000,80.400000,te +15.000000,80.300000,en +15.100000,80.300000,en +15.100000,80.400000,te +15.200000,80.400000,te +15.100000,80.200000,te +15.100000,80.100000,te +15.200000,80.100000,te +15.200000,80.200000,te +15.300000,80.200000,te +15.300000,80.100000,te +15.400000,80.100000,te +15.500000,80.100000,te +15.500000,80.200000,te +15.400000,80.200000,te +15.400000,80.300000,te +15.500000,80.300000,te +15.500000,80.400000,te +15.400000,80.400000,te +15.300000,80.400000,te +15.300000,80.300000,te +15.200000,80.300000,te +15.300000,80.600000,te +15.300000,80.500000,te +15.400000,80.500000,te +15.500000,80.500000,te +15.500000,80.600000,te +15.400000,80.600000,te +15.400000,80.700000,te +15.500000,80.700000,te +15.500000,80.800000,te +15.400000,80.800000,te +15.300000,80.700000,te +15.300000,80.800000,te +15.200000,80.800000,te +15.100000,80.800000,te +15.100000,80.700000,te +15.200000,80.700000,te +15.200000,80.600000,te +15.200000,80.500000,te +15.100000,80.500000,te +15.100000,80.600000,te +15.000000,80.600000,te +15.000000,80.500000,te +14.900000,80.500000,te +14.900000,80.600000,te +14.900000,80.700000,te +15.000000,80.700000,te +15.000000,80.800000,te +14.900000,80.800000,te +14.800000,80.800000,te +14.700000,80.800000,te +14.700000,80.700000,te +14.800000,80.700000,te +14.800000,80.600000,te +14.800000,80.500000,te +14.700000,80.500000,te +14.700000,80.600000,te +14.600000,80.600000,te +14.600000,80.500000,te +14.500000,80.500000,te +14.500000,80.600000,te +14.500000,80.700000,te +14.600000,80.700000,te +14.600000,80.800000,te +14.500000,80.800000,te +14.400000,80.800000,te +14.400000,80.700000,te +14.300000,80.700000,te +14.300000,80.800000,te +14.200000,80.800000,te +14.200000,80.700000,te +14.200000,80.600000,te +14.100000,80.500000,te +14.200000,80.500000,te +14.300000,80.500000,te +14.300000,80.600000,te +14.400000,80.600000,te +14.400000,80.500000,te +14.400000,80.400000,te +14.400000,80.300000,te +14.300000,80.300000,te +14.300000,80.400000,te +14.200000,80.400000,te +14.100000,80.400000,en +14.100000,80.300000,te +14.200000,80.300000,te +14.200000,80.200000,te +14.100000,80.200000,te +14.100000,80.100000,te +14.200000,80.100000,te +14.300000,80.100000,te +14.300000,80.200000,te +14.400000,80.200000,te +14.400000,80.100000,te +14.500000,80.100000,te +14.600000,80.100000,te +14.600000,80.200000,te +14.500000,80.200000,te +14.500000,80.300000,te +14.500000,80.400000,te +14.600000,80.400000,te +14.600000,80.300000,te +14.700000,80.300000,te +14.700000,80.400000,te +14.800000,80.400000,te +14.800000,80.300000,te +14.800000,80.200000,te +14.700000,80.200000,te +14.700000,80.100000,te +14.800000,80.100000,te +14.800000,80.000000,te +14.700000,80.000000,te +14.500000,80.000000,te +14.600000,80.000000,te +14.600000,79.900000,te +14.500000,79.900000,te +14.500000,79.800000,te +14.600000,79.800000,te +14.700000,79.800000,te +14.700000,79.900000,te +14.800000,79.900000,te +14.800000,79.800000,te +14.800000,79.700000,te +14.700000,79.700000,te +14.700000,79.600000,te +14.700000,79.500000,te +14.700000,79.400000,te +14.600000,79.500000,te +14.600000,79.400000,te +14.500000,79.400000,te +14.500000,79.500000,te +14.500000,79.600000,te +14.600000,79.600000,te +14.600000,79.700000,te +14.500000,79.700000,te +14.400000,79.700000,te +14.300000,79.700000,te +14.300000,79.600000,te +14.400000,79.600000,te +14.400000,79.500000,te +14.400000,79.400000,te +14.300000,79.400000,te +14.300000,79.500000,te +14.200000,79.500000,te +14.200000,79.400000,te +14.100000,79.400000,te +14.100000,79.500000,te +14.100000,79.600000,te +14.200000,79.600000,te +14.200000,79.700000,te +14.100000,79.700000,te +14.100000,79.800000,te +14.100000,79.900000,te +14.200000,79.900000,te +14.200000,79.800000,te +14.300000,79.800000,te +14.400000,79.800000,te +14.400000,79.900000,te +14.300000,79.900000,te +14.300000,80.000000,te +14.400000,80.000000,te +14.200000,80.000000,te +14.100000,80.000000,te +14.000000,80.000000,te +13.900000,80.000000,te +13.800000,80.000000,te +13.800000,79.900000,te +13.800000,79.800000,te +13.900000,79.800000,te +13.900000,79.900000,te +14.000000,79.900000,te +14.000000,79.800000,te +14.000000,79.700000,te +13.900000,79.700000,te +13.900000,79.600000,te +14.000000,79.600000,te +14.000000,79.500000,te +14.000000,79.400000,te +13.900000,79.400000,te +13.900000,79.500000,te +13.800000,79.500000,te +13.800000,79.400000,te +13.700000,79.400000,te +13.700000,79.500000,te +13.700000,79.600000,te +13.800000,79.600000,te +13.800000,79.700000,te +13.700000,79.700000,te +13.600000,79.700000,te +13.600000,79.600000,te +13.600000,79.500000,te +13.600000,79.400000,te +13.500000,79.500000,te +13.500000,79.400000,te +13.400000,79.400000,te +13.400000,79.500000,te +13.400000,79.600000,te +13.500000,79.600000,te +13.500000,79.700000,te +13.400000,79.700000,ta +13.400000,79.800000,ta +13.400000,79.900000,ta +13.500000,79.900000,ta +13.500000,79.800000,te +13.600000,79.800000,te +13.700000,79.800000,te +13.700000,79.900000,te +13.600000,79.900000,te +13.600000,80.000000,ta +13.700000,80.000000,te +13.500000,80.000000,ta +13.400000,80.000000,ta +13.400000,80.100000,ta +13.500000,80.100000,ta +13.500000,80.200000,ta +13.400000,80.200000,ta +13.400000,80.300000,ta +13.400000,80.400000,ta +13.500000,80.400000,ta +13.500000,80.300000,ta +13.600000,80.300000,ta +13.600000,80.400000,ta +13.700000,80.400000,hi +13.700000,80.300000,ta +13.700000,80.200000,hi +13.600000,80.200000,ta +13.600000,80.100000,ta +13.700000,80.100000,te +13.800000,80.100000,te +13.800000,80.200000,te +13.900000,80.200000,te +13.900000,80.100000,te +14.000000,80.100000,te +14.000000,80.200000,te +14.000000,80.300000,te +14.000000,80.400000,en +13.900000,80.400000,hi +13.900000,80.300000,te +13.800000,80.300000,te +13.800000,80.400000,hi +13.800000,80.500000,ta +13.800000,80.600000,ta +13.900000,80.600000,ta +13.900000,80.500000,ta +14.000000,80.500000,te +14.100000,80.600000,te +14.000000,80.600000,te +14.000000,80.700000,ta +14.100000,80.700000,te +14.100000,80.800000,te +14.000000,80.800000,ta +13.900000,80.800000,ta +13.900000,80.700000,ta +13.800000,80.700000,ta +13.800000,80.800000,ta +13.700000,80.800000,ta +13.600000,80.800000,ta +13.600000,80.700000,ta +13.700000,80.700000,ta +13.700000,80.600000,ta +13.700000,80.500000,ta +13.600000,80.500000,ta +13.600000,80.600000,ta +13.500000,80.600000,ta +13.500000,80.500000,ta +13.400000,80.500000,ta +13.400000,80.600000,ta +13.400000,80.700000,ta +13.500000,80.700000,ta +13.500000,80.800000,ta +13.400000,80.800000,ta +13.300000,80.800000,ta +13.200000,80.800000,ta +13.200000,80.700000,ta +13.300000,80.700000,ta +13.300000,80.600000,ta +13.300000,80.500000,ta +13.200000,80.500000,ta +13.200000,80.600000,ta +13.100000,80.600000,ta +13.100000,80.500000,ta +13.000000,80.500000,ta +13.100000,80.700000,ta +13.100000,80.800000,ta +13.000000,80.800000,ta +13.000000,80.700000,ta +12.900000,80.700000,ta +12.900000,80.800000,ta +12.800000,80.800000,ta +12.700000,80.800000,ta +12.700000,80.700000,ta +12.800000,80.700000,ta +12.800000,80.600000,ta +12.700000,80.600000,ta +12.700000,80.500000,ta +12.800000,80.500000,ta +12.900000,80.500000,ta +12.900000,80.600000,ta +13.000000,80.600000,ta +12.900000,80.300000,ta +12.900000,80.400000,ta +12.800000,80.400000,ta +12.700000,80.400000,ta +12.700000,80.300000,ta +12.800000,80.300000,ta +12.800000,80.200000,ta +12.700000,80.200000,ta +12.700000,80.100000,ta +12.800000,80.100000,ta +12.900000,80.200000,ta +12.900000,80.100000,ta +13.000000,80.100000,ta +13.100000,80.100000,ta +13.100000,80.200000,ta +13.000000,80.200000,ta +13.000000,80.300000,ta +13.000000,80.400000,ta +13.100000,80.400000,ta +13.100000,80.300000,ta +13.200000,80.300000,ta +13.200000,80.400000,ta +13.300000,80.400000,ta +13.300000,80.300000,ta +13.300000,80.200000,ta +13.200000,80.200000,ta +13.200000,80.100000,ta +13.300000,80.100000,ta +13.300000,80.000000,ta +13.200000,80.000000,ta +13.000000,80.000000,ta +13.100000,80.000000,ta +13.100000,79.900000,ta +13.000000,79.900000,ta +13.000000,79.800000,ta +13.100000,79.800000,ta +13.200000,79.800000,ta +13.200000,79.900000,ta +13.300000,79.900000,ta +13.300000,79.800000,ta +13.300000,79.700000,ta +13.200000,79.700000,ta +13.200000,79.600000,ta +13.300000,79.600000,ta +13.300000,79.500000,ta +13.300000,79.400000,ta +13.200000,79.400000,ta +13.200000,79.500000,ta +13.100000,79.500000,ta +13.100000,79.400000,ta +13.000000,79.400000,ta +13.000000,79.500000,ta +13.000000,79.600000,ta +13.100000,79.600000,ta +13.100000,79.700000,ta +13.000000,79.700000,ta +12.900000,79.700000,ta +12.800000,79.700000,ta +12.800000,79.600000,ta +12.900000,79.600000,ta +12.900000,79.500000,ta +12.900000,79.400000,ta +12.800000,79.400000,ta +12.800000,79.500000,ta +12.700000,79.500000,ta +12.700000,79.400000,ta +12.600000,79.400000,ta +12.600000,79.500000,ta +12.700000,79.600000,ta +12.700000,79.700000,ta +12.700000,79.800000,ta +12.700000,79.900000,ta +12.800000,79.800000,ta +12.900000,79.800000,ta +12.900000,79.900000,ta +12.800000,79.900000,ta +12.800000,80.000000,ta +12.900000,80.000000,ta +12.700000,80.000000,ta +12.600000,80.000000,ta +12.500000,80.000000,ta +12.300000,80.000000,ta +12.400000,80.000000,ta +12.400000,79.900000,ta +12.300000,79.900000,ta +12.300000,79.800000,ta +12.400000,79.800000,ta +12.500000,79.800000,ta +12.500000,79.900000,ta +12.600000,79.900000,ta +12.600000,79.800000,ta +12.600000,79.700000,ta +12.500000,79.700000,ta +12.500000,79.600000,ta +12.600000,79.600000,ta +12.500000,79.400000,ta +12.500000,79.500000,ta +12.400000,79.500000,ta +12.400000,79.400000,ta +12.300000,79.400000,ta +12.300000,79.500000,ta +12.300000,79.600000,ta +12.400000,79.600000,ta +12.400000,79.700000,ta +12.300000,79.700000,ta +12.200000,79.700000,ta +12.100000,79.700000,ta +12.100000,79.600000,ta +12.200000,79.600000,ta +12.200000,79.500000,ta +12.200000,79.400000,ta +12.100000,79.400000,ta +12.100000,79.500000,ta +12.000000,79.500000,ta +12.000000,79.400000,ta +11.900000,79.400000,ta +11.900000,79.500000,ta +11.900000,79.600000,ta +12.000000,79.600000,ta +12.000000,79.700000,ta +11.900000,79.700000,ta +11.900000,79.800000,ta +11.900000,79.900000,ta +12.000000,79.900000,ta +12.000000,79.800000,ta +12.100000,79.800000,ta +12.200000,79.800000,ta +12.200000,79.900000,ta +12.100000,79.900000,ta +12.100000,80.000000,ta +12.200000,80.000000,ta +12.000000,80.000000,ta +11.900000,80.000000,ta +11.900000,80.100000,ta +12.000000,80.100000,ta +12.000000,80.200000,ta +12.000000,80.400000,ta +12.000000,80.300000,ta +12.100000,80.300000,ta +12.100000,80.400000,ta +12.200000,80.400000,ta +12.200000,80.300000,ta +12.200000,80.200000,ta +12.100000,80.200000,ta +12.100000,80.100000,ta +12.200000,80.100000,ta +12.300000,80.100000,ta +12.300000,80.200000,ta +12.400000,80.200000,ta +12.400000,80.100000,ta +12.500000,80.100000,ta +12.600000,80.100000,ta +12.600000,80.200000,ta +12.500000,80.200000,ta +12.500000,80.300000,ta +12.600000,80.300000,ta +12.600000,80.400000,ta +12.500000,80.400000,ta +12.400000,80.400000,ta +12.400000,80.300000,ta +12.300000,80.300000,ta +12.300000,80.400000,ta +12.300000,80.500000,ta +12.300000,80.600000,ta +12.400000,80.600000,ta +12.400000,80.500000,ta +12.500000,80.500000,ta +12.600000,80.500000,ta +12.600000,80.600000,ta +12.500000,80.600000,ta +12.500000,80.700000,ta +12.600000,80.700000,ta +12.600000,80.800000,ta +12.500000,80.800000,ta +12.400000,80.800000,ta +12.400000,80.700000,ta +12.300000,80.700000,ta +12.300000,80.800000,ta +12.200000,80.800000,ta +12.100000,80.700000,ta +12.200000,80.700000,ta +12.200000,80.600000,ta +12.200000,80.500000,ta +12.100000,80.500000,ta +12.100000,80.600000,ta +12.000000,80.500000,ta +12.000000,80.600000,ta +12.000000,80.700000,ta +12.100000,80.800000,ta +12.000000,80.800000,ta +11.900000,80.800000,ta +11.800000,80.800000,ta +11.800000,80.700000,ta +11.900000,80.700000,ta +11.900000,80.600000,ta +11.900000,80.500000,ta +11.800000,80.500000,ta +11.800000,80.600000,ta +11.700000,80.600000,ta +11.700000,80.500000,ta +11.600000,80.500000,ta +11.600000,80.600000,ta +11.600000,80.700000,ta +11.700000,80.700000,ta +11.700000,80.800000,ta +11.600000,80.800000,ta +11.500000,80.800000,ta +11.500000,80.700000,ta +11.400000,80.700000,ta +11.400000,80.800000,ta +11.300000,80.800000,ta +11.200000,80.700000,ta +11.300000,80.700000,ta +11.300000,80.600000,ta +11.200000,80.600000,ta +11.200000,80.500000,ta +11.300000,80.500000,ta +11.400000,80.500000,ta +11.400000,80.600000,ta +11.500000,80.600000,ta +11.500000,80.500000,ta +11.500000,80.400000,ta +11.500000,80.300000,ta +11.400000,80.300000,ta +11.400000,80.400000,ta +11.300000,80.400000,ta +11.200000,80.400000,ta +11.200000,80.300000,ta +11.300000,80.300000,ta +11.300000,80.200000,ta +11.200000,80.200000,ta +11.200000,80.100000,ta +11.300000,80.100000,ta +11.400000,80.100000,ta +11.400000,80.200000,ta +11.500000,80.200000,ta +11.500000,80.100000,ta +11.600000,80.100000,ta +11.700000,80.100000,ta +11.700000,80.200000,ta +11.600000,80.200000,ta +11.600000,80.300000,ta +11.600000,80.400000,ta +11.700000,80.400000,ta +11.700000,80.300000,ta +11.800000,80.300000,ta +11.800000,80.400000,ta +11.900000,80.400000,ta +11.900000,80.300000,ta +11.900000,80.200000,ta +11.800000,80.200000,ta +11.800000,80.100000,ta +11.800000,80.000000,ta +11.600000,80.000000,ta +11.700000,80.000000,ta +11.700000,79.900000,ta +11.600000,79.900000,ta +11.600000,79.800000,ta +11.700000,79.800000,ta +11.800000,79.900000,ta +11.800000,79.800000,ta +11.800000,79.700000,ta +11.700000,79.600000,ta +11.800000,79.600000,ta +11.800000,79.500000,ta +11.800000,79.400000,ta +11.700000,79.400000,ta +11.700000,79.500000,ta +11.600000,79.400000,ta +11.600000,79.500000,ta +11.600000,79.600000,ta +11.700000,79.700000,ta +11.600000,79.700000,ta +11.500000,79.700000,ta +11.400000,79.700000,ta +11.400000,79.600000,ta +11.500000,79.600000,ta +11.500000,79.500000,ta +11.500000,79.400000,ta +11.400000,79.400000,ta +11.400000,79.500000,ta +11.300000,79.500000,ta +11.300000,79.400000,ta +11.200000,79.400000,ta +11.200000,79.500000,ta +11.200000,79.600000,ta +11.300000,79.600000,ta +11.300000,79.700000,ta +11.200000,79.700000,ta +11.200000,79.800000,ta +11.200000,79.900000,ta +11.300000,79.900000,ta +11.300000,79.800000,ta +11.400000,79.800000,ta +11.500000,79.800000,ta +11.500000,79.900000,ta +11.400000,79.900000,ta +11.400000,80.000000,ta +11.500000,80.000000,ta +11.300000,80.000000,ta +11.200000,80.000000,ta +11.100000,80.000000,ta +11.000000,80.000000,ta +10.900000,80.000000,ta +10.900000,79.900000,ta +10.900000,79.800000,ta +11.000000,79.800000,ta +11.000000,79.900000,ta +11.100000,79.900000,ta +11.100000,79.800000,ta +11.100000,79.700000,ta +11.000000,79.700000,ta +11.000000,79.600000,ta +11.100000,79.600000,ta +11.100000,79.500000,ta +11.100000,79.400000,ta +11.000000,79.400000,ta +11.000000,79.500000,ta +10.900000,79.500000,ta +10.900000,79.400000,ta +10.800000,79.400000,ta +10.900000,79.600000,ta +10.900000,79.700000,ta +10.800000,79.700000,ta +10.700000,79.700000,ta +10.700000,79.600000,ta +10.800000,79.600000,ta +10.800000,79.500000,ta +10.700000,79.400000,ta +10.700000,79.500000,ta +10.600000,79.500000,ta +10.600000,79.400000,ta +10.500000,79.400000,ta +10.500000,79.500000,ta +10.500000,79.600000,ta +10.600000,79.600000,ta +10.600000,79.700000,ta +10.500000,79.700000,ta +10.500000,79.800000,ta +10.500000,79.900000,ta +10.600000,79.900000,ta +10.600000,79.800000,ta +10.700000,79.800000,ta +10.800000,79.800000,ta +10.800000,79.900000,ta +10.700000,79.900000,ta +10.700000,80.000000,ta +10.800000,80.000000,ta +10.600000,80.000000,ta +10.500000,80.000000,ta +10.500000,80.100000,ta +10.600000,80.100000,ta +10.600000,80.200000,ta +10.500000,80.200000,ta +10.500000,80.300000,ta +10.500000,80.400000,ta +10.600000,80.400000,ta +10.600000,80.300000,ta +10.700000,80.300000,ta +10.700000,80.400000,ta +10.800000,80.400000,ta +10.800000,80.300000,ta +10.800000,80.200000,ta +10.700000,80.200000,ta +10.700000,80.100000,ta +10.800000,80.100000,ta +10.900000,80.100000,ta +10.900000,80.200000,ta +11.000000,80.200000,ta +11.000000,80.100000,ta +11.100000,80.100000,ta +11.100000,80.200000,ta +11.100000,80.300000,ta +11.100000,80.400000,ta +11.000000,80.400000,ta +11.000000,80.300000,ta +10.900000,80.300000,ta +10.900000,80.400000,ta +10.900000,80.500000,ta +10.900000,80.600000,ta +11.000000,80.600000,ta +11.000000,80.500000,ta +11.100000,80.500000,ta +11.100000,80.600000,ta +11.100000,80.700000,ta +11.200000,80.800000,ta +11.100000,80.800000,ta +11.000000,80.800000,ta +11.000000,80.700000,ta +10.900000,80.700000,ta +10.900000,80.800000,ta +10.800000,80.800000,ta +10.700000,80.800000,ta +10.700000,80.700000,ta +10.800000,80.700000,ta +10.800000,80.600000,ta +10.800000,80.500000,ta +10.700000,80.500000,ta +10.700000,80.600000,ta +10.600000,80.600000,ta +10.600000,80.500000,ta +10.500000,80.500000,ta +10.500000,80.600000,ta +10.500000,80.700000,ta +10.600000,80.700000,ta +10.600000,80.800000,ta +10.500000,80.800000,ta +10.500000,80.900000,en +8.800000,79.400000,ta +8.900000,79.400000,en +9.000000,79.500000,en +9.000000,79.400000,en +9.100000,79.400000,ta +9.200000,79.400000,ta +9.200000,79.500000,ta +9.100000,79.500000,ta +9.200000,79.600000,en +9.300000,79.600000,en +9.300000,79.500000,ta +9.300000,79.400000,ta +9.400000,79.400000,ta +10.400000,80.800000,ta +10.400000,80.700000,ta +10.400000,80.600000,ta +10.300000,80.500000,en +10.400000,80.500000,ta +10.400000,80.400000,ta +10.400000,80.300000,ta +10.300000,80.300000,en +10.300000,80.400000,en +10.200000,80.200000,en +10.200000,80.100000,en +10.300000,80.100000,ta +10.300000,80.200000,ta +10.400000,80.200000,ta +10.400000,80.100000,ta +10.300000,80.000000,ta +10.400000,80.000000,ta +10.400000,79.900000,ta +10.400000,79.800000,ta +10.300000,79.800000,ta +10.300000,79.900000,ta +10.200000,79.900000,ta +10.200000,79.800000,ta +10.200000,80.000000,ta +10.100000,80.000000,en +10.100000,79.900000,ta +10.100000,79.800000,ta +9.900000,79.500000,ta +9.800000,79.400000,ta +9.900000,79.400000,ta +10.000000,79.400000,ta +10.000000,79.500000,ta +10.100000,79.400000,ta +10.200000,79.400000,ta +10.200000,79.500000,ta +10.100000,79.500000,ta +10.100000,79.600000,ta +10.100000,79.700000,en +10.200000,79.700000,ta +10.200000,79.600000,ta +10.300000,79.600000,ta +10.300000,79.700000,ta +10.400000,79.700000,ta +10.400000,79.600000,ta +10.400000,79.500000,ta +10.300000,79.500000,ta +10.300000,79.400000,ta +10.400000,79.400000,ta +10.400000,79.300000,ta +10.300000,79.300000,ta +10.300000,79.200000,ta +10.400000,79.200000,ta +10.400000,79.100000,ta +10.300000,79.100000,ta +10.200000,79.100000,ta +10.100000,79.100000,ta +10.100000,79.200000,ta +10.200000,79.200000,ta +10.200000,79.300000,ta +10.100000,79.300000,ta +10.000000,79.300000,ta +10.000000,79.200000,ta +9.900000,79.300000,ta +9.800000,79.300000,ta +9.800000,79.200000,ta +9.900000,79.200000,ta +9.800000,79.100000,ta +9.900000,79.100000,ta +10.000000,79.100000,ta +10.000000,79.000000,ta +10.000000,78.900000,ta +9.900000,78.900000,ta +9.900000,79.000000,ta +9.800000,79.000000,ta +9.800000,78.900000,ta +9.800000,78.800000,ta +9.800000,78.700000,ta +9.900000,78.700000,ta +9.900000,78.800000,ta +10.000000,78.800000,ta +10.000000,78.700000,ta +10.100000,78.700000,ta +10.200000,78.700000,ta +10.200000,78.800000,ta +10.100000,78.800000,ta +10.100000,78.900000,ta +10.100000,79.000000,ta +10.200000,79.000000,ta +10.200000,78.900000,ta +10.300000,78.900000,ta +10.300000,79.000000,ta +10.400000,79.000000,ta +10.400000,78.900000,ta +10.400000,78.800000,ta +10.300000,78.800000,ta +10.300000,78.700000,ta +10.400000,78.700000,ta +10.400000,78.600000,ta +10.400000,78.500000,ta +10.300000,78.500000,ta +10.300000,78.600000,ta +10.200000,78.600000,ta +10.100000,78.600000,ta +10.100000,78.500000,ta +10.200000,78.500000,ta +10.200000,78.400000,ta +10.100000,78.400000,ta +10.100000,78.300000,ta +10.200000,78.300000,ta +10.300000,78.300000,ta +10.300000,78.400000,ta +10.400000,78.400000,ta +10.400000,78.300000,ta +10.300000,78.200000,ta +10.400000,78.200000,ta +10.300000,78.000000,ta +10.300000,78.100000,ta +10.200000,78.100000,ta +10.200000,78.000000,ta +10.100000,78.000000,ta +10.100000,78.100000,ta +10.100000,78.200000,ta +10.200000,78.200000,ta +9.900000,78.200000,ta +10.000000,78.200000,ta +10.000000,78.100000,ta +10.000000,78.000000,ta +9.900000,78.000000,ta +9.900000,78.100000,ta +9.800000,78.100000,ta +9.800000,78.000000,ta +9.700000,78.000000,ta +9.700000,78.100000,ta +9.700000,78.200000,ta +9.800000,78.200000,ta +9.800000,78.400000,ta +9.800000,78.300000,ta +9.900000,78.300000,ta +10.000000,78.300000,ta +10.000000,78.400000,ta +9.900000,78.400000,ta +9.900000,78.500000,ta +10.000000,78.500000,ta +10.000000,78.600000,ta +9.900000,78.600000,ta +9.800000,78.600000,ta +9.800000,78.500000,ta +9.700000,78.600000,ta +9.700000,78.500000,ta +9.600000,78.500000,ta +9.600000,78.600000,ta +9.500000,78.600000,ta +9.400000,78.600000,ta +9.400000,78.500000,ta +9.500000,78.500000,ta +9.500000,78.400000,ta +9.400000,78.400000,ta +9.400000,78.300000,ta +9.500000,78.300000,ta +9.600000,78.300000,ta +9.600000,78.400000,ta +9.700000,78.400000,ta +9.700000,78.300000,ta +9.600000,78.200000,ta +9.600000,78.000000,ta +9.600000,78.100000,ta +9.500000,78.100000,ta +9.500000,78.000000,ta +9.400000,78.000000,ta +9.400000,78.100000,ta +9.400000,78.200000,ta +9.500000,78.200000,ta +9.200000,78.200000,ta +9.300000,78.200000,ta +9.300000,78.100000,ta +9.300000,78.000000,ta +9.200000,78.000000,ta +9.200000,78.100000,ta +9.100000,78.100000,ta +9.100000,78.000000,ta +9.000000,78.000000,ta +9.000000,78.100000,ta +9.000000,78.200000,ta +9.100000,78.200000,ta +9.100000,78.400000,ta +9.100000,78.300000,ta +9.200000,78.300000,ta +9.300000,78.300000,ta +9.300000,78.400000,ta +9.200000,78.400000,ta +9.200000,78.500000,ta +9.300000,78.500000,ta +9.300000,78.600000,ta +9.200000,78.600000,ta +9.100000,78.600000,ta +9.100000,78.500000,ta +9.100000,78.700000,ta +9.100000,78.800000,ta +9.100000,78.900000,ta +9.100000,79.000000,ta +9.200000,78.900000,ta +9.200000,79.000000,ta +9.300000,79.000000,ta +9.300000,78.900000,ta +9.300000,78.800000,ta +9.200000,78.800000,ta +9.200000,78.700000,ta +9.300000,78.700000,ta +9.400000,78.700000,ta +9.400000,78.800000,ta +9.500000,78.800000,ta +9.500000,78.700000,ta +9.600000,78.700000,ta +9.700000,78.700000,ta +9.700000,78.800000,ta +9.600000,78.800000,ta +9.600000,78.900000,ta +9.700000,78.900000,ta +9.700000,79.000000,ta +9.600000,79.000000,ta +9.500000,79.000000,ta +9.500000,78.900000,ta +9.400000,78.900000,ta +9.400000,79.000000,ta +9.400000,79.100000,ta +9.500000,79.100000,ta +9.600000,79.100000,ta +9.700000,79.100000,ta +9.600000,79.200000,ta +9.700000,79.200000,ta +9.700000,79.300000,ta +9.500000,79.300000,ta +9.500000,79.200000,ta +9.400000,79.200000,ta +9.400000,79.300000,ta +9.300000,79.300000,ta +9.300000,79.200000,ta +9.300000,79.100000,ta +9.200000,79.100000,ta +9.100000,79.100000,ta +9.100000,79.200000,ta +9.200000,79.200000,ta +9.200000,79.300000,ta +9.100000,79.300000,ta +9.000000,79.300000,ta +9.000000,79.200000,ta +8.900000,79.200000,ta +8.900000,79.300000,ta +8.800000,79.300000,ta +8.700000,79.300000,en +8.700000,79.200000,ta +8.800000,79.200000,ta +8.700000,79.100000,ta +8.800000,79.100000,ta +8.900000,79.100000,ta +9.000000,79.100000,ta +9.000000,79.000000,ta +8.900000,79.000000,ta +8.900000,78.900000,ta +9.000000,78.900000,ta +9.000000,78.800000,ta +9.000000,78.700000,ta +8.900000,78.700000,ta +8.900000,78.800000,ta +8.800000,78.800000,ta +8.800000,78.700000,ta +8.700000,78.700000,ta +8.700000,78.800000,ta +8.700000,78.900000,ta +8.800000,78.900000,ta +8.800000,79.000000,ta +8.700000,79.000000,ta +8.600000,79.000000,ta +8.600000,78.900000,ta +8.600000,78.800000,ta +8.600000,78.700000,ta +8.500000,78.700000,ta +8.500000,78.800000,ta +8.400000,78.700000,ta +8.400000,78.800000,ta +8.400000,78.900000,ta +8.500000,78.900000,ta +8.500000,79.000000,ta +8.400000,79.000000,ta +8.400000,79.100000,ta +8.500000,79.100000,ta +8.600000,79.100000,ta +8.600000,79.200000,ta +8.600000,79.300000,en +8.500000,79.200000,en +8.300000,79.100000,ta +8.200000,79.100000,en +8.000000,78.700000,ta +8.100000,78.700000,ta +8.100000,78.800000,ta +8.000000,78.800000,ta +8.000000,78.900000,en +8.100000,79.000000,en +8.100000,78.900000,en +8.200000,78.900000,ta +8.200000,79.000000,en +8.300000,79.000000,ta +8.300000,78.900000,ta +8.300000,78.800000,ta +8.200000,78.800000,ta +8.200000,78.700000,ta +8.300000,78.700000,ta +8.300000,78.600000,ta +8.200000,78.600000,ta +8.200000,78.500000,ta +8.300000,78.500000,ta +8.300000,78.400000,ta +8.300000,78.300000,ta +8.200000,78.300000,ta +8.200000,78.400000,ta +8.100000,78.400000,ta +8.100000,78.300000,ta +8.000000,78.300000,ta +8.000000,78.400000,ta +8.000000,78.500000,ta +8.100000,78.500000,ta +8.100000,78.600000,ta +8.000000,78.600000,ta +8.000000,78.000000,ta +8.100000,78.000000,ta +8.100000,78.100000,ta +8.000000,78.100000,ta +8.000000,78.200000,ta +8.100000,78.200000,ta +8.200000,78.200000,ta +8.300000,78.200000,ta +8.300000,78.100000,ta +8.200000,78.100000,ta +8.200000,78.000000,ta +8.300000,78.000000,ta +8.400000,78.100000,ta +8.400000,78.000000,ta +8.500000,78.000000,ta +8.600000,78.000000,ta +8.600000,78.100000,ta +8.500000,78.100000,ta +8.500000,78.200000,ta +8.600000,78.200000,ta +8.400000,78.200000,ta +8.400000,78.300000,ta +8.400000,78.400000,ta +8.400000,78.500000,ta +8.400000,78.600000,ta +8.500000,78.500000,ta +8.500000,78.600000,ta +8.600000,78.600000,ta +8.600000,78.500000,ta +8.600000,78.400000,ta +8.500000,78.400000,ta +8.500000,78.300000,ta +8.600000,78.300000,ta +8.700000,78.300000,ta +8.800000,78.300000,ta +8.800000,78.400000,ta +8.700000,78.400000,ta +8.700000,78.500000,ta +8.700000,78.600000,ta +8.800000,78.600000,ta +8.800000,78.500000,ta +8.900000,78.500000,ta +8.900000,78.600000,ta +9.000000,78.600000,ta +9.000000,78.500000,ta +9.000000,78.400000,ta +8.900000,78.400000,ta +8.900000,78.300000,ta +9.000000,78.300000,ta +8.900000,78.200000,ta +8.700000,78.200000,ta +8.800000,78.200000,ta +8.800000,78.100000,ta +8.700000,78.100000,ta +8.700000,78.000000,ta +8.800000,78.000000,ta +8.900000,78.000000,ta +8.900000,78.100000,ta +8.900000,77.800000,ta +8.900000,77.900000,ta +8.800000,77.900000,ta +8.700000,77.900000,ta +8.700000,77.800000,ta +8.800000,77.800000,ta +8.800000,77.700000,ta +8.700000,77.700000,ta +8.700000,77.600000,ta +8.800000,77.600000,ta +8.900000,77.700000,ta +8.900000,77.600000,ta +8.900000,77.500000,ta +8.800000,77.400000,ta +8.900000,77.400000,ta +8.900000,77.300000,ta +8.900000,77.200000,ta +8.800000,77.200000,ml +8.800000,77.300000,ta +8.700000,77.200000,ml +8.700000,77.300000,ta +8.700000,77.400000,ta +8.800000,77.500000,ta +8.700000,77.500000,ta +8.600000,77.500000,ta +8.500000,77.500000,ta +8.500000,77.400000,ta +8.600000,77.400000,ta +8.600000,77.300000,ml +8.600000,77.200000,ml +8.500000,77.200000,ml +8.500000,77.300000,ta +8.400000,77.300000,ta +8.400000,77.200000,ml +8.300000,77.200000,ta +8.300000,77.300000,ta +8.300000,77.400000,ta +8.400000,77.400000,ta +8.400000,77.500000,ta +8.300000,77.500000,ta +8.300000,77.600000,ta +8.300000,77.700000,ta +8.400000,77.700000,ta +8.400000,77.600000,ta +8.500000,77.600000,ta +8.600000,77.600000,ta +8.600000,77.700000,ta +8.500000,77.700000,ta +8.500000,77.800000,ta +8.600000,77.800000,ta +8.600000,77.900000,ta +8.500000,77.900000,ta +8.400000,77.900000,ta +8.400000,77.800000,ta +8.300000,77.800000,ta +8.300000,77.900000,ta +8.200000,77.900000,ta +8.200000,77.800000,ta +8.200000,77.600000,ta +8.200000,77.700000,ta +8.100000,77.700000,ta +8.100000,77.600000,ta +8.000000,77.600000,ta +8.000000,77.700000,ta +8.000000,77.800000,ta +8.100000,77.800000,ta +8.100000,77.900000,ta +8.000000,77.900000,ta +8.000000,77.200000,ta +8.100000,77.200000,ta +8.100000,77.300000,ta +8.000000,77.300000,ta +8.000000,77.400000,ta +8.000000,77.500000,ta +8.100000,77.500000,ta +8.100000,77.400000,ta +8.200000,77.500000,ta +8.200000,77.400000,ta +8.200000,77.300000,ta +8.200000,77.200000,ta +8.200000,77.100000,ta +8.200000,77.000000,ml +8.200000,76.900000,ml +8.100000,76.900000,ml +8.100000,77.000000,ta +8.000000,76.900000,ml +8.000000,77.000000,ml +8.000000,77.100000,ta +8.100000,77.100000,ta +8.100000,76.800000,ml +8.200000,76.800000,ml +8.500000,76.600000,ml +8.500000,76.700000,ml +8.600000,76.700000,ml +8.600000,76.800000,ml +8.500000,76.800000,ml +8.400000,76.800000,ml +8.400000,76.700000,ml +8.300000,76.700000,ml +8.300000,76.800000,ml +8.300000,76.900000,ml +8.400000,76.900000,ml +8.400000,77.000000,ml +8.300000,77.000000,ml +8.300000,77.100000,ml +8.400000,77.100000,ml +8.500000,77.100000,ml +8.600000,77.100000,ml +8.600000,77.000000,ml +8.500000,77.000000,ml +8.500000,76.900000,ml +8.600000,76.900000,ml +8.700000,76.900000,ml +8.700000,77.000000,ml +8.700000,77.100000,ml +8.800000,77.100000,ml +8.900000,77.100000,ml +8.900000,77.000000,ml +8.800000,77.000000,ml +8.800000,76.900000,ml +8.900000,76.900000,ml +8.900000,76.800000,ml +8.900000,76.700000,ml +8.800000,76.700000,ml +8.800000,76.800000,ml +8.700000,76.800000,ml +8.700000,76.700000,ml +8.700000,76.600000,ml +8.600000,76.600000,ml +8.700000,76.500000,ml +8.800000,76.500000,ml +8.800000,76.600000,ml +8.900000,76.600000,ml +8.900000,76.500000,ml +9.000000,76.500000,ml +9.100000,76.500000,ml +9.100000,76.600000,ml +9.000000,76.600000,ml +9.000000,76.700000,ml +9.000000,76.800000,ml +9.100000,76.800000,ml +9.100000,76.700000,ml +9.200000,76.700000,ml +9.200000,76.800000,ml +9.200000,76.600000,ml +9.200000,76.500000,ml +9.300000,76.500000,ml +9.300000,76.600000,ml +9.400000,76.600000,ml +9.400000,76.500000,ml +9.500000,76.500000,ml +9.600000,76.500000,ml +9.600000,76.600000,ml +9.500000,76.600000,ml +9.500000,76.700000,ml +9.600000,76.700000,ml +9.600000,76.800000,ml +9.500000,76.800000,ml +9.400000,76.800000,ml +9.400000,76.700000,ml +9.300000,76.700000,ml +9.300000,76.800000,ml +9.400000,77.000000,ml +9.400000,76.900000,ml +9.500000,76.900000,ml +9.600000,76.900000,ml +9.600000,77.000000,ml +9.500000,77.000000,ml +9.500000,77.100000,ml +9.600000,77.100000,ml +9.400000,77.100000,ml +9.200000,77.100000,ml +9.300000,77.100000,ml +9.300000,77.000000,ml +9.300000,76.900000,ml +9.200000,76.900000,ml +9.200000,77.000000,ml +9.100000,77.000000,ml +9.100000,76.900000,ml +9.000000,76.900000,ml +9.000000,77.000000,ml +9.000000,77.100000,ml +9.100000,77.100000,ml +9.000000,77.200000,ta +9.000000,77.300000,ta +9.100000,77.300000,ta +9.100000,77.200000,ta +9.200000,77.200000,ta +9.300000,77.200000,ta +9.300000,77.300000,ta +9.200000,77.300000,ta +9.200000,77.400000,ta +9.300000,77.400000,ta +9.300000,77.500000,ta +9.200000,77.500000,ta +9.100000,77.500000,ta +9.100000,77.400000,ta +9.000000,77.400000,ta +9.000000,77.500000,ta +9.000000,77.600000,ta +9.100000,77.600000,ta +9.100000,77.700000,ta +9.000000,77.700000,ta +9.000000,77.800000,ta +9.000000,77.900000,ta +9.100000,77.900000,ta +9.100000,77.800000,ta +9.200000,77.800000,ta +9.200000,77.900000,ta +9.300000,77.900000,ta +9.300000,77.800000,ta +9.300000,77.700000,ta +9.200000,77.700000,ta +9.200000,77.600000,ta +9.300000,77.600000,ta +9.400000,77.600000,ta +9.500000,77.600000,ta +9.500000,77.700000,ta +9.400000,77.700000,ta +9.400000,77.800000,ta +9.400000,77.900000,ta +9.500000,77.900000,ta +9.500000,77.800000,ta +9.600000,77.900000,ta +9.600000,77.800000,ta +9.600000,77.700000,ta +9.600000,77.600000,ta +9.600000,77.500000,ta +9.600000,77.400000,ta +9.500000,77.400000,ta +9.500000,77.500000,ta +9.400000,77.500000,ta +9.400000,77.400000,ta +9.400000,77.300000,ta +9.400000,77.200000,ml +9.500000,77.200000,ml +9.500000,77.300000,ta +9.600000,77.300000,ta +9.600000,77.200000,ml +9.700000,77.200000,ml +9.700000,77.300000,ta +9.800000,77.300000,ta +9.800000,77.200000,ml +9.900000,77.200000,ml +10.000000,77.200000,ml +10.000000,77.300000,ta +9.900000,77.300000,ta +9.900000,77.400000,ta +10.000000,77.400000,ta +10.000000,77.500000,ta +9.900000,77.500000,ta +9.800000,77.500000,ta +9.800000,77.400000,ta +9.700000,77.400000,ta +9.700000,77.500000,ta +9.700000,77.600000,ta +9.800000,77.600000,ta +9.800000,77.700000,ta +9.700000,77.700000,ta +9.700000,77.800000,ta +9.700000,77.900000,ta +9.800000,77.900000,ta +9.800000,77.800000,ta +9.900000,77.800000,ta +9.900000,77.900000,ta +10.000000,77.900000,ta +10.000000,77.800000,ta +10.000000,77.700000,ta +9.900000,77.700000,ta +9.900000,77.600000,ta +10.000000,77.600000,ta +10.100000,77.600000,ta +10.200000,77.600000,ta +10.200000,77.700000,ta +10.100000,77.700000,ta +10.100000,77.800000,ta +10.100000,77.900000,ta +10.200000,77.900000,ta +10.200000,77.800000,ta +10.300000,77.900000,ta +10.300000,77.800000,ta +10.300000,77.700000,ta +10.300000,77.600000,ta +10.300000,77.500000,ta +10.300000,77.400000,ta +10.200000,77.400000,ta +10.200000,77.500000,ta +10.100000,77.500000,ta +10.100000,77.400000,ta +10.100000,77.300000,ta +10.100000,77.200000,ta +10.200000,77.200000,ml +10.200000,77.300000,ta +10.300000,77.300000,ta +10.300000,77.200000,ta +10.200000,77.100000,ml +10.300000,77.100000,ta +10.300000,77.000000,ta +10.300000,76.900000,ta +10.200000,76.900000,ml +10.200000,77.000000,ml +10.100000,77.000000,ml +10.100000,76.900000,ml +10.000000,76.900000,ml +10.100000,77.100000,ml +10.000000,77.100000,ml +9.900000,77.100000,ml +9.700000,77.100000,ml +9.800000,77.100000,ml +9.800000,77.000000,ml +9.700000,77.000000,ml +9.700000,76.900000,ml +9.800000,76.900000,ml +9.900000,76.900000,ml +9.900000,77.000000,ml +10.000000,77.000000,ml +9.900000,76.700000,ml +9.900000,76.800000,ml +9.800000,76.800000,ml +9.700000,76.800000,ml +9.700000,76.700000,ml +9.800000,76.700000,ml +9.800000,76.600000,ml +9.700000,76.600000,ml +9.700000,76.500000,ml +9.800000,76.500000,ml +9.900000,76.600000,ml +9.900000,76.500000,ml +10.000000,76.500000,ml +10.100000,76.500000,ml +10.100000,76.600000,ml +10.000000,76.600000,ml +10.000000,76.700000,ml +10.000000,76.800000,ml +10.100000,76.800000,ml +10.100000,76.700000,ml +10.200000,76.700000,ml +10.200000,76.800000,ml +10.300000,76.800000,ml +10.300000,76.700000,ml +10.300000,76.600000,ml +10.200000,76.600000,ml +10.200000,76.500000,ml +10.300000,76.500000,ml +10.300000,76.400000,ml +10.300000,76.300000,ml +10.200000,76.300000,ml +10.200000,76.400000,ml +10.100000,76.400000,ml +10.000000,76.400000,ml +10.000000,76.300000,ml +10.100000,76.300000,ml +10.100000,76.200000,ml +10.000000,76.200000,ml +10.000000,76.100000,ml +10.100000,76.100000,ml +10.200000,76.100000,ml +10.200000,76.200000,ml +10.300000,76.200000,ml +10.300000,76.100000,ml +10.300000,76.000000,ml +10.200000,76.000000,ml +10.200000,75.900000,ml +10.300000,75.900000,ml +10.300000,75.800000,ml +10.200000,75.800000,ml +10.100000,75.800000,ml +10.000000,75.800000,ml +10.000000,75.900000,ml +10.100000,75.900000,ml +10.100000,76.000000,ml +10.000000,76.000000,ml +9.900000,76.000000,ml +9.800000,76.000000,ml +9.800000,75.900000,ml +9.900000,75.900000,ml +9.900000,75.800000,ml +9.700000,75.900000,ml +9.700000,76.000000,ml +9.700000,76.100000,ml +9.700000,76.200000,ml +9.800000,76.100000,ml +9.900000,76.100000,ml +9.900000,76.200000,ml +9.800000,76.200000,ml +9.800000,76.300000,ml +9.900000,76.300000,ml +9.900000,76.400000,ml +9.800000,76.400000,ml +9.700000,76.300000,ml +9.700000,76.400000,ml +9.600000,76.400000,ml +9.500000,76.400000,ml +9.500000,76.300000,ml +9.600000,76.300000,ml +9.600000,76.200000,ml +9.600000,76.100000,ml +9.500000,76.100000,ml +9.500000,76.200000,ml +9.400000,76.200000,ml +9.400000,76.100000,ml +9.300000,76.200000,ml +9.300000,76.300000,ml +9.400000,76.300000,ml +9.400000,76.400000,ml +9.300000,76.400000,ml +9.200000,76.400000,ml +9.200000,76.300000,ml +9.100000,76.400000,ml +9.000000,76.400000,ml +9.000000,76.300000,ml +9.100000,76.300000,ml +9.200000,76.200000,ml +9.600000,76.000000,ml +10.100000,75.700000,ml +10.200000,75.700000,ml +9.900000,74.300000,en +10.000000,74.300000,en +10.200000,74.400000,en +10.100000,74.400000,en +10.100000,74.300000,en +10.200000,74.300000,en +10.200000,74.200000,en +10.200000,74.100000,en +10.100000,74.100000,en +10.100000,74.200000,en +10.000000,74.200000,en +9.900000,74.200000,en +9.900000,74.100000,en +10.000000,74.100000,en +10.000000,74.000000,en +9.900000,74.000000,en +9.900000,73.900000,en +10.000000,73.900000,en +10.100000,73.900000,en +10.100000,74.000000,en +10.200000,74.000000,en +10.200000,73.900000,en +10.200000,73.800000,en +10.100000,73.800000,en +10.100000,73.700000,en +10.200000,73.700000,en +10.100000,73.500000,en +10.100000,73.600000,en +10.000000,73.600000,en +10.000000,73.500000,en +9.900000,73.500000,en +9.900000,73.600000,en +9.900000,73.700000,en +10.000000,73.700000,en +10.000000,73.800000,en +9.900000,73.800000,en +9.800000,73.800000,en +9.700000,73.800000,en +9.700000,73.700000,en +9.800000,73.700000,en +9.800000,73.600000,en +9.800000,73.500000,en +9.700000,73.500000,en +9.700000,73.600000,en +9.600000,73.600000,en +9.600000,73.500000,en +9.600000,73.700000,en +9.600000,73.800000,en +9.600000,73.900000,ml +9.600000,74.000000,ml +9.700000,73.900000,en +9.800000,73.900000,en +9.800000,74.000000,en +9.700000,74.000000,en +9.800000,74.100000,en +9.800000,74.200000,en +9.700000,74.200000,en +9.700000,74.100000,en +9.600000,74.100000,ml +9.600000,74.200000,ml +9.500000,74.100000,en +9.400000,74.100000,en +9.300000,74.100000,en +9.300000,74.000000,en +9.200000,74.000000,en +9.200000,73.900000,en +9.300000,73.900000,en +9.400000,73.900000,en +9.400000,74.000000,en +9.500000,74.000000,en +9.500000,73.900000,en +9.500000,73.800000,en +9.400000,73.800000,en +9.400000,73.700000,en +9.500000,73.700000,en +9.500000,73.600000,en +9.500000,73.500000,en +9.400000,73.500000,en +9.400000,73.600000,en +9.300000,73.600000,en +9.300000,73.500000,en +9.200000,73.500000,en +9.200000,73.600000,en +9.200000,73.700000,en +9.300000,73.700000,en +9.300000,73.800000,en +9.200000,73.800000,en +9.100000,73.800000,en +9.000000,73.700000,en +9.100000,73.700000,en +9.100000,73.600000,en +9.100000,73.500000,en +9.000000,73.500000,en +9.000000,73.600000,en +8.900000,73.500000,en +8.900000,73.600000,en +8.900000,73.700000,en +9.000000,73.800000,en +8.900000,73.800000,en +8.900000,73.900000,en +9.000000,73.900000,en +9.100000,73.900000,en +9.100000,74.000000,en +8.800000,73.900000,en +8.800000,73.800000,en +8.700000,73.800000,en +8.700000,73.700000,en +8.800000,73.700000,en +8.800000,73.600000,en +8.800000,73.500000,en +8.700000,73.500000,en +8.700000,73.600000,en +8.600000,73.600000,en +8.600000,73.500000,en +8.500000,73.500000,en +8.500000,73.600000,en +8.500000,73.700000,en +8.600000,73.700000,en +8.600000,73.800000,en +8.500000,73.800000,en +8.400000,73.700000,en +8.400000,73.600000,en +8.400000,73.500000,en +8.300000,73.600000,en +8.300000,73.500000,en +8.200000,73.500000,en +8.300000,73.700000,en +8.900000,76.400000,ml +8.800000,76.400000,ml +8.100000,72.700000,en +8.100000,73.300000,en +8.100000,73.200000,en +8.000000,73.200000,en +8.000000,73.100000,en +8.100000,73.100000,en +8.100000,73.000000,en +8.100000,72.900000,en +8.000000,72.900000,en +8.000000,73.000000,en +8.100000,72.800000,en +8.200000,72.800000,en +8.300000,72.800000,en +8.400000,72.800000,en +8.300000,72.900000,en +8.400000,72.900000,en +8.400000,73.000000,en +8.300000,73.000000,en +8.200000,72.900000,en +8.200000,73.000000,en +8.200000,73.100000,en +8.200000,73.200000,en +8.200000,73.300000,en +8.200000,73.400000,en +8.300000,73.400000,en +8.300000,73.300000,en +8.400000,73.400000,en +8.400000,73.300000,en +8.400000,73.200000,en +8.300000,73.200000,en +8.300000,73.100000,en +8.400000,73.100000,en +8.500000,73.100000,en +8.600000,73.100000,en +8.600000,73.200000,en +8.500000,73.200000,en +8.500000,73.300000,en +8.500000,73.400000,en +8.600000,73.400000,en +8.600000,73.300000,en +8.700000,73.300000,en +8.700000,73.400000,en +8.800000,73.400000,en +8.800000,73.300000,en +8.800000,73.200000,en +8.700000,73.200000,en +8.700000,73.100000,en +8.700000,72.900000,en +8.700000,73.000000,en +8.600000,73.000000,en +8.500000,73.000000,en +8.500000,72.900000,en +8.600000,72.900000,en +8.500000,72.800000,en +8.600000,72.800000,en +8.700000,72.800000,en +8.700000,72.700000,en +8.700000,72.600000,en +8.700000,72.500000,en +8.700000,72.400000,en +8.600000,72.400000,en +8.600000,72.500000,en +8.500000,72.400000,en +8.500000,72.500000,en +8.500000,72.600000,en +8.600000,72.600000,en +8.600000,72.700000,en +8.500000,72.700000,en +8.400000,72.700000,en +8.400000,72.600000,en +8.300000,72.600000,en +8.300000,72.700000,en +8.200000,72.700000,en +8.200000,72.600000,en +8.200000,72.500000,en +8.300000,72.500000,en +8.400000,72.500000,en +8.700000,72.300000,en +8.800000,72.300000,en +8.900000,72.300000,en +8.900000,72.200000,en +9.000000,72.200000,en +9.000000,72.300000,en +9.100000,72.300000,en +9.100000,72.100000,en +9.200000,72.100000,en +9.300000,72.000000,en +9.400000,72.000000,en +9.400000,72.100000,en +9.300000,72.100000,en +9.300000,72.200000,en +9.400000,72.200000,en +9.400000,72.300000,en +9.300000,72.300000,en +9.200000,72.300000,en +9.200000,72.200000,en +9.100000,72.200000,en +9.200000,72.500000,en +9.200000,72.400000,en +9.300000,72.400000,en +9.400000,72.400000,en +9.400000,72.500000,en +9.300000,72.500000,en +9.300000,72.600000,en +9.400000,72.600000,en +9.400000,72.700000,en +9.300000,72.700000,en +9.200000,72.600000,en +9.200000,72.700000,en +9.100000,72.700000,en +9.000000,72.700000,en +9.000000,72.600000,en +9.100000,72.600000,en +9.100000,72.500000,en +9.100000,72.400000,en +9.000000,72.400000,en +9.000000,72.500000,en +8.900000,72.500000,en +8.900000,72.400000,en +8.800000,72.400000,en +8.800000,72.500000,en +8.800000,72.600000,en +8.900000,72.600000,en +8.900000,72.700000,en +8.800000,72.700000,en +8.800000,72.800000,en +8.900000,72.800000,en +9.000000,72.800000,en +9.100000,72.800000,en +9.000000,72.900000,en +9.100000,72.900000,en +9.100000,73.000000,en +9.000000,73.000000,en +8.900000,73.000000,en +8.900000,72.900000,en +8.800000,72.900000,en +8.800000,73.000000,en +8.800000,73.100000,en +8.900000,73.100000,en +8.900000,73.200000,en +8.900000,73.400000,en +8.900000,73.300000,en +9.000000,73.300000,en +9.000000,73.400000,en +9.100000,73.400000,en +9.100000,73.300000,en +9.100000,73.200000,en +9.000000,73.200000,en +9.000000,73.100000,en +9.100000,73.100000,en +9.200000,73.100000,en +9.300000,73.100000,en +9.300000,73.200000,en +9.200000,73.200000,en +9.200000,73.300000,en +9.200000,73.400000,en +9.300000,73.400000,en +9.300000,73.300000,en +9.400000,73.300000,en +9.400000,73.400000,en +9.400000,73.200000,en +9.400000,73.100000,en +9.400000,73.000000,en +9.400000,72.900000,en +9.300000,73.000000,en +9.200000,73.000000,en +9.200000,72.900000,en +9.300000,72.900000,en +9.200000,72.800000,en +9.300000,72.800000,en +9.400000,72.800000,en +9.500000,72.800000,en +9.600000,72.800000,en +9.700000,72.800000,en +9.800000,72.800000,en +9.700000,72.900000,en +9.800000,72.900000,en +9.800000,73.000000,en +9.700000,73.000000,en +9.600000,73.000000,en +9.600000,72.900000,en +9.500000,72.900000,en +9.500000,73.000000,en +9.500000,73.100000,en +9.600000,73.100000,en +9.600000,73.200000,en +9.500000,73.200000,en +9.500000,73.300000,en +9.500000,73.400000,en +9.600000,73.400000,en +9.600000,73.300000,en +9.700000,73.300000,en +9.700000,73.400000,en +9.800000,73.400000,en +9.800000,73.300000,en +9.800000,73.200000,en +9.700000,73.200000,en +9.700000,73.100000,en +9.800000,73.100000,en +9.900000,73.100000,en +10.000000,73.200000,en +9.900000,73.200000,en +9.900000,73.300000,en +9.900000,73.400000,en +10.000000,73.400000,en +10.000000,73.300000,en +10.100000,73.400000,en +10.100000,73.300000,en +10.100000,73.200000,en +10.000000,73.100000,en +10.100000,73.100000,en +10.100000,73.000000,en +10.100000,72.900000,en +10.000000,72.900000,en +10.000000,73.000000,en +9.900000,73.000000,en +9.900000,72.900000,en +9.900000,72.800000,en +10.000000,72.800000,en +10.100000,72.800000,en +10.100000,72.700000,en +10.000000,72.700000,en +10.000000,72.600000,en +10.100000,72.600000,en +10.100000,72.500000,en +10.100000,72.400000,en +10.000000,72.400000,en +10.000000,72.500000,en +9.900000,72.500000,en +9.900000,72.400000,en +9.800000,72.400000,en +9.800000,72.500000,en +9.800000,72.600000,en +9.900000,72.600000,en +9.900000,72.700000,en +9.800000,72.700000,en +9.700000,72.600000,en +9.700000,72.700000,en +9.600000,72.700000,en +9.500000,72.700000,en +9.500000,72.600000,en +9.600000,72.600000,en +9.600000,72.500000,en +9.500000,72.500000,en +9.500000,72.400000,en +9.600000,72.400000,en +9.700000,72.400000,en +9.700000,72.500000,en +9.700000,72.300000,en +9.700000,72.200000,en +9.600000,72.300000,en +9.500000,72.300000,en +9.500000,72.200000,en +9.600000,72.200000,en +9.600000,72.100000,en +9.500000,72.100000,en +9.500000,72.000000,en +9.600000,72.000000,en +9.700000,72.100000,en +9.700000,72.000000,en +9.800000,72.000000,en +9.900000,72.000000,en +9.900000,72.100000,en +9.800000,72.100000,en +9.800000,72.200000,en +9.800000,72.300000,en +9.900000,72.300000,en +9.900000,72.200000,en +10.000000,72.200000,en +10.000000,72.300000,en +10.100000,72.300000,en +10.100000,72.200000,en +10.100000,72.100000,en +10.000000,72.100000,en +10.000000,72.000000,en +10.100000,72.000000,en +10.100000,71.900000,en +10.000000,71.800000,en +10.000000,71.900000,en +9.900000,71.900000,en +9.800000,71.900000,en +9.800000,71.800000,en +9.900000,71.800000,en +9.700000,71.800000,en +9.700000,71.900000,en +9.600000,71.900000,en +9.500000,71.900000,en +15.700000,73.300000,ru +15.800000,73.300000,mr +15.800000,73.400000,mr +15.700000,73.400000,mr +15.600000,73.400000,hi +15.500000,73.400000,hi +12.500000,73.000000,kn +12.500000,72.900000,kn +12.600000,72.800000,kn +12.500000,72.800000,kn +12.400000,72.800000,kn +12.300000,72.800000,kn +12.300000,72.900000,kn +12.400000,72.900000,kn +12.400000,73.000000,kn +12.300000,73.000000,kn +12.300000,73.100000,kn +12.300000,73.200000,kn +12.400000,73.100000,kn +12.300000,73.300000,kn +12.200000,73.400000,en +12.200000,73.300000,en +12.200000,73.200000,en +12.200000,73.100000,en +12.100000,73.100000,en +12.100000,73.200000,en +12.000000,73.100000,en +12.000000,73.200000,en +12.000000,73.300000,en +12.100000,73.300000,en +12.100000,73.400000,en +12.000000,73.400000,en +11.900000,73.400000,en +11.900000,73.300000,en +11.800000,73.300000,en +11.800000,73.400000,en +11.700000,73.400000,en +11.600000,73.400000,en +11.600000,73.300000,en +11.700000,73.300000,en +11.700000,73.200000,en +11.600000,73.200000,en +11.600000,73.100000,en +11.700000,73.100000,en +11.800000,73.100000,en +11.800000,73.200000,en +11.900000,73.200000,en +11.900000,73.100000,en +11.900000,73.000000,en +11.900000,72.900000,en +11.800000,72.900000,en +11.800000,73.000000,en +11.700000,73.000000,en +11.600000,73.000000,en +11.600000,72.900000,en +11.700000,72.900000,en +11.600000,72.800000,en +11.700000,72.800000,en +11.800000,72.800000,en +11.900000,72.800000,en +12.000000,72.800000,en +12.000000,73.000000,en +12.000000,72.900000,en +12.100000,72.900000,en +12.100000,73.000000,en +12.200000,73.000000,en +12.200000,72.900000,en +12.100000,72.800000,en +12.200000,72.800000,en +12.200000,72.700000,en +12.100000,72.700000,en +12.100000,72.600000,en +12.200000,72.600000,en +12.200000,72.500000,en +12.200000,72.400000,en +12.100000,72.400000,en +12.100000,72.500000,en +12.000000,72.500000,en +12.000000,72.400000,en +11.900000,72.400000,en +11.900000,72.500000,en +11.900000,72.600000,en +12.000000,72.600000,en +12.000000,72.700000,en +11.900000,72.700000,en +11.800000,72.600000,en +11.800000,72.700000,en +11.700000,72.700000,en +11.600000,72.700000,en +11.600000,72.600000,en +11.700000,72.600000,en +11.700000,72.500000,en +11.600000,72.500000,en +11.600000,72.400000,en +11.700000,72.400000,en +11.800000,72.500000,en +11.800000,72.400000,en +11.800000,72.300000,en +11.800000,72.200000,en +11.700000,72.200000,en +11.700000,72.300000,en +11.600000,72.300000,en +11.600000,72.200000,en +11.600000,72.100000,en +11.500000,72.000000,en +11.600000,72.000000,en +11.700000,72.000000,en +11.700000,72.100000,en +11.800000,72.100000,en +11.800000,72.000000,en +11.900000,72.000000,en +12.000000,72.000000,en +12.000000,72.100000,en +11.900000,72.100000,en +11.900000,72.200000,en +11.900000,72.300000,en +12.000000,72.300000,en +12.000000,72.200000,en +12.100000,72.200000,en +12.100000,72.300000,en +12.200000,72.300000,en +12.200000,72.200000,en +12.200000,72.100000,en +12.100000,72.100000,en +12.100000,72.000000,en +12.200000,72.000000,en +12.300000,72.100000,en +12.300000,72.000000,en +12.400000,72.000000,en +12.500000,72.000000,en +12.500000,72.100000,en +12.400000,72.100000,en +12.400000,72.200000,en +12.500000,72.200000,en +12.500000,72.300000,en +12.400000,72.300000,en +12.300000,72.200000,en +12.300000,72.300000,en +12.300000,72.400000,kn +12.400000,72.400000,kn +12.400000,72.500000,kn +12.300000,72.500000,kn +12.300000,72.600000,kn +12.300000,72.700000,kn +12.400000,72.700000,kn +12.400000,72.600000,kn +12.500000,72.600000,kn +12.500000,72.700000,kn +12.500000,72.500000,kn +12.500000,72.400000,kn +12.600000,72.400000,kn +12.600000,72.500000,kn +12.600000,72.600000,kn +12.600000,72.300000,en +12.600000,72.200000,en +12.600000,72.100000,en +12.600000,72.000000,en +12.500000,71.900000,en +12.500000,71.800000,en +12.400000,71.800000,en +12.400000,71.900000,en +12.300000,71.900000,en +12.200000,71.900000,en +12.200000,71.800000,en +12.300000,71.800000,en +12.300000,71.700000,en +12.200000,71.700000,en +12.200000,71.600000,en +12.300000,71.600000,en +12.400000,71.600000,en +12.400000,71.700000,en +12.200000,71.500000,en +11.500000,71.500000,en +11.600000,71.500000,en +11.600000,71.400000,en +11.700000,71.400000,en +11.700000,71.500000,en +11.800000,71.500000,en +11.800000,71.400000,en +12.100000,71.500000,en +12.000000,71.500000,en +11.900000,71.400000,en +11.900000,71.500000,en +11.900000,71.600000,en +11.900000,71.700000,en +12.000000,71.700000,en +12.000000,71.600000,en +12.100000,71.600000,en +12.100000,71.700000,en +12.100000,71.800000,en +12.100000,71.900000,en +12.000000,71.900000,en +12.000000,71.800000,en +11.900000,71.800000,en +11.900000,71.900000,en +11.800000,71.900000,en +11.700000,71.900000,en +11.700000,71.800000,en +11.800000,71.800000,en +11.800000,71.700000,en +11.800000,71.600000,en +11.700000,71.600000,en +11.700000,71.700000,en +11.600000,71.700000,en +11.600000,71.600000,en +11.500000,71.600000,en +11.500000,71.700000,en +11.500000,71.800000,en +11.600000,71.800000,en +11.600000,71.900000,en +11.500000,71.900000,en +11.400000,71.900000,en +11.400000,71.800000,en +11.400000,71.700000,en +11.400000,71.600000,en +11.300000,71.600000,en +11.300000,71.700000,en +11.200000,71.600000,en +11.200000,71.700000,en +11.200000,71.800000,en +11.300000,71.800000,en +11.300000,71.900000,en +11.200000,71.900000,en +11.100000,71.900000,en +11.100000,71.800000,en +11.000000,71.800000,en +11.000000,71.900000,en +10.900000,71.900000,en +10.800000,71.900000,en +10.800000,71.800000,en +10.900000,71.800000,en +10.900000,71.700000,en +10.800000,71.700000,en +10.800000,71.600000,en +10.900000,71.600000,en +11.000000,71.600000,en +11.000000,71.700000,en +11.100000,71.700000,en +11.100000,71.600000,en +11.200000,71.500000,en +11.300000,71.500000,en +11.400000,71.500000,en +10.500000,71.700000,en +10.600000,71.700000,en +10.600000,71.600000,en +10.700000,71.600000,en +10.700000,71.700000,en +10.700000,71.800000,en +10.700000,71.900000,en +10.600000,71.900000,en +10.600000,71.800000,en +10.500000,71.800000,en +10.500000,71.900000,en +10.400000,71.900000,en +10.300000,71.900000,en +10.300000,71.800000,en +10.400000,71.800000,en +10.400000,71.700000,en +10.300000,71.700000,en +10.200000,71.700000,en +10.100000,71.800000,en +10.200000,71.800000,en +10.200000,71.900000,en +10.200000,72.100000,en +10.200000,72.000000,en +10.300000,72.000000,en +10.400000,72.000000,en +10.400000,72.100000,en +10.300000,72.100000,en +10.300000,72.200000,en +10.400000,72.200000,en +10.400000,72.300000,en +10.300000,72.300000,en +10.200000,72.200000,en +10.200000,72.300000,en +10.200000,72.400000,en +10.300000,72.400000,en +10.300000,72.500000,en +10.200000,72.500000,en +10.200000,72.600000,en +10.200000,72.700000,en +10.300000,72.700000,en +10.300000,72.600000,en +10.400000,72.600000,en +10.400000,72.700000,en +10.400000,72.500000,en +10.400000,72.400000,en +10.500000,72.400000,en +10.600000,72.400000,en +10.600000,72.500000,en +10.500000,72.500000,en +10.500000,72.600000,en +10.500000,72.700000,en +10.600000,72.700000,en +10.600000,72.600000,en +10.700000,72.600000,en +10.700000,72.700000,en +10.800000,72.700000,en +10.800000,72.600000,en +10.800000,72.500000,en +10.700000,72.500000,en +10.700000,72.400000,en +10.800000,72.400000,en +10.800000,72.300000,en +10.800000,72.200000,en +10.700000,72.200000,en +10.700000,72.300000,en +10.600000,72.300000,en +10.500000,72.300000,en +10.500000,72.200000,en +10.600000,72.200000,en +10.600000,72.100000,en +10.500000,72.100000,en +10.500000,72.000000,en +10.600000,72.000000,en +10.700000,72.000000,en +10.700000,72.100000,en +10.800000,72.100000,en +10.800000,72.000000,en +10.900000,72.000000,en +10.900000,72.100000,en +10.900000,72.300000,en +10.900000,72.200000,en +11.000000,72.200000,en +11.000000,72.300000,en +11.100000,72.300000,en +11.100000,72.200000,en +11.100000,72.100000,en +11.000000,72.100000,en +11.000000,72.000000,en +11.100000,72.000000,en +11.200000,72.000000,en +11.200000,72.100000,en +11.300000,72.100000,en +11.300000,72.000000,en +11.400000,72.000000,en +11.500000,72.100000,en +11.400000,72.100000,en +11.400000,72.200000,en +11.500000,72.200000,en +11.500000,72.300000,en +11.400000,72.300000,en +11.300000,72.300000,en +11.300000,72.200000,en +11.200000,72.200000,en +11.200000,72.300000,en +11.200000,72.400000,en +11.200000,72.500000,en +11.300000,72.500000,en +11.300000,72.400000,en +11.400000,72.400000,en +11.500000,72.400000,en +11.500000,72.500000,en +11.400000,72.500000,en +11.400000,72.600000,en +11.500000,72.600000,en +11.500000,72.700000,en +11.400000,72.700000,en +11.300000,72.700000,en +11.300000,72.600000,en +11.200000,72.600000,en +11.200000,72.700000,en +11.100000,72.700000,en +11.100000,72.600000,en +11.100000,72.500000,en +11.100000,72.400000,en +11.000000,72.400000,en +11.000000,72.500000,en +10.900000,72.400000,en +10.900000,72.500000,en +10.900000,72.600000,en +11.000000,72.600000,en +11.000000,72.700000,en +10.900000,72.700000,en +10.900000,72.800000,en +11.000000,72.800000,en +10.900000,72.900000,en +10.900000,73.000000,en +11.000000,73.000000,en +11.000000,72.900000,en +11.100000,72.900000,en +11.100000,73.000000,en +11.200000,73.000000,en +11.200000,72.900000,en +11.100000,72.800000,en +11.200000,72.800000,en +11.300000,72.800000,en +11.400000,72.800000,en +11.500000,72.800000,en +11.400000,72.900000,en +11.500000,72.900000,en +11.500000,73.000000,en +11.400000,73.000000,en +11.300000,73.000000,en +11.300000,72.900000,en +11.300000,73.100000,en +11.300000,73.200000,en +11.400000,73.100000,en +11.500000,73.100000,en +11.500000,73.200000,en +11.400000,73.200000,en +11.500000,73.300000,en +11.500000,73.400000,en +11.400000,73.400000,en +11.400000,73.300000,en +11.300000,73.300000,en +11.300000,73.400000,en +11.200000,73.400000,en +11.100000,73.400000,en +11.100000,73.300000,en +11.200000,73.300000,en +11.200000,73.200000,en +11.200000,73.100000,en +11.100000,73.100000,en +11.100000,73.200000,en +11.000000,73.200000,en +11.000000,73.100000,en +10.900000,73.100000,en +10.900000,73.200000,en +10.900000,73.300000,en +11.000000,73.300000,en +11.000000,73.400000,en +10.900000,73.400000,en +10.800000,73.400000,en +10.800000,73.300000,en +10.700000,73.400000,en +10.600000,73.400000,en +10.600000,73.300000,en +10.700000,73.300000,en +10.600000,73.200000,en +10.600000,73.100000,en +10.700000,73.100000,en +10.700000,73.200000,en +10.800000,73.200000,en +10.800000,73.100000,en +10.800000,73.000000,en +10.700000,73.000000,en +10.700000,72.900000,en +10.800000,72.900000,en +10.800000,72.800000,en +10.700000,72.800000,en +10.600000,72.800000,en +10.600000,72.900000,en +10.600000,73.000000,en +10.500000,73.000000,en +10.400000,73.000000,en +10.400000,72.900000,en +10.500000,72.900000,en +10.500000,72.800000,en +10.400000,72.800000,en +10.300000,72.800000,en +10.200000,72.800000,en +10.200000,72.900000,en +10.300000,72.900000,en +10.300000,73.000000,en +10.200000,73.000000,en +10.200000,73.100000,en +10.200000,73.200000,en +10.300000,73.200000,en +10.300000,73.100000,en +10.400000,73.100000,en +10.500000,73.100000,en +10.500000,73.200000,en +10.400000,73.200000,en +10.400000,73.300000,en +10.500000,73.300000,en +10.500000,73.400000,en +10.400000,73.400000,en +10.300000,73.400000,en +10.300000,73.300000,en +10.200000,73.300000,en +10.200000,73.400000,en +10.200000,73.500000,en +10.300000,73.500000,en +10.300000,73.600000,en +10.200000,73.600000,en +10.300000,73.800000,en +10.300000,73.700000,en +10.400000,73.700000,en +10.400000,73.800000,en +10.500000,73.800000,en +10.500000,73.700000,en +10.500000,73.600000,en +10.400000,73.600000,en +10.400000,73.500000,en +10.500000,73.500000,en +10.600000,73.500000,en +10.600000,73.600000,en +10.700000,73.600000,en +10.700000,73.500000,en +10.800000,73.500000,en +10.800000,73.600000,en +10.800000,73.700000,en +10.900000,73.800000,en +10.800000,73.800000,en +10.700000,73.800000,en +10.700000,73.700000,en +10.600000,73.700000,en +10.600000,73.800000,en +10.600000,73.900000,en +10.600000,74.000000,en +10.700000,74.000000,en +10.700000,73.900000,en +10.800000,73.900000,en +10.900000,73.900000,en +10.900000,74.000000,en +10.800000,74.000000,en +10.800000,74.100000,en +10.900000,74.100000,en +10.900000,74.200000,en +10.800000,74.200000,en +10.700000,74.200000,en +10.700000,74.100000,en +10.600000,74.100000,en +10.600000,74.200000,en +10.500000,74.200000,en +10.400000,74.100000,en +10.500000,74.100000,en +10.500000,74.000000,en +10.500000,73.900000,en +10.400000,73.900000,en +10.400000,74.000000,en +10.300000,73.900000,en +10.300000,74.000000,en +10.300000,74.100000,en +10.400000,74.200000,en +10.300000,74.200000,en +10.300000,74.300000,en +10.300000,74.400000,en +10.400000,74.400000,en +10.400000,74.300000,en +10.500000,74.300000,en +10.500000,74.400000,en +10.600000,74.300000,en +10.700000,74.300000,en +10.800000,74.300000,en +10.900000,74.300000,en +11.600000,74.900000,ml +11.500000,74.100000,ml +11.600000,74.100000,ml +11.600000,74.000000,ml +11.600000,73.900000,ml +11.500000,73.900000,en +11.500000,74.000000,ml +11.400000,74.000000,ml +11.400000,73.900000,en +11.300000,73.900000,en +11.300000,74.000000,en +11.300000,74.100000,ml +11.400000,74.100000,ml +11.200000,74.200000,ml +11.200000,74.100000,ml +11.100000,74.100000,en +11.100000,74.200000,en +11.000000,74.200000,en +11.000000,74.100000,en +11.000000,74.000000,en +11.000000,73.900000,en +11.100000,73.900000,en +11.100000,74.000000,en +11.200000,74.000000,en +11.200000,73.900000,en +11.200000,73.800000,en +11.200000,73.700000,en +11.100000,73.700000,en +11.100000,73.800000,en +11.000000,73.800000,en +10.900000,73.700000,en +11.000000,73.700000,en +11.000000,73.600000,en +10.900000,73.600000,en +10.900000,73.500000,en +11.000000,73.500000,en +11.100000,73.500000,en +11.100000,73.600000,en +11.200000,73.600000,en +11.200000,73.500000,en +11.300000,73.500000,en +11.400000,73.500000,en +11.400000,73.600000,en +11.300000,73.600000,en +11.300000,73.700000,en +11.300000,73.800000,en +11.400000,73.800000,en +11.400000,73.700000,en +11.500000,73.700000,en +11.500000,73.800000,en +11.600000,73.800000,en +11.600000,73.700000,en +11.500000,73.600000,en +11.500000,73.500000,en +11.600000,73.500000,en +11.600000,73.600000,en +11.700000,73.600000,en +11.700000,73.500000,en +11.800000,73.500000,en +11.900000,73.500000,en +11.900000,73.600000,en +11.800000,73.600000,en +11.800000,73.700000,en +11.900000,73.700000,en +11.900000,73.800000,en +11.800000,73.800000,en +11.700000,73.800000,en +11.700000,73.700000,en +11.700000,73.900000,ml +11.700000,74.000000,ml +11.800000,74.000000,ml +11.800000,73.900000,kn +12.000000,73.700000,en +12.100000,73.600000,en +12.000000,73.600000,en +12.000000,73.500000,en +12.100000,73.500000,en +12.700000,74.500000,kn +13.000000,74.400000,kn +13.000000,74.500000,kn +12.900000,74.500000,kn +12.800000,74.500000,kn +12.800000,74.600000,kn +12.800000,74.700000,kn +12.900000,74.700000,kn +12.900000,74.600000,kn +13.000000,74.600000,kn +13.000000,74.700000,kn +13.000000,74.800000,kn +13.000000,74.900000,kn +12.900000,74.900000,kn +12.900000,74.800000,kn +12.800000,74.800000,kn +12.800000,74.900000,kn +12.700000,74.900000,kn +12.600000,74.900000,ml +12.600000,74.800000,ml +12.700000,74.800000,kn +12.700000,74.700000,kn +12.700000,74.600000,kn +12.600000,74.600000,kn +12.600000,74.700000,kn +12.500000,74.700000,kn +12.500000,74.600000,kn +12.400000,74.600000,kn +12.400000,74.700000,kn +12.400000,74.800000,ml +12.500000,74.800000,ml +12.500000,74.900000,ml +12.400000,74.900000,ml +12.300000,74.900000,ml +12.300000,74.800000,ml +12.200000,74.800000,ml +12.200000,74.900000,ml +12.100000,74.900000,ml +12.100000,74.800000,ml +12.100000,74.700000,ml +12.200000,74.700000,ml +12.300000,74.700000,ml +11.900000,74.800000,ml +12.000000,74.800000,ml +12.000000,74.900000,ml +11.900000,74.900000,ml +11.800000,74.900000,ml +11.700000,74.900000,ml +11.700000,75.000000,ml +11.700000,75.100000,ml +11.800000,75.100000,ml +11.800000,75.000000,ml +11.900000,75.000000,ml +12.000000,75.000000,ml +12.000000,75.100000,ml +11.900000,75.100000,ml +11.900000,75.200000,ml +12.000000,75.200000,ml +12.000000,75.300000,ml +11.900000,75.300000,ml +11.800000,75.300000,ml +11.800000,75.200000,ml +11.700000,75.200000,ml +11.700000,75.300000,ml +11.700000,75.400000,ml +11.800000,75.400000,ml +11.800000,75.500000,ml +11.700000,75.500000,ml +11.800000,75.700000,ml +11.800000,75.600000,ml +11.900000,75.600000,ml +11.900000,75.700000,ml +12.000000,75.700000,ml +12.000000,75.600000,ml +12.000000,75.500000,ml +11.900000,75.500000,ml +11.900000,75.400000,ml +12.000000,75.400000,ml +12.100000,75.400000,ml +12.200000,75.400000,ml +12.200000,75.500000,ml +12.100000,75.500000,ml +12.100000,75.600000,ml +12.100000,75.700000,ml +12.200000,75.700000,ml +12.200000,75.600000,ml +12.300000,75.600000,kn +12.300000,75.700000,kn +12.400000,75.700000,kn +12.400000,75.600000,kn +12.400000,75.500000,kn +12.300000,75.500000,ml +12.300000,75.400000,ml +12.400000,75.400000,ml +12.300000,75.200000,ml +12.300000,75.300000,ml +12.200000,75.300000,ml +12.100000,75.300000,ml +12.100000,75.200000,ml +12.200000,75.200000,ml +12.200000,75.100000,ml +12.100000,75.100000,ml +12.100000,75.000000,ml +12.200000,75.000000,ml +12.300000,75.100000,ml +12.300000,75.000000,ml +12.400000,75.000000,ml +12.500000,75.000000,ml +12.500000,75.100000,ml +12.400000,75.100000,ml +12.400000,75.200000,ml +12.400000,75.300000,ml +12.500000,75.300000,ml +12.500000,75.200000,ml +12.600000,75.200000,ml +12.600000,75.300000,kn +12.700000,75.300000,kn +12.700000,75.200000,kn +12.700000,75.100000,kn +12.600000,75.100000,ml +12.600000,75.000000,ml +12.700000,75.000000,kn +12.800000,75.000000,kn +12.800000,75.100000,kn +12.900000,75.100000,kn +12.900000,75.000000,kn +13.000000,75.000000,kn +13.100000,75.100000,kn +13.000000,75.100000,kn +13.000000,75.200000,kn +13.100000,75.200000,kn +13.100000,75.300000,kn +13.000000,75.300000,kn +12.900000,75.300000,kn +12.900000,75.200000,kn +12.800000,75.200000,kn +12.800000,75.300000,kn +12.800000,75.400000,kn +12.800000,75.500000,kn +12.900000,75.500000,kn +12.900000,75.400000,kn +13.000000,75.400000,kn +13.100000,75.400000,kn +13.100000,75.500000,kn +13.000000,75.500000,kn +13.000000,75.600000,kn +13.100000,75.600000,kn +13.100000,75.700000,kn +13.000000,75.700000,kn +12.900000,75.700000,kn +12.900000,75.600000,kn +12.800000,75.600000,kn +12.800000,75.700000,kn +12.700000,75.700000,kn +12.600000,75.600000,kn +12.700000,75.600000,kn +12.700000,75.500000,kn +12.700000,75.400000,kn +12.600000,75.400000,kn +12.600000,75.500000,kn +12.500000,75.500000,kn +12.500000,75.400000,kn +12.500000,75.600000,kn +12.600000,75.700000,kn +12.500000,75.700000,kn +12.500000,75.800000,kn +12.600000,75.800000,kn +12.500000,75.900000,kn +12.500000,76.000000,kn +12.600000,76.000000,kn +12.600000,75.900000,kn +12.700000,75.900000,kn +12.700000,76.000000,kn +12.700000,75.800000,kn +12.800000,75.800000,kn +12.900000,75.800000,kn +13.000000,75.800000,kn +13.100000,75.800000,kn +13.000000,75.900000,kn +13.100000,75.900000,kn +13.100000,76.000000,kn +13.000000,76.000000,kn +12.900000,76.000000,kn +12.900000,75.900000,kn +12.800000,75.900000,kn +12.800000,76.000000,kn +12.900000,76.200000,kn +12.900000,76.100000,kn +13.000000,76.100000,kn +13.100000,76.100000,kn +13.100000,76.200000,kn +13.000000,76.200000,kn +13.000000,76.300000,kn +13.100000,76.300000,kn +13.100000,76.400000,kn +13.000000,76.400000,kn +12.900000,76.300000,kn +12.900000,76.400000,kn +12.800000,76.400000,kn +12.700000,76.400000,kn +12.700000,76.300000,kn +12.800000,76.300000,kn +12.800000,76.200000,kn +12.800000,76.100000,kn +12.700000,76.100000,kn +12.700000,76.200000,kn +12.600000,76.200000,kn +12.600000,76.100000,kn +12.500000,76.100000,kn +12.500000,76.200000,kn +12.500000,76.300000,kn +12.600000,76.300000,kn +12.600000,76.400000,kn +12.500000,76.400000,kn +12.400000,76.400000,kn +12.400000,76.300000,kn +12.300000,76.300000,kn +12.300000,76.400000,kn +12.200000,76.400000,kn +12.100000,76.400000,kn +12.100000,76.300000,kn +12.200000,76.300000,kn +12.200000,76.200000,kn +12.100000,76.200000,kn +12.100000,76.100000,kn +12.200000,76.100000,kn +12.300000,76.100000,kn +12.300000,76.200000,kn +12.400000,76.200000,kn +12.400000,76.100000,kn +12.400000,76.000000,bo +12.300000,76.000000,kn +12.300000,75.900000,kn +12.400000,75.900000,kn +12.400000,75.800000,kn +12.300000,75.800000,kn +12.200000,75.800000,kn +12.100000,75.800000,ml +12.100000,75.900000,kn +12.200000,75.900000,kn +12.200000,76.000000,kn +12.100000,76.000000,kn +12.000000,76.000000,hi +11.900000,75.900000,ml +12.000000,75.900000,ml +12.000000,75.800000,ml +11.900000,75.800000,ml +11.800000,75.800000,ml +11.800000,75.900000,ml +11.900000,76.000000,ml +11.800000,76.000000,ml +11.800000,76.100000,ml +11.800000,76.200000,ml +11.900000,76.200000,ml +11.900000,76.100000,ml +12.000000,76.100000,ml +12.000000,76.200000,ml +12.000000,76.300000,kn +12.000000,76.400000,kn +11.900000,76.400000,ml +11.900000,76.300000,ml +11.800000,76.300000,ml +11.800000,76.400000,ml +11.700000,76.400000,ml +11.600000,76.400000,ml +11.600000,76.300000,ml +11.700000,76.300000,ml +11.700000,76.200000,ml +11.700000,76.100000,ml +11.600000,76.100000,ml +11.600000,76.200000,ml +11.500000,76.200000,ml +11.500000,76.100000,ml +11.400000,76.100000,ml +11.400000,76.200000,ml +11.400000,76.300000,ml +11.500000,76.300000,ml +11.500000,76.400000,ml +11.400000,76.400000,ml +11.300000,76.400000,ml +11.300000,76.300000,ml +11.200000,76.400000,ml +11.100000,76.400000,ml +11.100000,76.300000,ml +11.200000,76.300000,ml +11.200000,76.200000,ml +11.100000,76.200000,ml +11.100000,76.100000,ml +11.200000,76.100000,ml +11.300000,76.200000,ml +11.300000,76.100000,ml +11.300000,76.000000,ml +11.300000,75.900000,ml +11.200000,75.900000,ml +11.200000,76.000000,ml +11.100000,76.000000,ml +11.100000,75.900000,ml +11.100000,75.800000,ml +11.200000,75.800000,ml +11.300000,75.800000,ml +11.400000,75.800000,ml +11.500000,75.800000,ml +11.400000,75.900000,ml +11.400000,76.000000,ml +11.500000,76.000000,ml +11.500000,75.900000,ml +11.600000,75.900000,ml +11.600000,76.000000,ml +11.700000,76.000000,ml +11.700000,75.900000,ml +11.600000,75.800000,ml +11.700000,75.800000,ml +11.700000,75.700000,ml +11.700000,75.600000,ml +11.600000,75.600000,ml +11.600000,75.700000,ml +11.500000,75.700000,ml +11.400000,75.700000,ml +11.400000,75.600000,ml +11.500000,75.600000,ml +11.500000,75.500000,ml +11.400000,75.500000,ml +11.400000,75.400000,ml +11.500000,75.400000,ml +11.600000,75.400000,ml +11.600000,75.500000,ml +11.600000,75.300000,ml +11.600000,75.200000,ml +11.600000,75.100000,ml +11.600000,75.000000,ml +11.500000,75.000000,ml +11.500000,75.100000,ml +11.400000,75.000000,ml +11.400000,75.100000,ml +11.400000,75.200000,ml +11.500000,75.200000,ml +11.500000,75.300000,ml +11.400000,75.300000,ml +11.300000,75.300000,ml +11.200000,75.300000,ml +11.200000,75.200000,ml +11.300000,75.200000,ml +11.300000,75.100000,ml +11.100000,75.200000,ml +11.100000,75.300000,ml +11.000000,75.300000,ml +11.000000,75.400000,ml +11.000000,75.500000,ml +11.100000,75.500000,en +11.100000,75.400000,ml +11.200000,75.400000,ml +11.300000,75.400000,ml +11.300000,75.500000,ml +11.200000,75.500000,ml +11.200000,75.600000,ml +11.300000,75.600000,ml +11.300000,75.700000,ml +11.200000,75.700000,ml +11.100000,75.700000,ml +11.100000,75.600000,ml +11.000000,75.600000,ml +11.000000,75.700000,ml +10.900000,75.600000,ml +10.900000,75.700000,ml +10.800000,75.700000,ml +10.700000,75.700000,ml +10.700000,75.600000,ml +10.800000,75.600000,ml +10.800000,75.500000,ml +10.700000,75.500000,ml +10.700000,75.400000,ml +10.800000,75.400000,ml +10.900000,75.500000,ml +10.900000,75.400000,ml +10.900000,75.300000,ml +10.600000,75.500000,ml +10.500000,75.500000,ml +10.500000,75.600000,ml +10.600000,75.600000,ml +10.600000,75.700000,ml +10.500000,75.700000,ml +10.400000,75.700000,ml +10.400000,75.600000,ml +10.300000,75.600000,ml +10.300000,75.700000,ml +10.400000,75.800000,ml +10.400000,76.000000,ml +10.400000,75.900000,ml +10.500000,75.900000,ml +10.500000,76.000000,ml +10.600000,76.000000,ml +10.600000,75.900000,ml +10.500000,75.800000,ml +10.600000,75.800000,ml +10.700000,75.800000,ml +10.800000,75.800000,ml +10.900000,75.800000,ml +11.000000,75.800000,ml +10.900000,75.900000,ml +11.000000,75.900000,ml +11.000000,76.000000,ml +10.900000,76.000000,ml +10.800000,76.000000,ml +10.800000,75.900000,ml +10.700000,75.900000,ml +10.700000,76.000000,ml +10.700000,76.100000,ml +10.700000,76.200000,ml +10.800000,76.200000,ml +10.800000,76.100000,ml +10.900000,76.100000,ml +11.000000,76.100000,ml +11.000000,76.200000,ml +10.900000,76.200000,ml +10.900000,76.300000,ml +11.000000,76.300000,ml +11.000000,76.400000,ml +10.900000,76.400000,ml +10.800000,76.400000,ml +10.800000,76.300000,ml +10.700000,76.300000,ml +10.700000,76.400000,ml +10.600000,76.400000,ml +10.500000,76.300000,ml +10.600000,76.300000,ml +10.600000,76.200000,ml +10.600000,76.100000,ml +10.500000,76.100000,ml +10.500000,76.200000,ml +10.400000,76.100000,ml +10.400000,76.200000,ml +10.400000,76.300000,ml +10.500000,76.400000,ml +10.400000,76.400000,ml +10.400000,76.500000,ml +10.400000,76.600000,ml +10.500000,76.600000,ml +10.500000,76.500000,ml +10.600000,76.500000,ml +10.600000,76.600000,ml +10.600000,76.700000,ml +10.600000,76.800000,ml +10.500000,76.800000,ta +10.500000,76.700000,ml +10.400000,76.700000,ml +10.400000,76.800000,ta +10.400000,76.900000,ta +10.500000,76.900000,ta +10.500000,77.000000,ta +10.400000,77.000000,ta +10.400000,77.100000,ta +10.500000,77.100000,ta +10.600000,77.100000,ta +10.700000,77.100000,ta +10.700000,77.000000,ta +10.600000,77.000000,ta +10.600000,76.900000,ta +10.700000,76.900000,ta +10.800000,76.900000,ta +10.800000,77.000000,ta +10.800000,77.100000,ta +10.900000,77.100000,ta +11.000000,77.100000,ta +11.000000,77.000000,ta +10.900000,77.000000,ta +10.900000,76.900000,ta +11.000000,76.900000,ta +11.000000,76.800000,ta +11.000000,76.700000,ta +10.900000,76.700000,ta +10.900000,76.800000,ta +10.800000,76.800000,ta +10.700000,76.800000,ml +10.700000,76.700000,ml +10.800000,76.700000,ml +10.800000,76.600000,ml +10.700000,76.600000,ml +10.700000,76.500000,ml +10.800000,76.500000,ml +10.900000,76.500000,ml +10.900000,76.600000,ml +11.000000,76.600000,ml +11.000000,76.500000,ml +11.100000,76.500000,ml +11.200000,76.500000,ml +11.200000,76.600000,ta +11.100000,76.600000,ml +11.100000,76.700000,ta +11.100000,76.800000,ta +11.200000,76.800000,ta +11.200000,76.700000,ta +11.300000,76.700000,ta +11.300000,76.800000,ta +11.400000,76.800000,ta +11.400000,76.700000,ta +11.300000,76.600000,ta +11.300000,76.500000,ml +11.400000,76.500000,ta +11.400000,76.600000,ta +11.500000,76.600000,ta +11.500000,76.500000,ta +11.600000,76.500000,ta +11.700000,76.500000,ml +11.700000,76.600000,kn +11.600000,76.600000,ta +11.600000,76.700000,ta +11.700000,76.700000,kn +11.700000,76.800000,kn +11.600000,76.800000,ta +11.500000,76.800000,ta +11.500000,76.700000,ta +11.500000,77.000000,ta +11.500000,76.900000,ta +11.600000,76.900000,ta +11.700000,76.900000,kn +11.700000,77.000000,ta +11.600000,77.000000,ta +11.600000,77.100000,ta +11.700000,77.100000,ta +11.500000,77.100000,ta +11.300000,77.100000,ta +11.400000,77.100000,ta +11.400000,77.000000,ta +11.400000,76.900000,ta +11.300000,76.900000,ta +11.300000,77.000000,ta +11.200000,77.000000,ta +11.200000,76.900000,ta +11.100000,76.900000,ta +11.100000,77.000000,ta +11.100000,77.100000,ta +11.200000,77.100000,ta +11.100000,77.200000,ta +11.200000,77.200000,ta +11.200000,77.300000,ta +11.100000,77.300000,ta +11.100000,77.400000,ta +11.100000,77.500000,ta +11.200000,77.500000,ta +11.200000,77.400000,ta +11.300000,77.400000,ta +11.300000,77.500000,ta +11.400000,77.500000,ta +11.400000,77.400000,ta +11.400000,77.300000,ta +11.300000,77.300000,ta +11.300000,77.200000,ta +11.400000,77.200000,ta +11.500000,77.200000,ta +11.500000,77.300000,ta +11.600000,77.300000,ta +11.600000,77.200000,ta +11.700000,77.200000,ta +11.700000,77.300000,ta +11.700000,77.400000,ta +11.700000,77.500000,ta +11.600000,77.500000,ta +11.600000,77.400000,ta +11.500000,77.400000,ta +11.500000,77.500000,ta +11.500000,77.600000,ta +11.500000,77.700000,ta +11.600000,77.700000,ta +11.600000,77.600000,ta +11.700000,77.600000,ta +11.800000,77.700000,ta +11.700000,77.700000,ta +11.700000,77.800000,ta +11.800000,77.800000,ta +11.800000,77.900000,ta +11.700000,77.900000,ta +11.600000,77.900000,ta +11.600000,77.800000,ta +11.500000,77.800000,ta +11.500000,77.900000,ta +11.400000,77.900000,ta +11.300000,77.900000,ta +11.300000,77.800000,ta +11.400000,77.800000,ta +11.400000,77.700000,ta +11.400000,77.600000,ta +11.300000,77.600000,ta +11.300000,77.700000,ta +11.200000,77.700000,ta +11.200000,77.600000,ta +11.100000,77.600000,ta +11.100000,77.700000,ta +11.100000,77.800000,ta +11.200000,77.800000,ta +11.200000,77.900000,ta +11.100000,77.900000,ta +11.000000,77.800000,ta +11.000000,77.900000,ta +10.900000,77.900000,ta +10.800000,77.900000,ta +10.800000,77.800000,ta +10.900000,77.800000,ta +10.900000,77.700000,ta +10.800000,77.700000,ta +10.800000,77.600000,ta +10.900000,77.600000,ta +11.000000,77.700000,ta +11.000000,77.600000,ta +11.000000,77.500000,ta +10.900000,77.400000,ta +11.000000,77.400000,ta +11.000000,77.300000,ta +11.000000,77.200000,ta +10.900000,77.200000,ta +10.900000,77.300000,ta +10.800000,77.200000,ta +10.800000,77.300000,ta +10.800000,77.400000,ta +10.900000,77.500000,ta +10.800000,77.500000,ta +10.700000,77.500000,ta +10.600000,77.500000,ta +10.600000,77.400000,ta +10.700000,77.400000,ta +10.700000,77.300000,ta +10.700000,77.200000,ta +10.600000,77.200000,ta +10.600000,77.300000,ta +10.500000,77.300000,ta +10.500000,77.200000,ta +10.400000,77.200000,ta +10.400000,77.300000,ta +10.400000,77.400000,ta +10.500000,77.400000,ta +10.500000,77.500000,ta +10.400000,77.500000,ta +10.400000,77.600000,ta +10.400000,77.700000,ta +10.500000,77.700000,ta +10.500000,77.600000,ta +10.600000,77.600000,ta +10.700000,77.600000,ta +10.700000,77.700000,ta +10.600000,77.700000,ta +10.600000,77.800000,ta +10.700000,77.800000,ta +10.700000,77.900000,ta +10.600000,77.900000,ta +10.500000,77.900000,ta +10.500000,77.800000,ta +10.400000,77.800000,ta +10.400000,77.900000,ta +10.400000,78.000000,ta +10.500000,78.000000,ta +10.500000,78.100000,ta +10.400000,78.100000,ta +10.500000,78.200000,ta +10.600000,78.200000,ta +10.700000,78.200000,ta +10.700000,78.100000,ta +10.600000,78.100000,ta +10.600000,78.000000,ta +10.700000,78.000000,ta +10.800000,78.000000,ta +10.800000,78.100000,ta +10.900000,78.100000,ta +10.900000,78.000000,ta +11.000000,78.000000,ta +11.100000,78.000000,ta +11.100000,78.100000,ta +11.000000,78.100000,ta +11.000000,78.200000,ta +11.100000,78.200000,ta +10.900000,78.200000,ta +10.800000,78.200000,ta +10.800000,78.300000,ta +10.800000,78.400000,ta +10.900000,78.400000,ta +10.900000,78.300000,ta +11.000000,78.300000,ta +11.100000,78.300000,ta +11.100000,78.400000,ta +11.000000,78.400000,ta +11.000000,78.500000,ta +11.100000,78.500000,ta +11.100000,78.600000,ta +11.000000,78.600000,ta +10.900000,78.600000,ta +10.900000,78.500000,ta +10.800000,78.500000,ta +10.800000,78.600000,ta +10.700000,78.600000,ta +10.600000,78.600000,ta +10.600000,78.500000,ta +10.700000,78.500000,ta +10.700000,78.400000,ta +10.700000,78.300000,ta +10.600000,78.300000,ta +10.600000,78.400000,ta +10.500000,78.400000,ta +10.500000,78.300000,ta +10.500000,78.500000,ta +10.500000,78.600000,ta +10.500000,78.700000,ta +10.500000,78.800000,ta +10.600000,78.700000,ta +10.700000,78.700000,ta +10.700000,78.800000,ta +10.600000,78.800000,ta +10.700000,78.900000,ta +10.700000,79.000000,ta +10.600000,79.000000,ta +10.600000,78.900000,ta +10.500000,78.900000,ta +10.500000,79.000000,ta +10.500000,79.100000,ta +10.600000,79.100000,ta +10.500000,79.200000,ta +10.500000,79.300000,ta +10.600000,79.300000,ta +10.600000,79.200000,ta +10.700000,79.200000,ta +10.700000,79.300000,ta +10.700000,79.100000,ta +10.800000,79.100000,ta +10.900000,79.100000,ta +10.800000,79.200000,ta +10.800000,79.300000,ta +10.900000,79.300000,ta +10.900000,79.200000,ta +11.000000,79.200000,ta +11.000000,79.300000,ta +11.100000,79.300000,ta +11.100000,79.200000,ta +11.000000,79.100000,ta +11.100000,79.100000,ta +11.100000,79.000000,ta +11.100000,78.900000,ta +11.000000,78.900000,ta +11.000000,79.000000,ta +10.900000,79.000000,ta +10.800000,79.000000,ta +10.800000,78.900000,ta +10.900000,78.900000,ta +10.900000,78.800000,ta +10.800000,78.800000,ta +10.800000,78.700000,ta +10.900000,78.700000,ta +11.000000,78.700000,ta +11.000000,78.800000,ta +11.100000,78.800000,ta +11.100000,78.700000,ta +11.200000,78.700000,ta +11.200000,78.800000,ta +11.300000,78.800000,ta +11.300000,78.700000,ta +11.400000,78.700000,ta +11.400000,78.800000,ta +11.400000,78.900000,ta +11.400000,79.000000,ta +11.300000,79.000000,ta +11.300000,78.900000,ta +11.200000,78.900000,ta +11.200000,79.000000,ta +11.200000,79.100000,ta +11.300000,79.100000,ta +11.200000,79.200000,ta +11.200000,79.300000,ta +11.300000,79.300000,ta +11.300000,79.200000,ta +11.400000,79.200000,ta +11.400000,79.300000,ta +11.500000,79.300000,ta +11.500000,79.200000,ta +11.400000,79.100000,ta +11.500000,79.100000,ta +11.600000,79.100000,ta +11.600000,79.300000,ta +11.600000,79.200000,ta +11.700000,79.200000,ta +11.700000,79.300000,ta +11.800000,79.300000,ta +11.800000,79.200000,ta +11.700000,79.100000,ta +11.800000,79.100000,ta +11.800000,79.000000,ta +11.800000,78.900000,ta +11.700000,78.900000,ta +11.700000,79.000000,ta +11.600000,79.000000,ta +11.500000,79.000000,ta +11.500000,78.900000,ta +11.600000,78.900000,ta +11.600000,78.800000,ta +11.500000,78.800000,ta +11.500000,78.700000,ta +11.600000,78.700000,ta +11.700000,78.700000,ta +11.700000,78.800000,ta +11.800000,78.800000,ta +11.800000,78.700000,ta +11.800000,78.600000,ta +11.700000,78.600000,ta +11.700000,78.500000,ta +11.800000,78.500000,ta +11.800000,78.400000,ta +11.800000,78.300000,ta +11.700000,78.300000,ta +11.700000,78.400000,ta +11.600000,78.400000,ta +11.600000,78.300000,ta +11.500000,78.300000,ta +11.500000,78.400000,ta +11.500000,78.500000,ta +11.600000,78.500000,ta +11.600000,78.600000,ta +11.500000,78.600000,ta +11.400000,78.600000,ta +11.400000,78.500000,ta +11.300000,78.500000,ta +11.300000,78.600000,ta +11.200000,78.600000,ta +11.200000,78.500000,ta +11.200000,78.400000,ta +11.200000,78.300000,ta +11.300000,78.300000,ta +11.300000,78.400000,ta +11.400000,78.400000,ta +11.400000,78.300000,ta +11.400000,78.200000,ta +11.300000,78.200000,ta +11.200000,78.200000,ta +11.200000,78.100000,ta +11.200000,78.000000,ta +11.300000,78.000000,ta +11.300000,78.100000,ta +11.400000,78.100000,ta +11.400000,78.000000,ta +11.500000,78.000000,ta +11.600000,78.000000,ta +11.600000,78.100000,ta +11.500000,78.100000,ta +11.500000,78.200000,ta +11.600000,78.200000,ta +11.700000,78.200000,ta +11.800000,78.200000,ta +11.800000,78.100000,ta +11.700000,78.100000,ta +11.700000,78.000000,ta +11.800000,78.000000,ta +11.900000,78.000000,ta +11.900000,78.100000,ta +11.900000,78.200000,ta +12.000000,78.200000,ta +12.100000,78.200000,ta +12.100000,78.100000,ta +12.000000,78.100000,ta +12.000000,78.000000,ta +12.100000,78.000000,ta +12.200000,78.000000,ta +12.200000,78.100000,ta +12.300000,78.100000,ta +12.300000,78.000000,ta +12.400000,78.000000,ta +12.500000,78.000000,ta +12.500000,78.100000,ta +12.400000,78.100000,ta +12.400000,78.200000,ta +12.500000,78.200000,ta +12.300000,78.200000,ta +12.200000,78.200000,ta +12.200000,78.300000,ta +12.200000,78.400000,ta +12.300000,78.400000,ta +12.300000,78.300000,ta +12.400000,78.300000,ta +12.500000,78.300000,ta +12.500000,78.400000,ta +12.400000,78.400000,ta +12.400000,78.500000,ta +12.500000,78.500000,ta +12.500000,78.600000,ta +12.400000,78.600000,ta +12.300000,78.600000,ta +12.300000,78.500000,ta +12.200000,78.500000,ta +12.200000,78.600000,ta +12.100000,78.600000,ta +12.100000,78.500000,ta +12.100000,78.300000,ta +12.100000,78.400000,ta +12.000000,78.400000,ta +12.000000,78.300000,ta +11.900000,78.300000,ta +11.900000,78.400000,ta +11.900000,78.500000,ta +12.000000,78.500000,ta +12.000000,78.600000,ta +11.900000,78.600000,ta +11.900000,78.700000,ta +11.900000,78.800000,ta +12.000000,78.800000,ta +12.000000,78.700000,ta +12.100000,78.700000,ta +12.200000,78.700000,ta +12.200000,78.800000,ta +12.100000,78.800000,ta +12.100000,78.900000,ta +12.200000,78.900000,ta +12.200000,79.000000,ta +12.100000,79.000000,ta +12.000000,79.000000,ta +12.000000,78.900000,ta +11.900000,78.900000,ta +11.900000,79.000000,ta +11.900000,79.100000,ta +12.000000,79.100000,ta +11.900000,79.200000,ta +11.900000,79.300000,ta +12.000000,79.300000,ta +12.000000,79.200000,ta +12.100000,79.200000,ta +12.100000,79.300000,ta +12.200000,79.300000,ta +12.200000,79.200000,ta +12.100000,79.100000,ta +12.200000,79.100000,ta +12.300000,79.100000,ta +12.400000,79.100000,ta +12.300000,79.200000,ta +12.300000,79.300000,ta +12.400000,79.300000,ta +12.400000,79.200000,ta +12.500000,79.300000,ta +12.500000,79.200000,ta +12.500000,79.100000,ta +12.500000,79.000000,ta +12.500000,78.900000,ta +12.400000,78.900000,ta +12.400000,79.000000,ta +12.300000,79.000000,ta +12.300000,78.900000,ta +12.300000,78.800000,ta +12.300000,78.700000,ta +12.400000,78.700000,ta +12.400000,78.800000,ta +12.500000,78.800000,ta +12.500000,78.700000,ta +12.600000,78.700000,ta +12.600000,78.800000,ta +12.700000,78.800000,ta +12.700000,78.700000,ta +12.800000,78.700000,ta +12.900000,78.700000,ta +12.900000,78.800000,ta +12.800000,78.800000,ta +12.800000,78.900000,ta +12.900000,78.900000,ta +12.900000,79.000000,ta +12.800000,79.000000,ta +12.700000,79.000000,ta +12.700000,78.900000,ta +12.600000,78.900000,ta +12.600000,79.000000,ta +12.600000,79.100000,ta +12.700000,79.100000,ta +12.600000,79.200000,ta +12.600000,79.300000,ta +12.700000,79.300000,ta +12.700000,79.200000,ta +12.800000,79.200000,ta +12.800000,79.300000,ta +12.900000,79.300000,ta +12.900000,79.200000,ta +12.800000,79.100000,ta +12.900000,79.100000,ta +13.000000,79.100000,ta +13.100000,79.100000,ta +13.000000,79.200000,ta +13.000000,79.300000,ta +13.100000,79.300000,ta +13.100000,79.200000,ta +13.200000,79.200000,ta +13.200000,79.300000,ta +13.300000,79.300000,te +13.300000,79.200000,te +13.200000,79.100000,te +13.300000,79.100000,te +13.300000,79.000000,te +13.200000,78.900000,te +13.200000,79.000000,te +13.100000,79.000000,ta +13.000000,79.000000,ta +13.000000,78.900000,ta +13.100000,78.900000,ta +13.100000,78.800000,ta +13.000000,78.800000,ta +13.000000,78.700000,ta +13.100000,78.700000,te +13.200000,78.800000,te +13.200000,78.700000,te +13.200000,78.600000,te +13.100000,78.500000,kn +13.200000,78.500000,kn +13.200000,78.400000,kn +13.200000,78.300000,kn +13.100000,78.300000,kn +13.100000,78.400000,kn +13.000000,78.300000,kn +13.000000,78.400000,kn +13.000000,78.500000,te +13.100000,78.600000,te +13.000000,78.600000,ta +12.900000,78.600000,ta +12.900000,78.500000,te +12.800000,78.500000,ta +12.800000,78.600000,ta +12.700000,78.600000,ta +12.600000,78.600000,ta +12.600000,78.500000,ta +12.700000,78.500000,ta +12.700000,78.400000,ta +12.600000,78.400000,ta +12.600000,78.300000,ta +12.700000,78.300000,ta +12.800000,78.300000,te +12.800000,78.400000,te +12.900000,78.400000,te +12.900000,78.300000,kn +12.900000,78.200000,kn +12.800000,78.200000,kn +12.600000,78.200000,ta +12.700000,78.200000,ta +12.700000,78.100000,ta +12.600000,78.100000,ta +12.600000,78.000000,ta +12.700000,78.000000,ta +12.800000,78.000000,ta +12.800000,78.100000,ta +12.900000,78.100000,kn +12.900000,78.000000,kn +13.000000,78.000000,kn +13.000000,78.100000,kn +13.000000,78.200000,kn +13.100000,78.200000,kn +13.200000,78.200000,kn +13.200000,78.100000,kn +13.100000,78.100000,kn +13.100000,78.000000,hi +13.200000,78.000000,kn +13.200000,77.900000,hi +13.200000,77.800000,hi +13.100000,77.800000,hi +13.100000,77.900000,hi +13.000000,77.900000,hi +12.900000,77.900000,hi +12.900000,77.800000,hi +13.000000,77.800000,hi +13.000000,77.700000,hi +12.900000,77.700000,hi +12.900000,77.600000,hi +13.000000,77.600000,hi +13.100000,77.600000,hi +13.100000,77.700000,hi +13.200000,77.700000,hi +13.200000,77.600000,hi +13.200000,77.500000,hi +13.100000,77.500000,hi +13.100000,77.400000,kn +13.200000,77.400000,kn +13.200000,77.300000,kn +13.200000,77.200000,kn +13.100000,77.200000,kn +13.100000,77.300000,kn +13.000000,77.300000,kn +13.000000,77.200000,kn +12.900000,77.200000,kn +12.900000,77.300000,kn +12.900000,77.400000,kn +13.000000,77.400000,kn +13.000000,77.500000,kn +12.900000,77.500000,kn +12.800000,77.500000,hi +12.700000,77.500000,hi +12.700000,77.400000,kn +12.800000,77.400000,kn +12.800000,77.300000,kn +12.800000,77.200000,kn +12.700000,77.200000,kn +12.700000,77.300000,kn +12.600000,77.300000,kn +12.600000,77.200000,kn +12.500000,77.200000,kn +12.600000,77.400000,kn +12.600000,77.500000,kn +12.600000,77.600000,hi +12.600000,77.700000,ta +12.700000,77.700000,hi +12.700000,77.600000,hi +12.800000,77.600000,hi +12.800000,77.700000,hi +12.800000,77.800000,hi +12.800000,77.900000,hi +12.700000,77.900000,ta +12.700000,77.800000,ta +12.600000,77.800000,ta +12.600000,77.900000,ta +12.500000,77.900000,ta +12.400000,77.900000,ta +12.400000,77.800000,ta +12.500000,77.800000,ta +12.500000,77.700000,ta +12.500000,77.600000,ta +12.400000,77.600000,kn +12.400000,77.700000,ta +12.300000,77.700000,ta +12.300000,77.600000,kn +12.200000,77.600000,kn +12.200000,77.700000,ta +12.200000,77.800000,ta +12.300000,77.800000,ta +12.300000,77.900000,ta +12.200000,77.900000,ta +12.100000,77.900000,ta +12.100000,77.800000,ta +12.000000,77.800000,ta +12.000000,77.900000,ta +11.900000,77.900000,ta +11.900000,77.800000,ta +11.900000,77.700000,ta +11.800000,77.600000,ta +11.900000,77.600000,ta +12.000000,77.600000,kn +12.000000,77.700000,ta +12.100000,77.700000,ta +12.100000,77.600000,kn +12.100000,77.500000,kn +12.100000,77.400000,kn +12.000000,77.400000,kn +12.000000,77.500000,kn +11.900000,77.500000,kn +11.800000,77.500000,ta +11.800000,77.400000,ta +11.900000,77.400000,kn +11.900000,77.300000,kn +11.800000,77.300000,kn +11.800000,77.200000,kn +11.900000,77.200000,kn +12.000000,77.200000,kn +12.000000,77.300000,kn +12.100000,77.300000,kn +12.100000,77.200000,kn +12.200000,77.200000,kn +12.300000,77.200000,kn +12.300000,77.300000,kn +12.200000,77.300000,kn +12.200000,77.400000,kn +12.200000,77.500000,kn +12.300000,77.500000,kn +12.300000,77.400000,kn +12.400000,77.400000,kn +12.400000,77.500000,kn +12.500000,77.500000,kn +12.500000,77.400000,kn +12.500000,77.300000,kn +12.400000,77.300000,kn +12.400000,77.200000,kn +12.400000,77.100000,kn +12.400000,77.000000,kn +12.400000,76.900000,kn +12.300000,77.000000,kn +12.300000,76.900000,kn +12.200000,76.900000,kn +12.200000,77.000000,kn +12.200000,77.100000,kn +12.300000,77.100000,kn +12.100000,77.100000,kn +12.000000,77.100000,kn +11.800000,77.100000,kn +11.900000,77.100000,kn +11.900000,77.000000,kn +11.800000,77.000000,ta +11.800000,76.900000,kn +11.900000,76.900000,kn +12.000000,76.900000,kn +12.000000,77.000000,kn +12.100000,77.000000,kn +12.100000,76.900000,kn +12.100000,76.800000,kn +12.100000,76.700000,kn +12.000000,76.700000,kn +12.000000,76.800000,kn +11.900000,76.800000,kn +11.800000,76.800000,kn +11.800000,76.700000,kn +11.900000,76.700000,kn +11.900000,76.600000,kn +11.800000,76.600000,kn +11.800000,76.500000,ml +11.900000,76.500000,kn +12.000000,76.500000,kn +12.000000,76.600000,kn +12.100000,76.600000,kn +12.100000,76.500000,kn +12.200000,76.500000,kn +12.200000,76.600000,kn +12.200000,76.700000,kn +12.200000,76.800000,kn +12.300000,76.700000,kn +12.300000,76.800000,kn +12.400000,76.800000,kn +12.400000,76.700000,kn +12.400000,76.600000,kn +12.300000,76.600000,kn +12.300000,76.500000,kn +12.400000,76.500000,kn +12.500000,76.500000,kn +12.500000,76.600000,kn +12.600000,76.600000,kn +12.600000,76.500000,kn +12.700000,76.500000,kn +12.800000,76.500000,kn +12.800000,76.600000,kn +12.700000,76.600000,kn +12.700000,76.700000,kn +12.800000,76.700000,kn +12.800000,76.800000,kn +12.700000,76.800000,kn +12.600000,76.800000,kn +12.600000,76.700000,kn +12.500000,76.700000,kn +12.500000,76.800000,kn +12.500000,76.900000,kn +12.600000,76.900000,kn +12.600000,77.000000,kn +12.500000,77.000000,kn +12.500000,77.100000,kn +12.600000,77.100000,kn +12.700000,77.100000,kn +12.800000,77.100000,kn +12.800000,77.000000,kn +12.700000,77.000000,kn +12.700000,76.900000,kn +12.800000,76.900000,kn +12.900000,76.900000,kn +13.000000,76.900000,kn +13.000000,77.000000,kn +12.900000,77.000000,kn +12.900000,77.100000,kn +13.000000,77.100000,kn +13.100000,77.100000,kn +13.200000,77.100000,kn +13.200000,77.000000,kn +13.100000,77.000000,kn +13.100000,76.900000,kn +13.200000,76.900000,kn +13.100000,76.700000,kn +13.100000,76.800000,kn +13.000000,76.800000,kn +12.900000,76.800000,kn +12.900000,76.700000,kn +13.000000,76.700000,kn +13.000000,76.600000,kn +12.900000,76.600000,kn +12.900000,76.500000,kn +13.000000,76.500000,kn +13.100000,76.600000,kn +13.100000,76.500000,kn +13.200000,76.500000,kn +13.200000,76.600000,kn +13.300000,76.600000,kn +13.300000,76.500000,kn +13.400000,76.500000,kn +13.500000,76.500000,kn +13.500000,76.600000,kn +13.400000,76.600000,kn +13.400000,76.700000,kn +13.500000,76.700000,kn +13.500000,76.800000,kn +13.400000,76.800000,kn +13.300000,76.800000,kn +13.300000,76.700000,kn +13.200000,76.700000,kn +13.200000,76.800000,kn +13.300000,76.900000,kn +13.300000,77.000000,kn +13.300000,77.100000,kn +13.400000,77.100000,kn +13.500000,77.100000,kn +13.500000,77.000000,kn +13.400000,77.000000,kn +13.400000,76.900000,kn +13.500000,76.900000,kn +13.600000,76.900000,kn +13.700000,76.900000,kn +13.700000,77.000000,kn +13.600000,77.000000,kn +13.600000,77.100000,kn +13.700000,77.100000,kn +13.800000,77.100000,kn +13.900000,77.100000,kn +13.900000,77.000000,kn +13.800000,77.000000,kn +13.800000,76.900000,kn +13.900000,76.900000,kn +13.900000,76.800000,kn +13.900000,76.700000,kn +13.800000,76.700000,kn +13.800000,76.800000,kn +13.700000,76.800000,kn +13.600000,76.800000,kn +13.600000,76.700000,kn +13.700000,76.700000,kn +13.700000,76.600000,kn +13.600000,76.600000,kn +13.600000,76.500000,kn +13.700000,76.500000,kn +13.800000,76.500000,kn +13.800000,76.600000,kn +13.900000,76.600000,kn +13.900000,76.500000,kn +14.000000,76.500000,kn +14.000000,76.600000,kn +14.000000,76.700000,kn +14.000000,76.800000,kn +14.100000,76.800000,kn +14.100000,76.700000,kn +14.200000,76.800000,kn +14.200000,76.700000,kn +14.200000,76.600000,kn +14.100000,76.600000,kn +14.100000,76.500000,kn +14.200000,76.500000,kn +14.300000,76.500000,kn +14.300000,76.600000,kn +14.400000,76.600000,kn +14.400000,76.500000,kn +14.500000,76.500000,kn +14.600000,76.500000,kn +14.600000,76.600000,kn +14.500000,76.600000,kn +14.500000,76.700000,kn +14.600000,76.700000,kn +14.600000,76.800000,te +14.500000,76.800000,kn +14.400000,76.800000,kn +14.400000,76.700000,kn +14.300000,76.700000,kn +14.300000,76.800000,kn +14.300000,76.900000,kn +14.300000,77.000000,te +14.400000,77.000000,te +14.400000,76.900000,te +14.500000,76.900000,te +14.600000,76.900000,te +14.600000,77.000000,te +14.500000,77.000000,te +14.500000,77.100000,te +14.600000,77.100000,te +14.400000,77.100000,te +14.200000,77.100000,kn +14.300000,77.100000,te +14.200000,76.900000,kn +14.200000,77.000000,kn +14.100000,77.000000,kn +14.100000,76.900000,kn +14.000000,76.900000,kn +14.000000,77.000000,kn +14.000000,77.100000,te +14.100000,77.100000,kn +14.000000,77.200000,kn +14.100000,77.200000,kn +14.100000,77.300000,kn +14.000000,77.300000,te +14.000000,77.400000,te +14.000000,77.500000,te +14.100000,77.500000,te +14.100000,77.400000,te +14.200000,77.400000,kn +14.200000,77.500000,te +14.300000,77.500000,te +14.300000,77.400000,te +14.300000,77.300000,te +14.200000,77.300000,kn +14.200000,77.200000,kn +14.300000,77.200000,kn +14.400000,77.200000,te +14.400000,77.300000,te +14.500000,77.200000,te +14.600000,77.200000,te +14.600000,77.300000,te +14.500000,77.300000,te +14.600000,77.400000,te +14.600000,77.500000,te +14.500000,77.500000,te +14.500000,77.400000,te +14.400000,77.400000,te +14.400000,77.500000,te +14.400000,77.600000,te +14.400000,77.700000,te +14.500000,77.700000,te +14.500000,77.600000,te +14.600000,77.600000,te +14.700000,77.700000,te +14.600000,77.700000,te +14.600000,77.800000,te +14.700000,77.800000,te +14.700000,77.900000,te +14.600000,77.900000,te +14.500000,77.900000,te +14.500000,77.800000,te +14.400000,77.800000,te +14.400000,77.900000,te +14.300000,77.900000,te +14.200000,77.900000,te +14.200000,77.800000,ru +14.300000,77.800000,te +14.300000,77.700000,te +14.300000,77.600000,te +14.200000,77.600000,te +14.200000,77.700000,te +14.100000,77.700000,te +14.100000,77.600000,te +14.000000,77.600000,te +14.000000,77.700000,te +14.000000,77.800000,te +14.100000,77.800000,te +14.100000,77.900000,te +14.000000,77.900000,te +13.900000,77.900000,te +13.900000,77.800000,te +13.800000,77.800000,kn +13.800000,77.900000,kn +13.700000,77.900000,kn +13.700000,77.800000,kn +13.700000,77.700000,kn +13.700000,77.600000,kn +13.800000,77.600000,te +13.800000,77.700000,te +13.900000,77.700000,te +13.900000,77.600000,te +13.900000,77.500000,te +13.800000,77.500000,te +13.800000,77.400000,te +13.900000,77.400000,te +13.900000,77.300000,te +13.900000,77.200000,kn +13.800000,77.200000,kn +13.800000,77.300000,kn +13.700000,77.300000,kn +13.700000,77.200000,kn +13.600000,77.200000,kn +13.600000,77.300000,kn +13.600000,77.400000,kn +13.700000,77.400000,kn +13.700000,77.500000,hi +13.600000,77.500000,kn +13.500000,77.500000,kn +13.500000,77.400000,kn +13.500000,77.300000,kn +13.500000,77.200000,kn +13.400000,77.300000,kn +13.400000,77.200000,kn +13.300000,77.200000,kn +13.300000,77.300000,kn +13.300000,77.400000,kn +13.400000,77.400000,kn +13.400000,77.500000,kn +13.300000,77.500000,kn +13.300000,77.600000,kn +13.300000,77.700000,kn +13.400000,77.700000,kn +13.400000,77.600000,kn +13.500000,77.600000,kn +13.600000,77.600000,kn +13.600000,77.700000,kn +13.500000,77.700000,kn +13.500000,77.800000,kn +13.600000,77.800000,kn +13.600000,77.900000,kn +13.500000,77.900000,kn +13.400000,77.900000,kn +13.400000,77.800000,kn +13.300000,77.800000,kn +13.300000,77.900000,kn +13.300000,78.000000,kn +13.400000,78.000000,kn +13.400000,78.100000,kn +13.300000,78.100000,kn +13.300000,78.200000,kn +13.400000,78.200000,kn +13.500000,78.200000,kn +13.600000,78.200000,kn +13.600000,78.100000,kn +13.500000,78.100000,kn +13.500000,78.000000,kn +13.600000,78.000000,kn +13.700000,78.000000,kn +13.700000,78.100000,kn +13.800000,78.100000,te +13.800000,78.000000,kn +13.900000,78.000000,te +13.900000,78.100000,te +13.900000,78.200000,te +13.800000,78.200000,te +13.700000,78.200000,te +13.700000,78.300000,te +13.700000,78.400000,te +13.800000,78.400000,te +13.800000,78.300000,te +13.900000,78.300000,te +14.000000,78.300000,te +14.000000,78.400000,te +13.900000,78.400000,te +13.900000,78.500000,te +14.000000,78.500000,te +14.000000,78.600000,te +13.900000,78.600000,te +13.800000,78.600000,te +13.800000,78.500000,te +13.700000,78.500000,te +13.700000,78.600000,te +13.600000,78.600000,te +13.500000,78.600000,te +13.500000,78.500000,te +13.600000,78.500000,te +13.600000,78.400000,te +13.600000,78.300000,te +13.500000,78.300000,te +13.500000,78.400000,te +13.400000,78.400000,te +13.400000,78.300000,kn +13.300000,78.300000,kn +13.300000,78.400000,kn +13.300000,78.500000,te +13.400000,78.500000,te +13.400000,78.600000,te +13.300000,78.600000,te +13.300000,78.700000,te +13.300000,78.800000,te +13.400000,78.800000,te +13.400000,78.700000,te +13.500000,78.700000,te +13.600000,78.700000,te +13.600000,78.800000,te +13.500000,78.800000,te +13.500000,78.900000,te +13.600000,78.900000,te +13.600000,79.000000,te +13.500000,79.000000,te +13.400000,79.000000,te +13.400000,78.900000,te +13.300000,78.900000,te +13.400000,79.100000,te +13.400000,79.200000,te +13.400000,79.300000,te +13.500000,79.200000,te +13.500000,79.300000,te +13.600000,79.300000,te +13.600000,79.200000,te +13.500000,79.100000,te +13.600000,79.100000,te +13.700000,79.100000,te +13.800000,79.100000,te +13.700000,79.200000,te +13.700000,79.300000,te +13.800000,79.300000,te +13.800000,79.200000,te +13.900000,79.200000,te +13.900000,79.300000,te +14.000000,79.300000,te +14.000000,79.200000,te +13.900000,79.100000,te +14.000000,79.100000,te +14.000000,79.000000,te +14.000000,78.900000,te +13.900000,78.900000,te +13.900000,79.000000,te +13.800000,79.000000,te +13.700000,79.000000,te +13.700000,78.900000,te +13.800000,78.900000,te +13.800000,78.800000,te +13.700000,78.800000,te +13.700000,78.700000,te +13.800000,78.700000,te +13.900000,78.700000,te +13.900000,78.800000,te +14.000000,78.800000,te +14.000000,78.700000,te +14.100000,78.700000,te +14.100000,78.800000,te +14.200000,78.800000,te +14.200000,78.700000,te +14.300000,78.700000,te +14.300000,78.800000,te +14.300000,78.900000,te +14.400000,79.000000,te +14.300000,79.000000,te +14.200000,79.000000,te +14.200000,78.900000,te +14.100000,78.900000,te +14.100000,79.000000,te +14.100000,79.100000,te +14.200000,79.100000,te +14.100000,79.200000,te +14.100000,79.300000,te +14.200000,79.300000,te +14.200000,79.200000,te +14.300000,79.200000,te +14.300000,79.300000,te +14.400000,79.300000,te +14.400000,79.200000,te +14.300000,79.100000,te +14.400000,79.100000,te +14.500000,79.100000,te +14.500000,79.200000,te +14.500000,79.300000,te +14.600000,79.200000,te +14.600000,79.300000,te +14.700000,79.300000,te +14.700000,79.200000,te +14.600000,79.100000,te +14.700000,79.100000,te +14.700000,79.000000,te +14.700000,78.900000,te +14.600000,78.900000,te +14.600000,79.000000,te +14.500000,79.000000,te +14.400000,78.900000,te +14.500000,78.900000,te +14.500000,78.800000,te +14.400000,78.800000,te +14.400000,78.700000,te +14.500000,78.700000,te +14.600000,78.700000,te +14.600000,78.800000,te +14.700000,78.800000,te +14.700000,78.700000,te +14.700000,78.600000,te +14.600000,78.600000,te +14.600000,78.500000,te +14.700000,78.500000,te +14.700000,78.400000,te +14.700000,78.300000,te +14.600000,78.300000,te +14.600000,78.400000,te +14.500000,78.400000,te +14.500000,78.300000,te +14.400000,78.300000,te +14.400000,78.400000,te +14.400000,78.500000,te +14.500000,78.500000,te +14.500000,78.600000,te +14.400000,78.600000,te +14.300000,78.600000,te +14.300000,78.500000,te +14.200000,78.500000,te +14.200000,78.600000,te +14.100000,78.600000,te +14.100000,78.500000,te +14.100000,78.400000,te +14.100000,78.300000,te +14.200000,78.300000,te +14.200000,78.400000,te +14.300000,78.400000,te +14.300000,78.300000,te +14.300000,78.200000,te +14.200000,78.200000,te +14.000000,78.200000,te +14.100000,78.200000,te +14.100000,78.100000,te +14.000000,78.100000,te +14.000000,78.000000,te +14.100000,78.000000,te +14.200000,78.000000,te +14.200000,78.100000,te +14.300000,78.100000,te +14.300000,78.000000,te +14.400000,78.000000,te +14.500000,78.000000,te +14.500000,78.100000,te +14.400000,78.100000,te +14.400000,78.200000,te +14.500000,78.200000,te +14.600000,78.200000,te +14.700000,78.200000,te +14.700000,78.100000,te +14.600000,78.100000,te +14.600000,78.000000,te +14.700000,78.000000,te +14.800000,78.000000,te +14.900000,78.000000,te +14.900000,78.100000,te +14.800000,78.100000,te +14.800000,78.200000,te +14.900000,78.200000,te +15.000000,78.200000,te +15.000000,78.100000,te +15.000000,78.000000,te +15.100000,78.000000,te +15.100000,78.100000,te +15.200000,78.100000,te +15.200000,78.000000,te +15.300000,78.000000,te +15.400000,78.000000,te +15.400000,78.100000,te +15.300000,78.100000,te +15.300000,78.200000,te +15.400000,78.200000,te +15.200000,78.200000,te +15.100000,78.200000,te +15.200000,78.400000,te +15.200000,78.300000,te +15.300000,78.300000,te +15.400000,78.300000,te +15.400000,78.400000,te +15.300000,78.400000,te +15.300000,78.500000,te +15.400000,78.500000,te +15.400000,78.600000,te +15.300000,78.600000,te +15.200000,78.500000,te +15.200000,78.600000,te +15.100000,78.600000,te +15.000000,78.600000,te +15.000000,78.500000,te +15.100000,78.500000,te +15.100000,78.400000,te +15.100000,78.300000,te +15.000000,78.300000,te +15.000000,78.400000,te +14.900000,78.400000,te +14.900000,78.300000,te +14.800000,78.300000,te +14.800000,78.400000,te +14.800000,78.500000,te +14.900000,78.500000,te +14.900000,78.600000,te +14.800000,78.600000,te +14.800000,78.700000,te +14.800000,78.800000,te +14.900000,78.800000,te +14.900000,78.700000,te +15.000000,78.700000,te +15.100000,78.700000,te +15.100000,78.800000,te +15.000000,78.800000,te +15.000000,78.900000,te +15.100000,78.900000,te +15.100000,79.000000,te +15.000000,79.000000,te +14.900000,79.000000,te +14.900000,78.900000,te +14.800000,78.900000,te +14.800000,79.000000,te +14.800000,79.100000,te +14.900000,79.100000,te +14.800000,79.200000,te +14.800000,79.300000,te +14.900000,79.300000,te +14.900000,79.200000,te +15.000000,79.200000,te +15.000000,79.300000,te +15.100000,79.300000,te +15.100000,79.200000,te +15.000000,79.100000,te +15.100000,79.100000,te +15.200000,79.100000,te +15.300000,79.100000,te +15.200000,79.200000,te +15.200000,79.300000,te +15.300000,79.300000,te +15.300000,79.200000,te +15.400000,79.200000,te +15.400000,79.300000,te +15.500000,79.300000,te +15.500000,79.200000,te +15.400000,79.100000,te +15.500000,79.100000,te +15.500000,79.000000,te +15.500000,78.900000,te +15.400000,78.900000,te +15.400000,79.000000,te +15.300000,79.000000,te +15.200000,79.000000,te +15.200000,78.900000,te +15.300000,78.900000,te +15.300000,78.800000,te +15.200000,78.800000,te +15.200000,78.700000,te +15.300000,78.700000,te +15.400000,78.800000,te +15.400000,78.700000,te +15.500000,78.700000,te +15.500000,78.800000,te +15.600000,78.800000,te +15.600000,78.700000,te +15.700000,78.700000,te +15.800000,78.700000,te +15.800000,78.800000,te +15.700000,78.800000,te +15.700000,78.900000,te +15.800000,78.900000,te +15.800000,79.000000,te +15.700000,79.000000,te +15.600000,79.000000,te +15.600000,78.900000,te +15.600000,79.100000,te +15.600000,79.200000,te +15.600000,79.300000,te +15.700000,79.300000,te +15.700000,79.200000,te +15.800000,79.300000,te +15.800000,79.200000,te +15.700000,79.100000,te +15.800000,79.100000,te +15.900000,79.100000,te +16.000000,79.100000,te +15.900000,79.200000,te +15.900000,79.300000,te +16.000000,79.300000,te +16.000000,79.200000,te +16.100000,79.200000,te +16.100000,79.300000,te +16.200000,79.300000,te +16.200000,79.200000,te +16.100000,79.100000,te +16.200000,79.100000,te +16.200000,79.000000,te +16.200000,78.900000,te +16.100000,78.900000,te +16.100000,79.000000,te +16.000000,79.000000,te +15.900000,79.000000,te +15.900000,78.900000,te +16.000000,78.900000,te +16.000000,78.800000,te +15.900000,78.800000,te +15.900000,78.700000,te +16.000000,78.700000,te +16.100000,78.700000,te +16.100000,78.800000,te +16.200000,78.800000,te +16.200000,78.700000,te +16.200000,78.600000,te +16.100000,78.600000,te +16.100000,78.500000,te +16.200000,78.500000,te +16.200000,78.400000,te +16.200000,78.300000,te +16.100000,78.300000,te +16.100000,78.400000,te +16.000000,78.400000,te +16.000000,78.300000,te +15.900000,78.300000,te +15.900000,78.400000,te +15.900000,78.500000,te +16.000000,78.500000,te +16.000000,78.600000,te +15.900000,78.600000,te +15.800000,78.600000,te +15.800000,78.500000,te +15.700000,78.500000,te +15.700000,78.600000,te +15.600000,78.600000,te +15.500000,78.600000,te +15.500000,78.500000,te +15.600000,78.500000,te +15.600000,78.400000,te +15.500000,78.400000,te +15.500000,78.300000,te +15.600000,78.300000,te +15.700000,78.300000,te +15.700000,78.400000,te +15.800000,78.400000,te +15.800000,78.300000,te +15.800000,78.200000,te +15.700000,78.200000,te +15.500000,78.200000,te +15.600000,78.200000,te +15.600000,78.100000,te +15.500000,78.100000,te +15.500000,78.000000,te +15.600000,78.000000,te +15.700000,78.000000,te +15.700000,78.100000,te +15.800000,78.100000,te +15.800000,78.000000,te +15.900000,78.000000,te +16.000000,78.000000,te +16.000000,78.100000,te +15.900000,78.100000,te +15.900000,78.200000,te +16.000000,78.200000,te +16.100000,78.200000,te +16.200000,78.200000,te +16.100000,78.100000,te +16.100000,78.000000,te +16.100000,77.900000,te +16.100000,77.800000,te +16.000000,77.800000,te +16.000000,77.900000,te +15.900000,77.900000,te +15.900000,77.800000,te +15.900000,77.700000,te +15.900000,77.600000,te +16.000000,77.600000,te +16.000000,77.700000,te +16.100000,77.700000,te +16.100000,77.600000,te +16.100000,77.500000,kn +16.000000,77.500000,kn +16.000000,77.400000,kn +16.100000,77.400000,kn +16.100000,77.300000,kn +16.100000,77.200000,kn +16.000000,77.200000,kn +16.000000,77.300000,kn +15.900000,77.300000,te +15.900000,77.200000,te +15.800000,77.200000,te +15.800000,77.300000,te +15.800000,77.400000,te +15.900000,77.400000,te +15.900000,77.500000,te +15.800000,77.500000,te +15.700000,77.500000,te +15.700000,77.400000,te +15.700000,77.300000,te +15.700000,77.200000,te +15.600000,77.200000,te +15.600000,77.300000,te +15.500000,77.200000,te +15.500000,77.300000,te +15.500000,77.400000,te +15.600000,77.400000,te +15.600000,77.500000,te +15.500000,77.500000,te +15.500000,77.600000,te +15.500000,77.700000,te +15.600000,77.700000,te +15.600000,77.600000,te +15.700000,77.600000,te +15.800000,77.600000,te +15.800000,77.700000,te +15.700000,77.700000,te +15.700000,77.800000,te +15.800000,77.800000,te +15.800000,77.900000,te +15.700000,77.900000,te +15.600000,77.900000,te +15.600000,77.800000,te +15.500000,77.800000,te +15.500000,77.900000,te +15.400000,77.900000,te +15.300000,77.900000,te +15.300000,77.800000,te +15.400000,77.800000,te +15.400000,77.700000,te +15.400000,77.600000,te +15.300000,77.600000,te +15.300000,77.700000,te +15.200000,77.700000,te +15.200000,77.600000,te +15.100000,77.600000,te +15.100000,77.700000,te +15.100000,77.800000,te +15.200000,77.800000,te +15.200000,77.900000,te +15.100000,77.900000,te +15.000000,77.900000,te +15.000000,77.800000,te +14.900000,77.800000,te +14.900000,77.900000,te +14.800000,77.900000,te +14.800000,77.800000,te +14.800000,77.700000,te +14.700000,77.600000,te +14.800000,77.600000,te +14.900000,77.600000,te +14.900000,77.700000,te +15.000000,77.700000,te +15.000000,77.600000,te +15.000000,77.500000,te +15.000000,77.400000,te +14.900000,77.400000,te +14.900000,77.500000,te +14.800000,77.500000,te +14.700000,77.500000,te +14.700000,77.400000,te +14.800000,77.400000,te +14.800000,77.300000,te +14.700000,77.300000,te +14.700000,77.200000,te +14.800000,77.200000,te +14.900000,77.200000,te +14.900000,77.300000,te +15.000000,77.300000,te +15.000000,77.200000,te +15.100000,77.200000,te +15.200000,77.200000,te +15.200000,77.300000,te +15.100000,77.300000,te +15.100000,77.400000,te +15.100000,77.500000,te +15.200000,77.500000,te +15.200000,77.400000,te +15.300000,77.400000,te +15.300000,77.500000,te +15.400000,77.500000,te +15.400000,77.400000,te +15.400000,77.300000,te +15.300000,77.300000,te +15.300000,77.200000,te +15.400000,77.200000,te +15.300000,77.100000,kn +15.400000,77.100000,kn +15.300000,76.900000,kn +15.300000,77.000000,kn +15.200000,77.000000,kn +15.200000,76.900000,kn +15.100000,76.900000,kn +15.100000,77.000000,kn +15.100000,77.100000,kn +15.200000,77.100000,kn +15.000000,77.100000,kn +14.900000,77.100000,te +14.700000,77.100000,te +14.800000,77.100000,te +14.800000,77.000000,te +14.700000,77.000000,te +14.700000,76.900000,te +14.800000,76.900000,te +14.900000,76.900000,kn +14.900000,77.000000,te +15.000000,77.000000,kn +15.000000,76.900000,kn +15.000000,76.800000,kn +15.000000,76.700000,kn +14.900000,76.700000,kn +14.900000,76.800000,kn +14.800000,76.800000,kn +14.700000,76.800000,te +14.700000,76.700000,kn +14.800000,76.700000,kn +14.800000,76.600000,kn +14.700000,76.600000,kn +14.700000,76.500000,kn +14.800000,76.500000,kn +14.900000,76.500000,kn +14.900000,76.600000,kn +15.000000,76.600000,kn +15.000000,76.500000,kn +15.100000,76.500000,kn +15.100000,76.600000,kn +15.100000,76.700000,kn +15.100000,76.800000,kn +15.200000,76.800000,kn +15.200000,76.700000,hi +15.300000,76.800000,kn +15.300000,76.700000,kn +15.300000,76.600000,kn +15.200000,76.600000,hi +15.200000,76.500000,kn +15.300000,76.500000,kn +15.400000,76.500000,kn +15.400000,76.600000,kn +15.500000,76.600000,kn +15.500000,76.500000,kn +15.600000,76.500000,kn +15.700000,76.500000,kn +15.700000,76.600000,kn +15.600000,76.600000,kn +15.600000,76.700000,kn +15.700000,76.700000,kn +15.700000,76.800000,kn +15.600000,76.800000,kn +15.500000,76.800000,kn +15.500000,76.700000,kn +15.400000,76.700000,kn +15.400000,76.800000,kn +15.400000,76.900000,kn +15.500000,76.900000,kn +15.500000,77.000000,kn +15.400000,77.000000,kn +15.500000,77.100000,te +15.600000,77.100000,te +15.700000,77.100000,kn +15.700000,77.000000,kn +15.600000,77.000000,kn +15.600000,76.900000,kn +15.700000,76.900000,kn +15.800000,76.900000,kn +15.900000,76.900000,kn +15.900000,77.000000,kn +15.800000,77.000000,kn +15.800000,77.100000,te +15.900000,77.100000,kn +16.000000,77.100000,kn +16.100000,77.100000,kn +16.100000,77.000000,kn +16.000000,77.000000,kn +16.000000,76.900000,kn +16.100000,76.900000,kn +16.100000,76.800000,kn +16.100000,76.700000,kn +16.000000,76.700000,kn +16.000000,76.800000,kn +15.900000,76.800000,kn +15.800000,76.800000,kn +15.800000,76.700000,kn +15.900000,76.700000,kn +15.900000,76.600000,kn +15.800000,76.600000,kn +15.800000,76.500000,kn +15.900000,76.500000,kn +16.000000,76.500000,kn +16.000000,76.600000,kn +16.100000,76.600000,kn +16.100000,76.500000,kn +16.000000,76.400000,kn +16.000000,76.300000,kn +16.000000,76.200000,kn +16.000000,76.100000,kn +15.900000,76.100000,kn +15.900000,76.200000,kn +15.800000,76.100000,kn +15.800000,76.200000,kn +15.800000,76.300000,kn +15.900000,76.300000,kn +15.900000,76.400000,kn +15.800000,76.400000,kn +15.700000,76.400000,kn +15.700000,76.300000,kn +15.600000,76.300000,kn +15.600000,76.400000,kn +15.500000,76.400000,kn +15.400000,76.400000,kn +15.400000,76.300000,kn +15.500000,76.300000,kn +15.500000,76.200000,kn +15.400000,76.200000,kn +15.400000,76.100000,kn +15.500000,76.100000,kn +15.600000,76.100000,kn +15.600000,76.200000,kn +15.700000,76.200000,kn +15.700000,76.100000,kn +15.700000,76.000000,kn +15.600000,75.900000,kn +15.600000,76.000000,kn +15.500000,76.000000,kn +15.400000,76.000000,kn +15.400000,75.900000,kn +15.500000,75.900000,kn +15.400000,75.800000,kn +15.500000,75.800000,kn +15.600000,75.800000,kn +15.700000,75.800000,kn +15.800000,75.800000,kn +15.700000,75.900000,kn +15.800000,76.000000,kn +15.800000,75.900000,kn +15.900000,75.900000,kn +15.900000,76.000000,kn +16.000000,76.000000,kn +16.000000,75.900000,kn +15.900000,75.800000,kn +16.000000,75.800000,kn +16.000000,75.700000,kn +16.000000,75.600000,kn +15.900000,75.600000,kn +15.900000,75.700000,kn +15.800000,75.700000,kn +15.700000,75.700000,kn +15.700000,75.600000,kn +15.800000,75.600000,kn +15.800000,75.500000,kn +15.700000,75.500000,kn +15.700000,75.400000,kn +15.800000,75.400000,kn +15.900000,75.400000,kn +15.900000,75.500000,kn +16.000000,75.500000,kn +16.000000,75.400000,kn +16.000000,75.300000,kn +15.900000,75.300000,kn +15.900000,75.200000,kn +16.000000,75.200000,kn +16.000000,75.100000,kn +16.000000,75.000000,kn +15.900000,75.000000,kn +15.900000,75.100000,kn +15.800000,75.100000,kn +15.800000,75.000000,kn +15.700000,75.000000,kn +15.700000,75.100000,kn +15.700000,75.200000,kn +15.800000,75.200000,kn +15.800000,75.300000,kn +15.700000,75.300000,kn +15.600000,75.300000,kn +15.500000,75.300000,kn +15.500000,75.200000,kn +15.600000,75.200000,kn +15.600000,75.100000,kn +15.600000,75.000000,kn +15.500000,75.000000,kn +15.500000,75.100000,kn +15.400000,75.100000,kn +15.400000,75.000000,kn +15.300000,75.000000,kn +15.300000,75.100000,kn +15.300000,75.200000,kn +15.400000,75.200000,kn +15.400000,75.300000,kn +15.300000,75.300000,kn +15.300000,75.400000,kn +15.400000,75.500000,kn +15.400000,75.400000,kn +15.500000,75.400000,kn +15.600000,75.400000,kn +15.600000,75.500000,kn +15.500000,75.500000,kn +15.500000,75.600000,kn +15.600000,75.600000,kn +15.600000,75.700000,kn +15.500000,75.700000,kn +15.400000,75.600000,kn +15.400000,75.700000,kn +15.300000,75.700000,kn +15.300000,75.600000,kn +15.200000,75.600000,kn +15.200000,75.700000,kn +15.100000,75.700000,kn +15.000000,75.700000,kn +15.000000,75.600000,kn +15.100000,75.600000,kn +15.100000,75.500000,kn +15.000000,75.500000,kn +15.000000,75.400000,kn +15.100000,75.400000,kn +15.200000,75.400000,kn +15.200000,75.500000,kn +15.300000,75.500000,kn +15.200000,75.300000,kn +15.200000,75.200000,kn +15.200000,75.100000,kn +15.200000,75.000000,kn +15.100000,75.000000,kn +15.100000,75.100000,kn +15.000000,75.000000,bo +15.000000,75.100000,kn +15.000000,75.200000,kn +15.100000,75.200000,kn +15.100000,75.300000,kn +15.000000,75.300000,kn +14.900000,75.300000,kn +14.800000,75.300000,kn +14.800000,75.200000,kn +14.900000,75.200000,kn +14.900000,75.100000,kn +14.900000,75.000000,kn +14.800000,75.000000,kn +14.800000,75.100000,kn +14.700000,75.100000,kn +14.700000,75.000000,kn +14.600000,75.000000,kn +14.600000,75.100000,kn +14.600000,75.200000,kn +14.700000,75.200000,kn +14.700000,75.300000,kn +14.600000,75.300000,kn +14.600000,75.400000,kn +14.600000,75.500000,kn +14.700000,75.500000,kn +14.700000,75.400000,kn +14.800000,75.400000,kn +14.900000,75.400000,kn +14.900000,75.500000,kn +14.800000,75.500000,kn +14.800000,75.600000,kn +14.900000,75.600000,kn +14.900000,75.700000,kn +14.800000,75.700000,kn +14.700000,75.700000,kn +14.700000,75.600000,kn +14.600000,75.600000,kn +14.600000,75.700000,kn +14.600000,75.800000,kn +14.700000,75.800000,kn +14.600000,75.900000,kn +14.700000,76.000000,kn +14.700000,75.900000,kn +14.800000,75.900000,kn +14.800000,76.000000,kn +14.900000,76.000000,kn +14.900000,75.900000,kn +14.800000,75.800000,kn +14.900000,75.800000,kn +15.000000,75.800000,kn +15.100000,75.800000,kn +15.200000,75.800000,kn +15.300000,75.800000,kn +15.200000,75.900000,kn +15.300000,75.900000,kn +15.300000,76.000000,kn +15.200000,76.000000,kn +15.100000,76.000000,kn +15.100000,75.900000,kn +15.000000,75.900000,kn +15.000000,76.000000,kn +15.000000,76.100000,kn +15.000000,76.200000,kn +15.100000,76.200000,kn +15.100000,76.100000,kn +15.200000,76.100000,kn +15.300000,76.100000,kn +15.300000,76.200000,kn +15.200000,76.200000,kn +15.200000,76.300000,kn +15.300000,76.300000,kn +15.300000,76.400000,kn +15.200000,76.400000,kn +15.100000,76.400000,kn +15.100000,76.300000,kn +15.000000,76.300000,kn +15.000000,76.400000,kn +14.900000,76.400000,kn +14.900000,76.300000,kn +14.900000,76.200000,kn +14.900000,76.100000,kn +14.800000,76.100000,kn +14.800000,76.200000,kn +14.700000,76.100000,kn +14.700000,76.200000,kn +14.700000,76.300000,kn +14.800000,76.300000,kn +14.800000,76.400000,kn +14.700000,76.400000,kn +14.600000,76.400000,kn +14.600000,76.300000,kn +14.500000,76.300000,kn +14.500000,76.400000,kn +14.400000,76.400000,kn +14.300000,76.400000,kn +14.300000,76.300000,kn +14.400000,76.300000,kn +14.400000,76.200000,kn +14.300000,76.200000,kn +14.300000,76.100000,kn +14.400000,76.100000,kn +14.500000,76.100000,kn +14.500000,76.200000,kn +14.600000,76.200000,kn +14.600000,76.100000,kn +14.600000,76.000000,kn +14.500000,76.000000,kn +14.500000,75.900000,kn +14.500000,75.800000,kn +14.400000,75.800000,kn +14.300000,75.800000,kn +14.300000,75.900000,kn +14.400000,75.900000,kn +14.400000,76.000000,kn +14.300000,76.000000,kn +14.200000,76.000000,kn +14.100000,76.000000,kn +14.100000,75.900000,kn +14.200000,75.900000,kn +14.200000,75.800000,kn +14.100000,75.800000,kn +14.000000,75.800000,kn +13.900000,75.800000,kn +13.900000,75.900000,kn +14.000000,75.900000,kn +14.000000,76.000000,kn +13.900000,76.000000,kn +13.900000,76.100000,kn +13.900000,76.200000,kn +14.000000,76.200000,kn +14.000000,76.100000,kn +14.100000,76.100000,kn +14.200000,76.100000,kn +14.200000,76.200000,kn +14.100000,76.200000,kn +14.100000,76.300000,kn +14.200000,76.300000,kn +14.200000,76.400000,kn +14.100000,76.400000,kn +14.000000,76.400000,kn +14.000000,76.300000,kn +13.900000,76.300000,kn +13.900000,76.400000,kn +13.800000,76.400000,kn +13.800000,76.300000,kn +13.800000,76.200000,kn +13.800000,76.100000,kn +13.700000,76.200000,kn +13.700000,76.100000,kn +13.600000,76.100000,kn +13.600000,76.200000,kn +13.600000,76.300000,kn +13.700000,76.300000,kn +13.700000,76.400000,kn +13.600000,76.400000,kn +13.500000,76.400000,kn +13.500000,76.300000,kn +13.400000,76.300000,kn +13.400000,76.400000,kn +13.300000,76.400000,kn +13.200000,76.400000,kn +13.200000,76.300000,kn +13.300000,76.300000,kn +13.300000,76.200000,kn +13.200000,76.200000,kn +13.200000,76.100000,kn +13.300000,76.100000,kn +13.400000,76.100000,kn +13.400000,76.200000,kn +13.500000,76.200000,kn +13.500000,76.100000,kn +13.500000,76.000000,kn +13.500000,75.900000,kn +13.400000,75.900000,kn +13.400000,76.000000,kn +13.300000,76.000000,kn +13.200000,76.000000,kn +13.200000,75.900000,kn +13.300000,75.900000,kn +13.200000,75.800000,kn +13.300000,75.800000,kn +13.400000,75.800000,kn +13.500000,75.800000,kn +13.600000,75.800000,kn +13.600000,75.900000,kn +13.600000,76.000000,kn +13.700000,75.900000,kn +13.700000,76.000000,kn +13.800000,76.000000,kn +13.800000,75.900000,kn +13.700000,75.800000,kn +13.800000,75.800000,kn +13.800000,75.700000,kn +13.700000,75.700000,kn +13.700000,75.600000,kn +13.800000,75.600000,kn +13.800000,75.500000,kn +13.800000,75.400000,kn +13.700000,75.400000,kn +13.700000,75.500000,kn +13.600000,75.500000,kn +13.600000,75.400000,kn +13.500000,75.400000,kn +13.500000,75.500000,kn +13.500000,75.600000,kn +13.600000,75.600000,kn +13.600000,75.700000,kn +13.500000,75.700000,kn +13.400000,75.600000,kn +13.400000,75.700000,kn +13.300000,75.700000,kn +13.200000,75.700000,kn +13.200000,75.600000,kn +13.300000,75.600000,kn +13.300000,75.500000,kn +13.200000,75.500000,kn +13.200000,75.400000,kn +13.300000,75.400000,kn +13.400000,75.500000,kn +13.400000,75.400000,kn +13.400000,75.300000,kn +13.400000,75.200000,kn +13.300000,75.200000,kn +13.300000,75.300000,kn +13.200000,75.300000,kn +13.200000,75.200000,kn +13.200000,75.100000,kn +13.100000,75.000000,kn +13.200000,75.000000,kn +13.300000,75.000000,kn +13.300000,75.100000,kn +13.400000,75.100000,kn +13.400000,75.000000,kn +13.500000,75.000000,kn +13.600000,75.000000,kn +13.600000,75.100000,kn +13.500000,75.100000,kn +13.500000,75.200000,kn +13.500000,75.300000,kn +13.600000,75.300000,kn +13.600000,75.200000,kn +13.700000,75.200000,kn +13.700000,75.300000,kn +13.800000,75.300000,kn +13.800000,75.200000,kn +13.800000,75.100000,kn +13.700000,75.100000,kn +13.700000,75.000000,kn +13.800000,75.000000,kn +13.900000,75.000000,kn +13.900000,75.100000,kn +14.000000,75.100000,kn +14.000000,75.000000,kn +14.100000,75.000000,kn +14.100000,75.100000,kn +14.100000,75.200000,kn +14.100000,75.300000,kn +14.000000,75.300000,kn +14.000000,75.200000,kn +13.900000,75.200000,kn +13.900000,75.300000,kn +13.900000,75.400000,kn +14.000000,75.400000,kn +14.000000,75.500000,kn +13.900000,75.500000,kn +13.900000,75.600000,kn +13.900000,75.700000,kn +14.000000,75.700000,kn +14.000000,75.600000,kn +14.100000,75.600000,kn +14.100000,75.700000,kn +14.200000,75.700000,kn +14.200000,75.600000,kn +14.200000,75.500000,kn +14.100000,75.500000,kn +14.100000,75.400000,kn +14.200000,75.400000,kn +14.300000,75.400000,kn +14.300000,75.500000,kn +14.300000,75.600000,kn +14.300000,75.700000,kn +14.400000,75.700000,kn +14.400000,75.600000,kn +14.500000,75.700000,kn +14.500000,75.600000,kn +14.500000,75.500000,kn +14.400000,75.500000,kn +14.400000,75.400000,kn +14.500000,75.400000,kn +14.500000,75.300000,kn +14.500000,75.200000,kn +14.400000,75.200000,kn +14.400000,75.300000,kn +14.300000,75.300000,kn +14.200000,75.300000,kn +14.200000,75.200000,kn +14.300000,75.200000,kn +14.300000,75.100000,kn +14.200000,75.100000,kn +14.200000,75.000000,kn +14.300000,75.000000,kn +14.400000,75.000000,kn +14.400000,75.100000,kn +14.500000,75.100000,kn +14.500000,75.000000,kn +14.500000,74.900000,kn +14.500000,74.800000,kn +14.400000,74.800000,kn +14.400000,74.900000,kn +14.300000,74.900000,kn +14.200000,74.900000,kn +14.200000,74.800000,kn +14.300000,74.800000,kn +14.300000,74.700000,kn +14.200000,74.700000,kn +14.200000,74.600000,kn +14.300000,74.600000,kn +14.400000,74.600000,kn +14.400000,74.700000,kn +14.500000,74.700000,kn +14.500000,74.600000,kn +14.500000,74.500000,kn +14.400000,74.500000,kn +14.500000,74.400000,kn +14.400000,74.300000,kn +14.400000,74.400000,kn +14.300000,74.400000,kn +14.300000,74.300000,kn +14.200000,74.300000,kn +14.200000,74.400000,kn +14.300000,74.500000,kn +14.200000,74.500000,kn +14.100000,74.500000,kn +14.000000,74.500000,kn +14.100000,74.400000,kn +14.100000,74.300000,kn +14.000000,74.300000,kn +14.000000,74.400000,kn +13.900000,74.400000,kn +13.900000,74.300000,kn +13.800000,74.300000,kn +13.800000,74.400000,kn +13.900000,74.500000,kn +13.800000,74.500000,kn +13.800000,74.600000,kn +13.800000,74.700000,kn +13.900000,74.700000,kn +13.900000,74.600000,kn +14.000000,74.600000,kn +14.100000,74.600000,kn +14.100000,74.700000,kn +14.000000,74.700000,kn +14.000000,74.800000,kn +14.100000,74.800000,kn +14.100000,74.900000,kn +14.000000,74.900000,kn +13.900000,74.800000,kn +13.900000,74.900000,kn +13.800000,74.900000,kn +13.700000,74.900000,kn +13.700000,74.800000,kn +13.800000,74.800000,kn +13.700000,74.600000,kn +13.700000,74.700000,kn +13.600000,74.700000,kn +13.600000,74.600000,kn +13.500000,74.600000,kn +13.500000,74.700000,kn +13.500000,74.800000,kn +13.600000,74.800000,kn +13.600000,74.900000,kn +13.500000,74.900000,kn +13.400000,74.900000,kn +13.400000,74.800000,kn +13.300000,74.800000,kn +13.300000,74.900000,kn +13.200000,74.900000,kn +13.100000,74.900000,kn +13.100000,74.800000,kn +13.200000,74.800000,kn +13.200000,74.700000,kn +13.100000,74.700000,kn +13.100000,74.600000,kn +13.200000,74.600000,kn +13.300000,74.600000,kn +13.300000,74.700000,kn +13.400000,74.700000,kn +13.400000,74.600000,kn +13.400000,74.500000,kn +13.300000,74.500000,kn +13.200000,74.500000,kn +13.100000,74.500000,kn +13.200000,74.400000,kn +13.100000,74.400000,kn +13.300000,74.300000,kn +13.300000,74.400000,kn +13.400000,74.400000,kn +13.400000,74.300000,kn +13.500000,74.300000,kn +13.600000,74.400000,kn +13.500000,74.400000,kn +13.500000,74.500000,kn +13.600000,74.500000,kn +13.700000,74.500000,kn +13.700000,74.400000,kn +13.600000,74.300000,kn +13.700000,74.300000,kn +13.700000,74.200000,kn +13.600000,74.200000,kn +13.800000,74.200000,kn +13.900000,74.200000,kn +13.900000,74.100000,kn +14.000000,74.100000,kn +14.000000,74.200000,kn +14.100000,74.200000,kn +14.100000,74.100000,kn +14.200000,74.000000,kn +14.200000,74.100000,kn +14.200000,74.200000,kn +14.300000,74.200000,kn +14.300000,74.100000,kn +14.400000,74.200000,kn +14.400000,74.100000,kn +14.400000,74.000000,kn +14.300000,74.000000,kn +14.400000,73.900000,kn +14.600000,73.800000,hi +14.700000,73.800000,hi +14.800000,73.800000,hi +15.100000,73.600000,hi +15.000000,73.700000,hi +15.100000,73.700000,ru +15.100000,73.800000,hi +15.000000,73.800000,hi +14.900000,73.700000,hi +14.900000,73.800000,ru +14.900000,73.900000,hi +14.900000,74.000000,hi +15.000000,74.000000,ru +15.000000,73.900000,hi +15.100000,73.900000,hi +15.100000,74.000000,hi +15.100000,74.100000,hi +15.200000,74.100000,hi +15.200000,74.200000,hi +15.100000,74.200000,hi +15.000000,74.200000,hi +15.000000,74.100000,hi +14.900000,74.100000,hi +14.900000,74.200000,hi +14.800000,74.200000,hi +14.700000,74.200000,kn +14.700000,74.100000,hi +14.800000,74.100000,hi +14.800000,74.000000,hi +14.800000,73.900000,hi +14.700000,73.900000,hi +14.700000,74.000000,hi +14.600000,74.000000,hi +14.600000,73.900000,kn +14.500000,73.900000,kn +14.500000,74.000000,kn +14.500000,74.100000,kn +14.600000,74.100000,kn +14.600000,74.200000,kn +14.500000,74.200000,kn +14.500000,74.300000,kn +14.600000,74.400000,kn +14.600000,74.300000,kn +14.700000,74.300000,kn +14.800000,74.300000,hi +14.800000,74.400000,kn +14.700000,74.400000,kn +14.800000,74.500000,kn +14.700000,74.500000,kn +14.600000,74.500000,kn +14.600000,74.600000,kn +14.700000,74.700000,kn +14.600000,74.700000,kn +14.600000,74.800000,kn +14.600000,74.900000,kn +14.700000,74.900000,kn +14.700000,74.800000,kn +14.800000,74.800000,kn +14.800000,74.900000,kn +14.800000,74.700000,kn +14.700000,74.600000,kn +14.800000,74.600000,kn +14.900000,74.600000,kn +15.000000,74.600000,kn +15.000000,74.700000,kn +14.900000,74.700000,kn +14.900000,74.800000,kn +14.900000,74.900000,kn +15.000000,74.900000,kn +15.000000,74.800000,kn +15.100000,74.800000,kn +15.100000,74.900000,kn +15.200000,74.900000,kn +15.200000,74.800000,kn +15.200000,74.700000,kn +15.100000,74.700000,kn +15.100000,74.600000,kn +15.200000,74.600000,kn +15.200000,74.500000,kn +15.100000,74.500000,kn +15.000000,74.500000,kn +14.900000,74.500000,kn +15.000000,74.400000,hi +14.900000,74.400000,kn +14.900000,74.300000,hi +15.000000,74.300000,hi +15.100000,74.300000,hi +15.100000,74.400000,hi +15.200000,74.400000,hi +15.200000,74.300000,hi +15.300000,74.300000,hi +15.300000,74.400000,hi +15.400000,74.400000,hi +15.400000,74.300000,hi +15.500000,74.300000,hi +15.500000,74.400000,hi +15.500000,74.500000,hi +15.400000,74.500000,hi +15.300000,74.500000,kn +15.300000,74.600000,kn +15.400000,74.600000,kn +15.400000,74.700000,kn +15.300000,74.700000,kn +15.300000,74.800000,kn +15.300000,74.900000,kn +15.400000,74.900000,kn +15.400000,74.800000,kn +15.500000,74.800000,kn +15.500000,74.900000,kn +15.600000,74.900000,kn +15.600000,74.800000,kn +15.600000,74.700000,kn +15.500000,74.700000,kn +15.500000,74.600000,kn +15.600000,74.600000,hi +15.700000,74.600000,hi +15.700000,74.700000,kn +15.700000,74.800000,kn +15.700000,74.900000,kn +15.800000,74.900000,kn +15.800000,74.800000,kn +15.900000,74.900000,kn +15.900000,74.800000,kn +15.900000,74.700000,kn +15.800000,74.700000,kn +15.800000,74.600000,hi +15.900000,74.600000,hi +15.900000,74.500000,hi +15.800000,74.500000,hi +15.700000,74.500000,hi +15.600000,74.500000,hi +15.700000,74.400000,hi +15.600000,74.400000,hi +15.600000,74.300000,hi +15.700000,74.300000,hi +15.800000,74.300000,hi +15.800000,74.400000,hi +15.900000,74.400000,hi +15.900000,74.300000,hi +15.900000,74.200000,mr +15.800000,74.200000,hi +15.800000,74.100000,hi +15.900000,74.100000,mr +15.900000,74.000000,mr +15.900000,73.900000,mr +15.800000,73.900000,hi +15.800000,74.000000,hi +15.700000,74.000000,hi +15.700000,73.900000,hi +15.600000,73.900000,hi +15.600000,74.000000,hi +15.600000,74.100000,hi +15.700000,74.100000,hi +15.700000,74.200000,hi +15.600000,74.200000,hi +15.500000,74.200000,hi +15.500000,74.100000,hi +15.400000,74.100000,hi +15.400000,74.200000,hi +15.300000,74.200000,hi +15.300000,74.100000,hi +15.300000,74.000000,hi +15.200000,74.000000,hi +15.200000,73.900000,hi +15.300000,73.900000,hi +15.400000,73.900000,hi +15.400000,74.000000,hi +15.500000,74.000000,hi +15.500000,73.900000,hi +15.500000,73.800000,hi +15.500000,73.700000,hi +15.400000,73.700000,hi +15.400000,73.800000,hi +15.300000,73.800000,hi +15.200000,73.800000,hi +15.200000,73.700000,hi +15.300000,73.700000,hi +15.300000,73.600000,hi +15.200000,73.600000,hi +15.300000,73.500000,hi +15.400000,73.500000,ru +15.400000,73.600000,hi +15.500000,73.600000,hi +15.500000,73.500000,ru +15.600000,73.500000,ru +15.700000,73.500000,ru +15.700000,73.600000,ru +15.600000,73.600000,ru +15.600000,73.700000,ru +15.600000,73.800000,ru +15.700000,73.800000,hi +15.700000,73.700000,ru +15.800000,73.700000,hi +15.800000,73.800000,hi +15.900000,73.800000,mr +15.900000,73.700000,mr +15.800000,73.600000,ru +15.800000,73.500000,ru +15.900000,73.500000,mr +16.000000,73.500000,mr +16.000000,73.600000,mr +15.900000,73.600000,mr +16.000000,73.800000,mr +16.000000,73.700000,mr +16.100000,73.700000,mr +16.100000,73.800000,mr +16.200000,73.800000,mr +16.200000,73.700000,mr +16.200000,73.600000,mr +16.100000,73.600000,mr +16.100000,73.500000,mr +16.200000,73.500000,mr +16.300000,73.500000,mr +16.300000,73.600000,mr +16.400000,73.600000,mr +16.400000,73.500000,mr +16.500000,73.500000,mr +16.600000,73.500000,mr +16.600000,73.600000,mr +16.500000,73.600000,mr +16.500000,73.700000,mr +16.600000,73.700000,mr +16.600000,73.800000,mr +16.500000,73.800000,mr +16.400000,73.800000,mr +16.400000,73.700000,mr +16.300000,73.700000,mr +16.300000,73.800000,mr +16.300000,73.900000,mr +16.300000,74.000000,mr +16.400000,74.000000,mr +16.400000,73.900000,mr +16.500000,73.900000,mr +16.600000,73.900000,mr +16.600000,74.000000,mr +16.500000,74.000000,mr +16.500000,74.100000,mr +16.600000,74.100000,mr +16.600000,74.200000,mr +16.500000,74.200000,mr +16.400000,74.200000,mr +16.400000,74.100000,mr +16.300000,74.200000,mr +16.200000,74.200000,mr +16.200000,74.100000,mr +16.300000,74.100000,mr +16.200000,73.900000,mr +16.200000,74.000000,mr +16.100000,74.000000,mr +16.100000,73.900000,mr +16.000000,73.900000,mr +16.000000,74.000000,mr +16.000000,74.100000,mr +16.100000,74.100000,mr +16.100000,74.200000,mr +16.000000,74.200000,mr +16.000000,74.300000,hi +16.000000,74.400000,hi +16.100000,74.400000,hi +16.100000,74.300000,hi +16.200000,74.300000,mr +16.300000,74.300000,mr +16.300000,74.400000,hi +16.200000,74.400000,mr +16.300000,74.500000,kn +16.200000,74.500000,kn +16.100000,74.500000,hi +16.000000,74.500000,hi +16.000000,74.600000,hi +16.100000,74.600000,kn +16.100000,74.700000,kn +16.000000,74.700000,kn +16.000000,74.800000,kn +16.000000,74.900000,kn +16.100000,74.900000,kn +16.100000,74.800000,kn +16.200000,74.800000,kn +16.200000,74.900000,kn +16.300000,74.900000,kn +16.300000,74.800000,kn +16.300000,74.700000,kn +16.200000,74.700000,kn +16.200000,74.600000,kn +16.300000,74.600000,kn +16.400000,74.600000,kn +16.500000,74.600000,hi +16.500000,74.700000,hi +16.400000,74.700000,kn +16.400000,74.800000,kn +16.400000,74.900000,kn +16.500000,74.900000,kn +16.500000,74.800000,kn +16.600000,74.800000,hi +16.600000,74.900000,kn +16.700000,74.900000,kn +16.700000,74.800000,hi +16.700000,74.700000,hi +16.600000,74.700000,hi +16.600000,74.600000,hi +16.700000,74.600000,mr +16.600000,74.500000,hi +16.500000,74.500000,hi +16.400000,74.500000,hi +16.500000,74.400000,hi +16.400000,74.400000,hi +16.400000,74.300000,mr +16.500000,74.300000,mr +16.600000,74.400000,mr +16.600000,74.300000,mr +16.700000,74.300000,mr +16.700000,74.400000,hi +16.800000,74.400000,mr +16.800000,74.300000,mr +16.900000,74.300000,mr +17.000000,74.300000,mr +17.000000,74.400000,mr +16.900000,74.400000,mr +17.000000,74.500000,mr +16.900000,74.500000,mr +16.800000,74.500000,mr +16.700000,74.500000,hi +16.800000,74.600000,mr +16.800000,74.700000,mr +16.800000,74.800000,mr +16.800000,74.900000,hi +16.900000,74.900000,mr +16.900000,74.800000,mr +17.000000,74.900000,mr +17.000000,74.800000,mr +17.000000,74.700000,mr +16.900000,74.700000,mr +16.900000,74.600000,mr +17.000000,74.600000,mr +17.100000,74.600000,mr +17.200000,74.600000,mr +17.200000,74.700000,mr +17.100000,74.700000,mr +17.100000,74.800000,mr +17.100000,74.900000,mr +17.200000,74.900000,mr +17.200000,74.800000,mr +17.300000,74.800000,mr +17.300000,74.900000,mr +17.400000,74.900000,mr +17.400000,74.800000,mr +17.400000,74.700000,mr +17.300000,74.700000,mr +17.300000,74.600000,mr +17.400000,74.600000,mr +17.400000,74.500000,mr +17.300000,74.500000,mr +17.200000,74.500000,mr +17.100000,74.500000,mr +17.200000,74.400000,mr +17.100000,74.400000,mr +17.100000,74.300000,mr +17.200000,74.300000,mr +17.300000,74.300000,mr +17.300000,74.400000,mr +17.400000,74.400000,mr +17.400000,74.300000,mr +17.400000,74.200000,mr +17.300000,74.200000,mr +17.300000,74.100000,mr +17.300000,74.000000,mr +17.300000,73.900000,mr +17.200000,74.000000,mr +17.200000,73.900000,mr +17.100000,73.900000,mr +17.100000,74.000000,mr +17.100000,74.100000,mr +17.200000,74.100000,mr +17.200000,74.200000,mr +17.100000,74.200000,mr +17.000000,74.200000,mr +17.000000,74.100000,mr +16.900000,74.100000,mr +16.900000,74.200000,mr +16.800000,74.200000,mr +16.700000,74.200000,mr +16.700000,74.100000,mr +16.800000,74.100000,mr +16.800000,74.000000,mr +16.700000,74.000000,mr +16.700000,73.900000,mr +16.800000,73.900000,mr +16.900000,73.900000,mr +16.900000,74.000000,mr +17.000000,74.000000,mr +17.000000,73.900000,mr +17.000000,73.800000,mr +17.000000,73.700000,mr +16.900000,73.700000,mr +16.900000,73.800000,mr +16.800000,73.800000,mr +16.700000,73.800000,mr +16.700000,73.700000,mr +16.800000,73.700000,mr +16.800000,73.600000,mr +16.700000,73.600000,mr +16.700000,73.500000,mr +16.800000,73.500000,mr +16.900000,73.600000,mr +16.900000,73.500000,mr +17.000000,73.500000,mr +17.100000,73.500000,mr +17.100000,73.600000,mr +17.000000,73.600000,mr +17.100000,73.800000,mr +17.100000,73.700000,mr +17.200000,73.700000,mr +17.200000,73.800000,mr +17.300000,73.800000,mr +17.300000,73.700000,mr +17.300000,73.600000,mr +17.200000,73.600000,mr +17.200000,73.500000,mr +17.300000,73.500000,mr +17.400000,73.500000,mr +17.400000,73.600000,mr +17.500000,73.600000,mr +17.500000,73.500000,mr +17.600000,73.500000,hi +17.700000,73.500000,mr +17.700000,73.600000,mr +17.600000,73.600000,mr +17.600000,73.700000,mr +17.700000,73.700000,mr +17.700000,73.800000,mr +17.600000,73.800000,mr +17.500000,73.800000,mr +17.500000,73.700000,mr +17.400000,73.700000,mr +17.400000,73.800000,mr +17.400000,73.900000,mr +17.500000,73.900000,mr +17.500000,74.000000,mr +17.400000,74.000000,mr +17.400000,74.100000,mr +17.500000,74.200000,mr +17.500000,74.100000,mr +17.600000,74.100000,mr +17.600000,74.200000,mr +17.700000,74.200000,mr +17.700000,74.100000,mr +17.700000,74.000000,mr +17.600000,74.000000,mr +17.600000,73.900000,mr +17.700000,73.900000,mr +17.800000,73.900000,mr +17.900000,73.900000,mr +17.900000,74.000000,mr +17.800000,74.000000,mr +17.800000,74.100000,mr +17.800000,74.200000,mr +17.900000,74.200000,mr +17.900000,74.100000,mr +18.000000,74.100000,mr +18.000000,74.200000,mr +18.100000,74.200000,mr +18.100000,74.100000,mr +18.100000,74.000000,mr +18.000000,74.000000,mr +18.000000,73.900000,mr +18.100000,73.900000,mr +18.100000,73.800000,mr +18.100000,73.700000,mr +18.000000,73.700000,mr +18.000000,73.800000,mr +17.900000,73.800000,mr +17.800000,73.800000,mr +17.800000,73.700000,mr +17.900000,73.700000,hi +17.900000,73.600000,hi +17.800000,73.600000,mr +17.800000,73.500000,mr +17.900000,73.500000,mr +18.000000,73.600000,mr +18.000000,73.500000,mr +18.100000,73.500000,mr +18.200000,73.500000,mr +18.200000,73.600000,hi +18.100000,73.600000,mr +18.200000,73.800000,mr +18.200000,73.700000,hi +18.300000,73.700000,hi +18.300000,73.800000,hi +18.400000,73.800000,hi +18.400000,73.700000,hi +18.400000,73.600000,hi +18.300000,73.600000,mr +18.300000,73.500000,mr +18.400000,73.500000,hi +18.500000,73.500000,hi +18.500000,73.600000,hi +18.600000,73.600000,hi +18.600000,73.500000,hi +18.700000,73.500000,hi +18.800000,73.500000,hi +18.800000,73.600000,hi +18.700000,73.600000,hi +18.700000,73.700000,hi +18.800000,73.700000,hi +18.800000,73.800000,hi +18.700000,73.800000,hi +18.600000,73.800000,hi +18.600000,73.700000,hi +18.500000,73.700000,hi +18.500000,73.800000,hi +18.500000,73.900000,hi +18.500000,74.000000,hi +18.600000,74.000000,hi +18.600000,73.900000,hi +18.700000,73.900000,hi +18.800000,73.900000,hi +18.800000,74.000000,hi +18.700000,74.000000,hi +18.700000,74.100000,hi +18.800000,74.100000,hi +18.800000,74.200000,hi +18.700000,74.200000,hi +18.600000,74.100000,hi +18.600000,74.200000,hi +18.500000,74.200000,hi +18.400000,74.200000,hi +18.400000,74.100000,hi +18.500000,74.100000,hi +18.400000,73.900000,hi +18.400000,74.000000,hi +18.300000,74.000000,hi +18.300000,73.900000,hi +18.200000,73.900000,mr +18.200000,74.000000,mr +18.200000,74.100000,mr +18.300000,74.100000,hi +18.300000,74.200000,mr +18.200000,74.200000,mr +18.200000,74.300000,mr +18.300000,74.300000,mr +18.300000,74.400000,mr +18.200000,74.400000,mr +18.200000,74.500000,mr +18.300000,74.500000,mr +18.400000,74.500000,hi +18.500000,74.500000,mr +18.500000,74.400000,mr +18.400000,74.400000,mr +18.400000,74.300000,mr +18.500000,74.300000,hi +18.600000,74.300000,mr +18.600000,74.400000,mr +18.700000,74.400000,mr +18.700000,74.300000,hi +18.800000,74.300000,hi +18.800000,74.400000,mr +18.900000,74.500000,mr +18.800000,74.500000,mr +18.700000,74.500000,mr +18.600000,74.500000,mr +18.600000,74.600000,mr +18.600000,74.700000,mr +18.700000,74.700000,mr +18.700000,74.600000,mr +18.800000,74.600000,mr +18.900000,74.600000,mr +18.900000,74.700000,mr +18.800000,74.700000,mr +18.800000,74.800000,mr +18.900000,74.800000,mr +18.900000,74.900000,mr +18.800000,74.900000,mr +18.700000,74.900000,mr +18.700000,74.800000,mr +18.600000,74.800000,mr +18.600000,74.900000,mr +18.500000,74.900000,mr +18.400000,74.900000,mr +18.400000,74.800000,mr +18.500000,74.800000,mr +18.500000,74.700000,mr +18.500000,74.600000,hi +18.400000,74.600000,mr +18.400000,74.700000,mr +18.300000,74.700000,mr +18.300000,74.600000,mr +18.200000,74.600000,mr +18.200000,74.700000,mr +18.200000,74.800000,mr +18.300000,74.800000,mr +18.300000,74.900000,mr +18.200000,74.900000,mr +18.100000,74.800000,mr +18.100000,74.900000,mr +18.000000,74.900000,mr +17.900000,74.900000,mr +17.900000,74.800000,mr +18.000000,74.800000,mr +18.000000,74.700000,mr +17.900000,74.700000,mr +17.900000,74.600000,mr +18.000000,74.600000,mr +18.100000,74.700000,mr +18.100000,74.600000,mr +18.100000,74.500000,mr +18.000000,74.500000,mr +18.100000,74.400000,mr +18.100000,74.300000,mr +18.000000,74.300000,mr +18.000000,74.400000,mr +17.900000,74.400000,mr +17.900000,74.300000,mr +17.800000,74.300000,mr +17.800000,74.400000,mr +17.900000,74.500000,mr +17.800000,74.500000,mr +17.700000,74.500000,mr +17.700000,74.300000,mr +17.700000,74.400000,mr +17.600000,74.400000,mr +17.600000,74.300000,mr +17.500000,74.300000,mr +17.500000,74.400000,mr +17.600000,74.500000,mr +17.500000,74.500000,mr +17.500000,74.600000,mr +17.500000,74.700000,mr +17.600000,74.700000,mr +17.600000,74.600000,mr +17.700000,74.600000,mr +17.800000,74.600000,mr +17.800000,74.700000,mr +17.700000,74.700000,mr +17.700000,74.800000,mr +17.800000,74.800000,mr +17.800000,74.900000,mr +17.700000,74.900000,mr +17.600000,74.900000,mr +17.600000,74.800000,mr +17.500000,74.800000,mr +17.500000,74.900000,mr +17.500000,75.000000,mr +17.500000,75.100000,mr +17.600000,75.100000,mr +17.600000,75.000000,mr +17.700000,75.000000,mr +17.800000,75.000000,mr +17.800000,75.100000,mr +17.700000,75.100000,mr +17.700000,75.200000,mr +17.800000,75.200000,mr +17.800000,75.300000,mr +17.700000,75.300000,mr +17.600000,75.300000,mr +17.600000,75.200000,mr +17.500000,75.200000,mr +17.500000,75.300000,mr +17.600000,75.400000,mr +17.600000,75.500000,mr +17.600000,75.600000,mr +17.600000,75.700000,mr +17.700000,75.700000,mr +17.700000,75.600000,mr +17.800000,75.700000,mr +17.800000,75.600000,mr +17.800000,75.500000,mr +17.700000,75.500000,mr +17.700000,75.400000,mr +17.800000,75.400000,mr +17.900000,75.400000,mr +18.000000,75.400000,mr +18.000000,75.500000,mr +17.900000,75.500000,mr +17.900000,75.600000,mr +17.900000,75.700000,mr +18.000000,75.700000,mr +18.000000,75.600000,mr +18.100000,75.600000,mr +18.100000,75.700000,mr +18.200000,75.700000,mr +18.200000,75.600000,mr +18.200000,75.500000,mr +18.100000,75.500000,mr +18.100000,75.400000,mr +18.200000,75.400000,mr +18.200000,75.300000,mr +18.200000,75.200000,mr +18.100000,75.200000,mr +18.100000,75.300000,mr +18.000000,75.300000,mr +17.900000,75.300000,mr +17.900000,75.200000,mr +18.000000,75.200000,mr +18.000000,75.100000,mr +17.900000,75.100000,mr +17.900000,75.000000,mr +18.000000,75.000000,mr +18.100000,75.000000,mr +18.100000,75.100000,mr +18.200000,75.100000,mr +18.200000,75.000000,mr +18.300000,75.000000,mr +18.400000,75.100000,mr +18.300000,75.100000,mr +18.300000,75.200000,mr +18.300000,75.300000,mr +18.400000,75.300000,mr +18.400000,75.200000,mr +18.500000,75.200000,mr +18.500000,75.300000,mr +18.600000,75.300000,mr +18.500000,75.100000,mr +18.400000,75.000000,mr +18.500000,75.000000,mr +18.600000,75.000000,mr +18.600000,75.100000,mr +18.700000,75.100000,mr +18.700000,75.000000,mr +18.800000,75.000000,mr +18.900000,75.000000,mr +18.900000,75.100000,mr +18.800000,75.100000,mr +18.800000,75.200000,mr +18.900000,75.200000,mr +18.900000,75.300000,mr +18.800000,75.300000,mr +18.700000,75.300000,mr +18.700000,75.200000,mr +18.600000,75.200000,mr +18.700000,75.400000,mr +18.700000,75.500000,mr +18.800000,75.500000,mr +18.800000,75.400000,mr +18.900000,75.400000,mr +18.900000,75.500000,mr +18.900000,75.600000,mr +19.000000,75.700000,mr +18.900000,75.700000,mr +18.800000,75.700000,mr +18.800000,75.600000,mr +18.700000,75.600000,mr +18.700000,75.700000,mr +18.600000,75.700000,mr +18.500000,75.700000,mr +18.500000,75.600000,mr +18.600000,75.600000,mr +18.600000,75.500000,mr +18.600000,75.400000,mr +18.500000,75.400000,mr +18.500000,75.500000,mr +18.400000,75.500000,mr +18.400000,75.400000,mr +18.300000,75.400000,mr +18.300000,75.500000,mr +18.300000,75.600000,mr +18.400000,75.600000,mr +18.400000,75.700000,mr +18.300000,75.700000,mr +18.300000,75.800000,mr +18.400000,75.800000,mr +18.300000,75.900000,mr +18.300000,76.000000,mr +18.400000,76.000000,mr +18.400000,75.900000,mr +18.500000,75.900000,mr +18.500000,76.000000,mr +18.600000,76.000000,mr +18.600000,75.900000,mr +18.500000,75.800000,mr +18.600000,75.800000,mr +18.700000,75.800000,mr +18.800000,75.800000,mr +18.900000,75.800000,mr +19.000000,75.800000,mr +18.900000,75.900000,mr +19.000000,75.900000,mr +19.000000,76.000000,mr +18.900000,76.000000,mr +18.800000,76.000000,mr +18.800000,75.900000,mr +18.700000,75.900000,mr +18.700000,76.000000,mr +18.700000,76.100000,mr +18.700000,76.200000,mr +18.800000,76.200000,mr +18.800000,76.100000,mr +18.900000,76.100000,mr +19.000000,76.100000,mr +19.000000,76.200000,mr +18.900000,76.200000,mr +18.900000,76.300000,mr +19.000000,76.300000,mr +19.000000,76.400000,mr +18.900000,76.400000,mr +18.800000,76.400000,mr +18.800000,76.300000,mr +18.700000,76.300000,mr +18.700000,76.400000,mr +18.600000,76.400000,mr +18.500000,76.300000,mr +18.600000,76.300000,mr +18.600000,76.200000,mr +18.600000,76.100000,mr +18.500000,76.100000,mr +18.500000,76.200000,mr +18.400000,76.200000,mr +18.400000,76.100000,mr +18.300000,76.100000,mr +18.400000,76.300000,mr +18.500000,76.400000,mr +18.400000,76.400000,mr +18.300000,76.400000,mr +18.300000,76.300000,mr +18.200000,76.300000,mr +18.200000,76.400000,mr +18.100000,76.400000,mr +18.000000,76.400000,mr +18.000000,76.300000,mr +18.100000,76.300000,mr +18.100000,76.200000,mr +18.000000,76.200000,mr +18.000000,76.100000,mr +18.100000,76.100000,mr +18.200000,76.100000,mr +18.200000,76.200000,mr +18.300000,76.200000,mr +18.200000,76.000000,mr +18.100000,75.900000,mr +18.200000,75.900000,mr +18.200000,75.800000,mr +18.100000,75.800000,mr +18.000000,75.800000,mr +18.000000,75.900000,mr +18.100000,76.000000,mr +18.000000,76.000000,mr +17.900000,76.000000,mr +17.800000,76.000000,mr +17.800000,75.900000,mr +17.900000,75.900000,mr +17.900000,75.800000,mr +17.800000,75.800000,mr +17.700000,75.800000,mr +17.600000,75.800000,mr +17.600000,75.900000,mr +17.700000,75.900000,mr +17.700000,76.000000,mr +17.600000,76.000000,hi +17.600000,76.100000,mr +17.600000,76.200000,hi +17.700000,76.200000,mr +17.700000,76.100000,mr +17.800000,76.100000,mr +17.900000,76.100000,mr +17.900000,76.200000,mr +17.800000,76.200000,mr +17.800000,76.300000,mr +17.900000,76.300000,mr +17.900000,76.400000,mr +17.800000,76.400000,mr +17.700000,76.400000,hi +17.700000,76.300000,mr +17.600000,76.300000,mr +17.600000,76.400000,hi +17.500000,76.400000,kn +17.400000,76.400000,hi +17.400000,76.300000,hi +17.500000,76.300000,hi +17.500000,76.200000,mr +17.500000,76.100000,mr +17.400000,76.100000,mr +17.400000,76.200000,hi +17.300000,76.200000,kn +17.300000,76.100000,kn +17.200000,76.100000,kn +17.200000,76.200000,kn +17.200000,76.300000,kn +17.300000,76.300000,kn +17.300000,76.400000,kn +17.200000,76.400000,kn +17.100000,76.300000,kn +17.100000,76.400000,kn +17.000000,76.400000,kn +16.900000,76.400000,kn +16.900000,76.300000,kn +17.000000,76.300000,kn +17.000000,76.200000,kn +16.900000,76.200000,kn +16.900000,76.100000,kn +17.000000,76.100000,kn +17.100000,76.200000,kn +17.100000,76.100000,kn +17.100000,76.000000,kn +17.100000,75.900000,kn +17.000000,75.900000,kn +17.000000,76.000000,kn +16.900000,76.000000,kn +16.800000,75.900000,kn +16.900000,75.900000,kn +16.800000,75.800000,kn +16.900000,75.800000,kn +17.000000,75.800000,kn +17.100000,75.800000,kn +17.200000,75.800000,kn +17.300000,75.800000,kn +17.200000,75.900000,kn +17.200000,76.000000,kn +17.300000,76.000000,kn +17.300000,75.900000,kn +17.400000,75.900000,hi +17.400000,76.000000,mr +17.500000,76.000000,mr +17.500000,75.900000,mr +17.400000,75.800000,hi +17.500000,75.800000,mr +17.500000,75.700000,mr +17.500000,75.600000,mr +17.400000,75.600000,mr +17.400000,75.700000,mr +17.300000,75.700000,kn +17.200000,75.700000,kn +17.200000,75.600000,mr +17.300000,75.600000,mr +17.300000,75.500000,mr +17.200000,75.500000,mr +17.200000,75.400000,mr +17.300000,75.400000,mr +17.400000,75.400000,mr +17.400000,75.500000,mr +17.500000,75.500000,mr +17.500000,75.400000,mr +17.400000,75.300000,mr +17.400000,75.200000,mr +17.400000,75.100000,mr +17.400000,75.000000,mr +17.300000,75.000000,mr +17.300000,75.100000,mr +17.200000,75.000000,mr +17.200000,75.100000,mr +17.200000,75.200000,mr +17.300000,75.200000,mr +17.300000,75.300000,mr +17.200000,75.300000,mr +17.100000,75.300000,mr +17.000000,75.300000,mr +17.000000,75.200000,mr +17.100000,75.200000,mr +17.100000,75.100000,mr +17.100000,75.000000,mr +17.000000,75.000000,mr +17.000000,75.100000,mr +16.900000,75.100000,kn +16.900000,75.000000,mr +16.800000,75.000000,kn +16.800000,75.100000,kn +16.800000,75.200000,kn +16.900000,75.200000,kn +16.900000,75.300000,kn +16.800000,75.300000,kn +16.800000,75.400000,kn +16.800000,75.500000,kn +16.900000,75.500000,kn +16.900000,75.400000,kn +17.000000,75.400000,mr +17.100000,75.400000,mr +17.100000,75.500000,hi +17.000000,75.500000,kn +17.000000,75.600000,kn +17.100000,75.600000,kn +17.100000,75.700000,kn +17.000000,75.700000,kn +16.900000,75.700000,kn +16.900000,75.600000,kn +16.800000,75.600000,kn +16.800000,75.700000,kn +16.700000,75.700000,kn +16.700000,75.600000,kn +16.600000,75.600000,kn +16.600000,75.700000,kn +16.500000,75.700000,kn +16.500000,75.600000,kn +16.500000,75.500000,kn +16.400000,75.400000,kn +16.500000,75.400000,kn +16.600000,75.400000,kn +16.600000,75.500000,kn +16.700000,75.500000,kn +16.700000,75.400000,kn +16.700000,75.300000,kn +16.600000,75.300000,kn +16.600000,75.200000,kn +16.700000,75.200000,kn +16.700000,75.100000,kn +16.700000,75.000000,kn +16.600000,75.000000,kn +16.600000,75.100000,kn +16.500000,75.100000,kn +16.500000,75.000000,kn +16.400000,75.000000,kn +16.400000,75.100000,kn +16.400000,75.200000,kn +16.500000,75.200000,kn +16.500000,75.300000,kn +16.400000,75.300000,kn +16.300000,75.300000,kn +16.200000,75.200000,kn +16.300000,75.200000,kn +16.300000,75.100000,kn +16.300000,75.000000,kn +16.200000,75.000000,kn +16.200000,75.100000,kn +16.100000,75.100000,kn +16.100000,75.000000,kn +16.100000,75.200000,kn +16.200000,75.300000,kn +16.100000,75.300000,kn +16.100000,75.400000,kn +16.100000,75.500000,kn +16.200000,75.500000,kn +16.200000,75.400000,kn +16.300000,75.400000,kn +16.400000,75.500000,kn +16.300000,75.500000,kn +16.300000,75.600000,kn +16.400000,75.600000,kn +16.400000,75.700000,kn +16.300000,75.700000,kn +16.200000,75.700000,kn +16.200000,75.600000,kn +16.100000,75.600000,kn +16.100000,75.700000,kn +16.100000,75.800000,kn +16.200000,75.800000,kn +16.100000,75.900000,kn +16.100000,76.000000,kn +16.200000,76.000000,kn +16.200000,75.900000,kn +16.300000,75.900000,kn +16.300000,76.000000,kn +16.400000,76.000000,kn +16.400000,75.900000,kn +16.300000,75.800000,kn +16.400000,75.800000,kn +16.500000,75.800000,hi +16.600000,75.800000,kn +16.700000,75.800000,kn +16.700000,75.900000,kn +16.800000,76.000000,kn +16.700000,76.000000,kn +16.600000,76.000000,kn +16.600000,75.900000,kn +16.500000,75.900000,kn +16.500000,76.000000,kn +16.500000,76.100000,kn +16.500000,76.200000,kn +16.600000,76.200000,kn +16.600000,76.100000,kn +16.700000,76.100000,kn +16.800000,76.100000,kn +16.800000,76.200000,kn +16.700000,76.200000,kn +16.700000,76.300000,kn +16.800000,76.300000,kn +16.800000,76.400000,kn +16.700000,76.400000,kn +16.600000,76.400000,kn +16.600000,76.300000,kn +16.500000,76.300000,kn +16.500000,76.400000,kn +16.400000,76.400000,kn +16.300000,76.400000,kn +16.300000,76.300000,kn +16.400000,76.300000,kn +16.400000,76.200000,kn +16.400000,76.100000,kn +16.300000,76.100000,kn +16.300000,76.200000,kn +16.200000,76.200000,kn +16.200000,76.100000,kn +16.100000,76.100000,kn +16.100000,76.200000,kn +16.100000,76.300000,kn +16.200000,76.300000,kn +16.200000,76.400000,kn +16.100000,76.400000,kn +16.200000,76.600000,kn +16.200000,76.500000,kn +16.300000,76.500000,kn +16.400000,76.500000,kn +16.400000,76.600000,kn +16.300000,76.600000,kn +16.300000,76.700000,kn +16.400000,76.700000,kn +16.400000,76.800000,kn +16.300000,76.800000,kn +16.200000,76.700000,kn +16.200000,76.800000,kn +16.200000,76.900000,kn +16.300000,76.900000,kn +16.300000,77.000000,kn +16.200000,77.000000,kn +16.200000,77.100000,kn +16.300000,77.100000,kn +16.400000,77.100000,kn +16.500000,77.100000,kn +16.500000,77.000000,kn +16.400000,77.000000,kn +16.400000,76.900000,kn +16.500000,76.900000,kn +16.600000,76.900000,kn +16.600000,77.000000,kn +16.600000,77.100000,kn +16.700000,77.100000,kn +16.800000,77.100000,kn +16.800000,77.000000,kn +16.700000,77.000000,kn +16.700000,76.900000,kn +16.800000,76.900000,kn +16.800000,76.800000,kn +16.800000,76.700000,kn +16.700000,76.700000,kn +16.700000,76.800000,kn +16.600000,76.800000,kn +16.500000,76.800000,kn +16.500000,76.700000,kn +16.600000,76.700000,kn +16.600000,76.600000,kn +16.500000,76.600000,kn +16.500000,76.500000,kn +16.600000,76.500000,kn +16.700000,76.500000,kn +16.700000,76.600000,kn +16.800000,76.600000,kn +16.800000,76.500000,kn +16.900000,76.500000,kn +17.000000,76.500000,kn +17.000000,76.600000,kn +16.900000,76.600000,kn +16.900000,76.700000,kn +16.900000,76.800000,kn +17.000000,76.800000,kn +17.000000,76.700000,kn +17.100000,76.700000,kn +17.100000,76.800000,kn +17.200000,76.800000,kn +17.200000,76.700000,kn +17.200000,76.600000,kn +17.100000,76.600000,kn +17.100000,76.500000,kn +17.200000,76.500000,kn +17.300000,76.500000,kn +17.300000,76.600000,kn +17.400000,76.600000,kn +17.400000,76.500000,kn +17.500000,76.500000,kn +17.500000,76.600000,kn +17.500000,76.700000,kn +17.600000,76.800000,kn +17.500000,76.800000,kn +17.400000,76.800000,kn +17.400000,76.700000,kn +17.300000,76.700000,kn +17.300000,76.800000,kn +17.300000,76.900000,kn +17.300000,77.000000,kn +17.400000,77.000000,kn +17.400000,76.900000,kn +17.500000,76.900000,kn +17.600000,76.900000,kn +17.600000,77.000000,kn +17.500000,77.000000,kn +17.500000,77.100000,kn +17.600000,77.100000,kn +17.400000,77.100000,kn +17.300000,77.100000,kn +17.100000,77.100000,kn +17.200000,77.100000,kn +17.200000,77.000000,kn +17.200000,76.900000,kn +17.100000,76.900000,kn +17.100000,77.000000,hi +17.000000,77.000000,kn +17.000000,76.900000,kn +16.900000,76.900000,kn +16.900000,77.000000,kn +16.900000,77.100000,kn +17.000000,77.100000,kn +16.900000,77.200000,kn +17.000000,77.200000,kn +17.000000,77.300000,kn +16.900000,77.300000,kn +16.900000,77.400000,kn +17.000000,77.500000,te +17.000000,77.400000,kn +17.100000,77.400000,kn +17.100000,77.500000,te +17.200000,77.500000,te +17.200000,77.400000,hi +17.200000,77.300000,kn +17.100000,77.300000,kn +17.100000,77.200000,hi +17.200000,77.200000,kn +17.300000,77.200000,kn +17.300000,77.300000,kn +17.400000,77.300000,kn +17.400000,77.200000,kn +17.500000,77.200000,kn +17.600000,77.200000,kn +17.600000,77.300000,kn +17.500000,77.300000,kn +17.500000,77.400000,kn +17.600000,77.400000,kn +17.600000,77.500000,hi +17.500000,77.500000,hi +17.400000,77.500000,hi +17.400000,77.400000,kn +17.300000,77.400000,kn +17.300000,77.500000,hi +17.300000,77.600000,te +17.300000,77.700000,te +17.400000,77.700000,te +17.400000,77.600000,te +17.500000,77.600000,te +17.600000,77.600000,hi +17.600000,77.700000,te +17.500000,77.700000,te +17.500000,77.800000,te +17.600000,77.800000,te +17.600000,77.900000,te +17.500000,77.900000,te +17.400000,77.900000,te +17.400000,77.800000,te +17.300000,77.800000,te +17.300000,77.900000,te +17.200000,77.900000,te +17.200000,77.800000,te +17.200000,77.700000,te +17.200000,77.600000,te +17.100000,77.600000,te +17.100000,77.700000,te +17.000000,77.600000,te +17.000000,77.700000,te +17.000000,77.800000,te +17.100000,77.800000,te +17.100000,77.900000,te +17.000000,77.900000,te +16.900000,77.900000,te +16.900000,77.800000,te +16.800000,77.800000,te +16.800000,77.900000,te +16.700000,77.900000,te +16.600000,77.900000,te +16.600000,77.800000,te +16.700000,77.800000,te +16.700000,77.700000,te +16.600000,77.700000,te +16.600000,77.600000,te +16.700000,77.600000,te +16.800000,77.600000,te +16.800000,77.700000,te +16.900000,77.700000,te +16.900000,77.600000,te +16.900000,77.500000,te +16.800000,77.500000,te +16.800000,77.400000,kn +16.800000,77.300000,kn +16.800000,77.200000,kn +16.700000,77.300000,kn +16.700000,77.200000,kn +16.600000,77.200000,kn +16.600000,77.300000,kn +16.600000,77.400000,te +16.700000,77.400000,kn +16.700000,77.500000,te +16.600000,77.500000,te +16.500000,77.500000,te +16.400000,77.500000,kn +16.400000,77.400000,kn +16.500000,77.400000,te +16.500000,77.300000,kn +16.500000,77.200000,kn +16.400000,77.200000,kn +16.400000,77.300000,kn +16.300000,77.300000,kn +16.300000,77.200000,kn +16.200000,77.200000,kn +16.200000,77.300000,kn +16.200000,77.400000,kn +16.300000,77.400000,kn +16.300000,77.500000,kn +16.200000,77.500000,kn +16.200000,77.600000,te +16.200000,77.700000,te +16.300000,77.700000,te +16.300000,77.600000,te +16.400000,77.600000,te +16.500000,77.600000,te +16.500000,77.700000,te +16.400000,77.700000,te +16.400000,77.800000,te +16.500000,77.800000,te +16.500000,77.900000,te +16.400000,77.900000,te +16.300000,77.900000,te +16.300000,77.800000,te +16.200000,77.800000,te +16.200000,77.900000,te +16.200000,78.000000,te +16.300000,78.000000,te +16.300000,78.100000,te +16.200000,78.100000,te +16.300000,78.200000,te +16.400000,78.200000,te +16.500000,78.200000,te +16.500000,78.100000,te +16.400000,78.100000,te +16.400000,78.000000,te +16.500000,78.000000,te +16.600000,78.000000,te +16.600000,78.100000,te +16.700000,78.100000,te +16.700000,78.000000,te +16.800000,78.000000,te +16.900000,78.000000,te +16.900000,78.100000,te +16.800000,78.100000,te +16.800000,78.200000,te +16.900000,78.200000,te +16.700000,78.200000,te +16.600000,78.200000,te +16.600000,78.300000,te +16.600000,78.400000,te +16.700000,78.400000,te +16.700000,78.300000,te +16.800000,78.300000,te +16.900000,78.300000,te +16.900000,78.400000,te +16.800000,78.400000,te +16.800000,78.500000,te +16.900000,78.500000,te +16.900000,78.600000,te +16.800000,78.600000,te +16.700000,78.600000,te +16.700000,78.500000,te +16.600000,78.500000,te +16.600000,78.600000,te +16.500000,78.600000,te +16.500000,78.500000,te +16.500000,78.400000,te +16.500000,78.300000,te +16.400000,78.300000,te +16.400000,78.400000,te +16.300000,78.300000,te +16.300000,78.400000,te +16.300000,78.500000,te +16.400000,78.500000,te +16.400000,78.600000,te +16.300000,78.600000,te +16.300000,78.700000,te +16.300000,78.800000,te +16.400000,78.800000,te +16.400000,78.700000,te +16.500000,78.700000,te +16.600000,78.700000,te +16.600000,78.800000,te +16.500000,78.800000,te +16.500000,78.900000,te +16.600000,78.900000,te +16.600000,79.000000,te +16.500000,79.000000,te +16.400000,79.000000,te +16.400000,78.900000,te +16.300000,78.900000,te +16.300000,79.000000,te +16.300000,79.100000,te +16.400000,79.100000,te +16.300000,79.200000,te +16.300000,79.300000,te +16.400000,79.300000,te +16.400000,79.200000,te +16.500000,79.200000,te +16.500000,79.300000,te +16.600000,79.300000,te +16.600000,79.200000,te +16.500000,79.100000,te +16.600000,79.100000,te +16.700000,79.100000,te +16.800000,79.100000,te +16.700000,79.200000,te +16.700000,79.300000,te +16.800000,79.300000,te +16.800000,79.200000,te +16.900000,79.200000,te +16.900000,79.300000,te +17.000000,79.300000,te +17.000000,79.200000,te +16.900000,79.100000,te +16.900000,79.000000,te +16.900000,78.900000,te +16.800000,78.900000,te +16.800000,79.000000,te +16.700000,79.000000,te +16.700000,78.900000,te +16.700000,78.800000,te +16.700000,78.700000,te +16.800000,78.700000,te +16.800000,78.800000,te +16.900000,78.800000,te +16.900000,78.700000,te +17.000000,78.700000,te +17.000000,78.800000,te +17.100000,78.800000,te +17.100000,78.700000,te +17.200000,78.700000,te +17.300000,78.700000,te +17.300000,78.800000,te +17.200000,78.800000,te +17.200000,78.900000,te +17.300000,78.900000,te +17.300000,79.000000,te +17.200000,79.000000,te +17.100000,79.000000,te +17.100000,78.900000,te +17.000000,78.900000,te +17.000000,79.000000,te +17.000000,79.100000,te +17.100000,79.100000,te +17.100000,79.300000,te +17.100000,79.200000,te +17.200000,79.200000,te +17.200000,79.300000,te +17.300000,79.300000,te +17.300000,79.200000,te +17.200000,79.100000,te +17.300000,79.100000,te +17.400000,79.100000,te +17.500000,79.100000,te +17.400000,79.200000,te +17.400000,79.300000,te +17.500000,79.300000,te +17.500000,79.200000,te +17.600000,79.200000,te +17.600000,79.300000,te +17.700000,79.300000,te +17.700000,79.200000,te +17.600000,79.100000,te +17.700000,79.100000,te +17.700000,79.000000,te +17.700000,78.900000,te +17.600000,78.900000,te +17.600000,79.000000,te +17.500000,79.000000,te +17.400000,79.000000,te +17.400000,78.900000,te +17.500000,78.900000,te +17.500000,78.800000,te +17.400000,78.800000,te +17.400000,78.700000,te +17.500000,78.700000,te +17.600000,78.700000,hi +17.600000,78.800000,te +17.700000,78.800000,te +17.700000,78.700000,hi +17.700000,78.600000,te +17.600000,78.600000,te +17.600000,78.500000,te +17.700000,78.500000,te +17.700000,78.400000,te +17.600000,78.300000,te +17.600000,78.400000,te +17.500000,78.400000,te +17.500000,78.300000,te +17.400000,78.300000,te +17.400000,78.400000,te +17.400000,78.500000,hi +17.500000,78.500000,hi +17.500000,78.600000,te +17.400000,78.600000,te +17.300000,78.600000,te +17.300000,78.500000,hi +17.200000,78.500000,te +17.200000,78.600000,te +17.100000,78.600000,te +17.000000,78.600000,te +17.000000,78.500000,te +17.100000,78.500000,te +17.100000,78.400000,te +17.000000,78.400000,te +17.000000,78.300000,te +17.100000,78.300000,hi +17.200000,78.300000,hi +17.200000,78.400000,hi +17.300000,78.400000,hi +17.300000,78.300000,te +17.300000,78.200000,te +17.200000,78.200000,te +17.000000,78.200000,te +17.100000,78.200000,te +17.100000,78.100000,te +17.000000,78.100000,te +17.000000,78.000000,te +17.100000,78.000000,te +17.200000,78.000000,te +17.200000,78.100000,te +17.300000,78.100000,te +17.300000,78.000000,te +17.400000,78.000000,te +17.400000,78.100000,te +17.400000,78.200000,te +17.500000,78.200000,te +17.600000,78.200000,te +17.600000,78.100000,te +17.500000,78.100000,te +17.500000,78.000000,te +17.600000,78.000000,te +17.700000,78.000000,te +17.800000,78.000000,te +17.800000,78.100000,te +17.700000,78.100000,te +17.700000,78.200000,te +17.800000,78.200000,te +17.900000,78.200000,te +18.000000,78.200000,te +18.000000,78.100000,te +17.900000,78.100000,te +17.900000,78.000000,te +18.000000,78.000000,te +18.100000,78.000000,te +18.100000,78.100000,te +18.200000,78.100000,te +18.200000,78.000000,te +18.300000,78.000000,te +18.400000,78.000000,te +18.400000,78.100000,te +18.300000,78.100000,te +18.300000,78.200000,te +18.400000,78.200000,te +18.200000,78.200000,te +18.100000,78.200000,te +18.100000,78.300000,te +18.100000,78.400000,te +18.200000,78.400000,te +18.200000,78.300000,te +18.300000,78.300000,te +18.400000,78.300000,te +18.400000,78.400000,te +18.300000,78.400000,te +18.300000,78.500000,te +18.400000,78.500000,te +18.400000,78.600000,te +18.300000,78.600000,te +18.200000,78.600000,te +18.200000,78.500000,te +18.100000,78.500000,te +18.100000,78.600000,te +18.000000,78.600000,te +17.900000,78.500000,te +18.000000,78.500000,te +18.000000,78.400000,te +18.000000,78.300000,te +17.900000,78.300000,te +17.900000,78.400000,te +17.800000,78.400000,te +17.800000,78.300000,te +17.700000,78.300000,te +17.800000,78.500000,te +17.900000,78.600000,te +17.800000,78.600000,te +17.800000,78.700000,te +17.800000,78.800000,te +17.900000,78.800000,te +17.900000,78.700000,te +18.000000,78.700000,te +18.000000,78.800000,te +18.000000,78.900000,te +18.100000,78.900000,te +18.100000,79.000000,te +18.000000,79.000000,te +17.900000,79.000000,te +17.900000,78.900000,te +17.800000,78.900000,te +17.800000,79.000000,te +17.800000,79.100000,te +17.900000,79.100000,te +17.800000,79.200000,te +17.800000,79.300000,te +17.900000,79.300000,te +17.900000,79.200000,te +18.000000,79.200000,te +18.000000,79.300000,te +18.100000,79.300000,te +18.100000,79.200000,te +18.000000,79.100000,te +18.100000,79.100000,te +18.200000,79.100000,te +18.300000,79.100000,te +18.200000,79.200000,te +18.200000,79.300000,te +18.300000,79.300000,te +18.300000,79.200000,te +18.400000,79.200000,te +18.400000,79.300000,te +18.500000,79.300000,te +18.400000,79.100000,te +18.400000,79.000000,te +18.400000,78.900000,te +18.300000,78.900000,te +18.300000,79.000000,te +18.200000,79.000000,te +18.200000,78.900000,te +18.200000,78.800000,te +18.100000,78.800000,te +18.100000,78.700000,te +18.200000,78.700000,te +18.300000,78.700000,te +18.300000,78.800000,te +18.400000,78.800000,te +18.400000,78.700000,te +18.500000,78.700000,te +18.500000,78.800000,te +18.600000,78.800000,te +18.600000,78.700000,te +18.700000,78.700000,te +18.800000,78.700000,te +18.800000,78.800000,te +18.700000,78.800000,te +18.700000,78.900000,te +18.800000,78.900000,te +18.800000,79.000000,te +18.700000,79.000000,te +18.600000,79.000000,te +18.600000,78.900000,te +18.500000,78.900000,te +18.500000,79.000000,te +18.500000,79.100000,te +18.600000,79.100000,te +18.500000,79.200000,te +18.600000,79.300000,te +18.600000,79.200000,te +18.700000,79.200000,te +18.700000,79.300000,te +18.800000,79.300000,te +18.800000,79.200000,te +18.700000,79.100000,te +18.800000,79.100000,te +18.900000,79.100000,te +19.000000,79.100000,te +18.900000,79.200000,te +18.900000,79.300000,te +19.000000,79.300000,te +19.000000,79.200000,te +19.100000,79.200000,te +19.100000,79.300000,te +19.200000,79.300000,te +19.200000,79.200000,te +19.100000,79.100000,te +19.200000,79.100000,te +19.200000,79.000000,te +19.200000,78.900000,te +19.100000,78.900000,te +19.100000,79.000000,te +19.000000,79.000000,te +18.900000,79.000000,te +18.900000,78.900000,te +19.000000,78.900000,te +19.000000,78.800000,te +18.900000,78.800000,te +18.900000,78.700000,te +19.000000,78.700000,te +19.100000,78.700000,te +19.100000,78.800000,te +19.200000,78.800000,te +19.200000,78.700000,te +19.200000,78.600000,te +19.100000,78.600000,te +19.100000,78.500000,te +19.200000,78.500000,te +19.100000,78.300000,te +19.100000,78.400000,te +19.000000,78.400000,te +19.000000,78.300000,te +18.900000,78.300000,te +18.900000,78.400000,te +18.900000,78.500000,te +19.000000,78.500000,te +19.000000,78.600000,te +18.900000,78.600000,te +18.800000,78.600000,te +18.800000,78.500000,te +18.700000,78.500000,te +18.700000,78.600000,te +18.600000,78.600000,te +18.500000,78.600000,te +18.500000,78.500000,te +18.600000,78.500000,te +18.600000,78.400000,te +18.500000,78.400000,te +18.500000,78.300000,te +18.600000,78.300000,te +18.700000,78.300000,te +18.700000,78.400000,te +18.800000,78.400000,te +18.800000,78.300000,te +18.800000,78.200000,te +18.700000,78.200000,te +18.500000,78.200000,te +18.600000,78.200000,te +18.600000,78.100000,te +18.500000,78.100000,te +18.500000,78.000000,te +18.600000,78.000000,te +18.700000,78.000000,te +18.700000,78.100000,hi +18.800000,78.100000,te +18.800000,78.000000,te +18.900000,78.000000,te +18.900000,78.100000,te +18.900000,78.200000,te +19.000000,78.200000,te +19.100000,78.200000,te +19.100000,78.100000,te +19.000000,78.100000,te +19.000000,78.000000,te +19.100000,78.000000,hi +19.100000,77.900000,te +19.100000,77.800000,hi +19.000000,77.800000,hi +19.000000,77.900000,te +18.900000,77.900000,te +18.800000,77.900000,te +18.800000,77.800000,hi +18.900000,77.800000,hi +18.900000,77.700000,hi +18.800000,77.700000,hi +18.800000,77.600000,mr +18.900000,77.600000,mr +19.000000,77.600000,hi +19.000000,77.700000,hi +19.100000,77.700000,hi +19.100000,77.600000,hi +19.100000,77.500000,hi +19.000000,77.500000,mr +19.000000,77.400000,mr +19.100000,77.400000,hi +19.100000,77.300000,hi +19.100000,77.200000,mr +19.000000,77.200000,mr +19.000000,77.300000,mr +18.900000,77.300000,mr +18.900000,77.200000,mr +18.800000,77.200000,mr +18.800000,77.300000,mr +18.800000,77.400000,mr +18.900000,77.400000,hi +18.900000,77.500000,hi +18.800000,77.500000,mr +18.700000,77.500000,mr +18.600000,77.500000,mr +18.600000,77.400000,mr +18.700000,77.400000,mr +18.700000,77.300000,mr +18.700000,77.200000,mr +18.600000,77.200000,mr +18.600000,77.300000,mr +18.500000,77.300000,hi +18.500000,77.200000,mr +18.400000,77.200000,hi +18.400000,77.300000,hi +18.400000,77.400000,hi +18.500000,77.400000,mr +18.500000,77.500000,hi +18.400000,77.500000,hi +18.400000,77.600000,hi +18.500000,77.700000,hi +18.500000,77.600000,hi +18.600000,77.600000,hi +18.700000,77.600000,mr +18.700000,77.700000,hi +18.600000,77.700000,hi +18.600000,77.800000,te +18.700000,77.800000,hi +18.700000,77.900000,te +18.600000,77.900000,te +18.500000,77.800000,te +18.500000,77.900000,te +18.400000,77.900000,te +18.300000,77.900000,te +18.300000,77.800000,te +18.400000,77.800000,te +18.400000,77.700000,te +18.300000,77.600000,hi +18.300000,77.700000,te +18.200000,77.700000,te +18.200000,77.600000,te +18.100000,77.600000,hi +18.100000,77.700000,te +18.100000,77.800000,te +18.200000,77.800000,te +18.200000,77.900000,te +18.100000,77.900000,te +18.000000,77.900000,te +18.000000,77.800000,te +17.900000,77.800000,te +17.900000,77.900000,te +17.800000,77.900000,te +17.700000,77.900000,te +17.700000,77.800000,te +17.800000,77.800000,te +17.800000,77.700000,hi +17.700000,77.700000,hi +17.700000,77.600000,hi +17.800000,77.600000,hi +17.900000,77.600000,hi +17.900000,77.700000,hi +18.000000,77.700000,hi +18.000000,77.600000,hi +18.000000,77.500000,kn +18.000000,77.400000,kn +17.900000,77.400000,hi +17.900000,77.500000,hi +17.800000,77.500000,hi +17.700000,77.500000,hi +17.700000,77.400000,kn +17.800000,77.400000,hi +17.800000,77.300000,kn +17.700000,77.300000,kn +17.700000,77.200000,kn +17.800000,77.200000,kn +17.900000,77.200000,kn +17.900000,77.300000,kn +18.000000,77.300000,kn +18.000000,77.200000,hi +18.100000,77.200000,hi +18.100000,77.300000,hi +18.100000,77.400000,kn +18.100000,77.500000,kn +18.200000,77.500000,kn +18.200000,77.400000,kn +18.300000,77.500000,hi +18.300000,77.400000,hi +18.300000,77.300000,hi +18.200000,77.300000,hi +18.200000,77.200000,hi +18.300000,77.200000,hi +18.200000,77.100000,hi +18.300000,77.100000,hi +18.300000,77.000000,hi +18.300000,76.900000,hi +18.200000,76.900000,hi +18.200000,77.000000,hi +18.100000,77.000000,hi +18.100000,76.900000,hi +18.000000,76.900000,hi +18.000000,77.000000,hi +18.000000,77.100000,hi +18.100000,77.100000,hi +17.900000,77.100000,kn +17.700000,77.100000,kn +17.800000,77.100000,kn +17.800000,77.000000,kn +17.700000,77.000000,kn +17.700000,76.900000,kn +17.800000,76.900000,hi +17.900000,77.000000,hi +17.900000,76.900000,hi +17.900000,76.800000,hi +17.900000,76.700000,hi +17.800000,76.700000,hi +17.800000,76.800000,hi +17.700000,76.800000,kn +17.600000,76.700000,kn +17.700000,76.700000,hi +17.700000,76.600000,hi +17.600000,76.600000,kn +17.600000,76.500000,hi +17.700000,76.500000,hi +17.800000,76.500000,mr +17.800000,76.600000,mr +17.900000,76.600000,mr +17.900000,76.500000,mr +18.000000,76.500000,mr +18.100000,76.500000,mr +18.100000,76.600000,mr +18.000000,76.600000,mr +18.000000,76.700000,hi +18.000000,76.800000,hi +18.100000,76.800000,mr +18.100000,76.700000,hi +18.200000,76.700000,mr +18.200000,76.800000,mr +18.300000,76.800000,mr +18.300000,76.700000,mr +18.300000,76.600000,mr +18.200000,76.600000,mr +18.200000,76.500000,mr +18.300000,76.500000,mr +18.400000,76.500000,hi +18.400000,76.600000,mr +18.500000,76.600000,mr +18.500000,76.500000,mr +18.600000,76.500000,mr +18.700000,76.600000,mr +18.600000,76.600000,mr +18.600000,76.700000,mr +18.700000,76.700000,mr +18.700000,76.800000,mr +18.600000,76.800000,mr +18.500000,76.800000,mr +18.500000,76.700000,mr +18.400000,76.700000,mr +18.400000,76.800000,mr +18.400000,76.900000,hi +18.500000,76.900000,hi +18.500000,77.000000,mr +18.400000,77.000000,hi +18.400000,77.100000,hi +18.500000,77.100000,hi +18.600000,77.100000,mr +18.700000,77.100000,mr +18.700000,77.000000,mr +18.600000,77.000000,hi +18.600000,76.900000,hi +18.700000,76.900000,mr +18.800000,76.900000,mr +18.900000,76.900000,mr +18.900000,77.000000,mr +18.800000,77.000000,mr +18.800000,77.100000,mr +18.900000,77.100000,mr +19.000000,77.100000,mr +19.100000,77.100000,mr +19.100000,77.000000,mr +19.000000,77.000000,mr +19.000000,76.900000,mr +19.000000,76.800000,mr +19.000000,76.700000,mr +18.900000,76.700000,mr +18.900000,76.800000,hi +18.800000,76.800000,mr +18.800000,76.700000,mr +18.800000,76.600000,mr +18.700000,76.500000,mr +18.800000,76.500000,mr +18.900000,76.500000,mr +18.900000,76.600000,mr +19.000000,76.600000,mr +19.000000,76.500000,hi +19.100000,76.500000,hi +19.100000,76.600000,mr +19.200000,76.600000,mr +19.200000,76.500000,mr +19.300000,76.500000,mr +19.400000,76.500000,mr +19.400000,76.600000,mr +19.300000,76.600000,mr +19.300000,76.700000,mr +19.400000,76.700000,mr +19.400000,76.800000,mr +19.300000,76.800000,mr +19.200000,76.800000,mr +19.200000,76.700000,mr +19.100000,76.700000,mr +19.100000,76.800000,mr +19.100000,76.900000,mr +19.200000,76.900000,mr +19.200000,77.000000,hi +19.200000,77.100000,mr +19.300000,77.100000,mr +19.400000,77.100000,mr +19.400000,77.000000,mr +19.300000,77.000000,mr +19.300000,76.900000,mr +19.400000,76.900000,mr +19.500000,76.900000,mr +19.600000,76.900000,mr +19.600000,77.000000,mr +19.500000,77.000000,hi +19.500000,77.100000,mr +19.600000,77.100000,mr +19.700000,77.100000,hi +19.800000,77.100000,mr +19.800000,77.000000,mr +19.700000,77.000000,mr +19.700000,76.900000,mr +19.800000,76.900000,mr +19.800000,76.800000,mr +19.800000,76.700000,mr +19.700000,76.700000,mr +19.700000,76.800000,mr +19.600000,76.800000,mr +19.500000,76.800000,mr +19.500000,76.700000,mr +19.600000,76.700000,mr +19.600000,76.600000,mr +19.500000,76.600000,mr +19.500000,76.500000,mr +19.600000,76.500000,mr +19.700000,76.500000,mr +19.700000,76.600000,mr +19.800000,76.600000,mr +19.800000,76.500000,mr +19.900000,76.500000,mr +20.000000,76.500000,mr +20.000000,76.600000,mr +19.900000,76.600000,mr +19.900000,76.700000,mr +19.900000,76.800000,mr +20.000000,76.800000,hi +20.000000,76.700000,hi +20.100000,76.700000,mr +20.100000,76.800000,hi +20.200000,76.800000,hi +20.200000,76.700000,hi +20.100000,76.600000,hi +20.100000,76.500000,mr +20.200000,76.500000,mr +20.200000,76.600000,hi +20.300000,76.600000,mr +20.300000,76.500000,mr +20.400000,76.500000,mr +20.500000,76.500000,hi +20.500000,76.600000,hi +20.400000,76.600000,hi +20.400000,76.700000,hi +20.500000,76.700000,hi +20.500000,76.800000,hi +20.400000,76.800000,hi +20.300000,76.700000,hi +20.300000,76.800000,hi +20.300000,76.900000,hi +20.300000,77.000000,hi +20.400000,77.000000,hi +20.400000,76.900000,hi +20.500000,76.900000,hi +20.500000,77.000000,hi +20.500000,77.100000,hi +20.600000,77.100000,hi +20.400000,77.100000,hi +20.300000,77.100000,hi +20.100000,77.100000,mr +20.200000,77.100000,mr +20.200000,77.000000,mr +20.200000,76.900000,mr +20.100000,76.900000,mr +20.100000,77.000000,mr +20.000000,77.000000,mr +20.000000,76.900000,mr +19.900000,76.900000,mr +19.900000,77.000000,mr +19.900000,77.100000,mr +20.000000,77.100000,mr +19.900000,77.200000,mr +20.000000,77.200000,mr +20.000000,77.300000,mr +19.900000,77.300000,mr +19.900000,77.400000,mr +19.900000,77.500000,hi +20.000000,77.500000,hi +20.000000,77.400000,hi +20.100000,77.400000,mr +20.100000,77.500000,hi +20.200000,77.500000,mr +20.200000,77.400000,mr +20.200000,77.300000,mr +20.100000,77.300000,mr +20.100000,77.200000,mr +20.200000,77.200000,mr +20.300000,77.200000,mr +20.300000,77.300000,hi +20.400000,77.300000,hi +20.400000,77.200000,hi +20.500000,77.200000,hi +20.600000,77.200000,hi +20.600000,77.300000,hi +20.500000,77.300000,hi +20.500000,77.400000,hi +20.600000,77.400000,hi +20.600000,77.500000,hi +20.500000,77.500000,hi +20.400000,77.500000,hi +20.400000,77.400000,hi +20.300000,77.400000,hi +20.300000,77.500000,hi +20.300000,77.600000,hi +20.300000,77.700000,hi +20.400000,77.700000,hi +20.400000,77.600000,hi +20.500000,77.600000,hi +20.600000,77.600000,hi +20.600000,77.700000,hi +20.500000,77.700000,hi +20.500000,77.800000,hi +20.600000,77.800000,hi +20.600000,77.900000,hi +20.500000,77.900000,hi +20.400000,77.900000,hi +20.400000,77.800000,hi +20.300000,77.800000,hi +20.300000,77.900000,hi +20.200000,77.900000,hi +20.100000,77.800000,hi +20.200000,77.800000,hi +20.200000,77.700000,hi +20.200000,77.600000,mr +20.100000,77.600000,hi +20.100000,77.700000,hi +20.000000,77.700000,hi +20.000000,77.600000,hi +19.900000,77.600000,hi +20.000000,77.800000,hi +20.100000,77.900000,hi +20.000000,77.900000,hi +19.900000,77.900000,hi +19.900000,77.800000,hi +19.800000,77.800000,mr +19.800000,77.900000,hi +19.700000,77.900000,mr +19.600000,77.900000,mr +19.600000,77.800000,hi +19.700000,77.800000,hi +19.700000,77.700000,mr +19.600000,77.700000,hi +19.600000,77.600000,mr +19.700000,77.600000,mr +19.800000,77.600000,hi +19.800000,77.700000,hi +19.900000,77.700000,hi +19.800000,77.500000,hi +19.700000,77.500000,hi +19.700000,77.400000,mr +19.800000,77.400000,mr +19.800000,77.300000,mr +19.800000,77.200000,mr +19.700000,77.200000,mr +19.700000,77.300000,mr +19.600000,77.300000,mr +19.600000,77.200000,mr +19.500000,77.200000,mr +19.500000,77.300000,mr +19.600000,77.400000,mr +19.600000,77.500000,mr +19.500000,77.500000,mr +19.400000,77.500000,mr +19.400000,77.400000,mr +19.500000,77.400000,mr +19.400000,77.200000,mr +19.400000,77.300000,mr +19.300000,77.300000,mr +19.300000,77.200000,mr +19.200000,77.200000,mr +19.200000,77.300000,mr +19.200000,77.400000,mr +19.300000,77.400000,mr +19.300000,77.500000,mr +19.200000,77.500000,hi +19.200000,77.600000,hi +19.200000,77.700000,mr +19.300000,77.700000,mr +19.300000,77.600000,hi +19.400000,77.600000,mr +19.500000,77.600000,mr +19.500000,77.700000,mr +19.400000,77.700000,mr +19.400000,77.800000,mr +19.500000,77.800000,mr +19.500000,77.900000,mr +19.400000,77.900000,mr +19.300000,77.900000,hi +19.300000,77.800000,hi +19.200000,77.800000,hi +19.200000,77.900000,hi +19.200000,78.000000,te +19.300000,78.000000,hi +19.300000,78.100000,te +19.200000,78.100000,te +19.200000,78.200000,te +19.300000,78.200000,te +19.400000,78.200000,hi +19.500000,78.200000,hi +19.500000,78.100000,mr +19.400000,78.100000,mr +19.400000,78.000000,mr +19.500000,78.000000,mr +19.600000,78.000000,mr +19.600000,78.100000,hi +19.700000,78.100000,hi +19.700000,78.000000,mr +19.800000,78.000000,hi +19.900000,78.000000,hi +19.900000,78.100000,hi +19.800000,78.100000,hi +19.800000,78.200000,hi +19.900000,78.200000,hi +19.700000,78.200000,hi +19.600000,78.200000,hi +19.600000,78.300000,hi +19.600000,78.400000,hi +19.700000,78.400000,hi +19.700000,78.300000,hi +19.800000,78.300000,hi +19.900000,78.300000,hi +19.900000,78.400000,hi +19.800000,78.400000,hi +19.800000,78.500000,hi +19.900000,78.500000,hi +19.900000,78.600000,hi +19.800000,78.600000,hi +19.700000,78.600000,hi +19.700000,78.500000,hi +19.600000,78.500000,hi +19.600000,78.600000,hi +19.500000,78.600000,hi +19.400000,78.600000,te +19.400000,78.500000,te +19.500000,78.500000,te +19.500000,78.400000,hi +19.500000,78.300000,hi +19.400000,78.300000,te +19.400000,78.400000,te +19.300000,78.400000,te +19.300000,78.300000,te +19.200000,78.300000,te +19.200000,78.400000,te +19.300000,78.500000,te +19.300000,78.600000,te +19.300000,78.700000,te +19.300000,78.800000,te +19.400000,78.800000,te +19.400000,78.700000,te +19.500000,78.700000,hi +19.500000,78.800000,te +19.500000,78.900000,hi +19.600000,78.900000,hi +19.600000,79.000000,hi +19.500000,79.000000,hi +19.400000,79.000000,te +19.400000,78.900000,te +19.300000,78.900000,te +19.300000,79.000000,te +19.300000,79.100000,te +19.400000,79.100000,hi +19.300000,79.200000,te +19.300000,79.300000,te +19.400000,79.300000,te +19.400000,79.200000,te +19.500000,79.200000,hi +19.500000,79.300000,hi +19.600000,79.300000,hi +19.600000,79.200000,hi +19.500000,79.100000,hi +19.600000,79.100000,hi +19.700000,79.100000,hi +19.800000,79.100000,hi +19.700000,79.200000,hi +19.700000,79.300000,hi +19.800000,79.300000,hi +19.800000,79.200000,hi +19.900000,79.200000,hi +19.900000,79.300000,hi +20.000000,79.300000,hi +19.900000,79.100000,hi +19.900000,79.000000,hi +19.900000,78.900000,hi +19.800000,78.900000,hi +19.800000,79.000000,hi +19.700000,79.000000,hi +19.700000,78.900000,hi +19.700000,78.800000,hi +19.600000,78.800000,hi +19.600000,78.700000,hi +19.700000,78.700000,hi +19.800000,78.700000,hi +19.800000,78.800000,hi +19.900000,78.800000,hi +19.900000,78.700000,hi +20.000000,78.700000,hi +20.000000,78.800000,hi +20.100000,78.800000,hi +20.100000,78.700000,hi +20.200000,78.700000,hi +20.300000,78.700000,hi +20.300000,78.800000,hi +20.200000,78.800000,hi +20.200000,78.900000,hi +20.300000,78.900000,hi +20.300000,79.000000,hi +20.200000,79.000000,hi +20.100000,79.000000,hi +20.100000,78.900000,hi +20.000000,78.900000,hi +20.000000,79.000000,hi +20.000000,79.100000,hi +20.100000,79.100000,hi +20.000000,79.200000,hi +20.100000,79.300000,hi +20.100000,79.200000,hi +20.200000,79.200000,hi +20.200000,79.300000,hi +20.300000,79.300000,hi +20.300000,79.200000,hi +20.200000,79.100000,hi +20.300000,79.100000,hi +20.400000,79.100000,hi +20.500000,79.100000,hi +20.400000,79.200000,hi +20.400000,79.300000,hi +20.500000,79.300000,hi +20.500000,79.200000,hi +20.600000,79.200000,hi +20.600000,79.300000,hi +20.700000,79.300000,hi +20.700000,79.200000,hi +20.600000,79.100000,hi +20.700000,79.100000,hi +20.700000,79.000000,hi +20.700000,78.900000,hi +20.600000,78.900000,hi +20.600000,79.000000,hi +20.500000,79.000000,hi +20.400000,79.000000,hi +20.400000,78.900000,hi +20.500000,78.900000,hi +20.500000,78.800000,hi +20.400000,78.800000,hi +20.400000,78.700000,hi +20.500000,78.700000,hi +20.600000,78.700000,hi +20.600000,78.800000,hi +20.700000,78.800000,hi +20.700000,78.700000,hi +20.700000,78.600000,hi +20.600000,78.600000,hi +20.600000,78.500000,hi +20.700000,78.500000,hi +20.600000,78.300000,hi +20.600000,78.400000,hi +20.500000,78.400000,hi +20.500000,78.300000,hi +20.400000,78.300000,hi +20.400000,78.400000,hi +20.400000,78.500000,hi +20.500000,78.500000,hi +20.500000,78.600000,hi +20.400000,78.600000,hi +20.300000,78.600000,hi +20.300000,78.500000,hi +20.200000,78.500000,hi +20.200000,78.600000,hi +20.100000,78.600000,hi +20.000000,78.600000,hi +20.000000,78.500000,hi +20.100000,78.500000,hi +20.100000,78.400000,hi +20.000000,78.400000,hi +20.000000,78.300000,hi +20.100000,78.300000,hi +20.200000,78.300000,hi +20.200000,78.400000,hi +20.300000,78.400000,hi +20.300000,78.300000,hi +20.300000,78.200000,hi +20.200000,78.200000,hi +20.000000,78.200000,hi +20.100000,78.200000,hi +20.100000,78.100000,hi +20.000000,78.100000,hi +20.000000,78.000000,hi +20.100000,78.000000,hi +20.200000,78.000000,hi +20.200000,78.100000,hi +20.300000,78.100000,hi +20.300000,78.000000,hi +20.400000,78.000000,hi +20.400000,78.100000,hi +20.400000,78.200000,hi +20.500000,78.200000,hi +20.600000,78.200000,hi +20.600000,78.100000,hi +20.500000,78.100000,hi +20.500000,78.000000,hi +20.600000,78.000000,hi +20.700000,78.000000,hi +20.800000,78.000000,hi +20.800000,78.100000,hi +20.700000,78.100000,hi +20.700000,78.200000,hi +20.800000,78.200000,hi +20.900000,78.200000,hi +21.000000,78.200000,hi +21.000000,78.100000,hi +20.900000,78.100000,hi +20.900000,78.000000,hi +21.000000,78.000000,hi +21.100000,78.000000,hi +21.100000,78.100000,hi +21.200000,78.100000,hi +21.200000,78.000000,hi +21.300000,78.000000,hi +21.400000,78.000000,hi +21.400000,78.100000,hi +21.300000,78.100000,hi +21.300000,78.200000,hi +21.400000,78.200000,hi +21.200000,78.200000,hi +21.100000,78.200000,hi +21.100000,78.300000,hi +21.100000,78.400000,hi +21.200000,78.400000,hi +21.200000,78.300000,hi +21.300000,78.300000,hi +21.400000,78.300000,hi +21.400000,78.400000,hi +21.300000,78.400000,hi +21.300000,78.500000,hi +21.400000,78.500000,hi +21.400000,78.600000,hi +21.300000,78.600000,hi +21.200000,78.600000,hi +21.200000,78.500000,hi +21.100000,78.500000,hi +21.100000,78.600000,hi +21.000000,78.600000,hi +20.900000,78.500000,hi +21.000000,78.500000,hi +21.000000,78.400000,hi +21.000000,78.300000,hi +20.900000,78.300000,hi +20.900000,78.400000,hi +20.800000,78.400000,hi +20.800000,78.300000,hi +20.700000,78.300000,hi +20.700000,78.400000,hi +20.800000,78.500000,hi +20.900000,78.600000,hi +20.800000,78.600000,hi +20.800000,78.700000,hi +20.800000,78.800000,hi +20.900000,78.800000,hi +20.900000,78.700000,hi +21.000000,78.700000,hi +21.100000,78.800000,hi +21.000000,78.800000,hi +21.000000,78.900000,hi +21.100000,78.900000,hi +21.100000,79.000000,hi +21.000000,79.000000,hi +20.900000,79.000000,hi +20.900000,78.900000,hi +20.800000,78.900000,hi +20.800000,79.000000,hi +20.800000,79.100000,hi +20.900000,79.100000,hi +20.800000,79.200000,hi +20.800000,79.300000,hi +20.900000,79.300000,hi +20.900000,79.200000,hi +21.000000,79.200000,hi +21.000000,79.300000,hi +21.100000,79.300000,hi +21.100000,79.200000,hi +21.000000,79.100000,hi +21.100000,79.100000,hi +21.200000,79.100000,hi +21.300000,79.100000,hi +21.200000,79.200000,hi +21.200000,79.300000,hi +21.300000,79.300000,hi +21.300000,79.200000,hi +21.400000,79.200000,hi +21.400000,79.300000,hi +21.500000,79.300000,hi +21.500000,79.200000,hi +21.400000,79.100000,hi +21.400000,79.000000,hi +21.400000,78.900000,hi +21.300000,78.900000,hi +21.300000,79.000000,hi +21.200000,79.000000,hi +21.200000,78.900000,hi +21.200000,78.800000,hi +21.100000,78.700000,hi +21.200000,78.700000,hi +21.300000,78.700000,hi +21.300000,78.800000,hi +21.400000,78.800000,hi +21.400000,78.700000,hi +21.500000,78.700000,hi +21.500000,78.800000,hi +21.600000,78.800000,hi +21.600000,78.700000,hi +21.700000,78.700000,hi +21.800000,78.700000,hi +21.800000,78.800000,hi +21.700000,78.800000,hi +21.700000,78.900000,hi +21.800000,78.900000,hi +21.800000,79.000000,hi +21.700000,79.000000,hi +21.600000,79.000000,hi +21.600000,78.900000,hi +21.500000,78.900000,hi +21.500000,79.000000,hi +21.500000,79.100000,hi +21.600000,79.100000,hi +21.600000,79.300000,hi +21.700000,79.300000,hi +21.600000,79.200000,hi +21.700000,79.200000,hi +21.800000,79.300000,hi +21.800000,79.200000,hi +21.700000,79.100000,hi +21.800000,79.100000,hi +21.900000,79.100000,hi +22.000000,79.100000,hi +21.900000,79.200000,hi +21.900000,79.300000,hi +22.000000,79.300000,hi +22.000000,79.200000,hi +22.100000,79.200000,hi +22.100000,79.300000,hi +22.200000,79.300000,hi +22.200000,79.200000,hi +22.100000,79.100000,hi +22.200000,79.100000,hi +22.200000,79.000000,hi +22.200000,78.900000,hi +22.100000,78.900000,hi +22.100000,79.000000,hi +22.000000,79.000000,hi +21.900000,79.000000,hi +21.900000,78.900000,hi +22.000000,78.900000,hi +22.000000,78.800000,hi +21.900000,78.800000,hi +21.900000,78.700000,hi +22.000000,78.700000,hi +22.100000,78.700000,hi +22.100000,78.800000,hi +22.200000,78.800000,hi +22.200000,78.700000,hi +22.200000,78.600000,hi +22.100000,78.600000,hi +22.100000,78.500000,hi +22.200000,78.500000,hi +22.200000,78.400000,hi +22.100000,78.300000,hi +22.100000,78.400000,hi +22.000000,78.400000,hi +22.000000,78.300000,hi +21.900000,78.300000,hi +21.900000,78.400000,hi +21.900000,78.500000,hi +22.000000,78.500000,hi +22.000000,78.600000,hi +21.900000,78.600000,hi +21.800000,78.600000,hi +21.800000,78.500000,hi +21.700000,78.500000,hi +21.700000,78.600000,hi +21.600000,78.600000,hi +21.500000,78.600000,hi +21.500000,78.500000,hi +21.600000,78.500000,hi +21.600000,78.400000,hi +21.500000,78.400000,hi +21.500000,78.300000,hi +21.600000,78.300000,hi +21.700000,78.300000,hi +21.700000,78.400000,hi +21.800000,78.400000,hi +21.800000,78.300000,hi +21.800000,78.200000,hi +21.700000,78.200000,hi +21.500000,78.200000,hi +21.600000,78.200000,hi +21.600000,78.100000,hi +21.500000,78.100000,hi +21.500000,78.000000,hi +21.600000,78.000000,hi +21.700000,78.000000,hi +21.700000,78.100000,hi +21.800000,78.100000,hi +21.800000,78.000000,hi +21.900000,78.000000,hi +21.900000,78.100000,hi +21.900000,78.200000,hi +22.000000,78.200000,hi +22.100000,78.200000,hi +22.100000,78.100000,hi +22.000000,78.100000,hi +22.000000,78.000000,hi +22.100000,78.000000,hi +22.100000,77.900000,hi +22.100000,77.800000,hi +22.000000,77.800000,hi +22.000000,77.900000,hi +21.900000,77.900000,hi +21.800000,77.900000,hi +21.800000,77.800000,hi +21.900000,77.800000,hi +21.900000,77.700000,hi +21.800000,77.700000,hi +21.800000,77.600000,hi +21.900000,77.600000,hi +22.000000,77.600000,hi +22.000000,77.700000,hi +22.100000,77.700000,hi +22.100000,77.600000,hi +22.100000,77.500000,hi +22.000000,77.500000,hi +22.000000,77.400000,hi +22.100000,77.400000,hi +22.100000,77.300000,hi +22.100000,77.200000,hi +22.000000,77.200000,hi +22.000000,77.300000,hi +21.900000,77.300000,hi +21.900000,77.200000,hi +21.800000,77.200000,hi +21.800000,77.300000,hi +21.800000,77.400000,hi +21.900000,77.400000,hi +21.900000,77.500000,hi +21.800000,77.500000,hi +21.700000,77.500000,hi +21.600000,77.500000,hi +21.600000,77.400000,hi +21.700000,77.400000,hi +21.700000,77.300000,hi +21.700000,77.200000,hi +21.600000,77.200000,hi +21.600000,77.300000,hi +21.500000,77.300000,hi +21.500000,77.200000,hi +21.400000,77.200000,hi +21.400000,77.300000,hi +21.400000,77.400000,hi +21.500000,77.400000,hi +21.500000,77.500000,hi +21.400000,77.500000,hi +21.400000,77.600000,hi +21.500000,77.700000,hi +21.500000,77.600000,hi +21.600000,77.600000,hi +21.700000,77.600000,hi +21.700000,77.700000,hi +21.600000,77.700000,hi +21.600000,77.800000,hi +21.700000,77.800000,hi +21.700000,77.900000,hi +21.600000,77.900000,hi +21.500000,77.800000,hi +21.500000,77.900000,hi +21.400000,77.900000,hi +21.300000,77.900000,hi +21.300000,77.800000,hi +21.400000,77.800000,hi +21.400000,77.700000,hi +21.300000,77.600000,hi +21.300000,77.700000,hi +21.200000,77.700000,hi +21.200000,77.600000,hi +21.100000,77.600000,hi +21.100000,77.700000,hi +21.100000,77.800000,hi +21.200000,77.800000,hi +21.200000,77.900000,hi +21.100000,77.900000,hi +21.000000,77.900000,hi +21.000000,77.800000,hi +20.900000,77.800000,hi +20.900000,77.900000,hi +20.800000,77.900000,hi +20.700000,77.900000,hi +20.700000,77.800000,hi +20.800000,77.800000,hi +20.800000,77.700000,hi +20.700000,77.700000,hi +20.700000,77.600000,hi +20.800000,77.600000,hi +20.900000,77.600000,hi +20.900000,77.700000,hi +21.000000,77.700000,hi +21.000000,77.600000,hi +21.000000,77.500000,hi +21.000000,77.400000,hi +20.900000,77.400000,hi +20.900000,77.500000,hi +20.800000,77.500000,hi +20.700000,77.500000,hi +20.700000,77.400000,hi +20.800000,77.400000,hi +20.800000,77.300000,hi +20.700000,77.300000,hi +20.700000,77.200000,hi +20.800000,77.200000,hi +20.900000,77.300000,mr +20.900000,77.200000,hi +21.000000,77.200000,hi +21.100000,77.200000,hi +21.100000,77.300000,hi +21.000000,77.300000,hi +21.100000,77.500000,hi +21.100000,77.400000,hi +21.200000,77.400000,hi +21.200000,77.500000,hi +21.300000,77.500000,hi +21.300000,77.400000,hi +21.300000,77.300000,hi +21.200000,77.300000,hi +21.200000,77.200000,hi +21.300000,77.200000,hi +21.200000,77.100000,hi +21.300000,77.100000,hi +21.300000,77.000000,hi +21.300000,76.900000,hi +21.200000,76.900000,hi +21.200000,77.000000,hi +21.100000,77.000000,hi +21.100000,76.900000,hi +21.000000,76.900000,hi +21.000000,77.000000,hi +21.000000,77.100000,hi +21.100000,77.100000,hi +20.900000,77.100000,hi +20.800000,77.100000,hi +20.700000,77.100000,hi +20.700000,77.000000,hi +20.600000,77.000000,hi +20.600000,76.900000,hi +20.700000,76.900000,hi +20.800000,76.900000,hi +20.800000,77.000000,hi +20.900000,77.000000,hi +20.900000,76.900000,hi +20.900000,76.800000,hi +20.900000,76.700000,hi +20.800000,76.700000,hi +20.800000,76.800000,hi +20.700000,76.800000,hi +20.600000,76.800000,hi +20.600000,76.700000,hi +20.700000,76.700000,hi +20.700000,76.600000,hi +20.600000,76.600000,hi +20.600000,76.500000,hi +20.700000,76.500000,hi +20.800000,76.500000,hi +20.800000,76.600000,hi +20.900000,76.600000,hi +20.900000,76.500000,hi +21.000000,76.500000,hi +21.100000,76.500000,hi +21.100000,76.600000,hi +21.000000,76.600000,hi +21.000000,76.700000,hi +21.000000,76.800000,hi +21.100000,76.800000,hi +21.100000,76.700000,hi +21.200000,76.700000,hi +21.200000,76.800000,hi +21.300000,76.800000,hi +21.300000,76.700000,hi +21.300000,76.600000,hi +21.200000,76.600000,hi +21.200000,76.500000,hi +21.300000,76.500000,hi +21.400000,76.500000,hi +21.400000,76.600000,hi +21.500000,76.600000,hi +21.500000,76.500000,hi +21.600000,76.500000,hi +21.600000,76.600000,hi +21.600000,76.700000,hi +21.700000,76.800000,hi +21.600000,76.800000,hi +21.500000,76.800000,hi +21.500000,76.700000,hi +21.400000,76.700000,hi +21.400000,76.800000,hi +21.400000,76.900000,hi +21.500000,76.900000,hi +21.500000,77.000000,hi +21.400000,77.000000,hi +21.400000,77.100000,hi +21.500000,77.100000,hi +21.600000,77.100000,hi +21.700000,77.100000,hi +21.700000,77.000000,hi +21.600000,77.000000,hi +21.600000,76.900000,hi +21.700000,76.900000,hi +21.800000,76.900000,hi +21.900000,76.900000,hi +21.900000,77.000000,hi +21.800000,77.000000,hi +21.800000,77.100000,hi +21.900000,77.100000,hi +22.000000,77.100000,hi +22.100000,77.100000,hi +22.000000,77.000000,hi +22.000000,76.900000,hi +22.000000,76.800000,hi +22.000000,76.700000,hi +21.900000,76.700000,hi +21.900000,76.800000,hi +21.800000,76.800000,hi +21.700000,76.700000,hi +21.800000,76.700000,hi +21.800000,76.600000,hi +21.700000,76.600000,hi +21.700000,76.500000,hi +21.800000,76.500000,hi +21.900000,76.500000,hi +21.900000,76.600000,hi +22.000000,76.600000,hi +22.000000,76.500000,hi +22.000000,76.400000,hi +21.900000,76.400000,hi +21.900000,76.300000,hi +22.000000,76.300000,hi +22.000000,76.200000,hi +22.000000,76.100000,hi +21.900000,76.100000,hi +21.900000,76.200000,hi +21.800000,76.200000,hi +21.800000,76.100000,hi +21.700000,76.100000,hi +21.700000,76.200000,hi +21.700000,76.300000,hi +21.800000,76.300000,hi +21.800000,76.400000,hi +21.700000,76.400000,hi +21.600000,76.400000,hi +21.600000,76.300000,hi +21.500000,76.300000,hi +21.500000,76.400000,hi +21.400000,76.400000,hi +21.300000,76.400000,hi +21.300000,76.300000,hi +21.400000,76.300000,hi +21.400000,76.200000,hi +21.300000,76.200000,hi +21.300000,76.100000,hi +21.400000,76.100000,hi +21.500000,76.100000,hi +21.500000,76.200000,hi +21.600000,76.200000,hi +21.600000,76.100000,hi +21.600000,76.000000,hi +21.600000,75.900000,hi +21.500000,75.900000,hi +21.500000,76.000000,hi +21.400000,76.000000,hi +21.300000,76.000000,hi +21.300000,75.900000,hi +21.400000,75.900000,hi +21.300000,75.800000,hi +21.400000,75.800000,hi +21.500000,75.800000,hi +21.600000,75.800000,hi +21.700000,75.800000,hi +21.800000,75.800000,hi +21.700000,75.900000,hi +21.700000,76.000000,hi +21.800000,76.000000,hi +21.800000,75.900000,hi +21.900000,75.900000,hi +21.900000,76.000000,hi +22.000000,76.000000,hi +22.000000,75.900000,hi +21.900000,75.800000,hi +21.900000,75.700000,hi +21.900000,75.600000,hi +21.800000,75.600000,hi +21.800000,75.700000,hi +21.700000,75.700000,hi +21.700000,75.600000,hi +21.700000,75.500000,hi +21.600000,75.500000,hi +21.600000,75.400000,hi +21.700000,75.400000,hi +21.800000,75.400000,hi +21.800000,75.500000,hi +21.900000,75.500000,hi +21.900000,75.400000,hi +21.900000,75.300000,hi +21.800000,75.300000,hi +21.800000,75.200000,hi +21.900000,75.200000,hi +21.900000,75.100000,hi +21.900000,75.000000,hi +21.800000,75.000000,hi +21.800000,75.100000,hi +21.700000,75.100000,hi +21.700000,75.000000,hi +21.600000,75.000000,hi +21.600000,75.100000,hi +21.600000,75.200000,hi +21.700000,75.200000,hi +21.700000,75.300000,hi +21.600000,75.300000,hi +21.500000,75.300000,hi +21.400000,75.300000,hi +21.400000,75.200000,hi +21.500000,75.200000,hi +21.500000,75.100000,hi +21.500000,75.000000,hi +21.400000,75.000000,hi +21.400000,75.100000,hi +21.300000,75.100000,hi +21.300000,75.000000,hi +21.200000,75.000000,hi +21.200000,75.100000,hi +21.200000,75.200000,hi +21.300000,75.200000,hi +21.300000,75.300000,hi +21.300000,75.400000,hi +21.300000,75.500000,hi +21.400000,75.500000,hi +21.400000,75.400000,hi +21.500000,75.400000,hi +21.500000,75.500000,hi +21.500000,75.600000,hi +21.600000,75.600000,hi +21.600000,75.700000,hi +21.500000,75.700000,hi +21.400000,75.700000,hi +21.400000,75.600000,hi +21.300000,75.600000,hi +21.300000,75.700000,hi +21.200000,75.700000,hi +21.200000,75.600000,hi +21.100000,75.600000,hi +21.100000,75.700000,hi +21.000000,75.700000,hi +20.900000,75.700000,hi +20.900000,75.600000,hi +21.000000,75.600000,hi +21.000000,75.500000,hi +20.900000,75.500000,hi +20.900000,75.400000,hi +21.000000,75.400000,hi +21.100000,75.400000,hi +21.100000,75.500000,hi +21.200000,75.500000,hi +21.200000,75.400000,hi +21.200000,75.300000,hi +21.100000,75.300000,hi +21.100000,75.200000,hi +21.100000,75.100000,hi +21.100000,75.000000,hi +21.000000,75.000000,hi +21.000000,75.100000,hi +20.900000,75.000000,hi +20.900000,75.100000,hi +20.900000,75.200000,hi +21.000000,75.200000,hi +21.000000,75.300000,hi +20.900000,75.300000,hi +20.800000,75.300000,hi +20.700000,75.300000,hi +20.700000,75.200000,hi +20.800000,75.200000,hi +20.800000,75.100000,hi +20.800000,75.000000,hi +20.700000,75.000000,hi +20.700000,75.100000,hi +20.600000,75.100000,hi +20.600000,75.000000,hi +20.500000,75.000000,hi +20.500000,75.100000,hi +20.500000,75.200000,hi +20.600000,75.200000,hi +20.600000,75.300000,hi +20.500000,75.300000,hi +20.500000,75.400000,hi +20.500000,75.500000,hi +20.600000,75.500000,hi +20.600000,75.400000,hi +20.700000,75.400000,hi +20.800000,75.400000,hi +20.800000,75.500000,hi +20.700000,75.500000,hi +20.700000,75.600000,hi +20.800000,75.600000,hi +20.800000,75.700000,hi +20.700000,75.700000,hi +20.600000,75.700000,hi +20.600000,75.600000,hi +20.500000,75.600000,hi +20.500000,75.700000,hi +20.600000,75.800000,hi +20.600000,75.900000,hi +20.600000,76.000000,mr +20.700000,76.000000,mr +20.700000,75.900000,hi +20.800000,76.000000,hi +20.800000,75.900000,hi +20.700000,75.800000,hi +20.800000,75.800000,hi +20.900000,75.800000,hi +21.000000,75.800000,hi +21.100000,75.800000,hi +21.200000,75.800000,hi +21.100000,75.900000,hi +21.200000,75.900000,hi +21.200000,76.000000,hi +21.100000,76.000000,hi +21.000000,76.000000,hi +21.000000,75.900000,hi +20.900000,75.900000,hi +20.900000,76.000000,hi +21.000000,76.200000,hi +21.000000,76.100000,hi +21.100000,76.100000,hi +21.200000,76.100000,hi +21.200000,76.200000,hi +21.100000,76.200000,hi +21.200000,76.300000,hi +21.200000,76.400000,hi +21.100000,76.400000,hi +21.100000,76.300000,hi +21.000000,76.300000,hi +21.000000,76.400000,hi +20.900000,76.400000,hi +20.800000,76.400000,hi +20.800000,76.300000,hi +20.900000,76.300000,hi +20.900000,76.200000,hi +20.900000,76.100000,hi +20.800000,76.100000,hi +20.800000,76.200000,hi +20.700000,76.200000,mr +20.700000,76.100000,hi +20.600000,76.100000,mr +20.600000,76.200000,mr +20.600000,76.300000,mr +20.700000,76.300000,hi +20.700000,76.400000,hi +20.600000,76.400000,hi +20.500000,76.400000,hi +20.500000,76.300000,mr +20.400000,76.300000,mr +20.400000,76.400000,mr +20.300000,76.400000,mr +20.200000,76.400000,mr +20.200000,76.300000,mr +20.300000,76.300000,mr +20.300000,76.200000,mr +20.200000,76.200000,mr +20.200000,76.100000,mr +20.300000,76.100000,mr +20.400000,76.100000,mr +20.400000,76.200000,mr +20.500000,76.200000,mr +20.500000,76.100000,mr +20.500000,76.000000,mr +20.400000,76.000000,mr +20.400000,75.900000,mr +20.500000,75.900000,mr +20.500000,75.800000,hi +20.400000,75.800000,hi +20.300000,75.800000,mr +20.200000,75.800000,mr +20.200000,75.900000,mr +20.300000,75.900000,mr +20.300000,76.000000,mr +20.200000,76.000000,mr +20.100000,76.000000,mr +20.000000,76.000000,mr +20.000000,75.900000,hi +20.100000,75.900000,mr +20.100000,75.800000,mr +20.000000,75.800000,hi +19.900000,75.800000,hi +19.800000,75.800000,hi +19.800000,75.900000,hi +19.900000,75.900000,hi +19.900000,76.000000,hi +19.800000,76.000000,hi +19.800000,76.100000,hi +19.800000,76.200000,mr +19.900000,76.200000,mr +19.900000,76.100000,hi +20.000000,76.100000,mr +20.100000,76.100000,mr +20.100000,76.200000,mr +20.000000,76.200000,mr +20.000000,76.300000,mr +20.100000,76.300000,mr +20.100000,76.400000,mr +20.000000,76.400000,mr +19.900000,76.400000,mr +19.900000,76.300000,mr +19.800000,76.300000,mr +19.800000,76.400000,mr +19.700000,76.400000,mr +19.700000,76.300000,hi +19.700000,76.200000,mr +19.700000,76.100000,hi +19.600000,76.100000,hi +19.600000,76.200000,mr +19.500000,76.100000,mr +19.500000,76.200000,mr +19.500000,76.300000,mr +19.600000,76.300000,mr +19.600000,76.400000,mr +19.500000,76.400000,mr +19.400000,76.400000,hi +19.400000,76.300000,mr +19.300000,76.300000,mr +19.300000,76.400000,hi +19.200000,76.400000,mr +19.100000,76.400000,mr +19.100000,76.300000,mr +19.200000,76.300000,mr +19.200000,76.200000,mr +19.100000,76.200000,mr +19.100000,76.100000,mr +19.200000,76.100000,mr +19.300000,76.100000,mr +19.300000,76.200000,mr +19.400000,76.200000,mr +19.400000,76.100000,mr +19.400000,76.000000,mr +19.300000,75.900000,mr +19.300000,76.000000,mr +19.200000,76.000000,mr +19.100000,76.000000,mr +19.100000,75.900000,mr +19.200000,75.900000,mr +19.100000,75.800000,mr +19.200000,75.800000,mr +19.300000,75.800000,mr +19.400000,75.800000,mr +19.500000,75.800000,mr +19.400000,75.900000,mr +19.500000,76.000000,mr +19.500000,75.900000,mr +19.600000,75.900000,hi +19.600000,76.000000,hi +19.700000,76.000000,hi +19.700000,75.900000,hi +19.600000,75.800000,hi +19.700000,75.800000,hi +19.700000,75.700000,hi +19.600000,75.700000,hi +19.600000,75.600000,mr +19.700000,75.600000,hi +19.700000,75.500000,hi +19.700000,75.400000,hi +19.600000,75.400000,hi +19.600000,75.500000,hi +19.500000,75.500000,mr +19.500000,75.400000,mr +19.400000,75.400000,mr +19.400000,75.500000,mr +19.400000,75.600000,mr +19.500000,75.600000,mr +19.500000,75.700000,mr +19.400000,75.700000,mr +19.300000,75.700000,mr +19.300000,75.600000,mr +19.200000,75.600000,mr +19.200000,75.700000,mr +19.100000,75.700000,mr +19.000000,75.600000,mr +19.100000,75.600000,mr +19.100000,75.500000,mr +19.000000,75.500000,mr +19.000000,75.400000,mr +19.100000,75.400000,mr +19.200000,75.400000,mr +19.200000,75.500000,mr +19.300000,75.500000,mr +19.300000,75.400000,mr +19.300000,75.300000,mr +19.300000,75.200000,mr +19.200000,75.200000,mr +19.200000,75.300000,mr +19.100000,75.300000,mr +19.000000,75.300000,mr +19.000000,75.200000,mr +19.100000,75.200000,mr +19.100000,75.100000,mr +19.000000,75.100000,mr +19.000000,75.000000,mr +19.100000,75.000000,mr +19.200000,75.000000,mr +19.200000,75.100000,mr +19.300000,75.100000,mr +19.300000,75.000000,mr +19.400000,75.000000,mr +19.500000,75.000000,mr +19.500000,75.100000,mr +19.400000,75.100000,mr +19.400000,75.200000,mr +19.400000,75.300000,mr +19.500000,75.300000,mr +19.500000,75.200000,mr +19.600000,75.200000,hi +19.600000,75.300000,hi +19.700000,75.300000,hi +19.700000,75.200000,hi +19.700000,75.100000,hi +19.600000,75.100000,hi +19.600000,75.000000,hi +19.700000,75.000000,hi +19.800000,75.100000,hi +19.800000,75.000000,hi +19.900000,75.000000,hi +20.000000,75.000000,hi +20.000000,75.100000,hi +19.900000,75.100000,hi +19.900000,75.200000,hi +20.000000,75.200000,hi +20.000000,75.300000,hi +19.900000,75.300000,hi +19.800000,75.200000,hi +19.800000,75.300000,hi +19.800000,75.400000,hi +19.900000,75.400000,hi +19.900000,75.500000,hi +19.800000,75.500000,hi +19.800000,75.600000,hi +19.800000,75.700000,hi +19.900000,75.700000,hi +19.900000,75.600000,hi +20.000000,75.600000,hi +20.000000,75.700000,hi +20.100000,75.700000,hi +20.100000,75.600000,mr +20.100000,75.500000,hi +20.000000,75.500000,hi +20.000000,75.400000,hi +20.100000,75.400000,hi +20.200000,75.400000,mr +20.200000,75.500000,mr +20.200000,75.600000,mr +20.200000,75.700000,mr +20.300000,75.700000,hi +20.300000,75.600000,mr +20.400000,75.700000,hi +20.400000,75.600000,mr +20.400000,75.500000,mr +20.300000,75.500000,mr +20.300000,75.400000,mr +20.400000,75.400000,hi +20.400000,75.300000,hi +20.400000,75.200000,hi +20.300000,75.200000,hi +20.300000,75.300000,mr +20.200000,75.300000,hi +20.100000,75.300000,hi +20.100000,75.200000,hi +20.200000,75.200000,hi +20.200000,75.100000,hi +20.100000,75.100000,hi +20.100000,75.000000,hi +20.200000,75.000000,mr +20.300000,75.000000,hi +20.300000,75.100000,mr +20.400000,75.100000,hi +20.400000,75.000000,hi +20.400000,74.900000,hi +20.400000,74.800000,mr +20.300000,74.800000,mr +20.300000,74.900000,hi +20.200000,74.900000,mr +20.100000,74.900000,mr +20.100000,74.800000,mr +20.200000,74.800000,mr +20.200000,74.700000,mr +20.100000,74.700000,mr +20.100000,74.600000,mr +20.200000,74.600000,mr +20.300000,74.600000,mr +20.300000,74.700000,mr +20.400000,74.700000,hi +20.300000,74.500000,hi +20.300000,74.400000,hi +20.300000,74.300000,mr +20.200000,74.300000,mr +20.200000,74.400000,hi +20.100000,74.300000,mr +20.100000,74.400000,mr +20.200000,74.500000,hi +20.100000,74.500000,mr +20.000000,74.500000,hi +19.900000,74.500000,hi +20.000000,74.400000,hi +20.000000,74.300000,hi +19.900000,74.300000,hi +19.900000,74.400000,hi +19.800000,74.400000,hi +19.800000,74.300000,hi +19.700000,74.300000,mr +19.700000,74.400000,hi +19.800000,74.500000,hi +19.700000,74.500000,hi +19.700000,74.600000,hi +19.700000,74.700000,hi +19.800000,74.700000,hi +19.800000,74.600000,hi +19.900000,74.600000,hi +20.000000,74.600000,hi +20.000000,74.700000,hi +19.900000,74.700000,hi +19.900000,74.800000,mr +20.000000,74.800000,mr +20.000000,74.900000,hi +19.900000,74.900000,mr +19.800000,74.900000,mr +19.800000,74.800000,mr +19.700000,74.800000,mr +19.700000,74.900000,mr +19.600000,74.900000,mr +19.500000,74.900000,mr +19.500000,74.800000,mr +19.600000,74.800000,mr +19.600000,74.700000,mr +19.600000,74.600000,hi +19.500000,74.600000,mr +19.500000,74.700000,mr +19.400000,74.700000,mr +19.400000,74.600000,mr +19.300000,74.600000,mr +19.300000,74.700000,mr +19.400000,74.800000,mr +19.400000,74.900000,hi +19.300000,74.900000,mr +19.300000,74.800000,mr +19.200000,74.800000,mr +19.200000,74.900000,mr +19.100000,74.900000,mr +19.000000,74.900000,mr +19.000000,74.800000,hi +19.100000,74.800000,hi +19.100000,74.700000,mr +19.000000,74.700000,hi +19.000000,74.600000,hi +19.100000,74.600000,mr +19.200000,74.700000,hi +19.200000,74.600000,mr +19.200000,74.500000,mr +19.100000,74.500000,mr +19.000000,74.500000,mr +19.000000,74.400000,mr +18.900000,74.400000,mr +18.900000,74.300000,mr +19.000000,74.300000,mr +19.100000,74.300000,mr +19.100000,74.400000,mr +19.200000,74.400000,mr +19.200000,74.300000,mr +19.300000,74.300000,mr +19.400000,74.300000,mr +19.400000,74.400000,mr +19.300000,74.400000,mr +19.300000,74.500000,mr +19.400000,74.500000,mr +19.500000,74.500000,mr +19.600000,74.500000,mr +19.600000,74.400000,mr +19.500000,74.400000,mr +19.500000,74.300000,mr +19.600000,74.300000,mr +19.600000,74.200000,mr +19.500000,74.200000,mr +19.500000,74.100000,mr +19.600000,74.100000,mr +19.600000,74.000000,mr +19.500000,73.900000,mr +19.500000,74.000000,mr +19.400000,74.000000,mr +19.400000,73.900000,mr +19.300000,73.900000,mr +19.300000,74.000000,mr +19.300000,74.100000,mr +19.400000,74.100000,mr +19.400000,74.200000,mr +19.300000,74.200000,mr +19.200000,74.200000,mr +19.200000,74.100000,mr +19.100000,74.100000,mr +19.100000,74.200000,mr +19.000000,74.200000,mr +18.900000,74.200000,mr +18.900000,74.100000,mr +19.000000,74.100000,mr +19.000000,74.000000,mr +18.900000,74.000000,hi +18.900000,73.900000,mr +19.000000,73.900000,mr +19.100000,73.900000,mr +19.100000,74.000000,mr +19.200000,74.000000,mr +19.200000,73.900000,mr +19.200000,73.800000,mr +19.200000,73.700000,mr +19.100000,73.700000,mr +19.100000,73.800000,mr +19.000000,73.800000,mr +18.900000,73.800000,hi +18.900000,73.700000,hi +19.000000,73.700000,hi +19.000000,73.600000,hi +18.900000,73.600000,hi +18.900000,73.500000,hi +19.000000,73.500000,hi +19.100000,73.600000,mr +19.100000,73.500000,mr +19.200000,73.500000,mr +19.300000,73.500000,mr +19.300000,73.600000,mr +19.200000,73.600000,mr +19.300000,73.800000,mr +19.400000,73.800000,mr +19.300000,73.700000,mr +19.400000,73.700000,mr +19.500000,73.800000,mr +19.500000,73.700000,mr +19.500000,73.600000,mr +19.400000,73.600000,mr +19.400000,73.500000,mr +19.500000,73.500000,mr +19.600000,73.500000,hi +19.600000,73.600000,hi +19.700000,73.600000,hi +19.700000,73.500000,hi +19.800000,73.500000,hi +19.900000,73.500000,hi +19.900000,73.600000,hi +19.800000,73.600000,hi +19.800000,73.700000,hi +19.900000,73.700000,hi +19.900000,73.800000,hi +19.800000,73.800000,hi +19.700000,73.800000,hi +19.700000,73.700000,hi +19.600000,73.700000,mr +19.600000,73.800000,mr +19.600000,73.900000,mr +19.700000,73.900000,hi +19.700000,74.000000,mr +19.700000,74.100000,mr +19.700000,74.200000,mr +19.800000,74.200000,mr +19.800000,74.100000,mr +19.900000,74.200000,mr +19.900000,74.100000,mr +19.900000,74.000000,hi +19.800000,74.000000,hi +19.800000,73.900000,hi +19.900000,73.900000,hi +20.000000,73.900000,hi +20.100000,73.900000,hi +20.100000,74.000000,hi +20.000000,74.000000,hi +20.000000,74.100000,mr +20.000000,74.200000,mr +20.100000,74.200000,mr +20.100000,74.100000,mr +20.200000,74.100000,mr +20.200000,74.200000,mr +20.300000,74.200000,mr +20.300000,74.100000,mr +20.300000,74.000000,mr +20.200000,74.000000,hi +20.200000,73.900000,hi +20.300000,73.900000,mr +20.300000,73.800000,mr +20.300000,73.700000,mr +20.200000,73.700000,hi +20.200000,73.800000,hi +20.100000,73.800000,hi +20.000000,73.800000,hi +20.000000,73.700000,hi +20.100000,73.700000,hi +20.100000,73.600000,hi +20.000000,73.600000,hi +20.000000,73.500000,hi +20.100000,73.500000,hi +20.200000,73.500000,hi +20.200000,73.600000,hi +20.300000,73.600000,mr +20.300000,73.500000,mr +20.400000,73.500000,mr +20.400000,73.600000,mr +20.400000,73.700000,mr +20.400000,73.800000,mr +20.500000,73.800000,mr +20.500000,73.700000,hi +20.600000,73.800000,hi +20.600000,73.700000,hi +20.600000,73.600000,hi +20.500000,73.600000,hi +20.500000,73.500000,hi +20.600000,73.500000,hi +20.700000,73.500000,hi +20.700000,73.600000,hi +20.800000,73.600000,hi +20.800000,73.500000,hi +20.900000,73.500000,hi +21.000000,73.500000,hi +21.000000,73.600000,hi +20.900000,73.600000,hi +20.900000,73.700000,gu +21.000000,73.700000,hi +21.000000,73.800000,hi +20.900000,73.800000,hi +20.800000,73.800000,hi +20.800000,73.700000,hi +20.700000,73.700000,hi +20.700000,73.800000,hi +20.800000,74.000000,hi +20.900000,74.000000,mr +20.800000,73.900000,hi +20.900000,73.900000,hi +21.000000,73.900000,hi +21.000000,74.000000,hi +21.000000,74.100000,hi +21.100000,74.200000,hi +21.000000,74.200000,hi +20.900000,74.200000,hi +20.900000,74.100000,hi +20.800000,74.100000,hi +20.800000,74.200000,hi +20.700000,74.200000,mr +20.600000,74.200000,mr +20.600000,74.100000,mr +20.700000,74.100000,mr +20.700000,74.000000,mr +20.700000,73.900000,hi +20.600000,73.900000,hi +20.600000,74.000000,mr +20.500000,74.000000,mr +20.500000,73.900000,mr +20.400000,73.900000,mr +20.400000,74.000000,mr +20.400000,74.100000,mr +20.500000,74.100000,mr +20.500000,74.200000,mr +20.400000,74.200000,mr +20.400000,74.300000,hi +20.400000,74.400000,hi +20.500000,74.400000,hi +20.500000,74.300000,hi +20.600000,74.300000,hi +20.700000,74.300000,hi +20.700000,74.400000,hi +20.600000,74.400000,hi +20.700000,74.500000,hi +20.600000,74.500000,hi +20.500000,74.500000,hi +20.400000,74.500000,hi +20.400000,74.600000,hi +20.500000,74.600000,hi +20.500000,74.700000,hi +20.500000,74.800000,hi +20.500000,74.900000,hi +20.600000,74.900000,hi +20.600000,74.800000,hi +20.700000,74.900000,hi +20.700000,74.800000,hi +20.700000,74.700000,hi +20.600000,74.700000,hi +20.600000,74.600000,hi +20.700000,74.600000,hi +20.800000,74.600000,hi +20.900000,74.600000,hi +20.900000,74.700000,hi +20.800000,74.700000,hi +20.800000,74.800000,hi +20.800000,74.900000,hi +20.900000,74.900000,hi +20.900000,74.800000,hi +21.000000,74.800000,hi +21.000000,74.900000,hi +21.100000,74.900000,hi +21.100000,74.800000,hi +21.100000,74.700000,hi +21.000000,74.700000,hi +21.000000,74.600000,hi +21.100000,74.600000,hi +21.100000,74.500000,hi +21.000000,74.500000,hi +20.900000,74.500000,hi +20.800000,74.500000,hi +20.900000,74.400000,hi +20.800000,74.400000,hi +20.800000,74.300000,hi +20.900000,74.300000,hi +21.000000,74.300000,hi +21.000000,74.400000,hi +21.100000,74.400000,hi +21.100000,74.300000,hi +21.200000,74.300000,hi +21.200000,74.400000,hi +21.300000,74.400000,hi +21.300000,74.300000,hi +21.400000,74.300000,hi +21.400000,74.400000,hi +21.500000,74.500000,hi +21.400000,74.500000,hi +21.300000,74.500000,hi +21.200000,74.500000,hi +21.200000,74.600000,hi +21.300000,74.600000,hi +21.300000,74.700000,hi +21.200000,74.700000,hi +21.200000,74.800000,hi +21.200000,74.900000,hi +21.300000,74.900000,hi +21.300000,74.800000,hi +21.400000,74.800000,hi +21.400000,74.900000,hi +21.500000,74.900000,hi +21.500000,74.800000,hi +21.500000,74.700000,hi +21.400000,74.700000,hi +21.400000,74.600000,hi +21.500000,74.600000,hi +21.600000,74.600000,hi +21.700000,74.700000,hi +21.600000,74.700000,hi +21.600000,74.800000,hi +21.600000,74.900000,hi +21.700000,74.900000,hi +21.700000,74.800000,hi +21.800000,74.800000,hi +21.800000,74.900000,hi +21.900000,74.900000,hi +21.900000,74.800000,hi +21.800000,74.700000,hi +21.700000,74.600000,hi +21.800000,74.600000,hi +21.800000,74.500000,hi +21.700000,74.500000,hi +21.600000,74.500000,hi +21.600000,74.400000,hi +21.500000,74.400000,hi +21.500000,74.300000,hi +21.600000,74.300000,hi +21.700000,74.300000,hi +21.700000,74.400000,hi +21.800000,74.400000,hi +21.800000,74.300000,hi +21.800000,74.200000,mr +21.700000,74.200000,hi +21.700000,74.100000,hi +21.800000,74.100000,hi +21.800000,74.000000,hi +21.800000,73.900000,hi +21.700000,73.900000,hi +21.700000,74.000000,hi +21.600000,74.000000,hi +21.600000,73.900000,hi +21.500000,73.900000,hi +21.500000,74.000000,hi +21.500000,74.100000,hi +21.600000,74.100000,hi +21.600000,74.200000,hi +21.500000,74.200000,hi +21.400000,74.200000,hi +21.400000,74.100000,hi +21.300000,74.100000,hi +21.300000,74.200000,hi +21.200000,74.200000,hi +21.100000,74.100000,hi +21.200000,74.100000,hi +21.200000,74.000000,hi +21.100000,74.000000,hi +21.100000,73.900000,hi +21.200000,73.900000,hi +21.300000,73.900000,hi +21.300000,74.000000,hi +21.400000,74.000000,hi +21.400000,73.900000,hi +21.400000,73.800000,hi +21.400000,73.700000,hi +21.300000,73.700000,hi +21.300000,73.800000,hi +21.200000,73.800000,hi +21.100000,73.800000,hi +21.100000,73.700000,hi +21.200000,73.700000,hi +21.200000,73.600000,hi +21.100000,73.600000,hi +21.100000,73.500000,hi +21.200000,73.500000,hi +21.300000,73.500000,hi +21.300000,73.600000,hi +21.400000,73.600000,hi +21.400000,73.500000,hi +21.500000,73.500000,hi +21.600000,73.600000,hi +21.500000,73.600000,hi +21.500000,73.700000,hi +21.500000,73.800000,hi +21.600000,73.800000,hi +21.600000,73.700000,hi +21.700000,73.700000,hi +21.700000,73.800000,hi +21.800000,73.800000,hi +21.700000,73.600000,hi +21.600000,73.500000,hi +21.700000,73.500000,hi +21.700000,73.400000,hi +21.700000,73.300000,hi +21.600000,73.300000,hi +21.600000,73.400000,hi +21.500000,73.400000,hi +21.400000,73.400000,hi +21.400000,73.300000,hi +21.500000,73.300000,hi +21.500000,73.200000,hi +21.400000,73.200000,hi +21.400000,73.100000,hi +21.500000,73.100000,hi +21.600000,73.100000,hi +21.600000,73.200000,hi +21.700000,73.200000,hi +21.700000,73.100000,hi +21.700000,73.000000,hi +21.600000,73.000000,hi +21.600000,72.900000,hi +21.700000,72.900000,hi +21.700000,72.800000,hi +21.600000,72.800000,hi +21.500000,72.800000,hi +21.400000,72.800000,hi +21.400000,72.900000,hi +21.500000,72.900000,hi +21.500000,73.000000,hi +21.400000,73.000000,hi +21.300000,73.000000,hi +21.200000,73.000000,hi +21.200000,72.900000,hi +21.300000,72.900000,hi +21.300000,72.800000,hi +21.200000,72.800000,hi +21.100000,72.800000,hi +21.000000,72.800000,hi +21.000000,72.900000,hi +21.100000,72.900000,hi +21.100000,73.000000,hi +21.000000,73.000000,hi +21.000000,73.100000,hi +21.100000,73.200000,hi +21.100000,73.100000,hi +21.200000,73.100000,hi +21.300000,73.100000,hi +21.300000,73.200000,hi +21.200000,73.200000,hi +21.300000,73.300000,hi +21.300000,73.400000,hi +21.200000,73.400000,hi +21.200000,73.300000,hi +21.100000,73.300000,hi +21.100000,73.400000,hi +21.000000,73.400000,hi +20.900000,73.400000,hi +20.900000,73.300000,hi +21.000000,73.300000,hi +21.000000,73.200000,hi +20.900000,73.100000,hi +20.900000,73.200000,hi +20.800000,73.200000,hi +20.800000,73.100000,hi +20.700000,73.100000,hi +20.700000,73.200000,hi +20.700000,73.300000,hi +20.800000,73.300000,hi +20.800000,73.400000,hi +20.700000,73.400000,hi +20.600000,73.400000,hi +20.600000,73.300000,hi +20.500000,73.300000,hi +20.500000,73.400000,hi +20.400000,73.400000,hi +20.300000,73.400000,hi +20.300000,73.300000,hi +20.400000,73.300000,hi +20.400000,73.200000,hi +20.300000,73.200000,hi +20.300000,73.100000,hi +20.400000,73.100000,hi +20.500000,73.100000,hi +20.500000,73.200000,hi +20.600000,73.200000,hi +20.600000,73.100000,hi +20.600000,73.000000,hi +20.600000,72.900000,hi +20.500000,72.900000,hi +20.500000,73.000000,hi +20.400000,73.000000,hi +20.300000,73.000000,hi +20.300000,72.900000,hi +20.400000,72.900000,hi +20.300000,72.800000,hi +20.400000,72.800000,hi +20.500000,72.800000,hi +20.600000,72.800000,hi +20.700000,72.800000,hi +20.700000,73.000000,hi +20.800000,73.000000,hi +20.700000,72.900000,hi +20.800000,72.900000,hi +20.900000,73.000000,hi +20.900000,72.900000,hi +20.800000,72.800000,hi +20.900000,72.800000,hi +20.900000,72.700000,hi +20.800000,72.700000,hi +20.800000,72.600000,hi +20.900000,72.600000,hi +20.900000,72.500000,hi +20.900000,72.400000,en +20.800000,72.400000,hi +20.800000,72.500000,hi +20.700000,72.500000,hi +20.700000,72.400000,hi +20.600000,72.400000,hi +20.600000,72.500000,hi +20.600000,72.600000,hi +20.700000,72.600000,hi +20.700000,72.700000,hi +20.600000,72.700000,hi +20.500000,72.700000,hi +20.500000,72.600000,hi +20.400000,72.600000,hi +20.400000,72.700000,hi +20.300000,72.700000,hi +20.300000,72.600000,hi +20.300000,72.500000,en +20.200000,72.500000,hi +20.400000,72.500000,hi +20.500000,72.500000,hi +20.900000,72.300000,hi +20.900000,72.200000,gu +20.900000,72.000000,hi +20.900000,72.100000,gu +21.000000,72.100000,gu +21.000000,72.000000,hi +21.100000,72.000000,gu +21.200000,72.000000,gu +21.200000,72.100000,gu +21.100000,72.100000,gu +21.100000,72.200000,gu +21.200000,72.200000,gu +21.200000,72.300000,hi +21.100000,72.300000,gu +21.000000,72.200000,gu +21.000000,72.300000,hi +21.000000,72.400000,en +21.100000,72.400000,en +21.100000,72.500000,hi +21.000000,72.500000,hi +21.000000,72.600000,hi +21.000000,72.700000,hi +21.100000,72.700000,hi +21.100000,72.600000,hi +21.200000,72.600000,hi +21.200000,72.700000,hi +21.300000,72.700000,hi +21.300000,72.600000,hi +21.300000,72.500000,hi +21.200000,72.500000,hi +21.200000,72.400000,en +21.300000,72.400000,hi +21.400000,72.400000,hi +21.400000,72.500000,hi +21.400000,72.600000,hi +21.400000,72.700000,hi +21.500000,72.700000,hi +21.500000,72.600000,hi +21.600000,72.700000,hi +21.600000,72.600000,hi +21.600000,72.500000,hi +21.500000,72.500000,hi +21.500000,72.400000,hi +21.600000,72.400000,hi +21.600000,72.300000,hi +21.600000,72.200000,hi +21.500000,72.200000,gu +21.500000,72.300000,hi +21.400000,72.300000,hi +21.300000,72.300000,hi +21.300000,72.200000,hi +21.400000,72.200000,hi +21.400000,72.100000,gu +21.300000,72.100000,gu +21.300000,72.000000,gu +21.400000,72.000000,gu +21.500000,72.000000,gu +21.500000,72.100000,gu +21.600000,72.100000,hi +21.600000,72.000000,hi +21.600000,71.900000,hi +21.500000,71.900000,gu +21.500000,71.800000,hi +21.500000,71.700000,gu +21.500000,71.600000,gu +21.400000,71.600000,gu +21.400000,71.700000,gu +21.300000,71.600000,gu +21.300000,71.700000,gu +21.300000,71.800000,gu +21.400000,71.800000,gu +21.400000,71.900000,gu +21.300000,71.900000,gu +21.200000,71.900000,gu +21.200000,71.800000,gu +21.100000,71.800000,hi +21.100000,71.900000,gu +21.000000,71.900000,hi +20.900000,71.900000,hi +20.900000,71.800000,hi +21.000000,71.800000,hi +21.000000,71.700000,hi +20.900000,71.700000,hi +20.900000,71.600000,hi +21.000000,71.600000,hi +21.100000,71.600000,gu +21.100000,71.700000,gu +21.200000,71.700000,gu +21.200000,71.600000,gu +21.100000,71.400000,hi +21.000000,71.400000,hi +21.100000,71.500000,gu +21.000000,71.500000,hi +20.900000,71.500000,hi +20.900000,71.400000,hi +20.900000,71.300000,hi +20.800000,71.200000,hi +20.900000,71.200000,hi +21.000000,71.200000,hi +21.000000,71.300000,hi +21.100000,71.300000,hi +21.100000,71.200000,gu +21.200000,71.200000,gu +21.300000,71.200000,gu +21.300000,71.300000,gu +21.200000,71.300000,gu +21.200000,71.400000,gu +21.200000,71.500000,gu +21.300000,71.500000,gu +21.300000,71.400000,gu +21.400000,71.400000,gu +21.400000,71.500000,gu +21.500000,71.500000,gu +21.500000,71.400000,gu +21.500000,71.300000,gu +21.400000,71.300000,gu +21.400000,71.200000,gu +21.500000,71.200000,gu +21.500000,71.100000,gu +21.400000,71.100000,gu +21.300000,71.100000,gu +21.200000,71.100000,gu +21.300000,71.000000,hi +21.200000,71.000000,gu +21.200000,70.900000,hi +21.300000,70.900000,gu +21.400000,71.000000,gu +21.500000,71.000000,gu +21.400000,70.900000,gu +21.400000,70.800000,gu +21.300000,70.800000,gu +21.300000,70.700000,hi +21.400000,70.700000,hi +21.400000,70.600000,hi +21.400000,70.500000,hi +21.300000,70.500000,hi +21.300000,70.600000,hi +21.200000,70.600000,hi +21.200000,70.500000,hi +21.100000,70.500000,hi +21.100000,70.600000,hi +21.200000,70.700000,hi +21.200000,70.800000,hi +21.100000,70.800000,hi +21.000000,70.800000,hi +21.000000,70.700000,hi +21.100000,70.700000,hi +21.000000,70.600000,hi +21.000000,70.500000,hi +20.900000,70.500000,hi +20.900000,70.600000,hi +20.800000,70.500000,hi +20.800000,70.600000,hi +20.800000,70.700000,hi +20.900000,70.700000,hi +20.900000,70.800000,hi +20.800000,70.800000,hi +20.800000,70.900000,hi +20.800000,71.000000,hi +20.900000,71.000000,hi +20.900000,70.900000,hi +21.000000,70.900000,hi +21.100000,70.900000,gu +21.100000,71.000000,gu +21.000000,71.000000,hi +21.100000,71.100000,gu +21.000000,71.100000,gu +20.900000,71.100000,hi +20.800000,71.100000,hi +20.700000,71.100000,hi +20.600000,71.100000,hi +20.500000,71.100000,hi +20.500000,71.000000,hi +20.500000,70.900000,hi +20.600000,70.900000,hi +20.600000,71.000000,hi +20.700000,71.000000,hi +20.700000,70.900000,hi +20.700000,70.800000,hi +20.600000,70.800000,hi +20.600000,70.700000,hi +20.700000,70.700000,hi +20.700000,70.600000,hi +20.700000,70.500000,hi +20.600000,70.500000,hi +20.600000,70.600000,hi +20.500000,70.800000,hi +20.600000,71.300000,hi +20.600000,71.200000,hi +20.700000,71.200000,hi +20.800000,71.300000,hi +20.700000,71.300000,hi +20.700000,71.400000,hi +20.800000,71.400000,hi +20.800000,71.500000,hi +20.700000,71.500000,hi +20.600000,71.400000,gu +20.700000,71.600000,hi +20.800000,71.600000,hi +20.800000,71.700000,hi +20.700000,71.700000,hi +20.800000,71.800000,gu +20.800000,71.900000,hi +18.800000,72.600000,hi +18.800000,72.700000,hi +18.900000,72.700000,hi +18.900000,72.600000,hi +19.000000,72.600000,hi +19.000000,72.700000,hi +19.100000,72.700000,hi +19.100000,72.600000,hi +19.200000,72.700000,hi +19.200000,72.600000,hi +19.300000,72.600000,hi +19.300000,72.700000,hi +19.400000,72.700000,hi +19.400000,72.600000,hi +19.400000,72.500000,en +19.900000,72.500000,hi +20.000000,72.500000,hi +20.100000,72.500000,hi +20.100000,72.600000,hi +20.200000,72.600000,hi +20.200000,72.700000,hi +20.100000,72.700000,hi +20.000000,72.700000,hi +20.000000,72.600000,hi +19.900000,72.600000,hi +19.900000,72.700000,hi +19.800000,72.700000,hi +19.700000,72.700000,hi +19.700000,72.600000,hi +19.800000,72.600000,hi +19.800000,72.500000,hi +19.700000,72.500000,hi +19.600000,72.500000,hi +19.500000,72.500000,en +19.500000,72.600000,hi +19.600000,72.600000,hi +19.600000,72.700000,hi +19.500000,72.700000,hi +19.500000,72.800000,hi +19.600000,72.800000,hi +19.600000,73.000000,hi +19.600000,72.900000,hi +19.700000,72.900000,hi +19.700000,73.000000,hi +19.800000,73.000000,hi +19.800000,72.900000,hi +19.700000,72.800000,hi +19.800000,72.800000,hi +19.900000,72.800000,hi +20.000000,72.800000,hi +20.100000,72.800000,hi +20.200000,72.800000,hi +20.100000,72.900000,hi +20.200000,72.900000,hi +20.200000,73.000000,hi +20.100000,73.000000,hi +20.000000,73.000000,hi +20.000000,72.900000,hi +19.900000,72.900000,hi +19.900000,73.000000,hi +19.900000,73.100000,hi +19.900000,73.200000,mr +20.000000,73.200000,hi +20.000000,73.100000,hi +20.100000,73.100000,hi +20.200000,73.100000,hi +20.200000,73.200000,hi +20.100000,73.200000,hi +20.100000,73.300000,hi +20.200000,73.300000,hi +20.200000,73.400000,hi +20.100000,73.400000,mr +20.000000,73.300000,hi +20.000000,73.400000,mr +19.900000,73.400000,mr +19.800000,73.400000,hi +19.800000,73.300000,mr +19.900000,73.300000,mr +19.800000,73.100000,mr +19.800000,73.200000,mr +19.700000,73.200000,mr +19.700000,73.100000,mr +19.600000,73.100000,hi +19.600000,73.200000,hi +19.600000,73.300000,hi +19.700000,73.300000,hi +19.700000,73.400000,hi +19.600000,73.400000,hi +19.500000,73.400000,hi +19.500000,73.300000,hi +19.400000,73.300000,hi +19.400000,73.400000,hi +19.300000,73.400000,hi +19.200000,73.400000,hi +19.200000,73.300000,hi +19.300000,73.300000,hi +19.300000,73.200000,hi +19.200000,73.200000,hi +19.200000,73.100000,hi +19.300000,73.100000,hi +19.400000,73.100000,hi +19.400000,73.200000,hi +19.500000,73.200000,hi +19.500000,73.100000,hi +19.500000,73.000000,hi +19.400000,73.000000,hi +19.400000,72.900000,hi +19.500000,72.900000,hi +19.400000,72.800000,hi +19.300000,72.800000,hi +19.200000,72.800000,hi +19.200000,72.900000,hi +19.300000,72.900000,hi +19.300000,73.000000,hi +19.200000,73.000000,hi +19.100000,73.000000,hi +19.000000,73.000000,hi +19.000000,72.900000,hi +19.100000,72.900000,hi +19.100000,72.800000,hi +19.000000,72.800000,hi +18.900000,72.800000,hi +18.800000,72.800000,hi +18.800000,72.900000,hi +18.900000,72.900000,hi +18.900000,73.000000,hi +18.800000,73.000000,hi +18.800000,73.100000,hi +18.800000,73.200000,hi +18.900000,73.200000,hi +18.900000,73.100000,hi +19.000000,73.100000,hi +19.100000,73.100000,hi +19.100000,73.200000,hi +19.000000,73.200000,hi +19.000000,73.300000,hi +19.100000,73.300000,hi +19.100000,73.400000,hi +19.000000,73.400000,hi +18.900000,73.300000,hi +18.900000,73.400000,hi +18.800000,73.400000,hi +18.700000,73.400000,hi +18.700000,73.300000,hi +18.800000,73.300000,hi +18.700000,73.100000,hi +18.700000,73.200000,hi +18.600000,73.200000,hi +18.600000,73.100000,hi +18.500000,73.100000,hi +18.500000,73.200000,hi +18.500000,73.300000,hi +18.600000,73.300000,hi +18.600000,73.400000,hi +18.500000,73.400000,hi +18.400000,73.400000,hi +18.400000,73.300000,hi +18.300000,73.300000,mr +18.300000,73.400000,mr +18.200000,73.400000,mr +18.100000,73.400000,mr +18.100000,73.300000,mr +18.200000,73.300000,mr +18.200000,73.200000,mr +18.100000,73.200000,mr +18.100000,73.100000,mr +18.200000,73.100000,mr +18.300000,73.100000,mr +18.300000,73.200000,mr +18.400000,73.200000,mr +18.400000,73.100000,mr +18.400000,73.000000,mr +18.300000,72.900000,mr +18.300000,73.000000,mr +18.200000,73.000000,mr +18.100000,73.000000,mr +18.100000,72.900000,mr +18.200000,72.900000,mr +18.100000,72.800000,mr +18.200000,72.800000,mr +18.300000,72.800000,mr +18.400000,72.800000,mr +18.500000,72.800000,hi +18.400000,72.900000,mr +18.500000,73.000000,hi +18.500000,72.900000,mr +18.600000,72.900000,mr +18.600000,73.000000,hi +18.700000,73.000000,hi +18.700000,72.900000,hi +18.600000,72.800000,hi +18.700000,72.800000,hi +18.700000,72.700000,hi +18.700000,72.600000,hi +18.600000,72.600000,en +18.600000,72.700000,mr +18.500000,72.700000,mr +18.400000,72.700000,mr +18.400000,72.600000,hi +18.500000,72.600000,hi +18.200000,72.600000,mr +18.300000,72.600000,hi +18.300000,72.700000,mr +18.200000,72.700000,mr +18.100000,72.600000,mr +18.100000,72.700000,mr +18.000000,72.700000,mr +17.900000,72.700000,mr +17.800000,72.700000,mr +17.700000,72.700000,mr +17.400000,72.800000,mr +17.300000,72.900000,mr +17.400000,73.000000,mr +17.400000,72.900000,mr +17.500000,72.900000,mr +17.500000,73.000000,mr +17.600000,73.000000,mr +17.600000,72.900000,mr +17.500000,72.800000,mr +17.600000,72.800000,mr +17.700000,72.800000,mr +17.800000,72.800000,mr +17.900000,72.800000,mr +18.000000,72.800000,mr +17.900000,72.900000,mr +18.000000,72.900000,mr +18.000000,73.000000,mr +17.900000,73.000000,mr +17.800000,73.000000,mr +17.800000,72.900000,mr +17.700000,72.900000,mr +17.700000,73.000000,mr +17.700000,73.100000,mr +17.700000,73.200000,mr +17.800000,73.200000,mr +17.800000,73.100000,mr +17.900000,73.100000,mr +18.000000,73.100000,mr +18.000000,73.200000,mr +17.900000,73.200000,mr +17.900000,73.300000,mr +18.000000,73.300000,mr +18.000000,73.400000,mr +17.900000,73.400000,mr +17.800000,73.300000,mr +17.700000,73.300000,mr +17.800000,73.400000,mr +17.700000,73.400000,mr +17.600000,73.400000,mr +17.600000,73.300000,mr +17.600000,73.200000,mr +17.600000,73.100000,mr +17.500000,73.100000,mr +17.500000,73.200000,mr +17.400000,73.100000,mr +17.400000,73.200000,mr +17.400000,73.300000,mr +17.500000,73.300000,mr +17.500000,73.400000,mr +17.400000,73.400000,mr +17.300000,73.400000,mr +17.300000,73.300000,mr +17.200000,73.300000,mr +17.200000,73.400000,mr +17.100000,73.400000,mr +17.000000,73.400000,mr +17.000000,73.300000,mr +17.100000,73.300000,mr +17.100000,73.200000,mr +17.000000,73.200000,mr +17.000000,73.100000,mr +17.100000,73.100000,mr +17.200000,73.100000,mr +17.200000,73.200000,mr +17.300000,73.200000,hi +17.300000,73.100000,mr +17.300000,73.000000,mr +17.200000,73.000000,hi +17.200000,72.900000,mr +17.000000,72.900000,mr +17.100000,72.900000,mr +17.100000,73.000000,mr +17.000000,73.000000,mr +16.900000,73.000000,mr +16.800000,73.000000,mr +16.900000,72.900000,mr +16.700000,73.000000,mr +16.600000,73.000000,mr +16.600000,73.100000,mr +16.600000,73.200000,mr +16.700000,73.200000,mr +16.700000,73.100000,mr +16.800000,73.100000,mr +16.900000,73.100000,mr +16.900000,73.200000,mr +16.800000,73.200000,mr +16.800000,73.300000,mr +16.900000,73.300000,mr +16.900000,73.400000,mr +16.800000,73.400000,mr +16.700000,73.300000,mr +16.700000,73.400000,mr +16.600000,73.400000,mr +16.500000,73.400000,mr +16.500000,73.300000,mr +16.600000,73.300000,mr +16.500000,73.100000,mr +16.500000,73.200000,mr +16.400000,73.200000,mr +16.400000,73.100000,mr +16.300000,73.100000,mr +16.300000,73.200000,mr +16.300000,73.300000,mr +16.400000,73.300000,mr +16.400000,73.400000,mr +16.300000,73.400000,mr +16.200000,73.400000,mr +16.200000,73.300000,mr +16.100000,73.300000,mr +16.100000,73.400000,mr +16.000000,73.400000,mr +15.900000,73.400000,mr +15.900000,73.300000,mr +16.000000,73.300000,mr +16.000000,73.200000,mr +15.900000,73.200000,mr +16.100000,73.200000,mr +16.200000,73.200000,mr +16.200000,73.100000,mr +20.700000,70.400000,hi +21.000000,69.900000,hi +21.000000,70.000000,hi +20.900000,70.000000,hi +20.800000,70.100000,hi +20.800000,70.200000,hi +20.700000,70.200000,hi +20.700000,70.300000,hi +20.800000,70.400000,hi +20.800000,70.300000,hi +20.900000,70.300000,hi +20.900000,70.400000,hi +21.000000,70.400000,hi +21.000000,70.300000,hi +21.000000,70.200000,hi +20.900000,70.200000,hi +20.900000,70.100000,hi +21.000000,70.100000,hi +21.100000,70.100000,hi +21.200000,70.100000,hi +21.200000,70.200000,hi +21.100000,70.200000,hi +21.100000,70.300000,hi +21.100000,70.400000,hi +21.200000,70.400000,gu +21.200000,70.300000,hi +21.300000,70.300000,hi +21.300000,70.400000,hi +21.400000,70.400000,hi +21.400000,70.300000,hi +21.400000,70.200000,hi +21.300000,70.200000,hi +21.300000,70.100000,gu +21.300000,70.000000,hi +21.300000,69.900000,hi +21.200000,69.900000,hi +21.200000,70.000000,hi +21.100000,70.000000,hi +21.100000,69.900000,hi +21.100000,69.800000,hi +21.100000,69.700000,hi +21.200000,69.700000,hi +21.200000,69.800000,hi +21.300000,69.800000,hi +21.300000,69.700000,hi +21.300000,69.600000,hi +21.200000,69.600000,hi +21.300000,69.500000,hi \ No newline at end of file
diff --git a/components/test/data/language/celltolang-data_rank1.csv b/components/test/data/language/celltolang-data_rank1.csv new file mode 100644 index 0000000..34dd067 --- /dev/null +++ b/components/test/data/language/celltolang-data_rank1.csv
@@ -0,0 +1,24508 @@ +9.200000,93.800000,en +10.400000,93.800000,ta +10.500000,93.800000,ta +10.500000,93.700000,ta +10.500000,93.600000,ta +10.600000,93.500000,ta +10.500000,93.500000,ta +10.400000,93.500000,ta +10.300000,93.500000,ta +10.300000,93.600000,ta +10.400000,93.600000,ta +10.400000,93.700000,ta +10.300000,93.700000,ta +10.200000,93.700000,ta +10.200000,93.600000,ta +10.100000,93.600000,en +10.100000,93.700000,ta +10.000000,93.700000,ta +9.900000,93.700000,ta +9.900000,93.600000,en +10.000000,93.600000,en +9.900000,93.500000,en +10.000000,93.500000,en +10.100000,93.500000,en +10.200000,93.500000,en +10.200000,93.400000,en +10.200000,93.300000,en +10.100000,93.300000,en +10.100000,93.400000,en +10.000000,93.400000,en +9.900000,93.400000,en +9.900000,93.300000,en +10.000000,93.300000,en +10.000000,93.200000,en +9.900000,93.200000,en +9.900000,93.100000,en +10.000000,93.100000,en +10.100000,93.100000,en +10.100000,93.200000,en +10.200000,93.200000,en +10.200000,93.100000,en +10.300000,93.100000,ta +10.400000,93.100000,ta +10.400000,93.200000,ta +10.300000,93.200000,ta +10.300000,93.300000,ta +10.300000,93.400000,ta +10.400000,93.400000,ta +10.400000,93.300000,ta +10.500000,93.300000,ta +10.500000,93.400000,ta +10.600000,93.400000,ta +10.600000,93.300000,ta +10.600000,93.200000,ta +10.500000,93.200000,ta +10.500000,93.100000,ta +10.600000,93.100000,ta +10.600000,93.000000,ta +10.500000,93.000000,ta +10.300000,93.000000,ta +10.400000,93.000000,ta +10.400000,92.900000,ta +10.300000,92.900000,ta +10.300000,92.800000,ta +10.400000,92.800000,ta +10.500000,92.800000,ta +10.500000,92.900000,ta +10.600000,92.900000,ta +10.600000,92.800000,ta +10.600000,92.700000,ta +10.500000,92.700000,ta +10.600000,92.600000,ta +10.600000,92.500000,ta +10.500000,92.500000,ta +10.500000,92.600000,ta +10.400000,92.600000,ta +10.400000,92.500000,ta +10.300000,92.500000,ta +10.300000,92.600000,ta +10.400000,92.700000,ta +10.300000,92.700000,ta +10.200000,92.700000,en +10.100000,92.700000,en +10.200000,92.600000,en +10.200000,92.500000,en +10.100000,92.500000,en +10.100000,92.600000,en +10.000000,92.600000,en +10.000000,92.500000,en +9.900000,92.500000,en +9.900000,92.600000,en +10.000000,92.700000,en +9.900000,92.700000,en +9.900000,92.800000,en +9.900000,92.900000,en +10.000000,92.900000,en +10.000000,92.800000,en +10.100000,92.800000,en +10.200000,92.800000,en +10.200000,92.900000,en +10.100000,92.900000,en +10.100000,93.000000,en +10.200000,93.000000,en +10.000000,93.000000,en +9.900000,93.000000,en +9.800000,93.000000,en +9.600000,93.000000,en +9.700000,93.000000,en +9.700000,92.900000,en +9.600000,92.900000,en +9.600000,92.800000,en +9.700000,92.800000,en +9.800000,92.800000,en +9.800000,92.900000,en +9.800000,92.700000,en +9.800000,92.500000,en +9.800000,92.600000,en +9.700000,92.600000,en +9.700000,92.500000,en +9.600000,92.500000,en +9.600000,92.600000,en +9.700000,92.700000,en +9.600000,92.700000,en +9.500000,92.700000,en +9.400000,92.700000,en +9.500000,92.600000,en +9.500000,92.500000,en +9.400000,92.500000,en +9.400000,92.600000,en +9.300000,92.600000,en +9.300000,92.500000,en +9.200000,92.500000,en +9.200000,92.600000,en +9.300000,92.700000,en +9.200000,92.700000,en +9.200000,92.800000,en +9.200000,92.900000,en +9.300000,92.900000,en +9.300000,92.800000,en +9.400000,92.800000,en +9.500000,92.800000,en +9.500000,92.900000,en +9.400000,92.900000,en +9.400000,93.000000,en +9.500000,93.000000,en +9.300000,93.000000,en +9.200000,93.000000,en +9.200000,93.100000,en +9.300000,93.100000,en +9.300000,93.200000,en +9.200000,93.200000,en +9.200000,93.300000,en +9.200000,93.400000,en +9.300000,93.400000,en +9.300000,93.300000,en +9.400000,93.300000,en +9.400000,93.400000,en +9.500000,93.400000,en +9.500000,93.300000,en +9.500000,93.200000,en +9.400000,93.200000,en +9.400000,93.100000,en +9.500000,93.100000,en +9.600000,93.100000,en +9.600000,93.200000,en +9.700000,93.200000,en +9.700000,93.100000,en +9.800000,93.100000,en +9.800000,93.200000,en +9.800000,93.300000,en +9.800000,93.400000,en +9.700000,93.400000,en +9.700000,93.300000,en +9.600000,93.300000,en +9.600000,93.400000,en +9.600000,93.500000,en +9.700000,93.500000,en +9.800000,93.500000,en +9.800000,93.600000,en +9.700000,93.600000,en +9.600000,93.600000,en +9.600000,93.700000,en +9.500000,93.700000,en +9.400000,93.700000,en +9.400000,93.600000,en +9.500000,93.600000,en +9.500000,93.500000,en +9.400000,93.500000,en +9.300000,93.500000,en +9.200000,93.500000,en +9.200000,93.600000,en +9.300000,93.600000,en +9.300000,93.700000,en +9.200000,93.700000,en +9.100000,93.700000,en +9.000000,93.700000,en +9.000000,93.600000,en +9.100000,93.600000,en +9.100000,93.500000,en +9.000000,93.500000,en +8.900000,93.500000,en +8.900000,93.600000,en +8.900000,93.700000,en +8.800000,93.700000,en +8.800000,93.600000,en +8.700000,93.600000,en +8.700000,93.700000,en +8.600000,93.700000,en +8.500000,93.700000,en +8.500000,93.600000,en +8.600000,93.600000,en +8.500000,93.500000,en +8.600000,93.500000,en +8.700000,93.500000,en +8.800000,93.500000,en +8.800000,93.400000,en +8.800000,93.300000,en +8.700000,93.300000,en +8.700000,93.400000,en +8.600000,93.400000,en +8.500000,93.400000,en +8.500000,93.300000,en +8.600000,93.300000,en +8.600000,93.200000,en +8.500000,93.200000,en +8.500000,93.100000,en +8.600000,93.100000,en +8.700000,93.100000,en +8.700000,93.200000,en +8.800000,93.200000,en +8.800000,93.100000,en +8.900000,93.100000,en +8.900000,93.200000,en +8.900000,93.300000,en +8.900000,93.400000,en +9.000000,93.300000,en +9.000000,93.400000,en +9.100000,93.400000,en +9.100000,93.300000,en +9.100000,93.200000,en +9.000000,93.200000,en +9.000000,93.100000,en +9.100000,93.100000,en +9.100000,93.000000,en +8.900000,93.000000,en +9.000000,93.000000,en +9.000000,92.900000,en +8.900000,92.900000,en +8.900000,92.800000,en +9.000000,92.800000,en +9.100000,92.900000,en +9.100000,92.800000,en +9.100000,92.700000,en +9.100000,92.600000,en +9.100000,92.500000,en +9.000000,92.600000,en +9.000000,92.500000,en +8.900000,92.500000,en +8.900000,92.600000,en +9.000000,92.700000,en +8.900000,92.700000,en +8.800000,92.700000,en +8.700000,92.700000,en +8.800000,92.600000,en +8.800000,92.500000,en +8.700000,92.500000,en +8.700000,92.600000,en +8.600000,92.600000,en +8.600000,92.500000,en +8.500000,92.500000,en +8.500000,92.600000,en +8.600000,92.700000,en +8.500000,92.700000,en +8.500000,92.800000,en +8.500000,92.900000,en +8.600000,92.900000,en +8.600000,92.800000,en +8.700000,92.800000,en +8.800000,92.800000,en +8.800000,92.900000,en +8.700000,92.900000,en +8.700000,93.000000,en +8.800000,93.000000,en +8.600000,93.000000,en +8.500000,93.000000,en +8.400000,93.000000,en +8.300000,93.000000,en +8.200000,93.000000,en +8.200000,92.900000,en +8.200000,92.800000,en +8.300000,92.800000,en +8.300000,92.900000,en +8.400000,92.900000,en +8.400000,92.800000,en +8.400000,92.700000,en +8.300000,92.700000,en +8.400000,92.600000,en +8.300000,92.600000,en +8.200000,92.700000,en +8.000000,92.800000,en +8.100000,92.800000,en +8.100000,92.900000,en +8.000000,92.900000,en +8.000000,93.000000,en +8.100000,93.000000,en +8.000000,93.300000,en +8.000000,93.400000,en +8.100000,93.400000,en +8.100000,93.300000,en +8.100000,93.200000,en +8.000000,93.200000,en +8.000000,93.100000,en +8.100000,93.100000,en +8.200000,93.100000,en +8.200000,93.200000,en +8.300000,93.100000,en +8.400000,93.100000,en +8.400000,93.200000,en +8.300000,93.200000,en +8.300000,93.300000,en +8.400000,93.300000,en +8.400000,93.400000,en +8.300000,93.400000,en +8.200000,93.300000,en +8.200000,93.400000,en +8.200000,93.500000,en +8.300000,93.500000,en +8.400000,93.500000,en +8.300000,93.600000,en +8.400000,93.600000,en +8.400000,93.700000,en +8.300000,93.700000,en +8.200000,93.600000,en +8.200000,93.700000,en +8.100000,93.700000,en +8.000000,93.700000,en +8.000000,93.600000,en +8.100000,93.600000,en +8.100000,93.500000,en +8.000000,93.500000,en +8.000000,93.800000,en +8.100000,93.800000,en +8.100000,93.900000,en +8.000000,93.900000,en +8.100000,94.000000,en +8.000000,94.000000,en +8.000000,94.100000,en +8.400000,94.000000,en +8.300000,94.000000,en +8.200000,94.000000,en +8.200000,93.900000,en +8.200000,93.800000,en +8.300000,93.800000,en +8.300000,93.900000,en +8.400000,93.900000,en +8.400000,93.800000,en +8.500000,93.800000,en +8.600000,93.800000,en +8.600000,93.900000,en +8.500000,93.900000,en +8.800000,93.900000,en +8.700000,93.900000,en +8.700000,93.800000,en +8.800000,93.800000,en +8.900000,93.800000,en +9.000000,93.800000,en +9.100000,93.800000,en +8.700000,92.400000,en +8.800000,92.400000,en +9.000000,92.300000,en +8.900000,92.300000,en +8.900000,92.400000,en +9.000000,92.400000,en +9.100000,92.400000,en +9.100000,92.300000,en +9.300000,92.200000,en +9.300000,92.300000,en +9.200000,92.300000,en +9.200000,92.400000,en +9.300000,92.400000,en +9.400000,92.400000,en +9.500000,92.400000,en +9.500000,92.300000,en +9.400000,92.300000,en +9.400000,92.200000,en +9.500000,92.200000,en +9.600000,92.200000,en +9.700000,92.200000,en +9.700000,92.300000,en +9.600000,92.300000,en +9.600000,92.400000,en +9.700000,92.400000,en +9.800000,92.400000,en +9.800000,92.300000,en +9.800000,92.200000,en +9.800000,92.100000,en +10.200000,92.100000,en +10.100000,92.100000,en +10.000000,92.100000,en +9.900000,92.100000,en +9.900000,92.200000,en +10.000000,92.200000,en +10.000000,92.300000,en +9.900000,92.300000,en +9.900000,92.400000,en +10.000000,92.400000,en +10.100000,92.400000,en +10.200000,92.400000,en +10.200000,92.300000,en +10.100000,92.300000,en +10.100000,92.200000,en +10.200000,92.200000,en +10.300000,92.200000,ta +10.400000,92.200000,ta +10.400000,92.300000,ta +10.300000,92.300000,ta +10.300000,92.400000,ta +10.400000,92.400000,ta +10.500000,92.400000,ta +10.600000,92.400000,ta +10.600000,92.300000,ta +10.500000,92.300000,ta +10.500000,92.200000,ta +10.600000,92.200000,ta +10.600000,92.100000,ta +10.600000,92.000000,ta +10.500000,92.000000,ta +10.500000,92.100000,ta +10.400000,92.100000,ta +10.300000,92.100000,ta +10.400000,92.000000,ta +12.800000,92.400000,en +12.500000,92.300000,ta +12.100000,92.300000,ta +12.200000,92.300000,ta +12.400000,92.300000,ta +12.300000,92.300000,ta +12.200000,92.400000,ta +12.100000,92.400000,ta +12.000000,92.400000,ta +11.900000,92.400000,ta +12.000000,92.300000,ta +11.900000,92.300000,ta +11.800000,92.300000,ta +11.700000,92.300000,ta +11.400000,92.400000,ta +11.500000,92.300000,ta +11.400000,92.300000,ta +11.600000,92.300000,ta +11.600000,92.100000,ta +11.500000,92.100000,ta +11.400000,92.100000,ta +11.400000,92.000000,ta +11.700000,92.100000,ta +11.800000,92.100000,ta +10.700000,92.000000,ta +10.700000,92.100000,ta +10.800000,92.000000,ta +10.800000,92.100000,ta +10.900000,92.100000,ta +10.900000,92.000000,ta +10.900000,91.900000,ta +11.000000,91.900000,ta +11.100000,91.900000,ta +11.200000,92.000000,ta +11.300000,92.000000,ta +11.300000,92.100000,ta +11.200000,92.100000,ta +11.100000,92.100000,ta +11.100000,92.000000,ta +11.000000,92.000000,ta +11.000000,92.100000,ta +11.000000,92.200000,ta +11.000000,92.300000,ta +11.100000,92.300000,ta +11.300000,92.300000,ta +11.200000,92.300000,ta +11.300000,92.400000,ta +11.200000,92.400000,ta +11.100000,92.400000,ta +11.000000,92.400000,ta +10.900000,92.400000,ta +10.800000,92.400000,ta +10.900000,92.300000,ta +10.900000,92.200000,ta +10.800000,92.200000,ta +10.800000,92.300000,ta +10.700000,92.200000,ta +10.700000,92.300000,ta +10.700000,92.400000,ta +10.700000,92.600000,ta +10.700000,92.500000,ta +10.800000,92.500000,ta +10.900000,92.500000,ta +10.900000,92.600000,ta +10.800000,92.600000,ta +10.900000,92.700000,ta +10.800000,92.700000,ta +10.700000,92.700000,ta +10.700000,92.800000,ta +10.700000,92.900000,ta +10.700000,93.000000,ta +10.800000,93.000000,ta +10.900000,93.000000,ta +10.900000,92.900000,ta +10.800000,92.900000,ta +10.800000,92.800000,ta +10.900000,92.800000,ta +11.000000,92.800000,ta +11.100000,92.800000,ta +11.100000,92.900000,ta +11.000000,92.900000,ta +11.000000,93.000000,ta +11.100000,93.000000,ta +11.200000,93.000000,ta +11.300000,93.000000,ta +11.300000,92.900000,ta +11.200000,92.900000,ta +11.200000,92.800000,ta +11.300000,92.800000,ta +11.300000,92.700000,ta +11.200000,92.700000,ta +11.100000,92.700000,ta +11.000000,92.700000,ta +11.100000,92.600000,ta +11.000000,92.600000,ta +11.000000,92.500000,ta +11.100000,92.500000,ta +11.200000,92.500000,ta +11.200000,92.600000,ta +11.300000,92.600000,ta +11.300000,92.500000,ta +11.400000,92.500000,ta +11.500000,92.500000,ta +11.500000,92.600000,ta +11.400000,92.600000,ta +11.400000,92.700000,ta +11.500000,92.700000,ta +11.600000,92.700000,ta +11.600000,92.600000,ta +11.600000,92.500000,ta +11.700000,92.500000,ta +11.700000,92.600000,ta +11.800000,92.600000,ta +11.800000,92.500000,ta +11.900000,92.500000,ta +12.000000,92.500000,ta +12.000000,92.600000,ta +11.900000,92.600000,ta +12.000000,92.700000,ta +11.900000,92.700000,ta +11.800000,92.700000,ta +11.700000,92.700000,ta +11.700000,92.800000,en +11.700000,92.900000,ta +11.800000,92.900000,ta +11.800000,92.800000,ta +11.900000,92.800000,ta +12.000000,92.800000,en +12.000000,92.900000,en +11.900000,92.900000,ta +11.900000,93.000000,en +12.000000,93.000000,en +11.800000,93.000000,en +11.700000,93.000000,hi +11.600000,93.000000,hi +11.600000,92.800000,ta +11.600000,92.900000,ta +11.500000,92.900000,ta +11.500000,92.800000,ta +11.400000,92.800000,ta +11.400000,92.900000,ta +11.400000,93.000000,ta +11.500000,93.000000,ta +11.400000,93.100000,ta +11.500000,93.100000,ta +11.500000,93.200000,ta +11.400000,93.200000,ta +11.400000,93.300000,hi +11.400000,93.400000,ta +11.500000,93.400000,ta +11.500000,93.300000,hi +11.600000,93.400000,en +11.600000,93.300000,en +11.600000,93.200000,ta +11.600000,93.100000,ta +11.700000,93.100000,ta +11.700000,93.200000,ta +11.800000,93.200000,en +11.800000,93.100000,hi +11.900000,93.100000,en +12.000000,93.100000,en +12.000000,93.200000,en +11.900000,93.200000,en +11.900000,93.300000,en +12.000000,93.300000,en +12.000000,93.400000,en +11.900000,93.400000,en +11.800000,93.400000,en +11.800000,93.300000,en +11.700000,93.300000,en +11.700000,93.400000,en +11.700000,93.500000,en +11.800000,93.500000,en +11.900000,93.500000,en +12.000000,93.500000,en +11.900000,93.600000,ta +12.000000,93.600000,ta +12.000000,93.700000,ta +11.900000,93.700000,ta +11.800000,93.700000,ta +11.800000,93.600000,ta +11.700000,93.600000,ta +11.700000,93.700000,ta +11.600000,93.700000,ta +11.600000,93.600000,ta +11.600000,93.500000,en +11.500000,93.500000,ta +11.400000,93.500000,ta +11.400000,93.600000,ta +11.500000,93.600000,ta +11.500000,93.700000,ta +11.400000,93.700000,ta +11.300000,93.700000,ta +11.300000,93.600000,ta +11.200000,93.600000,ta +11.200000,93.700000,ta +11.100000,93.700000,ta +11.000000,93.700000,ta +11.000000,93.600000,ta +11.100000,93.600000,ta +11.000000,93.500000,ta +11.100000,93.500000,ta +11.200000,93.500000,ta +11.300000,93.500000,ta +11.300000,93.400000,ta +11.200000,93.400000,ta +11.200000,93.300000,ta +11.300000,93.300000,hi +11.300000,93.200000,ta +11.300000,93.100000,ta +11.200000,93.100000,ta +11.200000,93.200000,ta +11.100000,93.200000,ta +11.100000,93.100000,ta +11.000000,93.100000,ta +11.000000,93.200000,ta +11.000000,93.300000,ta +11.100000,93.300000,ta +11.100000,93.400000,ta +11.000000,93.400000,ta +10.900000,93.400000,ta +10.800000,93.400000,ta +10.800000,93.300000,ta +10.900000,93.300000,ta +10.900000,93.200000,ta +10.900000,93.100000,ta +10.800000,93.100000,ta +10.800000,93.200000,ta +10.700000,93.200000,ta +10.700000,93.100000,ta +10.700000,93.300000,ta +10.700000,93.400000,ta +10.700000,93.500000,ta +10.800000,93.500000,ta +10.900000,93.500000,ta +10.800000,93.600000,ta +10.900000,93.600000,ta +10.900000,93.700000,ta +10.800000,93.700000,ta +10.700000,93.700000,ta +10.700000,93.600000,ta +10.600000,93.600000,ta +10.600000,93.700000,ta +10.600000,93.800000,ta +10.700000,93.800000,ta +10.900000,93.900000,ta +10.800000,93.900000,ta +10.800000,93.800000,hi +10.900000,93.800000,hi +11.000000,93.800000,hi +11.000000,93.900000,ta +11.100000,93.900000,en +11.100000,93.800000,en +11.200000,93.800000,en +11.300000,93.800000,en +11.300000,93.900000,en +11.200000,93.900000,en +11.300000,94.000000,en +11.200000,94.000000,en +12.000000,94.100000,ta +11.900000,94.100000,ta +11.800000,94.100000,ta +11.700000,94.100000,ta +11.600000,94.000000,en +11.500000,94.000000,en +11.400000,94.000000,en +11.400000,93.900000,en +11.400000,93.800000,en +11.500000,93.800000,en +11.500000,93.900000,en +11.600000,93.900000,en +11.600000,93.800000,en +11.700000,93.800000,en +11.800000,93.800000,en +11.800000,93.900000,en +11.700000,93.900000,en +11.700000,94.000000,en +11.800000,94.000000,en +11.900000,94.000000,en +12.000000,94.000000,en +12.000000,93.900000,en +11.900000,93.900000,en +11.900000,93.800000,en +12.000000,93.800000,en +12.100000,93.800000,en +12.200000,93.800000,en +12.200000,93.900000,en +12.100000,93.900000,en +12.100000,94.000000,en +12.200000,94.000000,en +12.300000,94.000000,en +12.400000,94.000000,en +12.400000,93.900000,en +12.300000,93.900000,en +12.300000,93.800000,en +12.400000,93.800000,en +12.500000,93.800000,en +12.500000,93.900000,en +12.600000,93.800000,en +12.700000,93.800000,en +12.700000,93.900000,en +12.600000,93.900000,en +12.700000,94.000000,en +12.600000,94.000000,en +12.500000,94.000000,en +12.500000,94.200000,ta +12.500000,94.100000,ta +12.600000,94.100000,ta +12.700000,94.100000,ta +12.700000,94.200000,ta +12.600000,94.200000,ta +12.600000,94.300000,ta +12.700000,94.300000,ta +12.500000,94.300000,ta +12.400000,94.200000,ta +12.400000,94.100000,ta +12.300000,94.100000,ta +12.300000,94.200000,ta +12.200000,94.200000,ta +12.200000,94.100000,ta +12.100000,94.100000,ta +12.100000,94.200000,ta +12.900000,94.400000,ta +13.000000,94.400000,ta +13.100000,94.400000,ta +13.100000,94.500000,ta +13.500000,94.600000,ta +13.300000,94.500000,ta +13.200000,94.500000,ta +13.200000,94.400000,ta +13.300000,94.400000,ta +13.400000,94.400000,ta +13.400000,94.500000,ta +13.500000,94.500000,ta +13.500000,94.400000,ta +13.400000,94.300000,ta +13.500000,94.300000,ta +13.500000,94.200000,ta +13.500000,94.100000,ta +13.400000,94.100000,ta +13.400000,94.200000,ta +13.300000,94.200000,ta +13.300000,94.100000,ta +13.200000,94.100000,ta +13.200000,94.200000,ta +13.200000,94.300000,ta +13.300000,94.300000,ta +13.100000,94.300000,ta +13.000000,94.300000,ta +12.800000,94.300000,ta +12.900000,94.300000,ta +12.900000,94.200000,ta +12.800000,94.200000,ta +12.800000,94.100000,ta +12.900000,94.100000,ta +13.000000,94.100000,ta +13.000000,94.200000,ta +13.100000,94.200000,ta +13.100000,94.100000,ta +13.100000,94.000000,ta +13.000000,94.000000,en +12.900000,94.000000,en +12.800000,94.000000,en +12.900000,93.900000,en +12.800000,93.900000,en +12.800000,93.800000,en +12.900000,93.800000,en +13.000000,93.800000,en +13.000000,93.900000,en +13.200000,94.000000,ta +13.300000,94.000000,ta +13.400000,94.000000,ta +13.500000,94.000000,ta +12.800000,93.500000,en +12.900000,93.500000,en +13.000000,93.500000,en +13.000000,93.600000,en +13.000000,93.700000,en +12.900000,93.700000,en +12.900000,93.600000,en +12.800000,93.600000,en +12.800000,93.700000,en +12.700000,93.700000,en +12.600000,93.700000,ta +12.600000,93.600000,ta +12.700000,93.600000,en +12.700000,93.500000,en +12.600000,93.500000,ta +12.500000,93.500000,ta +12.500000,93.600000,ta +12.500000,93.700000,ta +12.400000,93.700000,ta +12.400000,93.600000,ta +12.300000,93.600000,ta +12.300000,93.700000,ta +12.200000,93.700000,ta +12.100000,93.700000,ta +12.100000,93.600000,ta +12.200000,93.600000,ta +12.100000,93.500000,en +12.200000,93.500000,en +12.300000,93.500000,en +12.400000,93.500000,ta +12.400000,93.400000,en +12.400000,93.300000,en +12.300000,93.300000,en +12.300000,93.400000,en +12.200000,93.400000,en +12.100000,93.400000,en +12.100000,93.300000,en +12.200000,93.300000,en +12.200000,93.200000,ta +12.100000,93.200000,ta +12.100000,93.100000,ta +12.200000,93.100000,ta +12.300000,93.100000,en +12.300000,93.200000,en +12.400000,93.200000,en +12.400000,93.100000,en +12.500000,93.200000,en +12.500000,93.300000,en +12.500000,93.400000,en +12.100000,93.000000,en +12.200000,93.000000,en +12.200000,92.900000,en +12.100000,92.900000,en +12.100000,92.800000,en +12.200000,92.800000,en +12.100000,92.700000,ta +12.100000,92.600000,ta +12.100000,92.500000,ta +12.200000,92.500000,ta +12.500000,92.600000,en +13.600000,94.000000,ta +13.600000,94.100000,ta +13.600000,94.200000,ta +13.600000,94.300000,ta +13.600000,94.500000,ta +13.600000,94.400000,ta +13.600000,94.600000,ta +22.200000,92.700000,bn +22.200000,92.600000,bn +22.100000,92.600000,bn +22.300000,92.600000,bn +22.400000,92.600000,hi +22.500000,92.600000,bn +22.300000,92.700000,bn +22.100000,93.000000,bn +22.100000,92.800000,bn +22.100000,92.900000,bn +22.000000,92.900000,bn +22.000000,93.000000,bn +29.300000,96.000000,en +29.300000,95.900000,en +29.300000,95.800000,en +29.200000,95.700000,en +29.100000,95.700000,en +29.000000,95.700000,en +29.100000,95.600000,en +29.100000,95.500000,en +29.000000,95.500000,en +29.000000,95.400000,en +29.100000,95.400000,en +29.000000,95.100000,en +29.000000,95.200000,en +29.000000,95.300000,en +29.100000,95.300000,en +28.800000,95.300000,en +28.900000,95.300000,en +28.900000,95.200000,en +28.900000,95.100000,en +28.800000,95.100000,en +28.800000,95.200000,en +28.700000,95.200000,en +28.700000,95.100000,en +28.600000,95.100000,en +28.600000,95.200000,en +28.700000,95.300000,en +28.600000,95.400000,en +28.600000,95.500000,en +28.700000,95.500000,en +28.700000,95.400000,en +28.800000,95.400000,en +28.900000,95.400000,en +28.900000,95.500000,en +28.800000,95.500000,en +28.700000,95.700000,en +28.700000,95.600000,en +28.600000,95.600000,en +28.600000,95.700000,en +28.600000,95.800000,en +28.700000,95.800000,en +28.600000,95.900000,en +28.600000,96.000000,en +28.700000,96.000000,en +28.700000,95.900000,en +28.800000,95.900000,bn +28.800000,96.000000,bn +28.900000,96.000000,bn +28.900000,95.900000,bn +28.900000,95.800000,bn +29.000000,95.800000,en +29.100000,95.800000,en +29.200000,95.800000,en +29.200000,95.900000,en +29.200000,96.000000,en +29.100000,96.000000,en +29.100000,95.900000,en +29.000000,95.900000,en +29.000000,96.000000,en +29.000000,96.100000,en +29.000000,96.200000,en +29.100000,96.100000,en +29.200000,96.100000,en +29.200000,96.200000,en +29.000000,96.400000,en +29.000000,96.300000,en +28.900000,96.300000,bn +28.900000,96.400000,bn +28.800000,96.400000,bn +28.800000,96.300000,bn +28.900000,96.200000,bn +28.900000,96.100000,bn +28.800000,96.100000,bn +28.800000,96.200000,bn +28.700000,96.200000,en +28.700000,96.100000,en +28.600000,96.100000,en +28.600000,96.200000,en +28.700000,96.300000,bn +28.700000,96.400000,bn +28.600000,96.400000,bn +28.700000,96.500000,bn +28.800000,96.500000,bn +28.700000,96.600000,bn +28.900000,96.500000,bn +26.000000,95.100000,en +26.100000,95.100000,en +26.200000,95.100000,en +26.300000,95.100000,en +26.400000,95.100000,en +26.500000,95.100000,en +26.700000,95.200000,en +26.600000,95.100000,en +26.700000,95.100000,en +26.800000,95.200000,bn +26.800000,95.100000,bn +26.900000,95.100000,bn +27.000000,95.100000,bn +27.000000,95.200000,bn +26.900000,95.200000,bn +26.900000,95.300000,bn +27.000000,95.300000,bn +26.800000,95.300000,bn +26.700000,95.300000,en +26.700000,95.400000,en +26.800000,95.500000,en +26.800000,95.400000,en +26.900000,95.400000,bn +27.000000,95.400000,bn +27.000000,95.500000,bn +26.900000,95.500000,en +26.900000,95.600000,en +27.000000,95.600000,bn +27.000000,95.700000,en +26.900000,95.700000,en +27.000000,95.800000,en +27.300000,96.500000,en +27.400000,96.500000,en +27.500000,96.500000,en +27.700000,96.500000,en +27.600000,96.500000,en +27.600000,96.600000,en +27.700000,96.700000,en +27.600000,96.700000,en +27.500000,96.700000,en +27.500000,96.600000,en +27.400000,96.600000,en +27.400000,96.700000,en +27.400000,96.800000,en +27.500000,96.800000,en +27.600000,96.800000,en +27.700000,96.800000,en +27.700000,97.000000,my +27.200000,97.000000,my +27.300000,97.000000,my +27.200000,96.900000,en +27.100000,97.100000,en +27.200000,97.100000,en +27.800000,97.100000,en +27.900000,97.200000,en +27.900000,97.100000,en +28.000000,97.100000,en +28.100000,97.100000,en +28.100000,97.200000,en +28.000000,97.200000,en +28.000000,97.300000,en +28.100000,97.300000,en +27.900000,97.300000,en +28.200000,97.300000,en +28.200000,97.200000,en +28.200000,97.100000,en +28.300000,97.100000,en +28.500000,96.800000,bn +28.400000,96.800000,bn +28.300000,96.900000,en +28.300000,96.800000,en +28.200000,96.800000,en +28.200000,97.000000,en +28.300000,97.000000,en +28.100000,97.000000,en +28.000000,97.000000,en +27.800000,97.000000,my +27.900000,97.000000,en +27.800000,96.800000,en +27.900000,96.800000,en +28.000000,96.800000,en +28.100000,96.800000,en +28.100000,96.700000,en +28.100000,96.600000,en +28.000000,96.600000,en +28.000000,96.700000,en +27.900000,96.700000,en +27.800000,96.700000,en +27.900000,96.500000,en +27.800000,96.500000,en +28.000000,96.500000,en +28.100000,96.500000,en +28.300000,96.500000,en +28.200000,96.500000,en +28.200000,96.600000,en +28.200000,96.700000,en +28.300000,96.700000,en +28.300000,96.600000,en +28.400000,96.600000,en +28.400000,96.700000,en +28.500000,96.700000,bn +28.500000,96.600000,bn +28.400000,96.500000,en +28.500000,96.300000,en +28.400000,96.300000,en +28.400000,96.400000,en +28.300000,96.400000,en +28.200000,96.400000,en +28.200000,96.300000,en +28.300000,96.300000,en +28.300000,96.200000,bn +28.200000,96.200000,bn +28.200000,96.100000,en +28.300000,96.100000,bn +28.400000,96.100000,bn +28.400000,96.200000,bn +28.500000,96.200000,en +28.500000,96.100000,en +28.500000,96.000000,en +28.400000,96.000000,bn +28.400000,95.900000,bn +28.500000,95.900000,en +28.500000,95.800000,en +28.400000,95.800000,en +28.300000,95.800000,en +28.200000,95.800000,en +28.200000,95.900000,en +28.300000,95.900000,en +28.300000,96.000000,en +28.200000,96.000000,en +28.100000,96.000000,bn +28.000000,96.000000,bn +28.000000,95.900000,bn +28.100000,95.900000,bn +28.100000,95.800000,bn +28.000000,95.800000,bn +27.900000,95.800000,bn +27.800000,95.900000,bn +27.900000,95.900000,bn +27.900000,96.000000,bn +27.800000,96.000000,bn +27.800000,96.100000,en +27.800000,96.200000,en +27.900000,96.200000,en +27.900000,96.100000,en +28.000000,96.100000,en +28.100000,96.100000,en +28.100000,96.200000,en +28.000000,96.200000,en +28.000000,96.300000,en +28.100000,96.300000,en +28.100000,96.400000,en +28.000000,96.400000,en +27.900000,96.400000,en +27.900000,96.300000,en +27.800000,96.300000,en +27.800000,96.400000,en +27.700000,96.400000,en +27.600000,96.400000,en +27.600000,96.300000,en +27.700000,96.300000,en +27.700000,96.200000,en +27.700000,96.100000,en +27.600000,96.200000,en +27.600000,96.100000,en +27.500000,96.100000,en +27.500000,96.200000,en +27.500000,96.300000,en +27.500000,96.400000,en +27.400000,96.400000,en +27.400000,96.300000,en +27.300000,96.300000,en +27.300000,96.400000,en +27.300000,96.100000,en +27.300000,96.200000,en +27.400000,96.200000,en +27.400000,96.100000,en +27.400000,96.000000,en +27.400000,95.900000,bn +27.300000,95.900000,bn +27.300000,96.000000,en +27.200000,96.000000,en +27.100000,96.000000,en +27.100000,95.900000,bn +27.200000,95.900000,bn +27.100000,95.800000,bn +27.200000,95.800000,bn +27.300000,95.800000,bn +27.400000,95.800000,bn +27.500000,95.800000,bn +27.600000,95.800000,bn +27.500000,95.900000,bn +27.500000,96.000000,en +27.600000,96.000000,en +27.600000,95.900000,bn +27.700000,95.900000,bn +27.700000,96.000000,bn +27.700000,95.800000,bn +27.800000,95.800000,bn +27.800000,95.700000,bn +27.700000,95.700000,bn +27.700000,95.600000,bn +27.800000,95.600000,bn +27.800000,95.500000,bn +27.800000,95.400000,bn +27.700000,95.400000,bn +27.700000,95.500000,bn +27.600000,95.500000,bn +27.600000,95.400000,bn +27.500000,95.400000,bn +27.500000,95.500000,bn +27.500000,95.600000,bn +27.600000,95.600000,bn +27.600000,95.700000,bn +27.500000,95.700000,bn +27.400000,95.700000,bn +27.400000,95.600000,bn +27.300000,95.600000,bn +27.300000,95.700000,bn +27.200000,95.700000,bn +27.100000,95.700000,bn +27.100000,95.600000,bn +27.200000,95.600000,bn +27.200000,95.500000,bn +27.100000,95.500000,bn +27.100000,95.400000,bn +27.200000,95.400000,bn +27.300000,95.400000,bn +27.300000,95.500000,bn +27.400000,95.500000,bn +27.400000,95.400000,bn +27.400000,95.300000,bn +27.300000,95.300000,bn +27.100000,95.300000,bn +27.200000,95.300000,bn +27.200000,95.200000,bn +27.100000,95.200000,hi +27.100000,95.100000,hi +27.200000,95.100000,bn +27.300000,95.100000,bn +27.300000,95.200000,bn +27.400000,95.200000,bn +27.400000,95.100000,bn +27.500000,95.100000,bn +27.600000,95.100000,bn +27.600000,95.200000,bn +27.500000,95.200000,bn +27.500000,95.300000,bn +27.600000,95.300000,bn +27.700000,95.300000,bn +27.800000,95.300000,bn +27.800000,95.200000,bn +27.700000,95.200000,bn +27.700000,95.100000,bn +27.800000,95.100000,bn +27.900000,95.100000,bn +27.900000,95.200000,bn +28.000000,95.200000,bn +28.000000,95.100000,bn +28.100000,95.100000,en +28.200000,95.100000,en +28.200000,95.200000,en +28.100000,95.200000,en +28.100000,95.300000,en +28.000000,95.300000,bn +27.900000,95.300000,bn +27.900000,95.400000,bn +28.000000,95.400000,bn +28.000000,95.500000,bn +27.900000,95.500000,bn +27.900000,95.600000,bn +27.900000,95.700000,bn +28.000000,95.600000,bn +28.000000,95.700000,bn +28.100000,95.700000,bn +28.100000,95.600000,bn +28.100000,95.500000,en +28.100000,95.400000,en +28.200000,95.400000,en +28.300000,95.400000,en +28.300000,95.500000,en +28.200000,95.500000,en +28.200000,95.600000,en +28.200000,95.700000,en +28.300000,95.700000,en +28.300000,95.600000,en +28.400000,95.600000,en +28.400000,95.700000,en +28.500000,95.700000,en +28.500000,95.600000,en +28.500000,95.500000,en +28.200000,95.300000,en +28.300000,95.300000,en +28.300000,95.200000,en +28.300000,95.100000,en +28.400000,95.100000,en +28.400000,95.200000,en +28.500000,95.200000,en +28.500000,95.100000,en +28.500000,95.000000,en +28.500000,94.900000,en +28.400000,94.900000,en +28.400000,95.000000,en +28.300000,95.000000,en +28.300000,94.900000,en +28.300000,94.800000,en +28.400000,94.800000,en +28.500000,94.800000,en +28.500000,94.700000,en +28.500000,94.600000,en +28.600000,94.400000,en +28.500000,94.400000,en +28.500000,94.500000,en +28.400000,94.500000,en +28.400000,94.400000,en +28.300000,94.400000,en +28.300000,94.500000,en +28.300000,94.600000,en +28.400000,94.600000,en +28.400000,94.700000,en +28.300000,94.700000,en +28.200000,94.700000,en +28.100000,94.700000,en +28.100000,94.600000,en +28.200000,94.600000,en +28.200000,94.500000,en +28.100000,94.400000,en +28.100000,94.500000,en +28.000000,94.500000,en +28.000000,94.400000,en +27.900000,94.400000,en +27.900000,94.500000,en +27.900000,94.600000,bn +28.000000,94.600000,en +28.000000,94.700000,en +27.900000,94.700000,bn +27.900000,94.800000,bn +28.000000,94.800000,en +28.100000,94.800000,en +28.200000,94.800000,en +28.100000,94.900000,en +28.200000,94.900000,en +28.200000,95.000000,en +28.100000,95.000000,en +28.000000,95.000000,bn +28.000000,94.900000,en +27.900000,94.900000,bn +27.900000,95.000000,bn +27.800000,95.000000,bn +27.700000,95.000000,bn +27.700000,94.900000,bn +27.800000,94.900000,bn +27.800000,94.800000,bn +27.700000,94.800000,bn +27.600000,94.800000,bn +27.500000,94.800000,bn +27.500000,94.900000,bn +27.600000,94.900000,bn +27.600000,95.000000,bn +27.500000,95.000000,bn +27.400000,95.000000,bn +27.400000,94.900000,bn +27.300000,94.900000,bn +27.300000,95.000000,bn +27.200000,95.000000,hi +27.100000,95.000000,hi +27.100000,94.900000,hi +27.200000,94.900000,bn +27.100000,94.800000,hi +27.200000,94.800000,hi +27.300000,94.800000,bn +27.400000,94.800000,bn +27.400000,94.700000,bn +27.400000,94.600000,hi +27.300000,94.600000,hi +27.300000,94.700000,bn +27.200000,94.700000,hi +27.100000,94.700000,hi +27.100000,94.600000,hi +27.200000,94.600000,hi +27.200000,94.500000,hi +27.200000,94.400000,hi +27.300000,94.400000,hi +27.300000,94.500000,hi +27.400000,94.500000,hi +27.400000,94.400000,hi +27.500000,94.400000,hi +27.600000,94.400000,hi +27.600000,94.500000,bn +27.500000,94.500000,hi +27.500000,94.600000,hi +27.500000,94.700000,bn +27.600000,94.700000,bn +27.600000,94.600000,bn +27.700000,94.600000,bn +27.700000,94.700000,bn +27.800000,94.700000,bn +27.800000,94.600000,bn +27.800000,94.500000,bn +27.700000,94.500000,bn +27.700000,94.400000,hi +27.800000,94.400000,en +27.700000,94.300000,bn +27.800000,94.300000,en +27.800000,94.200000,en +27.800000,94.100000,en +27.700000,94.100000,bn +27.700000,94.200000,bn +27.600000,94.200000,bn +27.600000,94.100000,bn +27.500000,94.100000,bn +27.500000,94.200000,bn +27.500000,94.300000,bn +27.600000,94.300000,hi +27.400000,94.300000,hi +27.300000,94.300000,hi +27.200000,94.300000,hi +27.200000,94.200000,hi +27.200000,94.100000,bn +27.300000,94.100000,bn +27.300000,94.200000,hi +27.400000,94.200000,hi +27.400000,94.100000,bn +27.400000,94.000000,bn +27.300000,94.000000,bn +27.200000,94.000000,hi +27.300000,93.900000,bn +27.200000,93.900000,bn +27.200000,93.800000,bn +27.300000,93.800000,bn +27.400000,93.800000,bn +27.400000,93.900000,bn +27.500000,93.800000,en +27.600000,93.800000,en +27.600000,93.900000,en +27.500000,93.900000,bn +27.500000,94.000000,bn +27.600000,94.000000,bn +27.700000,94.000000,en +27.800000,94.000000,en +27.800000,93.900000,en +27.700000,93.900000,en +27.700000,93.800000,en +27.800000,93.800000,en +28.000000,93.900000,bn +28.000000,93.800000,bn +28.100000,93.800000,en +28.200000,93.800000,en +28.200000,93.900000,en +28.100000,93.900000,en +28.200000,94.000000,en +28.100000,94.000000,en +28.000000,94.000000,bn +27.900000,94.000000,en +27.900000,94.100000,en +28.000000,94.100000,en +28.000000,94.200000,en +27.900000,94.200000,en +27.900000,94.300000,en +28.000000,94.300000,en +28.100000,94.300000,en +28.100000,94.200000,en +28.100000,94.100000,en +28.200000,94.100000,en +28.300000,94.100000,en +28.400000,94.100000,en +28.400000,94.200000,en +28.300000,94.200000,en +28.300000,94.300000,en +28.400000,94.300000,en +28.500000,94.300000,en +28.600000,94.300000,en +28.600000,94.200000,en +28.500000,94.200000,en +28.500000,94.100000,en +28.600000,94.100000,bn +28.600000,94.000000,bn +28.500000,94.000000,en +28.400000,94.000000,en +28.300000,94.000000,en +28.400000,93.900000,en +28.300000,93.900000,en +28.300000,93.800000,en +28.400000,93.800000,en +28.500000,93.800000,en +28.500000,93.900000,en +28.600000,93.900000,bn +28.600000,93.800000,bn +28.600000,93.700000,bn +28.500000,93.700000,bn +28.500000,93.600000,bn +28.600000,93.600000,en +28.600000,93.500000,en +28.500000,93.500000,bn +28.100000,93.600000,en +28.100000,93.700000,en +27.900000,93.100000,en +28.500000,93.300000,bn +28.500000,93.400000,bn +28.600000,93.400000,en +28.100000,92.700000,bn +27.900000,92.700000,en +27.900000,92.800000,en +27.900000,92.900000,en +28.000000,92.800000,bn +28.100000,92.800000,bn +27.900000,93.000000,en +27.800000,93.000000,en +27.600000,93.000000,en +27.700000,93.000000,en +27.700000,92.900000,en +27.600000,92.900000,en +27.600000,92.800000,en +27.700000,92.800000,en +27.800000,92.800000,en +27.800000,92.900000,en +27.800000,92.700000,en +27.900000,92.600000,en +27.800000,92.500000,en +27.800000,92.600000,en +27.700000,92.600000,en +27.700000,92.500000,en +27.600000,92.500000,en +27.600000,92.600000,en +27.700000,92.700000,en +27.600000,92.700000,en +27.400000,92.700000,en +27.500000,92.600000,en +27.500000,92.500000,en +27.400000,92.500000,en +27.400000,92.600000,en +27.300000,92.600000,en +27.300000,92.500000,en +27.200000,92.500000,en +27.200000,92.600000,en +27.300000,92.700000,en +27.200000,92.700000,en +27.200000,92.800000,en +27.200000,92.900000,en +27.300000,92.900000,en +27.300000,92.800000,en +27.400000,92.800000,en +27.500000,92.800000,en +27.500000,92.900000,en +27.400000,92.900000,en +27.400000,93.000000,en +27.500000,93.000000,en +27.300000,93.000000,en +27.200000,93.000000,en +27.200000,93.100000,en +27.300000,93.100000,en +27.300000,93.200000,en +27.200000,93.200000,en +27.200000,93.400000,id +27.300000,93.400000,id +27.500000,93.300000,bn +27.500000,93.200000,en +27.400000,93.200000,en +27.400000,93.100000,en +27.500000,93.100000,en +27.600000,93.100000,id +27.600000,93.200000,bn +27.700000,93.100000,en +27.800000,93.100000,en +27.600000,93.300000,bn +27.700000,93.600000,en +27.800000,93.600000,en +27.800000,93.700000,en +27.700000,93.700000,en +27.600000,93.700000,en +27.600000,93.600000,en +27.500000,93.700000,en +27.400000,93.700000,en +27.400000,93.600000,en +27.500000,93.600000,en +27.400000,93.500000,en +27.300000,93.500000,bn +27.200000,93.500000,bn +27.200000,93.600000,bn +27.300000,93.600000,bn +27.300000,93.700000,bn +27.200000,93.700000,bn +27.100000,93.700000,bn +27.000000,93.700000,bn +27.000000,93.600000,bn +27.100000,93.600000,bn +27.100000,93.500000,bn +27.000000,93.500000,bn +26.900000,93.500000,bn +26.800000,93.500000,bn +26.800000,93.600000,bn +26.900000,93.600000,bn +26.900000,93.700000,bn +26.800000,93.700000,hi +26.700000,93.700000,hi +26.700000,93.600000,bn +26.600000,93.600000,bn +26.600000,93.700000,bn +26.500000,93.700000,bn +26.400000,93.700000,bn +26.400000,93.600000,bn +26.500000,93.600000,bn +26.400000,93.500000,bn +26.500000,93.500000,bn +26.600000,93.500000,bn +26.700000,93.500000,bn +26.700000,93.400000,bn +26.700000,93.300000,bn +26.600000,93.300000,bn +26.600000,93.400000,bn +26.500000,93.400000,bn +26.400000,93.400000,bn +26.400000,93.300000,bn +26.500000,93.300000,bn +26.500000,93.200000,bn +26.400000,93.200000,bn +26.400000,93.100000,bn +26.500000,93.100000,bn +26.600000,93.100000,bn +26.600000,93.200000,bn +26.700000,93.200000,bn +26.700000,93.100000,bn +26.800000,93.100000,bn +26.900000,93.100000,bn +26.900000,93.200000,bn +26.800000,93.200000,bn +26.800000,93.300000,bn +26.800000,93.400000,bn +26.900000,93.400000,bn +26.900000,93.300000,bn +27.000000,93.300000,bn +27.000000,93.400000,bn +27.100000,93.400000,bn +27.100000,93.300000,bn +27.100000,93.200000,bn +27.000000,93.200000,bn +27.000000,93.100000,bn +27.100000,93.100000,en +27.100000,93.000000,en +27.000000,93.000000,bn +26.800000,93.000000,bn +26.900000,93.000000,bn +26.900000,92.900000,bn +26.800000,92.900000,bn +26.800000,92.800000,bn +26.900000,92.800000,bn +27.000000,92.800000,bn +27.000000,92.900000,bn +27.100000,92.900000,en +27.100000,92.800000,en +27.100000,92.700000,en +27.000000,92.700000,bn +27.100000,92.600000,en +27.100000,92.500000,en +27.000000,92.500000,bn +27.000000,92.600000,bn +26.900000,92.600000,bn +26.900000,92.500000,bn +26.800000,92.500000,bn +26.800000,92.600000,bn +26.900000,92.700000,bn +26.800000,92.700000,bn +26.700000,92.700000,bn +26.600000,92.700000,bn +26.700000,92.600000,bn +26.700000,92.500000,bn +26.600000,92.500000,bn +26.600000,92.600000,bn +26.500000,92.600000,bn +26.500000,92.500000,hi +26.400000,92.500000,hi +26.400000,92.600000,hi +26.500000,92.700000,bn +26.400000,92.700000,bn +26.400000,92.800000,bn +26.400000,92.900000,bn +26.500000,92.900000,bn +26.500000,92.800000,bn +26.600000,92.800000,bn +26.700000,92.800000,bn +26.700000,92.900000,bn +26.600000,92.900000,bn +26.600000,93.000000,bn +26.700000,93.000000,bn +26.500000,93.000000,bn +26.400000,93.000000,bn +26.300000,93.000000,bn +26.200000,93.000000,bn +26.100000,93.000000,bn +26.200000,92.900000,bn +26.100000,92.900000,hi +26.100000,92.800000,bn +26.200000,92.800000,bn +26.300000,92.900000,bn +26.300000,92.800000,bn +26.300000,92.700000,bn +26.300000,92.500000,hi +26.300000,92.600000,hi +26.200000,92.600000,bn +26.200000,92.500000,bn +26.100000,92.500000,bn +26.100000,92.600000,bn +26.200000,92.700000,bn +26.100000,92.700000,bn +26.000000,92.700000,bn +25.900000,92.700000,bn +26.000000,92.600000,bn +26.000000,92.500000,bn +25.900000,92.500000,bn +25.900000,92.600000,bn +25.800000,92.600000,bn +25.800000,92.500000,en +25.700000,92.500000,en +25.700000,92.600000,en +25.800000,92.700000,bn +25.700000,92.700000,bn +25.700000,92.800000,bn +25.700000,92.900000,bn +25.800000,92.900000,bn +25.800000,92.800000,bn +25.900000,92.800000,bn +26.000000,92.800000,bn +26.000000,92.900000,bn +25.900000,92.900000,bn +25.900000,93.000000,bn +26.000000,93.000000,bn +25.800000,93.000000,bn +25.700000,93.000000,bn +25.700000,93.100000,bn +25.800000,93.100000,bn +25.800000,93.200000,bn +25.700000,93.200000,bn +25.700000,93.300000,bn +25.700000,93.400000,bn +25.800000,93.400000,bn +25.800000,93.300000,bn +25.900000,93.300000,bn +25.900000,93.400000,bn +26.000000,93.400000,bn +26.000000,93.300000,bn +26.000000,93.200000,bn +25.900000,93.200000,bn +25.900000,93.100000,bn +26.000000,93.100000,bn +26.100000,93.100000,hi +26.100000,93.200000,hi +26.200000,93.100000,hi +26.300000,93.100000,bn +26.300000,93.200000,bn +26.200000,93.200000,bn +26.200000,93.300000,bn +26.300000,93.300000,hi +26.300000,93.400000,bn +26.200000,93.400000,bn +26.100000,93.400000,bn +26.100000,93.300000,bn +26.000000,93.500000,bn +26.100000,93.500000,bn +26.200000,93.500000,en +26.300000,93.500000,en +26.200000,93.600000,bn +26.300000,93.600000,bn +26.300000,93.700000,bn +26.200000,93.700000,bn +26.100000,93.700000,bn +26.100000,93.600000,bn +26.000000,93.600000,bn +26.000000,93.700000,bn +25.900000,93.700000,bn +25.900000,93.600000,bn +25.900000,93.500000,bn +25.800000,93.500000,bn +25.700000,93.500000,bn +25.700000,93.600000,bn +25.800000,93.600000,bn +25.800000,93.700000,id +25.700000,93.700000,id +25.700000,93.800000,id +25.700000,93.900000,id +25.800000,93.900000,id +25.800000,93.800000,id +25.900000,93.800000,id +25.900000,93.900000,id +25.900000,94.000000,id +25.800000,94.000000,id +25.700000,94.000000,id +25.700000,94.100000,id +25.700000,94.200000,id +25.600000,94.300000,id +25.700000,94.300000,id +25.800000,94.300000,id +25.900000,94.300000,id +25.900000,94.200000,id +25.800000,94.200000,id +25.800000,94.100000,id +25.900000,94.100000,id +26.000000,94.100000,bn +26.100000,94.100000,bn +26.100000,94.200000,bn +26.000000,94.200000,en +26.000000,94.300000,en +26.100000,94.300000,id +26.200000,94.300000,bn +26.300000,94.300000,bn +26.300000,94.200000,bn +26.200000,94.200000,bn +26.200000,94.100000,bn +26.300000,94.100000,bn +26.300000,94.000000,bn +26.200000,94.000000,bn +26.100000,94.000000,bn +26.000000,94.000000,bn +26.100000,93.900000,bn +26.000000,93.900000,bn +26.000000,93.800000,bn +26.100000,93.800000,bn +26.200000,93.800000,bn +26.200000,93.900000,bn +26.300000,93.900000,bn +26.300000,93.800000,bn +26.400000,93.800000,bn +26.500000,93.800000,bn +26.500000,93.900000,hi +26.400000,93.900000,bn +26.400000,94.000000,hi +26.500000,94.000000,bn +26.600000,94.000000,hi +26.700000,94.000000,hi +26.700000,93.900000,hi +26.600000,93.900000,hi +26.600000,93.800000,bn +26.700000,93.800000,hi +26.800000,93.800000,hi +26.800000,93.900000,hi +26.900000,93.900000,bn +26.900000,93.800000,bn +27.000000,93.800000,bn +27.100000,93.800000,bn +27.100000,93.900000,bn +27.000000,93.900000,hi +27.100000,94.000000,hi +27.000000,94.000000,hi +26.900000,94.000000,bn +26.800000,94.000000,bn +26.800000,94.100000,bn +26.800000,94.200000,bn +26.900000,94.200000,bn +26.900000,94.100000,bn +27.000000,94.100000,hi +27.100000,94.100000,hi +27.100000,94.200000,hi +27.000000,94.200000,hi +27.000000,94.300000,hi +27.100000,94.300000,hi +26.900000,94.300000,bn +26.800000,94.300000,bn +26.600000,94.300000,bn +26.700000,94.300000,bn +26.700000,94.200000,bn +26.700000,94.100000,bn +26.600000,94.100000,bn +26.600000,94.200000,bn +26.500000,94.200000,bn +26.500000,94.100000,hi +26.400000,94.100000,hi +26.400000,94.200000,bn +26.400000,94.300000,bn +26.500000,94.300000,bn +26.400000,94.400000,bn +26.500000,94.400000,bn +26.500000,94.500000,bn +26.400000,94.500000,id +26.400000,94.600000,id +26.400000,94.700000,bn +26.500000,94.700000,id +26.500000,94.600000,id +26.600000,94.600000,bn +26.600000,94.700000,bn +26.700000,94.700000,bn +26.700000,94.600000,bn +26.700000,94.500000,bn +26.600000,94.500000,bn +26.600000,94.400000,bn +26.700000,94.400000,bn +26.800000,94.400000,bn +26.800000,94.500000,hi +26.900000,94.500000,hi +26.900000,94.400000,bn +27.000000,94.400000,hi +27.100000,94.400000,hi +27.100000,94.500000,hi +27.000000,94.500000,hi +27.000000,94.600000,bn +27.000000,94.700000,bn +26.900000,94.700000,bn +26.900000,94.600000,hi +26.800000,94.600000,bn +26.800000,94.700000,bn +26.800000,94.800000,bn +26.900000,94.800000,bn +27.000000,94.800000,hi +27.000000,94.900000,bn +27.000000,95.000000,hi +26.900000,95.000000,bn +26.900000,94.900000,bn +26.800000,94.900000,bn +26.800000,95.000000,bn +26.700000,95.000000,bn +26.600000,95.000000,en +26.600000,94.900000,bn +26.700000,94.900000,bn +26.700000,94.800000,bn +26.600000,94.800000,bn +26.500000,94.800000,en +26.400000,94.800000,bn +26.400000,94.900000,en +26.500000,94.900000,en +26.500000,95.000000,en +26.400000,95.000000,en +26.300000,95.000000,en +26.300000,94.900000,en +26.200000,94.900000,en +26.200000,95.000000,en +26.100000,95.000000,en +26.000000,95.000000,en +26.000000,94.900000,en +26.100000,94.900000,en +26.000000,94.800000,bn +26.100000,94.800000,bn +26.200000,94.800000,bn +26.300000,94.800000,bn +26.300000,94.700000,bn +26.200000,94.700000,bn +26.200000,94.600000,bn +26.300000,94.600000,bn +26.300000,94.500000,id +26.300000,94.400000,id +26.200000,94.400000,bn +26.200000,94.500000,bn +26.100000,94.500000,bn +26.100000,94.400000,bn +26.000000,94.400000,bn +26.000000,94.500000,bn +26.000000,94.600000,bn +26.100000,94.600000,bn +26.100000,94.700000,bn +26.000000,94.700000,bn +25.900000,94.700000,bn +25.800000,94.700000,en +25.800000,94.600000,en +25.900000,94.600000,bn +25.900000,94.500000,bn +25.900000,94.400000,bn +25.800000,94.400000,en +25.800000,94.500000,en +25.700000,94.500000,en +25.700000,94.400000,en +25.600000,94.400000,en +25.600000,94.500000,en +25.600000,94.600000,en +25.700000,94.600000,en +25.700000,94.700000,en +25.600000,94.700000,en +25.700000,94.800000,en +25.800000,94.800000,en +25.900000,94.800000,bn +25.800000,94.900000,en +25.900000,94.900000,en +25.900000,95.000000,en +25.800000,95.000000,en +25.700000,94.900000,en +25.200000,94.600000,en +25.100000,94.600000,en +25.100000,94.700000,my +25.000000,94.700000,my +24.900000,94.700000,my +24.900000,94.600000,en +25.000000,94.600000,en +25.000000,94.500000,en +24.900000,94.500000,en +24.900000,94.400000,en +25.000000,94.400000,en +25.100000,94.400000,en +25.100000,94.500000,en +25.200000,94.500000,en +25.200000,94.400000,en +25.300000,94.400000,en +25.400000,94.400000,en +25.300000,94.500000,en +25.300000,94.600000,en +25.500000,94.700000,en +25.500000,94.600000,en +25.500000,94.500000,en +25.500000,94.400000,en +25.500000,94.300000,id +25.300000,94.300000,en +25.400000,94.300000,en +25.400000,94.200000,en +25.300000,94.200000,en +25.300000,94.100000,en +25.400000,94.100000,en +25.500000,94.100000,id +25.500000,94.200000,id +25.600000,94.200000,id +25.600000,94.100000,id +25.600000,94.000000,id +25.500000,94.000000,id +25.600000,93.900000,id +25.600000,93.800000,id +25.500000,93.800000,en +25.500000,93.900000,id +25.400000,93.900000,en +25.400000,93.800000,en +25.300000,93.800000,en +25.300000,93.900000,en +25.400000,94.000000,en +25.300000,94.000000,en +25.200000,94.000000,en +25.100000,94.000000,en +25.200000,93.900000,en +25.200000,93.800000,en +25.100000,93.800000,en +25.100000,93.900000,en +25.000000,93.900000,id +25.000000,93.800000,id +24.900000,93.800000,id +24.900000,93.900000,id +25.000000,94.000000,id +24.900000,94.000000,id +24.900000,94.100000,id +24.900000,94.200000,id +25.000000,94.200000,id +25.000000,94.100000,id +25.100000,94.100000,en +25.200000,94.100000,en +25.200000,94.200000,en +25.100000,94.200000,en +25.100000,94.300000,en +25.200000,94.300000,en +25.000000,94.300000,en +24.900000,94.300000,en +24.800000,94.300000,en +24.700000,94.300000,en +24.500000,94.300000,en +24.600000,94.300000,en +24.600000,94.200000,id +24.500000,94.200000,en +24.500000,94.100000,bn +24.600000,94.100000,id +24.700000,94.100000,id +24.700000,94.200000,id +24.800000,94.200000,id +24.800000,94.100000,id +24.800000,94.000000,id +24.700000,94.000000,id +24.800000,93.900000,id +24.800000,93.800000,id +24.700000,93.800000,id +24.700000,93.900000,bn +24.600000,93.900000,id +24.600000,93.800000,id +24.500000,93.800000,id +24.500000,93.900000,id +24.600000,94.000000,id +24.500000,94.000000,bn +24.400000,94.000000,en +24.300000,94.000000,en +24.400000,93.900000,id +24.400000,93.800000,id +24.300000,93.800000,id +24.300000,93.900000,id +24.200000,93.900000,id +24.200000,93.800000,id +24.100000,93.800000,id +24.100000,93.900000,id +24.200000,94.000000,en +24.100000,94.000000,en +24.100000,94.100000,my +24.100000,94.200000,my +24.200000,94.200000,my +24.200000,94.100000,my +24.300000,94.100000,my +24.400000,94.100000,my +24.400000,94.200000,my +24.300000,94.200000,my +24.300000,94.300000,my +24.400000,94.300000,my +24.500000,94.400000,en +24.600000,94.400000,en +24.800000,94.400000,en +24.800000,94.500000,en +24.000000,94.200000,hi +24.000000,94.100000,hi +24.000000,94.000000,en +24.000000,93.800000,en +24.000000,93.900000,en +24.100000,93.600000,id +24.000000,93.600000,en +24.000000,93.500000,en +24.100000,93.500000,id +24.100000,93.400000,en +23.900000,93.100000,en +23.800000,93.100000,en +23.700000,93.400000,en +23.600000,93.400000,en +23.600000,93.300000,en +23.700000,93.300000,en +23.700000,93.200000,en +23.700000,93.100000,en +23.600000,93.100000,en +23.600000,93.200000,en +23.500000,93.200000,en +23.500000,93.100000,en +23.400000,93.100000,en +23.400000,93.200000,en +23.400000,93.300000,en +23.500000,93.300000,en +23.500000,93.400000,en +23.000000,93.100000,en +23.100000,93.100000,en +23.300000,93.300000,en +23.300000,93.200000,en +23.200000,93.100000,en +23.300000,93.100000,en +23.200000,93.000000,en +23.300000,93.000000,en +23.300000,92.900000,en +23.300000,92.800000,en +23.200000,92.800000,en +23.200000,92.900000,en +23.100000,92.900000,en +23.100000,92.800000,en +23.000000,92.800000,en +23.000000,92.900000,en +23.000000,93.000000,en +23.100000,93.000000,en +22.900000,93.000000,en +22.800000,93.000000,en +22.700000,93.000000,en +22.700000,92.900000,en +22.700000,92.800000,en +22.800000,92.800000,en +22.800000,92.900000,en +22.900000,92.900000,en +22.900000,92.800000,en +22.900000,92.700000,en +22.800000,92.700000,en +22.700000,92.700000,en +22.700000,92.600000,en +22.600000,92.600000,bn +22.800000,92.500000,en +22.800000,92.600000,en +22.900000,92.600000,en +22.900000,92.500000,en +23.000000,92.500000,en +23.100000,92.500000,en +23.100000,92.600000,en +23.000000,92.600000,en +23.000000,92.700000,en +23.100000,92.700000,en +23.200000,92.700000,en +23.300000,92.700000,en +23.200000,92.500000,bn +23.300000,92.500000,bn +23.400000,92.500000,bn +23.500000,92.600000,id +23.500000,92.500000,id +23.600000,92.500000,id +23.700000,92.500000,id +23.700000,92.600000,id +23.600000,92.600000,id +23.700000,92.700000,id +23.600000,92.700000,id +23.500000,92.700000,id +23.400000,92.700000,en +23.400000,92.800000,en +23.500000,92.800000,id +23.500000,92.900000,id +23.400000,92.900000,en +23.400000,93.000000,en +23.500000,93.000000,en +23.600000,93.000000,en +23.700000,93.000000,en +23.700000,92.900000,id +23.600000,92.900000,id +23.600000,92.800000,id +23.700000,92.800000,id +23.800000,92.800000,id +23.900000,92.800000,id +23.900000,92.900000,id +23.800000,92.900000,id +23.800000,93.000000,en +23.900000,93.000000,en +24.100000,92.900000,en +24.000000,92.900000,id +24.000000,92.800000,id +24.100000,92.800000,en +24.100000,92.700000,en +24.000000,92.700000,id +23.900000,92.700000,id +23.800000,92.700000,id +23.900000,92.600000,id +23.800000,92.600000,id +23.800000,92.500000,id +23.900000,92.500000,id +24.000000,92.500000,id +24.000000,92.600000,id +24.100000,92.600000,en +24.100000,92.500000,en +24.200000,92.500000,en +24.300000,92.500000,bn +24.300000,92.600000,bn +24.200000,92.600000,en +24.200000,92.700000,en +24.300000,92.700000,bn +24.400000,92.700000,bn +24.500000,92.700000,hi +24.500000,92.600000,hi +24.400000,92.600000,bn +24.400000,92.500000,bn +24.500000,92.500000,hi +24.600000,92.600000,hi +24.600000,92.500000,hi +24.700000,92.500000,hi +24.800000,92.500000,hi +24.800000,92.600000,hi +24.700000,92.600000,hi +24.800000,92.700000,bn +24.700000,92.700000,bn +24.600000,92.700000,bn +24.500000,92.800000,bn +24.500000,92.900000,bn +24.600000,92.900000,bn +24.600000,92.800000,bn +24.700000,92.800000,bn +24.800000,92.800000,bn +24.800000,92.900000,bn +24.700000,92.900000,bn +24.700000,93.000000,bn +24.800000,93.000000,bn +24.600000,93.000000,bn +24.500000,93.000000,bn +24.400000,93.000000,bn +24.400000,92.800000,bn +24.400000,92.900000,bn +24.300000,92.900000,bn +24.300000,92.800000,bn +24.200000,92.800000,en +24.200000,92.900000,en +24.300000,93.000000,bn +24.400000,93.100000,hi +24.400000,93.200000,hi +24.400000,93.400000,en +24.300000,93.400000,en +24.200000,93.400000,en +24.200000,93.500000,id +24.100000,93.700000,id +24.200000,93.700000,id +24.200000,93.600000,id +24.300000,93.600000,id +24.300000,93.700000,id +24.400000,93.700000,id +24.400000,93.600000,id +24.300000,93.500000,id +24.400000,93.500000,id +24.500000,93.500000,id +24.600000,93.500000,en +24.500000,93.600000,id +24.500000,93.700000,id +24.600000,93.700000,id +24.600000,93.600000,en +24.700000,93.600000,en +24.700000,93.700000,id +24.800000,93.700000,id +24.800000,93.600000,en +24.700000,93.500000,en +24.800000,93.500000,en +24.800000,93.400000,en +24.800000,93.300000,bn +24.700000,93.300000,bn +24.700000,93.400000,en +24.600000,93.400000,en +24.600000,93.300000,bn +24.600000,93.200000,bn +24.500000,93.200000,hi +24.500000,93.100000,hi +24.600000,93.100000,bn +24.700000,93.100000,bn +24.700000,93.200000,bn +24.800000,93.200000,bn +24.800000,93.100000,bn +24.900000,93.100000,bn +24.900000,93.200000,bn +25.000000,93.200000,bn +25.000000,93.100000,bn +25.100000,93.100000,bn +25.200000,93.100000,bn +25.200000,93.200000,bn +25.100000,93.200000,bn +25.100000,93.300000,en +25.200000,93.300000,en +25.200000,93.400000,en +25.100000,93.400000,en +25.000000,93.400000,en +25.000000,93.300000,bn +24.900000,93.300000,bn +24.900000,93.400000,en +24.900000,93.500000,en +25.000000,93.500000,en +24.900000,93.600000,en +24.900000,93.700000,id +25.000000,93.700000,id +25.000000,93.600000,en +25.100000,93.600000,en +25.100000,93.700000,en +25.200000,93.700000,en +25.200000,93.600000,en +25.100000,93.500000,en +25.200000,93.500000,en +25.300000,93.500000,en +25.400000,93.500000,en +25.300000,93.600000,en +25.400000,93.600000,en +25.500000,93.600000,en +25.500000,93.700000,en +25.600000,93.700000,id +25.600000,93.600000,bn +25.500000,93.500000,en +25.600000,93.500000,bn +25.600000,93.400000,bn +25.600000,93.300000,bn +25.500000,93.300000,bn +25.500000,93.400000,bn +25.400000,93.400000,en +25.300000,93.400000,en +25.300000,93.300000,en +25.400000,93.300000,en +25.400000,93.200000,bn +25.300000,93.200000,bn +25.300000,93.100000,bn +25.400000,93.100000,bn +25.500000,93.100000,bn +25.500000,93.200000,bn +25.600000,93.200000,bn +25.600000,93.100000,bn +25.500000,93.000000,bn +25.600000,93.000000,bn +25.600000,92.900000,bn +25.600000,92.800000,bn +25.500000,92.800000,en +25.500000,92.900000,en +25.400000,92.900000,bn +25.400000,92.800000,bn +25.300000,92.800000,bn +25.300000,92.900000,bn +25.300000,93.000000,bn +25.400000,93.000000,bn +25.200000,93.000000,bn +25.100000,93.000000,bn +24.900000,93.000000,bn +25.000000,93.000000,bn +25.000000,92.900000,bn +24.900000,92.900000,bn +24.900000,92.800000,bn +25.000000,92.800000,bn +25.100000,92.800000,bn +25.100000,92.900000,bn +25.200000,92.900000,bn +25.200000,92.800000,bn +25.200000,92.700000,hi +25.100000,92.700000,bn +25.000000,92.700000,bn +24.900000,92.700000,bn +25.000000,92.600000,hi +24.900000,92.600000,hi +24.900000,92.500000,hi +25.000000,92.500000,hi +25.100000,92.500000,hi +25.100000,92.600000,hi +25.200000,92.600000,bn +25.200000,92.500000,bn +25.300000,92.500000,bn +25.400000,92.500000,bn +25.400000,92.600000,bn +25.300000,92.600000,bn +25.300000,92.700000,en +25.400000,92.700000,en +25.500000,92.700000,en +25.600000,92.700000,bn +25.600000,92.600000,bn +25.500000,92.600000,bn +25.500000,92.500000,bn +25.600000,92.500000,bn +25.600000,92.400000,id +25.500000,92.400000,id +25.600000,92.300000,id +25.600000,92.200000,id +25.500000,92.200000,id +25.500000,92.300000,id +25.400000,92.300000,id +25.400000,92.200000,hi +25.300000,92.200000,id +25.300000,92.300000,id +25.400000,92.400000,bn +25.300000,92.400000,id +25.200000,92.400000,bn +25.100000,92.400000,hi +25.200000,92.300000,bn +25.200000,92.200000,bn +25.200000,92.100000,hi +25.200000,92.000000,hi +25.300000,91.900000,bn +25.400000,91.900000,bn +25.300000,92.000000,bn +25.300000,92.100000,bn +25.400000,92.100000,bn +25.400000,92.000000,bn +25.500000,92.000000,bn +25.500000,92.100000,bn +25.600000,92.100000,bn +25.600000,92.000000,bn +25.500000,91.900000,bn +25.600000,91.900000,bn +25.600000,91.800000,bn +25.600000,91.700000,bn +25.500000,91.700000,bn +25.500000,91.800000,bn +25.400000,91.800000,bn +25.300000,91.800000,bn +25.300000,91.700000,bn +25.400000,91.700000,bn +25.400000,91.600000,bn +25.300000,91.600000,bn +25.500000,91.600000,bn +25.600000,91.600000,bn +25.600000,91.500000,bn +25.500000,91.500000,bn +25.500000,91.400000,bn +25.600000,91.400000,bn +25.600000,91.300000,bn +25.500000,91.300000,bn +25.400000,91.300000,bn +25.300000,91.300000,hi +25.300000,91.400000,hi +25.400000,91.400000,bn +25.400000,91.500000,bn +25.300000,91.500000,hi +25.200000,91.500000,hi +25.200000,91.400000,en +25.200000,91.600000,hi +25.200000,91.700000,bn +25.200000,91.800000,hi +24.200000,91.800000,hi +24.200000,92.000000,hi +24.200000,92.100000,hi +24.300000,92.100000,hi +24.300000,92.000000,hi +24.600000,92.300000,hi +24.800000,92.300000,hi +24.800000,92.400000,hi +24.700000,92.400000,hi +24.600000,92.400000,hi +24.500000,92.400000,hi +24.400000,92.400000,hi +24.500000,92.300000,hi +24.400000,92.200000,hi +24.400000,92.300000,hi +24.300000,92.300000,hi +24.300000,92.200000,hi +24.200000,92.200000,hi +24.200000,92.300000,hi +24.300000,92.400000,hi +24.200000,92.400000,hi +24.100000,92.400000,hi +24.000000,92.400000,hi +23.900000,92.400000,hi +23.800000,92.400000,bn +23.900000,92.300000,hi +23.800000,92.300000,hi +23.800000,92.200000,hi +23.900000,92.200000,hi +24.000000,92.200000,hi +24.000000,92.300000,hi +24.100000,92.300000,hi +24.100000,92.200000,hi +24.100000,92.100000,hi +24.000000,92.100000,hi +24.000000,92.000000,id +24.100000,92.000000,hi +24.100000,91.900000,hi +24.000000,91.900000,hi +23.900000,91.900000,bn +23.800000,91.900000,hi +23.800000,92.000000,hi +23.900000,92.000000,hi +23.900000,92.100000,hi +23.800000,92.100000,hi +23.700000,91.900000,hi +23.600000,91.900000,hi +23.500000,91.900000,hi +23.700000,92.400000,en +23.600000,92.400000,en +23.500000,92.400000,bn +23.400000,92.400000,bn +23.200000,92.400000,bn +23.200000,91.700000,hi +23.300000,91.700000,hi +23.300000,91.600000,hi +23.200000,91.600000,hi +23.100000,91.600000,en +23.000000,91.600000,en +23.000000,91.700000,en +23.100000,91.700000,en +23.100000,91.800000,en +23.300000,91.500000,hi +23.300000,91.400000,en +23.500000,91.300000,en +23.700000,91.300000,hi +23.600000,91.300000,hi +23.600000,91.400000,hi +23.700000,91.400000,hi +23.700000,91.500000,hi +23.600000,91.500000,hi +23.500000,91.500000,hi +23.500000,91.400000,hi +23.400000,91.400000,hi +23.400000,91.500000,hi +23.500000,91.600000,hi +23.400000,91.600000,hi +23.400000,91.700000,hi +23.400000,91.800000,hi +23.500000,91.800000,hi +23.500000,91.700000,hi +23.600000,91.700000,hi +23.600000,91.800000,hi +23.700000,91.800000,hi +23.700000,91.700000,hi +23.700000,91.600000,hi +23.600000,91.600000,hi +23.900000,91.600000,hi +23.800000,91.600000,bn +23.800000,91.700000,hi +23.800000,91.800000,hi +23.900000,91.800000,hi +23.900000,91.700000,bn +24.000000,91.700000,hi +24.000000,91.800000,hi +24.100000,91.800000,hi +24.100000,91.700000,hi +24.000000,91.600000,hi +24.000000,91.400000,hi +24.000000,91.500000,hi +23.900000,91.500000,hi +23.800000,91.500000,hi +23.800000,91.400000,hi +23.900000,91.400000,hi +23.900000,91.300000,hi +23.800000,91.300000,hi +23.600000,91.200000,hi +25.200000,90.700000,hi +25.200000,90.800000,hi +25.200000,90.900000,en +25.200000,91.000000,en +25.400000,91.000000,bn +25.300000,91.000000,hi +25.300000,91.100000,hi +25.300000,91.200000,hi +25.400000,91.200000,bn +25.400000,91.100000,hi +25.500000,91.100000,en +25.500000,91.200000,bn +25.600000,91.200000,bn +25.600000,91.100000,en +25.600000,91.000000,en +25.500000,91.000000,en +25.600000,90.900000,en +25.600000,90.800000,en +25.500000,90.800000,en +25.500000,90.900000,en +25.400000,90.900000,bn +25.300000,90.900000,hi +25.300000,90.800000,bn +25.400000,90.800000,bn +25.400000,90.700000,bn +25.300000,90.700000,bn +25.500000,90.700000,en +25.600000,90.700000,en +25.600000,90.600000,en +25.500000,90.600000,en +25.500000,90.500000,en +25.600000,90.500000,en +25.600000,90.400000,bn +25.600000,90.300000,bn +25.500000,90.300000,bn +25.500000,90.400000,bn +25.400000,90.400000,bn +25.400000,90.300000,bn +25.300000,90.300000,bn +25.300000,90.400000,bn +25.300000,90.500000,bn +25.400000,90.500000,bn +25.400000,90.600000,bn +25.300000,90.600000,bn +25.200000,90.600000,hi +25.200000,90.500000,hi +25.200000,90.400000,en +25.300000,90.000000,bn +25.400000,90.000000,bn +25.400000,90.100000,bn +25.300000,90.100000,bn +25.300000,90.200000,bn +25.400000,90.200000,bn +25.500000,90.200000,bn +25.600000,90.200000,bn +25.600000,90.100000,bn +25.500000,90.100000,bn +25.500000,90.000000,bn +25.600000,90.000000,bn +25.700000,90.000000,bn +25.700000,90.100000,bn +25.800000,90.100000,bn +25.800000,90.000000,bn +25.900000,90.000000,bn +26.000000,90.000000,bn +26.000000,90.100000,hi +25.900000,90.100000,hi +25.900000,90.200000,bn +26.000000,90.200000,hi +25.800000,90.200000,bn +25.700000,90.200000,bn +25.700000,90.300000,bn +25.800000,90.300000,hi +25.800000,90.400000,bn +25.700000,90.400000,bn +25.700000,90.500000,en +25.700000,90.600000,en +25.800000,90.600000,bn +25.800000,90.500000,bn +25.900000,90.500000,bn +25.900000,90.600000,bn +26.000000,90.600000,bn +26.000000,90.500000,bn +26.000000,90.400000,hi +25.900000,90.400000,hi +25.900000,90.300000,hi +26.000000,90.300000,hi +26.100000,90.300000,hi +26.200000,90.300000,bn +26.200000,90.400000,bn +26.100000,90.400000,hi +26.100000,90.500000,bn +26.100000,90.600000,bn +26.200000,90.600000,bn +26.200000,90.500000,bn +26.300000,90.500000,bn +26.300000,90.600000,bn +26.400000,90.600000,bn +26.400000,90.500000,bn +26.400000,90.400000,bn +26.300000,90.400000,bn +26.300000,90.300000,bn +26.400000,90.300000,bn +26.400000,90.200000,bn +26.300000,90.200000,bn +26.100000,90.200000,hi +26.200000,90.200000,bn +26.200000,90.100000,bn +26.100000,90.100000,hi +26.100000,90.000000,bn +26.200000,90.000000,bn +26.300000,90.000000,bn +26.300000,90.100000,bn +26.400000,90.100000,bn +26.400000,90.000000,bn +26.500000,90.000000,bn +26.600000,90.000000,bn +26.600000,90.100000,bn +26.500000,90.100000,bn +26.500000,90.200000,bn +26.600000,90.200000,bn +26.700000,90.200000,bn +26.700000,90.100000,bn +26.700000,90.000000,bn +26.800000,90.300000,bo +26.800000,90.400000,bo +26.800000,90.500000,bo +26.700000,90.600000,bn +26.700000,90.500000,bn +26.700000,90.300000,bn +26.700000,90.400000,bn +26.600000,90.400000,bn +26.600000,90.300000,bn +26.500000,90.300000,bn +26.500000,90.400000,bn +26.500000,90.500000,bn +26.600000,90.500000,bn +26.600000,90.600000,bn +26.500000,90.600000,bn +26.600000,90.700000,bn +26.500000,90.700000,bn +26.500000,90.800000,bn +26.500000,90.900000,bn +26.600000,90.900000,bn +26.600000,90.800000,bn +26.700000,90.800000,bn +26.700000,90.900000,bn +26.700000,90.700000,bn +26.800000,91.100000,bn +26.700000,91.200000,bn +26.700000,91.100000,bn +26.700000,91.000000,bn +26.600000,91.000000,bn +26.500000,91.000000,bn +26.500000,91.100000,hi +26.600000,91.100000,hi +26.600000,91.200000,hi +26.500000,91.200000,hi +26.400000,91.200000,hi +26.400000,91.100000,hi +26.300000,91.100000,hi +26.300000,91.200000,hi +26.200000,91.200000,hi +26.100000,91.200000,hi +26.100000,91.100000,hi +26.200000,91.100000,hi +26.200000,91.000000,hi +26.100000,91.000000,hi +26.300000,91.000000,hi +26.400000,91.000000,hi +26.400000,90.900000,hi +26.300000,90.900000,hi +26.300000,90.800000,hi +26.400000,90.800000,hi +26.400000,90.700000,bn +26.300000,90.700000,hi +26.200000,90.700000,bn +26.100000,90.700000,bn +26.100000,90.800000,hi +26.200000,90.800000,hi +26.200000,90.900000,hi +26.100000,90.900000,hi +26.000000,90.900000,hi +25.900000,90.900000,hi +25.900000,90.800000,bn +26.000000,90.800000,bn +26.000000,90.700000,bn +25.900000,90.700000,bn +25.800000,90.700000,bn +25.700000,90.700000,en +25.700000,90.800000,en +25.800000,90.800000,bn +25.800000,90.900000,bn +25.700000,90.900000,en +25.700000,91.000000,en +25.800000,91.000000,bn +26.000000,91.000000,hi +25.900000,91.000000,hi +25.900000,91.100000,bn +26.000000,91.100000,hi +26.000000,91.200000,bn +25.900000,91.200000,bn +25.800000,91.200000,bn +25.800000,91.100000,bn +25.700000,91.100000,en +25.700000,91.200000,bn +25.800000,91.300000,bn +25.700000,91.300000,bn +25.700000,91.400000,bn +25.700000,91.500000,bn +25.800000,91.500000,bn +25.800000,91.400000,bn +25.900000,91.400000,bn +25.900000,91.500000,bn +26.000000,91.500000,bn +26.000000,91.400000,bn +26.000000,91.300000,bn +25.900000,91.300000,bn +26.100000,91.300000,hi +26.200000,91.300000,hi +26.400000,91.300000,hi +26.300000,91.300000,hi +26.300000,91.400000,hi +26.400000,91.400000,hi +26.400000,91.500000,bn +26.300000,91.500000,bn +26.200000,91.500000,bn +26.200000,91.400000,bn +26.100000,91.400000,bn +26.100000,91.500000,bn +26.100000,91.600000,bn +26.200000,91.600000,bn +26.400000,91.600000,bn +26.300000,91.600000,bn +26.300000,91.700000,bn +26.400000,91.700000,bn +26.400000,91.800000,bn +26.300000,91.800000,bn +26.200000,91.800000,bn +26.200000,91.700000,bn +26.100000,91.700000,bn +26.100000,91.800000,bn +26.000000,91.800000,bn +25.900000,91.800000,bn +25.900000,91.700000,bn +26.000000,91.700000,bn +26.000000,91.600000,bn +25.900000,91.600000,bn +25.800000,91.600000,bn +25.700000,91.600000,bn +25.700000,91.700000,bn +25.800000,91.700000,bn +25.800000,91.800000,bn +25.700000,91.800000,bn +25.700000,91.900000,bn +25.800000,91.900000,bn +25.900000,91.900000,bn +26.000000,91.900000,bn +25.900000,92.000000,bn +26.000000,92.000000,bn +26.000000,92.100000,bn +25.900000,92.100000,bn +25.800000,92.100000,bn +25.800000,92.000000,bn +25.700000,92.000000,bn +25.700000,92.100000,bn +25.700000,92.200000,en +25.800000,92.200000,en +25.700000,92.300000,en +25.700000,92.400000,en +25.800000,92.400000,en +25.900000,92.400000,bn +26.000000,92.400000,bn +26.000000,92.300000,bn +25.900000,92.300000,bn +25.900000,92.200000,bn +26.000000,92.200000,bn +26.100000,92.200000,bn +26.200000,92.200000,bn +26.200000,92.300000,bn +26.100000,92.300000,bn +26.100000,92.400000,bn +26.200000,92.400000,bn +26.300000,92.400000,hi +26.400000,92.300000,hi +26.300000,92.300000,bn +26.300000,92.200000,bn +26.400000,92.200000,hi +26.400000,92.100000,hi +26.400000,92.000000,bn +26.300000,92.000000,bn +26.300000,92.100000,bn +26.200000,92.100000,bn +26.100000,92.100000,bn +26.100000,92.000000,bn +26.200000,92.000000,bn +26.100000,91.900000,bn +26.200000,91.900000,bn +26.300000,91.900000,bn +26.400000,91.900000,bn +26.500000,91.900000,hi +26.600000,91.900000,bn +26.700000,91.900000,bn +26.600000,92.000000,bn +26.700000,92.000000,bn +26.700000,92.100000,bn +26.600000,92.100000,hi +26.500000,92.100000,bn +26.500000,92.000000,hi +26.500000,92.200000,hi +26.500000,92.300000,bn +26.400000,92.400000,hi +26.500000,92.400000,hi +26.600000,92.400000,bn +26.700000,92.400000,bn +26.700000,92.300000,bn +26.600000,92.300000,bn +26.600000,92.200000,bn +26.700000,92.200000,bn +26.800000,92.200000,bn +26.900000,92.200000,bn +26.900000,92.300000,bn +26.800000,92.300000,bn +26.800000,92.400000,bn +26.900000,92.400000,bn +27.000000,92.400000,bn +27.100000,92.400000,en +27.100000,92.300000,en +27.000000,92.300000,bn +27.000000,92.200000,bn +27.100000,92.200000,en +27.100000,92.100000,en +26.800000,92.100000,bn +26.800000,92.000000,bn +26.800000,91.900000,bn +26.900000,91.900000,bn +26.800000,91.800000,bn +26.700000,91.800000,bn +26.700000,91.700000,bn +26.600000,91.700000,bn +26.600000,91.800000,bn +26.500000,91.800000,hi +26.500000,91.700000,bn +26.500000,91.600000,bn +26.600000,91.600000,bn +26.700000,91.600000,bn +26.700000,91.500000,bn +26.700000,91.400000,bn +26.600000,91.500000,hi +26.500000,91.500000,hi +26.500000,91.400000,bn +26.600000,91.400000,hi +26.600000,91.300000,hi +26.500000,91.300000,hi +26.700000,91.300000,bn +27.600000,91.600000,bo +27.700000,91.800000,bn +27.700000,91.700000,en +27.600000,91.700000,bo +27.600000,91.800000,bo +27.500000,91.800000,bo +27.500000,91.900000,bo +27.500000,92.000000,bn +27.500000,92.100000,bn +27.400000,92.100000,bn +27.200000,92.100000,en +27.200000,92.200000,en +27.300000,92.200000,en +27.300000,92.300000,en +27.200000,92.300000,en +27.200000,92.400000,en +27.300000,92.400000,en +27.400000,92.400000,en +27.500000,92.400000,en +27.500000,92.300000,en +27.400000,92.300000,en +27.400000,92.200000,en +27.500000,92.200000,en +27.600000,92.200000,en +27.700000,92.200000,en +27.700000,92.300000,bn +27.600000,92.300000,en +27.600000,92.400000,en +27.700000,92.400000,bn +27.800000,92.400000,bn +27.800000,92.300000,bn +27.800000,92.200000,en +27.700000,92.100000,bn +27.600000,92.100000,bn +27.600000,92.000000,bn +27.700000,92.000000,bn +27.600000,91.900000,bn +27.700000,91.900000,bn +28.700000,93.900000,bn +28.700000,94.000000,bn +29.100000,94.300000,en +28.800000,94.300000,en +28.900000,94.300000,en +28.900000,94.200000,en +28.800000,94.100000,en +28.800000,94.200000,en +28.700000,94.100000,bn +28.700000,94.200000,en +28.700000,94.300000,en +28.600000,94.500000,en +28.700000,94.500000,en +28.700000,94.400000,en +28.800000,94.400000,en +28.900000,94.400000,en +28.900000,94.500000,en +28.800000,94.500000,en +28.800000,94.600000,en +28.900000,94.600000,en +28.900000,94.700000,en +28.800000,94.700000,en +28.700000,94.700000,en +28.700000,94.600000,en +28.600000,94.600000,en +28.600000,94.700000,en +28.600000,94.800000,en +28.700000,94.800000,en +28.600000,94.900000,en +28.600000,95.000000,en +28.700000,95.000000,en +28.700000,94.900000,en +28.800000,94.900000,en +28.800000,95.000000,en +28.900000,95.000000,en +28.900000,94.900000,en +28.800000,94.800000,en +28.900000,94.800000,en +29.000000,94.800000,en +29.100000,94.800000,en +29.000000,94.900000,en +29.000000,95.000000,en +29.100000,95.000000,en +29.100000,94.900000,en +29.200000,94.600000,en +29.200000,94.700000,en +29.100000,94.700000,en +29.000000,94.700000,en +29.000000,94.600000,en +29.100000,94.600000,en +29.100000,94.500000,en +29.000000,94.500000,en +29.000000,94.400000,en +29.100000,94.400000,en +29.200000,94.500000,en +33.500000,74.200000,ur +33.600000,74.200000,ur +33.600000,74.100000,en +33.700000,74.100000,en +33.700000,74.200000,ur +33.800000,74.200000,ur +33.800000,74.100000,ur +33.700000,74.000000,en +34.100000,74.200000,ur +34.100000,74.100000,ur +34.100000,74.000000,en +34.100000,73.900000,hi +34.400000,73.800000,en +34.500000,73.900000,ur +34.600000,74.000000,ur +34.700000,74.200000,ur +34.600000,74.100000,ur +34.600000,74.200000,ur +34.500000,74.200000,ur +34.400000,74.200000,ur +34.400000,74.100000,ur +34.500000,74.100000,ur +34.500000,74.000000,ur +34.400000,73.900000,ur +34.400000,74.000000,ur +34.300000,74.000000,ur +34.200000,74.000000,en +34.200000,74.100000,ur +34.300000,74.100000,ur +34.300000,74.200000,ur +34.200000,74.200000,ur +34.200000,74.300000,ur +34.300000,74.300000,ur +34.300000,74.400000,ur +34.300000,74.500000,ur +34.400000,74.500000,ur +34.500000,74.500000,ur +34.500000,74.400000,ur +34.400000,74.400000,ur +34.400000,74.300000,ur +34.500000,74.300000,ur +34.600000,74.300000,ur +34.600000,74.400000,ur +34.700000,74.400000,ur +34.700000,74.300000,ur +34.800000,74.300000,en +34.700000,74.500000,ur +34.600000,74.500000,ur +34.600000,74.600000,ur +34.600000,74.700000,ur +34.700000,74.700000,en +34.700000,74.600000,ur +34.600000,74.900000,ur +34.500000,74.900000,ur +34.500000,74.800000,ur +34.600000,74.800000,ur +34.500000,74.600000,ur +34.500000,74.700000,ur +34.400000,74.700000,ur +34.400000,74.600000,ur +34.300000,74.600000,ur +34.300000,74.700000,ur +34.300000,74.800000,ur +34.400000,74.800000,ur +34.400000,74.900000,ur +34.300000,74.900000,ur +34.200000,74.900000,ur +34.200000,74.800000,ur +34.100000,74.800000,ur +34.100000,74.900000,ur +34.000000,74.900000,ur +34.000000,74.800000,ur +34.000000,74.700000,ur +33.900000,74.700000,ur +33.900000,74.600000,ur +34.000000,74.600000,ur +34.100000,74.600000,ur +34.100000,74.700000,ur +34.200000,74.700000,ur +34.200000,74.600000,ur +34.200000,74.500000,ur +34.100000,74.500000,ur +34.200000,74.400000,ur +34.100000,74.300000,ur +34.100000,74.400000,ur +34.000000,74.400000,ur +34.000000,74.300000,ur +33.900000,74.300000,ur +33.900000,74.400000,ur +34.000000,74.500000,ur +33.900000,74.500000,ur +33.800000,74.500000,ur +33.700000,74.500000,ur +33.800000,74.400000,ur +33.800000,74.300000,ur +33.700000,74.300000,ur +33.700000,74.400000,ur +33.600000,74.400000,ur +33.600000,74.300000,ur +33.500000,74.300000,ur +33.600000,74.500000,ur +33.600000,74.600000,ur +33.600000,74.700000,ur +33.700000,74.700000,ur +33.700000,74.600000,ur +33.800000,74.600000,ur +33.800000,74.700000,ur +33.800000,74.800000,ur +33.900000,74.800000,ur +33.900000,74.900000,ur +33.800000,74.900000,ur +33.700000,74.900000,hi +33.700000,74.800000,ur +33.600000,74.800000,ur +33.600000,74.900000,ur +33.600000,75.000000,ur +33.700000,75.000000,ur +33.700000,75.100000,ur +33.600000,75.100000,ur +33.700000,75.300000,ur +33.700000,75.200000,ur +33.800000,75.200000,ur +33.800000,75.300000,ur +33.900000,75.300000,ur +33.900000,75.200000,ur +33.900000,75.100000,ur +33.800000,75.100000,ur +33.800000,75.000000,ur +33.900000,75.000000,ur +34.000000,75.000000,ur +34.000000,75.100000,ur +34.100000,75.100000,ur +34.100000,75.000000,ur +34.200000,75.000000,ur +34.200000,75.100000,ur +34.200000,75.200000,ur +34.300000,75.200000,en +34.300000,75.300000,en +34.200000,75.300000,en +34.100000,75.300000,ur +34.100000,75.200000,ur +34.000000,75.200000,ur +34.000000,75.300000,ur +34.000000,75.400000,ur +34.000000,75.500000,en +34.100000,75.400000,en +34.200000,75.400000,en +34.300000,75.400000,en +34.300000,75.700000,en +34.200000,75.700000,en +34.100000,75.600000,ur +34.100000,75.700000,ur +34.000000,75.700000,ur +33.900000,75.700000,ur +33.900000,75.600000,ur +34.000000,75.600000,ur +33.900000,75.400000,ur +33.900000,75.500000,ur +33.800000,75.500000,ur +33.800000,75.400000,ur +33.700000,75.400000,ur +33.700000,75.500000,ur +33.700000,75.600000,en +33.800000,75.600000,en +33.800000,75.700000,ur +33.700000,75.800000,ur +33.800000,75.800000,ur +33.900000,75.800000,ur +34.000000,75.800000,ur +33.900000,75.900000,en +34.000000,75.900000,en +34.000000,76.000000,en +33.900000,76.000000,en +33.800000,76.000000,ur +33.800000,75.900000,ur +33.700000,75.900000,ur +33.800000,76.100000,id +33.900000,76.200000,id +33.800000,76.200000,id +33.800000,76.300000,id +33.800000,76.400000,id +33.900000,76.400000,id +33.900000,76.300000,id +34.000000,76.300000,id +34.000000,76.400000,id +34.100000,76.400000,id +34.000000,76.200000,id +33.900000,76.100000,id +34.000000,76.100000,id +34.200000,76.100000,en +34.200000,76.200000,en +34.100000,76.200000,ur +34.100000,76.300000,id +34.300000,76.300000,en +34.300000,76.400000,en +34.400000,76.400000,en +34.400000,76.300000,ur +34.400000,76.200000,ur +34.300000,76.200000,en +34.300000,76.100000,en +34.400000,76.100000,ur +34.400000,76.000000,ur +34.300000,75.900000,en +34.300000,76.000000,en +34.200000,76.000000,en +34.200000,75.900000,en +34.100000,75.800000,ur +34.200000,75.800000,en +34.300000,75.800000,en +34.400000,75.800000,en +34.500000,75.800000,en +34.600000,75.900000,ur +34.600000,76.000000,ur +34.500000,76.000000,ur +34.500000,75.900000,ur +34.400000,75.900000,ur +34.500000,76.100000,ur +34.600000,76.200000,ur +34.500000,76.200000,ur +34.500000,76.300000,ur +34.500000,76.400000,en +34.600000,76.400000,en +34.600000,76.300000,ur +34.700000,76.300000,ur +34.700000,76.400000,en +34.600000,76.100000,ur +34.500000,75.700000,ur +34.400000,75.700000,en +34.600000,75.300000,ur +34.600000,75.200000,ur +34.400000,75.300000,en +34.400000,75.200000,en +34.400000,75.100000,ur +34.300000,75.100000,ur +34.300000,75.000000,ur +34.400000,75.000000,ur +34.500000,75.000000,ur +34.500000,75.100000,ur +35.400000,78.000000,ur +35.300000,77.500000,ur +35.400000,77.700000,ur +35.300000,77.600000,ur +35.300000,77.700000,ur +35.300000,77.800000,ur +35.400000,77.800000,ur +35.400000,77.900000,ur +35.300000,77.900000,ur +35.200000,77.900000,ur +35.200000,77.800000,ur +35.200000,77.700000,ur +35.200000,77.600000,ur +35.000000,77.600000,ur +35.000000,77.700000,ur +34.700000,77.900000,en +34.700000,77.800000,en +34.700000,77.700000,ur +34.600000,77.700000,ur +34.800000,77.700000,ur +34.900000,77.700000,ur +34.900000,77.600000,ur +34.900000,77.500000,ur +34.900000,77.400000,ur +34.600000,77.400000,ur +34.700000,77.400000,ur +34.700000,77.300000,ur +34.600000,77.300000,ur +34.600000,77.200000,ur +34.700000,77.200000,ur +34.800000,77.200000,ur +34.900000,77.200000,ur +35.000000,77.200000,ur +35.000000,77.300000,ur +34.900000,77.300000,ur +35.000000,77.500000,ur +35.000000,77.400000,ur +35.200000,77.500000,ur +35.200000,77.400000,ur +35.200000,77.300000,ur +34.900000,77.100000,ur +35.000000,77.100000,ur +35.000000,77.000000,ur +34.900000,77.000000,ur +34.900000,76.900000,ur +34.900000,76.800000,ur +34.800000,76.800000,ur +34.700000,76.800000,ur +34.700000,76.700000,en +34.800000,76.700000,en +34.800000,76.500000,ur +34.700000,76.500000,ur +34.700000,76.600000,ur +34.600000,76.700000,en +34.600000,76.800000,ur +34.600000,77.000000,ur +34.600000,76.900000,ur +34.700000,76.900000,ur +34.800000,76.900000,ur +34.800000,77.000000,ur +34.700000,77.000000,ur +34.800000,77.100000,ur +34.700000,77.100000,ur +34.600000,77.100000,ur +34.500000,77.100000,ur +34.400000,77.100000,ur +34.200000,77.100000,en +34.300000,77.100000,ur +34.300000,77.000000,ur +34.400000,77.000000,ur +34.500000,77.000000,ur +34.000000,76.800000,id +34.000000,76.700000,id +34.100000,76.600000,id +34.100000,76.500000,id +34.000000,76.500000,id +34.000000,76.600000,id +33.900000,76.600000,id +33.900000,76.500000,id +33.800000,76.500000,id +33.800000,76.600000,id +33.800000,76.700000,id +33.900000,76.700000,id +33.900000,76.800000,id +33.800000,76.800000,id +33.900000,77.000000,id +33.900000,76.900000,id +34.000000,76.900000,ur +34.000000,77.000000,ur +34.100000,77.100000,en +34.000000,77.100000,en +33.900000,77.100000,en +33.900000,77.200000,en +34.000000,77.200000,en +34.000000,77.300000,en +33.900000,77.300000,en +33.900000,77.400000,en +33.900000,77.500000,en +34.000000,77.500000,en +34.000000,77.400000,en +34.100000,77.400000,en +34.100000,77.500000,en +34.200000,77.500000,en +34.200000,77.400000,en +34.100000,77.300000,en +34.100000,77.200000,en +34.200000,77.200000,en +34.200000,77.300000,en +34.300000,77.300000,ur +34.300000,77.200000,ur +34.400000,77.200000,ur +34.500000,77.200000,ur +34.500000,77.300000,ur +34.400000,77.300000,ur +34.400000,77.400000,ur +34.500000,77.400000,ur +34.400000,77.500000,en +34.300000,77.400000,ur +34.300000,77.500000,en +34.300000,77.600000,en +34.300000,77.700000,en +34.400000,77.700000,en +34.400000,77.600000,en +34.500000,77.700000,ur +34.500000,77.800000,en +34.600000,77.800000,en +34.600000,77.900000,en +34.500000,77.900000,en +34.400000,77.900000,en +34.400000,77.800000,en +34.300000,77.800000,en +34.300000,77.900000,en +34.200000,77.900000,en +34.100000,77.900000,en +34.100000,77.800000,en +34.200000,77.800000,en +34.200000,77.700000,en +34.200000,77.600000,en +34.100000,77.600000,en +34.100000,77.700000,en +34.000000,77.700000,en +34.000000,77.600000,en +33.900000,77.600000,en +33.900000,77.700000,en +34.000000,77.800000,en +34.000000,77.900000,en +34.000000,78.000000,en +34.100000,78.000000,en +34.100000,78.400000,en +34.000000,78.400000,en +34.000000,78.500000,en +34.000000,78.600000,en +34.100000,78.600000,en +34.100000,78.500000,en +34.200000,78.500000,en +34.200000,78.600000,en +34.300000,78.600000,en +34.300000,78.500000,en +34.300000,78.400000,en +34.200000,78.400000,en +34.300000,78.300000,en +34.300000,78.200000,en +34.400000,78.200000,en +34.400000,78.100000,en +34.300000,78.100000,en +34.300000,78.000000,en +34.400000,78.000000,en +34.500000,78.000000,en +34.500000,78.100000,en +34.600000,78.000000,en +34.700000,78.000000,en +34.800000,78.100000,ur +34.700000,78.100000,ur +34.700000,78.200000,ur +34.800000,78.200000,ur +34.900000,78.200000,ur +34.900000,78.100000,ur +35.000000,78.100000,ur +35.100000,78.100000,ur +35.100000,78.000000,ur +35.200000,78.000000,ur +34.400000,78.800000,en +34.200000,78.900000,en +34.300000,78.900000,en +34.300000,78.800000,en +34.300000,78.700000,en +34.200000,78.700000,en +34.200000,78.800000,en +34.100000,78.700000,en +34.000000,78.700000,en +33.900000,78.700000,en +33.800000,78.700000,en +33.700000,78.700000,en +33.600000,78.700000,en +33.500000,78.700000,en +33.400000,78.800000,en +33.400000,78.700000,en +33.300000,78.700000,en +33.300000,78.800000,en +33.300000,78.900000,en +33.100000,79.100000,en +33.000000,79.100000,en +33.000000,79.200000,en +33.100000,79.200000,en +33.100000,79.300000,en +33.000000,79.300000,en +32.900000,79.300000,en +32.900000,79.200000,en +32.800000,79.200000,en +32.800000,79.300000,en +32.700000,79.300000,en +32.700000,79.200000,en +32.700000,79.100000,en +32.800000,79.100000,en +32.900000,79.100000,en +32.900000,79.000000,en +32.900000,78.900000,en +32.800000,78.900000,en +32.800000,79.000000,en +32.700000,79.000000,en +32.600000,79.000000,en +32.600000,78.900000,en +32.700000,78.900000,en +32.700000,78.800000,en +32.600000,78.800000,en +32.700000,78.700000,en +32.800000,78.700000,en +32.800000,78.800000,en +32.900000,78.800000,en +32.900000,78.700000,en +33.000000,78.900000,en +33.000000,79.000000,en +33.100000,79.000000,en +33.100000,78.900000,en +33.200000,78.900000,en +33.200000,79.000000,en +33.300000,79.000000,en +32.900000,78.300000,en +32.900000,78.400000,en +32.900000,78.600000,en +32.900000,78.500000,en +32.800000,78.500000,en +32.800000,78.600000,en +32.700000,78.600000,en +32.700000,78.500000,en +32.700000,78.400000,en +32.600000,78.400000,en +32.600000,78.300000,en +32.700000,78.300000,en +32.700000,78.200000,en +32.600000,78.200000,en +32.600000,78.100000,en +32.600000,78.000000,en +32.700000,78.000000,en +32.700000,78.100000,en +32.800000,78.100000,bn +32.800000,78.000000,bn +32.900000,78.000000,bn +32.900000,78.100000,bn +32.900000,78.200000,bn +33.100000,78.000000,bn +33.200000,78.000000,bn +33.300000,78.000000,en +33.400000,78.000000,en +33.500000,78.000000,en +33.500000,78.100000,en +33.500000,78.200000,en +33.400000,78.200000,en +33.300000,78.200000,en +33.300000,78.300000,en +33.400000,78.300000,en +33.400000,78.400000,en +33.300000,78.400000,en +33.300000,78.600000,en +33.400000,78.600000,en +33.500000,78.500000,en +33.500000,78.600000,en +33.600000,78.600000,en +33.600000,78.500000,en +33.600000,78.400000,en +33.500000,78.400000,en +33.500000,78.300000,en +33.600000,78.300000,en +33.700000,78.300000,en +33.700000,78.400000,en +33.700000,78.500000,en +33.700000,78.600000,en +33.800000,78.600000,en +33.800000,78.500000,en +33.900000,78.600000,en +33.900000,78.500000,en +33.900000,78.400000,en +33.800000,78.400000,en +33.800000,78.300000,en +33.800000,78.200000,en +33.600000,78.200000,en +33.700000,78.200000,en +33.700000,78.100000,en +33.600000,78.100000,en +33.600000,78.000000,en +33.700000,78.000000,en +33.800000,78.000000,en +33.800000,78.100000,en +33.900000,78.000000,en +33.900000,77.900000,en +33.800000,77.900000,en +33.800000,77.800000,en +33.900000,77.800000,en +33.800000,77.600000,en +33.800000,77.700000,en +33.700000,77.700000,en +33.700000,77.600000,en +33.600000,77.600000,en +33.600000,77.700000,en +33.600000,77.800000,en +33.700000,77.800000,en +33.700000,77.900000,en +33.600000,77.900000,en +33.500000,77.900000,en +33.500000,77.800000,en +33.400000,77.800000,en +33.400000,77.900000,en +33.300000,77.900000,en +33.200000,77.800000,bn +33.300000,77.800000,en +33.300000,77.700000,en +33.200000,77.700000,bn +33.200000,77.600000,id +33.300000,77.600000,id +33.400000,77.600000,id +33.400000,77.700000,en +33.500000,77.700000,en +33.500000,77.600000,en +33.500000,77.500000,en +33.500000,77.400000,en +33.400000,77.400000,en +33.400000,77.500000,id +33.300000,77.500000,id +33.200000,77.500000,id +33.200000,77.400000,en +33.300000,77.400000,en +33.300000,77.300000,en +33.200000,77.300000,en +33.200000,77.200000,en +33.300000,77.200000,en +33.400000,77.300000,en +33.400000,77.200000,en +33.500000,77.200000,en +33.600000,77.200000,en +33.600000,77.300000,en +33.500000,77.300000,en +33.600000,77.500000,en +33.600000,77.400000,en +33.700000,77.400000,en +33.700000,77.500000,en +33.800000,77.500000,en +33.800000,77.400000,en +33.800000,77.300000,en +33.700000,77.300000,en +33.700000,77.200000,en +33.800000,77.200000,en +33.800000,77.100000,en +33.700000,77.100000,en +33.500000,77.100000,en +33.600000,77.100000,en +33.600000,77.000000,id +33.500000,77.000000,id +33.500000,76.900000,id +33.600000,76.900000,id +33.700000,76.900000,id +33.700000,77.000000,id +33.800000,77.000000,id +33.800000,76.900000,id +33.700000,76.800000,id +33.700000,76.700000,id +33.700000,76.600000,id +33.700000,76.500000,id +33.600000,76.500000,id +33.600000,76.600000,id +33.500000,76.500000,id +33.500000,76.600000,id +33.500000,76.700000,id +33.600000,76.700000,id +33.600000,76.800000,id +33.500000,76.800000,id +33.400000,76.800000,id +33.300000,76.800000,id +33.300000,76.700000,id +33.400000,76.700000,id +33.400000,76.600000,id +33.400000,76.500000,id +33.300000,76.500000,id +33.300000,76.600000,id +33.200000,76.600000,en +33.200000,76.500000,en +33.100000,76.600000,en +33.100000,76.700000,en +33.200000,76.700000,en +33.200000,76.800000,en +33.100000,76.800000,en +33.200000,77.000000,en +33.200000,76.900000,en +33.300000,76.900000,id +33.400000,76.900000,id +33.400000,77.000000,id +33.300000,77.000000,id +33.300000,77.100000,en +33.400000,77.100000,en +33.200000,77.100000,en +33.100000,77.100000,en +33.000000,77.100000,en +32.800000,77.100000,en +32.900000,77.100000,en +32.900000,77.000000,en +32.800000,77.000000,en +32.800000,76.900000,en +32.900000,76.900000,en +33.000000,76.900000,en +33.000000,77.000000,en +33.100000,77.000000,en +33.100000,76.900000,en +33.000000,76.800000,en +33.000000,76.700000,en +33.000000,76.600000,en +32.900000,76.500000,en +32.900000,76.600000,en +32.800000,76.500000,en +32.800000,76.600000,en +32.800000,76.700000,en +32.900000,76.700000,en +32.900000,76.800000,en +32.800000,76.800000,en +32.700000,76.800000,en +32.600000,76.800000,en +32.600000,76.700000,en +32.700000,76.700000,en +32.700000,76.600000,en +32.700000,76.500000,en +32.600000,76.500000,en +32.600000,76.600000,en +32.500000,76.600000,en +32.500000,76.500000,en +32.400000,76.500000,bo +32.400000,76.600000,bo +32.400000,76.700000,en +32.500000,76.700000,en +32.500000,76.800000,en +32.400000,76.800000,en +32.400000,76.900000,en +32.500000,77.000000,en +32.500000,76.900000,en +32.600000,76.900000,en +32.700000,76.900000,en +32.700000,77.000000,en +32.600000,77.000000,en +32.600000,77.100000,en +32.700000,77.100000,en +32.500000,77.100000,en +32.500000,77.200000,en +32.600000,77.200000,en +32.600000,77.300000,en +32.500000,77.300000,en +32.500000,77.400000,en +32.500000,77.500000,en +32.600000,77.500000,bn +32.600000,77.400000,en +32.700000,77.400000,en +32.700000,77.500000,bn +32.800000,77.500000,en +32.700000,77.300000,en +32.700000,77.200000,en +32.800000,77.200000,en +32.800000,77.300000,en +32.900000,77.300000,en +32.900000,77.200000,en +33.000000,77.200000,en +33.100000,77.200000,en +33.100000,77.300000,en +33.000000,77.300000,en +33.000000,77.400000,en +33.100000,77.400000,en +33.100000,77.500000,en +33.000000,77.500000,en +32.900000,77.500000,en +32.900000,77.400000,en +32.800000,77.400000,en +32.900000,77.600000,en +32.900000,77.700000,en +33.000000,77.700000,en +33.000000,77.600000,en +33.100000,77.600000,en +33.100000,77.700000,en +33.100000,77.800000,bn +33.200000,77.900000,bn +33.100000,77.900000,en +33.000000,77.900000,en +33.000000,77.800000,en +32.900000,77.800000,bn +32.900000,77.900000,bn +32.800000,77.900000,en +32.700000,77.900000,en +32.700000,77.800000,en +32.800000,77.800000,en +32.800000,77.700000,en +32.800000,77.600000,en +32.700000,77.600000,bn +32.700000,77.700000,bn +32.600000,77.700000,bn +32.600000,77.600000,bn +32.500000,77.600000,bn +32.500000,77.700000,bn +32.500000,77.800000,en +32.600000,77.800000,en +32.600000,77.900000,en +32.500000,77.900000,en +32.400000,77.900000,en +32.400000,77.800000,en +32.400000,77.700000,bn +32.400000,77.600000,bn +32.300000,77.600000,bn +32.300000,77.700000,bn +32.200000,77.600000,en +32.200000,77.700000,bn +32.200000,77.800000,en +32.300000,77.800000,en +32.300000,77.900000,en +32.200000,77.900000,en +32.100000,77.900000,en +32.100000,77.800000,en +32.000000,77.800000,en +32.000000,77.900000,en +31.900000,77.900000,en +31.800000,77.900000,en +31.800000,77.800000,en +31.900000,77.800000,en +31.900000,77.700000,en +31.800000,77.700000,en +31.800000,77.600000,en +31.900000,77.600000,en +32.000000,77.600000,en +32.000000,77.700000,en +32.100000,77.700000,bn +32.100000,77.600000,en +32.000000,77.400000,bn +32.000000,77.500000,en +31.900000,77.500000,en +31.800000,77.500000,en +31.800000,77.400000,en +31.900000,77.400000,en +31.800000,77.300000,en +32.000000,77.300000,bn +32.000000,77.200000,bn +32.100000,77.200000,bn +32.200000,77.200000,bn +32.200000,77.300000,bn +32.100000,77.300000,bn +32.100000,77.400000,bn +32.100000,77.500000,en +32.200000,77.500000,en +32.200000,77.400000,bn +32.300000,77.400000,bn +32.300000,77.500000,en +32.400000,77.500000,en +32.400000,77.400000,bn +32.400000,77.300000,bn +32.300000,77.300000,bn +32.300000,77.200000,bn +32.400000,77.200000,bn +32.400000,77.100000,bn +32.300000,77.100000,bn +32.100000,77.100000,bn +32.200000,77.100000,bn +32.200000,77.000000,bn +32.100000,77.000000,bn +32.100000,76.900000,bo +32.200000,76.900000,bo +32.300000,76.900000,en +32.300000,77.000000,bn +32.400000,77.000000,bn +32.300000,76.800000,en +32.200000,76.700000,bo +32.300000,76.700000,en +32.300000,76.600000,bo +32.300000,76.500000,bo +32.200000,76.500000,bo +32.200000,76.600000,bo +32.100000,76.600000,bo +32.100000,76.500000,bo +32.000000,76.500000,bo +32.100000,76.700000,bo +32.200000,76.800000,bo +32.100000,76.800000,bo +32.000000,76.800000,bo +31.900000,76.800000,bo +31.900000,76.700000,bo +32.000000,76.700000,bo +32.000000,76.600000,bo +31.900000,76.500000,bo +31.900000,76.600000,bo +31.800000,76.600000,bo +31.800000,76.500000,bo +31.800000,76.700000,bo +31.800000,76.800000,bo +31.800000,76.900000,bo +31.900000,76.900000,bo +32.000000,76.900000,bo +32.000000,77.000000,bn +31.900000,77.000000,en +31.900000,77.100000,en +32.000000,77.100000,bn +31.500000,76.700000,pa +31.600000,76.600000,pa +31.600000,76.500000,pa +31.500000,76.500000,pa +31.500000,76.600000,pa +31.400000,76.600000,pa +31.400000,76.500000,pa +31.300000,76.500000,pa +31.300000,76.600000,pa +31.300000,76.700000,pa +31.400000,76.700000,pa +31.400000,76.800000,pa +31.300000,76.800000,pa +31.200000,76.800000,pa +31.200000,76.700000,pa +31.200000,76.600000,pa +31.200000,76.500000,pa +31.100000,76.500000,pa +31.100000,76.600000,pa +31.000000,76.500000,pa +31.000000,76.600000,pa +31.000000,76.700000,pa +31.100000,76.700000,pa +31.100000,76.800000,pa +31.000000,76.800000,pa +31.000000,76.900000,pa +31.000000,77.000000,pa +31.100000,76.900000,pa +31.400000,77.300000,en +31.500000,77.300000,en +31.700000,77.300000,en +31.600000,77.300000,en +31.600000,77.400000,en +31.700000,77.400000,en +31.700000,77.500000,en +31.600000,77.500000,en +31.500000,77.500000,en +31.500000,77.400000,en +31.400000,77.400000,en +31.400000,77.500000,en +31.400000,77.600000,en +31.400000,77.700000,en +31.500000,77.700000,en +31.500000,77.600000,en +31.600000,77.600000,en +31.700000,77.600000,en +31.700000,77.700000,en +31.600000,77.700000,en +31.600000,77.800000,en +31.700000,77.800000,en +31.700000,77.900000,en +31.600000,77.900000,en +31.500000,77.800000,en +31.500000,77.900000,en +31.400000,77.900000,en +31.300000,77.900000,en +31.300000,77.800000,en +31.400000,77.800000,en +31.100000,77.800000,en +31.200000,77.800000,en +31.200000,77.900000,en +31.100000,77.900000,en +31.100000,78.000000,en +31.100000,78.100000,en +31.200000,78.100000,en +31.200000,78.000000,en +31.300000,78.000000,en +31.400000,78.000000,en +31.400000,78.100000,en +31.300000,78.100000,en +31.300000,78.200000,en +31.400000,78.200000,en +31.200000,78.200000,en +31.100000,78.200000,en +31.100000,78.300000,en +31.200000,78.300000,en +31.200000,78.500000,en +31.200000,78.600000,en +31.300000,78.600000,en +31.300000,78.300000,en +31.400000,78.300000,en +31.500000,78.300000,en +31.600000,78.300000,en +31.600000,78.400000,en +31.500000,78.400000,en +31.500000,78.500000,en +31.500000,78.600000,en +31.600000,78.600000,en +31.600000,78.500000,en +31.700000,78.500000,en +31.700000,78.600000,en +31.800000,78.600000,en +31.800000,78.500000,en +31.800000,78.400000,en +31.700000,78.400000,en +31.700000,78.300000,en +31.800000,78.300000,en +31.800000,78.200000,en +31.700000,78.200000,en +31.500000,78.200000,en +31.600000,78.200000,en +31.600000,78.100000,en +31.500000,78.100000,en +31.500000,78.000000,en +31.600000,78.000000,en +31.700000,78.100000,en +31.700000,78.000000,en +31.800000,78.000000,en +31.900000,78.000000,en +31.900000,78.100000,en +31.800000,78.100000,en +31.900000,78.200000,en +32.000000,78.200000,en +32.100000,78.200000,en +32.100000,78.100000,en +32.000000,78.000000,en +32.100000,78.000000,en +32.200000,78.000000,en +32.200000,78.100000,en +32.300000,78.100000,en +32.300000,78.000000,en +32.400000,78.000000,en +32.500000,78.000000,en +32.500000,78.100000,en +32.400000,78.100000,en +32.400000,78.200000,en +32.500000,78.200000,en +32.300000,78.200000,en +32.200000,78.200000,en +32.200000,78.300000,en +32.200000,78.400000,en +32.300000,78.400000,en +32.300000,78.300000,en +32.400000,78.300000,en +32.500000,78.300000,en +32.500000,78.400000,en +32.400000,78.400000,en +32.200000,78.500000,en +32.100000,78.600000,en +32.100000,78.500000,en +32.100000,78.400000,en +32.100000,78.300000,en +32.000000,78.300000,en +32.000000,78.400000,en +31.900000,78.300000,en +31.900000,78.400000,en +31.900000,78.500000,en +32.000000,78.500000,en +32.000000,78.600000,en +31.900000,78.600000,en +31.900000,78.700000,en +32.000000,78.700000,en +32.500000,78.800000,en +32.500000,78.900000,en +32.500000,79.000000,en +32.400000,79.000000,en +32.500000,79.100000,en +32.600000,79.100000,en +32.600000,79.200000,en +32.600000,79.300000,en +31.800000,78.700000,en +31.700000,78.700000,en +31.600000,78.800000,en +31.600000,78.700000,en +31.500000,78.700000,en +31.400000,78.700000,en +31.300000,78.700000,en +31.200000,78.700000,en +31.200000,78.800000,en +31.200000,78.900000,en +31.300000,79.000000,en +31.200000,79.000000,en +31.200000,79.100000,en +31.300000,79.100000,en +31.400000,79.100000,bo +31.200000,79.200000,en +31.100000,79.300000,en +31.000000,79.200000,en +31.100000,79.200000,en +31.100000,79.100000,en +31.000000,79.100000,en +30.900000,79.100000,en +30.900000,79.200000,en +31.000000,79.300000,en +30.800000,79.300000,en +30.800000,79.200000,en +30.700000,79.200000,en +30.700000,79.300000,en +30.600000,79.300000,en +30.500000,79.300000,en +30.500000,79.200000,en +30.600000,79.200000,en +30.500000,79.100000,en +30.600000,79.100000,en +30.700000,79.100000,en +30.800000,79.100000,en +30.700000,78.900000,en +30.700000,79.000000,en +30.600000,79.000000,en +30.500000,79.000000,en +30.500000,78.900000,en +30.600000,78.900000,en +30.500000,78.800000,en +30.500000,78.700000,en +30.600000,78.700000,en +30.600000,78.800000,en +30.700000,78.800000,en +30.700000,78.700000,en +30.800000,78.700000,en +30.900000,78.700000,en +30.900000,78.800000,en +30.800000,78.800000,en +30.800000,78.900000,en +30.800000,79.000000,en +30.900000,79.000000,en +30.900000,78.900000,en +31.000000,78.900000,en +31.000000,79.000000,en +31.100000,79.000000,en +31.100000,78.900000,en +31.100000,78.800000,en +31.000000,78.800000,en +31.000000,78.700000,en +31.100000,78.700000,en +31.100000,78.600000,en +31.100000,78.500000,en +31.000000,78.500000,en +31.000000,78.600000,en +30.900000,78.600000,en +30.800000,78.600000,en +30.800000,78.500000,en +30.900000,78.500000,en +30.900000,78.400000,en +30.800000,78.400000,en +30.800000,78.300000,en +30.900000,78.300000,en +31.000000,78.300000,en +31.000000,78.400000,en +31.100000,78.400000,en +31.000000,78.200000,en +31.000000,78.100000,en +31.000000,78.000000,en +30.900000,78.000000,en +30.900000,78.100000,en +30.800000,78.000000,en +30.800000,78.100000,en +30.800000,78.200000,en +30.900000,78.200000,en +30.600000,78.200000,bo +30.700000,78.200000,en +30.700000,78.100000,en +30.600000,78.000000,bo +30.600000,78.100000,bo +30.500000,78.100000,bo +30.500000,78.000000,bo +30.400000,78.000000,bo +30.400000,78.100000,bo +30.400000,78.200000,bo +30.500000,78.200000,bo +30.400000,78.300000,bo +30.400000,78.400000,en +30.500000,78.400000,en +30.500000,78.300000,bo +30.600000,78.300000,bo +30.700000,78.300000,en +30.700000,78.400000,en +30.600000,78.400000,en +30.600000,78.500000,en +30.700000,78.500000,en +30.700000,78.600000,en +30.600000,78.600000,en +30.500000,78.600000,en +30.500000,78.500000,en +30.400000,78.500000,en +30.400000,78.600000,en +30.300000,78.500000,es +30.100000,78.500000,es +30.200000,78.500000,es +30.100000,78.400000,es +30.100000,78.300000,es +30.200000,78.300000,es +30.200000,78.400000,es +30.300000,78.400000,es +30.300000,78.300000,es +30.200000,78.200000,es +30.300000,78.200000,es +30.300000,78.100000,bo +30.300000,78.000000,bo +30.200000,78.000000,bo +30.200000,78.100000,es +30.100000,78.100000,es +30.000000,78.100000,es +30.000000,78.200000,es +30.100000,78.200000,es +29.900000,78.200000,es +29.900000,78.100000,es +29.900000,78.300000,es +30.000000,78.300000,es +30.000000,78.400000,es +29.900000,78.400000,es +29.900000,78.500000,es +30.000000,78.500000,es +29.700000,78.700000,en +29.800000,78.700000,en +29.800000,78.800000,en +29.700000,78.800000,en +29.700000,78.900000,en +29.700000,79.000000,en +29.800000,79.000000,en +29.800000,78.900000,en +30.400000,78.700000,en +30.400000,78.800000,en +30.300000,78.800000,en +30.300000,78.900000,en +30.400000,78.900000,en +30.400000,79.000000,en +30.300000,79.000000,en +30.300000,79.100000,en +30.400000,79.100000,en +30.300000,79.200000,en +30.400000,79.200000,en +30.400000,79.300000,en +30.300000,79.300000,en +30.200000,79.300000,en +29.800000,79.100000,en +29.800000,79.200000,en +29.700000,79.300000,en +29.700000,79.200000,en +29.600000,79.200000,en +29.600000,79.300000,en +29.500000,79.300000,en +29.400000,79.300000,en +29.400000,79.200000,en +29.500000,79.200000,en +29.400000,79.100000,en +29.500000,79.100000,en +29.600000,79.100000,en +29.700000,79.100000,en +29.600000,79.000000,en +29.600000,78.900000,en +29.600000,78.800000,en +29.600000,78.700000,en +29.500000,78.700000,en +29.500000,78.800000,en +29.400000,78.700000,en +29.400000,78.800000,en +29.400000,78.900000,en +29.500000,78.900000,en +29.500000,79.000000,en +29.400000,79.000000,en +29.300000,79.100000,en +29.300000,79.200000,en +29.300000,79.300000,en +28.300000,78.800000,id +28.300000,78.700000,id +28.400000,78.700000,id +28.400000,78.800000,id +28.500000,78.800000,id +28.500000,78.700000,id +28.600000,78.700000,id +28.600000,78.800000,id +28.600000,78.400000,id +28.600000,78.500000,id +28.600000,78.600000,id +28.500000,78.600000,id +28.500000,78.500000,id +28.400000,78.500000,id +28.400000,78.600000,id +28.300000,78.600000,id +28.200000,78.600000,id +28.200000,78.500000,id +28.300000,78.500000,id +28.300000,78.400000,id +28.200000,78.400000,id +28.200000,78.300000,id +28.300000,78.300000,id +28.400000,78.300000,id +28.400000,78.400000,id +28.500000,78.400000,id +28.400000,78.200000,id +28.200000,78.200000,id +28.300000,78.200000,id +28.300000,78.100000,id +28.200000,78.100000,id +28.400000,78.100000,id +29.600000,77.900000,ur +29.500000,77.800000,ur +29.500000,77.900000,ur +29.500000,77.700000,ur +29.500000,77.600000,ur +29.500000,77.500000,ur +28.600000,77.700000,ko +28.600000,77.600000,ko +28.500000,77.600000,ko +28.500000,77.700000,ko +28.300000,77.700000,ko +28.200000,77.700000,ko +28.200000,77.600000,ko +28.300000,77.600000,ko +28.400000,77.700000,ko +28.400000,77.600000,ko +28.400000,77.500000,ko +28.400000,77.400000,ru +28.300000,77.400000,ru +28.300000,77.500000,ko +28.200000,77.500000,ko +28.100000,77.400000,pt +28.200000,77.400000,ko +28.200000,77.300000,ja +28.100000,77.300000,pt +28.100000,77.200000,pt +28.200000,77.200000,ja +28.300000,77.200000,ja +28.300000,77.300000,ja +28.400000,77.300000,ru +28.400000,77.200000,ja +28.500000,77.200000,ru +28.600000,77.200000,ru +28.600000,77.300000,ru +28.500000,77.300000,ru +28.500000,77.400000,ru +28.500000,77.500000,ko +28.600000,77.500000,ko +28.600000,77.400000,ru +28.700000,77.400000,ru +28.800000,77.400000,ru +28.800000,77.300000,ru +28.700000,77.300000,ru +28.700000,77.200000,ru +28.800000,77.200000,ru +28.700000,77.100000,ru +28.700000,77.000000,ru +28.700000,76.900000,ja +28.600000,76.900000,ja +28.600000,77.000000,ja +28.500000,76.900000,ja +28.500000,77.000000,ja +28.500000,77.100000,ja +28.600000,77.100000,ru +28.400000,77.100000,ja +28.300000,77.100000,ja +28.100000,77.100000,pt +28.200000,77.100000,ja +28.200000,77.000000,ja +28.100000,77.000000,pt +28.200000,76.900000,ja +28.300000,76.900000,ja +28.300000,77.000000,ja +28.400000,77.000000,ja +28.400000,76.900000,ja +28.300000,76.700000,ja +28.300000,76.800000,ja +28.200000,76.800000,ja +28.100000,76.800000,ja +28.100000,76.700000,ja +28.200000,76.700000,ja +28.100000,76.600000,ja +28.100000,76.500000,ja +28.200000,76.500000,ja +28.200000,76.600000,ja +28.300000,76.600000,ja +28.300000,76.500000,ja +28.500000,76.600000,pt +28.400000,76.700000,ja +28.400000,76.800000,ja +28.500000,76.800000,ja +28.500000,76.700000,ja +28.600000,76.700000,ja +28.600000,76.800000,ja +28.700000,76.800000,pt +28.700000,76.700000,pt +28.700000,76.600000,pt +28.600000,76.600000,pt +28.600000,76.500000,pt +28.700000,76.500000,pt +28.800000,76.500000,pt +28.800000,76.600000,pt +28.900000,76.600000,pt +28.900000,76.500000,pt +29.000000,76.500000,pt +29.000000,76.600000,pt +29.000000,76.700000,pt +29.000000,76.800000,pt +28.900000,76.800000,pt +28.900000,76.700000,pt +28.800000,76.700000,pt +28.800000,76.800000,pt +28.800000,76.900000,pt +28.900000,76.900000,pt +28.900000,77.000000,pt +28.800000,77.000000,ru +28.800000,77.100000,ru +29.000000,76.900000,pt +29.300000,76.900000,id +29.400000,76.900000,id +29.500000,76.900000,id +29.400000,76.700000,id +29.400000,76.800000,id +29.300000,76.800000,id +29.300000,76.700000,id +29.300000,76.500000,id +29.300000,76.600000,id +29.400000,76.600000,id +29.400000,76.500000,id +29.500000,76.500000,id +29.600000,76.500000,id +29.600000,76.600000,id +29.500000,76.600000,id +29.500000,76.700000,id +29.500000,76.800000,id +29.600000,76.800000,id +29.600000,76.700000,id +29.700000,76.700000,id +29.700000,76.800000,id +29.800000,76.800000,it +29.800000,76.700000,it +29.800000,76.600000,it +29.700000,76.600000,id +29.700000,76.500000,id +29.800000,76.500000,it +29.900000,76.500000,it +29.900000,76.600000,it +30.000000,76.600000,it +30.000000,76.500000,it +30.100000,76.500000,pa +30.200000,76.600000,pa +30.100000,76.600000,pa +30.100000,76.700000,pa +30.200000,76.700000,pa +30.200000,76.800000,pa +30.100000,76.800000,it +30.000000,76.800000,it +30.000000,76.700000,it +29.900000,76.700000,it +29.900000,76.800000,it +29.900000,76.900000,it +29.900000,77.000000,mr +30.000000,77.000000,it +30.000000,76.900000,it +30.100000,76.900000,mr +30.200000,76.900000,it +30.200000,77.000000,it +30.100000,77.000000,it +30.100000,77.100000,it +30.200000,77.100000,it +30.000000,77.100000,it +29.900000,77.100000,mr +29.800000,76.900000,it +29.700000,76.900000,id +29.600000,76.900000,id +29.900000,77.500000,ur +29.800000,77.500000,ur +29.700000,77.500000,ur +29.600000,77.500000,ur +29.600000,77.600000,ur +29.700000,77.600000,ur +29.700000,77.700000,ur +29.600000,77.700000,ur +29.600000,77.800000,ur +29.700000,77.900000,ur +29.700000,77.800000,ur +29.800000,77.800000,ur +29.800000,77.900000,ur +29.900000,77.900000,ur +29.900000,77.800000,ur +29.900000,77.700000,ur +29.800000,77.700000,ur +29.800000,77.600000,ur +29.900000,77.600000,ur +30.200000,77.900000,bo +30.300000,77.900000,bo +30.000000,77.200000,it +30.100000,77.200000,it +30.200000,77.200000,it +30.300000,77.200000,it +30.300000,77.300000,sr +30.400000,77.300000,sr +30.400000,77.200000,sr +30.500000,77.200000,sr +30.600000,77.200000,sr +30.600000,77.300000,sr +30.500000,77.300000,sr +30.500000,77.400000,sr +30.600000,77.400000,sr +30.600000,77.500000,sr +30.500000,77.500000,sr +30.400000,77.500000,sr +30.400000,77.400000,sr +30.300000,77.400000,sr +30.300000,77.500000,sr +30.400000,77.900000,bo +30.500000,77.900000,bo +30.600000,77.900000,bo +30.800000,77.900000,en +30.900000,77.900000,en +31.000000,77.900000,en +31.000000,77.800000,en +30.700000,77.500000,sr +30.700000,77.400000,sr +30.700000,77.300000,sr +30.700000,77.200000,sr +30.900000,77.000000,pa +30.900000,76.900000,pa +30.800000,76.900000,pa +30.800000,77.000000,pa +30.700000,77.000000,pa +30.700000,76.900000,pa +30.600000,76.900000,pa +30.700000,77.100000,sr +30.600000,77.100000,sr +30.500000,77.100000,sr +30.300000,77.100000,it +30.400000,77.100000,sr +30.400000,77.000000,pa +30.300000,77.000000,it +30.300000,76.900000,pa +30.400000,76.900000,pa +30.500000,76.900000,pa +30.500000,77.000000,pa +30.600000,77.000000,pa +30.500000,76.800000,pa +30.500000,76.700000,pa +30.400000,76.700000,pa +30.400000,76.800000,pa +30.300000,76.800000,pa +30.300000,76.700000,pa +30.300000,76.600000,pa +30.200000,76.500000,pa +30.300000,76.500000,pa +30.400000,76.500000,pa +30.400000,76.600000,pa +30.500000,76.600000,pa +30.500000,76.500000,pa +30.600000,76.500000,pa +30.700000,76.500000,pa +30.700000,76.600000,pa +30.600000,76.600000,pa +30.600000,76.700000,pa +30.600000,76.800000,pa +30.700000,76.800000,pa +30.700000,76.700000,pa +30.800000,76.700000,pa +30.800000,76.800000,pa +30.900000,76.800000,pa +30.900000,76.700000,pa +30.900000,76.600000,pa +30.800000,76.600000,pa +30.800000,76.500000,pa +30.900000,76.500000,pa +30.900000,76.400000,pa +30.800000,76.400000,pa +30.800000,76.300000,pa +30.800000,76.200000,pa +30.800000,76.100000,pa +30.700000,76.100000,pa +30.700000,76.200000,pa +30.600000,76.100000,pa +30.600000,76.200000,pa +30.600000,76.300000,pa +30.700000,76.300000,pa +30.700000,76.400000,pa +30.600000,76.400000,pa +30.500000,76.400000,pa +30.500000,76.300000,pa +30.400000,76.300000,pa +30.400000,76.400000,pa +30.300000,76.400000,pa +30.200000,76.400000,pa +30.200000,76.300000,pa +30.300000,76.300000,pa +30.300000,76.200000,pa +30.200000,76.200000,pa +30.200000,76.100000,pa +30.300000,76.100000,pa +30.400000,76.100000,pa +30.400000,76.200000,pa +30.500000,76.200000,pa +30.500000,76.100000,pa +30.500000,76.000000,pa +30.400000,75.900000,pa +30.400000,76.000000,pa +30.300000,76.000000,pa +30.200000,76.000000,pa +30.200000,75.900000,pa +30.300000,75.900000,pa +30.200000,75.800000,pa +30.300000,75.800000,pa +30.400000,75.800000,pa +30.500000,75.800000,pa +30.600000,75.800000,pa +30.500000,75.900000,pa +30.600000,76.000000,pa +30.600000,75.900000,pa +30.700000,75.900000,pa +30.700000,76.000000,pa +30.800000,76.000000,pa +30.800000,75.900000,pa +30.700000,75.800000,pa +30.800000,75.800000,pa +30.800000,75.700000,pa +30.800000,75.600000,pa +30.700000,75.600000,pa +30.700000,75.700000,pa +30.600000,75.700000,pa +30.500000,75.700000,pa +30.500000,75.600000,pa +30.600000,75.600000,pa +30.600000,75.500000,pa +30.500000,75.500000,pa +30.500000,75.400000,pa +30.600000,75.400000,pa +30.700000,75.400000,pa +30.700000,75.500000,pa +30.800000,75.500000,pa +30.700000,75.300000,pa +30.600000,75.200000,pa +30.700000,75.200000,pa +30.700000,75.100000,pa +30.700000,75.000000,pa +30.600000,75.000000,pa +30.600000,75.100000,pa +30.500000,75.100000,pa +30.500000,75.000000,pa +30.400000,75.000000,pa +30.500000,75.200000,pa +30.600000,75.300000,pa +30.500000,75.300000,pa +30.400000,75.300000,pa +30.300000,75.300000,pa +30.300000,75.200000,pa +30.400000,75.200000,pa +30.400000,75.100000,pa +30.300000,75.000000,pa +30.300000,75.100000,pa +30.200000,75.100000,pa +30.200000,75.000000,pa +30.100000,75.000000,pa +30.100000,75.100000,pa +30.100000,75.200000,pa +30.200000,75.200000,pa +30.200000,75.300000,pa +30.100000,75.300000,pa +30.100000,75.400000,pa +30.100000,75.500000,pa +30.200000,75.500000,pa +30.200000,75.400000,pa +30.300000,75.400000,pa +30.400000,75.400000,pa +30.400000,75.500000,pa +30.300000,75.500000,pa +30.300000,75.600000,pa +30.400000,75.600000,pa +30.400000,75.700000,pa +30.300000,75.700000,pa +30.200000,75.700000,pa +30.200000,75.600000,pa +30.100000,75.600000,pa +30.100000,75.700000,pa +30.000000,75.600000,pa +30.000000,75.700000,pa +29.900000,75.700000,pa +29.800000,75.700000,pa +29.800000,75.600000,pa +29.900000,75.600000,pa +29.900000,75.500000,pa +29.800000,75.500000,pa +29.800000,75.400000,pa +29.900000,75.400000,pa +30.000000,75.500000,pa +30.000000,75.400000,pa +30.000000,75.300000,pa +29.900000,75.300000,pa +29.900000,75.200000,pa +30.000000,75.200000,pa +30.000000,75.100000,pa +30.000000,75.000000,pa +29.900000,75.000000,pa +29.900000,75.100000,pa +29.800000,75.100000,pa +29.800000,75.000000,pa +29.700000,75.000000,pa +29.700000,75.100000,pa +29.700000,75.200000,pa +29.800000,75.200000,pa +29.800000,75.300000,pa +29.700000,75.300000,pa +29.600000,75.300000,pa +29.600000,75.200000,pa +29.600000,75.100000,pa +29.600000,75.000000,id +29.500000,75.000000,id +29.500000,75.100000,pa +29.400000,75.000000,id +29.400000,75.100000,id +29.400000,75.200000,id +29.500000,75.200000,id +29.500000,75.300000,id +29.400000,75.300000,id +29.400000,75.400000,id +29.400000,75.500000,id +29.500000,75.500000,id +29.500000,75.400000,id +29.600000,75.400000,id +29.700000,75.400000,pa +29.700000,75.500000,pa +29.600000,75.500000,pa +29.600000,75.600000,pa +29.700000,75.600000,pa +29.700000,75.700000,pa +29.600000,75.700000,pa +29.500000,75.600000,id +29.400000,75.600000,id +29.600000,75.900000,pa +29.600000,76.000000,pa +29.700000,76.000000,pa +29.700000,75.900000,pa +29.600000,75.800000,pa +29.700000,75.800000,pa +29.800000,75.800000,pa +29.900000,75.800000,pa +30.000000,75.800000,pa +30.100000,75.800000,pa +30.000000,75.900000,pa +30.100000,75.900000,pa +30.100000,76.000000,pa +30.000000,76.000000,pa +29.900000,76.000000,pa +29.900000,75.900000,pa +29.800000,75.900000,id +29.800000,76.000000,pa +29.800000,76.100000,pa +29.800000,76.200000,pa +29.900000,76.200000,pa +29.900000,76.100000,pa +30.000000,76.100000,pa +30.100000,76.100000,pa +30.100000,76.200000,pa +30.000000,76.200000,pa +30.000000,76.300000,pa +30.100000,76.300000,pa +30.100000,76.400000,pa +30.000000,76.400000,pa +29.900000,76.300000,pa +29.900000,76.400000,it +29.800000,76.400000,it +29.700000,76.300000,pa +29.800000,76.300000,pa +29.700000,76.100000,pa +29.700000,76.200000,pa +29.600000,76.200000,pa +29.600000,76.100000,id +29.600000,76.300000,pa +29.300000,76.000000,pt +29.300000,75.900000,pt +29.300000,75.800000,pt +29.200000,75.800000,pt +29.100000,75.800000,pt +29.100000,75.900000,pt +29.200000,75.900000,pt +29.200000,76.000000,pt +29.100000,76.000000,pt +29.000000,76.000000,pt +28.900000,76.000000,pt +28.900000,75.900000,pt +29.000000,75.900000,pt +29.000000,75.800000,pt +28.900000,75.800000,pt +28.800000,76.200000,pt +29.000000,76.200000,pt +28.900000,76.200000,pt +28.900000,76.300000,pt +29.000000,76.300000,pt +29.000000,76.400000,pt +28.900000,76.400000,pt +28.800000,76.300000,pt +28.800000,76.400000,pt +28.700000,76.400000,pt +28.600000,76.400000,pt +28.600000,76.300000,pt +28.700000,76.300000,pt +28.700000,76.200000,pt +28.600000,76.200000,pt +28.300000,76.400000,ja +28.200000,76.300000,ja +28.200000,76.400000,ja +28.100000,76.400000,ja +28.000000,76.400000,ja +28.000000,76.300000,ja +28.100000,76.300000,ja +28.100000,76.200000,ja +28.000000,76.200000,ja +28.200000,76.200000,ja +28.900000,75.600000,pt +28.900000,75.700000,pt +29.000000,75.700000,pt +29.000000,75.600000,pt +29.100000,75.700000,pt +29.100000,75.600000,pt +29.200000,75.600000,pt +29.200000,75.700000,pt +29.300000,75.700000,pt +29.300000,75.600000,pt +29.000000,74.300000,en +28.900000,74.300000,en +28.800000,74.300000,en +28.700000,74.300000,en +28.600000,74.300000,en +28.400000,74.200000,en +28.300000,74.100000,en +28.400000,74.100000,en +28.400000,74.000000,en +28.400000,73.900000,en +28.300000,73.900000,en +28.300000,74.000000,en +28.200000,74.000000,en +28.200000,73.900000,en +28.100000,73.900000,en +28.100000,74.000000,en +28.200000,74.100000,en +28.300000,74.200000,en +28.200000,74.200000,en +28.100000,74.200000,en +28.100000,74.100000,en +28.000000,74.100000,en +28.000000,74.200000,en +28.000000,74.000000,en +28.000000,73.900000,en +28.000000,73.800000,en +28.100000,73.800000,en +28.200000,73.800000,en +28.300000,73.800000,en +28.400000,73.800000,en +28.400000,73.700000,en +28.400000,73.600000,en +28.400000,73.500000,en +28.500000,73.600000,en +28.500000,73.500000,en +28.600000,73.500000,en +28.700000,73.500000,en +28.700000,73.600000,en +28.600000,73.600000,en +28.700000,73.700000,en +28.700000,73.800000,en +28.600000,73.800000,en +28.600000,73.700000,en +28.500000,73.700000,en +28.500000,73.800000,en +28.500000,73.900000,en +28.600000,73.900000,en +28.600000,74.000000,en +28.500000,74.000000,en +28.500000,74.100000,en +28.500000,74.200000,en +28.600000,74.200000,en +28.600000,74.100000,en +28.700000,74.100000,en +28.700000,74.200000,en +28.800000,74.200000,en +28.800000,74.100000,en +28.800000,74.000000,en +28.700000,74.000000,en +28.700000,73.900000,en +28.800000,73.900000,en +28.900000,73.900000,en +29.000000,74.000000,en +28.900000,74.000000,en +28.900000,74.100000,en +28.900000,74.200000,en +29.000000,74.200000,en +29.000000,74.100000,en +29.000000,73.900000,en +29.000000,73.700000,en +28.900000,73.800000,en +28.800000,73.800000,en +28.800000,73.700000,en +28.900000,73.700000,en +28.900000,73.600000,en +28.800000,73.600000,en +28.800000,73.500000,en +28.900000,73.500000,en +29.000000,73.500000,en +29.000000,73.600000,en +29.500000,73.500000,en +29.600000,73.500000,en +29.700000,73.500000,en +29.800000,73.500000,en +29.800000,73.600000,en +29.900000,74.000000,pa +29.900000,74.100000,pa +29.900000,74.200000,pa +29.400000,74.900000,id +29.400000,74.800000,id +29.500000,74.800000,id +29.500000,74.900000,id +29.600000,74.900000,id +29.600000,74.800000,id +29.700000,74.600000,pa +29.800000,74.600000,pa +29.800000,74.700000,pa +29.700000,74.700000,pa +29.700000,74.800000,pa +29.700000,74.900000,pa +29.800000,74.900000,pa +29.800000,74.800000,pa +29.900000,74.800000,pa +29.900000,74.900000,pa +30.000000,74.900000,pa +30.000000,74.800000,pa +29.900000,74.700000,pa +29.900000,74.600000,pa +29.900000,74.500000,pa +29.800000,74.500000,pa +29.700000,74.500000,pa +29.800000,74.300000,pa +29.800000,74.400000,pa +29.900000,74.400000,pa +29.900000,74.300000,pa +30.000000,74.300000,pa +30.000000,74.400000,pa +30.100000,74.400000,pa +30.100000,74.300000,pa +30.200000,74.300000,pa +30.300000,74.300000,pa +30.300000,74.400000,pa +30.200000,74.400000,pa +30.300000,74.500000,pa +30.200000,74.500000,pa +30.100000,74.500000,pa +30.000000,74.500000,pa +30.000000,74.600000,pa +30.100000,74.600000,pa +30.100000,74.700000,pa +30.000000,74.700000,pa +30.100000,74.900000,pa +30.100000,74.800000,pa +30.200000,74.800000,pa +30.200000,74.900000,pa +30.300000,74.900000,pa +30.300000,74.800000,pa +30.300000,74.700000,pa +30.200000,74.700000,pa +30.200000,74.600000,pa +30.300000,74.600000,pa +30.400000,74.600000,pa +30.500000,74.600000,pa +30.500000,74.700000,pa +30.400000,74.700000,pa +30.400000,74.800000,pa +30.400000,74.900000,pa +30.500000,74.900000,pa +30.500000,74.800000,pa +30.600000,74.800000,pa +30.600000,74.900000,pa +30.700000,74.900000,pa +30.700000,74.800000,pa +30.700000,74.700000,pa +30.600000,74.700000,pa +30.600000,74.600000,pa +30.700000,74.600000,pa +30.600000,74.500000,pa +30.500000,74.500000,pa +30.400000,74.500000,pa +30.400000,74.400000,pa +30.400000,74.300000,pa +30.500000,74.300000,pa +30.500000,74.400000,pa +30.600000,74.400000,pa +30.600000,74.300000,pa +30.600000,74.200000,pa +30.500000,74.200000,pa +30.500000,74.100000,pa +30.600000,74.100000,pa +30.500000,74.000000,en +30.400000,74.000000,pa +30.300000,74.000000,pa +30.300000,74.100000,pa +30.400000,74.100000,pa +30.400000,74.200000,pa +30.300000,74.200000,pa +30.200000,74.100000,pa +30.200000,74.200000,pa +30.100000,74.200000,pa +30.000000,74.200000,pa +30.000000,74.100000,pa +30.100000,74.100000,pa +30.000000,74.000000,pa +29.900000,73.900000,pa +30.000000,73.900000,en +30.100000,73.900000,en +30.100000,74.000000,pa +30.200000,74.000000,pa +30.000000,73.800000,en +29.900000,73.800000,en +29.900000,73.700000,en +30.000000,73.700000,en +30.000000,73.600000,en +29.900000,73.600000,en +29.900000,73.500000,en +30.000000,73.500000,en +31.700000,74.500000,ur +31.800000,74.600000,hi +31.800000,74.700000,pa +31.900000,74.700000,en +31.900000,74.600000,en +32.000000,74.900000,en +31.900000,74.900000,pa +31.900000,74.800000,pa +31.800000,74.800000,pa +31.800000,74.900000,pa +31.700000,74.900000,pa +31.700000,74.800000,pa +31.700000,74.700000,pa +31.700000,74.600000,hi +31.600000,74.600000,hi +31.600000,74.700000,pa +31.500000,74.600000,hi +31.500000,74.700000,pa +31.500000,74.800000,pa +31.600000,74.800000,pa +31.600000,74.900000,pa +31.500000,74.900000,pa +31.400000,74.900000,pa +31.400000,74.800000,pa +31.300000,74.800000,pa +31.300000,74.900000,pa +31.200000,74.900000,pa +31.100000,74.900000,pa +31.100000,74.800000,pa +31.200000,74.800000,pa +31.200000,74.700000,pa +31.100000,74.700000,pa +31.100000,74.600000,en +31.200000,74.600000,en +31.300000,74.600000,hi +31.300000,74.700000,pa +31.400000,74.700000,pa +31.400000,74.600000,hi +31.200000,74.500000,hi +31.000000,74.500000,en +30.900000,74.500000,en +30.900000,74.400000,en +30.800000,74.400000,pa +30.800000,74.300000,en +30.700000,74.300000,pa +30.700000,74.400000,pa +30.800000,74.500000,pa +30.700000,74.500000,pa +30.800000,74.700000,pa +30.800000,74.600000,pa +30.900000,74.600000,pa +31.000000,74.600000,pa +31.000000,74.700000,pa +30.900000,74.700000,pa +31.000000,74.800000,pa +31.000000,74.900000,pa +30.900000,74.900000,pa +30.900000,74.800000,pa +30.800000,74.800000,pa +30.800000,74.900000,pa +30.800000,75.000000,pa +30.900000,75.000000,pa +30.900000,75.100000,pa +30.800000,75.100000,pa +30.800000,75.200000,pa +30.800000,75.300000,pa +30.900000,75.300000,pa +30.900000,75.200000,pa +31.000000,75.200000,pa +31.000000,75.300000,pa +31.100000,75.300000,pa +31.100000,75.200000,pa +31.100000,75.100000,pa +31.000000,75.100000,pa +31.000000,75.000000,pa +31.100000,75.000000,pa +31.200000,75.100000,pa +31.200000,75.000000,pa +31.300000,75.000000,pa +31.400000,75.000000,pa +31.400000,75.100000,pa +31.300000,75.100000,pa +31.400000,75.200000,pa +31.500000,75.300000,pa +31.400000,75.300000,pa +31.300000,75.300000,pa +31.300000,75.200000,pa +31.200000,75.200000,pa +31.200000,75.300000,pa +31.200000,75.400000,pa +31.200000,75.500000,pa +31.300000,75.500000,pa +31.300000,75.400000,pa +31.400000,75.400000,pa +31.500000,75.400000,pa +31.500000,75.500000,pa +31.400000,75.500000,pa +31.400000,75.600000,pa +31.500000,75.600000,pa +31.500000,75.700000,pa +31.400000,75.700000,pa +31.300000,75.700000,pa +31.300000,75.600000,pa +31.200000,75.600000,pa +31.200000,75.700000,pa +31.100000,75.700000,pa +31.000000,75.600000,pa +31.100000,75.600000,pa +31.100000,75.500000,pa +31.100000,75.400000,pa +31.000000,75.400000,pa +31.000000,75.500000,pa +30.900000,75.500000,pa +30.900000,75.400000,pa +30.800000,75.400000,pa +30.900000,75.600000,pa +31.000000,75.700000,pa +30.900000,75.700000,pa +30.900000,75.800000,pa +31.000000,75.800000,pa +31.100000,75.800000,pa +31.100000,75.900000,pa +31.200000,75.900000,pa +31.200000,76.000000,pa +31.100000,76.000000,pa +31.000000,76.000000,pa +31.000000,75.900000,pa +30.900000,75.900000,pa +30.900000,76.000000,pa +30.900000,76.100000,pa +31.000000,76.100000,pa +31.000000,76.200000,pa +30.900000,76.200000,pa +30.900000,76.300000,pa +31.000000,76.400000,pa +31.000000,76.300000,pa +31.100000,76.300000,pa +31.100000,76.400000,pa +31.200000,76.400000,pa +31.200000,76.300000,pa +31.200000,76.200000,pa +31.100000,76.200000,pa +31.100000,76.100000,pa +31.200000,76.100000,pa +31.300000,76.100000,pa +31.400000,76.100000,pa +31.400000,76.200000,pa +31.300000,76.200000,pa +31.300000,76.300000,pa +31.300000,76.400000,pa +31.400000,76.400000,pa +31.400000,76.300000,pa +31.500000,76.300000,pa +31.500000,76.400000,pa +31.600000,76.400000,pa +31.600000,76.300000,pa +31.600000,76.200000,pa +31.500000,76.200000,pa +31.500000,76.100000,pa +31.500000,76.000000,pa +31.500000,75.900000,pa +31.400000,75.900000,pa +31.400000,76.000000,pa +31.300000,76.000000,pa +31.300000,75.900000,pa +31.200000,75.800000,pa +31.300000,75.800000,pa +31.400000,75.800000,pa +31.500000,75.800000,pa +31.600000,75.800000,pa +31.700000,75.800000,pa +31.800000,75.800000,pa +31.900000,75.800000,pa +31.800000,75.900000,pa +31.900000,75.900000,pa +31.900000,76.000000,pa +31.800000,76.000000,ar +31.700000,76.000000,pa +31.700000,75.900000,pa +31.600000,75.900000,pa +31.600000,76.000000,pa +31.600000,76.100000,pa +31.700000,76.100000,pa +31.700000,76.200000,pa +31.800000,76.400000,pa +31.800000,76.300000,pa +31.900000,76.400000,pa +31.900000,76.300000,pa +31.900000,76.200000,ar +31.800000,76.200000,ar +31.800000,76.100000,pa +31.900000,76.100000,pa +32.000000,76.100000,bo +32.100000,76.100000,bo +32.100000,76.200000,bo +32.000000,76.200000,bo +32.000000,76.300000,bo +32.000000,76.400000,bo +32.100000,76.400000,bo +32.100000,76.300000,bo +32.200000,76.300000,bo +32.200000,76.400000,bo +32.300000,76.400000,bo +32.300000,76.300000,bo +32.300000,76.200000,bo +32.200000,76.200000,bo +32.200000,76.100000,bo +32.300000,76.100000,bo +32.200000,75.900000,pa +32.200000,76.000000,pa +32.100000,76.000000,pa +32.000000,76.000000,pa +32.000000,75.900000,pa +32.100000,75.900000,pa +32.000000,75.800000,pa +32.100000,75.800000,pa +32.200000,75.800000,pa +32.200000,75.700000,pa +32.100000,75.700000,pa +32.100000,75.600000,pa +32.200000,75.600000,pa +32.200000,75.500000,pa +32.200000,75.400000,en +32.100000,75.400000,pa +32.100000,75.500000,pa +32.000000,75.500000,pa +32.000000,75.400000,pa +31.900000,75.400000,pa +31.900000,75.500000,pa +31.900000,75.600000,pa +32.000000,75.600000,pa +32.000000,75.700000,pa +31.900000,75.700000,pa +31.800000,75.600000,pa +31.800000,75.700000,pa +31.700000,75.700000,pa +31.600000,75.700000,pa +31.600000,75.600000,it +31.700000,75.600000,it +31.700000,75.500000,pa +31.600000,75.500000,it +31.600000,75.400000,pa +31.700000,75.400000,pa +31.800000,75.500000,pa +31.800000,75.400000,pa +31.800000,75.300000,pa +31.800000,75.200000,pa +31.700000,75.200000,pa +31.700000,75.300000,pa +31.600000,75.300000,pa +31.500000,75.200000,pa +31.600000,75.200000,pa +31.600000,75.100000,pa +31.500000,75.100000,pa +31.500000,75.000000,pa +31.600000,75.000000,pa +31.700000,75.000000,pa +31.700000,75.100000,pa +31.800000,75.100000,pa +31.800000,75.000000,pa +31.900000,75.000000,pa +32.000000,75.100000,pa +31.900000,75.100000,pa +31.900000,75.200000,pa +31.900000,75.300000,pa +32.000000,75.300000,pa +32.000000,75.200000,pa +32.100000,75.200000,en +32.100000,75.300000,pa +32.200000,75.300000,en +32.000000,75.000000,en +32.400000,75.200000,en +32.400000,75.300000,en +32.500000,75.300000,en +32.500000,75.200000,en +32.500000,75.100000,en +32.500000,75.000000,en +32.600000,75.000000,ur +32.600000,75.100000,ur +32.700000,75.100000,ur +32.700000,75.000000,ur +32.800000,75.000000,ur +32.800000,75.100000,ur +32.800000,75.200000,ta +32.900000,75.200000,ta +32.900000,75.300000,ur +32.800000,75.300000,ta +32.700000,75.300000,ta +32.700000,75.200000,ta +32.600000,75.200000,ur +32.600000,75.300000,en +32.600000,75.400000,en +32.600000,75.500000,en +32.700000,75.500000,en +32.700000,75.400000,en +32.800000,75.400000,en +32.900000,75.400000,ur +32.900000,75.500000,ur +32.800000,75.500000,en +32.800000,75.600000,en +32.900000,75.600000,ur +32.900000,75.700000,ur +32.800000,75.700000,en +32.700000,75.600000,en +32.700000,75.700000,en +32.600000,75.700000,en +32.500000,75.700000,pa +32.500000,75.600000,pa +32.600000,75.600000,en +32.500000,75.400000,en +32.500000,75.500000,pa +32.400000,75.500000,pa +32.400000,75.400000,en +32.300000,75.400000,en +32.300000,75.500000,pa +32.300000,75.600000,pa +32.400000,75.600000,pa +32.400000,75.700000,pa +32.300000,75.700000,pa +32.300000,75.800000,pa +32.400000,75.800000,pa +32.500000,75.800000,pa +32.600000,75.800000,en +32.500000,75.900000,en +32.600000,75.900000,en +32.600000,76.000000,en +32.500000,76.000000,en +32.400000,76.000000,en +32.300000,76.000000,en +32.400000,76.100000,bo +32.400000,76.200000,bo +32.400000,76.300000,bo +32.400000,76.400000,bo +32.500000,76.400000,en +32.500000,76.300000,en +32.600000,76.400000,en +32.600000,76.300000,en +32.600000,76.200000,en +32.500000,76.200000,en +32.500000,76.100000,en +32.600000,76.100000,en +32.700000,76.100000,en +32.800000,76.100000,en +32.800000,76.200000,en +32.700000,76.200000,en +32.700000,76.300000,en +32.700000,76.400000,en +32.800000,76.400000,en +32.800000,76.300000,en +32.900000,76.300000,en +32.900000,76.400000,en +33.000000,76.400000,en +33.000000,76.300000,en +33.000000,76.200000,en +32.900000,76.200000,en +32.900000,76.100000,en +33.000000,76.100000,en +33.000000,76.000000,en +32.900000,75.900000,en +32.900000,76.000000,en +32.800000,76.000000,en +32.700000,76.000000,en +32.700000,75.900000,en +32.800000,75.900000,en +32.700000,75.800000,en +32.800000,75.800000,en +32.900000,75.800000,ur +33.000000,75.800000,ur +33.100000,75.800000,ur +33.200000,75.800000,ur +33.300000,75.800000,ur +33.200000,75.900000,ur +33.300000,75.900000,ur +33.300000,76.000000,ur +33.200000,76.000000,ur +33.100000,76.000000,ur +33.100000,75.900000,ur +33.000000,75.900000,en +33.100000,76.100000,en +33.100000,76.200000,en +33.100000,76.300000,en +33.100000,76.400000,en +33.200000,76.400000,en +33.300000,76.400000,id +33.400000,76.400000,id +33.200000,76.100000,en +33.300000,76.100000,en +33.500000,76.200000,ur +33.400000,76.200000,ur +33.400000,76.300000,ur +33.500000,76.400000,id +33.500000,76.300000,ur +33.600000,76.300000,id +33.600000,76.400000,id +33.700000,76.400000,id +33.700000,76.300000,id +33.700000,76.200000,id +33.600000,76.200000,ur +33.600000,76.100000,ur +33.700000,76.100000,ur +33.700000,76.000000,ur +33.600000,75.900000,en +33.600000,76.000000,en +33.500000,76.000000,ur +33.400000,76.000000,ur +33.400000,75.900000,ur +33.500000,75.900000,ur +33.400000,75.800000,ur +33.500000,75.800000,ur +33.600000,75.800000,en +33.600000,75.700000,en +33.500000,75.700000,ur +33.500000,75.600000,ur +33.600000,75.600000,en +33.600000,75.500000,ur +33.600000,75.400000,ur +33.500000,75.400000,ur +33.500000,75.500000,ur +33.400000,75.500000,ur +33.400000,75.400000,ur +33.300000,75.400000,ur +33.300000,75.500000,ur +33.400000,75.600000,ur +33.400000,75.700000,ur +33.300000,75.700000,ur +33.300000,75.600000,ur +33.200000,75.600000,ur +33.200000,75.700000,ur +33.100000,75.700000,ur +33.000000,75.700000,ur +33.000000,75.600000,ur +33.100000,75.600000,ur +33.100000,75.500000,ur +33.000000,75.500000,ur +33.000000,75.400000,ur +33.100000,75.400000,ur +33.200000,75.500000,ur +33.200000,75.400000,ur +33.200000,75.300000,ur +33.200000,75.200000,ur +33.100000,75.200000,ur +33.100000,75.300000,ur +33.000000,75.300000,ur +33.000000,75.200000,ta +33.000000,75.100000,ta +32.900000,75.100000,ta +32.900000,75.000000,ur +33.000000,75.000000,ur +33.100000,75.000000,ta +33.100000,75.100000,ur +33.200000,75.100000,ur +33.200000,75.000000,ur +33.300000,75.000000,ur +33.400000,75.000000,ur +33.400000,75.100000,ur +33.300000,75.100000,ur +33.300000,75.200000,ur +33.300000,75.300000,ur +33.400000,75.300000,ur +33.400000,75.200000,ur +33.500000,75.200000,ur +33.500000,75.300000,ur +33.600000,75.300000,ur +33.600000,75.200000,ur +33.500000,75.100000,ur +33.500000,75.000000,ur +33.500000,74.900000,ur +33.500000,74.800000,ur +33.400000,74.800000,ur +33.400000,74.900000,ur +33.300000,74.900000,en +33.300000,74.800000,en +33.300000,74.700000,en +33.200000,74.700000,en +33.200000,74.600000,ur +33.300000,74.600000,ur +33.400000,74.600000,ur +33.400000,74.700000,ur +33.500000,74.700000,ur +33.500000,74.600000,ur +33.500000,74.500000,ur +33.400000,74.500000,ur +33.500000,74.400000,ur +33.400000,74.300000,ur +33.400000,74.400000,ur +33.300000,74.400000,ur +33.300000,74.300000,ur +33.200000,74.300000,en +33.200000,74.400000,ur +33.300000,74.500000,ur +33.200000,74.500000,ur +33.100000,74.500000,en +33.000000,74.500000,ur +33.100000,74.400000,en +33.100000,74.300000,en +33.000000,74.400000,ur +32.900000,74.400000,en +32.900000,74.500000,ur +32.900000,74.600000,ur +32.900000,74.700000,ur +33.000000,74.700000,ur +33.000000,74.600000,ur +33.100000,74.600000,en +33.100000,74.700000,en +33.100000,74.800000,en +33.200000,74.800000,en +33.200000,74.900000,en +33.100000,74.900000,ta +33.000000,74.900000,ur +33.000000,74.800000,ur +32.900000,74.800000,ur +32.900000,74.900000,ur +32.800000,74.900000,ur +32.700000,74.900000,ur +32.700000,74.800000,ur +32.800000,74.800000,ur +32.800000,74.700000,ur +32.800000,74.600000,en +32.700000,74.700000,en +32.600000,74.700000,en +32.500000,74.700000,en +32.600000,74.800000,ur +32.600000,74.900000,ur +32.500000,74.900000,en +32.500000,74.800000,ur +32.800000,74.500000,en +33.100000,74.200000,en +33.200000,74.100000,en +33.200000,74.200000,en +33.300000,74.200000,ur +33.400000,74.200000,ur +27.200000,69.600000,hi +28.000000,70.400000,hi +27.900000,70.400000,hi +27.900000,70.300000,en +27.800000,70.300000,hi +27.800000,70.400000,hi +27.700000,70.400000,en +27.700000,70.300000,en +27.700000,70.200000,hi +27.600000,70.200000,en +27.600000,70.100000,hi +27.700000,70.100000,hi +27.800000,70.200000,hi +27.900000,70.200000,en +27.500000,70.000000,hi +27.400000,70.000000,hi +27.400000,69.900000,hi +27.300000,69.800000,hi +27.300000,69.700000,hi +27.200000,69.700000,en +27.200000,69.800000,en +27.200000,69.900000,hi +27.300000,69.900000,hi +27.300000,70.000000,en +27.200000,70.000000,en +27.300000,70.100000,en +27.300000,70.200000,en +27.400000,70.200000,en +27.400000,70.100000,en +27.500000,70.100000,en +27.500000,70.200000,en +27.500000,70.300000,en +27.600000,70.300000,en +27.600000,70.400000,en +27.500000,70.400000,en +27.400000,70.400000,en +27.300000,70.400000,en +27.300000,70.500000,en +27.400000,70.500000,en +27.400000,70.600000,en +27.300000,70.600000,en +27.400000,70.800000,en +27.400000,70.700000,en +27.500000,70.700000,en +27.500000,70.800000,en +27.600000,70.800000,en +27.600000,70.700000,en +27.600000,70.600000,en +27.500000,70.600000,en +27.500000,70.500000,en +27.600000,70.500000,en +27.700000,70.500000,en +27.700000,70.600000,en +27.800000,70.600000,hi +27.800000,70.500000,hi +27.900000,70.500000,hi +28.000000,70.600000,hi +27.900000,70.600000,hi +27.800000,70.700000,en +27.700000,70.700000,en +27.700000,70.800000,en +27.700000,70.900000,en +27.800000,71.100000,en +27.700000,71.100000,en +27.600000,71.100000,en +27.700000,71.000000,en +27.600000,70.900000,en +27.600000,71.000000,en +27.500000,71.000000,en +27.500000,70.900000,en +27.400000,70.900000,en +27.400000,71.000000,en +27.500000,71.100000,en +27.400000,71.100000,en +27.400000,71.200000,en +27.400000,71.300000,en +27.500000,71.300000,en +27.500000,71.200000,en +27.600000,71.200000,en +27.700000,71.200000,en +27.700000,71.300000,en +27.600000,71.300000,en +27.600000,71.400000,en +27.700000,71.400000,en +27.700000,71.500000,en +27.600000,71.500000,en +27.500000,71.400000,en +27.400000,71.400000,en +27.500000,71.500000,en +27.500000,71.600000,en +27.600000,71.600000,en +27.600000,71.700000,en +27.500000,71.700000,en +27.500000,71.800000,en +27.500000,71.900000,en +27.600000,71.900000,en +27.600000,71.800000,en +27.700000,71.800000,en +27.700000,71.900000,en +27.800000,71.900000,en +27.800000,71.800000,en +27.800000,71.700000,en +27.700000,71.700000,en +27.700000,71.600000,en +27.800000,71.600000,en +27.900000,71.700000,en +27.900000,71.800000,en +27.900000,71.900000,en +28.000000,71.900000,en +27.800000,71.500000,en +27.800000,71.400000,en +27.800000,71.300000,en +27.800000,71.200000,en +28.000000,70.500000,en +29.900000,73.400000,en +29.800000,73.400000,en +29.700000,73.400000,en +29.600000,73.400000,en +29.500000,73.400000,en +29.500000,73.300000,ur +29.600000,73.300000,ur +29.100000,73.000000,ur +29.100000,73.100000,ur +29.100000,73.200000,en +29.200000,73.200000,en +29.200000,73.100000,ur +29.400000,73.200000,ur +29.300000,73.200000,en +29.300000,73.300000,en +29.400000,73.300000,ur +29.400000,73.400000,en +29.300000,73.400000,en +29.200000,73.300000,en +29.000000,73.400000,en +29.000000,73.300000,en +29.000000,73.200000,en +29.000000,73.100000,ur +28.800000,73.300000,en +28.900000,73.300000,en +28.900000,73.400000,en +28.800000,73.400000,en +28.700000,73.400000,en +28.700000,73.300000,en +28.600000,73.300000,en +28.600000,73.400000,en +28.500000,73.400000,en +28.400000,73.400000,en +28.400000,73.300000,en +28.500000,73.300000,en +28.500000,73.200000,en +28.400000,73.200000,en +28.400000,73.100000,en +28.500000,73.100000,en +28.600000,73.100000,en +28.600000,73.200000,en +28.600000,72.900000,en +28.600000,73.000000,en +28.500000,73.000000,en +28.400000,73.000000,en +28.400000,72.900000,en +28.500000,72.900000,en +28.400000,72.800000,en +28.500000,72.800000,en +28.600000,72.800000,en +28.700000,72.800000,en +29.000000,73.000000,ur +29.000000,72.900000,ur +28.700000,72.700000,en +28.700000,72.600000,en +28.800000,72.500000,en +28.700000,72.500000,en +28.700000,72.400000,en +28.600000,72.300000,en +28.500000,72.300000,en +28.300000,72.100000,en +28.300000,72.200000,en +28.400000,72.200000,en +28.400000,72.300000,en +28.300000,72.300000,en +28.300000,72.400000,en +28.300000,72.500000,en +28.400000,72.500000,en +28.400000,72.400000,en +28.500000,72.400000,en +28.600000,72.400000,en +28.600000,72.500000,en +28.500000,72.500000,en +28.500000,72.600000,en +28.600000,72.600000,en +28.600000,72.700000,en +28.500000,72.700000,en +28.400000,72.700000,en +28.400000,72.600000,en +28.300000,72.600000,en +28.300000,72.700000,en +28.200000,72.600000,en +28.200000,72.700000,en +28.100000,72.700000,en +28.000000,72.700000,en +28.000000,72.600000,en +28.100000,72.600000,en +28.000000,72.500000,en +27.900000,72.400000,en +28.000000,72.400000,en +28.100000,72.400000,en +28.100000,72.500000,en +28.200000,72.500000,en +28.200000,72.400000,en +28.200000,72.300000,en +28.200000,72.200000,en +28.200000,72.100000,en +28.200000,72.000000,en +28.100000,72.000000,en +28.100000,72.100000,en +28.000000,72.100000,en +28.000000,72.000000,en +27.900000,72.000000,en +27.900000,72.100000,en +27.900000,72.200000,en +28.000000,72.200000,en +28.000000,72.300000,en +27.900000,72.300000,en +27.800000,72.300000,en +27.700000,72.200000,en +27.800000,72.200000,en +27.800000,72.100000,en +27.800000,72.000000,en +27.700000,72.000000,en +27.700000,72.100000,en +27.600000,72.100000,en +27.600000,72.000000,en +27.500000,72.000000,en +27.500000,72.100000,en +27.600000,72.200000,en +27.700000,72.300000,en +27.600000,72.300000,en +27.600000,72.400000,en +27.600000,72.500000,en +27.700000,72.500000,en +27.700000,72.400000,en +27.800000,72.400000,en +27.900000,72.500000,en +27.800000,72.500000,en +27.800000,72.600000,en +27.900000,72.600000,en +27.900000,72.700000,en +27.800000,72.700000,en +27.700000,72.700000,en +27.700000,72.600000,en +27.600000,72.600000,en +27.700000,72.800000,en +27.800000,72.800000,en +27.900000,72.800000,en +28.000000,72.800000,en +28.100000,72.800000,en +28.200000,72.800000,en +28.300000,72.800000,en +28.200000,72.900000,en +28.300000,72.900000,en +28.300000,73.000000,en +28.200000,73.000000,en +28.200000,73.100000,en +28.300000,73.100000,en +28.300000,73.200000,en +28.200000,73.200000,en +28.200000,73.300000,en +28.300000,73.300000,en +27.400000,72.000000,en +27.400000,72.100000,en +27.200000,72.000000,gu +27.200000,72.100000,gu +27.100000,72.100000,gu +27.100000,72.000000,gu +27.000000,72.000000,gu +27.000000,72.100000,gu +26.900000,72.100000,gu +26.900000,72.000000,gu +26.800000,72.000000,gu +26.800000,72.100000,gu +25.700000,73.000000,pt +25.600000,73.000000,pt +25.500000,73.000000,pt +25.500000,73.100000,pt +25.500000,73.200000,pt +25.600000,73.200000,pt +25.600000,73.100000,pt +25.700000,73.100000,pt +25.700000,73.200000,pt +25.700000,73.300000,pt +25.700000,73.400000,pt +25.600000,73.400000,pt +25.600000,73.300000,pt +25.500000,73.300000,pt +25.500000,73.400000,pt +25.400000,73.400000,pt +25.300000,73.400000,pt +25.300000,73.300000,pt +25.400000,73.300000,pt +25.400000,73.200000,pt +25.400000,73.100000,pt +25.300000,73.100000,pt +25.300000,73.200000,pt +25.200000,73.200000,en +25.200000,73.100000,en +25.100000,73.100000,en +25.100000,73.200000,en +25.100000,73.300000,en +25.200000,73.300000,en +25.200000,73.400000,en +25.100000,73.400000,en +25.000000,73.400000,en +25.000000,73.300000,en +24.900000,73.300000,en +24.900000,73.400000,en +24.800000,73.400000,en +24.800000,73.300000,en +24.800000,73.200000,en +24.700000,73.100000,en +24.800000,73.100000,en +24.900000,73.100000,en +24.900000,73.200000,en +25.000000,73.200000,en +25.000000,73.100000,en +24.800000,73.000000,gu +24.700000,73.000000,gu +24.700000,72.900000,gu +24.800000,72.900000,gu +24.700000,72.800000,gu +24.800000,72.800000,gu +25.300000,73.000000,pt +25.400000,73.000000,pt +24.800000,72.700000,gu +24.700000,72.700000,gu +24.700000,72.600000,gu +24.800000,72.600000,gu +24.800000,72.500000,gu +24.700000,72.500000,gu +24.700000,72.400000,gu +24.800000,72.400000,gu +24.900000,72.200000,gu +24.800000,72.200000,gu +24.800000,72.300000,gu +24.700000,72.300000,gu +24.600000,72.300000,gu +24.600000,72.200000,gu +24.700000,72.200000,gu +24.700000,72.100000,gu +24.600000,72.100000,gu +24.600000,72.000000,gu +24.700000,72.000000,gu +24.800000,72.000000,gu +24.800000,72.100000,gu +24.900000,72.100000,gu +24.900000,72.000000,gu +24.900000,71.600000,gu +24.900000,71.700000,gu +24.900000,71.800000,gu +24.900000,71.900000,gu +24.800000,71.800000,gu +24.800000,71.900000,gu +24.700000,71.900000,gu +24.600000,71.900000,gu +24.600000,71.800000,gu +24.700000,71.800000,gu +24.700000,71.700000,gu +24.600000,71.700000,gu +24.600000,71.600000,gu +24.700000,71.600000,gu +24.800000,71.700000,gu +24.800000,71.600000,gu +24.800000,71.500000,gu +24.800000,71.400000,gu +24.700000,71.400000,gu +24.700000,71.500000,gu +24.600000,71.500000,hi +24.500000,71.500000,hi +24.500000,71.400000,hi +24.600000,71.400000,hi +24.600000,71.300000,gu +24.500000,71.300000,hi +24.500000,71.200000,hi +24.600000,71.200000,gu +24.700000,71.200000,gu +24.700000,71.300000,gu +24.800000,71.300000,gu +24.800000,71.200000,gu +24.900000,71.200000,en +25.000000,71.200000,en +24.900000,71.300000,en +24.900000,71.400000,en +25.100000,71.200000,en +25.100000,71.100000,en +25.000000,71.100000,en +25.100000,71.000000,en +25.100000,70.900000,en +25.000000,71.000000,en +24.900000,71.000000,en +24.900000,71.100000,en +24.800000,71.100000,en +24.700000,71.100000,en +24.600000,71.100000,en +24.600000,71.000000,en +24.400000,70.500000,hi +25.400000,70.700000,en +25.400000,70.800000,en +25.300000,70.800000,en +25.300000,70.900000,en +25.400000,70.900000,en +25.500000,70.900000,en +25.600000,70.900000,en +25.700000,70.900000,en +25.800000,70.700000,en +25.700000,70.700000,en +25.700000,70.800000,en +25.600000,70.800000,en +25.500000,70.800000,en +25.500000,70.700000,en +25.600000,70.700000,en +25.700000,70.500000,en +25.700000,70.600000,en +25.800000,70.600000,en +25.800000,70.500000,en +25.900000,70.500000,en +26.000000,70.500000,en +26.000000,70.600000,en +25.900000,70.600000,en +25.900000,70.700000,en +26.000000,70.700000,en +26.100000,70.700000,en +26.100000,70.800000,en +26.200000,70.800000,en +26.200000,70.700000,en +26.100000,70.600000,en +26.100000,70.500000,en +26.200000,70.500000,en +26.200000,70.600000,en +26.300000,70.600000,en +26.300000,70.500000,en +26.400000,70.500000,en +26.400000,70.600000,en +26.400000,70.700000,en +26.500000,70.700000,en +26.500000,70.800000,en +26.400000,70.800000,en +26.300000,70.700000,en +26.300000,70.800000,en +26.300000,70.900000,en +26.300000,71.000000,en +26.400000,71.000000,en +26.400000,70.900000,en +26.500000,70.900000,en +26.500000,71.000000,en +26.500000,71.100000,en +26.400000,71.100000,en +26.300000,71.100000,en +26.200000,71.100000,en +26.100000,71.100000,en +26.200000,71.000000,en +26.200000,70.900000,en +26.100000,70.900000,en +26.100000,71.000000,en +26.900000,71.200000,en +27.000000,71.200000,en +27.000000,71.300000,en +27.000000,71.400000,en +27.000000,71.500000,en +26.800000,71.700000,gu +26.800000,71.800000,gu +26.800000,71.900000,gu +26.900000,71.900000,gu +26.900000,71.800000,gu +27.000000,71.900000,gu +27.100000,71.900000,gu +27.000000,71.800000,gu +27.000000,71.700000,gu +26.900000,71.700000,gu +27.000000,71.600000,en +27.100000,71.600000,en +27.200000,71.600000,en +27.200000,71.700000,gu +27.100000,71.700000,gu +27.100000,71.800000,gu +27.200000,71.900000,gu +27.200000,71.800000,gu +27.300000,71.800000,en +27.400000,71.900000,en +27.400000,71.800000,en +27.400000,71.700000,en +27.300000,71.700000,en +27.300000,71.600000,en +27.400000,71.600000,en +27.400000,71.500000,en +27.300000,71.400000,en +27.300000,71.500000,en +27.200000,71.500000,en +27.100000,71.500000,en +27.100000,71.400000,en +27.200000,71.400000,en +27.200000,71.300000,en +27.100000,71.300000,en +27.100000,71.200000,en +27.200000,71.200000,en +27.300000,71.300000,en +27.300000,71.200000,en +27.300000,71.100000,en +27.200000,71.100000,en +27.300000,71.000000,en +27.300000,70.900000,en +27.200000,70.900000,en +27.200000,71.000000,en +27.100000,71.000000,fr +27.100000,70.900000,fr +27.000000,70.900000,fr +27.000000,71.000000,fr +27.100000,71.100000,fr +27.000000,71.100000,fr +26.900000,71.100000,fr +26.800000,71.100000,fr +26.700000,71.100000,fr +26.700000,71.000000,fr +26.700000,70.900000,fr +26.800000,70.900000,fr +26.800000,71.000000,fr +26.900000,71.000000,fr +26.900000,70.900000,fr +26.900000,70.800000,fr +26.900000,70.700000,fr +26.800000,70.700000,fr +26.800000,70.800000,fr +26.700000,70.800000,fr +26.700000,70.700000,fr +26.800000,70.500000,en +26.800000,70.600000,en +26.900000,70.600000,en +26.900000,70.500000,en +27.000000,70.500000,en +27.100000,70.600000,en +27.000000,70.600000,en +27.000000,70.700000,fr +27.000000,70.800000,fr +27.100000,70.800000,fr +27.100000,70.700000,fr +27.200000,70.700000,en +27.200000,70.800000,en +27.300000,70.800000,en +27.300000,70.700000,en +27.200000,70.600000,en +27.100000,70.500000,en +27.200000,70.500000,en +27.200000,70.400000,en +27.100000,70.400000,en +27.000000,70.400000,en +26.900000,70.400000,en +27.000000,70.200000,en +26.900000,70.200000,en +26.900000,70.100000,en +27.000000,70.100000,en +27.100000,70.100000,en +27.100000,70.200000,en +27.200000,70.200000,en +27.200000,70.100000,en +27.100000,69.900000,hi +27.100000,69.800000,hi +27.100000,69.700000,hi +27.000000,69.700000,hi +27.000000,69.800000,hi +26.900000,69.800000,hi +26.900000,69.700000,en +26.800000,69.700000,en +26.900000,69.900000,hi +27.000000,69.900000,hi +26.900000,70.000000,en +26.800000,70.000000,en +26.700000,70.000000,en +26.700000,69.900000,en +26.800000,69.900000,en +26.800000,69.800000,hi +26.700000,69.700000,hi +26.700000,69.800000,hi +26.600000,69.800000,hi +26.600000,69.900000,en +26.600000,70.000000,en +26.600000,70.200000,en +26.600000,70.100000,en +26.700000,70.100000,en +26.800000,70.100000,en +26.800000,70.200000,en +26.700000,70.200000,en +26.800000,70.300000,en +26.800000,70.400000,en +26.700000,70.300000,en +26.600000,70.300000,en +26.600000,70.400000,fr +26.500000,70.400000,fr +26.400000,70.400000,en +26.400000,70.300000,en +26.500000,70.300000,en +26.500000,70.200000,en +26.400000,70.200000,en +26.300000,70.200000,en +26.200000,70.200000,en +26.200000,70.300000,en +26.300000,70.300000,en +26.300000,70.400000,en +26.200000,70.400000,en +26.100000,70.400000,en +26.100000,70.300000,en +26.000000,70.300000,en +26.000000,70.400000,en +25.900000,70.400000,en +25.800000,70.300000,en +25.900000,70.300000,en +25.900000,70.200000,en +25.800000,70.200000,en +26.000000,70.100000,en +26.000000,70.200000,en +26.100000,70.200000,en +26.100000,70.100000,en +26.700000,69.600000,hi +26.800000,69.500000,hi +26.800000,69.600000,hi +26.900000,69.600000,en +26.900000,69.500000,hi +27.000000,69.600000,en +27.100000,69.600000,en +24.200000,68.800000,hi +24.300000,68.800000,hi +24.300000,68.900000,hi +24.200000,68.900000,hi +24.200000,69.000000,hi +24.200000,69.100000,hi +24.200000,69.200000,hi +24.300000,69.600000,hi +25.700000,70.300000,en +25.800000,70.400000,en +25.700000,70.400000,en +24.300000,70.400000,hi +24.300000,70.300000,hi +24.200000,70.300000,hi +24.200000,70.400000,hi +24.100000,70.400000,en +24.000000,70.400000,en +24.000000,70.300000,en +24.100000,70.300000,en +24.100000,70.200000,en +24.000000,70.200000,en +24.000000,70.100000,gu +24.100000,70.100000,gu +24.200000,70.100000,hi +24.200000,70.200000,hi +24.300000,70.200000,hi +24.300000,70.100000,hi +24.200000,69.700000,hi +24.100000,69.700000,gu +24.100000,69.800000,gu +24.000000,69.800000,gu +24.000000,69.700000,gu +23.900000,69.700000,gu +24.000000,69.900000,gu +24.100000,69.900000,en +24.100000,70.000000,en +24.000000,70.000000,gu +23.900000,70.000000,gu +23.800000,70.000000,gu +23.800000,69.900000,gu +23.900000,69.900000,gu +23.900000,69.800000,gu +23.800000,69.700000,gu +23.800000,69.800000,gu +23.700000,69.800000,gu +23.700000,69.700000,gu +23.600000,69.700000,gu +23.600000,69.800000,gu +23.600000,69.900000,gu +23.700000,69.900000,gu +23.700000,70.000000,gu +23.600000,70.000000,gu +23.600000,70.100000,gu +23.600000,70.200000,gu +23.700000,70.200000,gu +23.700000,70.100000,gu +23.800000,70.100000,gu +23.900000,70.100000,gu +23.900000,70.200000,en +23.800000,70.200000,en +23.800000,70.300000,gu +23.900000,70.300000,en +23.900000,70.400000,en +23.800000,70.400000,gu +23.700000,70.300000,gu +23.700000,70.400000,gu +23.600000,70.400000,gu +23.500000,70.400000,gu +23.500000,70.300000,gu +23.600000,70.300000,gu +23.500000,70.100000,gu +23.500000,70.200000,gu +23.400000,70.200000,gu +23.400000,70.100000,gu +23.300000,70.100000,gu +23.300000,70.200000,gu +23.300000,70.300000,gu +23.400000,70.300000,gu +23.400000,70.400000,gu +23.300000,70.400000,gu +23.200000,70.400000,gu +23.200000,70.300000,gu +23.100000,70.300000,gu +23.100000,70.400000,gu +23.000000,70.400000,gu +22.900000,70.400000,gu +22.900000,70.300000,gu +23.000000,70.300000,gu +23.000000,70.200000,gu +22.900000,70.200000,gu +22.900000,70.100000,gu +23.000000,70.100000,gu +23.100000,70.100000,gu +23.100000,70.200000,gu +23.200000,70.200000,gu +23.200000,70.100000,gu +23.200000,70.000000,gu +23.100000,69.900000,gu +23.100000,70.000000,gu +23.000000,70.000000,gu +22.900000,70.000000,gu +22.900000,69.900000,gu +23.000000,69.900000,gu +22.900000,69.800000,gu +22.900000,69.700000,gu +23.000000,69.700000,gu +23.000000,69.800000,gu +23.100000,69.800000,gu +23.100000,69.700000,gu +23.200000,69.700000,gu +23.300000,69.700000,gu +23.300000,69.800000,gu +23.200000,69.800000,gu +23.200000,69.900000,gu +23.300000,70.000000,gu +23.300000,69.900000,gu +23.400000,69.900000,gu +23.400000,70.000000,gu +23.500000,70.000000,gu +23.500000,69.900000,gu +23.500000,69.800000,gu +23.400000,69.800000,gu +23.400000,69.700000,gu +23.500000,69.700000,gu +23.500000,69.600000,gu +23.400000,69.600000,gu +23.400000,69.500000,gu +23.500000,69.500000,gu +23.400000,69.400000,gu +23.400000,69.300000,gu +23.300000,69.300000,gu +23.300000,69.400000,gu +23.200000,69.300000,gu +23.200000,69.400000,gu +23.200000,69.500000,gu +23.300000,69.500000,gu +23.300000,69.600000,gu +23.200000,69.600000,gu +23.100000,69.600000,gu +23.100000,69.500000,gu +23.000000,69.500000,gu +23.000000,69.600000,gu +22.900000,69.600000,gu +22.800000,69.600000,gu +22.800000,69.500000,gu +22.900000,69.500000,gu +22.900000,69.400000,gu +22.800000,69.400000,gu +22.800000,69.300000,gu +22.900000,69.300000,gu +23.000000,69.300000,gu +23.000000,69.400000,gu +23.100000,69.400000,gu +23.100000,69.300000,gu +23.000000,69.100000,gu +23.000000,69.200000,gu +22.900000,69.200000,gu +22.800000,69.200000,gu +22.800000,69.100000,gu +22.900000,69.100000,gu +22.800000,69.000000,gu +22.900000,69.000000,gu +23.000000,69.000000,gu +23.100000,69.000000,gu +23.200000,69.000000,gu +23.100000,69.100000,gu +23.100000,69.200000,gu +23.200000,69.200000,gu +23.200000,69.100000,gu +23.300000,69.100000,gu +23.300000,69.200000,gu +23.400000,69.200000,gu +23.400000,69.100000,gu +23.300000,69.000000,gu +23.400000,69.000000,gu +23.500000,69.000000,gu +23.600000,69.000000,gu +23.700000,69.000000,gu +23.700000,69.100000,gu +23.800000,69.100000,gu +23.800000,69.200000,en +23.700000,69.200000,gu +23.600000,69.200000,gu +23.600000,69.100000,gu +23.500000,69.100000,gu +23.500000,69.200000,gu +23.500000,69.300000,gu +23.600000,69.300000,gu +23.600000,69.400000,gu +23.500000,69.400000,gu +23.600000,69.600000,gu +23.600000,69.500000,gu +23.700000,69.500000,gu +23.700000,69.600000,gu +23.800000,69.600000,gu +23.800000,69.500000,gu +23.800000,69.400000,gu +23.700000,69.400000,gu +23.700000,69.300000,gu +23.800000,69.300000,gu +23.900000,69.300000,gu +24.000000,69.300000,gu +24.000000,69.400000,gu +23.900000,69.400000,gu +23.900000,69.500000,gu +23.900000,69.600000,gu +24.000000,69.600000,gu +24.000000,69.500000,gu +24.100000,69.500000,gu +24.100000,69.600000,gu +24.200000,69.600000,hi +24.200000,69.500000,hi +24.200000,69.400000,hi +24.100000,69.400000,gu +24.100000,69.300000,en +24.200000,69.300000,hi +24.100000,69.200000,en +24.100000,69.100000,en +24.000000,69.100000,gu +24.000000,69.200000,gu +23.900000,69.200000,en +23.900000,69.100000,en +23.800000,69.000000,gu +23.900000,69.000000,gu +24.000000,69.000000,gu +24.100000,69.000000,en +24.100000,68.900000,en +24.000000,68.900000,gu +24.000000,68.800000,en +24.100000,68.800000,en +23.900000,68.700000,gu +23.900000,68.600000,gu +23.800000,68.600000,gu +23.800000,68.700000,gu +23.800000,68.800000,gu +23.900000,68.800000,gu +23.900000,68.900000,gu +23.800000,68.900000,gu +23.700000,68.900000,gu +23.700000,68.800000,gu +23.600000,68.800000,gu +23.600000,68.900000,gu +23.500000,68.900000,gu +23.500000,68.800000,gu +23.500000,68.700000,gu +23.400000,68.700000,gu +23.400000,68.600000,gu +23.500000,68.600000,gu +23.600000,68.600000,gu +23.600000,68.700000,gu +23.700000,68.700000,gu +23.700000,68.600000,gu +23.700000,68.500000,gu +23.700000,68.400000,gu +23.600000,68.400000,gu +23.600000,68.500000,gu +23.500000,68.500000,gu +23.400000,68.500000,gu +23.400000,68.400000,en +23.500000,68.400000,gu +23.500000,68.300000,gu +23.400000,68.300000,gu +23.500000,68.200000,gu +23.600000,68.300000,gu +23.600000,68.200000,gu +23.700000,68.200000,gu +23.800000,68.200000,gu +23.800000,68.300000,gu +23.700000,68.300000,gu +23.800000,68.400000,gu +23.800000,68.500000,gu +23.900000,68.500000,gu +23.900000,68.400000,gu +23.900000,68.300000,gu +23.300000,68.400000,en +23.300000,68.500000,gu +23.200000,68.500000,gu +23.100000,68.600000,gu +23.100000,68.700000,gu +23.200000,68.700000,gu +23.200000,68.600000,gu +23.300000,68.600000,gu +23.300000,68.700000,gu +23.300000,68.800000,gu +23.400000,68.800000,gu +23.400000,68.900000,gu +23.300000,68.900000,gu +23.200000,68.900000,gu +23.200000,68.800000,gu +23.100000,68.800000,gu +23.100000,68.900000,gu +23.000000,68.900000,gu +22.900000,68.900000,gu +23.000000,68.800000,gu +23.000000,68.700000,gu +22.700000,68.900000,gu +22.600000,68.900000,gu +22.500000,68.800000,gu +22.600000,68.800000,gu +22.400000,68.800000,gu +22.500000,68.900000,gu +22.400000,68.900000,gu +22.300000,68.900000,gu +22.300000,68.800000,gu +22.200000,68.800000,gu +22.200000,68.900000,gu +22.100000,68.900000,gu +22.000000,68.900000,gu +21.900000,68.900000,gu +21.600000,69.200000,gu +21.400000,69.400000,gu +21.400000,69.500000,gu +21.400000,69.600000,gu +21.500000,69.600000,gu +21.500000,69.500000,gu +21.600000,69.600000,gu +21.600000,69.500000,gu +21.600000,69.400000,gu +21.500000,69.400000,gu +21.500000,69.300000,gu +21.600000,69.300000,hi +21.700000,69.300000,gu +21.800000,69.300000,gu +21.800000,69.400000,gu +21.700000,69.400000,gu +21.700000,69.500000,gu +21.700000,69.600000,gu +21.800000,69.600000,gu +21.800000,69.500000,gu +21.900000,69.500000,gu +21.900000,69.600000,hi +22.000000,69.600000,hi +22.000000,69.500000,hi +22.000000,69.400000,gu +21.900000,69.400000,gu +21.900000,69.300000,gu +22.000000,69.300000,gu +22.000000,69.200000,gu +21.900000,69.100000,gu +21.900000,69.200000,gu +21.800000,69.200000,gu +21.700000,69.200000,gu +21.700000,69.100000,gu +21.800000,69.100000,gu +21.800000,69.000000,gu +21.900000,69.000000,gu +22.000000,69.000000,gu +22.100000,69.000000,gu +22.000000,69.100000,gu +22.100000,69.200000,gu +22.100000,69.100000,gu +22.200000,69.100000,gu +22.200000,69.200000,gu +22.300000,69.200000,gu +22.300000,69.100000,gu +22.200000,69.000000,gu +22.300000,69.000000,gu +22.400000,69.000000,gu +22.500000,69.000000,gu +22.600000,69.000000,gu +22.700000,69.000000,gu +22.600000,69.100000,gu +22.700000,69.100000,gu +22.700000,69.200000,gu +22.600000,69.200000,gu +22.500000,69.200000,gu +22.500000,69.100000,gu +22.400000,69.100000,gu +22.400000,69.200000,gu +22.400000,69.300000,gu +22.400000,69.400000,gu +22.500000,69.400000,gu +22.500000,69.300000,gu +22.600000,69.300000,gu +22.700000,69.300000,gu +22.700000,69.400000,gu +22.600000,69.400000,gu +22.600000,69.500000,gu +22.700000,69.500000,gu +22.700000,69.600000,gu +22.600000,69.600000,gu +22.500000,69.500000,gu +22.500000,69.600000,gu +22.400000,69.600000,gu +22.300000,69.600000,gu +22.300000,69.500000,gu +22.400000,69.500000,gu +22.300000,69.300000,gu +22.300000,69.400000,gu +22.200000,69.400000,gu +22.200000,69.300000,gu +22.100000,69.300000,gu +22.100000,69.400000,gu +22.100000,69.500000,hi +22.200000,69.500000,gu +22.200000,69.600000,gu +22.100000,69.600000,gu +22.100000,69.700000,gu +22.200000,69.700000,gu +22.200000,69.800000,gu +22.100000,69.800000,gu +22.100000,69.900000,gu +22.200000,70.000000,gu +22.200000,69.900000,gu +22.300000,69.900000,gu +22.300000,70.000000,gu +22.400000,70.000000,gu +22.400000,69.900000,gu +22.400000,69.800000,gu +22.300000,69.800000,gu +22.300000,69.700000,gu +22.400000,69.700000,gu +22.500000,69.700000,gu +22.500000,69.800000,gu +22.600000,69.800000,gu +22.600000,69.700000,gu +22.700000,69.700000,gu +22.800000,69.700000,gu +22.800000,69.800000,gu +22.700000,69.800000,gu +22.700000,69.900000,gu +22.800000,69.900000,gu +22.800000,70.000000,gu +22.700000,70.000000,gu +22.600000,70.000000,gu +22.600000,69.900000,gu +22.500000,69.900000,gu +22.500000,70.000000,gu +22.500000,70.100000,gu +22.600000,70.200000,gu +22.600000,70.100000,gu +22.700000,70.100000,gu +22.800000,70.100000,gu +22.800000,70.200000,gu +22.700000,70.200000,gu +22.700000,70.300000,gu +22.800000,70.300000,gu +22.800000,70.400000,gu +22.700000,70.400000,gu +22.600000,70.300000,gu +22.600000,70.400000,gu +22.500000,70.400000,gu +22.400000,70.400000,gu +22.400000,70.300000,gu +22.500000,70.300000,gu +22.500000,70.200000,gu +22.400000,70.100000,gu +22.400000,70.200000,gu +22.300000,70.200000,gu +22.300000,70.100000,gu +22.200000,70.100000,gu +22.200000,70.200000,gu +22.200000,70.300000,gu +22.300000,70.300000,gu +22.300000,70.400000,gu +22.200000,70.400000,gu +22.100000,70.400000,gu +22.100000,70.300000,hi +22.000000,70.300000,hi +22.000000,70.400000,gu +21.900000,70.400000,gu +21.800000,70.400000,gu +21.800000,70.300000,gu +21.900000,70.300000,gu +21.900000,70.200000,gu +21.800000,70.200000,gu +21.800000,70.100000,gu +21.900000,70.100000,gu +22.000000,70.100000,hi +22.000000,70.200000,hi +22.100000,70.200000,gu +22.100000,70.100000,gu +22.100000,70.000000,gu +22.000000,70.000000,hi +22.000000,69.900000,hi +22.000000,69.800000,hi +22.000000,69.700000,gu +21.900000,69.700000,hi +21.900000,69.800000,hi +21.800000,69.700000,gu +21.800000,69.800000,gu +21.800000,69.900000,hi +21.900000,69.900000,hi +21.900000,70.000000,gu +21.800000,70.000000,hi +21.700000,70.000000,hi +21.600000,70.000000,hi +21.600000,69.900000,hi +21.700000,69.900000,hi +21.700000,69.800000,gu +21.700000,69.700000,gu +21.600000,69.700000,gu +21.600000,69.800000,gu +21.500000,69.800000,gu +21.500000,69.700000,gu +21.400000,69.700000,gu +21.400000,69.800000,gu +21.400000,69.900000,hi +21.500000,69.900000,gu +21.500000,70.000000,hi +21.400000,70.000000,hi +21.400000,70.100000,hi +21.500000,70.200000,gu +21.500000,70.100000,gu +21.600000,70.100000,hi +21.700000,70.100000,hi +21.700000,70.200000,gu +21.600000,70.200000,hi +21.700000,70.300000,gu +21.700000,70.400000,gu +21.600000,70.400000,gu +21.600000,70.300000,gu +21.500000,70.300000,gu +21.500000,70.400000,gu +21.500000,70.500000,gu +21.600000,70.500000,gu +21.600000,70.600000,gu +21.500000,70.600000,gu +21.500000,70.700000,gu +21.500000,70.800000,gu +21.600000,70.800000,gu +21.600000,70.700000,gu +21.700000,70.700000,gu +21.700000,70.800000,gu +21.800000,70.800000,gu +21.800000,70.700000,gu +21.800000,70.600000,gu +21.700000,70.600000,gu +21.700000,70.500000,gu +21.800000,70.500000,gu +21.900000,70.500000,gu +21.900000,70.600000,gu +22.000000,70.600000,gu +22.000000,70.500000,gu +22.100000,70.500000,gu +22.100000,70.600000,gu +22.100000,70.700000,gu +22.200000,70.800000,gu +22.100000,70.800000,gu +22.000000,70.800000,gu +22.000000,70.700000,gu +21.900000,70.700000,gu +21.900000,70.800000,gu +21.900000,70.900000,gu +21.900000,71.000000,gu +22.000000,71.000000,gu +22.000000,70.900000,gu +22.100000,70.900000,gu +22.200000,70.900000,gu +22.200000,71.000000,gu +22.100000,71.000000,gu +22.200000,71.100000,gu +22.100000,71.100000,hi +22.000000,71.100000,hi +21.900000,71.100000,hi +21.800000,71.100000,hi +21.700000,71.100000,hi +21.800000,71.000000,hi +21.800000,70.900000,gu +21.700000,70.900000,hi +21.700000,71.000000,hi +21.600000,71.000000,hi +21.600000,70.900000,hi +21.500000,70.900000,hi +21.600000,71.100000,hi +21.600000,71.200000,hi +21.600000,71.300000,hi +21.700000,71.300000,hi +21.700000,71.200000,hi +21.800000,71.200000,hi +21.900000,71.300000,hi +21.800000,71.300000,hi +21.800000,71.400000,hi +21.900000,71.400000,hi +21.900000,71.500000,hi +21.800000,71.500000,gu +21.700000,71.500000,hi +21.700000,71.400000,hi +21.600000,71.400000,hi +21.600000,71.500000,hi +21.600000,71.600000,hi +21.700000,71.600000,hi +21.700000,71.700000,hi +21.600000,71.700000,hi +21.600000,71.800000,hi +21.700000,71.900000,gu +21.700000,71.800000,hi +21.800000,71.800000,hi +21.800000,71.900000,gu +21.900000,71.900000,gu +21.900000,71.800000,hi +21.900000,71.700000,hi +21.800000,71.700000,hi +21.800000,71.600000,hi +21.900000,71.600000,hi +22.000000,71.600000,hi +22.100000,71.600000,hi +22.100000,71.700000,hi +22.000000,71.700000,hi +22.000000,71.800000,hi +22.000000,71.900000,gu +22.100000,71.900000,hi +22.100000,71.800000,hi +22.200000,71.800000,hi +22.200000,71.900000,hi +22.300000,71.900000,hi +22.300000,71.800000,hi +22.300000,71.700000,hi +22.200000,71.700000,hi +22.200000,71.600000,hi +22.300000,71.600000,hi +22.200000,71.400000,hi +22.100000,71.400000,hi +22.200000,71.500000,hi +22.100000,71.500000,hi +22.000000,71.500000,hi +22.000000,71.400000,hi +22.000000,71.300000,hi +21.900000,71.200000,hi +22.000000,71.200000,hi +22.100000,71.200000,hi +22.100000,71.300000,hi +22.200000,71.300000,hi +22.200000,71.200000,gu +22.300000,71.200000,gu +22.300000,71.300000,gu +22.400000,71.300000,gu +22.400000,71.200000,gu +22.500000,71.200000,gu +22.600000,71.200000,gu +22.600000,71.300000,hi +22.500000,71.300000,gu +22.500000,71.400000,hi +22.600000,71.400000,gu +22.600000,71.500000,gu +22.500000,71.500000,hi +22.400000,71.500000,hi +22.400000,71.400000,hi +22.300000,71.400000,hi +22.300000,71.500000,hi +22.400000,71.600000,hi +22.500000,71.700000,hi +22.400000,71.700000,hi +22.400000,71.800000,hi +22.400000,71.900000,hi +22.500000,71.900000,hi +22.500000,71.800000,hi +22.600000,71.800000,gu +22.600000,71.900000,hi +22.700000,71.900000,hi +22.600000,71.700000,gu +22.500000,71.600000,hi +22.600000,71.600000,gu +22.700000,71.600000,gu +22.800000,71.600000,gu +22.800000,71.700000,gu +22.700000,71.700000,gu +22.700000,71.800000,gu +22.800000,71.900000,hi +22.800000,71.800000,gu +22.900000,71.800000,gu +22.900000,71.900000,gu +23.000000,71.900000,gu +23.000000,71.800000,gu +23.000000,71.700000,gu +22.900000,71.700000,gu +22.900000,71.600000,gu +23.000000,71.600000,gu +23.000000,71.500000,gu +23.000000,71.400000,gu +22.900000,71.400000,gu +22.900000,71.500000,gu +22.800000,71.500000,gu +22.700000,71.500000,gu +22.700000,71.400000,gu +22.800000,71.400000,gu +22.800000,71.300000,hi +22.700000,71.300000,hi +22.700000,71.200000,hi +22.800000,71.200000,hi +22.900000,71.200000,hi +22.900000,71.300000,hi +23.000000,71.300000,gu +22.900000,71.100000,gu +22.800000,71.100000,gu +22.900000,71.000000,gu +22.900000,70.900000,gu +22.800000,70.900000,gu +22.800000,71.000000,gu +22.700000,71.000000,gu +22.700000,70.900000,gu +22.600000,70.900000,gu +22.700000,71.100000,gu +22.600000,71.100000,gu +22.500000,71.100000,gu +22.400000,71.100000,gu +22.300000,71.100000,gu +22.400000,71.000000,gu +22.300000,71.000000,gu +22.300000,70.900000,gu +22.400000,70.900000,gu +22.500000,71.000000,gu +22.600000,71.000000,gu +22.500000,70.900000,gu +22.500000,70.800000,gu +22.500000,70.700000,gu +22.400000,70.700000,gu +22.400000,70.800000,gu +22.300000,70.800000,gu +22.200000,70.700000,gu +22.300000,70.700000,gu +22.300000,70.600000,gu +22.200000,70.600000,gu +22.200000,70.500000,gu +22.300000,70.500000,gu +22.400000,70.500000,gu +22.400000,70.600000,gu +22.500000,70.600000,gu +22.500000,70.500000,gu +22.600000,70.500000,hi +22.700000,70.500000,hi +22.700000,70.600000,gu +22.600000,70.600000,gu +22.600000,70.700000,gu +22.600000,70.800000,gu +22.700000,70.800000,gu +22.700000,70.700000,gu +22.800000,70.700000,gu +22.800000,70.800000,gu +22.900000,70.800000,gu +22.900000,70.700000,gu +22.900000,70.600000,gu +22.800000,70.600000,gu +22.800000,70.500000,gu +22.900000,70.500000,gu +23.000000,70.600000,gu +23.100000,70.600000,gu +23.000000,70.500000,gu +23.100000,70.500000,gu +23.200000,70.500000,gu +23.200000,70.600000,gu +23.200000,70.700000,gu +23.300000,70.800000,gu +23.200000,70.800000,gu +23.100000,70.800000,gu +23.100000,70.700000,gu +23.000000,70.700000,gu +23.000000,70.800000,gu +23.000000,70.900000,gu +23.100000,70.900000,gu +23.100000,71.000000,gu +23.000000,71.000000,gu +23.000000,71.100000,gu +23.100000,71.100000,gu +23.200000,71.100000,gu +23.300000,71.100000,hi +23.300000,71.000000,gu +23.200000,71.000000,gu +23.200000,70.900000,gu +23.300000,70.900000,gu +23.400000,70.900000,gu +23.500000,70.900000,gu +23.500000,71.000000,gu +23.400000,71.000000,gu +23.400000,71.100000,gu +23.500000,71.100000,gu +23.600000,71.100000,gu +23.700000,71.100000,gu +23.700000,71.000000,gu +23.600000,71.000000,gu +23.600000,70.900000,gu +23.600000,70.800000,gu +23.600000,70.700000,gu +23.500000,70.700000,gu +23.500000,70.800000,gu +23.400000,70.800000,gu +23.300000,70.700000,gu +23.400000,70.700000,gu +23.400000,70.600000,gu +23.300000,70.600000,gu +23.300000,70.500000,gu +23.400000,70.500000,gu +23.500000,70.500000,gu +23.500000,70.600000,gu +23.600000,70.600000,gu +23.600000,70.500000,hi +23.700000,70.500000,gu +23.800000,70.500000,gu +23.800000,70.600000,gu +23.700000,70.600000,gu +23.700000,70.700000,gu +23.700000,70.800000,gu +23.800000,70.800000,gu +23.800000,70.700000,hi +23.900000,70.700000,gu +23.900000,70.800000,gu +24.000000,70.800000,hi +24.000000,70.700000,hi +24.000000,70.600000,hi +23.900000,70.600000,gu +23.900000,70.500000,gu +24.000000,70.500000,hi +24.200000,70.500000,hi +24.300000,70.500000,hi +24.200000,70.600000,en +24.200000,70.700000,gu +24.100000,71.000000,gu +24.200000,71.000000,en +24.300000,71.000000,en +24.400000,71.100000,en +24.300000,71.100000,en +24.200000,71.100000,en +24.100000,71.100000,gu +24.000000,71.100000,gu +23.900000,71.100000,gu +24.000000,71.000000,gu +24.000000,70.900000,hi +23.900000,70.900000,hi +23.900000,71.000000,gu +23.800000,71.000000,gu +23.800000,70.900000,gu +23.700000,70.900000,gu +23.800000,71.100000,gu +23.800000,71.200000,gu +23.900000,71.200000,gu +23.900000,71.300000,gu +23.800000,71.300000,gu +23.800000,71.400000,gu +23.800000,71.500000,hi +23.900000,71.500000,hi +23.900000,71.400000,gu +24.000000,71.400000,gu +24.000000,71.500000,hi +24.100000,71.500000,hi +24.100000,71.400000,hi +24.100000,71.300000,hi +24.000000,71.300000,gu +24.000000,71.200000,gu +24.100000,71.200000,gu +24.200000,71.300000,hi +24.200000,71.200000,gu +24.300000,71.200000,hi +24.400000,71.200000,hi +24.400000,71.300000,hi +24.300000,71.300000,hi +24.400000,71.400000,hi +24.400000,71.500000,hi +24.300000,71.500000,hi +24.300000,71.400000,hi +24.200000,71.400000,hi +24.200000,71.500000,hi +24.200000,71.600000,hi +24.200000,71.700000,hi +24.300000,71.700000,hi +24.300000,71.600000,hi +24.400000,71.600000,hi +24.500000,71.600000,hi +24.500000,71.700000,hi +24.400000,71.700000,hi +24.400000,71.800000,hi +24.500000,71.800000,gu +24.500000,71.900000,gu +24.400000,71.900000,gu +24.300000,71.900000,gu +24.300000,71.800000,hi +24.200000,71.800000,hi +24.200000,71.900000,hi +24.100000,71.900000,hi +24.000000,71.900000,gu +24.000000,71.800000,gu +24.100000,71.800000,gu +24.100000,71.700000,hi +24.100000,71.600000,gu +24.000000,71.600000,hi +24.000000,71.700000,hi +23.900000,71.700000,hi +23.900000,71.600000,hi +23.800000,71.600000,gu +23.800000,71.700000,hi +23.800000,71.800000,hi +23.900000,71.800000,gu +23.900000,71.900000,gu +23.800000,71.900000,gu +23.700000,71.800000,gu +23.700000,71.900000,gu +23.600000,71.900000,gu +23.500000,71.900000,gu +23.500000,71.800000,gu +23.600000,71.800000,gu +23.600000,71.700000,hi +23.500000,71.700000,hi +23.500000,71.600000,hi +23.600000,71.600000,hi +23.700000,71.700000,hi +23.700000,71.600000,hi +23.700000,71.500000,hi +23.600000,71.500000,gu +23.600000,71.400000,gu +23.700000,71.400000,hi +23.700000,71.300000,gu +23.700000,71.200000,gu +23.600000,71.200000,gu +23.600000,71.300000,gu +23.500000,71.300000,gu +23.500000,71.200000,gu +23.400000,71.200000,gu +23.400000,71.300000,en +23.400000,71.400000,gu +23.500000,71.400000,hi +23.500000,71.500000,hi +23.400000,71.500000,hi +23.300000,71.500000,hi +23.300000,71.400000,hi +23.300000,71.300000,hi +23.300000,71.200000,hi +23.200000,71.200000,hi +23.200000,71.300000,gu +23.100000,71.300000,hi +23.100000,71.200000,hi +23.000000,71.200000,gu +23.100000,71.400000,hi +23.200000,71.400000,gu +23.200000,71.500000,gu +23.100000,71.500000,gu +23.100000,71.600000,gu +23.100000,71.700000,gu +23.200000,71.700000,gu +23.200000,71.600000,gu +23.300000,71.600000,gu +23.400000,71.600000,gu +23.400000,71.700000,hi +23.300000,71.700000,gu +23.300000,71.800000,gu +23.400000,71.800000,gu +23.400000,71.900000,gu +23.300000,71.900000,gu +23.200000,71.900000,gu +23.200000,71.800000,gu +23.100000,71.800000,gu +23.100000,71.900000,gu +23.100000,72.000000,gu +23.200000,72.100000,gu +23.200000,72.000000,gu +23.300000,72.000000,gu +23.400000,72.000000,ja +23.400000,72.100000,gu +23.300000,72.100000,gu +23.300000,72.200000,gu +23.400000,72.200000,gu +23.400000,72.300000,gu +23.300000,72.300000,gu +23.200000,72.200000,gu +23.200000,72.300000,gu +23.200000,72.400000,gu +23.300000,72.400000,gu +23.300000,72.500000,gu +23.200000,72.500000,gu +23.200000,72.600000,gu +23.200000,72.700000,gu +23.300000,72.700000,gu +23.300000,72.600000,gu +23.400000,72.600000,gu +23.400000,72.700000,gu +23.500000,72.700000,gu +23.500000,72.600000,gu +23.500000,72.500000,gu +23.400000,72.500000,gu +23.400000,72.400000,gu +23.500000,72.400000,gu +23.600000,72.400000,gu +23.600000,72.500000,gu +23.600000,72.600000,gu +23.600000,72.700000,gu +23.700000,72.700000,gu +23.700000,72.600000,gu +23.800000,72.600000,gu +23.800000,72.700000,gu +23.900000,72.700000,gu +23.800000,72.500000,gu +23.700000,72.500000,gu +23.700000,72.400000,gu +23.800000,72.400000,gu +23.800000,72.300000,gu +23.800000,72.200000,gu +23.700000,72.200000,gu +23.700000,72.300000,gu +23.600000,72.300000,gu +23.500000,72.300000,gu +23.500000,72.200000,gu +23.600000,72.200000,gu +23.600000,72.100000,gu +23.500000,72.100000,gu +23.500000,72.000000,gu +23.600000,72.000000,gu +23.700000,72.000000,gu +23.700000,72.100000,gu +23.800000,72.100000,gu +23.800000,72.000000,gu +23.900000,72.000000,gu +24.000000,72.000000,gu +24.000000,72.100000,gu +23.900000,72.100000,gu +23.900000,72.200000,gu +23.900000,72.300000,gu +24.000000,72.300000,gu +24.000000,72.200000,gu +24.100000,72.200000,gu +24.100000,72.300000,gu +24.200000,72.300000,gu +24.200000,72.200000,gu +24.200000,72.100000,gu +24.100000,72.100000,gu +24.100000,72.000000,gu +24.200000,72.000000,gu +24.300000,72.100000,gu +24.300000,72.000000,gu +24.400000,72.000000,gu +24.500000,72.000000,gu +24.500000,72.100000,gu +24.400000,72.100000,gu +24.400000,72.200000,gu +24.500000,72.200000,gu +24.500000,72.300000,gu +24.400000,72.300000,gu +24.300000,72.200000,gu +24.300000,72.300000,gu +24.300000,72.400000,gu +24.300000,72.500000,gu +24.400000,72.500000,gu +24.400000,72.400000,gu +24.500000,72.400000,gu +24.600000,72.400000,gu +24.600000,72.500000,gu +24.500000,72.500000,gu +24.500000,72.600000,gu +24.600000,72.600000,gu +24.600000,72.700000,gu +24.500000,72.700000,gu +24.400000,72.700000,gu +24.400000,72.600000,gu +24.300000,72.600000,gu +24.300000,72.700000,gu +24.200000,72.700000,gu +24.100000,72.700000,gu +24.100000,72.600000,gu +24.200000,72.600000,gu +24.200000,72.500000,gu +24.200000,72.400000,gu +24.100000,72.400000,gu +24.100000,72.500000,gu +24.000000,72.500000,gu +24.000000,72.400000,gu +23.900000,72.400000,gu +23.900000,72.500000,gu +23.900000,72.600000,gu +24.000000,72.600000,gu +24.000000,72.700000,gu +24.000000,72.800000,gu +24.100000,72.800000,gu +24.000000,72.900000,gu +24.000000,73.000000,gu +24.100000,73.000000,gu +24.100000,72.900000,gu +24.200000,72.900000,gu +24.200000,73.000000,gu +24.300000,73.000000,gu +24.200000,72.800000,gu +24.300000,72.800000,gu +24.400000,72.800000,gu +24.500000,72.800000,gu +24.600000,72.800000,gu +24.500000,72.900000,gu +24.600000,72.900000,gu +24.600000,73.000000,gu +24.500000,73.000000,gu +24.400000,72.900000,gu +24.300000,72.900000,gu +24.400000,73.000000,gu +24.400000,73.100000,gu +24.400000,73.200000,gu +24.500000,73.200000,gu +24.500000,73.100000,gu +24.600000,73.100000,gu +24.700000,73.200000,en +24.600000,73.200000,gu +24.600000,73.300000,en +24.700000,73.300000,en +24.700000,73.400000,en +24.600000,73.400000,en +24.500000,73.400000,en +24.500000,73.300000,gu +24.400000,73.300000,gu +24.400000,73.400000,en +24.300000,73.400000,en +24.200000,73.400000,gu +24.200000,73.300000,gu +24.300000,73.300000,gu +24.300000,73.200000,gu +24.300000,73.100000,gu +24.200000,73.100000,gu +24.200000,73.200000,gu +24.100000,73.200000,gu +24.100000,73.100000,gu +24.000000,73.100000,gu +24.000000,73.200000,gu +24.000000,73.300000,gu +24.100000,73.300000,gu +24.100000,73.400000,gu +24.000000,73.400000,gu +23.900000,73.400000,gu +23.900000,73.300000,gu +23.800000,73.300000,gu +23.800000,73.400000,gu +23.700000,73.400000,gu +23.700000,73.300000,gu +23.700000,73.200000,gu +23.600000,73.200000,gu +23.600000,73.100000,gu +23.700000,73.100000,gu +23.800000,73.100000,gu +23.800000,73.200000,gu +23.900000,73.200000,gu +23.900000,73.100000,gu +23.900000,73.000000,gu +23.800000,73.000000,gu +23.800000,72.900000,gu +23.900000,72.900000,gu +23.900000,72.800000,gu +23.800000,72.800000,gu +23.700000,72.800000,gu +23.600000,72.800000,gu +23.600000,72.900000,gu +23.700000,72.900000,gu +23.700000,73.000000,gu +23.600000,73.000000,gu +23.500000,73.000000,gu +23.400000,73.000000,gu +23.400000,72.900000,gu +23.500000,72.900000,gu +23.500000,72.800000,gu +23.400000,72.800000,gu +23.300000,72.800000,gu +23.200000,72.800000,gu +23.200000,72.900000,gu +23.300000,72.900000,gu +23.300000,73.000000,gu +23.300000,73.100000,gu +23.300000,73.200000,gu +23.400000,73.200000,gu +23.400000,73.100000,gu +23.500000,73.100000,gu +23.500000,73.200000,gu +23.500000,73.300000,gu +23.600000,73.300000,gu +23.600000,73.400000,gu +23.500000,73.400000,gu +23.400000,73.400000,gu +23.400000,73.300000,gu +23.300000,73.300000,gu +23.300000,73.400000,gu +23.200000,73.400000,gu +23.100000,73.400000,gu +23.100000,73.300000,gu +23.200000,73.300000,gu +23.200000,73.200000,gu +23.200000,73.100000,gu +23.100000,73.100000,gu +23.100000,73.200000,gu +23.000000,73.200000,gu +23.000000,73.100000,gu +22.900000,73.100000,gu +22.900000,73.200000,gu +22.900000,73.300000,gu +23.000000,73.300000,gu +23.000000,73.400000,gu +22.900000,73.400000,gu +22.800000,73.400000,gu +22.800000,73.300000,gu +22.700000,73.300000,gu +22.700000,73.400000,gu +22.600000,73.400000,gu +22.500000,73.300000,gu +22.600000,73.300000,gu +22.600000,73.200000,gu +22.500000,73.200000,gu +22.500000,73.100000,gu +22.600000,73.100000,gu +22.700000,73.100000,gu +22.700000,73.200000,gu +22.800000,73.200000,gu +22.800000,73.100000,gu +22.800000,73.000000,gu +22.800000,72.900000,gu +22.700000,72.900000,gu +22.700000,73.000000,gu +22.600000,73.000000,gu +22.500000,73.000000,gu +22.500000,72.900000,gu +22.600000,72.900000,gu +22.500000,72.800000,gu +22.600000,72.800000,gu +22.700000,72.800000,gu +22.800000,72.800000,gu +22.900000,72.800000,gu +22.900000,72.900000,gu +22.900000,73.000000,gu +23.000000,73.000000,gu +23.000000,72.900000,gu +23.100000,73.000000,gu +23.200000,73.000000,gu +23.100000,72.900000,gu +23.000000,72.800000,gu +23.100000,72.800000,gu +23.100000,72.700000,gu +23.100000,72.600000,gu +23.000000,72.600000,gu +23.000000,72.700000,gu +22.900000,72.700000,gu +22.800000,72.600000,gu +22.900000,72.600000,gu +22.900000,72.500000,gu +22.800000,72.500000,gu +22.800000,72.400000,gu +22.900000,72.400000,gu +23.000000,72.400000,gu +23.000000,72.500000,gu +23.100000,72.500000,gu +23.100000,72.400000,gu +23.100000,72.300000,gu +23.000000,72.300000,gu +23.000000,72.200000,gu +23.100000,72.200000,gu +23.100000,72.100000,gu +23.000000,72.000000,gu +23.000000,72.100000,gu +22.900000,72.100000,gu +22.900000,72.000000,gu +22.800000,72.000000,hi +22.800000,72.100000,gu +22.800000,72.200000,gu +22.900000,72.200000,gu +22.900000,72.300000,gu +22.800000,72.300000,gu +22.700000,72.300000,gu +22.600000,72.300000,gu +22.600000,72.200000,gu +22.700000,72.200000,gu +22.700000,72.100000,gu +22.700000,72.000000,hi +22.600000,72.000000,gu +22.600000,72.100000,gu +22.500000,72.100000,hi +22.500000,72.000000,hi +22.400000,72.000000,gu +22.400000,72.100000,gu +22.400000,72.200000,gu +22.500000,72.200000,gu +22.500000,72.300000,gu +22.400000,72.300000,gu +22.400000,72.400000,gu +22.500000,72.500000,gu +22.500000,72.400000,gu +22.600000,72.400000,gu +22.700000,72.400000,gu +22.700000,72.500000,gu +22.600000,72.500000,gu +22.700000,72.600000,gu +22.800000,72.700000,gu +22.700000,72.700000,gu +22.600000,72.700000,gu +22.600000,72.600000,gu +22.500000,72.600000,gu +22.500000,72.700000,gu +22.400000,72.700000,gu +22.400000,72.600000,gu +22.300000,72.600000,gu +22.300000,72.700000,gu +22.200000,72.700000,gu +22.100000,72.700000,gu +22.100000,72.600000,gu +22.200000,72.600000,gu +22.200000,72.500000,gu +22.100000,72.500000,gu +22.100000,72.400000,gu +22.200000,72.400000,gu +22.300000,72.400000,gu +22.300000,72.500000,gu +22.400000,72.500000,gu +22.300000,72.300000,gu +22.200000,72.200000,gu +22.300000,72.200000,gu +22.300000,72.100000,hi +22.300000,72.000000,hi +22.200000,72.000000,hi +22.200000,72.100000,hi +22.100000,72.100000,hi +22.100000,72.000000,hi +22.000000,72.000000,gu +22.000000,72.100000,gu +22.100000,72.200000,hi +22.200000,72.300000,gu +22.100000,72.300000,gu +22.000000,72.300000,gu +21.900000,72.300000,gu +21.900000,72.200000,gu +22.000000,72.200000,gu +21.900000,72.000000,gu +21.900000,72.100000,gu +21.800000,72.100000,gu +21.800000,72.000000,gu +21.700000,72.000000,gu +21.700000,72.100000,gu +21.700000,72.200000,gu +21.800000,72.200000,gu +21.800000,72.300000,gu +21.700000,72.300000,gu +21.700000,72.400000,gu +21.700000,72.500000,en +21.800000,72.500000,gu +21.800000,72.400000,gu +21.900000,72.400000,gu +22.000000,72.400000,gu +22.000000,72.500000,gu +21.900000,72.500000,gu +21.900000,72.600000,gu +22.000000,72.600000,gu +22.000000,72.700000,gu +21.900000,72.700000,gu +21.800000,72.700000,gu +21.800000,72.600000,gu +21.700000,72.600000,gu +21.700000,72.700000,gu +21.800000,72.800000,gu +21.800000,72.900000,gu +21.800000,73.000000,gu +21.900000,73.000000,gu +21.900000,72.900000,gu +22.000000,73.000000,gu +22.000000,72.900000,gu +21.900000,72.800000,gu +22.000000,72.800000,gu +22.100000,72.800000,gu +22.200000,72.800000,gu +22.300000,72.800000,gu +22.400000,72.800000,gu +22.300000,72.900000,gu +22.400000,72.900000,gu +22.400000,73.000000,gu +22.300000,73.000000,gu +22.200000,73.000000,gu +22.200000,72.900000,gu +22.100000,72.900000,gu +22.100000,73.000000,gu +22.200000,73.200000,gu +22.300000,73.200000,gu +22.200000,73.100000,gu +22.300000,73.100000,gu +22.400000,73.100000,gu +22.400000,73.200000,gu +22.400000,73.300000,gu +22.500000,73.400000,gu +22.400000,73.400000,gu +22.300000,73.400000,gu +22.300000,73.300000,gu +22.200000,73.300000,gu +22.200000,73.400000,gu +22.100000,73.400000,gu +22.000000,73.400000,gu +22.000000,73.300000,gu +22.100000,73.300000,gu +22.100000,73.200000,gu +22.100000,73.100000,gu +22.000000,73.100000,gu +22.000000,73.200000,gu +21.900000,73.200000,gu +21.900000,73.100000,gu +21.800000,73.100000,gu +21.800000,73.200000,gu +21.800000,73.300000,gu +21.900000,73.300000,gu +21.900000,73.400000,gu +21.800000,73.400000,gu +21.800000,73.500000,gu +21.800000,73.600000,gu +21.900000,73.600000,gu +21.900000,73.500000,gu +22.000000,73.500000,gu +22.100000,73.500000,gu +22.100000,73.600000,gu +22.000000,73.600000,gu +22.000000,73.700000,gu +22.100000,73.700000,gu +22.100000,73.800000,gu +22.000000,73.800000,gu +21.900000,73.700000,gu +21.800000,73.700000,gu +21.900000,73.800000,gu +21.900000,73.900000,gu +22.000000,73.900000,gu +22.000000,74.000000,gu +21.900000,74.000000,gu +21.900000,74.100000,mr +21.900000,74.200000,mr +22.000000,74.200000,gu +22.000000,74.100000,gu +22.100000,74.100000,gu +22.100000,74.200000,gu +22.200000,74.200000,gu +22.200000,74.100000,gu +22.100000,74.000000,gu +22.100000,73.900000,gu +22.200000,73.900000,gu +22.300000,73.900000,gu +22.300000,74.000000,gu +22.200000,74.000000,gu +22.300000,74.100000,gu +22.300000,74.200000,gu +22.400000,74.200000,gu +22.400000,74.100000,gu +22.500000,74.200000,gu +22.500000,74.100000,gu +22.500000,74.000000,gu +22.400000,74.000000,gu +22.400000,73.900000,gu +22.500000,73.900000,gu +22.500000,73.800000,gu +22.500000,73.700000,gu +22.400000,73.700000,gu +22.400000,73.800000,gu +22.300000,73.800000,gu +22.200000,73.800000,gu +22.200000,73.700000,gu +22.300000,73.700000,gu +22.300000,73.600000,gu +22.200000,73.600000,gu +22.200000,73.500000,gu +22.300000,73.500000,gu +22.400000,73.500000,gu +22.400000,73.600000,gu +22.500000,73.600000,gu +22.500000,73.500000,gu +22.600000,73.500000,gu +22.700000,73.500000,gu +22.700000,73.600000,gu +22.600000,73.600000,gu +22.600000,73.700000,gu +22.600000,73.800000,gu +22.700000,73.800000,gu +22.700000,73.700000,gu +22.800000,73.700000,gu +22.800000,73.800000,gu +22.900000,73.800000,gu +22.900000,73.700000,gu +22.800000,73.600000,gu +22.800000,73.500000,gu +22.900000,73.500000,gu +22.900000,73.600000,gu +23.000000,73.600000,gu +23.000000,73.500000,gu +23.100000,73.500000,gu +23.200000,73.500000,gu +23.200000,73.600000,gu +23.100000,73.600000,gu +23.100000,73.700000,gu +23.200000,73.700000,gu +23.200000,73.800000,gu +23.100000,73.800000,gu +23.000000,73.700000,gu +23.000000,73.800000,gu +23.000000,73.900000,gu +23.000000,74.000000,gu +23.100000,74.000000,gu +23.100000,73.900000,gu +23.200000,73.900000,gu +23.300000,74.000000,gu +23.200000,74.000000,gu +23.200000,74.100000,gu +23.300000,74.100000,gu +23.300000,74.200000,gu +23.200000,74.200000,gu +23.100000,74.200000,gu +23.100000,74.100000,gu +23.000000,74.100000,gu +23.000000,74.200000,gu +22.900000,74.200000,gu +22.800000,74.200000,gu +22.800000,74.100000,gu +22.900000,74.100000,gu +22.900000,74.000000,gu +22.900000,73.900000,gu +22.800000,73.900000,gu +22.800000,74.000000,gu +22.700000,74.000000,gu +22.700000,73.900000,gu +22.600000,73.900000,hi +22.600000,74.000000,gu +22.600000,74.100000,gu +22.700000,74.100000,gu +22.700000,74.200000,gu +22.600000,74.200000,gu +22.600000,74.300000,gu +22.700000,74.300000,gu +22.700000,74.400000,gu +22.700000,74.500000,gu +22.800000,74.500000,gu +22.900000,74.500000,gu +22.900000,74.400000,gu +22.800000,74.400000,gu +22.800000,74.300000,gu +22.900000,74.300000,gu +23.000000,74.300000,gu +23.000000,74.400000,gu +23.100000,74.400000,gu +23.100000,74.300000,gu +23.200000,74.300000,gu +23.300000,74.300000,gu +23.300000,74.400000,gu +23.200000,74.400000,gu +23.300000,74.500000,gu +23.200000,74.500000,gu +23.100000,74.500000,gu +23.000000,74.500000,gu +23.100000,74.600000,gu +23.000000,74.600000,gu +22.900000,74.600000,gu +22.800000,74.600000,gu +22.700000,74.600000,gu +22.300000,74.600000,en +22.400000,74.600000,en +22.500000,74.600000,gu +22.600000,74.600000,gu +22.600000,74.500000,gu +22.500000,74.500000,gu +22.600000,74.400000,gu +22.500000,74.300000,gu +22.500000,74.400000,gu +22.400000,74.400000,gu +22.400000,74.300000,gu +22.300000,74.300000,gu +22.300000,74.400000,gu +22.400000,74.500000,en +22.300000,74.500000,en +22.200000,74.500000,en +22.100000,74.500000,en +22.200000,74.400000,gu +22.200000,74.300000,gu +22.100000,74.300000,gu +22.100000,74.400000,en +22.000000,74.400000,mr +22.000000,74.300000,mr +21.900000,74.300000,mr +21.900000,74.400000,mr +22.000000,74.500000,en +21.900000,74.500000,mr +21.900000,74.600000,mr +21.900000,74.700000,mr +22.000000,74.700000,en +22.000000,74.600000,en +22.100000,74.600000,en +22.200000,74.600000,en +22.200000,76.200000,en +22.200000,76.400000,en +22.200000,76.300000,en +22.300000,76.300000,en +22.300000,76.400000,en +22.400000,76.400000,en +22.400000,76.300000,en +22.400000,76.200000,en +22.300000,76.200000,en +22.500000,76.200000,en +22.500000,76.300000,en +22.500000,76.400000,en +22.600000,76.400000,en +22.600000,76.300000,en +22.600000,76.200000,en +23.400000,75.900000,id +23.300000,75.900000,id +23.300000,75.800000,id +23.400000,75.800000,id +23.400000,75.700000,id +23.300000,75.700000,id +23.300000,75.600000,id +23.400000,75.600000,id +23.400000,75.500000,id +23.300000,75.500000,id +23.700000,75.700000,id +23.700000,75.600000,id +23.700000,75.500000,id +23.600000,75.500000,id +23.500000,75.500000,id +23.500000,75.600000,id +23.600000,75.600000,id +23.600000,75.700000,id +23.500000,75.700000,id +23.500000,75.800000,id +23.600000,75.800000,id +23.700000,75.800000,id +23.700000,75.900000,id +23.600000,75.900000,id +23.500000,75.900000,id +24.900000,75.700000,en +24.800000,75.700000,en +24.800000,75.600000,en +24.900000,75.600000,en +24.900000,75.500000,en +24.900000,75.400000,en +24.800000,75.400000,en +24.800000,75.500000,en +24.700000,75.500000,en +24.700000,75.400000,en +24.600000,75.400000,en +24.600000,75.500000,en +24.600000,75.600000,en +24.700000,75.600000,en +24.700000,75.700000,en +24.600000,75.700000,en +24.600000,75.300000,en +24.700000,75.300000,en +24.700000,75.200000,en +24.800000,75.200000,en +24.800000,75.300000,en +24.900000,75.300000,en +24.900000,75.200000,en +24.800000,74.300000,es +24.700000,74.300000,es +24.400000,74.500000,en +24.300000,74.500000,en +24.400000,74.400000,en +24.400000,74.300000,en +24.300000,74.300000,en +24.300000,74.400000,en +24.200000,74.400000,en +24.200000,74.300000,en +24.100000,74.300000,en +24.100000,74.400000,en +24.200000,74.500000,en +24.200000,74.600000,en +24.200000,74.700000,en +24.300000,74.700000,en +24.300000,74.600000,en +24.400000,74.600000,en +24.400000,74.700000,en +24.100000,74.700000,en +24.100000,74.600000,en +24.000000,74.600000,en +24.000000,74.700000,en +23.400000,74.300000,gu +23.500000,74.300000,gu +23.900000,74.400000,en +24.000000,74.500000,en +24.100000,74.500000,en +24.000000,74.400000,en +23.900000,74.300000,en +24.000000,74.300000,en +24.000000,74.200000,en +23.900000,74.200000,en +23.900000,74.100000,en +24.000000,74.100000,en +24.000000,74.000000,en +23.900000,74.000000,en +23.500000,74.200000,gu +23.400000,74.200000,gu +23.400000,74.100000,gu +23.500000,74.100000,gu +23.400000,74.000000,gu +23.300000,73.900000,gu +23.400000,73.900000,gu +23.500000,73.900000,gu +23.500000,74.000000,gu +23.600000,74.000000,gu +23.600000,73.900000,gu +23.600000,73.800000,gu +23.600000,73.700000,gu +23.500000,73.700000,gu +23.500000,73.800000,gu +23.400000,73.800000,gu +23.300000,73.800000,gu +23.300000,73.700000,gu +23.400000,73.700000,gu +23.400000,73.600000,gu +23.300000,73.600000,gu +23.300000,73.500000,gu +23.400000,73.500000,gu +23.500000,73.500000,gu +23.500000,73.600000,gu +23.600000,73.600000,gu +23.600000,73.500000,gu +23.700000,73.500000,gu +23.800000,73.500000,gu +23.800000,73.600000,gu +23.700000,73.600000,gu +23.700000,73.700000,gu +23.700000,73.800000,gu +23.800000,73.800000,gu +23.800000,73.700000,gu +23.900000,73.700000,gu +24.000000,73.600000,gu +23.900000,73.600000,gu +23.900000,73.500000,gu +24.000000,73.500000,gu +24.100000,73.600000,gu +24.100000,73.500000,gu +24.200000,73.500000,gu +24.300000,73.500000,en +24.200000,73.600000,gu +24.200000,74.000000,en +24.100000,74.000000,en +24.100000,74.100000,en +24.100000,74.200000,en +24.200000,74.200000,en +24.200000,74.100000,en +24.300000,74.100000,en +24.300000,74.200000,en +24.300000,74.000000,en +24.700000,74.100000,es +24.700000,74.200000,es +24.800000,74.200000,es +24.800000,74.100000,es +24.700000,74.000000,es +24.700000,73.900000,es +24.400000,73.500000,en +24.500000,73.500000,en +24.600000,73.500000,en +24.700000,73.500000,en +24.800000,73.500000,en +24.900000,73.500000,en +25.000000,73.500000,en +25.100000,73.500000,en +25.200000,73.500000,en +25.200000,73.900000,es +25.200000,74.000000,es +25.200000,74.100000,es +25.200000,74.200000,es +25.100000,74.200000,es +25.000000,74.200000,es +25.000000,74.100000,es +25.100000,74.100000,es +25.100000,74.000000,es +25.100000,73.900000,es +25.000000,73.900000,es +25.000000,74.000000,es +24.900000,74.000000,es +24.900000,73.900000,es +24.800000,73.900000,es +24.800000,74.000000,es +24.900000,74.100000,es +24.900000,74.200000,es +24.900000,74.300000,es +25.000000,74.300000,es +25.100000,74.300000,es +25.200000,74.300000,es +26.300000,74.800000,es +26.300000,74.700000,es +26.300000,74.600000,es +26.300000,74.500000,es +26.300000,74.400000,es +26.100000,73.900000,ta +26.100000,74.000000,ta +26.000000,74.000000,ta +26.000000,73.900000,ta +25.900000,73.900000,ta +25.900000,74.000000,ta +25.700000,74.000000,ta +25.700000,73.900000,ta +25.800000,74.000000,ta +25.800000,73.900000,ta +25.800000,73.800000,ta +25.800000,73.700000,ta +25.700000,73.700000,ta +25.700000,73.800000,ta +25.700000,73.600000,ta +25.800000,73.600000,ta +26.000000,73.600000,ta +25.900000,73.600000,ta +25.900000,73.700000,ta +25.900000,73.800000,ta +26.000000,73.800000,ta +26.000000,73.700000,ta +26.100000,73.700000,ta +26.100000,73.800000,ta +26.100000,73.600000,ta +26.700000,74.600000,es +26.700000,74.300000,fr +26.700000,74.400000,es +26.700000,74.500000,es +26.600000,74.500000,es +26.600000,74.400000,es +26.600000,74.300000,fr +26.500000,74.300000,fr +26.500000,74.400000,es +26.400000,74.300000,fr +26.300000,74.300000,fr +26.400000,74.400000,es +26.500000,74.500000,fr +26.400000,74.500000,es +26.400000,74.600000,es +26.400000,74.700000,es +26.500000,74.700000,es +26.500000,74.600000,es +26.600000,74.600000,es +26.700000,74.700000,es +26.600000,74.700000,es +26.600000,74.800000,es +26.700000,74.800000,es +26.500000,74.800000,es +26.400000,74.800000,es +26.600000,75.700000,ar +26.700000,75.700000,ar +26.800000,75.700000,ar +26.900000,75.700000,ar +27.000000,75.700000,ar +27.200000,75.800000,ar +27.300000,75.800000,ar +27.300000,76.000000,ar +27.400000,76.000000,ar +27.300000,75.900000,ar +27.400000,75.900000,ar +27.500000,76.000000,ar +27.500000,75.900000,ar +27.400000,75.800000,ar +27.500000,75.800000,ar +27.900000,76.200000,ja +27.800000,76.200000,ja +27.800000,76.300000,ja +27.900000,76.300000,ja +27.900000,76.400000,ja +27.800000,76.400000,ja +27.700000,76.300000,en +27.700000,76.400000,en +27.600000,76.400000,en +27.500000,76.400000,en +27.500000,76.300000,en +27.600000,76.300000,en +27.500000,76.100000,ar +27.500000,76.200000,ar +27.400000,76.200000,ar +27.400000,76.100000,ar +27.300000,76.100000,ar +27.300000,76.200000,ar +27.400000,76.300000,en +27.400000,76.400000,en +27.000000,76.200000,ar +26.900000,76.100000,ar +27.000000,76.100000,ar +27.100000,76.100000,ar +27.100000,76.200000,ar +27.200000,76.200000,ar +27.200000,76.100000,ar +27.200000,76.000000,ar +27.100000,76.000000,ar +27.100000,75.900000,ar +27.200000,75.900000,ar +27.100000,75.800000,ar +27.000000,75.800000,ar +26.900000,75.800000,ar +26.900000,75.900000,ar +27.000000,75.900000,ar +27.000000,76.000000,ar +26.900000,76.000000,ar +26.800000,76.000000,ar +26.700000,76.000000,ar +26.700000,75.900000,ar +26.800000,75.900000,ar +26.800000,75.800000,ar +26.700000,75.800000,ar +26.600000,75.800000,ar +26.600000,75.900000,ar +26.600000,76.000000,ar +26.600000,76.100000,ar +26.700000,76.100000,ar +26.800000,76.100000,ar +25.400000,75.700000,en +25.400000,75.600000,en +25.400000,75.500000,en +25.400000,75.400000,en +25.000000,75.200000,en +25.100000,75.200000,en +25.100000,75.300000,en +25.000000,75.300000,en +25.000000,75.400000,en +25.000000,75.500000,en +25.100000,75.500000,en +25.100000,75.400000,en +25.200000,75.400000,en +25.300000,75.400000,en +25.300000,75.500000,en +25.200000,75.500000,en +25.200000,75.600000,en +25.300000,75.600000,en +25.300000,75.700000,en +25.200000,75.700000,en +25.100000,75.700000,en +25.100000,75.600000,en +25.000000,75.600000,en +25.000000,75.700000,en +25.000000,75.800000,en +25.100000,75.800000,en +25.200000,75.800000,en +25.300000,75.800000,en +25.400000,75.800000,en +25.300000,76.700000,en +25.300000,76.800000,en +25.400000,76.800000,en +25.400000,76.700000,en +25.700000,76.700000,en +25.800000,76.700000,en +25.800000,76.800000,en +25.700000,76.800000,en +25.600000,76.800000,en +25.600000,76.700000,en +25.500000,76.700000,en +25.500000,76.800000,en +25.500000,76.900000,en +25.500000,77.000000,en +25.600000,77.000000,en +25.600000,76.900000,en +25.700000,76.900000,en +25.800000,76.900000,en +25.800000,77.000000,en +25.700000,77.000000,en +25.700000,77.100000,en +25.800000,77.100000,en +25.600000,77.100000,en +25.500000,77.100000,en +25.300000,77.100000,en +25.400000,77.100000,en +25.400000,77.000000,en +25.400000,76.900000,en +25.300000,76.900000,en +25.300000,77.000000,en +25.100000,77.100000,en +25.200000,77.300000,en +25.200000,77.200000,en +25.400000,77.200000,en +25.400000,77.300000,en +25.400000,77.400000,en +25.500000,77.500000,en +25.400000,77.500000,en +25.200000,77.400000,en +25.200000,77.500000,en +25.200000,77.600000,en +25.300000,77.600000,en +25.300000,77.700000,en +25.300000,77.900000,en +25.300000,77.800000,en +25.400000,77.800000,en +25.400000,77.900000,en +25.500000,77.900000,en +25.500000,77.800000,en +25.500000,77.700000,en +25.400000,77.700000,en +25.400000,77.600000,en +25.500000,77.600000,en +25.600000,77.600000,en +25.700000,77.700000,en +25.600000,77.700000,en +25.600000,77.800000,en +25.600000,77.900000,en +25.700000,77.900000,en +25.700000,77.800000,en +25.800000,77.800000,en +25.800000,77.900000,en +25.900000,77.900000,en +25.900000,77.800000,en +25.800000,77.700000,en +25.700000,77.600000,en +25.800000,77.600000,en +25.800000,77.500000,en +25.800000,77.400000,en +25.700000,77.400000,en +25.700000,77.500000,en +25.600000,77.500000,en +25.500000,77.400000,en +25.600000,77.400000,en +25.600000,77.300000,en +25.500000,77.300000,en +25.500000,77.200000,en +25.600000,77.200000,en +25.700000,77.200000,en +25.700000,77.300000,en +25.800000,77.300000,en +25.800000,77.200000,en +25.900000,77.200000,en +25.900000,77.300000,en +26.000000,77.300000,en +26.000000,77.200000,en +26.200000,77.200000,en +26.200000,77.300000,en +26.100000,77.300000,en +26.100000,77.400000,en +26.200000,77.400000,en +26.200000,77.500000,en +26.100000,77.500000,en +26.000000,77.500000,en +26.000000,77.400000,en +25.900000,77.400000,en +25.900000,77.500000,en +25.900000,77.600000,en +26.000000,77.600000,en +26.000000,77.700000,en +25.900000,77.700000,en +26.000000,77.900000,en +26.000000,77.800000,en +26.100000,77.800000,en +26.100000,77.900000,en +26.200000,77.900000,en +26.200000,77.800000,en +26.200000,77.700000,en +26.100000,77.700000,en +26.100000,77.600000,en +26.200000,77.600000,en +26.600000,77.500000,en +26.600000,77.400000,en +26.500000,77.400000,en +26.500000,77.500000,en +26.400000,77.500000,en +26.300000,77.500000,en +26.300000,77.400000,en +26.400000,77.400000,en +26.400000,77.300000,en +26.300000,77.300000,en +26.300000,77.200000,en +26.400000,77.200000,en +26.500000,77.300000,en +26.600000,77.300000,en +26.500000,77.200000,en +26.400000,77.100000,en +26.500000,77.100000,en +26.400000,76.900000,en +26.400000,77.000000,en +26.300000,77.000000,en +26.300000,76.900000,en +26.200000,76.900000,en +26.300000,77.100000,en +26.200000,77.100000,en +25.900000,77.100000,en +26.000000,77.100000,en +26.000000,77.000000,en +25.900000,77.000000,en +26.000000,76.900000,en +26.100000,76.900000,en +26.100000,77.000000,en +26.200000,77.000000,en +26.100000,76.800000,en +26.100000,76.700000,en +26.000000,76.700000,en +26.000000,76.800000,en +26.000000,76.500000,en +26.000000,76.600000,en +26.100000,76.600000,en +26.100000,76.500000,en +26.200000,76.500000,en +26.300000,76.500000,en +26.300000,76.600000,en +26.200000,76.600000,en +26.200000,76.700000,en +26.200000,76.800000,en +26.300000,76.800000,en +26.300000,76.700000,en +26.400000,76.700000,en +26.400000,76.800000,en +26.400000,76.600000,en +26.400000,76.500000,en +26.600000,77.100000,en +27.300000,77.100000,ar +27.400000,76.500000,en +27.400000,76.600000,en +27.400000,76.700000,en +27.500000,76.700000,en +27.600000,76.700000,en +27.600000,76.600000,en +27.500000,76.600000,en +27.500000,76.500000,en +27.600000,76.500000,en +27.700000,76.500000,en +27.700000,76.600000,en +27.800000,76.600000,ja +27.800000,76.500000,ja +27.900000,76.500000,ja +28.000000,76.500000,ja +28.000000,76.600000,ja +27.900000,76.600000,ja +27.900000,76.700000,ja +28.000000,76.700000,ja +28.000000,76.800000,ja +27.900000,76.800000,ja +27.800000,76.700000,en +27.700000,76.700000,en +28.000000,77.000000,pt +28.000000,77.100000,pt +27.700000,77.100000,ar +27.600000,77.100000,ar +27.400000,77.100000,ar +27.500000,77.100000,ar +27.400000,77.200000,ar +27.500000,77.200000,ar +27.500000,77.300000,ar +27.400000,77.300000,ar +27.400000,77.400000,ar +27.400000,77.500000,ru +27.500000,77.500000,ru +27.500000,77.400000,ar +27.600000,77.400000,ar +27.600000,77.500000,ru +27.700000,77.500000,ru +27.700000,77.400000,ar +27.700000,77.300000,ar +27.600000,77.300000,ar +27.600000,77.200000,ar +27.700000,77.200000,ar +28.000000,77.200000,pt +28.000000,77.300000,pt +28.000000,77.400000,pt +27.800000,77.500000,ru +27.800000,77.600000,ru +27.800000,77.700000,ru +28.100000,77.900000,ar +28.000000,77.900000,ar +27.900000,77.900000,ar +27.800000,77.800000,ru +27.800000,77.900000,ar +27.700000,77.900000,ar +27.600000,77.900000,ru +27.600000,77.800000,ru +27.700000,77.800000,ru +27.700000,77.700000,ru +27.700000,77.600000,ru +27.600000,77.600000,ru +27.600000,77.700000,ru +27.500000,77.700000,ru +27.500000,77.600000,ru +27.400000,77.600000,ru +27.400000,77.700000,ru +27.400000,77.800000,ru +27.500000,77.800000,ru +27.500000,77.900000,ru +27.400000,77.900000,ru +27.300000,77.800000,id +27.300000,77.900000,es +27.200000,77.900000,es +27.100000,77.900000,es +27.200000,77.800000,id +27.300000,77.500000,ar +27.300000,77.400000,ar +27.300000,77.300000,ar +27.300000,77.200000,ar +26.600000,77.200000,en +27.000000,77.900000,es +27.000000,78.000000,es +27.000000,78.100000,es +27.000000,78.200000,es +27.000000,78.300000,es +27.100000,78.300000,es +27.200000,78.300000,es +27.300000,78.300000,es +27.400000,78.300000,es +27.400000,78.200000,es +27.300000,78.200000,es +27.100000,78.200000,es +27.200000,78.200000,es +27.200000,78.100000,es +27.100000,78.100000,es +27.100000,78.000000,es +27.200000,78.000000,es +27.300000,78.000000,es +27.300000,78.100000,es +27.400000,78.100000,es +27.400000,78.000000,id +27.500000,78.000000,id +27.500000,78.100000,id +27.500000,78.200000,id +27.600000,78.200000,id +27.700000,78.200000,ar +27.700000,78.100000,ar +27.600000,78.100000,id +27.600000,78.000000,id +27.700000,78.000000,ar +27.800000,78.000000,ar +27.800000,78.100000,ar +27.900000,78.100000,ar +27.900000,78.000000,ar +28.000000,78.000000,ar +28.100000,78.000000,ar +28.100000,78.100000,ar +28.000000,78.100000,ar +28.000000,78.200000,ar +28.100000,78.200000,ar +27.900000,78.200000,ar +27.800000,78.200000,ar +27.900000,78.300000,ar +28.000000,78.300000,ar +28.100000,78.300000,ar +28.100000,78.400000,id +28.000000,78.400000,id +28.100000,78.500000,id +28.000000,78.500000,id +27.800000,78.300000,ar +27.700000,78.300000,ar +28.200000,78.700000,id +28.200000,78.800000,id +25.700000,78.000000,en +25.600000,78.000000,en +25.500000,78.000000,en +25.400000,78.000000,en +25.300000,78.000000,en +24.500000,78.700000,en +24.500000,78.800000,en +24.300000,79.100000,en +24.200000,79.100000,en +24.200000,79.200000,en +24.300000,79.200000,en +24.300000,79.300000,en +24.200000,79.300000,en +24.100000,79.300000,en +24.100000,79.200000,en +24.000000,79.200000,en +24.000000,79.300000,en +23.900000,79.300000,en +23.900000,79.200000,en +23.900000,79.100000,en +24.000000,79.100000,en +24.100000,79.100000,en +24.100000,79.000000,en +24.000000,79.000000,en +23.900000,79.000000,en +24.100000,78.800000,en +24.100000,78.700000,en +24.200000,78.700000,en +24.200000,78.800000,en +24.200000,79.000000,en +24.300000,79.000000,en +24.400000,78.800000,en +24.300000,78.800000,en +24.300000,78.700000,en +24.400000,78.700000,en +24.400000,78.600000,en +24.300000,78.600000,en +24.300000,78.500000,en +24.400000,78.500000,en +24.400000,78.400000,en +24.300000,78.400000,en +24.200000,78.400000,en +24.100000,78.400000,en +24.100000,78.500000,en +24.200000,78.500000,en +24.200000,78.600000,en +24.100000,78.600000,en +23.700000,78.100000,ar +23.700000,78.000000,id +24.500000,78.400000,en +24.500000,78.500000,en +24.500000,78.600000,en +25.100000,77.600000,en +25.000000,77.600000,en +24.900000,77.600000,en +24.800000,77.600000,en +24.700000,77.500000,en +24.700000,77.400000,en +24.700000,77.300000,en +24.700000,77.200000,en +24.800000,77.200000,en +24.900000,77.200000,en +24.900000,77.300000,en +24.800000,77.300000,en +24.800000,77.400000,en +24.800000,77.500000,en +24.900000,77.500000,en +24.900000,77.400000,en +25.000000,77.400000,en +25.000000,77.500000,en +25.100000,77.500000,en +25.100000,77.400000,en +25.100000,77.300000,en +25.000000,77.300000,en +25.000000,77.200000,en +25.100000,77.200000,en +25.000000,77.100000,en +24.800000,77.100000,en +24.900000,77.100000,en +24.700000,77.100000,en +23.700000,77.600000,id +23.700000,77.700000,id +23.700000,77.800000,id +23.700000,77.900000,id +23.600000,77.900000,id +23.500000,77.900000,ar +23.500000,77.800000,id +23.600000,77.800000,id +23.600000,77.700000,id +23.600000,77.600000,id +23.500000,77.600000,id +23.500000,77.700000,id +23.400000,77.700000,id +23.400000,77.600000,id +23.300000,77.600000,id +23.300000,77.700000,id +23.300000,77.800000,id +23.400000,77.800000,id +23.400000,77.900000,id +23.300000,77.900000,id +22.900000,77.600000,en +23.000000,77.600000,en +23.100000,77.600000,en +23.200000,77.600000,en +23.200000,77.500000,en +23.200000,77.400000,en +23.100000,77.400000,en +23.100000,77.500000,en +23.000000,77.500000,en +22.900000,77.500000,en +22.900000,77.400000,en +23.000000,77.400000,en +23.000000,77.300000,en +22.900000,77.300000,en +22.900000,77.200000,en +23.000000,77.200000,en +23.100000,77.200000,en +23.100000,77.300000,en +23.200000,77.300000,en +23.200000,77.200000,en +22.500000,77.000000,en +22.500000,76.900000,en +22.600000,76.600000,en +22.600000,76.500000,en +22.500000,76.500000,en +22.500000,76.600000,en +22.500000,76.700000,en +22.500000,76.800000,en +22.400000,76.800000,en +22.300000,76.800000,en +22.300000,76.700000,en +22.400000,76.700000,en +22.400000,76.600000,en +22.400000,76.500000,en +22.300000,76.500000,en +22.300000,76.600000,en +22.200000,76.600000,en +22.200000,76.500000,en +22.100000,76.600000,en +22.100000,76.700000,en +22.200000,76.700000,en +22.200000,76.800000,en +22.100000,76.800000,en +22.100000,76.900000,en +22.100000,77.000000,en +22.200000,77.000000,en +22.200000,76.900000,en +22.300000,76.900000,en +22.400000,76.900000,en +22.400000,77.000000,en +22.300000,77.000000,en +22.200000,77.200000,en +22.300000,77.300000,en +22.200000,77.300000,en +22.200000,77.400000,en +22.200000,77.500000,en +22.300000,77.500000,en +22.300000,77.400000,en +22.400000,77.400000,en +22.400000,77.500000,en +22.500000,77.500000,en +22.400000,77.300000,en +22.300000,77.200000,en +22.400000,77.200000,en +22.800000,77.200000,en +22.800000,77.300000,en +22.800000,77.400000,en +22.800000,77.500000,en +22.800000,77.600000,en +22.500000,77.900000,en +22.400000,77.900000,en +22.400000,77.800000,en +22.500000,77.800000,en +22.500000,77.700000,en +22.500000,77.600000,en +22.400000,77.600000,en +22.400000,77.700000,en +22.300000,77.700000,en +22.300000,77.600000,en +22.200000,77.600000,en +22.200000,77.700000,en +22.200000,77.800000,en +22.300000,77.800000,en +22.300000,77.900000,en +22.200000,77.900000,en +22.200000,78.000000,en +22.200000,78.100000,en +22.300000,78.100000,en +22.300000,78.000000,en +22.400000,78.000000,en +22.500000,78.000000,en +22.500000,78.100000,en +22.400000,78.100000,en +22.400000,78.200000,en +22.500000,78.200000,en +22.300000,78.200000,en +22.200000,78.200000,en +22.200000,78.300000,en +22.300000,78.300000,en +22.300000,78.400000,en +22.300000,78.500000,en +22.300000,78.600000,en +22.400000,78.600000,en +22.400000,78.500000,en +22.500000,78.600000,en +22.500000,78.500000,en +22.500000,78.400000,en +22.400000,78.400000,en +22.400000,78.300000,en +22.500000,78.300000,en +22.600000,78.300000,en +22.700000,78.300000,en +22.700000,78.400000,en +22.600000,78.400000,en +22.600000,78.500000,en +22.600000,78.600000,en +22.700000,78.600000,en +22.700000,78.500000,en +22.800000,78.500000,en +22.800000,78.600000,en +22.800000,78.400000,en +22.800000,78.300000,en +22.800000,78.200000,en +22.600000,78.200000,en +22.700000,78.200000,en +22.700000,78.100000,en +22.600000,78.100000,en +22.600000,78.000000,en +22.700000,78.000000,en +22.800000,78.000000,en +22.800000,78.100000,en +23.300000,78.100000,ar +23.300000,78.000000,id +23.400000,78.100000,ar +23.400000,78.000000,id +23.500000,78.000000,id +23.600000,78.000000,id +23.600000,78.100000,ar +23.500000,78.100000,ar +22.800000,79.300000,en +22.700000,79.300000,en +22.700000,79.200000,en +22.800000,79.200000,en +22.700000,79.100000,en +22.800000,79.100000,en +22.800000,78.700000,en +22.800000,78.800000,en +22.700000,78.700000,en +22.700000,78.800000,en +22.700000,78.900000,en +22.800000,78.900000,en +22.800000,79.000000,en +22.700000,79.000000,en +22.600000,79.000000,en +22.500000,79.000000,en +22.500000,78.900000,en +22.600000,78.900000,en +22.600000,78.800000,en +22.600000,78.700000,en +22.500000,78.700000,en +22.500000,78.800000,en +22.400000,78.800000,en +22.400000,78.700000,en +22.300000,78.700000,en +22.300000,78.800000,en +22.300000,78.900000,en +22.400000,78.900000,en +22.400000,79.000000,en +22.400000,79.100000,en +22.500000,79.100000,en +22.600000,79.100000,en +22.500000,79.200000,en +22.600000,79.200000,en +22.600000,79.300000,en +22.500000,79.300000,en +22.400000,79.300000,en +22.400000,79.200000,en +22.400000,79.400000,en +22.400000,79.500000,en +22.600000,79.500000,en +22.500000,79.500000,en +22.500000,79.400000,en +22.600000,79.400000,en +22.700000,79.400000,en +22.700000,79.500000,en +22.800000,79.500000,en +22.800000,79.400000,en +22.700000,79.800000,en +22.700000,79.900000,en +22.800000,79.900000,en +22.800000,79.800000,en +22.900000,79.800000,en +23.000000,79.800000,en +23.000000,79.900000,en +22.900000,79.900000,en +22.900000,80.000000,en +23.000000,80.000000,en +22.800000,80.000000,en +22.700000,80.000000,en +22.600000,80.000000,en +22.600000,79.900000,en +22.400000,80.100000,en +22.400000,80.200000,en +22.500000,80.200000,en +22.500000,80.100000,en +22.600000,80.100000,en +22.600000,80.200000,en +22.600000,80.300000,en +22.700000,80.300000,en +22.700000,80.400000,en +22.600000,80.400000,en +22.500000,80.400000,en +22.500000,80.300000,en +22.400000,80.300000,en +22.400000,80.400000,en +22.400000,80.500000,en +22.500000,80.500000,en +22.500000,80.600000,en +22.400000,80.600000,en +22.400000,80.700000,en +22.400000,80.800000,en +22.500000,80.800000,en +22.500000,80.700000,en +22.600000,80.700000,en +22.600000,80.800000,en +22.700000,80.800000,en +22.700000,80.700000,en +22.700000,80.600000,en +22.600000,80.600000,en +22.600000,80.500000,en +22.700000,80.500000,en +22.800000,80.500000,en +22.900000,80.500000,en +22.900000,80.600000,en +22.800000,80.600000,en +22.800000,80.700000,en +22.800000,80.800000,en +22.900000,80.800000,en +22.900000,80.700000,en +23.000000,80.700000,en +23.000000,80.800000,en +23.100000,80.800000,en +23.100000,80.700000,en +23.100000,80.600000,en +23.000000,80.600000,en +23.000000,80.500000,en +23.000000,80.400000,en +23.000000,80.300000,en +22.900000,80.300000,en +22.900000,80.400000,en +22.800000,80.400000,en +22.800000,80.300000,en +22.800000,80.200000,en +22.700000,80.200000,en +22.700000,80.100000,en +22.800000,80.100000,en +22.900000,80.100000,en +22.900000,80.200000,en +23.000000,80.200000,en +23.000000,80.100000,en +23.100000,80.100000,en +23.100000,80.200000,en +23.100000,80.400000,en +23.100000,80.500000,en +23.200000,80.500000,en +23.200000,80.600000,en +23.200000,80.700000,en +23.200000,80.800000,en +23.300000,80.800000,en +23.300000,80.700000,en +23.400000,80.800000,en +23.400000,80.700000,en +23.400000,80.600000,en +23.300000,80.600000,en +23.300000,80.500000,en +23.400000,80.500000,en +23.500000,80.500000,en +23.600000,80.500000,en +23.600000,80.600000,en +23.500000,80.600000,en +23.500000,80.700000,en +23.500000,80.800000,en +23.600000,80.800000,en +23.600000,80.700000,en +23.700000,80.700000,en +23.700000,80.800000,en +23.700000,80.600000,en +23.700000,80.500000,en +23.800000,79.900000,en +23.800000,79.800000,en +23.700000,79.800000,en +23.700000,79.900000,en +23.100000,80.000000,en +23.100000,79.900000,en +23.100000,79.800000,en +23.700000,79.700000,en +23.700000,79.600000,en +23.700000,79.500000,en +23.800000,79.500000,en +23.900000,79.500000,en +23.900000,79.400000,en +24.000000,79.400000,en +24.100000,79.400000,en +24.100000,79.500000,en +24.000000,79.500000,en +24.000000,79.600000,en +24.100000,79.600000,en +24.100000,79.700000,en +24.000000,79.700000,en +23.900000,79.700000,en +23.900000,79.600000,en +23.800000,79.600000,en +23.800000,79.700000,en +23.900000,79.800000,en +23.900000,79.900000,en +24.100000,79.900000,en +24.000000,79.900000,en +24.000000,79.800000,en +24.100000,79.800000,en +24.200000,79.800000,en +24.300000,79.800000,en +24.400000,79.800000,en +24.500000,79.800000,en +24.500000,79.700000,en +24.500000,79.600000,en +24.400000,79.600000,en +24.400000,79.700000,en +24.300000,79.700000,en +24.200000,79.700000,en +24.200000,79.600000,en +24.300000,79.600000,en +24.300000,79.500000,en +24.200000,79.500000,en +24.200000,79.400000,en +24.300000,79.400000,en +24.400000,79.400000,en +24.400000,79.500000,en +24.500000,79.500000,en +24.500000,79.400000,en +24.600000,79.400000,en +24.600000,79.500000,en +24.600000,79.600000,en +24.600000,79.700000,es +24.700000,79.700000,es +24.800000,79.700000,es +24.900000,79.700000,es +25.100000,79.700000,es +25.000000,79.700000,es +25.000000,79.800000,es +25.000000,79.900000,es +25.100000,79.900000,es +25.100000,79.800000,es +25.100000,80.000000,es +25.000000,80.000000,es +24.800000,80.000000,es +24.900000,80.000000,es +24.900000,79.900000,es +24.900000,79.800000,es +24.800000,79.800000,es +24.800000,79.900000,es +24.700000,79.900000,es +24.700000,79.800000,es +24.600000,79.800000,es +24.600000,79.900000,es +24.600000,80.000000,es +24.700000,80.000000,es +24.600000,80.100000,es +24.700000,80.100000,es +24.800000,80.100000,es +24.900000,80.100000,es +25.000000,80.100000,es +25.100000,80.100000,es +24.600000,80.800000,en +24.600000,80.700000,en +24.500000,80.700000,en +24.500000,80.800000,en +24.400000,80.800000,en +24.300000,80.800000,en +24.300000,80.700000,en +24.400000,80.700000,en +24.400000,80.600000,en +24.300000,80.600000,en +24.300000,80.500000,en +24.400000,80.500000,en +24.500000,80.500000,en +24.500000,80.600000,en +24.600000,80.600000,en +24.600000,80.500000,en +24.200000,80.500000,en +24.200000,80.600000,en +24.200000,80.700000,en +24.200000,80.800000,en +24.200000,80.900000,en +24.100000,81.100000,en +24.000000,81.100000,en +23.900000,81.100000,en +23.900000,81.200000,en +24.000000,81.200000,en +24.000000,81.300000,en +23.900000,81.300000,en +24.000000,81.500000,en +24.000000,81.400000,en +24.100000,81.400000,en +24.100000,81.500000,en +24.100000,81.300000,en +24.100000,81.200000,en +24.400000,80.900000,en +24.300000,80.900000,en +24.500000,80.900000,en +24.600000,80.900000,en +25.300000,81.400000,ur +25.400000,81.400000,ur +25.400000,81.500000,ur +25.300000,81.500000,ur +25.300000,81.600000,ur +25.400000,81.600000,ur +25.300000,81.700000,ur +25.400000,81.700000,ur +25.400000,81.800000,ur +25.300000,81.800000,ur +24.100000,81.600000,en +24.000000,81.600000,en +24.000000,81.700000,en +24.100000,81.700000,en +24.100000,81.800000,en +24.000000,81.800000,en +24.000000,81.900000,en +24.100000,81.900000,en +23.800000,82.100000,en +23.900000,82.100000,en +23.900000,82.000000,en +23.900000,81.900000,en +23.800000,81.900000,en +23.800000,82.000000,en +23.700000,82.000000,en +23.700000,81.900000,en +23.600000,81.900000,en +23.600000,82.000000,en +23.600000,82.100000,en +23.700000,82.100000,en +23.700000,82.200000,en +23.500000,82.100000,en +23.300000,82.000000,en +23.200000,82.000000,en +23.200000,81.900000,en +23.300000,81.900000,en +23.400000,81.900000,en +23.400000,82.000000,en +23.500000,82.000000,en +23.500000,81.900000,en +23.500000,81.800000,en +23.500000,81.700000,en +23.400000,81.700000,en +23.400000,81.800000,en +23.300000,81.800000,en +23.200000,81.800000,en +23.200000,81.700000,en +23.300000,81.700000,en +23.200000,81.600000,en +23.300000,81.600000,en +23.400000,81.600000,en +23.500000,81.600000,en +23.600000,81.600000,en +23.700000,81.600000,en +23.600000,81.700000,en +23.600000,81.800000,en +23.700000,81.800000,en +23.700000,81.700000,en +23.800000,81.700000,en +23.800000,81.800000,en +23.900000,81.800000,en +23.900000,81.700000,en +23.800000,81.600000,en +23.900000,81.600000,en +23.900000,81.500000,en +23.900000,81.400000,en +23.800000,81.400000,en +23.800000,81.500000,en +23.700000,81.500000,en +23.600000,81.500000,en +23.600000,81.400000,en +23.700000,81.400000,en +23.700000,81.300000,en +23.600000,81.300000,en +23.700000,81.200000,en +23.800000,81.300000,en +23.800000,81.200000,en +23.800000,81.100000,en +23.700000,81.100000,en +23.700000,80.900000,en +23.600000,80.900000,en +23.500000,80.900000,en +23.400000,81.100000,en +23.400000,81.000000,en +23.400000,80.900000,en +23.300000,80.900000,en +23.200000,80.900000,en +23.200000,81.000000,en +23.300000,81.000000,en +23.300000,81.100000,en +23.200000,81.100000,en +23.200000,81.200000,en +23.200000,81.300000,en +23.300000,81.300000,en +23.300000,81.200000,en +23.400000,81.200000,en +23.400000,81.300000,en +23.400000,81.400000,en +23.300000,81.400000,en +23.200000,81.400000,en +23.200000,81.500000,en +23.100000,81.500000,en +23.100000,81.400000,en +23.000000,81.400000,en +23.000000,81.500000,en +22.900000,81.500000,en +22.800000,81.500000,en +22.800000,81.400000,en +22.900000,81.400000,en +22.900000,81.300000,en +22.800000,81.300000,en +22.800000,81.200000,en +22.900000,81.200000,en +23.000000,81.200000,en +23.000000,81.300000,en +23.100000,81.300000,en +23.100000,81.200000,en +23.100000,81.100000,en +23.000000,81.100000,en +23.000000,81.000000,en +23.100000,81.000000,en +23.100000,80.900000,en +23.000000,80.900000,en +22.900000,80.900000,en +22.800000,80.900000,en +22.800000,81.000000,en +22.900000,81.000000,en +22.900000,81.100000,en +22.800000,81.100000,en +22.700000,81.100000,en +22.600000,81.100000,en +22.600000,81.000000,en +22.700000,81.000000,en +22.700000,80.900000,en +22.600000,80.900000,en +22.500000,80.900000,en +22.400000,80.900000,en +22.400000,81.000000,en +22.500000,81.000000,en +22.500000,81.100000,en +22.400000,81.100000,en +22.400000,81.200000,en +22.400000,81.300000,en +22.500000,81.300000,en +22.500000,81.200000,en +22.600000,81.200000,en +22.700000,81.200000,en +22.700000,81.300000,en +22.600000,81.300000,en +22.600000,81.400000,en +22.700000,81.400000,en +22.700000,81.500000,en +22.600000,81.500000,en +22.500000,81.500000,en +22.500000,81.400000,en +22.400000,81.400000,en +22.400000,81.500000,en +22.500000,81.600000,en +22.500000,81.700000,en +22.500000,81.800000,en +22.600000,81.800000,en +22.600000,81.700000,en +22.700000,81.800000,en +22.700000,81.700000,en +22.600000,81.600000,en +22.700000,81.600000,en +22.800000,81.600000,en +22.900000,81.600000,en +23.000000,81.600000,en +23.100000,81.600000,en +23.000000,81.700000,en +23.100000,81.700000,en +22.900000,81.700000,en +22.800000,81.700000,en +22.800000,81.800000,en +22.800000,81.900000,en +23.100000,82.200000,en +23.000000,82.200000,en +22.900000,82.200000,en +22.800000,82.200000,en +22.700000,82.200000,en +22.700000,82.100000,en +22.800000,82.000000,en +22.700000,81.900000,en +22.700000,82.000000,en +22.600000,82.000000,en +22.600000,81.900000,en +22.500000,81.900000,en +22.500000,82.000000,en +22.500000,82.100000,en +22.600000,82.100000,en +22.700000,82.300000,en +22.800000,82.300000,en +22.700000,82.400000,en +22.800000,82.400000,en +22.800000,82.500000,en +22.700000,82.500000,en +22.600000,82.500000,en +22.500000,82.600000,en +22.600000,82.600000,en +22.600000,82.700000,en +22.500000,82.700000,en +22.500000,82.800000,en +22.500000,82.900000,en +22.600000,82.900000,en +22.600000,82.800000,en +22.700000,82.800000,en +22.700000,82.900000,en +22.800000,82.900000,en +22.800000,82.800000,en +22.800000,82.700000,en +22.700000,82.700000,en +22.700000,82.600000,en +22.800000,82.600000,en +22.900000,82.600000,en +23.000000,82.600000,en +23.000000,82.700000,en +22.900000,82.700000,en +22.900000,82.800000,en +22.900000,82.900000,en +23.000000,82.900000,en +23.000000,82.800000,en +23.100000,82.800000,en +23.100000,82.700000,en +23.100000,82.600000,en +23.100000,82.400000,en +23.100000,82.500000,en +23.000000,82.500000,en +22.900000,82.500000,en +22.900000,82.400000,en +23.000000,82.400000,en +22.900000,82.300000,en +23.000000,82.300000,en +23.100000,82.300000,en +23.400000,82.400000,en +23.400000,82.500000,en +23.500000,82.500000,en +23.500000,82.400000,en +23.800000,82.400000,en +23.900000,82.500000,en +23.800000,82.500000,en +23.700000,82.500000,en +23.700000,82.400000,en +23.600000,82.400000,en +23.600000,82.500000,en +23.600000,82.600000,en +23.600000,82.700000,en +23.700000,82.700000,en +23.700000,82.600000,en +23.800000,82.600000,en +23.900000,82.600000,en +23.900000,82.700000,en +23.800000,82.700000,en +23.800000,82.800000,en +23.900000,82.800000,en +23.900000,82.900000,en +23.800000,82.900000,en +23.700000,82.900000,en +23.700000,82.800000,en +23.600000,82.800000,en +23.600000,82.900000,en +23.500000,82.900000,en +23.500000,82.800000,en +23.500000,82.700000,en +23.500000,82.600000,en +23.400000,82.600000,en +23.400000,82.700000,en +23.400000,82.800000,en +23.400000,82.900000,en +23.400000,83.000000,en +23.400000,83.200000,en +23.400000,83.100000,en +23.500000,83.100000,en +23.500000,83.200000,en +23.600000,83.200000,en +23.600000,83.100000,en +23.600000,83.000000,en +23.500000,83.000000,en +23.700000,83.000000,en +23.900000,83.000000,en +23.800000,83.000000,en +23.800000,83.100000,en +23.900000,83.100000,en +23.900000,83.200000,en +23.800000,83.200000,en +23.700000,83.100000,en +23.700000,83.200000,en +23.700000,83.300000,en +23.700000,83.400000,en +23.800000,83.400000,en +23.800000,83.300000,en +23.900000,83.300000,en +23.800000,83.500000,en +23.700000,83.500000,en +23.500000,83.500000,en +23.600000,83.500000,en +23.600000,83.400000,en +23.600000,83.300000,en +23.500000,83.300000,en +23.500000,83.400000,en +23.400000,83.400000,en +23.400000,83.300000,en +23.300000,83.400000,en +23.300000,83.500000,en +23.400000,83.500000,en +23.200000,83.500000,en +22.900000,83.300000,en +23.200000,83.400000,en +22.900000,83.000000,en +22.900000,83.100000,en +22.900000,83.200000,en +22.800000,83.200000,en +22.700000,83.200000,en +22.700000,83.100000,en +22.800000,83.100000,en +22.800000,83.000000,en +22.700000,83.000000,en +22.600000,83.000000,en +22.500000,83.000000,en +22.500000,83.100000,en +22.600000,83.100000,en +22.600000,83.200000,en +22.500000,83.200000,en +22.500000,83.300000,en +22.500000,83.400000,en +22.600000,83.400000,en +22.600000,83.300000,en +22.700000,83.300000,en +22.800000,83.300000,en +22.800000,83.400000,en +22.700000,83.400000,en +22.600000,83.500000,en +22.500000,83.500000,en +23.000000,83.700000,en +23.000000,83.600000,en +23.100000,83.600000,en +23.200000,83.600000,en +23.200000,83.700000,en +23.100000,83.700000,en +23.100000,83.800000,en +23.200000,83.800000,en +23.200000,83.900000,en +23.100000,83.900000,en +23.000000,83.900000,en +23.000000,83.800000,en +23.000000,84.100000,en +23.000000,84.000000,en +23.100000,84.000000,en +23.200000,84.000000,en +23.200000,84.100000,en +23.100000,84.100000,en +23.200000,84.200000,en +23.100000,84.200000,en +23.000000,84.200000,en +22.900000,84.200000,en +22.800000,84.200000,en +22.800000,84.100000,en +22.700000,84.100000,en +22.600000,84.000000,en +22.600000,84.100000,en +22.700000,84.200000,en +22.600000,84.200000,en +22.600000,84.300000,en +22.600000,84.400000,en +22.700000,84.400000,en +22.700000,84.300000,en +22.800000,84.300000,en +22.900000,84.400000,en +22.800000,84.400000,en +22.800000,84.500000,en +22.900000,84.500000,en +22.900000,84.600000,en +22.800000,84.600000,en +22.700000,84.600000,en +22.700000,84.500000,en +22.600000,84.500000,en +22.600000,84.600000,en +22.700000,84.700000,en +22.600000,84.700000,en +22.600000,84.800000,en +22.600000,84.900000,en +22.700000,84.900000,en +22.700000,84.800000,en +22.800000,84.800000,en +22.800000,84.900000,en +22.900000,84.900000,en +22.900000,84.800000,en +22.900000,84.700000,en +22.800000,84.700000,en +23.000000,84.700000,en +23.000000,84.800000,en +23.000000,84.900000,en +23.200000,84.600000,en +23.200000,84.500000,en +23.100000,84.500000,en +23.100000,84.600000,en +23.000000,84.600000,en +23.000000,84.500000,en +23.000000,84.400000,en +22.900000,84.300000,en +23.000000,84.300000,en +23.100000,84.300000,en +23.100000,84.400000,en +23.200000,84.400000,en +23.200000,84.300000,en +23.300000,84.300000,en +23.300000,84.400000,en +23.400000,84.400000,en +23.400000,84.300000,en +23.500000,84.300000,en +23.600000,84.300000,en +23.600000,84.400000,en +23.500000,84.400000,en +23.500000,84.500000,en +23.600000,84.500000,en +23.600000,84.600000,en +23.500000,84.600000,en +23.400000,84.600000,en +23.400000,84.500000,en +23.300000,84.500000,en +23.300000,84.600000,en +23.400000,84.700000,en +23.400000,84.800000,en +23.500000,84.800000,en +23.600000,84.800000,en +23.600000,84.700000,en +23.500000,84.700000,en +23.800000,84.700000,en +23.700000,84.700000,en +23.700000,84.800000,en +23.800000,84.800000,en +23.900000,84.800000,en +24.000000,84.800000,en +24.000000,84.700000,en +23.900000,84.700000,en +24.000000,84.600000,en +24.000000,84.500000,en +23.900000,84.500000,en +23.900000,84.600000,en +23.800000,84.600000,en +23.700000,84.600000,en +23.700000,84.500000,en +23.800000,84.500000,en +23.800000,84.400000,en +23.700000,84.400000,en +23.700000,84.300000,en +23.800000,84.300000,en +23.900000,84.400000,en +24.000000,84.400000,en +24.000000,84.200000,en +23.900000,84.200000,en +24.000000,84.100000,en +24.000000,84.000000,en +23.900000,84.000000,en +23.900000,84.100000,en +23.800000,84.100000,en +23.800000,84.000000,en +23.700000,84.000000,en +23.700000,84.100000,en +23.800000,84.200000,en +23.700000,84.200000,en +23.600000,84.200000,en +23.500000,84.200000,en +23.400000,84.200000,en +23.300000,84.200000,en +23.400000,84.100000,en +23.300000,84.100000,en +23.300000,84.000000,en +23.400000,84.000000,en +23.500000,84.000000,en +23.500000,84.100000,en +23.600000,84.100000,en +23.600000,84.000000,en +23.600000,83.900000,en +23.600000,83.800000,en +23.500000,83.800000,en +23.500000,83.900000,en +23.400000,83.900000,en +23.300000,83.900000,en +23.300000,83.800000,en +23.400000,83.800000,en +23.400000,83.700000,en +23.300000,83.700000,en +23.300000,83.600000,en +23.400000,83.600000,en +23.500000,83.600000,en +23.500000,83.700000,en +23.600000,83.700000,en +23.600000,83.600000,en +23.700000,83.600000,en +23.800000,83.600000,en +23.800000,83.700000,en +23.700000,83.700000,en +23.700000,83.800000,en +23.700000,83.900000,en +23.800000,83.900000,en +23.800000,83.800000,en +23.900000,83.800000,en +23.900000,83.900000,en +24.000000,83.900000,en +24.000000,83.800000,en +24.100000,83.800000,en +24.100000,83.900000,en +24.500000,83.700000,en +24.500000,83.600000,en +24.600000,83.600000,en +24.700000,83.600000,en +24.700000,83.700000,en +24.600000,83.700000,en +24.600000,83.800000,en +24.700000,83.800000,en +24.500000,83.800000,en +24.100000,84.000000,en +24.100000,84.100000,en +24.100000,84.200000,en +24.100000,84.400000,en +24.200000,84.400000,en +24.300000,84.400000,en +24.300000,84.500000,en +24.300000,84.600000,en +24.200000,84.600000,en +24.200000,84.500000,en +24.100000,84.500000,en +24.100000,84.600000,en +24.200000,84.700000,en +24.100000,84.700000,en +24.100000,84.800000,en +24.200000,84.900000,en +24.200000,84.800000,en +24.300000,84.800000,en +24.300000,84.900000,en +24.400000,84.900000,en +24.400000,84.800000,en +24.300000,84.700000,en +24.500000,84.800000,th +24.500000,84.900000,th +24.600000,84.900000,th +24.600000,84.800000,th +24.700000,84.800000,th +24.700000,84.900000,th +24.800000,84.900000,th +24.800000,84.800000,th +24.900000,84.800000,th +24.900000,84.900000,th +24.800000,83.800000,en +24.900000,83.800000,en +24.900000,83.700000,en +24.800000,83.700000,en +24.800000,83.600000,en +24.900000,83.600000,en +25.000000,83.600000,en +25.100000,83.600000,en +25.100000,83.200000,en +25.000000,83.200000,en +24.900000,83.200000,en +24.800000,83.200000,en +24.800000,83.300000,en +24.800000,83.400000,en +24.900000,83.400000,en +24.900000,83.300000,en +25.000000,83.300000,en +25.100000,83.300000,en +25.100000,83.400000,en +25.000000,83.400000,en +25.000000,83.500000,en +25.100000,83.500000,en +24.900000,83.500000,en +24.800000,83.500000,en +24.600000,83.500000,en +24.700000,83.500000,en +24.700000,83.400000,en +24.700000,83.300000,en +24.600000,83.300000,en +24.600000,83.400000,en +24.500000,83.400000,en +24.500000,83.300000,en +24.500000,83.500000,en +24.300000,83.200000,en +24.300000,83.100000,en +24.200000,83.100000,en +24.200000,83.200000,en +24.100000,83.200000,en +24.000000,83.100000,en +24.100000,83.100000,en +24.100000,83.000000,en +24.000000,83.000000,en +24.200000,83.000000,en +24.300000,83.000000,en +24.500000,83.000000,en +24.400000,83.000000,en +24.400000,83.100000,en +24.400000,83.200000,en +24.500000,83.200000,en +24.500000,83.100000,en +24.600000,83.100000,en +24.600000,83.200000,en +24.700000,83.200000,en +24.600000,83.000000,en +24.600000,82.900000,en +24.600000,82.800000,en +24.700000,82.700000,en +24.700000,82.600000,en +24.600000,82.600000,en +24.600000,82.700000,en +24.500000,82.700000,en +24.500000,82.600000,en +24.400000,82.600000,en +24.400000,82.700000,en +24.400000,82.800000,en +24.500000,82.800000,en +24.500000,82.900000,en +24.400000,82.900000,en +24.300000,82.900000,en +24.300000,82.800000,en +24.200000,82.800000,en +24.200000,82.900000,en +24.100000,82.900000,en +24.000000,82.900000,en +24.000000,82.800000,en +24.100000,82.800000,en +24.100000,82.700000,en +24.000000,82.700000,en +24.000000,82.600000,en +24.100000,82.600000,en +24.200000,82.600000,en +24.200000,82.700000,en +24.300000,82.700000,en +24.300000,82.600000,en +24.300000,82.500000,en +24.300000,82.400000,en +24.200000,82.400000,en +24.200000,82.500000,en +24.000000,82.500000,en +24.200000,82.300000,en +24.300000,82.300000,en +24.400000,82.300000,en +24.500000,82.300000,en +24.400000,82.400000,en +24.400000,82.500000,en +24.500000,82.500000,en +24.500000,82.400000,en +24.600000,82.400000,en +24.600000,82.500000,en +24.700000,82.500000,en +24.700000,82.400000,en +24.600000,82.300000,en +24.700000,82.300000,en +24.800000,82.300000,en +24.800000,82.400000,en +24.800000,82.500000,en +24.800000,82.600000,en +24.800000,82.700000,en +25.800000,82.900000,ur +25.800000,82.800000,ur +25.800000,82.700000,ur +26.000000,82.700000,ur +25.900000,82.700000,ur +25.900000,82.800000,ur +25.900000,82.900000,ur +26.000000,82.900000,ur +26.000000,82.800000,ur +26.100000,82.800000,ur +26.100000,82.900000,ur +26.200000,82.900000,ur +26.200000,82.800000,ur +26.200000,82.700000,ur +26.100000,82.700000,ur +26.700000,82.700000,ur +26.900000,82.700000,ur +26.800000,82.700000,ur +26.900000,82.800000,ur +26.900000,82.900000,ur +26.800000,82.900000,ur +26.800000,82.800000,ur +26.700000,82.800000,ur +26.700000,82.900000,ur +26.400000,83.000000,ur +26.300000,83.000000,ur +26.300000,83.100000,ur +26.300000,83.200000,ur +26.400000,83.200000,ur +26.400000,83.100000,ur +26.700000,83.000000,ur +26.800000,83.000000,ur +26.900000,83.000000,ur +26.900000,83.100000,ur +27.000000,83.100000,ur +26.800000,83.100000,ur +26.700000,83.100000,ur +26.400000,83.400000,ur +26.400000,83.300000,ur +26.300000,83.300000,ur +26.300000,83.400000,ur +26.300000,83.500000,ur +26.200000,83.500000,ur +26.100000,83.500000,ur +25.900000,83.500000,ur +26.000000,83.500000,ur +26.000000,83.400000,ur +25.900000,83.400000,ur +25.900000,83.300000,ur +26.000000,83.300000,ur +26.100000,83.300000,ur +26.100000,83.400000,ur +26.200000,83.400000,ur +26.200000,83.300000,ur +26.200000,83.200000,ur +26.100000,83.200000,ur +26.100000,83.100000,ur +26.200000,83.100000,ur +26.200000,83.000000,ur +26.100000,83.000000,ur +26.000000,83.000000,ur +25.900000,83.000000,ur +25.900000,83.100000,ur +26.000000,83.100000,ur +26.000000,83.200000,ur +25.900000,83.200000,ur +25.800000,83.200000,ur +25.800000,83.100000,ur +25.800000,83.000000,ur +25.700000,83.400000,ur +25.800000,83.300000,ur +25.800000,83.400000,ur +25.800000,83.500000,ur +25.700000,83.500000,ur +25.700000,83.600000,ur +25.700000,83.700000,ur +25.700000,83.800000,ur +25.800000,83.800000,ur +25.900000,83.800000,ur +25.900000,83.700000,ur +25.800000,83.700000,ur +25.800000,83.600000,ur +25.900000,83.600000,ur +26.000000,83.700000,ur +26.000000,83.600000,ur +26.100000,83.600000,ur +26.200000,83.600000,ur +26.200000,83.700000,ur +26.100000,83.700000,ur +26.100000,83.800000,ur +26.200000,83.800000,ur +26.000000,83.800000,ur +25.800000,84.900000,th +25.900000,84.900000,th +26.000000,84.900000,th +26.100000,84.900000,th +26.200000,84.900000,th +26.700000,84.900000,ne +26.800000,84.700000,ne +26.800000,84.900000,ne +26.800000,84.800000,ne +26.900000,84.800000,ne +26.900000,84.900000,ne +27.000000,84.800000,ne +27.000000,84.700000,ne +26.900000,84.700000,ne +27.000000,84.600000,en +27.000000,84.500000,ne +26.900000,84.500000,ne +26.900000,84.600000,en +26.800000,84.600000,ne +27.000000,84.200000,id +26.900000,84.200000,id +27.000000,84.100000,id +27.000000,84.000000,id +26.900000,84.000000,id +26.900000,84.100000,id +26.800000,84.100000,th +26.800000,84.000000,th +26.700000,84.000000,th +26.700000,84.100000,th +26.800000,84.200000,id +26.500000,84.000000,th +26.500000,84.100000,th +26.600000,84.100000,th +26.600000,84.000000,th +26.600000,83.900000,th +26.600000,83.800000,th +26.500000,83.800000,th +26.500000,83.900000,th +26.300000,83.700000,ur +26.300000,83.600000,ur +26.500000,83.700000,th +26.600000,83.700000,th +26.800000,83.700000,th +26.700000,83.700000,th +26.700000,83.800000,th +26.700000,83.900000,th +26.800000,83.900000,th +26.800000,83.800000,th +26.900000,83.800000,th +26.900000,83.900000,th +27.000000,83.900000,id +27.000000,83.800000,id +26.900000,83.700000,th +27.100000,83.800000,id +27.100000,83.900000,id +27.200000,83.900000,id +27.200000,83.800000,id +27.300000,83.800000,ne +27.300000,83.900000,ne +27.400000,83.900000,ne +27.400000,83.800000,en +27.400000,83.700000,en +27.300000,83.700000,en +27.300000,83.600000,en +27.400000,83.600000,en +27.500000,84.100000,ne +27.400000,84.200000,en +27.300000,84.200000,en +27.400000,84.100000,ne +27.400000,84.000000,ne +27.300000,84.000000,ne +27.300000,84.100000,en +27.200000,84.100000,id +27.200000,84.000000,id +27.100000,84.000000,id +27.100000,84.100000,id +27.200000,84.200000,id +27.100000,84.200000,id +27.200000,84.400000,en +27.200000,84.300000,en +27.300000,84.300000,en +27.400000,84.300000,hi +27.300000,84.400000,en +27.300000,84.500000,en +27.300000,84.600000,en +27.200000,84.600000,en +27.200000,84.500000,ne +27.100000,84.500000,ne +27.100000,84.600000,en +27.400000,83.400000,en +27.400000,83.500000,en +27.300000,83.500000,en +27.200000,83.500000,ne +27.200000,83.400000,ne +27.200000,83.300000,ne +27.300000,83.400000,en +27.300000,83.300000,en +27.300000,83.200000,ne +27.300000,83.100000,ne +27.200000,83.100000,ar +27.200000,83.200000,ne +27.100000,83.100000,ur +27.100000,83.000000,ur +27.000000,83.000000,ur +27.200000,83.000000,bn +27.300000,83.000000,ne +27.400000,83.000000,bn +27.400000,83.100000,ar +27.400000,83.200000,ne +27.700000,82.700000,en +27.700000,82.600000,en +27.600000,82.600000,en +27.600000,82.700000,ne +27.500000,82.700000,ne +27.500000,82.600000,ne +27.400000,82.600000,ne +27.400000,82.700000,ne +27.400000,82.800000,ne +27.500000,82.800000,ne +27.500000,82.900000,ne +27.400000,82.900000,ne +27.300000,82.900000,ne +27.300000,82.800000,ne +27.200000,82.800000,ur +27.200000,82.900000,ur +27.100000,82.900000,ur +27.000000,82.900000,ur +27.000000,82.800000,ur +27.100000,82.800000,ur +27.100000,82.700000,ur +27.000000,82.700000,ur +27.000000,82.600000,ur +27.100000,82.600000,ur +27.200000,82.600000,ur +27.200000,82.700000,ur +27.300000,82.700000,ur +27.300000,82.600000,ur +27.300000,82.500000,ur +27.200000,82.500000,ur +27.100000,82.500000,ur +27.000000,82.500000,ur +27.300000,82.300000,th +27.400000,82.300000,th +27.500000,82.300000,th +27.400000,82.500000,ur +27.600000,82.400000,en +27.600000,82.500000,en +27.700000,82.400000,en +27.600000,82.300000,th +27.700000,82.300000,en +27.800000,82.300000,hi +27.900000,82.100000,en +27.800000,82.200000,en +27.700000,82.100000,th +27.800000,82.100000,en +27.700000,82.000000,th +27.700000,81.900000,th +27.900000,82.000000,en +28.000000,81.700000,ne +27.900000,81.700000,ne +27.900000,81.800000,ne +27.800000,81.800000,ne +27.700000,81.800000,th +27.800000,81.700000,ne +27.800000,81.600000,ne +27.900000,81.600000,ne +28.000000,81.600000,ne +28.100000,81.400000,ne +28.200000,81.300000,ne +28.100000,81.300000,ne +28.100000,81.200000,ne +28.200000,81.200000,ne +28.300000,81.200000,ne +28.300000,81.100000,ne +28.200000,81.100000,ne +28.200000,81.000000,ne +28.300000,81.000000,ne +28.300000,80.900000,ne +28.200000,80.900000,ne +28.100000,81.100000,ne +28.000000,81.100000,ne +28.000000,81.200000,ne +28.000000,81.300000,ne +27.900000,81.300000,en +27.900000,81.400000,ne +28.000000,81.400000,ne +28.000000,81.500000,ne +27.900000,81.500000,ne +27.800000,81.500000,ne +27.800000,81.400000,ne +27.100000,81.000000,ur +27.100000,80.900000,ur +27.000000,80.900000,ur +26.900000,80.900000,ur +26.900000,81.000000,ur +27.000000,81.000000,ur +27.300000,81.800000,th +27.600000,81.800000,th +27.500000,81.800000,th +27.400000,81.800000,th +27.400000,81.900000,th +27.400000,82.000000,th +27.500000,82.000000,th +27.500000,81.900000,th +27.600000,81.900000,th +27.600000,82.000000,th +27.600000,82.100000,th +27.700000,82.200000,th +27.600000,82.200000,th +27.500000,82.200000,th +27.500000,82.100000,th +27.400000,82.100000,th +27.400000,82.200000,th +27.300000,82.200000,th +27.300000,82.100000,th +27.300000,82.000000,th +27.300000,81.900000,th +25.700000,81.700000,ur +25.700000,81.800000,ur +25.600000,81.800000,ur +25.500000,81.800000,ur +25.500000,81.700000,ur +25.600000,81.700000,ur +25.500000,81.600000,ur +25.600000,81.600000,ur +25.700000,81.600000,ur +25.700000,81.500000,ur +25.700000,81.400000,ur +25.600000,81.400000,ur +25.600000,81.500000,ur +25.500000,81.500000,ur +25.500000,81.400000,ur +26.800000,81.000000,ur +26.700000,81.000000,ur +26.700000,80.900000,ur +26.800000,80.900000,ur +26.800000,80.800000,ur +26.800000,80.700000,ur +26.700000,80.700000,ur +26.700000,80.800000,ur +26.700000,80.600000,ur +26.800000,80.600000,ur +27.000000,80.600000,ur +26.900000,80.600000,ur +26.900000,80.700000,ur +26.900000,80.800000,ur +27.000000,80.800000,ur +27.000000,80.700000,ur +27.100000,80.700000,ur +27.100000,80.800000,ur +27.100000,80.600000,ur +28.200000,80.700000,en +28.200000,80.800000,en +28.300000,80.800000,en +28.300000,80.700000,en +28.300000,80.600000,en +28.200000,80.600000,en +28.300000,80.500000,en +28.500000,80.000000,en +28.600000,80.000000,en +28.600000,79.900000,en +28.500000,79.900000,en +28.500000,79.800000,en +28.600000,79.800000,en +28.700000,79.800000,id +28.800000,79.800000,id +28.800000,79.900000,id +28.700000,79.900000,en +28.700000,80.000000,en +28.800000,80.000000,en +28.900000,80.000000,en +29.000000,80.000000,en +29.000000,79.900000,id +28.900000,79.900000,id +28.900000,79.800000,id +29.000000,79.800000,id +29.300000,79.500000,en +29.300000,79.400000,en +29.400000,79.400000,en +29.400000,79.500000,en +29.500000,79.500000,en +29.500000,79.400000,en +29.600000,79.400000,en +29.700000,79.400000,en +29.700000,79.500000,en +29.600000,79.500000,en +29.400000,79.800000,bn +29.500000,79.900000,bn +29.500000,79.800000,bn +29.500000,80.000000,bn +29.300000,80.000000,bn +29.400000,80.000000,bn +29.400000,79.900000,bn +29.300000,79.800000,bn +29.300000,79.900000,bn +29.200000,79.900000,bn +29.200000,79.800000,bn +29.100000,79.800000,id +29.100000,79.900000,en +29.100000,80.000000,en +29.200000,80.000000,en +29.100000,80.100000,en +29.200000,80.100000,en +29.200000,80.200000,en +29.300000,80.300000,en +29.400000,80.200000,en +29.300000,80.200000,en +29.300000,80.100000,bn +29.400000,80.100000,en +29.500000,80.100000,en +29.500000,80.200000,en +29.600000,80.200000,ne +29.600000,80.100000,en +29.700000,80.200000,ne +29.700000,80.300000,ne +29.800000,80.300000,ne +29.800000,80.400000,ne +29.600000,80.400000,ne +29.600000,80.300000,ne +29.500000,80.300000,en +29.800000,80.500000,ne +29.000000,80.100000,en +28.800000,80.100000,en +28.700000,80.100000,en +28.700000,80.200000,en +28.700000,80.300000,en +28.600000,80.400000,ne +28.600000,80.300000,ne +28.600000,80.200000,ne +28.600000,80.100000,en +28.500000,80.100000,en +28.500000,80.200000,ne +28.500000,80.300000,ne +28.500000,80.400000,ne +28.400000,80.500000,en +28.400000,80.600000,en +28.500000,80.600000,ne +28.500000,80.500000,ne +28.600000,80.500000,ne +28.600000,80.600000,ne +28.500000,80.800000,ne +28.500000,80.700000,ne +28.400000,80.700000,en +28.400000,80.800000,en +28.500000,80.900000,ne +28.400000,80.900000,ne +28.400000,81.000000,ne +30.200000,81.000000,en +30.600000,80.100000,en +30.600000,80.200000,en +30.400000,80.700000,en +30.400000,80.500000,en +30.400000,80.600000,en +30.300000,80.600000,ne +30.300000,80.500000,en +30.200000,80.500000,en +30.200000,80.600000,en +30.200000,80.700000,en +30.300000,80.700000,en +30.300000,80.800000,en +30.200000,80.800000,en +30.100000,80.700000,en +30.100000,80.800000,en +30.000000,80.700000,en +30.000000,80.600000,ne +29.900000,80.500000,ne +30.000000,80.500000,ne +30.100000,80.600000,en +30.100000,80.500000,en +30.100000,80.400000,en +30.100000,80.300000,en +30.000000,80.300000,ne +30.000000,80.400000,ne +29.900000,80.400000,ne +29.900000,80.300000,ne +29.900000,80.200000,en +29.800000,80.200000,ne +30.000000,80.200000,en +30.100000,80.200000,en +30.200000,80.300000,en +30.200000,80.400000,en +30.300000,80.400000,en +30.300000,80.300000,en +30.400000,80.300000,en +30.400000,80.400000,en +30.500000,80.400000,en +30.500000,80.300000,en +30.500000,80.200000,en +30.400000,80.200000,en +30.400000,80.100000,en +30.500000,80.100000,en +30.400000,80.000000,en +30.500000,80.000000,en +30.500000,79.900000,en +30.400000,79.800000,en +30.400000,79.900000,en +30.300000,79.900000,en +30.300000,79.800000,en +30.200000,79.800000,en +30.200000,79.900000,en +30.200000,80.000000,en +30.100000,80.000000,en +30.000000,80.000000,en +29.800000,80.000000,en +29.900000,80.000000,en +29.900000,79.900000,en +29.800000,79.900000,en +29.800000,79.800000,en +29.900000,79.800000,en +30.000000,79.800000,en +30.000000,79.900000,en +30.100000,79.900000,en +30.100000,79.800000,en +30.100000,79.700000,en +30.100000,79.600000,en +30.000000,79.600000,en +30.000000,79.700000,en +29.900000,79.700000,en +29.800000,79.700000,en +29.800000,79.600000,en +29.900000,79.600000,en +29.900000,79.500000,en +29.800000,79.500000,en +30.000000,79.400000,en +30.000000,79.500000,en +30.100000,79.500000,en +30.100000,79.400000,en +30.200000,79.400000,en +30.200000,79.500000,en +30.200000,79.600000,en +30.200000,79.700000,en +30.300000,79.700000,en +30.300000,79.600000,en +30.400000,79.700000,en +30.400000,79.600000,en +30.400000,79.500000,en +30.300000,79.500000,en +30.300000,79.400000,en +30.400000,79.400000,en +30.500000,79.400000,en +30.500000,79.500000,en +30.600000,79.500000,en +30.600000,79.400000,en +30.700000,79.400000,en +30.800000,79.400000,en +30.600000,79.700000,en +30.600000,79.600000,en +30.500000,79.600000,en +30.500000,79.700000,en +30.500000,79.800000,en +30.600000,79.800000,en +30.600000,79.900000,en +30.600000,80.000000,en +30.700000,80.000000,en +30.700000,79.900000,en +30.800000,79.800000,en +30.900000,79.400000,en +31.000000,79.400000,en +32.600000,79.400000,en +32.700000,79.400000,en +32.700000,79.500000,en +32.800000,79.400000,en +27.900000,88.800000,en +27.800000,88.800000,en +27.700000,88.800000,en +27.400000,88.800000,bn +27.300000,88.900000,en +27.300000,88.800000,bn +26.800000,89.400000,bn +26.700000,89.700000,bn +26.700000,89.600000,bn +26.700000,89.400000,bn +26.700000,89.500000,bn +26.600000,89.500000,bn +26.600000,89.400000,bn +26.500000,89.400000,hi +26.500000,89.500000,hi +26.500000,89.600000,hi +26.600000,89.600000,bn +26.600000,89.700000,hi +26.500000,89.700000,hi +26.500000,89.800000,hi +26.600000,89.800000,hi +26.700000,89.800000,bn +26.700000,89.900000,bn +26.600000,89.900000,bn +26.500000,89.900000,bn +26.300000,89.900000,hi +26.400000,89.900000,bn +26.400000,89.800000,hi +26.300000,89.800000,hi +26.200000,89.800000,hi +26.100000,89.800000,hi +26.100000,89.900000,hi +26.200000,89.900000,hi +26.000000,89.900000,bn +25.900000,89.900000,bn +25.700000,89.900000,bn +25.800000,89.900000,bn +26.100000,89.400000,hi +26.200000,89.400000,hi +26.200000,89.500000,hi +26.100000,89.500000,hi +26.200000,89.600000,hi +26.300000,89.600000,hi +26.300000,89.700000,hi +26.400000,89.700000,hi +26.400000,89.600000,hi +26.400000,89.500000,hi +26.300000,89.500000,hi +26.300000,89.400000,hi +26.400000,89.400000,hi +26.300000,89.300000,hi +26.400000,89.300000,hi +26.400000,89.200000,hi +26.400000,89.100000,hi +26.300000,89.200000,hi +26.200000,89.200000,hi +26.100000,89.300000,hi +26.200000,89.300000,hi +26.400000,88.900000,hi +26.300000,88.900000,hi +26.400000,88.800000,hi +26.500000,88.800000,hi +26.500000,88.900000,hi +26.600000,88.900000,hi +26.600000,88.800000,hi +26.700000,88.800000,hi +26.700000,88.900000,hi +26.700000,89.000000,bn +26.600000,89.000000,hi +26.500000,89.000000,hi +26.500000,89.100000,hi +26.600000,89.100000,hi +26.600000,89.200000,hi +26.500000,89.200000,hi +26.500000,89.300000,hi +26.600000,89.300000,bn +26.700000,89.300000,bn +26.700000,89.200000,bn +26.700000,89.100000,bn +26.800000,89.100000,bn +26.800000,89.300000,bn +26.800000,89.000000,bn +26.900000,89.000000,bn +26.900000,88.900000,bn +26.800000,88.900000,bn +26.800000,88.800000,bn +26.900000,88.800000,bn +27.000000,88.800000,bn +27.100000,88.800000,bn +27.100000,88.700000,bn +27.000000,88.700000,bn +26.800000,88.700000,bn +26.900000,88.700000,bn +26.900000,88.600000,bn +26.800000,88.600000,bn +26.800000,88.500000,bn +26.900000,88.500000,bn +27.000000,88.500000,bn +27.000000,88.600000,bn +27.100000,88.600000,bn +27.100000,88.500000,bn +27.000000,88.400000,bn +27.100000,88.400000,bn +27.100000,88.300000,bn +27.100000,88.200000,bn +27.000000,88.200000,bn +27.000000,88.300000,bn +26.900000,88.300000,bn +26.900000,88.200000,bn +26.800000,88.200000,bn +26.800000,88.300000,bn +26.800000,88.400000,bn +26.900000,88.400000,bn +26.700000,88.400000,bn +26.700000,88.300000,bn +26.700000,88.200000,bn +26.600000,88.200000,bn +26.600000,88.300000,bn +26.500000,88.200000,bn +26.500000,88.300000,bn +26.500000,88.600000,bn +26.600000,88.600000,bn +26.600000,88.500000,bn +26.700000,88.500000,bn +26.700000,88.600000,bn +26.700000,88.700000,hi +26.600000,88.700000,hi +26.500000,88.700000,hi +25.700000,88.300000,hi +25.700000,88.200000,hi +26.200000,88.200000,bn +26.400000,88.400000,hi +26.400000,88.300000,bn +26.300000,88.300000,bn +26.300000,88.200000,bn +26.400000,88.200000,bn +26.400000,88.100000,bn +26.300000,88.100000,bn +26.400000,87.900000,en +26.300000,87.900000,bn +26.300000,88.000000,bn +26.200000,88.000000,bn +26.200000,87.900000,bn +26.100000,87.900000,bn +26.100000,88.000000,bn +26.200000,88.100000,bn +26.100000,88.100000,bn +26.000000,88.100000,bn +25.700000,88.100000,hi +25.800000,88.000000,bn +25.700000,88.000000,bn +25.700000,87.900000,bn +25.800000,87.900000,bn +25.900000,87.900000,bn +25.900000,88.000000,bn +26.000000,88.000000,bn +26.000000,87.900000,bn +26.000000,87.800000,bn +26.000000,87.700000,bn +25.900000,87.700000,bn +25.900000,87.800000,bn +25.800000,87.800000,bn +25.700000,87.800000,bn +25.700000,87.700000,bn +25.800000,87.700000,bn +25.700000,87.600000,bn +25.800000,87.600000,bn +25.900000,87.600000,bn +26.000000,87.600000,bn +26.100000,87.600000,ur +26.200000,87.600000,en +26.100000,87.700000,bn +26.100000,87.800000,bn +26.200000,87.800000,bn +26.200000,87.700000,bn +26.300000,87.700000,en +26.300000,87.800000,en +26.400000,87.800000,en +26.400000,87.700000,en +26.300000,87.600000,en +26.500000,88.100000,en +27.000000,88.100000,bn +27.100000,88.100000,bn +27.100000,88.000000,en +27.600000,88.100000,bn +27.500000,88.100000,bn +27.400000,88.100000,bn +27.200000,88.000000,en +27.300000,88.100000,bn +27.200000,88.100000,bn +27.200000,88.200000,bn +27.200000,88.300000,bn +27.300000,88.300000,bn +27.300000,88.200000,bn +27.400000,88.200000,bn +27.500000,88.200000,bn +27.500000,88.300000,bn +27.400000,88.300000,bn +27.400000,88.400000,bn +27.500000,88.400000,bn +27.300000,88.400000,bn +27.200000,88.400000,bn +27.200000,88.500000,bn +27.300000,88.500000,bn +27.300000,88.600000,bn +27.200000,88.600000,bn +27.200000,88.700000,bn +27.300000,88.700000,bn +27.400000,88.700000,bn +27.500000,88.700000,bn +27.500000,88.600000,bn +27.400000,88.600000,zh +27.400000,88.500000,bn +27.500000,88.500000,bn +27.600000,88.500000,bn +27.700000,88.500000,bn +27.700000,88.600000,bn +27.600000,88.600000,bn +27.600000,88.700000,zh +27.700000,88.700000,bn +27.800000,88.700000,en +27.900000,88.700000,en +27.900000,88.600000,en +27.800000,88.600000,en +27.800000,88.500000,en +27.900000,88.500000,en +27.900000,88.400000,en +27.800000,88.400000,en +27.600000,88.400000,bn +27.700000,88.400000,bn +27.700000,88.300000,bn +27.600000,88.300000,bn +27.600000,88.200000,bn +27.700000,88.200000,bn +27.800000,88.200000,bn +27.800000,88.300000,en +27.900000,88.300000,en +27.900000,88.200000,bn +28.000000,88.500000,en +28.000000,88.600000,en +28.000000,88.700000,en +26.600000,86.100000,ne +26.600000,86.200000,ne +26.500000,86.200000,ne +26.400000,86.200000,ne +26.400000,86.100000,ne +26.500000,86.100000,ne +26.400000,86.000000,ne +26.500000,86.000000,ne +26.600000,86.000000,ne +26.600000,85.800000,ne +26.600000,85.900000,ne +26.500000,85.900000,ne +26.400000,85.900000,ne +26.400000,85.800000,ne +26.500000,85.800000,ne +26.500000,85.700000,ne +26.400000,85.700000,ne +26.600000,85.700000,ne +26.700000,85.700000,ne +26.800000,85.700000,ne +26.800000,85.600000,ne +26.800000,85.500000,ne +26.900000,85.000000,ne +26.800000,85.000000,ne +26.800000,85.100000,ne +26.800000,85.200000,en +26.700000,85.200000,ur +26.600000,85.200000,ne +26.700000,85.100000,ne +26.700000,85.000000,ur +26.600000,85.000000,ur +26.600000,85.100000,ne +26.500000,85.100000,ur +26.500000,85.000000,ur +26.500000,85.200000,ur +26.500000,85.400000,ur +26.500000,85.300000,ur +26.600000,85.300000,ne +26.700000,85.300000,ne +26.700000,85.400000,ne +26.600000,85.400000,ne +26.600000,85.500000,ne +26.700000,85.500000,ne +26.700000,85.600000,ne +26.600000,85.600000,ne +26.500000,85.600000,ne +26.400000,85.600000,ne +26.000000,85.300000,th +26.100000,85.300000,th +26.200000,85.300000,th +26.200000,85.200000,th +26.200000,85.000000,th +26.200000,85.100000,th +26.100000,85.100000,th +26.100000,85.000000,th +26.000000,85.000000,th +26.000000,85.100000,th +26.100000,85.200000,th +26.000000,85.200000,th +25.900000,85.200000,th +25.800000,85.200000,th +25.900000,85.100000,th +25.900000,85.000000,th +25.800000,85.000000,th +25.800000,85.100000,th +25.600000,85.400000,id +25.700000,85.400000,id +25.800000,85.300000,th +25.900000,85.300000,th +25.800000,85.400000,id +25.800000,85.500000,id +25.800000,85.600000,id +25.700000,85.600000,id +25.700000,85.500000,id +25.600000,85.500000,id +25.600000,85.600000,id +25.700000,85.700000,id +25.600000,85.700000,id +25.700000,85.800000,id +25.800000,85.800000,id +25.800000,85.700000,id +26.300000,86.900000,ne +26.300000,86.800000,ne +26.300000,86.700000,ne +26.300000,86.600000,ne +26.300000,86.500000,ne +26.400000,86.300000,en +26.500000,86.300000,en +26.500000,86.400000,en +26.400000,86.400000,en +26.400000,86.500000,ne +26.500000,86.500000,en +26.600000,86.300000,en +26.400000,86.600000,ne +26.400000,86.700000,ne +26.400000,86.800000,ne +26.500000,86.900000,ne +26.400000,86.900000,ne +26.500000,87.000000,en +26.400000,87.000000,en +26.400000,87.100000,ne +26.400000,87.200000,ne +26.500000,87.100000,ne +26.400000,87.400000,ne +26.400000,87.500000,ne +26.300000,87.400000,ne +26.300000,87.500000,ne +26.200000,87.500000,ne +26.100000,87.500000,ur +26.100000,87.400000,ur +26.200000,87.400000,ne +26.100000,87.300000,ur +26.200000,87.300000,ne +26.300000,87.300000,ne +26.300000,87.200000,ne +26.300000,87.100000,ne +26.300000,87.000000,ne +26.200000,87.100000,ne +26.200000,87.200000,ne +25.900000,87.300000,ur +26.000000,87.300000,ur +25.900000,87.400000,ur +26.000000,87.400000,ur +26.000000,87.500000,ur +25.900000,87.500000,ur +25.400000,87.500000,bn +25.300000,87.500000,bn +25.300000,87.400000,en +24.900000,87.300000,en +25.000000,87.300000,en +25.100000,87.300000,en +25.100000,87.400000,en +25.200000,87.400000,en +25.200000,87.500000,bn +25.100000,87.500000,bn +25.000000,87.500000,bn +25.000000,87.400000,en +24.900000,87.400000,en +24.900000,87.500000,en +24.800000,87.500000,en +24.700000,87.500000,en +24.700000,87.400000,en +24.800000,87.400000,en +24.800000,87.300000,en +24.700000,87.300000,en +24.600000,87.300000,en +24.600000,87.400000,en +24.600000,87.500000,en +24.500000,87.500000,en +24.500000,87.400000,en +24.400000,87.400000,en +24.400000,87.500000,bn +24.300000,87.500000,bn +24.200000,87.500000,bn +24.200000,87.400000,bn +24.300000,87.400000,bn +24.200000,87.300000,bn +24.300000,87.300000,bn +24.400000,87.300000,en +24.500000,87.300000,en +24.300000,87.200000,bn +24.200000,87.200000,bn +24.200000,87.100000,bn +24.300000,87.100000,bn +24.500000,86.300000,en +24.600000,86.300000,en +24.700000,86.300000,en +24.800000,86.300000,en +24.900000,86.300000,en +24.900000,86.400000,en +25.000000,86.400000,en +25.000000,86.300000,en +25.100000,86.300000,en +25.200000,86.300000,en +25.200000,86.400000,en +25.100000,86.400000,en +25.200000,86.500000,en +25.100000,86.500000,en +25.000000,86.500000,en +24.900000,86.500000,en +25.300000,86.500000,en +25.300000,86.400000,en +25.300000,86.300000,en +25.300000,86.100000,en +25.300000,86.200000,en +25.200000,86.200000,en +25.200000,86.100000,en +25.100000,86.100000,en +25.100000,86.200000,en +25.000000,86.200000,en +24.900000,86.200000,en +24.900000,86.100000,en +25.000000,86.100000,en +24.900000,86.000000,en +24.900000,85.900000,en +24.900000,85.800000,en +25.400000,85.700000,id +25.400000,85.800000,id +25.500000,85.800000,id +25.600000,85.800000,id +25.500000,85.700000,id +25.500000,85.500000,id +25.500000,85.600000,id +25.400000,85.600000,id +25.300000,85.600000,th +25.300000,85.500000,th +25.400000,85.500000,id +25.400000,85.400000,id +25.300000,85.400000,th +25.300000,85.300000,th +25.500000,85.400000,id +25.300000,85.200000,th +25.200000,85.200000,th +25.100000,85.200000,th +24.900000,85.000000,th +24.900000,85.100000,th +25.000000,85.200000,th +24.900000,85.200000,th +24.900000,85.300000,th +24.900000,85.400000,th +25.000000,85.400000,bn +25.000000,85.300000,th +25.100000,85.300000,th +25.200000,85.300000,th +25.200000,85.400000,th +25.100000,85.400000,th +25.100000,85.500000,th +25.200000,85.500000,th +25.200000,85.600000,th +25.100000,85.600000,th +25.000000,85.600000,th +25.000000,85.500000,th +24.900000,85.500000,th +24.900000,85.600000,th +24.800000,85.600000,bn +24.800000,85.500000,bn +24.500000,85.300000,en +24.600000,85.300000,en +24.800000,85.400000,bn +24.800000,85.300000,bn +24.800000,85.200000,th +24.700000,85.200000,th +24.800000,85.100000,th +24.800000,85.000000,th +24.700000,85.000000,th +24.700000,85.100000,th +24.600000,85.100000,th +24.600000,85.000000,th +24.500000,85.000000,th +24.500000,85.100000,th +24.600000,85.200000,th +24.500000,85.200000,th +24.400000,85.200000,en +24.300000,85.200000,en +24.400000,85.100000,en +24.400000,85.000000,en +24.300000,85.000000,en +24.300000,85.100000,en +24.200000,85.100000,en +24.200000,85.000000,en +24.200000,85.200000,en +24.200000,85.300000,en +24.300000,85.300000,en +24.400000,85.300000,en +24.700000,85.800000,en +24.800000,85.800000,en +24.800000,85.900000,en +24.700000,85.900000,en +24.600000,85.900000,en +24.600000,85.800000,en +24.500000,85.800000,en +24.500000,85.900000,en +24.500000,86.000000,en +24.600000,86.000000,en +24.700000,86.000000,en +24.800000,86.000000,en +24.700000,86.100000,en +24.800000,86.100000,en +24.800000,86.200000,en +24.700000,86.200000,en +24.600000,86.200000,en +24.600000,86.100000,en +24.500000,86.100000,en +24.500000,86.200000,en +24.000000,86.200000,id +24.000000,86.100000,id +24.000000,86.000000,id +23.900000,86.000000,id +23.800000,86.000000,id +23.800000,86.100000,id +23.900000,86.100000,id +23.900000,86.200000,id +23.800000,86.200000,id +23.700000,86.200000,bn +23.700000,86.100000,bn +23.600000,86.100000,bn +23.600000,86.200000,bn +23.500000,86.200000,bn +23.400000,86.200000,bn +23.400000,86.100000,bn +23.500000,86.100000,bn +23.400000,86.000000,bn +23.500000,86.000000,bn +23.600000,86.000000,bn +23.700000,86.000000,bn +23.700000,85.900000,bn +23.600000,85.800000,bn +23.600000,85.900000,bn +23.500000,85.900000,bn +23.400000,85.900000,bn +23.400000,85.800000,bn +23.500000,85.800000,bn +23.500000,85.700000,bn +23.400000,85.700000,bn +23.600000,85.700000,bn +23.800000,85.900000,bn +23.100000,85.600000,en +23.000000,85.600000,en +23.000000,85.500000,en +23.100000,85.500000,en +23.100000,85.400000,en +23.000000,85.400000,en +23.000000,85.300000,en +23.100000,85.300000,en +23.000000,85.000000,en +23.000000,85.100000,en +23.000000,85.200000,en +22.900000,85.200000,en +22.800000,85.200000,en +22.900000,85.100000,en +22.900000,85.000000,en +22.800000,85.000000,en +22.800000,85.100000,en +22.700000,85.100000,en +22.700000,85.000000,en +22.600000,85.000000,en +22.600000,85.100000,en +22.700000,85.200000,en +22.600000,85.200000,en +22.600000,85.300000,en +22.600000,85.400000,en +22.700000,85.400000,en +22.700000,85.300000,en +22.800000,85.300000,en +22.900000,85.300000,en +22.900000,85.400000,en +22.800000,85.400000,en +22.800000,85.500000,en +22.900000,85.500000,en +22.900000,85.600000,en +22.800000,85.600000,en +22.700000,85.600000,en +22.700000,85.500000,en +22.600000,85.500000,en +22.600000,85.600000,en +22.700000,85.700000,bn +22.600000,85.700000,bn +22.600000,85.800000,bn +22.600000,85.900000,bn +22.700000,85.900000,bn +22.700000,85.800000,bn +22.800000,85.800000,bn +22.800000,85.900000,bn +22.900000,85.900000,bn +22.900000,85.800000,bn +22.900000,85.700000,bn +22.800000,85.700000,bn +23.000000,85.700000,bn +23.100000,85.700000,bn +23.300000,85.700000,bn +23.200000,85.700000,bn +23.200000,85.800000,bn +23.300000,85.800000,bn +23.300000,85.900000,bn +23.200000,85.900000,bn +23.100000,85.900000,bn +23.100000,85.800000,bn +23.000000,85.800000,bn +23.000000,85.900000,bn +23.000000,86.000000,bn +23.100000,86.000000,bn +23.200000,86.000000,bn +23.300000,86.000000,bn +23.200000,86.100000,bn +23.300000,86.100000,bn +23.300000,86.200000,hi +23.200000,86.200000,bn +23.100000,86.200000,bn +23.100000,86.100000,bn +23.000000,86.100000,bn +23.000000,86.200000,bn +22.900000,86.200000,bn +22.800000,86.200000,bn +22.800000,86.100000,bn +22.900000,86.100000,bn +22.900000,86.000000,bn +22.800000,86.000000,bn +22.700000,86.000000,bn +22.600000,86.000000,bn +22.600000,86.100000,bn +22.700000,86.100000,bn +22.700000,86.200000,bn +22.600000,86.200000,bn +22.600000,86.300000,bn +22.600000,86.400000,bn +22.700000,86.400000,bn +22.700000,86.300000,bn +22.800000,86.300000,bn +22.900000,86.300000,bn +22.900000,86.400000,bn +22.800000,86.400000,bn +22.900000,86.500000,bn +22.800000,86.500000,bn +22.700000,86.500000,bn +22.600000,86.500000,bn +22.600000,86.600000,bn +22.700000,86.600000,bn +22.700000,86.700000,bn +22.600000,86.700000,bn +22.600000,86.800000,hi +22.600000,86.900000,hi +22.700000,86.900000,hi +22.700000,86.800000,hi +22.800000,86.800000,hi +22.800000,86.900000,hi +22.900000,86.900000,hi +22.900000,86.800000,hi +22.900000,86.700000,hi +22.800000,86.700000,hi +22.800000,86.600000,bn +22.900000,86.600000,hi +23.000000,86.600000,hi +23.100000,86.600000,hi +23.100000,86.700000,hi +23.000000,86.700000,hi +23.000000,86.800000,hi +23.000000,86.900000,hi +23.100000,86.900000,hi +23.100000,86.800000,hi +23.200000,86.800000,hi +23.200000,86.900000,hi +23.300000,86.900000,hi +23.300000,86.800000,hi +23.300000,86.700000,hi +23.200000,86.700000,hi +23.200000,86.600000,hi +23.300000,86.600000,hi +23.300000,86.500000,hi +23.200000,86.500000,hi +23.100000,86.500000,hi +23.000000,86.500000,bn +23.100000,86.400000,hi +23.000000,86.400000,bn +23.000000,86.300000,bn +23.100000,86.300000,hi +23.200000,86.300000,hi +23.200000,86.400000,hi +23.300000,86.400000,hi +23.300000,86.300000,hi +23.400000,86.300000,bn +23.500000,86.300000,bn +23.500000,86.400000,bn +23.400000,86.400000,bn +23.400000,86.500000,hi +23.500000,86.500000,bn +23.600000,86.500000,bn +23.700000,86.500000,bn +23.700000,86.400000,bn +23.600000,86.400000,bn +23.600000,86.300000,bn +23.700000,86.300000,bn +23.800000,86.300000,bn +23.800000,86.400000,bn +23.900000,86.400000,bn +23.900000,86.300000,bn +24.000000,86.300000,bn +24.000000,86.400000,bn +24.000000,86.500000,bn +23.900000,86.500000,bn +23.800000,86.500000,bn +23.800000,86.600000,bn +23.800000,86.700000,bn +23.900000,86.700000,bn +23.900000,86.600000,bn +24.000000,86.600000,bn +24.100000,86.700000,bn +24.000000,86.700000,bn +24.000000,86.800000,bn +24.100000,86.800000,bn +24.100000,86.900000,bn +24.000000,86.900000,bn +23.900000,86.900000,bn +23.900000,86.800000,bn +23.800000,86.800000,bn +23.800000,86.900000,bn +23.700000,86.900000,bn +23.600000,86.900000,bn +23.600000,86.800000,bn +23.700000,86.800000,bn +23.700000,86.700000,bn +23.700000,86.600000,bn +23.600000,86.600000,bn +23.600000,86.700000,bn +23.500000,86.700000,bn +23.500000,86.600000,bn +23.400000,86.600000,hi +23.400000,86.700000,hi +23.400000,86.800000,hi +23.500000,86.800000,bn +23.500000,86.900000,bn +23.400000,86.900000,hi +23.500000,87.000000,bn +23.400000,87.000000,hi +23.400000,87.100000,hi +23.400000,87.200000,bn +23.500000,87.200000,bn +23.500000,87.100000,bn +23.600000,87.100000,bn +23.600000,87.200000,bn +23.700000,87.200000,bn +23.700000,87.100000,bn +23.700000,87.000000,bn +23.600000,87.000000,bn +23.800000,87.000000,bn +23.900000,87.000000,bn +24.100000,87.000000,bn +24.000000,87.000000,bn +24.000000,87.100000,bn +24.100000,87.100000,bn +24.100000,87.200000,bn +24.000000,87.200000,bn +23.900000,87.200000,bn +23.900000,87.100000,bn +23.800000,87.100000,bn +23.800000,87.200000,bn +23.800000,87.300000,bn +23.900000,87.300000,hi +24.000000,87.300000,hi +24.100000,87.300000,bn +24.000000,87.400000,hi +24.100000,87.400000,bn +24.100000,87.500000,hi +24.000000,87.500000,hi +23.900000,87.500000,hi +23.900000,87.400000,hi +23.800000,87.400000,hi +23.800000,87.500000,hi +23.700000,87.500000,hi +23.600000,87.500000,hi +23.600000,87.400000,bn +23.700000,87.400000,bn +23.700000,87.300000,bn +23.600000,87.300000,bn +23.500000,87.300000,bn +23.400000,87.300000,bn +23.400000,87.400000,bn +23.500000,87.400000,bn +23.500000,87.500000,bn +23.400000,87.500000,bn +23.300000,87.500000,hi +23.300000,87.400000,hi +23.200000,87.400000,hi +23.200000,87.500000,hi +23.100000,87.500000,hi +23.000000,87.500000,hi +23.000000,87.400000,hi +23.100000,87.400000,hi +23.000000,87.300000,hi +23.100000,87.300000,hi +23.200000,87.300000,hi +23.300000,87.300000,hi +23.300000,87.200000,hi +23.200000,87.200000,hi +23.200000,87.100000,hi +23.300000,87.100000,hi +23.300000,87.000000,hi +23.200000,87.000000,hi +23.100000,87.000000,hi +23.000000,87.000000,hi +23.000000,87.100000,hi +23.100000,87.100000,hi +23.100000,87.200000,hi +23.000000,87.200000,hi +22.900000,87.200000,hi +22.800000,87.200000,hi +22.800000,87.100000,hi +22.900000,87.100000,hi +22.900000,87.000000,hi +22.800000,87.000000,hi +22.700000,87.000000,hi +22.600000,87.000000,hi +22.600000,87.100000,hi +22.700000,87.100000,hi +22.700000,87.200000,hi +22.600000,87.200000,hi +22.600000,87.300000,hi +22.700000,87.300000,hi +22.800000,87.300000,hi +22.900000,87.300000,hi +22.800000,87.400000,hi +22.900000,87.400000,hi +22.900000,87.500000,hi +22.800000,87.500000,hi +22.700000,87.500000,hi +22.700000,87.400000,hi +22.600000,87.400000,hi +22.700000,87.600000,hi +22.700000,87.800000,hi +22.700000,87.700000,hi +22.800000,87.700000,hi +22.800000,87.800000,hi +22.900000,87.800000,hi +22.900000,87.700000,hi +22.800000,87.600000,hi +22.900000,87.600000,hi +23.000000,87.600000,hi +23.100000,87.600000,hi +23.200000,87.600000,hi +23.300000,87.600000,hi +23.200000,87.700000,hi +23.300000,87.700000,hi +23.300000,87.800000,hi +23.200000,87.800000,hi +23.100000,87.800000,hi +23.100000,87.700000,hi +23.000000,87.700000,hi +23.000000,87.800000,hi +23.000000,87.900000,hi +23.000000,88.000000,hi +23.100000,88.000000,hi +23.100000,87.900000,hi +23.200000,87.900000,hi +23.300000,87.900000,hi +23.300000,88.000000,hi +23.200000,88.000000,hi +23.300000,88.100000,hi +23.200000,88.100000,hi +23.100000,88.100000,hi +23.000000,88.100000,hi +22.900000,88.100000,hi +22.800000,88.100000,hi +22.900000,88.000000,hi +22.900000,87.900000,hi +22.800000,87.900000,hi +22.800000,88.000000,hi +22.700000,87.900000,hi +22.700000,88.000000,hi +22.700000,88.100000,hi +22.700000,88.200000,bn +22.700000,88.300000,bn +22.800000,88.300000,bn +22.800000,88.200000,hi +22.900000,88.200000,hi +22.900000,88.300000,hi +22.900000,88.400000,hi +22.800000,88.400000,bn +22.700000,88.400000,hi +22.700000,88.500000,hi +22.800000,88.500000,hi +22.800000,88.600000,hi +22.700000,88.600000,hi +22.700000,88.700000,hi +22.800000,88.700000,hi +22.900000,88.700000,hi +22.900000,88.600000,hi +22.900000,88.500000,hi +23.000000,88.500000,hi +23.100000,88.500000,hi +23.100000,88.600000,hi +23.000000,88.600000,hi +23.000000,88.700000,hi +23.100000,88.700000,hi +23.200000,88.700000,hi +23.300000,88.600000,hi +23.200000,88.600000,hi +23.200000,88.500000,hi +23.300000,88.500000,hi +23.300000,88.400000,hi +23.200000,88.400000,hi +23.000000,88.400000,hi +23.100000,88.400000,hi +23.100000,88.300000,hi +23.000000,88.300000,hi +23.000000,88.200000,hi +23.100000,88.200000,hi +23.200000,88.200000,hi +23.200000,88.300000,hi +23.300000,88.300000,hi +23.300000,88.200000,hi +23.400000,88.200000,hi +23.400000,88.300000,hi +23.500000,88.300000,hi +23.500000,88.200000,hi +23.600000,88.200000,hi +23.700000,88.200000,hi +23.700000,88.300000,hi +23.600000,88.300000,hi +23.600000,88.400000,hi +23.700000,88.400000,hi +23.500000,88.400000,hi +23.400000,88.400000,ru +23.400000,88.500000,hi +23.500000,88.500000,hi +23.500000,88.600000,hi +23.400000,88.600000,hi +23.400000,88.700000,hi +23.600000,88.500000,hi +23.700000,88.500000,hi +23.800000,88.500000,hi +23.900000,88.500000,hi +23.900000,88.600000,hi +24.000000,88.700000,hi +24.100000,88.600000,hi +24.000000,88.600000,hi +24.000000,88.500000,hi +24.100000,88.500000,hi +24.100000,88.400000,hi +24.000000,88.400000,hi +23.800000,88.400000,hi +23.900000,88.400000,hi +23.900000,88.300000,hi +23.800000,88.300000,hi +23.800000,88.200000,hi +23.900000,88.200000,hi +24.000000,88.200000,hi +24.000000,88.300000,hi +24.100000,88.300000,hi +24.100000,88.200000,hi +24.100000,88.100000,hi +24.000000,88.100000,hi +24.100000,88.000000,hi +24.100000,87.900000,hi +24.000000,87.900000,hi +24.000000,88.000000,hi +23.900000,88.000000,hi +23.900000,87.900000,hi +23.800000,87.900000,hi +23.800000,88.000000,hi +23.900000,88.100000,hi +23.800000,88.100000,hi +23.700000,88.100000,hi +23.600000,88.100000,hi +23.500000,88.100000,hi +23.400000,88.100000,hi +23.500000,88.000000,hi +23.400000,88.000000,hi +23.400000,87.900000,hi +23.500000,87.900000,hi +23.600000,87.900000,hi +23.600000,88.000000,hi +23.700000,88.000000,hi +23.700000,87.900000,hi +23.700000,87.800000,hi +23.700000,87.700000,hi +23.600000,87.700000,hi +23.600000,87.800000,hi +23.500000,87.800000,hi +23.400000,87.800000,hi +23.400000,87.700000,hi +23.500000,87.700000,hi +23.400000,87.600000,hi +23.500000,87.600000,hi +23.600000,87.600000,hi +23.700000,87.600000,hi +23.800000,87.600000,hi +23.900000,87.600000,hi +23.800000,87.700000,hi +23.800000,87.800000,hi +23.900000,87.800000,hi +23.900000,87.700000,hi +24.000000,87.700000,hi +24.000000,87.800000,hi +24.100000,87.800000,hi +24.100000,87.700000,hi +24.000000,87.600000,hi +24.100000,87.600000,hi +24.200000,87.600000,hi +24.300000,87.600000,bn +24.400000,87.600000,bn +24.500000,87.600000,bn +24.400000,87.700000,bn +24.500000,87.700000,bn +24.500000,87.800000,bn +24.400000,87.800000,hi +24.300000,87.800000,hi +24.300000,87.700000,hi +24.200000,87.700000,hi +24.200000,87.800000,hi +24.200000,87.900000,hi +24.300000,87.900000,hi +24.300000,88.000000,hi +24.200000,88.000000,hi +24.200000,88.100000,hi +24.300000,88.100000,hi +24.400000,88.100000,hi +24.500000,88.100000,hi +24.500000,88.000000,hi +24.400000,88.000000,hi +24.400000,87.900000,hi +24.500000,87.900000,hi +24.600000,87.900000,bn +24.700000,88.000000,hi +24.600000,88.000000,hi +24.800000,88.000000,hi +24.700000,87.900000,hi +24.800000,87.900000,bn +24.800000,87.800000,bn +24.800000,87.700000,bn +24.700000,87.700000,bn +24.700000,87.800000,bn +24.600000,87.800000,bn +24.600000,87.700000,bn +24.600000,87.600000,bn +24.700000,87.600000,bn +24.800000,87.600000,bn +24.900000,87.600000,bn +25.000000,87.600000,bn +24.900000,87.700000,bn +24.900000,87.800000,bn +25.000000,87.800000,bn +25.000000,87.700000,bn +25.100000,87.700000,bn +25.100000,87.800000,bn +25.200000,87.800000,bn +25.200000,87.700000,bn +25.100000,87.600000,bn +25.200000,87.600000,bn +25.300000,87.600000,bn +25.400000,87.600000,bn +25.500000,87.600000,bn +25.600000,87.600000,bn +25.500000,87.700000,bn +25.600000,87.700000,bn +25.600000,87.800000,bn +25.500000,87.800000,bn +25.400000,87.800000,bn +25.400000,87.700000,bn +25.300000,87.700000,bn +25.300000,87.800000,bn +25.300000,87.900000,hi +25.300000,88.000000,hi +25.400000,88.000000,hi +25.400000,87.900000,hi +25.500000,87.900000,bn +25.600000,87.900000,bn +25.600000,88.000000,bn +25.500000,88.000000,bn +25.600000,88.100000,hi +25.500000,88.100000,hi +25.400000,88.100000,hi +25.300000,88.100000,hi +25.200000,88.100000,hi +25.100000,88.100000,hi +25.200000,88.000000,hi +25.200000,87.900000,hi +25.100000,87.900000,hi +25.100000,88.000000,hi +25.000000,88.000000,hi +25.000000,87.900000,hi +24.900000,87.900000,bn +24.900000,88.000000,hi +25.000000,88.100000,hi +24.900000,88.100000,hi +25.000000,88.200000,hi +25.000000,88.300000,hi +24.900000,88.300000,hi +25.000000,88.400000,hi +25.100000,88.400000,hi +25.200000,88.400000,hi +25.200000,88.300000,hi +25.100000,88.300000,hi +25.100000,88.200000,hi +25.200000,88.200000,hi +25.300000,88.200000,hi +25.300000,88.300000,hi +25.400000,88.300000,hi +25.400000,88.200000,hi +25.500000,88.200000,hi +25.600000,88.200000,hi +25.600000,88.300000,hi +25.500000,88.300000,hi +25.500000,88.400000,hi +25.600000,88.400000,hi +25.400000,88.400000,hi +25.300000,88.400000,hi +25.300000,88.500000,hi +25.300000,88.600000,hi +25.400000,88.600000,hi +25.400000,88.500000,hi +25.500000,88.500000,hi +25.400000,88.700000,hi +25.300000,88.700000,hi +24.400000,88.200000,hi +24.300000,88.300000,hi +24.300000,88.200000,hi +24.200000,88.200000,hi +24.200000,88.300000,hi +24.200000,88.400000,hi +24.300000,88.400000,hi +24.200000,88.500000,hi +24.200000,88.600000,hi +24.300000,88.600000,hi +24.300000,88.500000,hi +24.300000,88.700000,en +24.200000,88.700000,hi +25.200000,88.800000,hi +25.300000,88.800000,hi +25.300000,88.900000,hi +25.400000,88.800000,hi +25.500000,88.800000,en +25.500000,89.900000,bn +25.600000,89.900000,hi +25.400000,89.900000,hi +23.200000,88.800000,hi +23.200000,88.900000,hi +23.100000,88.800000,hi +23.000000,88.800000,hi +22.900000,88.800000,hi +22.800000,88.900000,hi +22.800000,88.800000,hi +22.700000,88.800000,hi +22.700000,88.900000,hi +21.600000,89.100000,hi +21.400000,88.800000,hi +21.500000,88.800000,hi +21.600000,88.800000,hi +21.600000,88.900000,hi +21.500000,88.900000,hi +21.500000,89.000000,hi +21.600000,89.000000,hi +21.700000,89.000000,hi +21.800000,89.000000,hi +21.800000,88.900000,hi +21.700000,88.900000,hi +21.700000,88.800000,hi +21.800000,88.800000,en +21.900000,88.800000,hi +21.900000,88.900000,hi +22.000000,88.900000,hi +22.000000,88.800000,hi +22.100000,88.800000,hi +22.200000,88.800000,hi +22.200000,88.900000,hi +22.100000,88.900000,hi +22.100000,89.000000,en +22.200000,89.000000,en +22.000000,89.000000,hi +21.900000,89.000000,hi +22.400000,88.900000,hi +22.300000,88.900000,hi +22.300000,88.800000,hi +22.400000,88.800000,hi +22.500000,88.800000,hi +22.500000,88.900000,hi +22.600000,88.900000,hi +22.600000,88.800000,hi +22.500000,88.700000,hi +22.600000,88.700000,hi +22.600000,88.600000,hi +22.600000,88.500000,bn +22.500000,88.500000,bn +22.500000,88.600000,hi +22.400000,88.600000,hi +22.400000,88.500000,hi +22.300000,88.500000,hi +22.300000,88.600000,hi +22.300000,88.700000,hi +22.400000,88.700000,hi +22.200000,88.700000,hi +22.100000,88.700000,hi +21.900000,88.700000,hi +22.000000,88.700000,hi +22.000000,88.600000,hi +21.900000,88.600000,hi +21.900000,88.500000,hi +22.000000,88.500000,hi +22.100000,88.500000,hi +22.100000,88.600000,hi +22.200000,88.600000,hi +22.200000,88.500000,hi +22.200000,88.400000,hi +22.100000,88.400000,hi +21.900000,88.400000,hi +22.000000,88.400000,hi +22.000000,88.300000,hi +21.900000,88.300000,hi +21.900000,88.200000,hi +22.000000,88.200000,hi +22.100000,88.200000,hi +22.100000,88.300000,hi +22.200000,88.300000,hi +22.200000,88.200000,hi +22.300000,88.200000,hi +22.400000,88.200000,hi +22.400000,88.300000,hi +22.300000,88.300000,hi +22.300000,88.400000,hi +22.400000,88.400000,hi +22.500000,88.400000,bn +22.600000,88.400000,bn +22.600000,88.300000,bn +22.500000,88.300000,bn +22.500000,88.200000,bn +22.600000,88.200000,bn +22.600000,88.100000,hi +22.500000,88.100000,hi +22.400000,88.100000,hi +22.300000,88.100000,hi +22.400000,88.000000,hi +22.300000,88.000000,hi +22.300000,87.900000,hi +22.400000,87.900000,hi +22.500000,87.900000,hi +22.500000,88.000000,hi +22.600000,88.000000,hi +22.600000,87.900000,hi +22.600000,87.800000,hi +22.500000,87.800000,hi +22.500000,87.700000,hi +22.600000,87.700000,hi +22.600000,87.600000,hi +22.500000,87.600000,hi +22.400000,87.600000,hi +22.300000,87.600000,hi +22.300000,87.700000,hi +22.400000,87.700000,hi +22.400000,87.800000,bn +22.300000,87.800000,hi +22.200000,87.800000,hi +22.100000,87.800000,hi +22.100000,87.700000,hi +22.200000,87.700000,hi +22.200000,87.600000,hi +22.100000,87.600000,hi +22.000000,87.600000,hi +21.900000,87.600000,hi +21.900000,87.700000,hi +22.000000,87.700000,hi +22.000000,87.800000,hi +21.900000,87.800000,hi +21.900000,87.900000,hi +21.900000,88.000000,hi +22.000000,88.000000,hi +22.000000,87.900000,hi +22.100000,87.900000,hi +22.200000,87.900000,hi +22.200000,88.000000,hi +22.100000,88.000000,hi +22.200000,88.100000,hi +22.100000,88.100000,hi +22.000000,88.100000,hi +21.900000,88.100000,hi +21.800000,88.100000,hi +21.700000,88.100000,hi +21.600000,88.100000,hi +21.500000,88.100000,hi +21.600000,88.000000,hi +21.500000,88.000000,hi +21.500000,87.900000,hi +21.600000,87.900000,hi +21.700000,87.900000,hi +21.700000,88.000000,hi +21.800000,88.000000,hi +21.800000,87.900000,hi +21.800000,87.800000,hi +21.700000,87.800000,hi +21.700000,87.700000,hi +21.800000,87.700000,hi +21.800000,87.600000,hi +21.700000,87.600000,hi +21.600000,87.600000,hi +21.500000,87.600000,hi +21.500000,87.700000,hi +21.600000,87.700000,hi +21.600000,87.800000,hi +21.500000,87.800000,hi +21.400000,87.800000,hi +21.300000,87.800000,hi +21.300000,87.700000,hi +21.400000,87.700000,hi +21.400000,87.600000,hi +21.300000,87.600000,hi +21.200000,87.600000,hi +21.100000,87.600000,bn +21.100000,87.700000,hi +21.200000,87.700000,hi +21.200000,87.800000,hi +21.100000,87.800000,hi +21.100000,87.900000,hi +21.100000,88.000000,hi +21.200000,88.000000,hi +21.200000,87.900000,hi +21.300000,87.900000,hi +21.400000,87.900000,hi +21.400000,88.000000,hi +21.300000,88.000000,hi +21.400000,88.100000,hi +21.300000,88.100000,hi +21.200000,88.100000,hi +21.100000,88.100000,hi +21.100000,88.200000,hi +21.200000,88.200000,hi +21.200000,88.300000,hi +21.100000,88.300000,hi +21.200000,88.400000,hi +21.300000,88.400000,hi +21.400000,88.400000,hi +21.400000,88.300000,hi +21.300000,88.300000,hi +21.300000,88.200000,hi +21.400000,88.200000,hi +21.500000,88.200000,hi +21.500000,88.300000,hi +21.600000,88.300000,hi +21.600000,88.200000,hi +21.700000,88.200000,hi +21.800000,88.200000,hi +21.800000,88.300000,hi +21.700000,88.300000,hi +21.700000,88.400000,hi +21.800000,88.400000,hi +21.600000,88.400000,hi +21.500000,88.400000,hi +21.500000,88.500000,hi +21.500000,88.600000,hi +21.600000,88.600000,hi +21.600000,88.500000,hi +21.700000,88.500000,hi +21.800000,88.500000,hi +21.800000,88.600000,hi +21.700000,88.600000,hi +21.700000,88.700000,hi +21.800000,88.700000,hi +21.600000,88.700000,hi +21.500000,88.700000,hi +21.400000,88.700000,hi +21.400000,88.600000,hi +21.400000,88.500000,hi +21.300000,88.500000,hi +21.300000,88.600000,hi +21.200000,88.500000,hi +21.000000,88.200000,hi +21.000000,88.100000,hi +20.800000,87.900000,bn +20.900000,87.900000,bn +20.900000,88.000000,hi +21.000000,88.000000,hi +21.000000,87.900000,hi +21.000000,87.800000,hi +20.900000,87.800000,bn +20.900000,87.700000,bn +21.000000,87.700000,bn +21.000000,87.600000,en +20.900000,87.600000,bn +20.800000,87.600000,bn +20.700000,87.600000,bn +20.700000,87.700000,bn +20.800000,87.700000,bn +20.800000,87.800000,bn +20.600000,87.600000,bn +19.500000,86.500000,or +19.500000,86.400000,or +19.500000,86.300000,bn +19.400000,86.300000,bn +19.400000,86.400000,or +19.300000,86.300000,bn +18.100000,85.000000,hi +18.300000,85.200000,te +18.300000,85.100000,te +18.200000,85.100000,hi +18.200000,85.000000,hi +18.300000,85.000000,te +18.400000,85.000000,te +18.400000,85.100000,te +18.500000,85.100000,te +18.500000,85.000000,hi +18.600000,85.000000,hi +18.700000,85.000000,te +18.700000,85.100000,te +18.600000,85.100000,hi +18.700000,85.200000,en +18.600000,85.200000,te +18.500000,85.200000,te +18.400000,85.200000,te +18.400000,85.300000,te +18.400000,85.400000,te +18.500000,85.400000,te +18.500000,85.300000,te +18.600000,85.300000,te +18.700000,85.300000,en +18.700000,85.400000,te +18.600000,85.400000,te +18.600000,85.500000,te +18.700000,85.500000,te +18.700000,85.600000,te +18.600000,85.600000,te +18.500000,85.500000,te +18.300000,85.300000,te +18.700000,85.700000,or +18.800000,85.700000,or +18.900000,85.700000,or +19.100000,85.700000,en +19.000000,85.700000,or +19.000000,85.800000,or +19.100000,85.800000,or +19.100000,85.900000,or +19.000000,85.900000,or +18.900000,85.900000,bn +18.900000,85.800000,or +18.800000,85.800000,or +19.100000,86.100000,or +19.000000,86.000000,or +19.100000,86.000000,or +19.200000,86.000000,or +19.300000,86.000000,bn +19.200000,86.100000,or +19.200000,86.200000,or +19.300000,86.200000,bn +19.300000,86.100000,bn +19.400000,86.100000,bn +19.400000,86.200000,bn +19.500000,86.200000,bn +19.500000,86.100000,bn +19.400000,86.000000,bn +19.500000,86.000000,bn +19.500000,85.900000,bn +19.500000,85.800000,bn +19.400000,85.800000,bn +19.400000,85.900000,bn +19.300000,85.900000,bn +19.200000,85.900000,or +19.200000,85.800000,en +19.300000,85.800000,bn +19.300000,85.700000,bn +19.200000,85.700000,or +19.400000,85.700000,bn +19.500000,85.700000,bn +19.500000,85.600000,en +19.400000,85.600000,bn +19.400000,85.500000,bn +19.500000,85.500000,en +19.500000,85.400000,or +19.500000,85.300000,or +19.400000,85.300000,or +19.400000,85.400000,en +19.300000,85.400000,bn +19.300000,85.300000,bn +19.200000,85.300000,or +19.200000,85.400000,or +19.200000,85.500000,or +19.300000,85.500000,bn +19.300000,85.600000,bn +19.200000,85.600000,or +19.100000,85.600000,or +19.100000,85.500000,or +19.000000,85.500000,or +19.000000,85.600000,bn +18.900000,85.600000,or +18.800000,85.600000,or +18.800000,85.500000,te +18.900000,85.500000,or +18.900000,85.400000,or +18.800000,85.400000,or +18.800000,85.300000,or +18.900000,85.300000,or +19.000000,85.300000,or +19.000000,85.400000,or +19.100000,85.400000,or +19.100000,85.300000,or +19.100000,85.200000,or +19.000000,85.200000,or +18.900000,85.200000,or +18.800000,85.200000,or +18.900000,85.100000,or +18.800000,85.100000,or +18.800000,85.000000,te +18.900000,85.000000,te +19.000000,85.000000,en +19.000000,85.100000,or +19.100000,85.100000,or +19.100000,85.000000,or +19.200000,85.000000,or +19.300000,85.000000,or +19.300000,85.100000,or +19.200000,85.100000,or +19.200000,85.200000,or +19.300000,85.200000,or +19.400000,85.200000,or +19.500000,85.200000,or +19.500000,85.100000,bn +19.400000,85.100000,or +19.400000,85.000000,or +19.500000,85.000000,or +19.600000,85.100000,or +19.600000,85.000000,or +19.700000,85.000000,or +19.800000,85.000000,or +19.800000,85.100000,or +19.700000,85.100000,or +19.800000,85.200000,or +19.700000,85.200000,or +19.600000,85.200000,or +19.600000,85.300000,or +19.700000,85.400000,or +19.600000,85.400000,or +19.600000,85.500000,or +19.600000,85.600000,bn +19.700000,85.600000,bn +19.700000,85.500000,or +19.800000,85.600000,bn +19.800000,85.500000,or +19.800000,85.400000,or +19.700000,85.300000,or +19.800000,85.300000,or +19.900000,85.300000,or +20.000000,85.300000,or +20.000000,85.400000,or +19.900000,85.400000,or +19.900000,85.500000,or +19.900000,85.600000,bn +20.000000,85.600000,or +20.000000,85.500000,or +20.100000,85.500000,or +20.100000,85.600000,or +20.200000,85.600000,or +20.200000,85.500000,or +20.200000,85.400000,or +20.100000,85.400000,or +20.100000,85.300000,or +20.200000,85.300000,or +20.200000,85.200000,or +20.100000,85.200000,or +20.000000,85.200000,or +19.900000,85.200000,or +20.000000,85.100000,or +19.900000,85.100000,or +19.900000,85.000000,or +20.000000,85.000000,or +20.100000,85.000000,or +20.100000,85.100000,or +20.200000,85.100000,or +20.200000,85.000000,or +20.300000,85.000000,or +20.400000,85.000000,or +20.400000,85.100000,or +20.300000,85.100000,or +20.300000,85.200000,or +20.400000,85.200000,or +20.500000,85.200000,or +20.600000,85.200000,or +20.600000,85.100000,or +20.500000,85.100000,or +20.500000,85.000000,or +20.600000,85.000000,or +20.700000,85.000000,or +20.700000,85.100000,or +20.800000,85.100000,or +20.800000,85.000000,or +20.900000,85.000000,or +21.000000,85.000000,or +21.000000,85.100000,or +20.900000,85.100000,or +21.000000,85.200000,or +20.900000,85.200000,or +20.800000,85.200000,or +20.700000,85.200000,or +20.700000,85.300000,or +20.700000,85.400000,or +20.800000,85.400000,or +20.800000,85.300000,or +20.900000,85.300000,or +21.000000,85.300000,or +21.000000,85.400000,or +20.900000,85.400000,or +20.900000,85.500000,or +21.000000,85.500000,or +21.000000,85.600000,or +20.900000,85.600000,or +20.800000,85.600000,or +20.800000,85.500000,or +20.700000,85.500000,or +20.700000,85.600000,or +20.600000,85.600000,or +20.500000,85.600000,or +20.500000,85.500000,or +20.600000,85.500000,or +20.600000,85.400000,or +20.600000,85.300000,or +20.500000,85.300000,or +20.500000,85.400000,or +20.400000,85.400000,or +20.400000,85.300000,or +20.300000,85.300000,or +20.300000,85.400000,or +20.300000,85.500000,or +20.400000,85.500000,or +20.400000,85.600000,or +20.300000,85.600000,or +20.400000,85.700000,or +20.300000,85.700000,or +20.300000,85.800000,or +20.300000,85.900000,or +20.400000,85.900000,or +20.400000,85.800000,or +20.500000,85.800000,or +20.500000,85.900000,or +20.600000,85.900000,or +20.600000,85.800000,or +20.600000,85.700000,or +20.500000,85.700000,or +20.700000,85.700000,or +20.800000,85.700000,or +21.000000,85.700000,en +20.900000,85.700000,or +20.900000,85.800000,or +21.000000,85.800000,or +21.000000,85.900000,or +20.900000,85.900000,or +20.800000,85.900000,or +20.800000,85.800000,or +20.700000,85.800000,or +20.700000,85.900000,or +20.700000,86.000000,or +20.800000,86.000000,or +20.900000,86.000000,or +21.000000,86.000000,or +20.900000,86.100000,or +21.000000,86.100000,or +21.000000,86.200000,or +20.900000,86.200000,or +20.800000,86.200000,or +20.800000,86.100000,or +20.700000,86.100000,or +20.700000,86.200000,or +20.600000,86.200000,or +20.500000,86.200000,id +20.500000,86.100000,or +20.600000,86.100000,or +20.600000,86.000000,or +20.500000,86.000000,or +20.400000,86.000000,or +20.300000,86.000000,or +20.300000,86.100000,or +20.400000,86.100000,or +20.400000,86.200000,or +20.300000,86.200000,or +20.200000,86.200000,or +20.200000,86.100000,or +20.100000,86.100000,or +20.100000,86.200000,or +20.000000,86.200000,or +20.000000,86.100000,or +20.000000,86.000000,or +20.100000,86.000000,or +20.200000,86.000000,or +20.200000,85.900000,or +20.100000,85.900000,or +20.100000,85.800000,or +20.200000,85.800000,or +20.200000,85.700000,or +20.100000,85.700000,or +20.000000,85.700000,or +19.900000,85.700000,bn +20.000000,85.800000,or +20.000000,85.900000,or +19.900000,85.900000,bn +19.800000,85.900000,bn +19.800000,85.800000,bn +19.900000,85.800000,or +19.800000,85.700000,or +19.700000,85.700000,bn +19.600000,85.700000,bn +19.600000,85.800000,bn +19.700000,85.800000,bn +19.700000,85.900000,bn +19.600000,85.900000,bn +19.600000,86.000000,bn +19.700000,86.000000,bn +19.800000,86.000000,bn +19.900000,86.000000,or +19.800000,86.100000,or +19.900000,86.100000,or +19.900000,86.200000,or +19.800000,86.200000,or +19.700000,86.200000,or +19.700000,86.100000,or +19.600000,86.100000,or +19.600000,86.200000,or +19.600000,86.300000,or +19.700000,86.300000,or +19.700000,86.400000,or +19.600000,86.400000,or +19.600000,86.500000,or +19.700000,86.500000,or +19.800000,86.500000,en +19.900000,86.500000,en +19.900000,86.400000,or +19.800000,86.400000,or +19.800000,86.300000,or +19.900000,86.300000,en +20.000000,86.300000,or +20.000000,86.400000,or +20.100000,86.400000,or +20.100000,86.300000,or +20.200000,86.300000,or +20.200000,86.400000,or +20.200000,86.500000,or +20.100000,86.500000,or +20.000000,86.500000,en +20.000000,86.600000,en +20.000000,86.700000,en +20.100000,86.700000,bn +20.100000,86.600000,or +20.200000,86.600000,or +20.200000,86.700000,or +20.200000,86.800000,bn +20.300000,86.800000,bn +20.300000,86.900000,bn +20.200000,86.900000,bn +20.100000,86.900000,or +20.100000,86.800000,bn +20.000000,86.800000,or +20.000000,86.900000,or +19.900000,86.900000,or +19.800000,86.800000,or +19.900000,86.800000,or +19.900000,86.700000,or +19.800000,86.600000,or +19.800000,86.700000,or +19.700000,86.700000,or +19.700000,86.600000,or +19.600000,86.600000,or +20.300000,87.300000,en +20.300000,87.200000,en +20.300000,87.100000,bn +20.200000,87.100000,bn +20.200000,87.200000,en +20.100000,87.100000,bn +20.100000,87.000000,or +20.000000,87.000000,or +20.200000,87.000000,or +20.300000,87.000000,or +20.600000,87.000000,en +20.500000,87.000000,en +20.600000,87.100000,en +20.600000,87.200000,en +20.500000,87.200000,en +20.400000,87.100000,bn +20.400000,87.200000,en +20.400000,87.300000,en +20.500000,87.300000,en +20.400000,87.400000,en +20.500000,87.500000,en +20.500000,87.400000,en +20.600000,87.500000,en +20.600000,87.400000,en +20.600000,87.300000,en +20.700000,87.300000,en +20.800000,87.300000,en +20.700000,87.400000,en +20.700000,87.500000,en +20.800000,87.500000,en +20.800000,87.400000,en +20.900000,87.400000,en +20.900000,87.500000,en +21.000000,87.500000,bn +21.000000,87.400000,bn +20.900000,87.300000,en +21.000000,87.300000,or +21.000000,87.200000,or +21.000000,87.100000,en +20.900000,87.100000,en +20.900000,87.200000,en +20.800000,87.200000,en +20.700000,87.200000,en +20.700000,87.100000,en +20.800000,87.100000,en +20.800000,87.000000,en +20.700000,87.000000,en +20.900000,87.000000,en +21.000000,87.000000,en +21.000000,86.900000,or +20.900000,86.900000,or +20.900000,86.800000,or +21.000000,86.800000,or +21.000000,86.700000,or +21.000000,86.600000,or +20.900000,86.600000,or +20.900000,86.700000,or +20.800000,86.700000,or +20.800000,86.600000,or +20.700000,86.600000,or +20.700000,86.700000,or +20.700000,86.800000,or +20.800000,86.800000,or +20.800000,86.900000,en +20.700000,86.900000,en +20.600000,86.900000,en +20.600000,86.800000,or +20.500000,86.800000,or +20.500000,86.900000,bn +20.400000,86.900000,bn +20.400000,86.800000,or +20.400000,86.700000,or +20.300000,86.700000,bn +20.300000,86.600000,bn +20.400000,86.600000,or +20.500000,86.600000,or +20.500000,86.700000,or +20.600000,86.700000,or +20.600000,86.600000,or +20.600000,86.500000,or +20.500000,86.500000,or +20.400000,86.500000,or +20.300000,86.500000,or +20.400000,86.400000,or +20.300000,86.400000,or +20.300000,86.300000,or +20.400000,86.300000,or +20.500000,86.300000,or +20.500000,86.400000,or +20.600000,86.400000,or +20.600000,86.300000,or +20.700000,86.300000,or +20.800000,86.300000,or +20.800000,86.400000,or +20.700000,86.400000,or +20.700000,86.500000,or +20.800000,86.500000,or +20.900000,86.500000,or +21.000000,86.500000,or +21.000000,86.400000,or +20.900000,86.400000,or +20.900000,86.300000,or +21.000000,86.300000,or +21.100000,86.300000,or +21.200000,86.300000,or +21.200000,86.400000,or +21.100000,86.400000,or +21.100000,86.500000,or +21.200000,86.500000,or +21.300000,86.500000,or +21.400000,86.500000,or +21.400000,86.400000,or +21.300000,86.400000,or +21.300000,86.300000,or +21.400000,86.300000,or +21.500000,86.300000,en +21.500000,86.400000,or +21.600000,86.400000,or +21.600000,86.300000,en +21.700000,86.300000,en +21.800000,86.300000,en +21.800000,86.400000,or +21.700000,86.400000,or +21.800000,86.500000,or +21.700000,86.500000,or +21.600000,86.500000,or +21.500000,86.500000,or +21.500000,86.600000,or +21.500000,86.700000,or +21.600000,86.700000,or +21.600000,86.600000,or +21.700000,86.600000,or +21.800000,86.600000,or +21.800000,86.700000,or +21.700000,86.700000,or +21.700000,86.800000,or +21.800000,86.800000,or +21.800000,86.900000,or +21.700000,86.900000,or +21.600000,86.900000,or +21.600000,86.800000,or +21.500000,86.800000,or +21.500000,86.900000,or +21.400000,86.900000,or +21.300000,86.900000,or +21.300000,86.800000,or +21.400000,86.800000,or +21.400000,86.700000,or +21.400000,86.600000,or +21.300000,86.600000,or +21.300000,86.700000,or +21.200000,86.700000,or +21.200000,86.600000,or +21.100000,86.600000,or +21.100000,86.700000,or +21.100000,86.800000,or +21.200000,86.800000,or +21.200000,86.900000,or +21.100000,86.900000,or +21.100000,87.000000,or +21.200000,87.000000,or +21.400000,87.000000,or +21.300000,87.000000,or +21.300000,87.100000,or +21.400000,87.100000,or +21.400000,87.200000,bn +21.300000,87.200000,bn +21.200000,87.200000,bn +21.200000,87.100000,en +21.100000,87.100000,en +21.100000,87.200000,bn +21.100000,87.300000,bn +21.200000,87.300000,bn +21.100000,87.400000,bn +21.100000,87.500000,bn +21.200000,87.500000,bn +21.200000,87.400000,bn +21.300000,87.400000,hi +21.300000,87.500000,hi +21.400000,87.500000,hi +21.400000,87.400000,hi +21.300000,87.300000,bn +21.400000,87.300000,bn +21.500000,87.300000,bn +21.600000,87.300000,bn +21.500000,87.400000,bn +21.500000,87.500000,hi +21.600000,87.500000,hi +21.600000,87.400000,bn +21.700000,87.400000,bn +21.700000,87.500000,hi +21.800000,87.500000,hi +21.800000,87.400000,hi +21.700000,87.300000,bn +21.800000,87.300000,hi +21.800000,87.200000,bn +21.800000,87.100000,bn +21.700000,87.100000,or +21.700000,87.200000,bn +21.600000,87.200000,bn +21.500000,87.200000,or +21.500000,87.100000,or +21.600000,87.100000,or +21.600000,87.000000,bn +21.500000,87.000000,bn +21.700000,87.000000,or +21.800000,87.000000,bn +21.900000,87.000000,bn +22.000000,87.000000,bn +22.200000,87.000000,hi +22.100000,87.000000,hi +22.100000,87.100000,bn +22.200000,87.100000,hi +22.200000,87.200000,hi +22.100000,87.200000,hi +22.000000,87.200000,hi +22.000000,87.100000,hi +21.900000,87.100000,hi +21.900000,87.200000,bn +21.900000,87.300000,hi +22.000000,87.300000,hi +21.900000,87.400000,hi +21.900000,87.500000,hi +22.000000,87.500000,hi +22.000000,87.400000,hi +22.100000,87.400000,hi +22.100000,87.500000,hi +22.200000,87.500000,hi +22.200000,87.400000,hi +22.100000,87.300000,hi +22.200000,87.300000,bn +22.300000,87.300000,bn +22.400000,87.300000,hi +22.300000,87.400000,hi +22.300000,87.500000,hi +22.400000,87.500000,hi +22.400000,87.400000,hi +22.500000,87.400000,hi +22.500000,87.500000,hi +22.600000,87.500000,hi +22.500000,87.300000,hi +22.500000,87.100000,hi +22.500000,87.200000,hi +22.400000,87.200000,hi +22.300000,87.200000,bn +22.300000,87.100000,bn +22.400000,87.100000,hi +22.400000,87.000000,hi +22.300000,87.000000,hi +22.500000,87.000000,hi +22.500000,86.900000,hi +22.400000,86.900000,hi +22.400000,86.800000,bn +22.500000,86.800000,bn +22.500000,86.700000,bn +22.500000,86.600000,bn +22.400000,86.600000,bn +22.400000,86.700000,bn +22.300000,86.600000,bn +22.300000,86.700000,bn +22.300000,86.800000,bn +22.300000,86.900000,hi +22.200000,86.900000,hi +22.200000,86.800000,bn +22.100000,86.800000,bn +22.100000,86.900000,bn +22.000000,86.900000,bn +21.900000,86.900000,or +21.900000,86.800000,or +22.000000,86.800000,or +22.000000,86.700000,or +21.900000,86.700000,or +21.900000,86.600000,or +22.000000,86.600000,or +22.100000,86.600000,or +22.100000,86.700000,bn +22.200000,86.700000,bn +22.200000,86.600000,bn +22.200000,86.500000,bn +22.100000,86.500000,or +22.000000,86.500000,or +21.900000,86.500000,or +22.000000,86.400000,en +21.900000,86.400000,en +21.900000,86.300000,en +22.000000,86.300000,en +22.100000,86.300000,en +22.100000,86.400000,en +22.200000,86.300000,en +22.300000,86.300000,bn +22.300000,86.400000,bn +22.200000,86.400000,en +22.300000,86.500000,bn +22.400000,86.500000,bn +22.500000,86.500000,bn +22.500000,86.400000,bn +22.400000,86.400000,bn +22.400000,86.300000,bn +22.500000,86.300000,bn +22.500000,86.200000,bn +22.500000,86.100000,bn +22.400000,86.100000,en +22.400000,86.200000,bn +22.300000,86.200000,en +22.200000,86.200000,en +22.200000,86.100000,en +22.300000,86.100000,en +22.200000,86.000000,en +22.300000,86.000000,en +22.400000,86.000000,en +22.500000,86.000000,bn +22.400000,85.900000,en +22.400000,85.800000,en +22.500000,85.800000,en +22.500000,85.700000,en +22.400000,85.700000,en +22.300000,85.700000,en +22.200000,85.700000,en +22.200000,85.800000,en +22.300000,85.800000,en +22.300000,85.900000,en +22.200000,85.900000,en +22.100000,85.900000,en +22.000000,85.900000,or +22.000000,85.800000,or +22.100000,85.800000,en +22.100000,85.700000,en +22.000000,85.700000,en +21.900000,85.700000,or +21.900000,85.800000,or +21.900000,85.900000,or +21.900000,86.000000,or +22.000000,86.000000,or +22.100000,86.000000,en +22.100000,86.100000,en +22.100000,86.200000,en +22.000000,86.200000,or +22.000000,86.100000,or +21.900000,86.100000,or +21.900000,86.200000,or +21.800000,86.200000,or +21.700000,86.200000,or +21.700000,86.100000,or +21.800000,86.100000,or +21.800000,86.000000,or +21.700000,86.000000,or +21.600000,86.000000,or +21.500000,86.000000,en +21.500000,86.100000,en +21.600000,86.100000,or +21.600000,86.200000,or +21.500000,86.200000,en +21.400000,86.200000,or +21.400000,86.100000,or +21.300000,86.100000,or +21.300000,86.200000,or +21.200000,86.200000,or +21.100000,86.200000,or +21.100000,86.100000,or +21.200000,86.100000,or +21.100000,86.000000,or +21.200000,86.000000,or +21.300000,86.000000,or +21.400000,86.000000,or +21.400000,85.900000,or +21.400000,85.800000,or +21.300000,85.800000,en +21.300000,85.900000,or +21.200000,85.900000,or +21.100000,85.900000,or +21.100000,85.800000,or +21.200000,85.800000,or +21.200000,85.700000,en +21.100000,85.700000,en +21.300000,85.700000,en +21.400000,85.700000,or +21.600000,85.700000,or +21.500000,85.700000,or +21.500000,85.800000,or +21.500000,85.900000,en +21.600000,85.900000,or +21.600000,85.800000,or +21.700000,85.800000,or +21.700000,85.900000,or +21.800000,85.900000,or +21.800000,85.800000,or +21.800000,85.700000,or +21.700000,85.700000,or +21.700000,85.600000,or +21.700000,85.500000,or +21.700000,85.400000,or +21.700000,85.300000,en +21.600000,85.300000,en +21.600000,85.400000,or +21.500000,85.300000,en +21.500000,85.400000,or +21.500000,85.500000,or +21.600000,85.500000,or +21.600000,85.600000,or +21.500000,85.600000,or +21.400000,85.600000,or +21.400000,85.500000,or +21.300000,85.500000,en +21.300000,85.600000,en +21.200000,85.600000,en +21.100000,85.600000,en +21.100000,85.500000,or +21.200000,85.500000,en +21.200000,85.400000,or +21.100000,85.400000,or +21.100000,85.300000,or +21.200000,85.300000,or +21.300000,85.300000,or +21.300000,85.400000,en +21.400000,85.400000,or +21.400000,85.300000,en +21.400000,85.200000,en +21.300000,85.200000,or +21.200000,85.200000,or +21.100000,85.200000,or +21.200000,85.100000,or +21.100000,85.100000,or +21.100000,85.000000,or +21.200000,85.000000,or +21.300000,85.000000,or +21.300000,85.100000,or +21.400000,85.100000,en +21.400000,85.000000,en +21.500000,85.000000,en +21.500000,85.100000,en +21.500000,85.200000,en +21.600000,85.200000,en +21.700000,85.200000,en +21.700000,85.100000,en +21.600000,85.100000,en +21.600000,85.000000,en +21.700000,85.000000,en +21.800000,85.000000,en +21.800000,85.100000,en +21.900000,85.100000,en +21.900000,85.000000,en +22.000000,85.000000,or +22.100000,85.000000,or +22.100000,85.100000,bn +22.000000,85.100000,bn +22.100000,85.200000,or +22.000000,85.200000,or +21.900000,85.200000,or +21.800000,85.200000,or +21.800000,85.300000,or +21.900000,85.300000,or +21.900000,85.400000,or +21.800000,85.400000,or +21.800000,85.500000,or +21.800000,85.600000,or +21.900000,85.600000,or +21.900000,85.500000,or +22.000000,85.500000,or +22.000000,85.600000,or +22.100000,85.600000,or +22.100000,85.500000,or +22.100000,85.400000,or +22.000000,85.400000,or +22.000000,85.300000,or +22.100000,85.300000,or +22.200000,85.300000,or +22.300000,85.300000,or +22.300000,85.400000,or +22.200000,85.400000,or +22.200000,85.500000,or +22.200000,85.600000,or +22.300000,85.600000,or +22.300000,85.500000,or +22.400000,85.500000,en +22.400000,85.600000,en +22.500000,85.600000,en +22.500000,85.500000,en +22.500000,85.400000,en +22.400000,85.400000,en +22.400000,85.300000,en +22.500000,85.300000,en +22.500000,85.200000,en +22.400000,85.200000,en +22.300000,85.200000,or +22.200000,85.200000,or +22.300000,85.100000,bn +22.200000,85.100000,bn +22.200000,85.000000,or +22.300000,85.000000,or +22.400000,85.000000,or +22.400000,85.100000,bn +22.500000,85.100000,bn +22.500000,85.000000,or +22.500000,84.900000,or +22.400000,84.900000,or +22.400000,84.800000,or +22.500000,84.800000,or +22.500000,84.700000,or +22.400000,84.700000,or +22.300000,84.700000,or +22.200000,84.700000,or +22.200000,84.800000,or +22.300000,84.800000,or +22.300000,84.900000,bn +22.200000,84.900000,bn +22.100000,84.900000,or +22.100000,84.800000,or +22.000000,84.800000,or +22.000000,84.900000,or +21.900000,84.900000,en +21.800000,84.900000,en +21.800000,84.800000,en +21.900000,84.800000,en +21.900000,84.700000,en +21.800000,84.700000,en +22.000000,84.700000,or +22.100000,84.700000,or +22.100000,84.600000,or +22.100000,84.500000,bn +22.000000,84.500000,bn +22.000000,84.600000,or +21.900000,84.600000,en +21.800000,84.600000,en +21.800000,84.500000,en +21.900000,84.500000,en +21.900000,84.400000,en +21.800000,84.400000,en +21.800000,84.300000,en +21.900000,84.300000,en +22.000000,84.300000,en +22.000000,84.400000,bn +22.100000,84.400000,bn +22.100000,84.300000,en +22.200000,84.300000,en +22.300000,84.300000,en +22.300000,84.400000,bn +22.200000,84.400000,bn +22.200000,84.500000,bn +22.200000,84.600000,bn +22.300000,84.600000,or +22.300000,84.500000,bn +22.400000,84.500000,bn +22.400000,84.600000,or +22.500000,84.600000,or +22.500000,84.500000,en +22.500000,84.400000,en +22.400000,84.400000,bn +22.400000,84.300000,en +22.500000,84.300000,en +22.500000,84.200000,en +22.400000,84.200000,en +22.300000,84.200000,or +22.200000,84.200000,or +22.300000,84.100000,or +22.200000,84.100000,or +22.200000,84.000000,or +22.300000,84.000000,or +22.400000,84.000000,en +22.400000,84.100000,en +22.500000,84.100000,en +22.500000,84.000000,en +22.400000,83.900000,en +22.400000,83.800000,en +22.400000,83.600000,en +22.400000,83.700000,en +22.300000,83.700000,en +22.300000,83.600000,en +22.200000,83.600000,en +22.200000,83.700000,en +22.200000,83.800000,or +22.300000,83.800000,or +22.300000,83.900000,or +22.200000,83.900000,or +22.100000,83.900000,or +22.000000,83.900000,bn +22.000000,83.800000,bn +22.100000,83.800000,or +22.100000,83.700000,en +22.100000,83.600000,en +22.000000,83.600000,en +22.000000,83.700000,or +21.900000,83.700000,or +21.900000,83.600000,en +21.800000,83.600000,en +21.800000,83.700000,or +21.800000,83.800000,bn +21.900000,83.800000,bn +21.900000,83.900000,bn +21.800000,83.900000,or +21.800000,84.000000,bn +21.800000,84.100000,bn +21.900000,84.100000,bn +21.900000,84.000000,bn +22.000000,84.000000,bn +22.100000,84.000000,or +22.100000,84.100000,or +22.000000,84.100000,bn +22.100000,84.200000,or +22.000000,84.200000,bn +21.900000,84.200000,bn +21.800000,84.200000,bn +21.700000,84.200000,or +21.600000,84.200000,or +21.500000,84.200000,or +21.400000,84.200000,or +21.500000,84.100000,or +21.400000,84.100000,or +21.400000,84.000000,or +21.500000,84.000000,or +21.600000,84.000000,or +21.600000,84.100000,or +21.700000,84.100000,or +21.700000,84.000000,or +21.700000,83.900000,or +21.600000,83.900000,or +21.600000,83.800000,or +21.700000,83.800000,or +21.700000,83.700000,or +21.700000,83.600000,en +21.600000,83.600000,en +21.600000,83.700000,or +21.500000,83.700000,or +21.500000,83.600000,or +21.400000,83.600000,or +21.400000,83.700000,or +21.400000,83.800000,or +21.500000,83.800000,or +21.500000,83.900000,or +21.400000,83.900000,or +21.300000,83.900000,or +21.200000,83.900000,en +21.200000,83.800000,or +21.300000,83.800000,or +21.300000,83.700000,or +21.300000,83.600000,or +21.200000,83.600000,or +21.200000,83.700000,or +21.100000,83.700000,or +21.100000,83.600000,or +21.000000,83.600000,or +21.000000,83.700000,or +21.000000,83.800000,or +21.100000,83.800000,or +21.100000,83.900000,en +21.000000,83.900000,or +21.000000,84.000000,or +21.000000,84.100000,or +21.100000,84.100000,en +21.100000,84.000000,en +21.200000,84.000000,en +21.300000,84.000000,or +21.300000,84.100000,or +21.200000,84.100000,en +21.300000,84.200000,or +21.200000,84.200000,en +21.100000,84.200000,en +21.000000,84.200000,or +21.000000,84.300000,or +21.100000,84.300000,en +21.100000,84.400000,en +21.100000,84.500000,en +21.100000,84.600000,en +21.200000,84.500000,en +21.200000,84.600000,en +21.300000,84.600000,en +21.300000,84.500000,en +21.300000,84.400000,en +21.200000,84.400000,en +21.200000,84.300000,en +21.300000,84.300000,en +21.400000,84.300000,en +21.400000,84.400000,en +21.500000,84.400000,en +21.500000,84.300000,en +21.600000,84.300000,en +21.700000,84.300000,en +21.700000,84.400000,en +21.600000,84.400000,en +21.600000,84.500000,en +21.700000,84.500000,en +21.700000,84.600000,en +21.600000,84.600000,en +21.500000,84.600000,en +21.500000,84.500000,en +21.400000,84.500000,en +21.400000,84.600000,en +21.400000,84.700000,en +21.500000,84.700000,en +21.700000,84.700000,en +21.600000,84.700000,en +21.600000,84.800000,en +21.700000,84.800000,en +21.700000,84.900000,en +21.600000,84.900000,en +21.500000,84.900000,en +21.500000,84.800000,en +21.400000,84.800000,en +21.400000,84.900000,en +21.300000,84.900000,or +21.300000,84.800000,en +21.300000,84.700000,en +21.200000,84.700000,en +21.100000,84.700000,en +21.100000,84.800000,or +21.200000,84.800000,en +21.200000,84.900000,or +21.100000,84.900000,or +21.000000,84.900000,or +21.000000,84.800000,or +20.900000,84.800000,or +20.900000,84.900000,or +20.800000,84.900000,or +20.700000,84.900000,or +20.700000,84.800000,or +20.800000,84.800000,or +20.800000,84.700000,en +20.700000,84.700000,en +20.900000,84.700000,en +21.000000,84.700000,en +21.000000,84.600000,en +20.900000,84.600000,en +20.900000,84.500000,or +21.000000,84.500000,or +21.000000,84.400000,or +20.900000,84.300000,or +20.900000,84.400000,or +20.800000,84.400000,or +20.800000,84.300000,or +20.700000,84.300000,or +20.700000,84.400000,or +20.700000,84.500000,or +20.800000,84.500000,or +20.800000,84.600000,en +20.700000,84.600000,en +20.600000,84.600000,en +20.500000,84.600000,en +20.500000,84.500000,en +20.600000,84.500000,or +20.600000,84.400000,or +20.600000,84.300000,or +20.500000,84.300000,or +20.500000,84.400000,or +20.400000,84.400000,or +20.400000,84.300000,or +20.300000,84.300000,or +20.300000,84.400000,or +20.300000,84.500000,en +20.400000,84.500000,en +20.400000,84.600000,en +20.300000,84.600000,en +20.300000,84.700000,en +20.400000,84.700000,en +20.600000,84.700000,en +20.500000,84.700000,en +20.500000,84.800000,en +20.600000,84.800000,en +20.600000,84.900000,or +20.500000,84.900000,en +20.400000,84.900000,en +20.400000,84.800000,en +20.300000,84.800000,en +20.300000,84.900000,or +20.200000,84.900000,or +20.100000,84.900000,or +20.100000,84.800000,or +20.200000,84.800000,en +20.200000,84.700000,en +20.100000,84.700000,or +20.000000,84.700000,or +19.900000,84.700000,or +19.900000,84.800000,or +20.000000,84.800000,or +20.000000,84.900000,or +19.900000,84.900000,or +19.800000,84.900000,or +19.800000,84.800000,or +19.700000,84.800000,or +19.700000,84.900000,or +19.600000,84.900000,or +19.500000,84.900000,or +19.500000,84.800000,or +19.600000,84.800000,or +19.600000,84.700000,or +19.500000,84.700000,or +19.700000,84.700000,or +19.800000,84.700000,or +19.800000,84.600000,or +19.800000,84.500000,or +19.700000,84.500000,or +19.700000,84.600000,or +19.600000,84.600000,or +19.500000,84.600000,or +19.500000,84.500000,or +19.600000,84.500000,or +19.600000,84.400000,or +19.500000,84.400000,or +19.500000,84.300000,en +19.600000,84.300000,en +19.700000,84.300000,en +19.700000,84.400000,or +19.800000,84.400000,or +19.800000,84.300000,en +19.900000,84.300000,en +20.000000,84.300000,en +20.000000,84.400000,or +19.900000,84.400000,or +19.900000,84.500000,or +19.900000,84.600000,or +20.000000,84.600000,or +20.000000,84.500000,or +20.100000,84.500000,or +20.100000,84.600000,or +20.200000,84.600000,en +20.200000,84.500000,en +20.200000,84.400000,en +20.100000,84.400000,or +20.100000,84.300000,en +20.200000,84.300000,en +20.200000,84.200000,en +20.100000,84.200000,en +20.200000,84.100000,en +20.200000,84.000000,en +20.100000,84.000000,en +20.100000,84.100000,en +20.000000,84.100000,en +20.000000,84.000000,en +19.900000,84.000000,en +19.900000,84.100000,en +20.000000,84.200000,en +19.900000,84.200000,en +19.800000,84.200000,en +19.700000,84.200000,en +19.600000,84.200000,en +19.500000,84.200000,en +19.600000,84.100000,en +19.500000,84.100000,en +19.500000,84.000000,en +19.700000,84.000000,en +19.700000,84.100000,en +19.800000,84.100000,en +19.800000,84.000000,en +19.800000,83.900000,en +19.800000,83.800000,en +19.700000,83.800000,en +19.700000,83.900000,en +19.600000,83.900000,en +19.500000,83.900000,en +19.500000,83.800000,en +19.600000,83.800000,en +19.600000,83.700000,en +19.500000,83.700000,en +19.500000,83.600000,en +19.600000,83.600000,en +19.700000,83.600000,en +19.700000,83.700000,en +19.800000,83.700000,en +19.800000,83.600000,en +19.900000,83.600000,en +20.000000,83.600000,en +20.000000,83.700000,en +19.900000,83.700000,en +19.900000,83.800000,en +19.900000,83.900000,en +20.000000,83.900000,en +20.000000,83.800000,en +20.100000,83.800000,en +20.100000,83.900000,en +20.200000,83.900000,en +20.200000,83.800000,en +20.200000,83.700000,en +20.100000,83.700000,en +20.100000,83.600000,en +20.200000,83.600000,en +20.300000,83.600000,en +20.300000,83.700000,en +20.400000,83.700000,en +20.400000,83.600000,en +20.500000,83.600000,fi +20.500000,83.700000,fi +20.500000,83.800000,en +20.600000,83.800000,or +20.600000,83.900000,or +20.500000,83.900000,en +20.400000,83.900000,en +20.400000,83.800000,en +20.300000,83.800000,en +20.300000,83.900000,en +20.300000,84.000000,or +20.400000,84.000000,or +20.400000,84.100000,or +20.300000,84.100000,or +20.300000,84.200000,or +20.400000,84.200000,or +20.500000,84.200000,or +20.600000,84.200000,or +20.600000,84.100000,or +20.500000,84.100000,or +20.500000,84.000000,or +20.600000,84.000000,or +20.700000,84.000000,or +20.800000,84.100000,or +20.700000,84.100000,or +20.700000,84.200000,or +20.800000,84.200000,or +20.900000,84.200000,or +20.900000,84.100000,or +20.800000,84.000000,or +20.900000,84.000000,or +20.900000,83.900000,or +20.900000,83.800000,or +20.800000,83.800000,or +20.800000,83.900000,or +20.700000,83.900000,or +20.700000,83.800000,or +20.700000,83.700000,or +20.600000,83.700000,or +20.600000,83.600000,fi +20.700000,83.600000,fi +20.800000,83.600000,fi +20.800000,83.700000,or +20.900000,83.700000,or +20.900000,83.600000,fi +20.900000,83.500000,fi +20.800000,83.500000,fi +20.600000,83.500000,fi +20.700000,83.500000,fi +20.700000,83.400000,fi +20.600000,83.400000,fi +20.600000,83.300000,fi +20.700000,83.300000,fi +20.800000,83.300000,fi +20.800000,83.400000,fi +20.900000,83.400000,fi +20.900000,83.300000,fi +20.900000,83.200000,en +20.800000,83.200000,en +20.800000,83.100000,en +20.900000,83.100000,en +20.900000,83.000000,te +20.800000,83.000000,te +20.700000,83.000000,en +20.600000,83.000000,en +20.600000,83.100000,en +20.700000,83.100000,en +20.700000,83.200000,en +20.600000,83.200000,en +20.500000,83.200000,or +20.400000,83.200000,or +20.400000,83.100000,or +20.500000,83.100000,or +20.500000,83.000000,or +20.400000,83.000000,or +20.300000,83.000000,or +20.200000,83.000000,or +20.200000,83.100000,or +20.300000,83.100000,or +20.300000,83.200000,or +20.200000,83.200000,or +20.300000,83.400000,or +20.300000,83.300000,or +20.400000,83.300000,or +20.500000,83.300000,or +20.500000,83.400000,or +20.400000,83.400000,or +20.500000,83.500000,fi +20.400000,83.500000,en +20.300000,83.500000,en +20.100000,83.500000,en +20.200000,83.500000,en +20.200000,83.400000,or +20.200000,83.300000,or +20.100000,83.300000,or +20.100000,83.400000,or +20.000000,83.400000,or +20.000000,83.300000,or +19.900000,83.300000,or +19.900000,83.400000,or +19.900000,83.500000,en +20.000000,83.500000,en +19.800000,83.500000,en +19.700000,83.500000,en +19.500000,83.500000,en +19.600000,83.500000,en +19.600000,83.400000,en +19.500000,83.400000,en +19.500000,83.300000,en +19.600000,83.300000,en +19.700000,83.300000,or +19.700000,83.400000,or +19.800000,83.400000,or +19.800000,83.300000,or +19.800000,83.200000,or +19.800000,83.100000,or +19.700000,83.100000,or +19.700000,83.200000,or +19.600000,83.200000,en +19.500000,83.200000,en +19.500000,83.100000,en +19.600000,83.100000,en +19.600000,83.000000,en +19.500000,83.000000,en +19.700000,83.000000,or +19.800000,83.000000,or +20.000000,83.000000,or +19.900000,83.000000,or +19.900000,83.100000,or +19.900000,83.200000,or +20.000000,83.200000,or +20.000000,83.100000,or +20.100000,83.100000,or +20.100000,83.200000,or +20.100000,83.000000,or +20.100000,82.900000,en +20.000000,82.900000,en +20.000000,82.800000,en +20.100000,82.800000,en +20.100000,82.700000,en +20.100000,82.600000,en +20.000000,82.600000,en +20.000000,82.700000,en +19.900000,82.700000,en +19.900000,82.600000,en +19.800000,82.600000,en +19.900000,82.800000,en +19.900000,82.900000,en +19.800000,82.900000,en +19.800000,82.800000,en +19.700000,82.800000,en +19.700000,82.900000,en +19.600000,82.900000,en +19.500000,82.900000,en +19.500000,82.800000,en +19.600000,82.800000,en +19.600000,82.700000,en +19.500000,82.700000,en +19.500000,82.600000,en +19.600000,82.600000,en +19.700000,82.600000,en +19.700000,82.700000,en +19.800000,82.700000,en +19.700000,82.500000,en +19.700000,82.400000,en +19.600000,82.400000,en +19.600000,82.500000,en +19.500000,82.500000,en +19.500000,82.400000,en +19.500000,82.300000,en +19.600000,82.300000,en +19.700000,82.300000,en +19.800000,82.300000,en +19.900000,82.300000,en +19.800000,82.400000,en +19.800000,82.500000,en +19.900000,82.500000,en +19.900000,82.400000,en +20.000000,82.400000,en +20.000000,82.500000,en +20.100000,82.500000,en +20.100000,82.400000,en +20.000000,82.300000,en +20.100000,82.300000,en +20.200000,82.300000,en +20.400000,82.300000,en +20.500000,82.300000,en +20.400000,82.400000,en +20.500000,82.400000,en +20.500000,82.500000,en +20.400000,82.500000,en +20.300000,82.500000,en +20.300000,82.400000,en +20.200000,82.400000,en +20.200000,82.500000,en +20.200000,82.600000,en +20.300000,82.600000,en +20.300000,82.700000,en +20.200000,82.700000,en +20.200000,82.800000,en +20.200000,82.900000,en +20.300000,82.900000,en +20.300000,82.800000,en +20.400000,82.800000,en +20.400000,82.900000,en +20.500000,82.900000,en +20.500000,82.800000,en +20.500000,82.700000,en +20.400000,82.700000,en +20.400000,82.600000,en +20.500000,82.600000,en +20.600000,82.600000,en +20.700000,82.600000,en +20.700000,82.700000,en +20.600000,82.700000,en +20.600000,82.800000,en +20.600000,82.900000,en +20.700000,82.900000,en +20.700000,82.800000,en +20.800000,82.800000,te +20.800000,82.900000,te +20.900000,82.900000,te +20.900000,82.800000,te +20.900000,82.700000,te +20.800000,82.700000,te +20.800000,82.600000,te +20.900000,82.600000,te +20.900000,82.500000,en +20.900000,82.400000,en +20.800000,82.400000,en +20.800000,82.500000,en +20.700000,82.500000,en +20.600000,82.500000,en +20.600000,82.400000,en +20.700000,82.400000,en +20.600000,82.300000,en +20.700000,82.300000,en +20.800000,82.300000,en +20.900000,82.300000,en +21.000000,82.300000,en +21.000000,82.400000,en +21.000000,82.500000,en +21.100000,82.500000,en +21.200000,82.500000,en +21.600000,82.800000,en +21.700000,82.800000,ta +21.700000,82.900000,ta +21.600000,82.900000,en +21.500000,82.900000,en +21.500000,82.800000,en +21.400000,82.800000,en +21.400000,82.900000,en +21.300000,82.900000,en +21.200000,82.900000,te +21.200000,82.800000,te +21.300000,82.800000,en +21.200000,82.600000,te +21.200000,82.700000,te +21.100000,82.700000,te +21.100000,82.600000,te +21.000000,82.600000,te +21.000000,82.700000,te +21.000000,82.800000,te +21.100000,82.800000,te +21.100000,82.900000,te +21.000000,82.900000,te +21.000000,83.000000,te +21.100000,83.000000,te +21.300000,83.000000,en +21.200000,83.000000,te +21.200000,83.100000,en +21.300000,83.100000,en +21.300000,83.200000,en +21.200000,83.200000,en +21.100000,83.200000,en +21.100000,83.100000,en +21.000000,83.100000,en +21.000000,83.200000,en +21.000000,83.300000,en +21.100000,83.300000,en +21.100000,83.400000,or +21.000000,83.400000,or +21.000000,83.500000,or +21.100000,83.500000,or +21.200000,83.500000,or +21.300000,83.500000,or +21.300000,83.400000,or +21.200000,83.400000,or +21.200000,83.300000,en +21.300000,83.300000,en +21.500000,83.400000,or +21.400000,83.400000,or +21.400000,83.500000,or +21.500000,83.500000,or +21.600000,83.500000,en +21.700000,83.500000,en +21.700000,83.400000,en +21.600000,83.400000,en +21.700000,83.200000,en +21.700000,83.100000,en +21.600000,83.100000,en +21.600000,83.200000,en +21.500000,83.200000,en +21.400000,83.200000,en +21.400000,83.100000,en +21.500000,83.100000,en +21.500000,83.000000,en +21.400000,83.000000,en +21.600000,83.000000,en +21.700000,83.000000,ta +21.800000,83.000000,ta +22.000000,83.000000,ta +21.900000,83.000000,ta +22.000000,83.100000,en +22.000000,83.200000,en +21.900000,83.400000,en +21.800000,83.400000,en +21.800000,83.500000,en +21.900000,83.500000,en +22.000000,83.500000,en +22.100000,83.500000,en +22.100000,83.400000,en +22.000000,83.400000,en +22.000000,83.300000,en +22.100000,83.300000,en +22.200000,83.300000,en +22.200000,83.400000,en +22.200000,83.500000,en +22.300000,83.500000,en +22.400000,83.500000,en +22.400000,83.400000,en +22.300000,83.400000,en +22.300000,83.300000,en +22.400000,83.300000,en +22.400000,83.200000,en +22.400000,83.100000,en +22.300000,83.100000,en +22.300000,83.200000,en +22.200000,83.200000,en +22.100000,83.200000,en +22.100000,83.100000,en +22.200000,83.100000,en +22.200000,83.000000,en +22.100000,83.000000,ta +22.300000,83.000000,en +22.400000,83.000000,en +22.400000,82.900000,en +22.300000,82.900000,en +22.400000,82.800000,en +22.400000,82.700000,en +22.400000,82.600000,en +22.100000,82.600000,ta +22.100000,82.700000,ta +22.100000,82.800000,ta +22.100000,82.900000,ta +22.000000,82.900000,ta +22.000000,82.800000,ta +21.900000,82.800000,ta +21.900000,82.900000,ta +21.800000,82.900000,ta +21.800000,82.800000,ta +21.800000,82.700000,ta +21.700000,82.700000,ta +21.700000,82.600000,ta +21.800000,82.600000,ta +21.900000,82.600000,ta +21.900000,82.700000,ta +22.000000,82.700000,ta +22.000000,82.600000,ta +22.400000,82.100000,en +22.300000,82.100000,en +22.300000,81.900000,en +22.300000,82.000000,en +22.400000,82.000000,en +22.400000,81.900000,en +22.400000,81.800000,en +22.300000,81.800000,en +22.300000,81.700000,en +22.400000,81.700000,en +22.400000,81.600000,en +21.000000,82.200000,en +21.400000,80.900000,en +21.400000,81.100000,en +21.400000,81.000000,en +21.500000,81.000000,en +21.500000,81.100000,en +21.600000,81.100000,en +21.600000,81.000000,en +21.600000,80.900000,en +21.500000,80.900000,en +21.700000,80.900000,en +21.900000,80.900000,en +21.800000,80.900000,en +21.900000,81.000000,en +21.900000,81.100000,en +21.800000,81.100000,en +21.800000,81.000000,en +21.700000,81.000000,en +21.700000,81.100000,en +22.300000,81.100000,en +22.300000,81.000000,en +22.200000,81.000000,en +22.200000,81.100000,en +22.100000,81.100000,en +22.000000,81.100000,en +22.000000,81.000000,en +22.100000,81.000000,en +22.100000,80.900000,en +22.000000,80.900000,en +22.200000,80.900000,en +22.300000,80.900000,en +22.300000,80.800000,en +22.200000,80.800000,en +22.200000,80.700000,en +22.300000,80.700000,en +22.300000,80.600000,en +22.300000,80.500000,en +22.200000,80.500000,en +22.200000,80.600000,en +22.100000,80.600000,en +22.100000,80.500000,en +22.000000,80.500000,en +22.000000,80.600000,en +22.000000,80.700000,en +22.100000,80.700000,en +22.100000,80.800000,en +22.000000,80.800000,en +21.900000,80.800000,en +21.900000,80.700000,en +21.800000,80.700000,en +21.800000,80.800000,en +21.700000,80.800000,en +21.600000,80.700000,en +21.700000,80.700000,en +21.700000,80.600000,mr +21.600000,80.600000,mr +21.600000,80.500000,mr +21.700000,80.500000,mr +21.800000,80.500000,en +21.800000,80.600000,en +21.900000,80.600000,en +21.900000,80.500000,en +21.900000,80.400000,en +21.900000,80.300000,en +21.800000,80.300000,mr +21.800000,80.400000,mr +21.700000,80.400000,mr +21.600000,80.400000,mr +21.600000,80.300000,mr +21.700000,80.300000,mr +21.700000,80.200000,mr +21.600000,80.200000,mr +21.600000,80.100000,mr +21.700000,80.100000,mr +21.800000,80.100000,mr +21.800000,80.200000,mr +21.900000,80.200000,en +21.900000,80.100000,en +22.000000,80.100000,en +22.100000,80.100000,en +22.100000,80.200000,en +22.000000,80.200000,en +22.000000,80.300000,en +22.000000,80.400000,en +22.100000,80.400000,en +22.100000,80.300000,en +22.200000,80.300000,en +22.200000,80.400000,en +22.300000,80.400000,en +22.300000,80.300000,en +22.300000,80.200000,en +22.200000,80.200000,en +22.200000,80.100000,en +22.300000,80.100000,en +22.200000,80.000000,en +22.000000,80.000000,en +22.100000,80.000000,en +22.100000,79.900000,en +22.000000,79.900000,en +22.000000,79.800000,en +22.100000,79.800000,en +21.900000,79.400000,mr +22.100000,79.700000,en +22.000000,79.700000,en +21.900000,79.700000,en +21.800000,79.700000,mr +21.800000,79.600000,mr +21.900000,79.600000,mr +21.900000,79.500000,mr +21.800000,79.400000,mr +21.800000,79.500000,mr +21.700000,79.500000,mr +21.700000,79.400000,mr +21.600000,79.400000,mr +21.600000,79.500000,mr +21.600000,79.600000,mr +21.700000,79.600000,mr +21.700000,79.700000,mr +21.600000,79.700000,mr +21.600000,79.800000,mr +21.600000,79.900000,mr +21.700000,79.900000,mr +21.700000,79.800000,mr +21.800000,79.800000,mr +21.900000,79.800000,en +21.900000,79.900000,en +21.800000,79.900000,mr +21.800000,80.000000,mr +21.900000,80.000000,en +21.700000,80.000000,mr +21.600000,80.000000,mr +21.500000,80.000000,mr +21.400000,80.000000,mr +21.200000,80.000000,mr +21.300000,80.000000,mr +21.300000,79.900000,mr +21.200000,79.900000,mr +21.200000,79.800000,mr +21.300000,79.800000,mr +21.400000,79.800000,mr +21.400000,79.900000,mr +21.500000,79.900000,mr +21.500000,79.800000,mr +21.500000,79.700000,mr +21.400000,79.700000,mr +21.400000,79.600000,mr +21.500000,79.600000,mr +21.500000,79.500000,mr +21.500000,79.400000,mr +21.400000,79.400000,mr +21.400000,79.500000,mr +21.300000,79.500000,mr +21.300000,79.400000,mr +21.200000,79.400000,mr +21.200000,79.500000,mr +21.200000,79.600000,mr +21.300000,79.600000,mr +21.300000,79.700000,mr +21.200000,79.700000,mr +21.100000,79.700000,mr +21.000000,79.700000,mr +21.000000,79.600000,mr +21.100000,79.600000,mr +21.100000,79.500000,mr +21.100000,79.400000,mr +21.000000,79.400000,mr +21.000000,79.500000,mr +20.900000,79.500000,mr +20.900000,79.400000,mr +20.800000,79.400000,mr +20.800000,79.500000,mr +20.800000,79.600000,mr +20.900000,79.600000,mr +20.900000,79.700000,mr +20.800000,79.700000,mr +20.800000,79.800000,mr +20.800000,79.900000,mr +20.900000,79.900000,mr +20.900000,79.800000,mr +21.000000,79.800000,mr +21.100000,79.800000,mr +21.100000,79.900000,mr +21.000000,79.900000,mr +21.000000,80.000000,mr +21.100000,80.000000,mr +20.900000,80.000000,mr +20.900000,80.100000,mr +21.000000,80.200000,mr +20.900000,80.200000,mr +20.900000,80.300000,mr +20.900000,80.400000,mr +21.000000,80.400000,mr +21.000000,80.300000,mr +21.100000,80.300000,mr +21.100000,80.400000,mr +21.200000,80.400000,mr +21.100000,80.200000,mr +21.000000,80.100000,mr +21.100000,80.100000,mr +21.200000,80.100000,mr +21.200000,80.200000,mr +21.300000,80.200000,mr +21.300000,80.100000,mr +21.400000,80.100000,mr +21.500000,80.100000,mr +21.500000,80.200000,mr +21.400000,80.200000,mr +21.400000,80.300000,mr +21.500000,80.300000,mr +21.500000,80.400000,mr +21.400000,80.400000,mr +21.300000,80.400000,mr +21.300000,80.300000,mr +21.200000,80.300000,mr +21.300000,80.500000,mr +21.300000,80.600000,mr +21.400000,80.600000,mr +21.400000,80.500000,mr +21.500000,80.500000,mr +21.500000,80.600000,mr +21.500000,80.700000,mr +21.600000,80.800000,en +21.500000,80.800000,en +21.400000,80.800000,en +21.400000,80.700000,mr +21.300000,80.700000,mr +21.100000,80.700000,mr +21.200000,80.700000,mr +21.200000,80.600000,mr +21.200000,80.500000,mr +21.100000,80.500000,mr +21.100000,80.600000,mr +21.000000,80.600000,mr +21.000000,80.500000,mr +20.900000,80.500000,mr +20.900000,80.600000,mr +20.900000,80.700000,mr +21.000000,80.700000,en +20.700000,80.800000,en +20.700000,80.700000,mr +20.800000,80.700000,mr +20.800000,80.600000,mr +20.800000,80.500000,mr +20.700000,80.500000,mr +20.700000,80.600000,mr +20.600000,80.600000,mr +20.600000,80.500000,mr +20.500000,80.500000,mr +20.500000,80.600000,mr +20.500000,80.700000,mr +20.600000,80.700000,mr +20.600000,80.800000,en +20.500000,80.800000,en +20.400000,80.800000,en +20.400000,80.700000,en +20.300000,80.700000,en +20.300000,80.800000,en +20.200000,80.800000,en +20.100000,80.800000,en +20.100000,80.700000,en +20.200000,80.700000,en +20.200000,80.600000,en +20.100000,80.600000,en +20.100000,80.500000,mr +20.200000,80.500000,mr +20.300000,80.500000,mr +20.300000,80.600000,en +20.400000,80.600000,en +20.400000,80.500000,mr +20.400000,80.400000,mr +20.400000,80.300000,hi +20.300000,80.300000,mr +20.300000,80.400000,mr +20.200000,80.400000,mr +20.100000,80.400000,mr +20.100000,80.300000,mr +20.200000,80.300000,hi +20.200000,80.200000,hi +20.100000,80.200000,hi +20.100000,80.100000,hi +20.200000,80.100000,hi +20.300000,80.100000,hi +20.300000,80.200000,hi +20.400000,80.200000,mr +20.400000,80.100000,mr +20.500000,80.100000,mr +20.600000,80.100000,mr +20.600000,80.200000,mr +20.500000,80.200000,mr +20.500000,80.300000,hi +20.500000,80.400000,mr +20.600000,80.400000,mr +20.600000,80.300000,mr +20.700000,80.300000,mr +20.700000,80.400000,mr +20.800000,80.400000,mr +20.800000,80.300000,mr +20.800000,80.200000,mr +20.700000,80.200000,mr +20.700000,80.100000,mr +20.800000,80.100000,mr +20.800000,80.000000,mr +20.700000,80.000000,mr +20.500000,80.000000,mr +20.600000,80.000000,mr +20.600000,79.900000,mr +20.500000,79.900000,mr +20.500000,79.800000,mr +20.600000,79.800000,mr +20.700000,79.900000,mr +20.700000,79.800000,mr +20.700000,79.700000,mr +20.600000,79.700000,mr +20.600000,79.600000,mr +20.700000,79.600000,mr +20.700000,79.500000,mr +20.700000,79.400000,mr +20.600000,79.400000,mr +20.600000,79.500000,mr +20.500000,79.500000,mr +20.500000,79.400000,mr +20.400000,79.400000,mr +20.400000,79.500000,mr +20.500000,79.600000,mr +20.500000,79.700000,mr +20.400000,79.700000,mr +20.300000,79.700000,mr +20.300000,79.600000,mr +20.400000,79.600000,mr +20.300000,79.400000,mr +20.200000,79.400000,mr +20.300000,79.500000,mr +20.200000,79.500000,mr +20.100000,79.400000,mr +20.100000,79.500000,mr +20.100000,79.600000,mr +20.200000,79.600000,mr +20.200000,79.700000,mr +20.100000,79.700000,mr +20.100000,79.800000,mr +20.100000,79.900000,mr +20.200000,79.900000,mr +20.200000,79.800000,mr +20.300000,79.800000,mr +20.400000,79.800000,mr +20.400000,79.900000,mr +20.300000,79.900000,mr +20.300000,80.000000,mr +20.400000,80.000000,mr +20.200000,80.000000,hi +20.100000,80.000000,hi +20.000000,80.000000,hi +19.900000,80.000000,mr +19.700000,80.000000,mr +19.800000,80.000000,hi +19.800000,79.900000,mr +19.700000,79.900000,mr +19.700000,79.800000,mr +19.800000,79.800000,hi +19.900000,79.800000,mr +19.900000,79.900000,mr +20.000000,79.900000,mr +20.000000,79.800000,hi +20.000000,79.700000,mr +19.900000,79.700000,mr +19.900000,79.600000,mr +20.000000,79.600000,mr +20.000000,79.500000,mr +20.000000,79.400000,mr +19.900000,79.400000,mr +19.900000,79.500000,mr +19.800000,79.500000,mr +19.800000,79.400000,mr +19.700000,79.400000,mr +19.700000,79.500000,mr +19.700000,79.600000,mr +19.800000,79.600000,mr +19.800000,79.700000,hi +19.700000,79.700000,hi +19.600000,79.700000,mr +19.500000,79.700000,hi +19.500000,79.600000,te +19.600000,79.600000,mr +19.600000,79.500000,mr +19.600000,79.400000,mr +19.500000,79.400000,te +19.500000,79.500000,te +19.400000,79.500000,te +19.400000,79.400000,hi +19.300000,79.400000,hi +19.300000,79.500000,hi +19.300000,79.600000,hi +19.400000,79.600000,hi +19.400000,79.700000,hi +19.300000,79.700000,hi +19.300000,79.800000,hi +19.300000,79.900000,hi +19.400000,79.900000,mr +19.400000,79.800000,hi +19.500000,79.800000,mr +19.600000,79.800000,mr +19.600000,79.900000,mr +19.500000,79.900000,mr +19.500000,80.000000,mr +19.600000,80.000000,mr +19.400000,80.000000,mr +19.300000,80.000000,mr +19.300000,80.100000,mr +19.400000,80.100000,mr +19.400000,80.200000,mr +19.400000,80.300000,mr +19.400000,80.400000,mr +19.500000,80.400000,mr +19.500000,80.300000,mr +19.600000,80.400000,mr +19.600000,80.300000,mr +19.600000,80.200000,mr +19.500000,80.200000,mr +19.500000,80.100000,mr +19.600000,80.100000,mr +19.700000,80.100000,mr +19.700000,80.200000,mr +19.800000,80.200000,mr +19.800000,80.100000,mr +19.900000,80.100000,mr +20.000000,80.100000,hi +20.000000,80.200000,hi +19.900000,80.200000,hi +19.900000,80.300000,en +20.000000,80.300000,mr +20.000000,80.400000,mr +19.900000,80.400000,en +19.800000,80.400000,mr +19.800000,80.300000,mr +19.700000,80.300000,mr +19.700000,80.400000,mr +19.700000,80.500000,mr +19.800000,80.600000,en +19.800000,80.500000,en +19.900000,80.500000,en +20.000000,80.500000,en +20.000000,80.600000,en +19.900000,80.600000,en +19.900000,80.700000,en +20.000000,80.700000,en +20.000000,80.800000,en +19.900000,80.800000,en +19.800000,80.700000,en +19.800000,80.800000,en +19.700000,80.800000,mr +19.600000,80.800000,mr +19.600000,80.700000,mr +19.700000,80.700000,mr +19.700000,80.600000,mr +19.600000,80.500000,mr +19.600000,80.600000,mr +19.500000,80.600000,mr +19.500000,80.500000,mr +19.400000,80.500000,mr +19.400000,80.600000,mr +19.400000,80.700000,mr +19.500000,80.700000,mr +19.500000,80.800000,mr +19.400000,80.800000,mr +19.400000,80.900000,mr +19.500000,80.900000,mr +19.700000,80.900000,mr +19.600000,80.900000,mr +19.600000,81.000000,mr +19.700000,81.000000,en +19.700000,81.100000,en +19.600000,81.100000,en +19.500000,81.100000,en +19.500000,81.000000,mr +19.400000,81.000000,mr +19.500000,81.200000,en +19.500000,81.300000,en +19.400000,81.300000,en +19.400000,81.400000,en +19.400000,81.500000,en +19.500000,81.500000,en +19.500000,81.400000,en +19.600000,81.400000,en +19.600000,81.500000,en +19.700000,81.500000,en +19.700000,81.400000,en +19.700000,81.300000,en +19.600000,81.300000,en +19.600000,81.200000,en +19.700000,81.200000,en +19.800000,81.200000,en +19.900000,81.200000,en +19.900000,81.300000,en +19.800000,81.300000,en +19.800000,81.400000,en +19.800000,81.500000,en +20.000000,81.500000,en +20.100000,81.500000,en +20.100000,81.400000,en +20.100000,81.300000,en +20.000000,81.300000,en +20.000000,81.200000,en +20.100000,81.200000,en +20.100000,81.100000,en +20.100000,81.000000,en +20.000000,81.000000,en +20.000000,81.100000,en +19.900000,81.100000,en +19.800000,81.100000,en +19.800000,81.000000,en +19.900000,81.000000,en +19.900000,80.900000,en +19.800000,80.900000,en +20.000000,80.900000,en +20.200000,80.900000,en +20.100000,80.900000,en +20.200000,81.100000,en +20.200000,81.000000,en +20.300000,81.000000,en +20.300000,81.100000,en +20.400000,81.100000,en +20.400000,81.000000,en +20.400000,80.900000,en +20.300000,80.900000,en +20.500000,80.900000,en +20.600000,80.900000,en +20.600000,81.100000,en +20.600000,81.000000,en +20.500000,81.000000,en +20.500000,81.100000,en +20.500000,81.200000,en +20.500000,81.300000,en +20.600000,81.200000,en +20.500000,81.400000,en +20.400000,81.500000,en +20.400000,81.400000,en +20.400000,81.300000,en +20.400000,81.200000,en +20.300000,81.200000,en +20.300000,81.300000,en +20.200000,81.200000,en +20.200000,81.300000,en +20.200000,81.400000,en +20.300000,81.400000,en +20.300000,81.500000,en +20.200000,81.500000,en +20.200000,81.600000,en +20.300000,81.600000,en +20.200000,81.700000,en +20.200000,81.800000,en +20.300000,81.800000,en +20.300000,81.700000,en +20.400000,81.700000,en +20.400000,81.800000,en +20.400000,81.600000,en +20.800000,82.100000,en +20.900000,82.200000,en +20.800000,82.200000,en +20.700000,82.200000,en +20.700000,82.100000,en +20.600000,82.100000,en +20.600000,82.200000,en +20.500000,82.200000,en +20.400000,82.200000,en +20.400000,82.100000,en +20.500000,82.100000,en +20.400000,81.900000,en +20.300000,82.000000,en +20.300000,81.900000,en +20.200000,81.900000,en +20.200000,82.000000,en +20.200000,82.100000,en +20.300000,82.100000,en +20.300000,82.200000,en +20.200000,82.200000,en +20.100000,82.200000,en +20.100000,82.100000,en +20.000000,82.100000,en +20.000000,82.200000,en +19.900000,82.200000,en +19.800000,82.200000,en +19.800000,82.100000,en +19.900000,82.100000,en +19.900000,82.000000,en +19.800000,82.000000,en +19.800000,81.900000,en +19.900000,81.900000,en +20.000000,81.900000,en +20.000000,82.000000,en +20.100000,82.000000,en +20.100000,81.900000,en +20.100000,81.800000,en +20.000000,81.800000,en +20.000000,81.700000,en +20.100000,81.700000,en +20.100000,81.600000,en +20.000000,81.600000,en +19.900000,81.800000,en +19.800000,81.800000,en +19.700000,81.800000,en +19.600000,81.800000,en +19.500000,81.600000,en +19.400000,81.600000,en +19.400000,81.700000,en +19.500000,81.700000,en +19.500000,81.800000,en +19.400000,81.800000,en +19.400000,81.900000,en +19.400000,82.000000,en +19.500000,82.000000,en +19.500000,81.900000,en +19.600000,81.900000,en +19.700000,81.900000,en +19.700000,82.000000,en +19.600000,82.000000,en +19.600000,82.100000,en +19.700000,82.100000,en +19.700000,82.200000,en +19.600000,82.200000,en +19.500000,82.200000,en +19.500000,82.100000,en +19.400000,82.100000,en +19.400000,82.200000,en +19.300000,82.100000,en +19.300000,82.200000,en +19.200000,82.200000,en +19.100000,82.200000,en +19.100000,82.100000,en +19.200000,82.100000,en +19.200000,82.000000,en +19.100000,82.000000,en +19.100000,81.900000,en +19.200000,81.900000,en +19.300000,82.000000,en +19.300000,81.900000,en +19.300000,81.800000,en +19.200000,81.800000,en +19.200000,81.700000,en +19.300000,81.700000,en +19.300000,81.600000,en +19.200000,81.600000,en +19.100000,81.600000,en +19.000000,81.600000,en +19.100000,81.700000,en +19.100000,81.800000,en +19.000000,81.800000,en +18.900000,81.800000,en +18.900000,81.700000,en +19.000000,81.700000,en +18.900000,81.600000,en +18.800000,81.600000,en +18.700000,81.600000,en +18.700000,81.700000,en +18.800000,81.700000,en +18.800000,81.800000,en +18.700000,81.800000,en +18.700000,81.900000,en +18.700000,82.000000,en +18.800000,82.000000,en +18.800000,81.900000,en +18.900000,81.900000,en +19.000000,81.900000,en +19.000000,82.000000,en +18.900000,82.000000,en +18.900000,82.100000,en +19.000000,82.100000,en +19.000000,82.200000,en +18.900000,82.200000,en +18.800000,82.200000,en +18.800000,82.100000,en +18.700000,82.100000,en +18.700000,82.200000,en +18.600000,82.200000,en +18.500000,82.200000,en +18.500000,82.100000,en +18.600000,82.100000,en +18.600000,82.000000,en +18.600000,81.900000,en +18.500000,81.900000,en +18.500000,82.000000,en +18.400000,82.000000,en +18.400000,81.900000,en +18.300000,81.900000,en +18.300000,82.000000,en +18.300000,82.100000,en +18.400000,82.100000,en +18.400000,82.200000,en +18.300000,82.200000,en +18.200000,82.200000,en +18.200000,82.100000,en +18.100000,82.100000,en +18.100000,82.200000,te +18.000000,82.200000,te +17.900000,82.200000,hi +17.900000,82.100000,en +18.000000,82.100000,en +18.000000,82.000000,en +17.900000,82.000000,en +17.900000,81.900000,en +18.000000,81.900000,en +18.100000,81.900000,en +18.100000,82.000000,en +18.200000,82.000000,en +18.200000,81.900000,en +18.200000,81.800000,en +18.200000,81.700000,en +18.100000,81.700000,en +18.100000,81.800000,en +18.000000,81.800000,en +17.900000,81.800000,en +17.900000,81.700000,en +18.000000,81.700000,en +17.900000,81.600000,te +18.000000,81.600000,en +18.100000,81.600000,en +18.200000,81.600000,en +18.300000,81.600000,en +18.400000,81.600000,en +18.300000,81.700000,en +18.300000,81.800000,en +18.400000,81.800000,en +18.400000,81.700000,en +18.500000,81.700000,en +18.500000,81.800000,en +18.600000,81.800000,en +18.600000,81.700000,en +18.500000,81.600000,en +18.600000,81.600000,en +18.600000,81.500000,en +18.500000,81.500000,en +18.500000,81.400000,en +18.600000,81.400000,en +18.600000,81.300000,en +18.500000,81.300000,en +18.400000,81.300000,en +18.400000,81.200000,en +18.300000,81.200000,te +18.300000,81.300000,en +18.300000,81.400000,en +18.400000,81.400000,en +18.400000,81.500000,en +18.300000,81.500000,en +18.200000,81.500000,en +18.200000,81.400000,en +18.100000,81.400000,en +18.100000,81.500000,en +18.000000,81.500000,en +17.900000,81.500000,te +17.900000,81.400000,te +18.000000,81.400000,en +18.000000,81.300000,en +17.900000,81.300000,te +17.900000,81.200000,hi +18.000000,81.200000,en +18.100000,81.200000,en +18.100000,81.300000,en +18.200000,81.300000,en +18.200000,81.200000,en +18.200000,81.100000,en +18.200000,81.000000,hi +18.100000,81.000000,hi +18.100000,81.100000,hi +18.000000,81.100000,hi +17.900000,81.100000,hi +17.900000,81.000000,hi +18.000000,81.000000,hi +18.000000,80.900000,hi +17.900000,80.900000,hi +18.100000,80.900000,hi +18.200000,80.900000,hi +18.300000,80.900000,en +18.300000,81.000000,hi +18.300000,81.100000,te +18.400000,81.100000,en +18.400000,81.000000,te +18.500000,81.000000,te +18.500000,80.900000,te +18.400000,80.900000,te +18.600000,80.900000,te +18.700000,80.900000,en +18.900000,80.900000,en +18.800000,80.900000,en +18.800000,81.000000,en +18.900000,81.000000,en +18.900000,81.100000,en +18.800000,81.100000,en +18.700000,81.100000,en +18.700000,81.000000,en +18.600000,81.000000,en +18.600000,81.100000,en +18.700000,81.200000,en +18.700000,81.300000,en +18.700000,81.400000,en +18.700000,81.500000,en +18.800000,81.500000,en +18.800000,81.400000,en +18.900000,81.500000,en +18.900000,81.400000,en +18.900000,81.300000,en +18.800000,81.300000,en +18.800000,81.200000,en +18.900000,81.200000,en +19.000000,81.200000,en +19.100000,81.200000,en +19.100000,81.300000,en +19.000000,81.300000,en +19.000000,81.400000,en +19.000000,81.500000,en +19.100000,81.500000,en +19.100000,81.400000,en +19.200000,81.400000,en +19.200000,81.500000,en +19.300000,81.500000,en +19.300000,81.400000,en +19.300000,81.300000,en +19.200000,81.300000,en +19.200000,81.200000,en +19.300000,81.200000,en +19.300000,81.100000,mr +19.300000,81.000000,mr +19.200000,81.000000,en +19.200000,81.100000,en +19.100000,81.100000,en +19.000000,81.100000,en +19.000000,81.000000,en +19.100000,81.000000,en +19.100000,80.900000,en +19.000000,80.900000,en +19.200000,80.900000,en +19.300000,80.900000,mr +19.300000,80.800000,mr +19.200000,80.800000,mr +19.200000,80.700000,mr +19.300000,80.700000,mr +19.300000,80.600000,mr +19.300000,80.500000,mr +19.200000,80.500000,mr +19.200000,80.600000,mr +19.100000,80.600000,en +19.100000,80.500000,en +19.000000,80.500000,en +19.000000,80.600000,en +19.000000,80.700000,en +19.100000,80.700000,en +19.100000,80.800000,en +19.000000,80.800000,en +18.900000,80.800000,en +18.900000,80.700000,en +18.800000,80.700000,en +18.800000,80.800000,en +18.700000,80.800000,en +18.600000,80.800000,en +18.600000,80.700000,en +18.700000,80.700000,en +18.700000,80.600000,en +18.600000,80.600000,en +18.600000,80.500000,en +18.700000,80.500000,en +18.800000,80.500000,en +18.800000,80.600000,en +18.900000,80.600000,en +18.900000,80.500000,en +18.900000,80.400000,en +18.900000,80.300000,te +18.800000,80.300000,te +18.800000,80.400000,en +18.700000,80.400000,en +18.600000,80.400000,en +18.600000,80.300000,te +18.700000,80.300000,te +18.700000,80.200000,hi +18.600000,80.200000,hi +18.600000,80.100000,hi +18.700000,80.100000,hi +18.800000,80.100000,hi +18.800000,80.200000,te +18.900000,80.200000,te +18.900000,80.100000,te +19.000000,80.100000,te +19.100000,80.100000,hi +19.100000,80.200000,mr +19.000000,80.200000,mr +19.000000,80.300000,en +19.000000,80.400000,en +19.100000,80.400000,en +19.100000,80.300000,en +19.200000,80.300000,mr +19.200000,80.400000,mr +19.300000,80.400000,mr +19.300000,80.300000,mr +19.300000,80.200000,mr +19.200000,80.200000,mr +19.200000,80.100000,mr +19.200000,80.000000,mr +19.000000,80.000000,hi +19.100000,80.000000,hi +19.000000,79.900000,hi +19.000000,79.800000,hi +19.100000,79.800000,hi +19.100000,79.900000,hi +19.200000,79.900000,mr +19.200000,79.800000,hi +19.200000,79.700000,hi +19.100000,79.700000,hi +19.100000,79.600000,hi +19.200000,79.600000,hi +19.200000,79.500000,hi +19.200000,79.400000,hi +19.100000,79.400000,hi +19.100000,79.500000,hi +19.000000,79.500000,hi +19.000000,79.400000,hi +18.900000,79.400000,hi +18.900000,79.500000,hi +18.900000,79.600000,hi +19.000000,79.600000,hi +19.000000,79.700000,hi +18.900000,79.700000,hi +18.800000,79.700000,hi +18.800000,79.600000,hi +18.800000,79.500000,hi +18.800000,79.400000,hi +18.700000,79.400000,hi +18.700000,79.500000,hi +18.600000,79.400000,hi +18.600000,79.500000,hi +18.600000,79.600000,hi +18.700000,79.600000,hi +18.700000,79.700000,hi +18.600000,79.700000,hi +18.600000,79.800000,hi +18.600000,79.900000,hi +18.700000,79.900000,hi +18.700000,79.800000,hi +18.800000,79.800000,hi +18.900000,79.800000,hi +18.900000,79.900000,hi +18.800000,79.900000,hi +18.800000,80.000000,te +18.900000,80.000000,hi +18.700000,80.000000,hi +18.600000,80.000000,hi +18.500000,80.000000,hi +18.400000,80.000000,hi +18.200000,80.000000,hi +18.300000,80.000000,hi +18.300000,79.900000,hi +18.200000,79.900000,hi +18.200000,79.800000,hi +18.300000,79.800000,hi +18.400000,79.800000,hi +18.400000,79.900000,hi +18.500000,79.900000,hi +18.500000,79.800000,hi +18.500000,79.700000,hi +18.400000,79.700000,hi +18.400000,79.600000,hi +18.500000,79.600000,hi +18.500000,79.500000,hi +18.500000,79.400000,hi +18.400000,79.400000,hi +18.400000,79.500000,hi +18.300000,79.500000,hi +18.300000,79.400000,hi +18.200000,79.400000,hi +18.200000,79.500000,hi +18.200000,79.600000,hi +18.300000,79.600000,hi +18.300000,79.700000,hi +18.200000,79.700000,hi +18.100000,79.700000,hi +18.000000,79.700000,hi +18.000000,79.600000,hi +18.100000,79.600000,hi +18.100000,79.500000,hi +18.100000,79.400000,hi +18.000000,79.400000,hi +18.000000,79.500000,hi +17.900000,79.500000,hi +17.900000,79.400000,hi +17.800000,79.400000,hi +17.800000,79.500000,hi +17.800000,79.600000,hi +17.900000,79.600000,hi +17.900000,79.700000,hi +17.800000,79.700000,hi +17.800000,79.800000,hi +17.800000,79.900000,hi +17.900000,79.900000,hi +17.900000,79.800000,hi +18.000000,79.800000,hi +18.100000,79.800000,hi +18.100000,79.900000,hi +18.000000,79.900000,hi +18.000000,80.000000,hi +18.100000,80.000000,hi +17.900000,80.000000,hi +17.800000,80.000000,hi +17.800000,80.100000,hi +17.900000,80.100000,hi +17.900000,80.200000,hi +17.900000,80.300000,hi +17.900000,80.400000,te +18.000000,80.300000,hi +18.000000,80.400000,hi +18.100000,80.400000,hi +18.100000,80.300000,hi +18.100000,80.200000,hi +18.000000,80.200000,hi +18.000000,80.100000,hi +18.100000,80.100000,hi +18.200000,80.100000,hi +18.200000,80.200000,hi +18.300000,80.200000,hi +18.300000,80.100000,hi +18.400000,80.100000,hi +18.500000,80.100000,hi +18.500000,80.200000,hi +18.400000,80.200000,hi +18.400000,80.300000,hi +18.500000,80.300000,hi +18.500000,80.400000,hi +18.400000,80.400000,hi +18.300000,80.400000,hi +18.300000,80.300000,hi +18.200000,80.300000,hi +18.200000,80.400000,hi +18.200000,80.500000,hi +18.200000,80.600000,hi +18.300000,80.600000,hi +18.300000,80.500000,hi +18.400000,80.500000,hi +18.500000,80.500000,hi +18.500000,80.600000,hi +18.400000,80.600000,hi +18.400000,80.700000,en +18.500000,80.700000,en +18.500000,80.800000,te +18.400000,80.800000,en +18.300000,80.700000,en +18.300000,80.800000,en +18.200000,80.800000,hi +18.100000,80.800000,hi +18.100000,80.700000,hi +18.200000,80.700000,hi +18.100000,80.500000,hi +18.100000,80.600000,hi +18.000000,80.600000,hi +18.000000,80.500000,hi +17.900000,80.500000,hi +17.900000,80.600000,hi +17.900000,80.700000,hi +18.000000,80.700000,hi +18.000000,80.800000,hi +17.900000,80.800000,hi +17.800000,80.800000,hi +17.700000,80.800000,hi +17.700000,80.700000,hi +17.800000,80.700000,hi +17.800000,80.600000,hi +17.800000,80.500000,hi +17.700000,80.500000,hi +17.700000,80.600000,hi +17.600000,80.600000,hi +17.600000,80.500000,hi +17.500000,80.500000,hi +17.500000,80.600000,hi +17.500000,80.700000,hi +17.600000,80.700000,hi +17.600000,80.800000,hi +17.500000,80.800000,hi +17.400000,80.800000,hi +17.400000,80.700000,hi +17.300000,80.700000,hi +17.300000,80.800000,hi +17.200000,80.800000,hi +17.100000,80.800000,hi +17.100000,80.700000,hi +17.200000,80.700000,hi +17.200000,80.600000,hi +17.100000,80.600000,hi +17.100000,80.500000,hi +17.200000,80.500000,hi +17.300000,80.500000,hi +17.300000,80.600000,hi +17.400000,80.600000,hi +17.400000,80.500000,hi +17.400000,80.400000,hi +17.400000,80.300000,hi +17.300000,80.300000,hi +17.300000,80.400000,hi +17.200000,80.400000,hi +17.100000,80.400000,hi +17.100000,80.300000,hi +17.200000,80.300000,hi +17.200000,80.200000,hi +17.100000,80.200000,hi +17.100000,80.100000,hi +17.200000,80.100000,hi +17.300000,80.100000,hi +17.300000,80.200000,hi +17.400000,80.200000,hi +17.400000,80.100000,hi +17.500000,80.100000,hi +17.600000,80.100000,hi +17.600000,80.200000,hi +17.500000,80.200000,hi +17.500000,80.300000,hi +17.500000,80.400000,hi +17.600000,80.400000,hi +17.600000,80.300000,hi +17.700000,80.300000,hi +17.700000,80.400000,hi +17.800000,80.400000,hi +17.800000,80.300000,hi +17.800000,80.200000,hi +17.700000,80.200000,hi +17.700000,80.100000,hi +17.700000,80.000000,hi +17.500000,80.000000,hi +17.600000,80.000000,hi +17.500000,79.900000,hi +17.500000,79.800000,hi +17.600000,79.800000,hi +17.600000,79.900000,hi +17.700000,79.900000,hi +17.700000,79.800000,hi +17.700000,79.700000,hi +17.600000,79.700000,hi +17.600000,79.600000,hi +17.700000,79.600000,hi +17.700000,79.500000,hi +17.700000,79.400000,hi +17.600000,79.400000,hi +17.600000,79.500000,hi +17.500000,79.500000,hi +17.500000,79.400000,hi +17.400000,79.400000,hi +17.400000,79.500000,hi +17.400000,79.600000,hi +17.500000,79.600000,hi +17.500000,79.700000,hi +17.400000,79.700000,hi +17.300000,79.700000,hi +17.300000,79.600000,hi +17.300000,79.500000,hi +17.300000,79.400000,hi +17.200000,79.400000,hi +17.200000,79.500000,hi +17.100000,79.400000,hi +17.100000,79.500000,hi +17.100000,79.600000,hi +17.200000,79.600000,hi +17.200000,79.700000,hi +17.100000,79.700000,hi +17.100000,79.800000,hi +17.100000,79.900000,hi +17.200000,79.900000,hi +17.200000,79.800000,hi +17.300000,79.800000,hi +17.400000,79.800000,hi +17.400000,79.900000,hi +17.300000,79.900000,hi +17.300000,80.000000,hi +17.400000,80.000000,hi +17.200000,80.000000,hi +17.100000,80.000000,hi +17.000000,80.000000,hi +16.900000,80.000000,hi +16.700000,80.000000,hi +16.800000,80.000000,hi +16.800000,79.900000,hi +16.700000,79.900000,hi +16.700000,79.800000,hi +16.800000,79.800000,hi +16.900000,79.800000,hi +16.900000,79.900000,hi +17.000000,79.900000,hi +17.000000,79.800000,hi +17.000000,79.700000,hi +16.900000,79.700000,hi +16.900000,79.600000,hi +17.000000,79.600000,hi +17.000000,79.500000,hi +17.000000,79.400000,hi +16.900000,79.400000,hi +16.900000,79.500000,hi +16.800000,79.500000,hi +16.800000,79.400000,hi +16.700000,79.400000,hi +16.700000,79.500000,hi +16.700000,79.600000,hi +16.800000,79.600000,hi +16.800000,79.700000,hi +16.700000,79.700000,hi +16.600000,79.700000,hi +16.500000,79.700000,hi +16.500000,79.600000,hi +16.600000,79.600000,hi +16.600000,79.500000,hi +16.600000,79.400000,hi +16.500000,79.400000,hi +16.500000,79.500000,hi +16.400000,79.500000,hi +16.400000,79.400000,hi +16.300000,79.400000,hi +16.300000,79.500000,hi +16.300000,79.600000,hi +16.400000,79.600000,hi +16.400000,79.700000,hi +16.300000,79.700000,hi +16.300000,79.800000,hi +16.300000,79.900000,hi +16.400000,79.900000,hi +16.400000,79.800000,hi +16.500000,79.800000,hi +16.600000,79.800000,hi +16.600000,79.900000,hi +16.500000,79.900000,hi +16.500000,80.000000,hi +16.600000,80.000000,hi +16.400000,80.000000,hi +16.300000,80.000000,hi +16.400000,80.100000,hi +16.400000,80.200000,hi +16.400000,80.300000,hi +16.400000,80.400000,hi +16.500000,80.400000,hi +16.500000,80.300000,hi +16.600000,80.400000,hi +16.600000,80.300000,hi +16.600000,80.200000,hi +16.500000,80.200000,hi +16.500000,80.100000,hi +16.600000,80.100000,hi +16.700000,80.100000,hi +16.700000,80.200000,hi +16.800000,80.200000,hi +16.800000,80.100000,hi +16.900000,80.100000,hi +17.000000,80.100000,hi +17.000000,80.200000,hi +16.900000,80.200000,hi +16.900000,80.300000,hi +17.000000,80.300000,hi +17.000000,80.400000,hi +16.900000,80.400000,hi +16.800000,80.400000,hi +16.800000,80.300000,hi +16.700000,80.300000,hi +16.700000,80.400000,hi +16.700000,80.500000,hi +16.700000,80.600000,hi +16.800000,80.600000,hi +16.800000,80.500000,hi +16.900000,80.500000,hi +17.000000,80.500000,hi +17.000000,80.600000,hi +16.900000,80.600000,hi +16.900000,80.700000,hi +17.000000,80.700000,hi +17.000000,80.800000,hi +16.900000,80.800000,hi +16.800000,80.700000,hi +16.800000,80.800000,hi +16.700000,80.800000,hi +16.600000,80.800000,hi +16.600000,80.700000,hi +16.700000,80.700000,hi +16.600000,80.500000,hi +16.600000,80.600000,hi +16.500000,80.600000,hi +16.500000,80.500000,hi +16.400000,80.500000,hi +16.400000,80.600000,hi +16.400000,80.700000,hi +16.500000,80.700000,hi +16.500000,80.800000,hi +16.400000,80.800000,hi +16.400000,80.900000,hi +16.500000,80.900000,hi +16.700000,80.900000,hi +16.600000,80.900000,hi +16.600000,81.000000,hi +16.700000,81.000000,hi +16.700000,81.100000,hi +16.600000,81.100000,hi +16.500000,81.100000,hi +16.500000,81.000000,hi +16.400000,81.000000,hi +16.400000,81.100000,hi +16.400000,81.200000,hi +16.500000,81.200000,hi +16.500000,81.300000,hi +16.400000,81.300000,hi +16.400000,81.400000,hi +16.400000,81.500000,hi +16.500000,81.500000,hi +16.500000,81.400000,hi +16.600000,81.400000,hi +16.600000,81.500000,hi +16.700000,81.500000,hi +16.700000,81.400000,hi +16.700000,81.300000,hi +16.600000,81.300000,hi +16.600000,81.200000,hi +16.700000,81.200000,hi +16.800000,81.200000,hi +16.900000,81.200000,hi +16.900000,81.300000,hi +16.800000,81.300000,hi +16.800000,81.400000,hi +16.800000,81.500000,hi +16.900000,81.500000,hi +16.900000,81.400000,hi +17.000000,81.400000,hi +17.000000,81.500000,hi +17.100000,81.500000,hi +17.100000,81.400000,hi +17.100000,81.300000,hi +17.000000,81.300000,hi +17.000000,81.200000,hi +17.000000,81.000000,hi +17.000000,81.100000,hi +16.900000,81.100000,hi +16.800000,81.100000,hi +16.800000,81.000000,hi +16.900000,81.000000,hi +16.800000,80.900000,hi +16.900000,80.900000,hi +17.000000,80.900000,hi +17.200000,80.900000,hi +17.100000,80.900000,hi +17.100000,81.000000,hi +17.100000,81.100000,hi +17.200000,81.100000,hi +17.200000,81.000000,hi +17.300000,81.000000,hi +17.300000,81.100000,hi +17.400000,81.100000,hi +17.400000,81.000000,hi +17.400000,80.900000,hi +17.300000,80.900000,hi +17.500000,80.900000,hi +17.600000,80.900000,hi +17.800000,80.900000,hi +17.700000,80.900000,hi +17.700000,81.000000,hi +17.800000,81.000000,hi +17.800000,81.100000,hi +17.700000,81.100000,hi +17.600000,81.100000,hi +17.600000,81.000000,hi +17.500000,81.000000,hi +17.500000,81.100000,hi +17.500000,81.200000,en +17.500000,81.300000,en +17.600000,81.300000,hi +17.600000,81.200000,hi +17.700000,81.200000,hi +17.800000,81.200000,hi +17.800000,81.300000,hi +17.700000,81.300000,hi +17.700000,81.400000,hi +17.800000,81.400000,te +17.800000,81.500000,hi +17.700000,81.500000,hi +17.600000,81.500000,hi +17.600000,81.400000,hi +17.500000,81.400000,hi +17.500000,81.500000,hi +17.400000,81.500000,hi +17.300000,81.500000,hi +17.300000,81.400000,hi +17.400000,81.400000,hi +17.400000,81.300000,hi +17.400000,81.200000,hi +17.300000,81.200000,hi +17.300000,81.300000,hi +17.200000,81.300000,hi +17.200000,81.200000,hi +17.100000,81.200000,hi +17.200000,81.400000,hi +17.200000,81.500000,hi +17.200000,81.600000,hi +17.300000,81.600000,hi +17.200000,81.700000,hi +17.200000,81.800000,hi +17.300000,81.800000,hi +17.300000,81.700000,hi +17.400000,81.700000,hi +17.400000,81.800000,hi +17.400000,81.600000,hi +17.500000,81.600000,hi +17.600000,81.600000,hi +17.700000,81.600000,hi +17.800000,81.600000,hi +17.700000,81.700000,en +17.800000,81.700000,en +17.800000,81.800000,en +17.700000,81.800000,en +17.600000,81.800000,en +17.600000,81.700000,en +17.500000,81.700000,hi +17.500000,81.800000,hi +17.600000,82.000000,en +17.600000,81.900000,en +17.700000,81.900000,en +17.800000,81.900000,en +17.700000,82.000000,en +17.700000,82.100000,en +17.800000,82.200000,en +17.700000,82.200000,en +17.600000,82.100000,en +17.600000,82.200000,en +17.500000,82.200000,hi +17.400000,82.200000,hi +17.400000,82.100000,hi +17.500000,82.100000,hi +17.500000,82.000000,hi +17.500000,81.900000,hi +17.400000,81.900000,hi +17.400000,82.000000,hi +17.300000,82.000000,hi +17.300000,81.900000,hi +17.200000,81.900000,hi +17.200000,82.000000,hi +17.200000,82.100000,hi +17.300000,82.100000,hi +17.300000,82.200000,hi +17.200000,82.200000,hi +17.100000,82.200000,hi +17.100000,82.100000,hi +17.000000,82.100000,hi +17.000000,82.200000,hi +16.900000,82.200000,hi +16.800000,82.200000,hi +16.800000,82.100000,hi +16.900000,82.100000,hi +16.900000,82.000000,hi +16.800000,82.000000,hi +16.800000,81.900000,hi +16.900000,81.900000,hi +17.000000,81.900000,hi +17.000000,82.000000,hi +17.100000,82.000000,hi +17.100000,81.900000,hi +17.100000,81.800000,hi +17.000000,81.800000,hi +17.000000,81.700000,hi +17.100000,81.700000,hi +17.100000,81.600000,hi +17.000000,81.600000,hi +16.900000,81.600000,hi +16.800000,81.600000,hi +16.800000,81.700000,hi +16.900000,81.700000,hi +16.900000,81.800000,hi +16.800000,81.800000,hi +16.700000,81.800000,hi +16.600000,81.800000,hi +16.600000,81.700000,hi +16.700000,81.700000,hi +16.700000,81.600000,hi +16.600000,81.600000,hi +16.500000,81.600000,hi +16.400000,81.600000,hi +16.400000,81.700000,hi +16.500000,81.700000,hi +16.500000,81.800000,hi +16.400000,81.800000,hi +16.400000,81.900000,hi +16.400000,82.000000,hi +16.500000,82.000000,hi +16.500000,81.900000,hi +16.600000,81.900000,hi +16.700000,81.900000,hi +16.700000,82.000000,hi +16.600000,82.000000,hi +16.600000,82.100000,hi +16.700000,82.100000,hi +16.700000,82.200000,hi +16.600000,82.200000,hi +16.500000,82.200000,hi +16.500000,82.100000,hi +16.400000,82.100000,hi +16.400000,82.200000,hi +16.400000,82.300000,hi +16.500000,82.300000,hi +16.400000,82.400000,en +16.500000,82.500000,hi +16.500000,82.400000,hi +16.600000,82.400000,hi +16.600000,82.500000,hi +16.700000,82.500000,hi +16.700000,82.400000,hi +16.600000,82.300000,hi +16.700000,82.300000,hi +16.800000,82.300000,hi +16.900000,82.300000,hi +17.000000,82.300000,hi +17.100000,82.300000,hi +17.000000,82.400000,hi +17.100000,82.400000,hi +17.100000,82.500000,hi +17.000000,82.500000,hi +16.900000,82.500000,hi +16.900000,82.400000,hi +16.800000,82.400000,hi +16.800000,82.500000,hi +16.800000,82.700000,hi +16.900000,82.700000,hi +16.900000,82.600000,te +17.000000,82.600000,en +17.100000,82.600000,hi +17.100000,82.700000,hi +17.000000,82.700000,hi +17.000000,82.800000,hi +17.100000,82.800000,hi +17.100000,82.900000,hi +17.000000,82.900000,hi +16.900000,82.900000,hi +16.900000,82.800000,hi +16.800000,82.800000,hi +16.800000,82.900000,hi +16.700000,82.900000,hi +16.600000,82.800000,te +16.700000,82.800000,te +16.700000,82.700000,hi +16.600000,82.700000,hi +16.500000,82.700000,hi +16.600000,82.900000,hi +16.500000,82.900000,hi +16.500000,83.000000,hi +16.600000,83.000000,hi +16.700000,83.000000,hi +16.700000,83.100000,hi +16.800000,83.200000,hi +16.700000,83.200000,hi +16.600000,83.200000,hi +16.600000,83.100000,hi +16.500000,83.100000,hi +16.500000,83.200000,hi +16.500000,83.300000,hi +16.600000,83.300000,hi +16.600000,83.400000,hi +16.500000,83.400000,hi +16.600000,83.500000,hi +16.700000,83.500000,hi +16.800000,83.500000,hi +16.800000,83.400000,hi +16.700000,83.400000,hi +16.700000,83.300000,hi +16.800000,83.300000,hi +16.900000,83.300000,hi +16.900000,83.400000,hi +16.900000,83.500000,hi +17.000000,83.500000,hi +17.100000,83.500000,hi +17.100000,83.400000,hi +17.000000,83.400000,hi +17.000000,83.300000,hi +17.100000,83.300000,hi +17.100000,83.200000,hi +17.100000,83.100000,hi +17.000000,83.100000,hi +17.000000,83.200000,hi +16.900000,83.200000,hi +16.800000,83.100000,hi +16.900000,83.100000,hi +16.900000,83.000000,hi +16.800000,83.000000,hi +17.000000,83.000000,hi +17.100000,83.000000,hi +17.200000,83.000000,hi +17.300000,83.000000,hi +17.500000,83.000000,hi +17.400000,83.000000,hi +17.400000,83.100000,hi +17.500000,83.100000,hi +17.500000,83.200000,hi +17.400000,83.200000,hi +17.300000,83.200000,hi +17.300000,83.100000,hi +17.200000,83.100000,hi +17.200000,83.200000,hi +17.200000,83.300000,hi +17.300000,83.300000,hi +17.300000,83.400000,hi +17.200000,83.400000,hi +17.200000,83.500000,hi +17.300000,83.500000,hi +17.400000,83.500000,hi +17.500000,83.500000,hi +17.500000,83.400000,hi +17.400000,83.400000,hi +17.400000,83.300000,hi +17.500000,83.300000,hi +17.600000,83.300000,hi +17.700000,83.300000,hi +17.700000,83.400000,hi +17.600000,83.400000,hi +17.600000,83.500000,hi +17.700000,83.500000,hi +17.800000,83.500000,hi +17.900000,83.500000,hi +17.900000,83.400000,hi +17.800000,83.400000,hi +17.800000,83.300000,hi +17.900000,83.300000,hi +17.900000,83.200000,hi +17.900000,83.100000,hi +17.800000,83.100000,hi +17.800000,83.200000,hi +17.700000,83.200000,hi +17.600000,83.200000,hi +17.600000,83.100000,hi +17.700000,83.100000,hi +17.700000,83.000000,hi +17.600000,83.000000,hi +17.800000,83.000000,hi +17.900000,83.000000,hi +17.900000,82.900000,hi +17.800000,82.900000,hi +17.800000,82.800000,hi +17.900000,82.800000,hi +17.900000,82.700000,hi +17.900000,82.600000,hi +17.800000,82.600000,hi +17.800000,82.700000,hi +17.700000,82.700000,hi +17.700000,82.600000,hi +17.600000,82.600000,hi +17.600000,82.700000,hi +17.600000,82.800000,hi +17.700000,82.800000,hi +17.700000,82.900000,hi +17.600000,82.900000,hi +17.500000,82.900000,hi +17.500000,82.800000,hi +17.400000,82.800000,hi +17.400000,82.900000,hi +17.300000,82.900000,hi +17.200000,82.900000,hi +17.200000,82.800000,hi +17.300000,82.800000,hi +17.300000,82.700000,hi +17.200000,82.700000,hi +17.200000,82.600000,hi +17.300000,82.600000,hi +17.400000,82.600000,hi +17.400000,82.700000,hi +17.500000,82.700000,hi +17.500000,82.600000,hi +17.500000,82.500000,hi +17.500000,82.400000,hi +17.400000,82.400000,hi +17.400000,82.500000,hi +17.300000,82.500000,hi +17.200000,82.500000,hi +17.200000,82.400000,hi +17.300000,82.400000,hi +17.200000,82.300000,hi +17.300000,82.300000,hi +17.400000,82.300000,hi +17.500000,82.300000,hi +17.600000,82.300000,hi +17.700000,82.300000,en +17.600000,82.400000,hi +17.600000,82.500000,hi +17.700000,82.500000,hi +17.700000,82.400000,hi +17.800000,82.400000,hi +17.800000,82.500000,hi +17.900000,82.500000,hi +17.800000,82.300000,en +17.900000,82.300000,hi +18.000000,82.300000,hi +18.100000,82.300000,te +18.200000,82.300000,en +18.100000,82.400000,en +18.200000,82.400000,en +18.200000,82.500000,en +18.100000,82.500000,en +18.000000,82.500000,en +18.000000,82.400000,en +17.900000,82.400000,hi +18.000000,82.600000,hi +18.000000,82.700000,hi +18.000000,82.800000,hi +18.000000,82.900000,hi +18.100000,82.900000,hi +18.100000,82.800000,hi +18.200000,82.900000,hi +18.200000,82.800000,hi +18.200000,82.700000,hi +18.100000,82.700000,hi +18.100000,82.600000,hi +18.200000,82.600000,en +18.300000,82.600000,en +18.400000,82.600000,te +18.400000,82.700000,hi +18.300000,82.700000,hi +18.300000,82.800000,hi +18.300000,82.900000,hi +18.400000,82.900000,hi +18.400000,82.800000,hi +18.500000,82.800000,te +18.500000,82.900000,te +18.600000,82.900000,te +18.600000,82.800000,or +18.600000,82.700000,or +18.500000,82.700000,te +18.500000,82.600000,te +18.600000,82.600000,or +18.600000,82.500000,or +18.600000,82.400000,en +18.500000,82.400000,te +18.500000,82.500000,te +18.400000,82.500000,te +18.300000,82.500000,en +18.300000,82.400000,hi +18.400000,82.400000,te +18.300000,82.300000,en +18.400000,82.300000,en +18.500000,82.300000,en +18.600000,82.300000,en +18.700000,82.300000,en +18.800000,82.300000,en +18.700000,82.400000,te +18.700000,82.500000,or +18.800000,82.500000,te +18.800000,82.400000,te +18.900000,82.400000,te +18.900000,82.500000,te +19.000000,82.500000,or +19.000000,82.400000,or +18.900000,82.300000,en +19.000000,82.300000,or +19.100000,82.300000,or +19.200000,82.300000,or +19.300000,82.300000,or +19.400000,82.300000,or +19.300000,82.400000,or +19.400000,82.400000,or +19.400000,82.500000,or +19.300000,82.500000,or +19.200000,82.500000,or +19.200000,82.400000,or +19.100000,82.400000,or +19.100000,82.500000,or +19.100000,82.600000,or +19.100000,82.700000,or +19.200000,82.700000,or +19.200000,82.600000,or +19.300000,82.600000,or +19.400000,82.600000,or +19.400000,82.700000,or +19.300000,82.700000,or +19.300000,82.800000,en +19.400000,82.800000,en +19.400000,82.900000,en +19.300000,82.900000,en +19.200000,82.900000,en +19.200000,82.800000,en +19.100000,82.800000,te +19.100000,82.900000,en +19.000000,82.900000,or +18.900000,82.900000,or +18.900000,82.800000,or +19.000000,82.800000,or +19.000000,82.700000,or +19.000000,82.600000,or +18.900000,82.600000,te +18.900000,82.700000,or +18.800000,82.700000,or +18.800000,82.600000,or +18.700000,82.600000,or +18.700000,82.700000,or +18.700000,82.800000,or +18.800000,82.800000,or +18.800000,82.900000,or +18.700000,82.900000,te +18.800000,83.000000,te +18.700000,83.000000,te +18.700000,83.100000,te +18.700000,83.200000,hi +18.800000,83.200000,hi +18.800000,83.100000,te +18.900000,83.100000,te +18.900000,83.200000,hi +19.000000,83.200000,te +19.000000,83.100000,en +19.000000,83.000000,en +18.900000,83.000000,en +19.100000,83.000000,en +19.200000,83.000000,en +19.400000,83.000000,en +19.300000,83.000000,en +19.300000,83.100000,en +19.400000,83.100000,en +19.400000,83.200000,te +19.300000,83.200000,te +19.200000,83.200000,te +19.200000,83.100000,en +19.100000,83.100000,en +19.100000,83.200000,te +19.100000,83.300000,te +19.100000,83.400000,te +19.200000,83.400000,te +19.200000,83.300000,te +19.300000,83.300000,te +19.400000,83.300000,te +19.400000,83.400000,te +19.300000,83.400000,te +19.300000,83.500000,te +19.400000,83.500000,te +19.200000,83.500000,te +19.100000,83.500000,te +18.900000,83.500000,hi +19.000000,83.500000,te +19.000000,83.400000,te +19.000000,83.300000,te +18.900000,83.300000,hi +18.900000,83.400000,hi +18.800000,83.400000,hi +18.800000,83.300000,hi +18.700000,83.300000,hi +18.700000,83.400000,hi +18.700000,83.500000,hi +18.800000,83.500000,hi +18.600000,83.500000,hi +18.400000,83.500000,hi +18.500000,83.500000,hi +18.500000,83.400000,hi +18.400000,83.400000,hi +18.400000,83.300000,hi +18.500000,83.300000,hi +18.600000,83.400000,hi +18.600000,83.300000,hi +18.600000,83.200000,hi +18.500000,83.200000,hi +18.500000,83.100000,hi +18.600000,83.100000,hi +18.600000,83.000000,te +18.500000,83.000000,te +18.400000,83.000000,hi +18.300000,83.000000,hi +18.400000,83.100000,hi +18.400000,83.200000,hi +18.300000,83.200000,hi +18.200000,83.200000,hi +18.200000,83.100000,hi +18.300000,83.100000,hi +18.200000,83.000000,hi +18.100000,83.000000,hi +18.000000,83.000000,hi +18.000000,83.100000,hi +18.100000,83.100000,hi +18.100000,83.200000,hi +18.000000,83.200000,hi +18.000000,83.300000,hi +18.000000,83.400000,hi +18.100000,83.400000,hi +18.100000,83.300000,hi +18.200000,83.300000,hi +18.300000,83.300000,hi +18.300000,83.400000,hi +18.200000,83.400000,hi +18.200000,83.500000,hi +18.300000,83.500000,hi +18.100000,83.500000,hi +18.000000,83.500000,hi +18.000000,83.600000,hi +18.000000,83.700000,hi +18.100000,83.700000,hi +18.100000,83.600000,hi +18.200000,83.600000,hi +18.300000,83.600000,hi +18.300000,83.700000,hi +18.200000,83.700000,hi +18.200000,83.800000,hi +18.300000,83.800000,hi +18.300000,83.900000,hi +18.200000,83.900000,hi +18.100000,83.900000,hi +18.100000,83.800000,hi +18.000000,83.800000,hi +18.000000,83.900000,hi +18.000000,84.000000,hi +18.100000,84.000000,hi +18.100000,84.100000,hi +18.000000,84.100000,hi +18.000000,84.200000,hi +18.100000,84.200000,hi +18.200000,84.200000,hi +18.300000,84.200000,hi +18.300000,84.100000,hi +18.200000,84.100000,hi +18.200000,84.000000,hi +18.300000,84.000000,hi +18.400000,84.000000,hi +18.500000,84.000000,hi +18.500000,84.100000,hi +18.400000,84.100000,hi +18.400000,84.200000,hi +18.500000,84.200000,hi +18.600000,84.200000,hi +18.700000,84.200000,hi +18.700000,84.100000,hi +18.600000,84.100000,hi +18.600000,84.000000,hi +18.700000,84.000000,hi +18.700000,83.900000,hi +18.700000,83.800000,hi +18.600000,83.800000,hi +18.600000,83.900000,hi +18.500000,83.900000,hi +18.400000,83.900000,hi +18.400000,83.800000,hi +18.500000,83.800000,hi +18.500000,83.700000,hi +18.400000,83.700000,hi +18.400000,83.600000,hi +18.500000,83.600000,hi +18.600000,83.600000,hi +18.600000,83.700000,hi +18.700000,83.700000,hi +18.700000,83.600000,hi +18.800000,83.600000,hi +18.800000,83.700000,hi +18.800000,83.900000,hi +18.800000,83.800000,hi +18.900000,83.800000,hi +18.900000,83.900000,hi +19.000000,83.900000,te +19.000000,83.800000,te +19.000000,83.700000,hi +18.900000,83.700000,hi +18.900000,83.600000,hi +19.000000,83.600000,te +19.100000,83.600000,te +19.100000,83.700000,te +19.200000,83.700000,te +19.200000,83.600000,te +19.300000,83.600000,te +19.400000,83.600000,te +19.400000,83.700000,en +19.300000,83.700000,or +19.300000,83.800000,or +19.400000,83.800000,en +19.400000,83.900000,en +19.300000,83.900000,or +19.200000,83.900000,or +19.200000,83.800000,or +19.100000,83.800000,or +19.100000,83.900000,te +19.100000,84.000000,te +19.100000,84.100000,hi +19.200000,84.100000,en +19.200000,84.000000,or +19.300000,84.000000,or +19.400000,84.000000,en +19.400000,84.100000,en +19.300000,84.100000,en +19.400000,84.200000,en +19.300000,84.200000,en +19.200000,84.200000,en +19.100000,84.200000,en +19.000000,84.200000,hi +19.000000,84.100000,hi +19.000000,84.000000,te +18.900000,84.100000,hi +18.900000,84.000000,hi +18.800000,84.000000,hi +18.800000,84.100000,te +18.900000,84.200000,hi +18.800000,84.200000,hi +18.800000,84.300000,hi +18.900000,84.300000,hi +18.900000,84.400000,hi +18.800000,84.400000,hi +18.800000,84.500000,hi +18.800000,84.600000,hi +18.900000,84.600000,hi +18.900000,84.500000,hi +19.000000,84.500000,hi +19.000000,84.600000,hi +19.100000,84.600000,te +19.100000,84.500000,hi +19.100000,84.400000,hi +19.000000,84.400000,hi +19.000000,84.300000,hi +19.100000,84.300000,hi +19.200000,84.400000,te +19.200000,84.300000,en +19.300000,84.300000,en +19.400000,84.300000,en +19.400000,84.400000,or +19.300000,84.400000,or +19.300000,84.500000,te +19.400000,84.500000,or +19.400000,84.600000,or +19.300000,84.600000,or +19.200000,84.500000,te +19.200000,84.600000,te +19.200000,84.700000,te +19.300000,84.700000,or +19.400000,84.700000,or +19.400000,84.800000,or +19.400000,84.900000,or +19.300000,84.900000,or +19.300000,84.800000,or +19.200000,84.800000,or +19.200000,84.900000,or +19.100000,84.900000,or +19.000000,84.900000,te +19.000000,84.800000,hi +19.100000,84.800000,te +19.100000,84.700000,te +19.000000,84.700000,hi +18.900000,84.700000,hi +18.800000,84.700000,hi +18.800000,84.800000,hi +18.900000,84.800000,hi +18.900000,84.900000,hi +18.800000,84.900000,te +18.700000,84.900000,hi +18.700000,84.800000,hi +18.600000,84.800000,hi +18.600000,84.900000,hi +18.500000,84.900000,hi +18.400000,84.900000,hi +18.400000,84.800000,hi +18.500000,84.800000,hi +18.500000,84.700000,hi +18.400000,84.700000,hi +18.600000,84.700000,hi +18.700000,84.700000,hi +18.700000,84.600000,hi +18.600000,84.600000,hi +18.600000,84.500000,hi +18.700000,84.500000,hi +18.700000,84.400000,hi +18.700000,84.300000,hi +18.600000,84.300000,hi +18.600000,84.400000,hi +18.500000,84.400000,hi +18.500000,84.300000,hi +18.400000,84.300000,hi +18.400000,84.400000,hi +18.400000,84.500000,hi +18.500000,84.500000,hi +18.500000,84.600000,hi +18.400000,84.600000,hi +18.300000,84.600000,hi +18.200000,84.600000,hi +18.200000,84.500000,hi +18.300000,84.500000,hi +18.300000,84.400000,hi +18.300000,84.300000,hi +18.200000,84.300000,hi +18.200000,84.400000,hi +18.100000,84.400000,hi +18.100000,84.300000,hi +18.000000,84.300000,hi +18.000000,84.400000,hi +18.000000,84.500000,hi +18.100000,84.500000,hi +18.100000,84.600000,hi +18.000000,84.600000,hi +18.000000,84.700000,hi +18.100000,84.700000,hi +18.300000,84.700000,hi +18.200000,84.700000,hi +18.200000,84.800000,hi +18.300000,84.800000,hi +18.300000,84.900000,hi +18.200000,84.900000,hi +18.100000,84.900000,hi +18.100000,84.800000,hi +18.000000,84.800000,hi +18.000000,84.900000,hi +17.900000,84.800000,hi +17.900000,84.700000,hi +17.800000,84.700000,hi +17.400000,84.300000,hi +17.500000,84.400000,hi +17.500000,84.300000,hi +17.600000,84.300000,hi +17.700000,84.300000,hi +17.700000,84.400000,hi +17.600000,84.400000,hi +17.600000,84.500000,hi +17.700000,84.600000,hi +17.700000,84.500000,hi +17.800000,84.500000,hi +17.800000,84.600000,hi +17.900000,84.600000,hi +17.900000,84.500000,hi +17.900000,84.400000,hi +17.800000,84.400000,hi +17.800000,84.300000,hi +17.900000,84.300000,hi +17.900000,84.200000,hi +17.800000,84.200000,hi +17.700000,84.200000,hi +17.600000,84.200000,hi +17.700000,84.100000,hi +17.600000,84.100000,hi +17.600000,84.000000,hi +17.700000,84.000000,hi +17.800000,84.000000,hi +17.800000,84.100000,hi +17.900000,84.100000,hi +17.900000,84.000000,hi +17.900000,83.900000,hi +17.800000,83.900000,hi +17.800000,83.800000,hi +17.900000,83.800000,hi +17.900000,83.700000,hi +17.900000,83.600000,hi +17.800000,83.600000,hi +17.800000,83.700000,hi +17.700000,83.700000,hi +17.700000,83.600000,hi +17.600000,83.600000,hi +17.600000,83.700000,hi +17.600000,83.800000,hi +17.700000,83.800000,hi +17.700000,83.900000,hi +17.600000,83.900000,hi +17.500000,83.900000,hi +17.400000,83.900000,hi +17.400000,83.800000,hi +17.500000,83.800000,hi +17.500000,83.700000,hi +17.500000,83.600000,hi +17.400000,83.600000,hi +17.400000,83.700000,hi +17.300000,83.700000,hi +17.300000,83.600000,hi +17.200000,83.600000,hi +17.200000,83.700000,hi +17.200000,83.800000,hi +17.300000,83.800000,hi +17.300000,83.900000,hi +17.200000,83.900000,hi +17.300000,84.100000,hi +17.300000,84.000000,hi +17.400000,84.000000,hi +17.500000,84.000000,hi +17.500000,84.100000,hi +17.400000,84.100000,hi +17.500000,84.200000,hi +17.400000,84.200000,hi +17.300000,84.200000,hi +17.100000,84.000000,hi +17.200000,84.100000,hi +17.200000,84.000000,hi +17.100000,83.900000,hi +17.100000,83.800000,hi +17.100000,83.700000,hi +17.100000,83.600000,hi +17.000000,83.700000,hi +17.000000,83.600000,hi +16.900000,83.600000,hi +16.900000,83.700000,hi +16.900000,83.800000,hi +17.000000,83.800000,hi +17.000000,83.900000,hi +16.800000,83.700000,hi +16.800000,83.600000,hi +16.700000,83.600000,hi +16.400000,83.300000,hi +16.400000,83.200000,hi +16.400000,83.100000,hi +16.300000,83.100000,hi +16.300000,83.200000,hi +16.200000,83.100000,hi +16.200000,83.000000,hi +16.100000,83.000000,hi +16.300000,83.000000,hi +16.400000,83.000000,hi +16.400000,82.900000,hi +16.300000,82.900000,hi +16.400000,82.700000,en +16.400000,82.600000,hi +16.300000,82.600000,hi +16.300000,82.700000,en +16.200000,82.600000,en +16.100000,82.600000,en +16.100000,82.800000,hi +16.200000,82.800000,hi +16.200000,82.900000,hi +16.100000,82.900000,hi +16.000000,82.800000,hi +16.000000,82.500000,hi +16.000000,82.400000,hi +15.900000,82.400000,hi +15.900000,82.500000,hi +15.900000,82.300000,hi +16.000000,82.300000,hi +16.100000,82.500000,hi +16.200000,82.500000,hi +16.300000,82.300000,en +16.300000,82.200000,en +16.300000,82.100000,hi +16.200000,82.100000,hi +16.200000,82.200000,hi +16.100000,82.200000,hi +16.100000,82.100000,hi +16.100000,81.900000,hi +16.200000,81.900000,hi +16.200000,82.000000,hi +16.300000,82.000000,hi +16.300000,81.900000,hi +16.300000,81.800000,hi +16.200000,81.800000,hi +16.200000,81.700000,hi +16.300000,81.700000,hi +16.300000,81.600000,hi +16.200000,81.600000,hi +16.100000,81.600000,en +16.000000,81.600000,hi +16.000000,81.700000,hi +16.100000,81.700000,te +16.100000,81.800000,te +16.000000,81.800000,hi +15.900000,81.800000,hi +15.900000,81.700000,hi +15.900000,81.600000,hi +15.800000,81.600000,hi +15.700000,81.600000,hi +15.700000,81.700000,hi +15.800000,81.700000,te +15.800000,81.800000,te +15.700000,81.800000,hi +15.700000,81.900000,hi +15.700000,82.000000,hi +15.800000,82.000000,te +15.800000,81.900000,te +15.900000,81.900000,hi +16.000000,81.900000,hi +16.000000,82.000000,hi +15.900000,82.000000,hi +15.900000,82.100000,hi +16.000000,82.100000,hi +16.000000,82.200000,hi +15.900000,82.200000,hi +15.800000,82.200000,te +15.800000,82.100000,te +15.700000,82.100000,hi +15.600000,81.900000,hi +15.500000,81.700000,hi +15.600000,81.800000,hi +15.600000,81.700000,hi +15.500000,81.600000,hi +15.600000,81.500000,en +15.500000,81.500000,hi +15.500000,81.400000,en +15.600000,81.400000,en +15.600000,81.300000,hi +15.600000,81.200000,hi +15.500000,81.200000,hi +15.500000,81.300000,hi +15.400000,81.300000,hi +15.300000,81.300000,hi +15.400000,81.400000,hi +15.400000,81.500000,hi +15.200000,81.000000,hi +15.000000,80.900000,hi +15.100000,80.900000,hi +15.200000,80.900000,hi +15.400000,80.900000,hi +15.300000,80.900000,hi +15.300000,81.000000,te +15.400000,81.000000,te +15.500000,81.000000,hi +15.500000,81.100000,hi +15.600000,81.100000,hi +15.500000,80.900000,hi +15.600000,80.900000,hi +15.700000,80.900000,en +15.900000,80.900000,hi +15.800000,80.900000,hi +15.800000,81.000000,hi +15.900000,81.000000,hi +15.900000,81.100000,hi +15.800000,81.100000,hi +15.700000,81.100000,en +15.700000,81.000000,en +15.600000,81.000000,hi +15.700000,81.200000,hi +15.700000,81.300000,hi +15.700000,81.400000,en +15.700000,81.500000,en +15.800000,81.500000,hi +15.800000,81.400000,hi +15.900000,81.500000,hi +15.900000,81.400000,hi +15.900000,81.300000,en +15.800000,81.300000,hi +15.900000,81.200000,en +16.000000,81.200000,hi +16.100000,81.200000,hi +16.100000,81.300000,hi +16.000000,81.300000,hi +16.000000,81.400000,hi +16.000000,81.500000,hi +16.100000,81.500000,te +16.100000,81.400000,hi +16.200000,81.400000,hi +16.200000,81.500000,hi +16.300000,81.500000,hi +16.300000,81.400000,hi +16.300000,81.300000,hi +16.200000,81.300000,hi +16.200000,81.200000,hi +16.300000,81.200000,hi +16.300000,81.100000,hi +16.300000,81.000000,hi +16.200000,81.000000,hi +16.200000,81.100000,hi +16.100000,81.100000,hi +16.000000,81.100000,hi +16.000000,81.000000,hi +16.100000,81.000000,hi +16.100000,80.900000,hi +16.000000,80.900000,hi +16.200000,80.900000,hi +16.300000,80.900000,hi +16.300000,80.800000,hi +16.200000,80.800000,hi +16.200000,80.700000,hi +16.300000,80.700000,hi +16.300000,80.600000,hi +16.300000,80.500000,hi +16.200000,80.500000,hi +16.200000,80.600000,hi +16.100000,80.600000,hi +16.100000,80.500000,hi +16.000000,80.500000,hi +16.000000,80.600000,hi +16.000000,80.700000,hi +16.100000,80.700000,hi +16.100000,80.800000,hi +16.000000,80.800000,hi +15.900000,80.800000,hi +15.900000,80.700000,hi +15.800000,80.700000,hi +15.800000,80.800000,hi +15.700000,80.800000,en +15.600000,80.800000,hi +15.600000,80.700000,te +15.700000,80.700000,hi +15.700000,80.600000,hi +15.600000,80.600000,hi +15.600000,80.500000,hi +15.700000,80.500000,hi +15.800000,80.500000,hi +15.800000,80.600000,hi +15.900000,80.600000,hi +15.900000,80.500000,hi +15.900000,80.400000,hi +15.900000,80.300000,hi +15.800000,80.300000,hi +15.800000,80.400000,hi +15.700000,80.400000,hi +15.600000,80.400000,hi +15.600000,80.300000,hi +15.700000,80.300000,hi +15.700000,80.200000,hi +15.600000,80.200000,hi +15.600000,80.100000,hi +15.700000,80.100000,hi +15.800000,80.100000,hi +15.800000,80.200000,hi +15.900000,80.200000,hi +15.900000,80.100000,hi +16.000000,80.100000,hi +16.100000,80.100000,hi +16.100000,80.200000,hi +16.000000,80.200000,hi +16.000000,80.300000,hi +16.000000,80.400000,hi +16.100000,80.400000,hi +16.100000,80.300000,hi +16.200000,80.300000,hi +16.200000,80.400000,hi +16.300000,80.400000,hi +16.300000,80.300000,hi +16.300000,80.200000,hi +16.200000,80.200000,hi +16.200000,80.100000,hi +16.300000,80.100000,hi +16.200000,80.000000,hi +16.000000,80.000000,hi +16.100000,80.000000,hi +16.100000,79.900000,hi +16.000000,79.900000,hi +16.000000,79.800000,hi +16.100000,79.800000,hi +16.200000,79.900000,hi +16.200000,79.800000,hi +16.200000,79.700000,hi +16.100000,79.700000,hi +16.100000,79.600000,hi +16.200000,79.600000,hi +16.200000,79.500000,hi +16.200000,79.400000,en +16.100000,79.400000,en +16.100000,79.500000,hi +16.000000,79.500000,hi +16.000000,79.400000,hi +15.900000,79.400000,hi +16.000000,79.600000,hi +16.000000,79.700000,hi +15.900000,79.700000,hi +15.800000,79.700000,hi +15.800000,79.600000,hi +15.900000,79.600000,hi +15.900000,79.500000,hi +15.800000,79.400000,hi +15.800000,79.500000,hi +15.700000,79.500000,hi +15.700000,79.400000,hi +15.600000,79.400000,hi +15.600000,79.500000,hi +15.600000,79.600000,hi +15.700000,79.600000,hi +15.700000,79.700000,hi +15.600000,79.700000,hi +15.600000,79.800000,hi +15.600000,79.900000,hi +15.700000,79.900000,hi +15.700000,79.800000,hi +15.800000,79.800000,hi +15.900000,79.800000,hi +15.900000,79.900000,hi +15.800000,79.900000,hi +15.800000,80.000000,hi +15.900000,80.000000,hi +15.700000,80.000000,hi +15.600000,80.000000,hi +15.500000,80.000000,hi +15.400000,80.000000,hi +15.200000,80.000000,hi +15.300000,80.000000,hi +15.300000,79.900000,hi +15.200000,79.900000,hi +15.200000,79.800000,hi +15.300000,79.800000,hi +15.400000,79.800000,hi +15.400000,79.900000,hi +15.500000,79.900000,hi +15.500000,79.800000,hi +15.500000,79.700000,hi +15.400000,79.700000,hi +15.400000,79.600000,hi +15.500000,79.600000,hi +15.500000,79.500000,hi +15.500000,79.400000,hi +15.400000,79.400000,hi +15.400000,79.500000,hi +15.300000,79.500000,hi +15.300000,79.400000,hi +15.200000,79.400000,hi +15.200000,79.500000,hi +15.200000,79.600000,hi +15.300000,79.600000,hi +15.300000,79.700000,hi +15.200000,79.700000,hi +15.100000,79.700000,hi +15.000000,79.700000,hi +15.000000,79.600000,hi +15.100000,79.600000,hi +15.100000,79.500000,hi +15.100000,79.400000,hi +15.000000,79.400000,hi +15.000000,79.500000,hi +14.900000,79.500000,hi +14.900000,79.400000,hi +14.800000,79.400000,hi +14.800000,79.500000,hi +14.800000,79.600000,hi +14.900000,79.600000,hi +14.900000,79.700000,hi +14.900000,79.900000,hi +14.900000,79.800000,hi +15.000000,79.800000,hi +15.100000,79.800000,hi +15.100000,79.900000,hi +15.000000,79.900000,hi +15.000000,80.000000,hi +15.100000,80.000000,hi +14.900000,80.000000,hi +14.900000,80.100000,hi +15.000000,80.100000,hi +15.000000,80.200000,hi +14.900000,80.200000,hi +14.900000,80.300000,en +14.900000,80.400000,hi +15.000000,80.400000,hi +15.000000,80.300000,te +15.100000,80.300000,te +15.100000,80.400000,hi +15.200000,80.400000,hi +15.100000,80.200000,hi +15.100000,80.100000,hi +15.200000,80.100000,en +15.200000,80.200000,hi +15.300000,80.200000,hi +15.300000,80.100000,hi +15.400000,80.100000,hi +15.500000,80.100000,hi +15.500000,80.200000,hi +15.400000,80.200000,hi +15.400000,80.300000,hi +15.500000,80.300000,hi +15.500000,80.400000,hi +15.400000,80.400000,hi +15.300000,80.400000,en +15.300000,80.300000,hi +15.200000,80.300000,en +15.300000,80.600000,hi +15.300000,80.500000,hi +15.400000,80.500000,hi +15.500000,80.500000,hi +15.500000,80.600000,hi +15.400000,80.600000,hi +15.400000,80.700000,hi +15.500000,80.700000,hi +15.500000,80.800000,hi +15.400000,80.800000,hi +15.300000,80.700000,hi +15.300000,80.800000,hi +15.200000,80.800000,hi +15.100000,80.800000,hi +15.100000,80.700000,hi +15.200000,80.700000,hi +15.200000,80.600000,hi +15.200000,80.500000,hi +15.100000,80.500000,hi +15.100000,80.600000,hi +15.000000,80.600000,en +15.000000,80.500000,en +14.900000,80.500000,hi +14.900000,80.600000,en +14.900000,80.700000,hi +15.000000,80.700000,hi +15.000000,80.800000,hi +14.900000,80.800000,hi +14.800000,80.800000,hi +14.700000,80.800000,hi +14.700000,80.700000,hi +14.800000,80.700000,hi +14.800000,80.600000,en +14.800000,80.500000,hi +14.700000,80.500000,hi +14.700000,80.600000,en +14.600000,80.600000,en +14.600000,80.500000,hi +14.500000,80.500000,hi +14.500000,80.600000,en +14.500000,80.700000,hi +14.600000,80.700000,hi +14.600000,80.800000,hi +14.500000,80.800000,hi +14.400000,80.800000,hi +14.400000,80.700000,hi +14.300000,80.700000,hi +14.300000,80.800000,hi +14.200000,80.800000,ta +14.200000,80.700000,ta +14.200000,80.600000,hi +14.100000,80.500000,hi +14.200000,80.500000,hi +14.300000,80.500000,hi +14.300000,80.600000,en +14.400000,80.600000,en +14.400000,80.500000,hi +14.400000,80.400000,en +14.400000,80.300000,hi +14.300000,80.300000,hi +14.300000,80.400000,en +14.200000,80.400000,en +14.100000,80.300000,hi +14.200000,80.300000,hi +14.200000,80.200000,hi +14.100000,80.200000,hi +14.100000,80.100000,hi +14.200000,80.100000,hi +14.300000,80.100000,hi +14.300000,80.200000,hi +14.400000,80.200000,hi +14.400000,80.100000,hi +14.500000,80.100000,hi +14.600000,80.100000,hi +14.600000,80.200000,hi +14.500000,80.200000,hi +14.500000,80.300000,hi +14.500000,80.400000,en +14.600000,80.400000,en +14.600000,80.300000,hi +14.700000,80.300000,hi +14.700000,80.400000,hi +14.800000,80.400000,hi +14.800000,80.300000,hi +14.800000,80.200000,hi +14.700000,80.200000,hi +14.700000,80.100000,hi +14.800000,80.100000,hi +14.800000,80.000000,hi +14.700000,80.000000,hi +14.500000,80.000000,hi +14.600000,80.000000,hi +14.600000,79.900000,hi +14.500000,79.900000,hi +14.500000,79.800000,hi +14.600000,79.800000,hi +14.700000,79.800000,hi +14.700000,79.900000,hi +14.800000,79.900000,hi +14.800000,79.800000,hi +14.800000,79.700000,hi +14.700000,79.700000,hi +14.700000,79.600000,hi +14.700000,79.500000,hi +14.700000,79.400000,hi +14.600000,79.500000,hi +14.600000,79.400000,hi +14.500000,79.400000,hi +14.500000,79.500000,hi +14.500000,79.600000,hi +14.600000,79.600000,hi +14.600000,79.700000,hi +14.500000,79.700000,hi +14.400000,79.700000,hi +14.300000,79.700000,hi +14.300000,79.600000,hi +14.400000,79.600000,hi +14.400000,79.500000,hi +14.400000,79.400000,hi +14.300000,79.400000,hi +14.300000,79.500000,hi +14.200000,79.500000,hi +14.200000,79.400000,hi +14.100000,79.400000,hi +14.100000,79.500000,hi +14.100000,79.600000,hi +14.200000,79.600000,hi +14.200000,79.700000,hi +14.100000,79.700000,hi +14.100000,79.800000,hi +14.100000,79.900000,hi +14.200000,79.900000,hi +14.200000,79.800000,hi +14.300000,79.800000,hi +14.400000,79.800000,hi +14.400000,79.900000,hi +14.300000,79.900000,hi +14.300000,80.000000,hi +14.400000,80.000000,hi +14.200000,80.000000,hi +14.100000,80.000000,hi +14.000000,80.000000,hi +13.900000,80.000000,hi +13.800000,80.000000,hi +13.800000,79.900000,hi +13.800000,79.800000,hi +13.900000,79.800000,hi +13.900000,79.900000,hi +14.000000,79.900000,hi +14.000000,79.800000,hi +14.000000,79.700000,hi +13.900000,79.700000,hi +13.900000,79.600000,hi +14.000000,79.600000,hi +14.000000,79.500000,hi +14.000000,79.400000,hi +13.900000,79.400000,hi +13.900000,79.500000,hi +13.800000,79.500000,hi +13.800000,79.400000,hi +13.700000,79.400000,hi +13.700000,79.500000,hi +13.700000,79.600000,hi +13.800000,79.600000,hi +13.800000,79.700000,hi +13.700000,79.700000,hi +13.600000,79.700000,hi +13.600000,79.600000,hi +13.600000,79.500000,hi +13.600000,79.400000,hi +13.500000,79.500000,hi +13.500000,79.400000,hi +13.400000,79.400000,hi +13.400000,79.500000,hi +13.400000,79.600000,ta +13.500000,79.600000,hi +13.500000,79.700000,ta +13.400000,79.700000,te +13.400000,79.800000,te +13.400000,79.900000,hi +13.500000,79.900000,te +13.500000,79.800000,ta +13.600000,79.800000,hi +13.700000,79.800000,hi +13.700000,79.900000,hi +13.600000,79.900000,ta +13.600000,80.000000,te +13.700000,80.000000,hi +13.500000,80.000000,te +13.400000,80.000000,hi +13.400000,80.100000,hi +13.500000,80.100000,hi +13.500000,80.200000,hi +13.400000,80.200000,hi +13.400000,80.300000,hi +13.400000,80.400000,hi +13.500000,80.400000,hi +13.500000,80.300000,hi +13.600000,80.300000,hi +13.600000,80.400000,hi +13.700000,80.400000,te +13.700000,80.300000,hi +13.700000,80.200000,te +13.600000,80.200000,hi +13.600000,80.100000,te +13.700000,80.100000,hi +13.800000,80.100000,hi +13.800000,80.200000,hi +13.900000,80.200000,hi +13.900000,80.100000,hi +14.000000,80.100000,hi +14.000000,80.200000,hi +14.000000,80.300000,hi +13.900000,80.400000,te +13.900000,80.300000,hi +13.800000,80.300000,hi +13.800000,80.400000,te +13.800000,80.500000,hi +13.800000,80.600000,hi +13.900000,80.600000,hi +13.900000,80.500000,hi +14.000000,80.500000,hi +14.100000,80.600000,hi +14.000000,80.600000,hi +14.000000,80.700000,hi +14.100000,80.700000,ta +14.100000,80.800000,ta +14.000000,80.800000,hi +13.900000,80.800000,hi +13.900000,80.700000,hi +13.800000,80.700000,hi +13.800000,80.800000,hi +13.700000,80.800000,hi +13.600000,80.800000,hi +13.600000,80.700000,hi +13.700000,80.700000,hi +13.700000,80.600000,hi +13.700000,80.500000,hi +13.600000,80.500000,hi +13.600000,80.600000,hi +13.500000,80.600000,hi +13.500000,80.500000,hi +13.400000,80.500000,hi +13.400000,80.600000,hi +13.400000,80.700000,hi +13.500000,80.700000,hi +13.500000,80.800000,hi +13.400000,80.800000,hi +13.300000,80.800000,hi +13.200000,80.800000,hi +13.200000,80.700000,hi +13.300000,80.700000,hi +13.300000,80.600000,hi +13.300000,80.500000,hi +13.200000,80.500000,hi +13.200000,80.600000,hi +13.100000,80.600000,hi +13.100000,80.500000,hi +13.000000,80.500000,hi +13.100000,80.700000,hi +13.100000,80.800000,hi +13.000000,80.800000,hi +13.000000,80.700000,hi +12.900000,80.700000,hi +12.900000,80.800000,hi +12.800000,80.800000,hi +12.700000,80.800000,hi +12.700000,80.700000,hi +12.800000,80.700000,hi +12.800000,80.600000,hi +12.700000,80.600000,hi +12.700000,80.500000,hi +12.800000,80.500000,hi +12.900000,80.500000,hi +12.900000,80.600000,hi +13.000000,80.600000,hi +12.900000,80.300000,hi +12.900000,80.400000,hi +12.800000,80.400000,hi +12.700000,80.400000,hi +12.700000,80.300000,hi +12.800000,80.300000,hi +12.800000,80.200000,hi +12.700000,80.200000,hi +12.700000,80.100000,hi +12.800000,80.100000,hi +12.900000,80.200000,hi +12.900000,80.100000,hi +13.000000,80.100000,hi +13.100000,80.100000,hi +13.100000,80.200000,hi +13.000000,80.200000,hi +13.000000,80.300000,hi +13.000000,80.400000,hi +13.100000,80.400000,hi +13.100000,80.300000,hi +13.200000,80.300000,hi +13.200000,80.400000,hi +13.300000,80.400000,hi +13.300000,80.300000,hi +13.300000,80.200000,hi +13.200000,80.200000,hi +13.200000,80.100000,hi +13.300000,80.100000,hi +13.300000,80.000000,hi +13.200000,80.000000,hi +13.000000,80.000000,hi +13.100000,80.000000,hi +13.100000,79.900000,hi +13.000000,79.900000,hi +13.000000,79.800000,hi +13.100000,79.800000,hi +13.200000,79.800000,hi +13.200000,79.900000,hi +13.300000,79.900000,hi +13.300000,79.800000,hi +13.300000,79.700000,te +13.200000,79.700000,hi +13.200000,79.600000,hi +13.300000,79.600000,te +13.300000,79.500000,te +13.300000,79.400000,te +13.200000,79.400000,te +13.200000,79.500000,te +13.100000,79.500000,hi +13.100000,79.400000,hi +13.000000,79.400000,hi +13.000000,79.500000,hi +13.000000,79.600000,hi +13.100000,79.600000,hi +13.100000,79.700000,hi +13.000000,79.700000,hi +12.900000,79.700000,hi +12.800000,79.700000,hi +12.800000,79.600000,hi +12.900000,79.600000,hi +12.900000,79.500000,hi +12.900000,79.400000,hi +12.800000,79.400000,hi +12.800000,79.500000,hi +12.700000,79.500000,hi +12.700000,79.400000,hi +12.600000,79.400000,hi +12.600000,79.500000,hi +12.700000,79.600000,hi +12.700000,79.700000,hi +12.700000,79.800000,hi +12.700000,79.900000,hi +12.800000,79.800000,hi +12.900000,79.800000,hi +12.900000,79.900000,hi +12.800000,79.900000,hi +12.800000,80.000000,hi +12.900000,80.000000,hi +12.700000,80.000000,hi +12.600000,80.000000,hi +12.500000,80.000000,hi +12.300000,80.000000,hi +12.400000,80.000000,hi +12.400000,79.900000,hi +12.300000,79.900000,hi +12.300000,79.800000,hi +12.400000,79.800000,hi +12.500000,79.800000,hi +12.500000,79.900000,hi +12.600000,79.900000,hi +12.600000,79.800000,hi +12.600000,79.700000,hi +12.500000,79.700000,hi +12.500000,79.600000,hi +12.600000,79.600000,hi +12.500000,79.400000,hi +12.500000,79.500000,hi +12.400000,79.500000,hi +12.400000,79.400000,hi +12.300000,79.400000,hi +12.300000,79.500000,hi +12.300000,79.600000,hi +12.400000,79.600000,hi +12.400000,79.700000,hi +12.300000,79.700000,hi +12.200000,79.700000,hi +12.100000,79.700000,fr +12.100000,79.600000,fr +12.200000,79.600000,hi +12.200000,79.500000,hi +12.200000,79.400000,hi +12.100000,79.400000,hi +12.100000,79.500000,hi +12.000000,79.500000,hi +12.000000,79.400000,hi +11.900000,79.400000,hi +11.900000,79.500000,hi +11.900000,79.600000,fr +12.000000,79.600000,fr +12.000000,79.700000,fr +11.900000,79.700000,fr +11.900000,79.800000,fr +11.900000,79.900000,fr +12.000000,79.900000,fr +12.000000,79.800000,fr +12.100000,79.800000,fr +12.200000,79.800000,fr +12.200000,79.900000,fr +12.100000,79.900000,fr +12.100000,80.000000,fr +12.200000,80.000000,fr +12.000000,80.000000,fr +11.900000,80.000000,fr +11.900000,80.100000,fr +12.000000,80.100000,hi +12.000000,80.200000,fr +12.000000,80.400000,hi +12.000000,80.300000,hi +12.100000,80.300000,hi +12.100000,80.400000,hi +12.200000,80.400000,hi +12.200000,80.300000,hi +12.200000,80.200000,hi +12.100000,80.200000,en +12.100000,80.100000,hi +12.200000,80.100000,hi +12.300000,80.100000,hi +12.300000,80.200000,hi +12.400000,80.200000,hi +12.400000,80.100000,hi +12.500000,80.100000,hi +12.600000,80.100000,hi +12.600000,80.200000,hi +12.500000,80.200000,hi +12.500000,80.300000,hi +12.600000,80.300000,hi +12.600000,80.400000,hi +12.500000,80.400000,hi +12.400000,80.400000,hi +12.400000,80.300000,hi +12.300000,80.300000,hi +12.300000,80.400000,hi +12.300000,80.500000,hi +12.300000,80.600000,hi +12.400000,80.600000,hi +12.400000,80.500000,hi +12.500000,80.500000,hi +12.600000,80.500000,hi +12.600000,80.600000,hi +12.500000,80.600000,hi +12.500000,80.700000,hi +12.600000,80.700000,hi +12.600000,80.800000,hi +12.500000,80.800000,hi +12.400000,80.800000,hi +12.400000,80.700000,hi +12.300000,80.700000,hi +12.300000,80.800000,hi +12.200000,80.800000,hi +12.100000,80.700000,hi +12.200000,80.700000,hi +12.200000,80.600000,hi +12.200000,80.500000,hi +12.100000,80.500000,hi +12.100000,80.600000,hi +12.000000,80.500000,hi +12.000000,80.600000,hi +12.000000,80.700000,hi +12.100000,80.800000,hi +12.000000,80.800000,hi +11.900000,80.800000,hi +11.800000,80.800000,fr +11.800000,80.700000,fr +11.900000,80.700000,hi +11.900000,80.600000,hi +11.900000,80.500000,hi +11.800000,80.500000,fr +11.800000,80.600000,fr +11.700000,80.600000,fr +11.700000,80.500000,fr +11.600000,80.500000,fr +11.600000,80.600000,fr +11.600000,80.700000,fr +11.700000,80.700000,fr +11.700000,80.800000,fr +11.600000,80.800000,fr +11.500000,80.800000,fr +11.500000,80.700000,fr +11.400000,80.700000,fr +11.400000,80.800000,fr +11.300000,80.800000,fr +11.200000,80.700000,fr +11.300000,80.700000,fr +11.300000,80.600000,fr +11.200000,80.600000,fr +11.200000,80.500000,fr +11.300000,80.500000,fr +11.400000,80.500000,fr +11.400000,80.600000,fr +11.500000,80.600000,fr +11.500000,80.500000,fr +11.500000,80.400000,fr +11.500000,80.300000,en +11.400000,80.300000,en +11.400000,80.400000,fr +11.300000,80.400000,fr +11.200000,80.400000,fr +11.200000,80.300000,hi +11.300000,80.300000,en +11.300000,80.200000,hi +11.200000,80.200000,hi +11.200000,80.100000,en +11.300000,80.100000,hi +11.400000,80.100000,fr +11.400000,80.200000,fr +11.500000,80.200000,fr +11.500000,80.100000,fr +11.600000,80.100000,fr +11.700000,80.100000,fr +11.700000,80.200000,fr +11.600000,80.200000,fr +11.600000,80.300000,hi +11.600000,80.400000,fr +11.700000,80.400000,fr +11.700000,80.300000,hi +11.800000,80.300000,hi +11.800000,80.400000,en +11.900000,80.400000,hi +11.900000,80.300000,hi +11.900000,80.200000,fr +11.800000,80.200000,fr +11.800000,80.100000,fr +11.800000,80.000000,fr +11.600000,80.000000,hi +11.700000,80.000000,fr +11.700000,79.900000,fr +11.600000,79.900000,hi +11.600000,79.800000,hi +11.700000,79.800000,fr +11.800000,79.900000,fr +11.800000,79.800000,fr +11.800000,79.700000,fr +11.700000,79.600000,fr +11.800000,79.600000,fr +11.800000,79.500000,hi +11.800000,79.400000,hi +11.700000,79.400000,hi +11.700000,79.500000,hi +11.600000,79.400000,hi +11.600000,79.500000,hi +11.600000,79.600000,hi +11.700000,79.700000,fr +11.600000,79.700000,hi +11.500000,79.700000,hi +11.400000,79.700000,hi +11.400000,79.600000,hi +11.500000,79.600000,hi +11.500000,79.500000,hi +11.500000,79.400000,hi +11.400000,79.400000,hi +11.400000,79.500000,hi +11.300000,79.500000,hi +11.300000,79.400000,hi +11.200000,79.400000,hi +11.200000,79.500000,hi +11.200000,79.600000,hi +11.300000,79.600000,hi +11.300000,79.700000,hi +11.200000,79.700000,hi +11.200000,79.800000,hi +11.200000,79.900000,hi +11.300000,79.900000,hi +11.300000,79.800000,hi +11.400000,79.800000,hi +11.500000,79.800000,hi +11.500000,79.900000,hi +11.400000,79.900000,hi +11.400000,80.000000,hi +11.500000,80.000000,hi +11.300000,80.000000,hi +11.200000,80.000000,id +11.100000,80.000000,hi +11.000000,80.000000,hi +10.900000,80.000000,hi +10.900000,79.900000,hi +10.900000,79.800000,fr +11.000000,79.800000,id +11.000000,79.900000,hi +11.100000,79.900000,hi +11.100000,79.800000,hi +11.100000,79.700000,hi +11.000000,79.700000,hi +11.000000,79.600000,hi +11.100000,79.600000,hi +11.100000,79.500000,hi +11.100000,79.400000,hi +11.000000,79.400000,hi +11.000000,79.500000,hi +10.900000,79.500000,hi +10.900000,79.400000,hi +10.800000,79.400000,hi +10.900000,79.600000,hi +10.900000,79.700000,hi +10.800000,79.700000,hi +10.700000,79.700000,hi +10.700000,79.600000,hi +10.800000,79.600000,hi +10.800000,79.500000,hi +10.700000,79.400000,hi +10.700000,79.500000,hi +10.600000,79.500000,hi +10.600000,79.400000,hi +10.500000,79.400000,hi +10.500000,79.500000,hi +10.500000,79.600000,hi +10.600000,79.600000,hi +10.600000,79.700000,hi +10.500000,79.700000,hi +10.500000,79.800000,ml +10.500000,79.900000,ml +10.600000,79.900000,hi +10.600000,79.800000,hi +10.700000,79.800000,hi +10.800000,79.800000,hi +10.800000,79.900000,hi +10.700000,79.900000,hi +10.700000,80.000000,hi +10.800000,80.000000,hi +10.600000,80.000000,hi +10.500000,80.000000,ml +10.500000,80.100000,hi +10.600000,80.100000,hi +10.600000,80.200000,hi +10.500000,80.200000,hi +10.500000,80.300000,hi +10.500000,80.400000,en +10.600000,80.400000,en +10.600000,80.300000,hi +10.700000,80.300000,hi +10.700000,80.400000,en +10.800000,80.400000,en +10.800000,80.300000,hi +10.800000,80.200000,hi +10.700000,80.200000,hi +10.700000,80.100000,hi +10.800000,80.100000,hi +10.900000,80.100000,hi +10.900000,80.200000,hi +11.000000,80.200000,hi +11.000000,80.100000,en +11.100000,80.100000,en +11.100000,80.200000,hi +11.100000,80.300000,hi +11.100000,80.400000,fr +11.000000,80.400000,fr +11.000000,80.300000,hi +10.900000,80.300000,hi +10.900000,80.400000,fr +10.900000,80.500000,fr +10.900000,80.600000,fr +11.000000,80.600000,fr +11.000000,80.500000,fr +11.100000,80.500000,fr +11.100000,80.600000,fr +11.100000,80.700000,fr +11.200000,80.800000,fr +11.100000,80.800000,fr +11.000000,80.800000,fr +11.000000,80.700000,fr +10.900000,80.700000,fr +10.900000,80.800000,fr +10.800000,80.800000,en +10.700000,80.800000,en +10.700000,80.700000,en +10.800000,80.700000,en +10.800000,80.600000,en +10.800000,80.500000,en +10.700000,80.500000,en +10.700000,80.600000,en +10.600000,80.600000,en +10.600000,80.500000,en +10.500000,80.500000,en +10.500000,80.600000,en +10.500000,80.700000,en +10.600000,80.700000,en +10.600000,80.800000,en +10.500000,80.800000,en +10.500000,80.900000,ta +8.800000,79.400000,en +8.900000,79.400000,ta +9.000000,79.500000,ta +9.000000,79.400000,ta +9.100000,79.400000,hi +9.200000,79.400000,hi +9.200000,79.500000,hi +9.100000,79.500000,hi +9.200000,79.600000,ta +9.300000,79.600000,ta +9.300000,79.500000,hi +9.300000,79.400000,hi +9.400000,79.400000,hi +10.400000,80.800000,en +10.400000,80.700000,en +10.400000,80.600000,en +10.300000,80.500000,ta +10.400000,80.500000,en +10.400000,80.400000,en +10.400000,80.300000,hi +10.300000,80.300000,ta +10.300000,80.400000,ta +10.200000,80.200000,ta +10.200000,80.100000,ta +10.300000,80.100000,en +10.300000,80.200000,en +10.400000,80.200000,hi +10.400000,80.100000,en +10.300000,80.000000,en +10.400000,80.000000,en +10.400000,79.900000,en +10.400000,79.800000,en +10.300000,79.800000,en +10.300000,79.900000,en +10.200000,79.900000,en +10.200000,79.800000,en +10.200000,80.000000,en +10.100000,80.000000,ta +10.100000,79.900000,en +10.100000,79.800000,en +9.900000,79.500000,en +9.800000,79.400000,en +9.900000,79.400000,en +10.000000,79.400000,en +10.000000,79.500000,en +10.100000,79.400000,en +10.200000,79.400000,hi +10.200000,79.500000,hi +10.100000,79.500000,en +10.100000,79.600000,en +10.100000,79.700000,ta +10.200000,79.700000,en +10.200000,79.600000,en +10.300000,79.600000,en +10.300000,79.700000,en +10.400000,79.700000,en +10.400000,79.500000,hi +10.300000,79.500000,hi +10.300000,79.400000,hi +10.400000,79.400000,hi +10.400000,79.300000,hi +10.300000,79.300000,hi +10.300000,79.200000,hi +10.400000,79.200000,hi +10.400000,79.100000,hi +10.300000,79.100000,hi +10.200000,79.100000,hi +10.100000,79.100000,en +10.100000,79.200000,en +10.200000,79.200000,hi +10.200000,79.300000,hi +10.100000,79.300000,en +10.000000,79.300000,en +10.000000,79.200000,en +9.900000,79.300000,en +9.800000,79.300000,en +9.800000,79.200000,en +9.900000,79.200000,en +9.800000,79.100000,en +9.900000,79.100000,en +10.000000,79.100000,en +10.000000,79.000000,hi +10.000000,78.900000,hi +9.900000,78.900000,hi +9.900000,79.000000,hi +9.800000,79.000000,en +9.800000,78.900000,hi +9.800000,78.800000,hi +9.800000,78.700000,hi +9.900000,78.700000,hi +9.900000,78.800000,hi +10.000000,78.800000,hi +10.000000,78.700000,hi +10.100000,78.700000,hi +10.200000,78.700000,hi +10.200000,78.800000,hi +10.100000,78.800000,hi +10.100000,78.900000,hi +10.100000,79.000000,hi +10.200000,79.000000,hi +10.200000,78.900000,hi +10.300000,78.900000,hi +10.300000,79.000000,hi +10.400000,79.000000,hi +10.400000,78.900000,hi +10.400000,78.800000,hi +10.300000,78.800000,hi +10.300000,78.700000,hi +10.400000,78.700000,hi +10.400000,78.600000,hi +10.400000,78.500000,hi +10.300000,78.500000,hi +10.300000,78.600000,hi +10.200000,78.600000,hi +10.100000,78.600000,hi +10.100000,78.500000,hi +10.200000,78.500000,hi +10.200000,78.400000,hi +10.100000,78.400000,hi +10.100000,78.300000,hi +10.200000,78.300000,hi +10.300000,78.300000,hi +10.300000,78.400000,hi +10.400000,78.400000,hi +10.400000,78.300000,hi +10.300000,78.200000,hi +10.400000,78.200000,hi +10.300000,78.000000,hi +10.300000,78.100000,hi +10.200000,78.100000,hi +10.200000,78.000000,hi +10.100000,78.000000,hi +10.100000,78.100000,hi +10.100000,78.200000,hi +10.200000,78.200000,hi +9.900000,78.200000,hi +10.000000,78.200000,hi +10.000000,78.100000,hi +10.000000,78.000000,hi +9.900000,78.000000,hi +9.900000,78.100000,hi +9.800000,78.100000,hi +9.800000,78.000000,hi +9.700000,78.000000,hi +9.700000,78.100000,hi +9.700000,78.200000,hi +9.800000,78.200000,hi +9.800000,78.400000,hi +9.800000,78.300000,hi +9.900000,78.300000,hi +10.000000,78.300000,hi +10.000000,78.400000,hi +9.900000,78.400000,hi +9.900000,78.500000,hi +10.000000,78.500000,hi +10.000000,78.600000,hi +9.900000,78.600000,hi +9.800000,78.600000,hi +9.800000,78.500000,hi +9.700000,78.600000,hi +9.700000,78.500000,hi +9.600000,78.500000,hi +9.600000,78.600000,hi +9.500000,78.600000,hi +9.400000,78.600000,hi +9.400000,78.500000,hi +9.500000,78.500000,hi +9.500000,78.400000,hi +9.400000,78.400000,hi +9.400000,78.300000,hi +9.500000,78.300000,hi +9.600000,78.300000,hi +9.600000,78.400000,hi +9.700000,78.400000,hi +9.700000,78.300000,hi +9.600000,78.200000,hi +9.600000,78.000000,hi +9.600000,78.100000,hi +9.500000,78.100000,hi +9.500000,78.000000,hi +9.400000,78.000000,hi +9.400000,78.100000,hi +9.400000,78.200000,hi +9.500000,78.200000,hi +9.200000,78.200000,en +9.300000,78.200000,hi +9.300000,78.100000,hi +9.300000,78.000000,hi +9.200000,78.000000,hi +9.200000,78.100000,hi +9.100000,78.100000,hi +9.100000,78.000000,hi +9.000000,78.000000,hi +9.000000,78.100000,hi +9.000000,78.200000,hi +9.100000,78.200000,hi +9.100000,78.400000,hi +9.100000,78.300000,hi +9.200000,78.300000,en +9.300000,78.300000,hi +9.300000,78.400000,hi +9.200000,78.400000,en +9.200000,78.500000,ml +9.300000,78.500000,hi +9.300000,78.600000,hi +9.200000,78.600000,hi +9.100000,78.600000,ml +9.100000,78.500000,ml +9.100000,78.700000,ml +9.100000,78.800000,hi +9.100000,78.900000,hi +9.100000,79.000000,hi +9.200000,78.900000,hi +9.200000,79.000000,hi +9.300000,79.000000,hi +9.300000,78.900000,hi +9.300000,78.800000,hi +9.200000,78.800000,hi +9.200000,78.700000,ml +9.300000,78.700000,hi +9.400000,78.700000,hi +9.400000,78.800000,id +9.500000,78.800000,hi +9.500000,78.700000,hi +9.600000,78.700000,hi +9.700000,78.700000,hi +9.700000,78.800000,hi +9.600000,78.800000,hi +9.600000,78.900000,id +9.700000,78.900000,hi +9.700000,79.000000,en +9.600000,79.000000,id +9.500000,79.000000,hi +9.500000,78.900000,hi +9.400000,78.900000,hi +9.400000,79.000000,hi +9.400000,79.100000,hi +9.500000,79.100000,hi +9.600000,79.100000,hi +9.700000,79.100000,en +9.600000,79.200000,en +9.700000,79.200000,en +9.700000,79.300000,en +9.500000,79.300000,hi +9.500000,79.200000,hi +9.400000,79.200000,hi +9.400000,79.300000,hi +9.300000,79.300000,hi +9.300000,79.200000,hi +9.300000,79.100000,hi +9.200000,79.100000,hi +9.100000,79.100000,hi +9.100000,79.200000,hi +9.200000,79.200000,hi +9.200000,79.300000,hi +9.100000,79.300000,hi +9.000000,79.300000,en +9.000000,79.200000,en +8.900000,79.200000,hi +8.900000,79.300000,hi +8.800000,79.300000,hi +8.700000,79.300000,ta +8.700000,79.200000,en +8.800000,79.200000,hi +8.700000,79.100000,en +8.800000,79.100000,hi +8.900000,79.100000,hi +9.000000,79.100000,hi +9.000000,79.000000,hi +8.900000,79.000000,hi +8.900000,78.900000,hi +9.000000,78.900000,hi +9.000000,78.800000,ml +9.000000,78.700000,ml +8.900000,78.700000,hi +8.900000,78.800000,hi +8.800000,78.800000,hi +8.800000,78.700000,hi +8.700000,78.700000,hi +8.700000,78.800000,ml +8.700000,78.900000,ml +8.800000,78.900000,hi +8.800000,79.000000,hi +8.700000,79.000000,ml +8.600000,79.000000,en +8.600000,78.900000,en +8.600000,78.800000,en +8.600000,78.700000,hi +8.500000,78.700000,hi +8.500000,78.800000,en +8.400000,78.700000,hi +8.400000,78.800000,en +8.400000,78.900000,en +8.500000,78.900000,en +8.500000,79.000000,en +8.400000,79.000000,en +8.400000,79.100000,en +8.500000,79.100000,en +8.600000,79.100000,en +8.600000,79.200000,en +8.600000,79.300000,ta +8.500000,79.200000,ta +8.300000,79.100000,en +8.200000,79.100000,ta +8.000000,78.700000,hi +8.100000,78.700000,hi +8.100000,78.800000,en +8.000000,78.800000,en +8.000000,78.900000,ta +8.100000,79.000000,ta +8.100000,78.900000,ta +8.200000,78.900000,en +8.200000,79.000000,ta +8.300000,79.000000,en +8.300000,78.900000,en +8.300000,78.800000,en +8.200000,78.800000,en +8.200000,78.700000,hi +8.300000,78.700000,en +8.300000,78.600000,hi +8.200000,78.600000,hi +8.200000,78.500000,hi +8.300000,78.500000,hi +8.300000,78.400000,hi +8.300000,78.300000,hi +8.200000,78.300000,hi +8.200000,78.400000,hi +8.100000,78.400000,en +8.100000,78.300000,en +8.000000,78.300000,en +8.000000,78.400000,en +8.000000,78.500000,en +8.100000,78.500000,ar +8.100000,78.600000,ar +8.000000,78.600000,en +8.000000,78.000000,hi +8.100000,78.000000,en +8.100000,78.100000,hi +8.000000,78.100000,hi +8.000000,78.200000,en +8.100000,78.200000,en +8.200000,78.200000,en +8.300000,78.200000,en +8.300000,78.100000,en +8.200000,78.100000,en +8.200000,78.000000,en +8.300000,78.000000,en +8.400000,78.100000,en +8.400000,78.000000,en +8.500000,78.000000,hi +8.600000,78.000000,hi +8.600000,78.100000,ar +8.500000,78.100000,ar +8.500000,78.200000,hi +8.600000,78.200000,hi +8.400000,78.200000,ar +8.400000,78.300000,ar +8.400000,78.400000,hi +8.400000,78.500000,hi +8.400000,78.600000,hi +8.500000,78.500000,hi +8.500000,78.600000,hi +8.600000,78.600000,hi +8.600000,78.500000,hi +8.600000,78.400000,hi +8.500000,78.400000,hi +8.500000,78.300000,hi +8.600000,78.300000,hi +8.700000,78.300000,hi +8.800000,78.300000,hi +8.800000,78.400000,hi +8.700000,78.400000,hi +8.700000,78.500000,hi +8.700000,78.600000,hi +8.800000,78.600000,hi +8.800000,78.500000,hi +8.900000,78.500000,en +8.900000,78.600000,hi +9.000000,78.600000,ml +9.000000,78.500000,ml +9.000000,78.400000,hi +8.900000,78.400000,hi +8.900000,78.300000,hi +9.000000,78.300000,en +8.900000,78.200000,hi +8.700000,78.200000,hi +8.800000,78.200000,hi +8.800000,78.100000,hi +8.700000,78.100000,hi +8.700000,78.000000,hi +8.800000,78.000000,hi +8.900000,78.000000,hi +8.900000,78.100000,hi +8.900000,77.800000,hi +8.900000,77.900000,hi +8.800000,77.900000,hi +8.700000,77.900000,hi +8.700000,77.800000,hi +8.800000,77.800000,hi +8.800000,77.700000,hi +8.700000,77.700000,hi +8.700000,77.600000,hi +8.800000,77.600000,hi +8.900000,77.700000,hi +8.900000,77.600000,hi +8.900000,77.500000,hi +8.800000,77.400000,ml +8.900000,77.400000,ml +8.900000,77.300000,ml +8.900000,77.200000,ml +8.800000,77.200000,ta +8.800000,77.300000,ml +8.700000,77.200000,ta +8.700000,77.300000,ml +8.700000,77.400000,ml +8.800000,77.500000,hi +8.700000,77.500000,hi +8.600000,77.500000,hi +8.500000,77.500000,hi +8.500000,77.400000,ml +8.600000,77.400000,ml +8.600000,77.300000,ta +8.600000,77.200000,ta +8.500000,77.200000,ta +8.500000,77.300000,ml +8.400000,77.300000,ml +8.400000,77.200000,ta +8.300000,77.200000,ml +8.300000,77.300000,ml +8.300000,77.400000,ml +8.400000,77.400000,ml +8.400000,77.500000,hi +8.300000,77.500000,hi +8.300000,77.600000,hi +8.300000,77.700000,hi +8.400000,77.700000,hi +8.400000,77.600000,hi +8.500000,77.600000,hi +8.600000,77.600000,hi +8.600000,77.700000,hi +8.500000,77.700000,hi +8.500000,77.800000,hi +8.600000,77.800000,hi +8.600000,77.900000,hi +8.500000,77.900000,hi +8.400000,77.900000,hi +8.400000,77.800000,hi +8.300000,77.800000,hi +8.300000,77.900000,en +8.200000,77.900000,hi +8.200000,77.800000,hi +8.200000,77.600000,hi +8.200000,77.700000,hi +8.100000,77.700000,hi +8.100000,77.600000,hi +8.000000,77.600000,hi +8.000000,77.700000,hi +8.000000,77.800000,hi +8.100000,77.800000,hi +8.100000,77.900000,en +8.000000,77.900000,hi +8.000000,77.200000,en +8.100000,77.200000,ml +8.100000,77.300000,en +8.000000,77.300000,en +8.000000,77.400000,hi +8.000000,77.500000,hi +8.100000,77.500000,hi +8.100000,77.400000,hi +8.200000,77.500000,hi +8.200000,77.400000,hi +8.200000,77.300000,ml +8.200000,77.200000,ml +8.200000,77.100000,ml +8.200000,77.000000,ta +8.200000,76.900000,ta +8.100000,76.900000,ta +8.100000,77.000000,ml +8.000000,76.900000,ta +8.000000,77.000000,ta +8.000000,77.100000,en +8.100000,77.100000,ml +8.100000,76.800000,ta +8.200000,76.800000,ru +8.500000,76.600000,ru +8.500000,76.700000,hi +8.600000,76.700000,hi +8.600000,76.800000,hi +8.500000,76.800000,hi +8.400000,76.800000,hi +8.400000,76.700000,hi +8.300000,76.700000,hi +8.300000,76.800000,hi +8.300000,76.900000,hi +8.400000,76.900000,hi +8.400000,77.000000,hi +8.300000,77.000000,ta +8.300000,77.100000,ta +8.400000,77.100000,ta +8.500000,77.100000,ta +8.600000,77.100000,hi +8.600000,77.000000,hi +8.500000,77.000000,hi +8.500000,76.900000,hi +8.600000,76.900000,hi +8.700000,76.900000,hi +8.700000,77.000000,hi +8.700000,77.100000,hi +8.800000,77.100000,ta +8.900000,77.100000,ta +8.900000,77.000000,ta +8.800000,77.000000,hi +8.800000,76.900000,hi +8.900000,76.900000,hi +8.900000,76.800000,hi +8.900000,76.700000,hi +8.800000,76.700000,hi +8.800000,76.800000,hi +8.700000,76.800000,hi +8.700000,76.700000,ru +8.700000,76.600000,hi +8.600000,76.600000,ru +8.700000,76.500000,hi +8.800000,76.500000,hi +8.800000,76.600000,hi +8.900000,76.600000,hi +8.900000,76.500000,hi +9.000000,76.500000,hi +9.100000,76.500000,hi +9.100000,76.600000,hi +9.000000,76.600000,hi +9.000000,76.700000,hi +9.000000,76.800000,hi +9.100000,76.800000,hi +9.100000,76.700000,hi +9.200000,76.700000,hi +9.200000,76.800000,hi +9.200000,76.600000,hi +9.200000,76.500000,hi +9.300000,76.500000,hi +9.300000,76.600000,hi +9.400000,76.600000,hi +9.400000,76.500000,hi +9.500000,76.500000,hi +9.600000,76.500000,hi +9.600000,76.600000,hi +9.500000,76.600000,hi +9.500000,76.700000,hi +9.600000,76.700000,hi +9.600000,76.800000,hi +9.500000,76.800000,ta +9.400000,76.800000,hi +9.400000,76.700000,hi +9.300000,76.700000,hi +9.300000,76.800000,hi +9.400000,77.000000,ta +9.400000,76.900000,ta +9.500000,76.900000,ta +9.600000,76.900000,ta +9.600000,77.000000,ta +9.500000,77.000000,ta +9.500000,77.100000,ta +9.600000,77.100000,ta +9.400000,77.100000,ta +9.200000,77.100000,ta +9.300000,77.100000,ta +9.300000,77.000000,ta +9.300000,76.900000,hi +9.200000,76.900000,hi +9.200000,77.000000,ta +9.100000,77.000000,ta +9.100000,76.900000,hi +9.000000,76.900000,ta +9.000000,77.000000,ta +9.000000,77.100000,ta +9.100000,77.100000,ta +9.000000,77.200000,ml +9.000000,77.300000,ml +9.100000,77.300000,ml +9.100000,77.200000,ml +9.200000,77.200000,ml +9.300000,77.200000,ml +9.300000,77.300000,ml +9.200000,77.300000,ml +9.200000,77.400000,ml +9.300000,77.400000,ml +9.300000,77.500000,hi +9.200000,77.500000,hi +9.100000,77.500000,ml +9.100000,77.400000,ml +9.000000,77.400000,ml +9.000000,77.500000,hi +9.000000,77.600000,hi +9.100000,77.600000,hi +9.100000,77.700000,hi +9.000000,77.700000,hi +9.000000,77.800000,hi +9.000000,77.900000,hi +9.100000,77.900000,hi +9.100000,77.800000,hi +9.200000,77.800000,hi +9.200000,77.900000,hi +9.300000,77.900000,hi +9.300000,77.800000,hi +9.300000,77.700000,hi +9.200000,77.700000,hi +9.200000,77.600000,hi +9.300000,77.600000,hi +9.400000,77.600000,hi +9.500000,77.600000,hi +9.500000,77.700000,hi +9.400000,77.700000,hi +9.400000,77.800000,hi +9.400000,77.900000,hi +9.500000,77.900000,hi +9.500000,77.800000,hi +9.600000,77.900000,hi +9.600000,77.800000,hi +9.600000,77.700000,hi +9.600000,77.600000,hi +9.600000,77.500000,hi +9.600000,77.400000,ml +9.500000,77.400000,ml +9.500000,77.500000,hi +9.400000,77.500000,hi +9.400000,77.400000,ml +9.400000,77.300000,ml +9.400000,77.200000,ta +9.500000,77.200000,ta +9.500000,77.300000,ml +9.600000,77.300000,ml +9.600000,77.200000,ta +9.700000,77.200000,ta +9.700000,77.300000,ml +9.800000,77.300000,ml +9.800000,77.200000,ta +9.900000,77.200000,ta +10.000000,77.200000,ta +10.000000,77.300000,ml +9.900000,77.300000,ml +9.900000,77.400000,ml +10.000000,77.400000,ml +10.000000,77.500000,hi +9.900000,77.500000,hi +9.800000,77.500000,hi +9.800000,77.400000,ml +9.700000,77.400000,ml +9.700000,77.500000,hi +9.700000,77.600000,hi +9.800000,77.600000,hi +9.800000,77.700000,hi +9.700000,77.700000,hi +9.700000,77.800000,hi +9.700000,77.900000,hi +9.800000,77.900000,hi +9.800000,77.800000,hi +9.900000,77.800000,hi +9.900000,77.900000,hi +10.000000,77.900000,hi +10.000000,77.800000,hi +10.000000,77.700000,hi +9.900000,77.700000,hi +9.900000,77.600000,hi +10.000000,77.600000,hi +10.100000,77.600000,hi +10.200000,77.600000,hi +10.200000,77.700000,hi +10.100000,77.700000,hi +10.100000,77.800000,hi +10.100000,77.900000,hi +10.200000,77.900000,hi +10.200000,77.800000,hi +10.300000,77.900000,hi +10.300000,77.800000,hi +10.300000,77.700000,hi +10.300000,77.600000,hi +10.300000,77.500000,hi +10.300000,77.400000,ml +10.200000,77.400000,ml +10.200000,77.500000,iw +10.100000,77.500000,hi +10.100000,77.400000,ml +10.100000,77.300000,ml +10.100000,77.200000,ml +10.200000,77.200000,ta +10.200000,77.300000,ml +10.300000,77.300000,ml +10.300000,77.200000,ml +10.200000,77.100000,ta +10.300000,77.100000,ml +10.300000,77.000000,ml +10.300000,76.900000,ml +10.200000,76.900000,ta +10.200000,77.000000,ta +10.100000,77.000000,ta +10.100000,76.900000,ta +10.000000,76.900000,hi +10.100000,77.100000,ta +10.000000,77.100000,ta +9.900000,77.100000,ta +9.700000,77.100000,ta +9.800000,77.100000,ta +9.800000,77.000000,ta +9.700000,77.000000,ta +9.700000,76.900000,ta +9.800000,76.900000,hi +9.900000,76.900000,hi +9.900000,77.000000,hi +10.000000,77.000000,hi +9.900000,76.700000,hi +9.900000,76.800000,hi +9.800000,76.800000,hi +9.700000,76.800000,hi +9.700000,76.700000,hi +9.800000,76.700000,hi +9.800000,76.600000,hi +9.700000,76.600000,hi +9.700000,76.500000,hi +9.800000,76.500000,hi +9.900000,76.600000,hi +9.900000,76.500000,hi +10.000000,76.500000,hi +10.100000,76.500000,hi +10.100000,76.600000,hi +10.000000,76.600000,hi +10.000000,76.700000,hi +10.000000,76.800000,hi +10.100000,76.800000,hi +10.100000,76.700000,hi +10.200000,76.700000,hi +10.200000,76.800000,hi +10.300000,76.800000,ta +10.300000,76.700000,hi +10.300000,76.600000,hi +10.200000,76.600000,hi +10.200000,76.500000,hi +10.300000,76.500000,hi +10.300000,76.400000,hi +10.300000,76.300000,hi +10.200000,76.300000,hi +10.200000,76.400000,hi +10.100000,76.400000,hi +10.000000,76.400000,hi +10.000000,76.300000,hi +10.100000,76.300000,hi +10.100000,76.200000,hi +10.000000,76.200000,hi +10.000000,76.100000,hi +10.100000,76.100000,hi +10.200000,76.100000,hi +10.200000,76.200000,hi +10.300000,76.200000,hi +10.300000,76.100000,hi +10.300000,76.000000,hi +10.200000,76.000000,hi +10.200000,75.900000,hi +10.300000,75.900000,hi +10.300000,75.800000,hi +10.200000,75.800000,hi +10.100000,75.800000,hi +10.000000,75.800000,hi +10.000000,75.900000,en +10.100000,75.900000,ar +10.100000,76.000000,hi +10.000000,76.000000,hi +9.900000,76.000000,hi +9.800000,76.000000,fr +9.800000,75.900000,hi +9.900000,75.900000,hi +9.900000,75.800000,hi +9.700000,75.900000,hi +9.700000,76.000000,hi +9.700000,76.100000,hi +9.700000,76.200000,hi +9.800000,76.100000,hi +9.900000,76.100000,hi +9.900000,76.200000,hi +9.800000,76.200000,hi +9.800000,76.300000,hi +9.900000,76.300000,hi +9.900000,76.400000,hi +9.800000,76.400000,hi +9.700000,76.300000,hi +9.700000,76.400000,hi +9.600000,76.400000,hi +9.500000,76.400000,hi +9.500000,76.300000,hi +9.600000,76.300000,hi +9.600000,76.200000,hi +9.600000,76.100000,hi +9.500000,76.100000,hi +9.500000,76.200000,hi +9.400000,76.200000,hi +9.400000,76.100000,hi +9.300000,76.200000,hi +9.300000,76.300000,hi +9.400000,76.300000,hi +9.400000,76.400000,hi +9.300000,76.400000,hi +9.200000,76.400000,hi +9.200000,76.300000,hi +9.100000,76.400000,hi +9.000000,76.400000,hi +9.000000,76.300000,hi +9.100000,76.300000,hi +9.200000,76.200000,hi +9.600000,76.000000,hi +10.100000,75.700000,hi +10.200000,75.700000,hi +10.100000,73.500000,ml +10.100000,73.600000,ml +10.000000,73.600000,ml +10.000000,73.500000,ml +9.900000,73.500000,ml +9.900000,73.600000,ml +9.800000,73.600000,ml +9.800000,73.500000,ml +9.700000,73.500000,ml +9.700000,73.600000,ml +9.600000,73.900000,ar +9.600000,74.000000,ar +9.600000,74.100000,ar +9.600000,74.200000,hi +8.900000,76.400000,hi +8.800000,76.400000,hi +9.300000,72.000000,ml +9.400000,72.000000,ml +9.400000,72.100000,ml +9.400000,72.200000,ml +9.400000,72.300000,ml +9.400000,72.400000,ml +9.400000,72.500000,ml +9.700000,72.800000,ml +9.800000,72.800000,ml +9.700000,72.900000,ml +9.800000,72.900000,ml +9.800000,73.000000,ml +9.700000,73.000000,ml +9.700000,73.300000,ml +9.700000,73.400000,ml +9.800000,73.400000,ml +9.800000,73.300000,ml +9.800000,73.200000,ml +9.700000,73.200000,ml +9.700000,73.100000,ml +9.800000,73.100000,ml +9.900000,73.100000,ml +10.000000,73.200000,ml +9.900000,73.200000,ml +9.900000,73.300000,ml +9.900000,73.400000,ml +10.000000,73.400000,ml +10.000000,73.300000,ml +10.100000,73.400000,ml +10.100000,73.300000,ml +10.100000,73.200000,ml +10.000000,73.100000,ml +10.100000,73.100000,ml +10.100000,73.000000,ml +10.100000,72.900000,ml +10.000000,72.900000,ml +10.000000,73.000000,ml +9.900000,73.000000,ml +9.900000,72.900000,ml +9.900000,72.800000,ml +10.000000,72.800000,ml +10.100000,72.800000,ml +10.100000,72.700000,ml +10.000000,72.700000,ml +10.000000,72.600000,ml +10.100000,72.600000,ml +10.100000,72.500000,ml +10.100000,72.400000,ml +10.000000,72.400000,ml +10.000000,72.500000,ml +9.900000,72.500000,ml +9.900000,72.400000,ml +9.800000,72.400000,ml +9.800000,72.500000,ml +9.800000,72.600000,ml +9.900000,72.600000,ml +9.900000,72.700000,ml +9.800000,72.700000,ml +9.700000,72.600000,ml +9.700000,72.700000,ml +9.600000,72.500000,ml +9.600000,72.400000,ml +9.700000,72.400000,ml +9.700000,72.500000,ml +9.700000,72.300000,ml +9.700000,72.200000,ml +9.600000,72.300000,ml +9.600000,72.200000,ml +9.600000,72.100000,ml +9.500000,72.000000,ml +9.600000,72.000000,ml +9.700000,72.100000,ml +9.700000,72.000000,ml +9.800000,72.000000,ml +9.900000,72.000000,ml +9.900000,72.100000,ml +9.800000,72.100000,ml +9.800000,72.200000,ml +9.800000,72.300000,ml +9.900000,72.300000,ml +9.900000,72.200000,ml +10.000000,72.200000,ml +10.000000,72.300000,ml +10.100000,72.300000,ml +10.100000,72.200000,ml +10.100000,72.100000,ml +10.000000,72.100000,ml +10.000000,72.000000,ml +10.100000,72.000000,ml +10.100000,71.900000,ml +10.000000,71.800000,ml +10.000000,71.900000,ml +9.900000,71.900000,ml +9.800000,71.900000,ml +9.800000,71.800000,ml +9.900000,71.800000,ml +9.700000,71.800000,ml +9.700000,71.900000,ml +9.600000,71.900000,ml +9.500000,71.900000,ml +15.700000,73.300000,mr +15.800000,73.300000,ru +15.800000,73.400000,hi +15.700000,73.400000,hi +15.600000,73.400000,ru +15.500000,73.400000,ru +12.500000,73.000000,hi +12.500000,72.900000,hi +12.600000,72.800000,hi +12.500000,72.800000,hi +12.400000,72.800000,hi +12.300000,72.800000,hi +12.300000,72.900000,hi +12.400000,72.900000,hi +12.400000,73.000000,hi +12.300000,73.000000,hi +12.300000,73.100000,hi +12.300000,73.200000,hi +12.400000,73.100000,hi +12.300000,73.300000,hi +11.600000,73.400000,ml +11.600000,73.300000,ml +11.600000,72.300000,ml +11.600000,72.200000,ml +11.600000,72.100000,ml +11.500000,72.000000,ml +11.600000,72.000000,ml +12.300000,72.100000,ml +12.300000,72.000000,ml +12.400000,72.000000,ml +12.500000,72.000000,ml +12.500000,72.100000,ml +12.400000,72.100000,ml +12.400000,72.200000,ml +12.500000,72.200000,ml +12.500000,72.300000,ml +12.400000,72.300000,ml +12.300000,72.200000,ml +12.300000,72.300000,ml +12.300000,72.400000,en +12.400000,72.400000,hi +12.400000,72.500000,hi +12.300000,72.500000,hi +12.300000,72.600000,hi +12.300000,72.700000,hi +12.400000,72.700000,hi +12.400000,72.600000,hi +12.500000,72.600000,hi +12.500000,72.700000,hi +12.500000,72.500000,hi +12.500000,72.400000,hi +12.600000,72.400000,hi +12.600000,72.500000,hi +12.600000,72.600000,hi +12.600000,72.300000,ml +12.600000,72.200000,ml +12.600000,72.100000,ml +12.600000,72.000000,ml +12.500000,71.900000,ml +12.500000,71.800000,ml +12.400000,71.800000,ml +12.400000,71.900000,ml +12.300000,71.900000,ml +12.200000,71.900000,ml +12.200000,71.800000,ml +12.300000,71.800000,ml +12.300000,71.700000,ml +12.200000,71.700000,ml +12.200000,71.600000,ml +12.300000,71.600000,ml +12.400000,71.600000,ml +12.400000,71.700000,ml +12.200000,71.500000,ml +11.500000,71.500000,ml +11.600000,71.500000,ml +11.600000,71.400000,ml +11.700000,71.400000,ml +11.700000,71.500000,ml +11.800000,71.500000,ml +11.800000,71.400000,ml +12.100000,71.500000,ml +12.000000,71.500000,ml +11.900000,71.400000,ml +11.900000,71.500000,ml +11.900000,71.600000,ml +12.000000,71.700000,ml +12.000000,71.600000,ml +12.100000,71.600000,ml +12.100000,71.700000,ml +12.100000,71.800000,ml +12.000000,71.800000,ml +11.800000,71.600000,ml +11.700000,71.600000,ml +11.600000,71.700000,ml +11.600000,71.600000,ml +11.500000,71.600000,ml +11.500000,71.700000,ml +11.500000,71.800000,ml +11.600000,71.800000,ml +11.600000,71.900000,ml +11.500000,71.900000,ml +11.400000,71.900000,ml +11.400000,71.800000,ml +11.400000,71.700000,ml +11.400000,71.600000,ml +11.300000,71.600000,ml +11.300000,71.700000,ml +11.200000,71.600000,ml +11.200000,71.700000,ml +11.200000,71.800000,ml +11.300000,71.800000,ml +11.300000,71.900000,ml +11.200000,71.900000,ml +11.100000,71.900000,ml +11.100000,71.800000,ml +11.000000,71.800000,ml +11.000000,71.900000,ml +10.900000,71.900000,ml +10.800000,71.900000,ml +10.800000,71.800000,ml +10.900000,71.800000,ml +10.900000,71.700000,ml +10.800000,71.700000,ml +10.800000,71.600000,ml +10.900000,71.600000,ml +11.000000,71.600000,ml +11.000000,71.700000,ml +11.100000,71.700000,ml +11.100000,71.600000,ml +11.200000,71.500000,ml +11.300000,71.500000,ml +11.400000,71.500000,ml +10.500000,71.700000,ml +10.600000,71.700000,ml +10.600000,71.600000,ml +10.700000,71.600000,ml +10.700000,71.700000,ml +10.700000,71.800000,ml +10.700000,71.900000,ml +10.600000,71.900000,ml +10.600000,71.800000,ml +10.500000,71.800000,ml +10.500000,71.900000,ml +10.400000,71.900000,ml +10.300000,71.900000,ml +10.300000,71.800000,ml +10.400000,71.800000,ml +10.400000,71.700000,ml +10.300000,71.700000,ml +10.200000,71.700000,ml +10.100000,71.800000,ml +10.200000,71.800000,ml +10.200000,71.900000,ml +10.200000,72.100000,ml +10.200000,72.000000,ml +10.300000,72.000000,ml +10.400000,72.000000,ml +10.400000,72.100000,ml +10.300000,72.100000,ml +10.300000,72.200000,ml +10.400000,72.200000,ml +10.400000,72.300000,ml +10.300000,72.300000,ml +10.200000,72.200000,ml +10.200000,72.300000,ml +10.200000,72.400000,ml +10.300000,72.400000,ml +10.300000,72.500000,ml +10.200000,72.500000,ml +10.200000,72.600000,ml +10.200000,72.700000,ml +10.300000,72.700000,ml +10.300000,72.600000,ml +10.400000,72.600000,ml +10.400000,72.700000,ml +10.400000,72.500000,ml +10.400000,72.400000,ml +10.500000,72.400000,ml +10.600000,72.400000,ml +10.600000,72.500000,ml +10.500000,72.500000,ml +10.500000,72.600000,ml +10.500000,72.700000,ml +10.600000,72.700000,ml +10.600000,72.600000,ml +10.700000,72.600000,ml +10.700000,72.700000,ml +10.800000,72.700000,ml +10.800000,72.600000,ml +10.800000,72.500000,ml +10.700000,72.500000,ml +10.700000,72.400000,ml +10.800000,72.400000,ml +10.800000,72.300000,ml +10.800000,72.200000,ml +10.700000,72.200000,ml +10.700000,72.300000,ml +10.600000,72.300000,ml +10.500000,72.300000,ml +10.500000,72.200000,ml +10.600000,72.200000,ml +10.600000,72.100000,ml +10.500000,72.100000,ml +10.500000,72.000000,ml +10.600000,72.000000,ml +10.700000,72.000000,ml +10.700000,72.100000,ml +10.800000,72.100000,ml +10.800000,72.000000,ml +10.900000,72.000000,ml +10.900000,72.100000,ml +10.900000,72.300000,ml +10.900000,72.200000,ml +11.000000,72.200000,ml +11.000000,72.300000,ml +11.100000,72.300000,ml +11.100000,72.200000,ml +11.100000,72.100000,ml +11.000000,72.100000,ml +11.000000,72.000000,ml +11.100000,72.000000,ml +11.200000,72.000000,ml +11.200000,72.100000,ml +11.300000,72.100000,ml +11.300000,72.000000,ml +11.400000,72.000000,ml +11.500000,72.100000,ml +11.400000,72.100000,ml +11.400000,72.200000,ml +11.500000,72.200000,ml +11.500000,72.300000,ml +11.300000,72.200000,ml +11.200000,72.200000,ml +11.100000,72.700000,ml +11.100000,72.600000,ml +11.100000,72.500000,ml +11.100000,72.400000,ml +11.000000,72.400000,ml +11.000000,72.500000,ml +10.900000,72.400000,ml +10.900000,72.500000,ml +10.900000,72.600000,ml +10.900000,72.700000,ml +10.900000,72.800000,ml +10.900000,72.900000,ml +10.900000,73.000000,ml +11.000000,73.000000,ml +11.100000,72.900000,ml +11.100000,73.000000,ml +11.100000,72.800000,ml +11.500000,73.300000,ml +11.500000,73.400000,ml +11.400000,73.400000,ml +11.400000,73.300000,ml +11.300000,73.400000,ml +11.200000,73.400000,ml +11.100000,73.100000,ml +11.000000,73.100000,ml +10.900000,73.100000,ml +10.900000,73.300000,ml +11.000000,73.300000,ml +11.000000,73.400000,ml +10.900000,73.400000,ml +10.800000,73.400000,ml +10.700000,73.400000,ml +10.600000,73.100000,ml +10.700000,73.100000,ml +10.800000,73.100000,ml +10.800000,73.000000,ml +10.700000,73.000000,ml +10.700000,72.900000,ml +10.800000,72.900000,ml +10.800000,72.800000,ml +10.700000,72.800000,ml +10.600000,72.800000,ml +10.600000,72.900000,ml +10.600000,73.000000,ml +10.500000,73.000000,ml +10.400000,73.000000,ml +10.400000,72.900000,ml +10.500000,72.900000,ml +10.500000,72.800000,ml +10.400000,72.800000,ml +10.300000,72.800000,ml +10.200000,72.800000,ml +10.200000,72.900000,ml +10.300000,72.900000,ml +10.300000,73.000000,ml +10.200000,73.000000,ml +10.200000,73.100000,ml +10.200000,73.200000,ml +10.300000,73.100000,ml +10.400000,73.100000,ml +10.500000,73.100000,ml +10.200000,73.300000,ml +10.200000,73.400000,ml +10.200000,73.500000,ml +10.200000,73.600000,ml +10.700000,73.600000,ml +10.700000,73.500000,ml +10.800000,73.500000,ml +10.800000,73.600000,ml +11.600000,74.900000,hi +11.500000,74.100000,hi +11.600000,74.100000,hi +11.600000,74.000000,hi +11.600000,73.900000,hi +11.500000,74.000000,hi +11.400000,74.000000,hi +11.300000,74.100000,hi +11.400000,74.100000,hi +11.200000,74.200000,hi +11.200000,74.100000,ar +11.000000,73.600000,ml +10.900000,73.600000,ml +10.900000,73.500000,ml +11.000000,73.500000,ml +11.100000,73.600000,ml +11.200000,73.600000,ml +11.200000,73.500000,ml +11.300000,73.500000,ml +11.400000,73.500000,ml +11.400000,73.600000,ml +11.300000,73.600000,ml +11.500000,73.600000,ml +11.500000,73.500000,ml +11.600000,73.500000,ml +11.600000,73.600000,ml +11.700000,73.900000,hi +11.700000,74.000000,hi +11.800000,74.000000,kn +11.800000,73.900000,hi +12.700000,74.500000,hi +13.000000,74.400000,hi +13.000000,74.500000,hi +12.900000,74.500000,hi +12.800000,74.500000,hi +12.800000,74.600000,hi +12.800000,74.700000,hi +12.900000,74.700000,hi +12.900000,74.600000,hi +13.000000,74.600000,hi +13.000000,74.700000,hi +13.000000,74.800000,hi +13.000000,74.900000,hi +12.900000,74.900000,hi +12.900000,74.800000,hi +12.800000,74.800000,hi +12.800000,74.900000,hi +12.700000,74.900000,ml +12.600000,74.900000,kn +12.600000,74.800000,kn +12.700000,74.800000,hi +12.700000,74.700000,hi +12.700000,74.600000,hi +12.600000,74.600000,hi +12.600000,74.700000,hi +12.500000,74.700000,ml +12.500000,74.600000,ml +12.400000,74.600000,ml +12.400000,74.700000,ml +12.400000,74.800000,hi +12.500000,74.800000,hi +12.500000,74.900000,hi +12.400000,74.900000,hi +12.300000,74.900000,hi +12.300000,74.800000,kn +12.200000,74.800000,hi +12.200000,74.900000,hi +12.100000,74.900000,hi +12.100000,74.800000,hi +12.100000,74.700000,hi +12.200000,74.700000,hi +12.300000,74.700000,kn +11.900000,74.800000,hi +12.000000,74.800000,hi +12.000000,74.900000,hi +11.900000,74.900000,hi +11.800000,74.900000,hi +11.700000,74.900000,hi +11.700000,75.000000,hi +11.700000,75.100000,hi +11.800000,75.100000,hi +11.800000,75.000000,hi +11.900000,75.000000,hi +12.000000,75.000000,hi +12.000000,75.100000,hi +11.900000,75.100000,hi +11.900000,75.200000,hi +12.000000,75.200000,hi +12.000000,75.300000,hi +11.900000,75.300000,hi +11.800000,75.300000,hi +11.800000,75.200000,hi +11.700000,75.200000,hi +11.700000,75.300000,hi +11.700000,75.400000,hi +11.800000,75.400000,hi +11.800000,75.500000,hi +11.700000,75.500000,hi +11.800000,75.700000,hi +11.800000,75.600000,hi +11.900000,75.600000,hi +11.900000,75.700000,hi +12.000000,75.700000,hi +12.000000,75.600000,hi +12.000000,75.500000,hi +11.900000,75.500000,hi +11.900000,75.400000,hi +12.000000,75.400000,hi +12.100000,75.400000,hi +12.200000,75.400000,hi +12.200000,75.500000,hi +12.100000,75.500000,hi +12.100000,75.600000,hi +12.100000,75.700000,kn +12.200000,75.700000,kn +12.200000,75.600000,kn +12.300000,75.600000,ml +12.300000,75.700000,ml +12.400000,75.700000,hi +12.400000,75.600000,ml +12.400000,75.500000,ml +12.300000,75.500000,kn +12.300000,75.400000,hi +12.400000,75.400000,kn +12.300000,75.200000,hi +12.300000,75.300000,hi +12.200000,75.300000,hi +12.100000,75.300000,hi +12.100000,75.200000,hi +12.200000,75.200000,hi +12.200000,75.100000,hi +12.100000,75.100000,hi +12.100000,75.000000,hi +12.200000,75.000000,hi +12.300000,75.100000,hi +12.300000,75.000000,hi +12.400000,75.000000,hi +12.500000,75.000000,hi +12.500000,75.100000,hi +12.400000,75.100000,hi +12.400000,75.200000,hi +12.400000,75.300000,hi +12.500000,75.300000,kn +12.500000,75.200000,kn +12.600000,75.200000,kn +12.600000,75.300000,ml +12.700000,75.300000,hi +12.700000,75.200000,ml +12.700000,75.100000,ml +12.600000,75.100000,kn +12.600000,75.000000,kn +12.700000,75.000000,ml +12.800000,75.000000,hi +12.800000,75.100000,hi +12.900000,75.100000,hi +12.900000,75.000000,hi +13.000000,75.000000,hi +13.100000,75.100000,hi +13.000000,75.100000,hi +13.000000,75.200000,hi +13.100000,75.200000,hi +13.100000,75.300000,hi +13.000000,75.300000,hi +12.900000,75.300000,hi +12.900000,75.200000,hi +12.800000,75.200000,hi +12.800000,75.300000,hi +12.800000,75.400000,hi +12.800000,75.500000,hi +12.900000,75.500000,hi +12.900000,75.400000,hi +13.000000,75.400000,hi +13.100000,75.400000,hi +13.100000,75.500000,hi +13.000000,75.500000,hi +13.000000,75.600000,hi +13.100000,75.600000,hi +13.100000,75.700000,hi +13.000000,75.700000,hi +12.900000,75.700000,hi +12.900000,75.600000,hi +12.800000,75.600000,hi +12.800000,75.700000,hi +12.700000,75.700000,hi +12.600000,75.600000,hi +12.700000,75.600000,hi +12.700000,75.500000,hi +12.700000,75.400000,hi +12.600000,75.400000,hi +12.600000,75.500000,ml +12.500000,75.500000,ml +12.500000,75.400000,ml +12.500000,75.600000,hi +12.600000,75.700000,hi +12.500000,75.700000,hi +12.500000,75.800000,hi +12.600000,75.800000,hi +12.500000,75.900000,hi +12.500000,76.000000,hi +12.600000,76.000000,hi +12.600000,75.900000,hi +12.700000,75.900000,hi +12.700000,76.000000,hi +12.700000,75.800000,hi +12.800000,75.800000,hi +12.900000,75.800000,hi +13.000000,75.800000,hi +13.100000,75.800000,hi +13.000000,75.900000,hi +13.100000,75.900000,hi +13.100000,76.000000,hi +13.000000,76.000000,hi +12.900000,76.000000,hi +12.900000,75.900000,hi +12.800000,75.900000,hi +12.800000,76.000000,hi +12.900000,76.200000,hi +12.900000,76.100000,hi +13.000000,76.100000,hi +13.100000,76.100000,hi +13.100000,76.200000,hi +13.000000,76.200000,hi +13.000000,76.300000,hi +13.100000,76.300000,hi +13.100000,76.400000,hi +13.000000,76.400000,hi +12.900000,76.300000,hi +12.900000,76.400000,hi +12.800000,76.400000,hi +12.700000,76.400000,hi +12.700000,76.300000,hi +12.800000,76.300000,hi +12.800000,76.200000,hi +12.800000,76.100000,hi +12.700000,76.100000,hi +12.700000,76.200000,hi +12.600000,76.200000,hi +12.600000,76.100000,hi +12.500000,76.100000,hi +12.500000,76.200000,hi +12.500000,76.300000,hi +12.600000,76.300000,hi +12.600000,76.400000,hi +12.500000,76.400000,hi +12.400000,76.400000,hi +12.400000,76.300000,hi +12.300000,76.300000,hi +12.300000,76.400000,hi +12.200000,76.400000,hi +12.100000,76.400000,hi +12.100000,76.300000,hi +12.200000,76.300000,hi +12.200000,76.200000,hi +12.100000,76.200000,hi +12.100000,76.100000,hi +12.200000,76.100000,hi +12.300000,76.100000,hi +12.300000,76.200000,hi +12.400000,76.200000,hi +12.400000,76.100000,hi +12.400000,76.000000,kn +12.300000,76.000000,hi +12.300000,75.900000,ml +12.400000,75.900000,hi +12.400000,75.800000,hi +12.300000,75.800000,ml +12.200000,75.800000,ml +12.100000,75.800000,kn +12.100000,75.900000,ml +12.200000,75.900000,hi +12.200000,76.000000,hi +12.100000,76.000000,ml +12.000000,76.000000,ml +11.900000,75.900000,hi +12.000000,75.900000,kn +12.000000,75.800000,hi +11.900000,75.800000,hi +11.800000,75.800000,hi +11.800000,75.900000,hi +11.900000,76.000000,hi +11.800000,76.000000,hi +11.800000,76.100000,hi +11.800000,76.200000,hi +11.900000,76.200000,kn +11.900000,76.100000,hi +12.000000,76.100000,kn +12.000000,76.200000,kn +12.000000,76.300000,ml +12.000000,76.400000,hi +11.900000,76.400000,kn +11.900000,76.300000,kn +11.800000,76.300000,hi +11.800000,76.400000,kn +11.700000,76.400000,ta +11.600000,76.400000,ta +11.600000,76.300000,ta +11.700000,76.300000,hi +11.700000,76.200000,hi +11.700000,76.100000,hi +11.600000,76.100000,hi +11.600000,76.200000,hi +11.500000,76.200000,ar +11.500000,76.100000,ar +11.400000,76.100000,ar +11.400000,76.200000,ar +11.400000,76.300000,ar +11.500000,76.300000,ta +11.500000,76.400000,ta +11.400000,76.400000,ta +11.300000,76.400000,ta +11.300000,76.300000,ar +11.200000,76.400000,ar +11.100000,76.400000,ar +11.100000,76.300000,ar +11.200000,76.300000,ar +11.200000,76.200000,ar +11.100000,76.200000,ar +11.100000,76.100000,ar +11.200000,76.100000,ar +11.300000,76.200000,ar +11.300000,76.100000,ar +11.300000,76.000000,ar +11.300000,75.900000,ar +11.200000,75.900000,ar +11.200000,76.000000,ar +11.100000,76.000000,ar +11.100000,75.900000,ar +11.100000,75.800000,ar +11.200000,75.800000,hi +11.300000,75.800000,hi +11.400000,75.800000,hi +11.500000,75.800000,hi +11.400000,75.900000,ar +11.400000,76.000000,ar +11.500000,76.000000,ar +11.500000,75.900000,hi +11.600000,75.900000,ar +11.600000,76.000000,ar +11.700000,76.000000,ar +11.700000,75.900000,ar +11.600000,75.800000,ar +11.700000,75.800000,ar +11.700000,75.700000,ar +11.700000,75.600000,hi +11.600000,75.600000,hi +11.600000,75.700000,ar +11.500000,75.700000,hi +11.400000,75.700000,hi +11.400000,75.600000,hi +11.500000,75.600000,hi +11.500000,75.500000,hi +11.400000,75.500000,hi +11.400000,75.400000,hi +11.500000,75.400000,hi +11.600000,75.400000,hi +11.600000,75.500000,hi +11.600000,75.300000,hi +11.600000,75.200000,hi +11.600000,75.100000,hi +11.600000,75.000000,hi +11.500000,75.000000,hi +11.500000,75.100000,hi +11.400000,75.000000,hi +11.400000,75.100000,hi +11.400000,75.200000,hi +11.500000,75.200000,hi +11.500000,75.300000,hi +11.400000,75.300000,hi +11.300000,75.300000,hi +11.200000,75.300000,hi +11.200000,75.200000,hi +11.300000,75.200000,hi +11.300000,75.100000,hi +11.100000,75.200000,hi +11.100000,75.300000,hi +11.000000,75.300000,en +11.000000,75.400000,hi +11.000000,75.500000,ar +11.100000,75.500000,ml +11.100000,75.400000,hi +11.200000,75.400000,hi +11.300000,75.400000,ar +11.300000,75.500000,en +11.200000,75.500000,en +11.200000,75.600000,hi +11.300000,75.600000,hi +11.300000,75.700000,en +11.200000,75.700000,hi +11.100000,75.700000,hi +11.100000,75.600000,hi +11.000000,75.600000,hi +11.000000,75.700000,ar +10.900000,75.600000,ar +10.900000,75.700000,ar +10.800000,75.700000,ar +10.700000,75.700000,ar +10.700000,75.600000,ar +10.800000,75.600000,ar +10.800000,75.500000,ar +10.700000,75.500000,ar +10.700000,75.400000,hi +10.800000,75.400000,hi +10.900000,75.500000,ar +10.900000,75.400000,hi +10.900000,75.300000,en +10.600000,75.500000,ar +10.500000,75.500000,ar +10.500000,75.600000,ar +10.600000,75.600000,ar +10.600000,75.700000,ar +10.500000,75.700000,ar +10.400000,75.700000,hi +10.400000,75.600000,ar +10.300000,75.600000,ar +10.300000,75.700000,hi +10.400000,75.800000,hi +10.400000,76.000000,hi +10.400000,75.900000,hi +10.500000,75.900000,hi +10.500000,76.000000,hi +10.600000,76.000000,hi +10.600000,75.900000,hi +10.500000,75.800000,hi +10.600000,75.800000,ar +10.700000,75.800000,ar +10.800000,75.800000,ar +10.900000,75.800000,ar +11.000000,75.800000,ar +10.900000,75.900000,ar +11.000000,75.900000,ar +11.000000,76.000000,ar +10.900000,76.000000,ar +10.800000,76.000000,ar +10.800000,75.900000,ar +10.700000,75.900000,ar +10.700000,76.000000,hi +10.700000,76.100000,hi +10.700000,76.200000,hi +10.800000,76.200000,hi +10.800000,76.100000,ar +10.900000,76.100000,ar +11.000000,76.100000,ar +11.000000,76.200000,ar +10.900000,76.200000,ar +10.900000,76.300000,ta +11.000000,76.300000,ar +11.000000,76.400000,ar +10.900000,76.400000,hi +10.800000,76.400000,hi +10.800000,76.300000,ta +10.700000,76.300000,hi +10.700000,76.400000,hi +10.600000,76.400000,hi +10.500000,76.300000,hi +10.600000,76.300000,hi +10.600000,76.200000,hi +10.600000,76.100000,hi +10.500000,76.100000,hi +10.500000,76.200000,hi +10.400000,76.100000,hi +10.400000,76.200000,hi +10.400000,76.300000,hi +10.500000,76.400000,hi +10.400000,76.400000,hi +10.400000,76.500000,hi +10.400000,76.600000,hi +10.500000,76.600000,ta +10.500000,76.500000,hi +10.600000,76.500000,hi +10.600000,76.600000,hi +10.600000,76.700000,ta +10.600000,76.800000,ta +10.500000,76.800000,ml +10.500000,76.700000,ta +10.400000,76.700000,ta +10.400000,76.800000,ml +10.400000,76.900000,ml +10.500000,76.900000,ml +10.500000,77.000000,ml +10.400000,77.000000,ml +10.400000,77.100000,ml +10.500000,77.100000,hi +10.600000,77.100000,hi +10.700000,77.100000,hi +10.700000,77.000000,hi +10.600000,77.000000,ml +10.600000,76.900000,ml +10.700000,76.900000,ml +10.800000,76.900000,ml +10.800000,77.000000,hi +10.800000,77.100000,hi +10.900000,77.100000,hi +11.000000,77.100000,hi +11.000000,77.000000,hi +10.900000,77.000000,hi +10.900000,76.900000,hi +11.000000,76.900000,hi +11.000000,76.800000,ml +11.000000,76.700000,ml +10.900000,76.700000,ml +10.900000,76.800000,ml +10.800000,76.800000,ml +10.700000,76.800000,ta +10.700000,76.700000,ta +10.800000,76.700000,ta +10.800000,76.600000,hi +10.700000,76.600000,ta +10.700000,76.500000,hi +10.800000,76.500000,hi +10.900000,76.500000,hi +10.900000,76.600000,ta +11.000000,76.600000,ta +11.000000,76.500000,hi +11.100000,76.500000,ta +11.200000,76.500000,ta +11.200000,76.600000,ml +11.100000,76.600000,ta +11.100000,76.700000,ml +11.100000,76.800000,hi +11.200000,76.800000,hi +11.200000,76.700000,ml +11.300000,76.700000,hi +11.300000,76.800000,hi +11.400000,76.800000,hi +11.400000,76.700000,ml +11.300000,76.600000,ml +11.300000,76.500000,ta +11.400000,76.500000,ml +11.400000,76.600000,ml +11.500000,76.600000,ml +11.500000,76.500000,ml +11.600000,76.500000,ml +11.700000,76.500000,ta +11.700000,76.600000,ta +11.600000,76.600000,ml +11.600000,76.700000,hi +11.700000,76.700000,ta +11.700000,76.800000,ta +11.600000,76.800000,hi +11.500000,76.800000,hi +11.500000,76.700000,hi +11.500000,77.000000,hi +11.500000,76.900000,hi +11.600000,76.900000,hi +11.700000,76.900000,ta +11.700000,77.000000,kn +11.600000,77.000000,hi +11.600000,77.100000,hi +11.700000,77.100000,kn +11.500000,77.100000,hi +11.300000,77.100000,hi +11.400000,77.100000,hi +11.400000,77.000000,hi +11.400000,76.900000,hi +11.300000,76.900000,hi +11.300000,77.000000,hi +11.200000,77.000000,hi +11.200000,76.900000,hi +11.100000,76.900000,hi +11.100000,77.000000,hi +11.100000,77.100000,hi +11.200000,77.100000,hi +11.100000,77.200000,hi +11.200000,77.200000,hi +11.200000,77.300000,hi +11.100000,77.300000,hi +11.100000,77.400000,hi +11.100000,77.500000,hi +11.200000,77.500000,hi +11.200000,77.400000,hi +11.300000,77.400000,hi +11.300000,77.500000,hi +11.400000,77.500000,hi +11.400000,77.400000,hi +11.400000,77.300000,hi +11.300000,77.300000,hi +11.300000,77.200000,hi +11.400000,77.200000,hi +11.500000,77.200000,hi +11.500000,77.300000,hi +11.600000,77.300000,hi +11.600000,77.200000,hi +11.700000,77.200000,kn +11.700000,77.300000,hi +11.700000,77.400000,hi +11.700000,77.500000,hi +11.600000,77.500000,hi +11.600000,77.400000,hi +11.500000,77.400000,hi +11.500000,77.500000,hi +11.500000,77.600000,hi +11.500000,77.700000,hi +11.600000,77.700000,hi +11.600000,77.600000,hi +11.700000,77.600000,hi +11.800000,77.700000,hi +11.700000,77.700000,hi +11.700000,77.800000,hi +11.800000,77.800000,hi +11.800000,77.900000,hi +11.700000,77.900000,hi +11.600000,77.900000,hi +11.600000,77.800000,hi +11.500000,77.800000,hi +11.500000,77.900000,hi +11.400000,77.900000,hi +11.300000,77.900000,hi +11.300000,77.800000,hi +11.400000,77.800000,hi +11.400000,77.700000,hi +11.400000,77.600000,hi +11.300000,77.600000,hi +11.300000,77.700000,hi +11.200000,77.700000,hi +11.200000,77.600000,hi +11.100000,77.600000,hi +11.100000,77.700000,hi +11.100000,77.800000,hi +11.200000,77.800000,hi +11.200000,77.900000,hi +11.100000,77.900000,hi +11.000000,77.800000,hi +11.000000,77.900000,hi +10.900000,77.900000,hi +10.800000,77.900000,hi +10.800000,77.800000,hi +10.900000,77.800000,hi +10.900000,77.700000,hi +10.800000,77.700000,hi +10.800000,77.600000,hi +10.900000,77.600000,hi +11.000000,77.700000,hi +11.000000,77.600000,hi +11.000000,77.500000,hi +10.900000,77.400000,hi +11.000000,77.400000,hi +11.000000,77.300000,hi +11.000000,77.200000,hi +10.900000,77.200000,hi +10.900000,77.300000,hi +10.800000,77.200000,hi +10.800000,77.300000,hi +10.800000,77.400000,hi +10.900000,77.500000,hi +10.800000,77.500000,hi +10.700000,77.500000,hi +10.600000,77.500000,hi +10.600000,77.400000,hi +10.700000,77.400000,hi +10.700000,77.300000,hi +10.700000,77.200000,hi +10.600000,77.200000,hi +10.600000,77.300000,hi +10.500000,77.300000,hi +10.500000,77.200000,hi +10.400000,77.200000,ml +10.400000,77.300000,ml +10.400000,77.400000,hi +10.500000,77.400000,hi +10.500000,77.500000,hi +10.400000,77.500000,hi +10.400000,77.600000,hi +10.400000,77.700000,hi +10.500000,77.700000,hi +10.500000,77.600000,hi +10.600000,77.600000,hi +10.700000,77.600000,hi +10.700000,77.700000,hi +10.600000,77.700000,hi +10.600000,77.800000,hi +10.700000,77.800000,hi +10.700000,77.900000,hi +10.600000,77.900000,hi +10.500000,77.900000,hi +10.500000,77.800000,hi +10.400000,77.800000,hi +10.400000,77.900000,hi +10.400000,78.000000,hi +10.500000,78.000000,hi +10.500000,78.100000,hi +10.400000,78.100000,hi +10.500000,78.200000,hi +10.600000,78.200000,hi +10.700000,78.200000,hi +10.700000,78.100000,hi +10.600000,78.100000,hi +10.600000,78.000000,hi +10.700000,78.000000,hi +10.800000,78.000000,hi +10.800000,78.100000,hi +10.900000,78.100000,hi +10.900000,78.000000,hi +11.000000,78.000000,hi +11.100000,78.000000,hi +11.100000,78.100000,hi +11.000000,78.100000,hi +11.000000,78.200000,hi +11.100000,78.200000,hi +10.900000,78.200000,hi +10.800000,78.200000,hi +10.800000,78.300000,hi +10.800000,78.400000,hi +10.900000,78.400000,hi +10.900000,78.300000,hi +11.000000,78.300000,hi +11.100000,78.300000,hi +11.100000,78.400000,hi +11.000000,78.400000,hi +11.000000,78.500000,hi +11.100000,78.500000,hi +11.100000,78.600000,hi +11.000000,78.600000,hi +10.900000,78.600000,hi +10.900000,78.500000,hi +10.800000,78.500000,hi +10.800000,78.600000,hi +10.700000,78.600000,hi +10.600000,78.600000,hi +10.600000,78.500000,hi +10.700000,78.500000,hi +10.700000,78.400000,hi +10.700000,78.300000,hi +10.600000,78.300000,hi +10.600000,78.400000,hi +10.500000,78.400000,hi +10.500000,78.300000,hi +10.500000,78.500000,hi +10.500000,78.600000,hi +10.500000,78.700000,hi +10.500000,78.800000,hi +10.600000,78.700000,hi +10.700000,78.700000,hi +10.700000,78.800000,hi +10.600000,78.800000,hi +10.700000,78.900000,hi +10.700000,79.000000,hi +10.600000,79.000000,hi +10.600000,78.900000,hi +10.500000,78.900000,hi +10.500000,79.000000,hi +10.500000,79.100000,hi +10.600000,79.100000,hi +10.500000,79.200000,hi +10.500000,79.300000,hi +10.600000,79.300000,hi +10.600000,79.200000,hi +10.700000,79.200000,hi +10.700000,79.300000,hi +10.700000,79.100000,hi +10.800000,79.100000,hi +10.900000,79.100000,hi +10.800000,79.200000,hi +10.800000,79.300000,hi +10.900000,79.300000,hi +10.900000,79.200000,hi +11.000000,79.200000,hi +11.000000,79.300000,hi +11.100000,79.300000,hi +11.100000,79.200000,hi +11.000000,79.100000,hi +11.100000,79.100000,hi +11.100000,79.000000,hi +11.100000,78.900000,hi +11.000000,78.900000,hi +11.000000,79.000000,hi +10.900000,79.000000,hi +10.800000,79.000000,hi +10.800000,78.900000,hi +10.900000,78.900000,hi +10.900000,78.800000,hi +10.800000,78.800000,hi +10.800000,78.700000,hi +10.900000,78.700000,hi +11.000000,78.700000,hi +11.000000,78.800000,hi +11.100000,78.800000,hi +11.100000,78.700000,id +11.200000,78.700000,hi +11.200000,78.800000,hi +11.300000,78.800000,hi +11.300000,78.700000,hi +11.400000,78.700000,hi +11.400000,78.800000,hi +11.400000,78.900000,hi +11.400000,79.000000,hi +11.300000,79.000000,hi +11.300000,78.900000,hi +11.200000,78.900000,hi +11.200000,79.000000,hi +11.200000,79.100000,hi +11.300000,79.100000,hi +11.200000,79.200000,hi +11.200000,79.300000,hi +11.300000,79.300000,hi +11.300000,79.200000,hi +11.400000,79.200000,hi +11.400000,79.300000,hi +11.500000,79.300000,hi +11.500000,79.200000,hi +11.400000,79.100000,hi +11.500000,79.100000,hi +11.600000,79.100000,hi +11.600000,79.300000,hi +11.600000,79.200000,hi +11.700000,79.200000,hi +11.700000,79.300000,hi +11.800000,79.300000,hi +11.800000,79.200000,hi +11.700000,79.100000,hi +11.800000,79.100000,hi +11.800000,79.000000,hi +11.800000,78.900000,hi +11.700000,78.900000,hi +11.700000,79.000000,hi +11.600000,79.000000,hi +11.500000,79.000000,hi +11.500000,78.900000,hi +11.600000,78.900000,hi +11.600000,78.800000,hi +11.500000,78.800000,hi +11.500000,78.700000,hi +11.600000,78.700000,hi +11.700000,78.700000,hi +11.700000,78.800000,hi +11.800000,78.800000,hi +11.800000,78.700000,hi +11.800000,78.600000,hi +11.700000,78.600000,hi +11.700000,78.500000,hi +11.800000,78.500000,hi +11.800000,78.400000,hi +11.800000,78.300000,hi +11.700000,78.300000,hi +11.700000,78.400000,hi +11.600000,78.400000,hi +11.600000,78.300000,hi +11.500000,78.300000,hi +11.500000,78.400000,hi +11.500000,78.500000,hi +11.600000,78.500000,hi +11.600000,78.600000,hi +11.500000,78.600000,hi +11.400000,78.600000,hi +11.400000,78.500000,hi +11.300000,78.500000,hi +11.300000,78.600000,hi +11.200000,78.600000,hi +11.200000,78.500000,hi +11.200000,78.400000,hi +11.200000,78.300000,hi +11.300000,78.300000,hi +11.300000,78.400000,hi +11.400000,78.400000,hi +11.400000,78.300000,hi +11.400000,78.200000,hi +11.300000,78.200000,hi +11.200000,78.200000,hi +11.200000,78.100000,hi +11.200000,78.000000,hi +11.300000,78.000000,hi +11.300000,78.100000,hi +11.400000,78.100000,hi +11.400000,78.000000,hi +11.500000,78.000000,hi +11.600000,78.000000,hi +11.600000,78.100000,hi +11.500000,78.100000,hi +11.500000,78.200000,hi +11.600000,78.200000,hi +11.700000,78.200000,hi +11.800000,78.200000,hi +11.800000,78.100000,hi +11.700000,78.100000,hi +11.700000,78.000000,hi +11.800000,78.000000,hi +11.900000,78.000000,hi +11.900000,78.100000,hi +11.900000,78.200000,hi +12.000000,78.200000,hi +12.100000,78.200000,hi +12.100000,78.100000,hi +12.000000,78.100000,hi +12.000000,78.000000,hi +12.100000,78.000000,hi +12.200000,78.000000,hi +12.200000,78.100000,hi +12.300000,78.100000,hi +12.300000,78.000000,hi +12.400000,78.000000,hi +12.500000,78.000000,hi +12.500000,78.100000,hi +12.400000,78.100000,hi +12.400000,78.200000,hi +12.500000,78.200000,hi +12.300000,78.200000,hi +12.200000,78.200000,hi +12.200000,78.300000,hi +12.200000,78.400000,hi +12.300000,78.400000,hi +12.300000,78.300000,hi +12.400000,78.300000,hi +12.500000,78.300000,hi +12.500000,78.400000,hi +12.400000,78.400000,hi +12.400000,78.500000,hi +12.500000,78.500000,hi +12.500000,78.600000,hi +12.400000,78.600000,hi +12.300000,78.600000,hi +12.300000,78.500000,hi +12.200000,78.500000,hi +12.200000,78.600000,hi +12.100000,78.600000,hi +12.100000,78.500000,hi +12.100000,78.300000,hi +12.100000,78.400000,hi +12.000000,78.400000,az +12.000000,78.300000,hi +11.900000,78.300000,hi +11.900000,78.400000,hi +11.900000,78.500000,hi +12.000000,78.500000,az +12.000000,78.600000,az +11.900000,78.600000,az +11.900000,78.700000,hi +11.900000,78.800000,hi +12.000000,78.800000,ru +12.000000,78.700000,hi +12.100000,78.700000,hi +12.200000,78.700000,hi +12.200000,78.800000,ru +12.100000,78.800000,ru +12.100000,78.900000,de +12.200000,78.900000,de +12.200000,79.000000,ru +12.100000,79.000000,de +12.000000,79.000000,hi +12.000000,78.900000,de +11.900000,78.900000,hi +11.900000,79.000000,hi +11.900000,79.100000,hi +12.000000,79.100000,hi +11.900000,79.200000,hi +11.900000,79.300000,hi +12.000000,79.300000,hi +12.000000,79.200000,hi +12.100000,79.200000,hi +12.100000,79.300000,hi +12.200000,79.300000,hi +12.200000,79.200000,hi +12.100000,79.100000,hi +12.200000,79.100000,hi +12.300000,79.100000,hi +12.400000,79.100000,hi +12.300000,79.200000,hi +12.300000,79.300000,hi +12.400000,79.300000,hi +12.400000,79.200000,hi +12.500000,79.300000,hi +12.500000,79.200000,hi +12.500000,79.100000,hi +12.500000,79.000000,hi +12.500000,78.900000,hi +12.400000,78.900000,hi +12.400000,79.000000,hi +12.300000,79.000000,hi +12.300000,78.900000,hi +12.300000,78.800000,hi +12.300000,78.700000,hi +12.400000,78.700000,hi +12.400000,78.800000,hi +12.500000,78.800000,hi +12.500000,78.700000,hi +12.600000,78.700000,hi +12.600000,78.800000,hi +12.700000,78.800000,hi +12.700000,78.700000,hi +12.800000,78.700000,hi +12.900000,78.700000,hi +12.900000,78.800000,hi +12.800000,78.800000,hi +12.800000,78.900000,hi +12.900000,78.900000,hi +12.900000,79.000000,hi +12.800000,79.000000,hi +12.700000,79.000000,hi +12.700000,78.900000,hi +12.600000,78.900000,hi +12.600000,79.000000,hi +12.600000,79.100000,hi +12.700000,79.100000,hi +12.600000,79.200000,hi +12.600000,79.300000,hi +12.700000,79.300000,hi +12.700000,79.200000,hi +12.800000,79.200000,hi +12.800000,79.300000,hi +12.900000,79.300000,hi +12.900000,79.200000,hi +12.800000,79.100000,hi +12.900000,79.100000,hi +13.000000,79.100000,hi +13.100000,79.100000,te +13.000000,79.200000,hi +13.000000,79.300000,hi +13.100000,79.300000,hi +13.100000,79.200000,hi +13.200000,79.200000,te +13.200000,79.300000,te +13.300000,79.300000,ta +13.300000,79.200000,hi +13.200000,79.100000,hi +13.300000,79.100000,hi +13.300000,79.000000,hi +13.200000,78.900000,ta +13.200000,79.000000,ta +13.100000,79.000000,te +13.000000,79.000000,hi +13.000000,78.900000,hi +13.100000,78.900000,te +13.100000,78.800000,te +13.000000,78.800000,te +13.000000,78.700000,te +13.100000,78.700000,ta +13.200000,78.800000,hi +13.200000,78.700000,hi +13.200000,78.600000,hi +13.100000,78.500000,te +13.200000,78.500000,te +13.200000,78.400000,hi +13.200000,78.300000,hi +13.100000,78.300000,hi +13.100000,78.400000,hi +13.000000,78.300000,hi +13.000000,78.400000,hi +13.000000,78.500000,hi +13.100000,78.600000,hi +13.000000,78.600000,te +12.900000,78.600000,te +12.900000,78.500000,ta +12.800000,78.500000,te +12.800000,78.600000,hi +12.700000,78.600000,hi +12.600000,78.600000,hi +12.600000,78.500000,hi +12.700000,78.500000,te +12.700000,78.400000,te +12.600000,78.400000,hi +12.600000,78.300000,hi +12.700000,78.300000,te +12.800000,78.300000,ta +12.800000,78.400000,ta +12.900000,78.400000,kn +12.900000,78.300000,ta +12.900000,78.200000,hi +12.800000,78.200000,ta +12.600000,78.200000,hi +12.700000,78.200000,te +12.700000,78.100000,hi +12.600000,78.100000,hi +12.600000,78.000000,hi +12.700000,78.000000,hi +12.800000,78.000000,hi +12.800000,78.100000,kn +12.900000,78.100000,hi +12.900000,78.000000,hi +13.000000,78.000000,hi +13.000000,78.100000,hi +13.000000,78.200000,hi +13.100000,78.200000,hi +13.200000,78.200000,hi +13.200000,78.100000,hi +13.100000,78.100000,hi +13.100000,78.000000,kn +13.200000,78.000000,hi +13.200000,77.900000,kn +13.200000,77.800000,kn +13.100000,77.800000,kn +13.100000,77.900000,kn +13.000000,77.900000,kn +12.900000,77.900000,kn +12.900000,77.800000,kn +13.000000,77.800000,kn +13.000000,77.700000,kn +12.900000,77.700000,kn +12.900000,77.600000,kn +13.000000,77.600000,fa +13.100000,77.600000,kn +13.100000,77.700000,kn +13.200000,77.700000,kn +13.200000,77.600000,kn +13.200000,77.500000,kn +13.100000,77.500000,kn +13.100000,77.400000,hi +13.200000,77.400000,hi +13.200000,77.300000,hi +13.200000,77.200000,hi +13.100000,77.200000,hi +13.100000,77.300000,hi +13.000000,77.300000,hi +13.000000,77.200000,hi +12.900000,77.200000,hi +12.900000,77.300000,hi +12.900000,77.400000,hi +13.000000,77.400000,hi +13.000000,77.500000,hi +12.900000,77.500000,hi +12.800000,77.500000,kn +12.700000,77.500000,kn +12.700000,77.400000,hi +12.800000,77.400000,hi +12.800000,77.300000,hi +12.800000,77.200000,hi +12.700000,77.200000,hi +12.700000,77.300000,hi +12.600000,77.300000,hi +12.600000,77.200000,hi +12.500000,77.200000,hi +12.600000,77.400000,hi +12.600000,77.500000,hi +12.600000,77.600000,ta +12.600000,77.700000,hi +12.700000,77.700000,kn +12.700000,77.600000,kn +12.800000,77.600000,kn +12.800000,77.700000,kn +12.800000,77.800000,kn +12.800000,77.900000,ta +12.700000,77.900000,hi +12.700000,77.800000,hi +12.600000,77.800000,hi +12.600000,77.900000,hi +12.500000,77.900000,hi +12.400000,77.900000,hi +12.400000,77.800000,hi +12.500000,77.800000,hi +12.500000,77.700000,hi +12.500000,77.600000,kn +12.400000,77.600000,ta +12.400000,77.700000,kn +12.300000,77.700000,kn +12.300000,77.600000,ta +12.200000,77.600000,ta +12.200000,77.700000,kn +12.200000,77.800000,kn +12.300000,77.800000,hi +12.300000,77.900000,hi +12.200000,77.900000,hi +12.100000,77.900000,hi +12.100000,77.800000,kn +12.000000,77.800000,kn +12.000000,77.900000,hi +11.900000,77.900000,hi +11.900000,77.800000,hi +11.900000,77.700000,kn +11.800000,77.600000,kn +11.900000,77.600000,kn +12.000000,77.600000,ta +12.000000,77.700000,kn +12.100000,77.700000,kn +12.100000,77.600000,ta +12.100000,77.500000,ta +12.100000,77.400000,hi +12.000000,77.400000,hi +12.000000,77.500000,ta +11.900000,77.500000,ta +11.800000,77.500000,kn +11.800000,77.400000,kn +11.900000,77.400000,hi +11.900000,77.300000,hi +11.800000,77.300000,ta +11.800000,77.200000,ta +11.900000,77.200000,ta +12.000000,77.200000,hi +12.000000,77.300000,hi +12.100000,77.300000,hi +12.100000,77.200000,hi +12.200000,77.200000,hi +12.300000,77.200000,hi +12.300000,77.300000,hi +12.200000,77.300000,hi +12.200000,77.400000,hi +12.200000,77.500000,ta +12.300000,77.500000,hi +12.300000,77.400000,hi +12.400000,77.400000,hi +12.400000,77.500000,hi +12.500000,77.500000,hi +12.500000,77.400000,hi +12.500000,77.300000,hi +12.400000,77.300000,hi +12.400000,77.200000,hi +12.400000,77.100000,hi +12.400000,77.000000,hi +12.400000,76.900000,hi +12.300000,77.000000,hi +12.300000,76.900000,hi +12.200000,76.900000,hi +12.200000,77.000000,hi +12.200000,77.100000,hi +12.300000,77.100000,hi +12.100000,77.100000,hi +12.000000,77.100000,hi +11.800000,77.100000,ta +11.900000,77.100000,hi +11.900000,77.000000,hi +11.800000,77.000000,kn +11.800000,76.900000,ta +11.900000,76.900000,hi +12.000000,76.900000,hi +12.000000,77.000000,hi +12.100000,77.000000,hi +12.100000,76.900000,hi +12.100000,76.800000,hi +12.100000,76.700000,hi +12.000000,76.700000,hi +12.000000,76.800000,hi +11.900000,76.800000,hi +11.800000,76.800000,hi +11.800000,76.700000,hi +11.900000,76.700000,hi +11.900000,76.600000,hi +11.800000,76.600000,hi +11.800000,76.500000,kn +11.900000,76.500000,ml +12.000000,76.500000,hi +12.000000,76.600000,hi +12.100000,76.600000,hi +12.100000,76.500000,hi +12.200000,76.500000,hi +12.200000,76.600000,hi +12.200000,76.700000,hi +12.200000,76.800000,hi +12.300000,76.700000,hi +12.300000,76.800000,hi +12.400000,76.800000,hi +12.400000,76.700000,hi +12.400000,76.600000,hi +12.300000,76.600000,hi +12.300000,76.500000,hi +12.400000,76.500000,hi +12.500000,76.500000,hi +12.500000,76.600000,hi +12.600000,76.600000,hi +12.600000,76.500000,hi +12.700000,76.500000,hi +12.800000,76.500000,hi +12.800000,76.600000,hi +12.700000,76.600000,hi +12.700000,76.700000,hi +12.800000,76.700000,hi +12.800000,76.800000,hi +12.700000,76.800000,hi +12.600000,76.800000,hi +12.600000,76.700000,hi +12.500000,76.700000,hi +12.500000,76.800000,hi +12.500000,76.900000,hi +12.600000,76.900000,hi +12.600000,77.000000,hi +12.500000,77.000000,hi +12.500000,77.100000,hi +12.600000,77.100000,hi +12.700000,77.100000,hi +12.800000,77.100000,hi +12.800000,77.000000,hi +12.700000,77.000000,hi +12.700000,76.900000,hi +12.800000,76.900000,hi +12.900000,76.900000,hi +13.000000,76.900000,hi +13.000000,77.000000,hi +12.900000,77.000000,hi +12.900000,77.100000,hi +13.000000,77.100000,hi +13.100000,77.100000,hi +13.200000,77.100000,hi +13.200000,77.000000,hi +13.100000,77.000000,hi +13.100000,76.900000,hi +13.200000,76.900000,hi +13.100000,76.700000,hi +13.100000,76.800000,hi +13.000000,76.800000,hi +12.900000,76.800000,hi +12.900000,76.700000,hi +13.000000,76.700000,hi +13.000000,76.600000,hi +12.900000,76.600000,hi +12.900000,76.500000,hi +13.000000,76.500000,hi +13.100000,76.600000,hi +13.100000,76.500000,hi +13.200000,76.500000,hi +13.200000,76.600000,hi +13.300000,76.600000,hi +13.300000,76.500000,hi +13.400000,76.500000,hi +13.500000,76.500000,hi +13.500000,76.600000,hi +13.400000,76.600000,hi +13.400000,76.700000,hi +13.500000,76.700000,hi +13.500000,76.800000,hi +13.400000,76.800000,hi +13.300000,76.800000,hi +13.300000,76.700000,hi +13.200000,76.700000,hi +13.200000,76.800000,hi +13.300000,76.900000,hi +13.300000,77.000000,hi +13.300000,77.100000,hi +13.400000,77.100000,hi +13.500000,77.100000,hi +13.500000,77.000000,hi +13.400000,77.000000,hi +13.400000,76.900000,hi +13.500000,76.900000,hi +13.600000,76.900000,hi +13.700000,76.900000,hi +13.700000,77.000000,hi +13.600000,77.000000,hi +13.600000,77.100000,hi +13.700000,77.100000,hi +13.800000,77.100000,te +13.900000,77.100000,te +13.900000,77.000000,te +13.800000,77.000000,te +13.800000,76.900000,hi +13.900000,76.900000,te +13.900000,76.800000,hi +13.900000,76.700000,hi +13.800000,76.700000,hi +13.800000,76.800000,hi +13.700000,76.800000,hi +13.600000,76.800000,hi +13.600000,76.700000,hi +13.700000,76.700000,hi +13.700000,76.600000,hi +13.600000,76.600000,hi +13.600000,76.500000,hi +13.700000,76.500000,hi +13.800000,76.500000,hi +13.800000,76.600000,hi +13.900000,76.600000,hi +13.900000,76.500000,hi +14.000000,76.500000,hi +14.000000,76.600000,hi +14.000000,76.700000,hi +14.000000,76.800000,hi +14.100000,76.800000,hi +14.100000,76.700000,hi +14.200000,76.800000,hi +14.200000,76.700000,hi +14.200000,76.600000,hi +14.100000,76.600000,hi +14.100000,76.500000,hi +14.200000,76.500000,hi +14.300000,76.500000,hi +14.300000,76.600000,hi +14.400000,76.600000,hi +14.400000,76.500000,hi +14.500000,76.500000,hi +14.600000,76.500000,hi +14.600000,76.600000,hi +14.500000,76.600000,hi +14.500000,76.700000,te +14.600000,76.700000,te +14.600000,76.800000,kn +14.500000,76.800000,te +14.400000,76.800000,te +14.400000,76.700000,hi +14.300000,76.700000,hi +14.300000,76.800000,hi +14.300000,76.900000,te +14.300000,77.000000,kn +14.400000,77.000000,kn +14.400000,76.900000,kn +14.500000,76.900000,kn +14.600000,76.900000,kn +14.600000,77.000000,hi +14.500000,77.000000,hi +14.500000,77.100000,hi +14.600000,77.100000,hi +14.400000,77.100000,kn +14.200000,77.100000,te +14.300000,77.100000,kn +14.200000,76.900000,te +14.200000,77.000000,te +14.100000,77.000000,te +14.100000,76.900000,te +14.000000,76.900000,te +14.000000,77.000000,te +14.000000,77.100000,kn +14.100000,77.100000,te +14.000000,77.200000,te +14.100000,77.200000,te +14.100000,77.300000,te +14.000000,77.300000,kn +14.000000,77.400000,kn +14.000000,77.500000,hi +14.100000,77.500000,hi +14.100000,77.400000,kn +14.200000,77.400000,hi +14.200000,77.500000,hi +14.300000,77.500000,hi +14.300000,77.400000,kn +14.300000,77.300000,kn +14.200000,77.300000,te +14.200000,77.200000,te +14.300000,77.200000,te +14.400000,77.200000,kn +14.400000,77.300000,kn +14.500000,77.200000,hi +14.600000,77.200000,hi +14.600000,77.300000,hi +14.500000,77.300000,hi +14.600000,77.400000,hi +14.600000,77.500000,hi +14.500000,77.500000,hi +14.500000,77.400000,hi +14.400000,77.400000,hi +14.400000,77.500000,hi +14.400000,77.600000,hi +14.400000,77.700000,hi +14.500000,77.700000,hi +14.500000,77.600000,hi +14.600000,77.600000,hi +14.700000,77.700000,hi +14.600000,77.700000,hi +14.600000,77.800000,hi +14.700000,77.800000,hi +14.700000,77.900000,hi +14.600000,77.900000,hi +14.500000,77.900000,hi +14.500000,77.800000,hi +14.400000,77.800000,hi +14.400000,77.900000,hi +14.300000,77.900000,hi +14.200000,77.900000,ru +14.200000,77.800000,te +14.300000,77.800000,hi +14.300000,77.700000,hi +14.300000,77.600000,hi +14.200000,77.600000,hi +14.200000,77.700000,hi +14.100000,77.700000,hi +14.100000,77.600000,hi +14.000000,77.600000,hi +14.000000,77.700000,hi +14.000000,77.800000,hi +14.100000,77.800000,hi +14.100000,77.900000,ru +14.000000,77.900000,hi +13.900000,77.900000,kn +13.900000,77.800000,kn +13.800000,77.800000,te +13.800000,77.900000,te +13.700000,77.900000,te +13.700000,77.800000,hi +13.700000,77.700000,hi +13.700000,77.600000,te +13.800000,77.600000,hi +13.800000,77.700000,hi +13.900000,77.700000,hi +13.900000,77.600000,hi +13.900000,77.500000,hi +13.800000,77.500000,hi +13.800000,77.400000,kn +13.900000,77.400000,hi +13.900000,77.300000,hi +13.900000,77.200000,te +13.800000,77.200000,te +13.800000,77.300000,te +13.700000,77.300000,te +13.700000,77.200000,hi +13.600000,77.200000,hi +13.600000,77.300000,hi +13.600000,77.400000,hi +13.700000,77.400000,hi +13.700000,77.500000,te +13.600000,77.500000,hi +13.500000,77.500000,hi +13.500000,77.400000,hi +13.500000,77.300000,hi +13.500000,77.200000,hi +13.400000,77.300000,hi +13.400000,77.200000,hi +13.300000,77.200000,hi +13.300000,77.300000,hi +13.300000,77.400000,hi +13.400000,77.400000,hi +13.400000,77.500000,hi +13.300000,77.500000,hi +13.300000,77.600000,hi +13.300000,77.700000,hi +13.400000,77.700000,hi +13.400000,77.600000,hi +13.500000,77.600000,hi +13.600000,77.600000,hi +13.600000,77.700000,hi +13.500000,77.700000,hi +13.500000,77.800000,hi +13.600000,77.800000,hi +13.600000,77.900000,hi +13.500000,77.900000,hi +13.400000,77.900000,hi +13.400000,77.800000,hi +13.300000,77.800000,hi +13.300000,77.900000,hi +13.300000,78.000000,hi +13.400000,78.000000,hi +13.400000,78.100000,hi +13.300000,78.100000,hi +13.300000,78.200000,hi +13.400000,78.200000,hi +13.500000,78.200000,te +13.600000,78.200000,te +13.600000,78.100000,te +13.500000,78.100000,hi +13.500000,78.000000,hi +13.600000,78.000000,hi +13.700000,78.000000,te +13.700000,78.100000,te +13.800000,78.100000,kn +13.800000,78.000000,te +13.900000,78.000000,kn +13.900000,78.100000,hi +13.900000,78.200000,hi +13.800000,78.200000,hi +13.700000,78.200000,kn +13.700000,78.300000,hi +13.700000,78.400000,hi +13.800000,78.400000,hi +13.800000,78.300000,hi +13.900000,78.300000,hi +14.000000,78.300000,hi +14.000000,78.400000,hi +13.900000,78.400000,hi +13.900000,78.500000,hi +14.000000,78.500000,hi +14.000000,78.600000,hi +13.900000,78.600000,hi +13.800000,78.600000,hi +13.800000,78.500000,hi +13.700000,78.500000,hi +13.700000,78.600000,hi +13.600000,78.600000,hi +13.500000,78.600000,hi +13.500000,78.500000,hi +13.600000,78.500000,hi +13.600000,78.400000,hi +13.600000,78.300000,hi +13.500000,78.300000,kn +13.500000,78.400000,hi +13.400000,78.400000,kn +13.400000,78.300000,te +13.300000,78.300000,hi +13.300000,78.400000,te +13.300000,78.500000,kn +13.400000,78.500000,hi +13.400000,78.600000,hi +13.300000,78.600000,hi +13.300000,78.700000,hi +13.300000,78.800000,hi +13.400000,78.800000,hi +13.400000,78.700000,hi +13.500000,78.700000,hi +13.600000,78.700000,hi +13.600000,78.800000,hi +13.500000,78.800000,hi +13.500000,78.900000,hi +13.600000,78.900000,hi +13.600000,79.000000,hi +13.500000,79.000000,hi +13.400000,79.000000,hi +13.400000,78.900000,hi +13.300000,78.900000,hi +13.400000,79.100000,hi +13.400000,79.200000,hi +13.400000,79.300000,hi +13.500000,79.200000,hi +13.500000,79.300000,hi +13.600000,79.300000,hi +13.600000,79.200000,hi +13.500000,79.100000,hi +13.600000,79.100000,hi +13.700000,79.100000,hi +13.800000,79.100000,hi +13.700000,79.200000,hi +13.700000,79.300000,hi +13.800000,79.300000,hi +13.800000,79.200000,hi +13.900000,79.200000,hi +13.900000,79.300000,hi +14.000000,79.300000,hi +14.000000,79.200000,hi +13.900000,79.100000,hi +14.000000,79.100000,hi +14.000000,79.000000,hi +14.000000,78.900000,hi +13.900000,78.900000,hi +13.900000,79.000000,hi +13.800000,79.000000,hi +13.700000,79.000000,hi +13.700000,78.900000,hi +13.800000,78.900000,hi +13.800000,78.800000,hi +13.700000,78.800000,hi +13.700000,78.700000,hi +13.800000,78.700000,hi +13.900000,78.700000,hi +13.900000,78.800000,hi +14.000000,78.800000,hi +14.000000,78.700000,hi +14.100000,78.700000,hi +14.100000,78.800000,hi +14.200000,78.800000,hi +14.200000,78.700000,hi +14.300000,78.700000,hi +14.300000,78.800000,hi +14.300000,78.900000,hi +14.400000,79.000000,hi +14.300000,79.000000,hi +14.200000,79.000000,hi +14.200000,78.900000,hi +14.100000,78.900000,hi +14.100000,79.000000,hi +14.100000,79.100000,hi +14.200000,79.100000,hi +14.100000,79.200000,hi +14.100000,79.300000,hi +14.200000,79.300000,hi +14.200000,79.200000,hi +14.300000,79.200000,hi +14.300000,79.300000,hi +14.400000,79.300000,hi +14.400000,79.200000,hi +14.300000,79.100000,hi +14.400000,79.100000,hi +14.500000,79.100000,hi +14.500000,79.200000,hi +14.500000,79.300000,hi +14.600000,79.200000,hi +14.600000,79.300000,hi +14.700000,79.300000,hi +14.700000,79.200000,hi +14.600000,79.100000,hi +14.700000,79.100000,hi +14.700000,79.000000,hi +14.700000,78.900000,hi +14.600000,78.900000,hi +14.600000,79.000000,hi +14.500000,79.000000,hi +14.400000,78.900000,hi +14.500000,78.900000,hi +14.500000,78.800000,hi +14.400000,78.800000,hi +14.400000,78.700000,hi +14.500000,78.700000,hi +14.600000,78.700000,hi +14.600000,78.800000,hi +14.700000,78.800000,hi +14.700000,78.700000,hi +14.700000,78.600000,hi +14.600000,78.600000,hi +14.600000,78.500000,hi +14.700000,78.500000,hi +14.700000,78.400000,hi +14.700000,78.300000,hi +14.600000,78.300000,hi +14.600000,78.400000,hi +14.500000,78.400000,hi +14.500000,78.300000,hi +14.400000,78.300000,hi +14.400000,78.400000,hi +14.400000,78.500000,hi +14.500000,78.500000,hi +14.500000,78.600000,hi +14.400000,78.600000,hi +14.300000,78.600000,hi +14.300000,78.500000,hi +14.200000,78.500000,hi +14.200000,78.600000,hi +14.100000,78.600000,hi +14.100000,78.500000,hi +14.100000,78.400000,hi +14.100000,78.300000,hi +14.200000,78.300000,hi +14.200000,78.400000,hi +14.300000,78.400000,hi +14.300000,78.300000,hi +14.300000,78.200000,hi +14.200000,78.200000,hi +14.000000,78.200000,hi +14.100000,78.200000,hi +14.100000,78.100000,hi +14.000000,78.100000,hi +14.000000,78.000000,hi +14.100000,78.000000,hi +14.200000,78.000000,hi +14.200000,78.100000,hi +14.300000,78.100000,hi +14.300000,78.000000,hi +14.400000,78.000000,hi +14.500000,78.000000,hi +14.500000,78.100000,hi +14.400000,78.100000,hi +14.400000,78.200000,hi +14.500000,78.200000,hi +14.600000,78.200000,hi +14.700000,78.200000,hi +14.700000,78.100000,hi +14.600000,78.100000,hi +14.600000,78.000000,hi +14.700000,78.000000,hi +14.800000,78.000000,hi +14.900000,78.000000,hi +14.900000,78.100000,hi +14.800000,78.100000,hi +14.800000,78.200000,hi +14.900000,78.200000,hi +15.000000,78.200000,hi +15.000000,78.100000,hi +15.000000,78.000000,hi +15.100000,78.000000,hi +15.100000,78.100000,hi +15.200000,78.100000,hi +15.200000,78.000000,hi +15.300000,78.000000,hi +15.400000,78.000000,hi +15.400000,78.100000,hi +15.300000,78.100000,hi +15.300000,78.200000,hi +15.400000,78.200000,hi +15.200000,78.200000,hi +15.100000,78.200000,hi +15.200000,78.400000,hi +15.200000,78.300000,hi +15.300000,78.300000,hi +15.400000,78.300000,hi +15.400000,78.400000,hi +15.300000,78.400000,hi +15.300000,78.500000,hi +15.400000,78.500000,hi +15.400000,78.600000,hi +15.300000,78.600000,hi +15.200000,78.500000,hi +15.200000,78.600000,hi +15.100000,78.600000,hi +15.000000,78.600000,hi +15.000000,78.500000,hi +15.100000,78.500000,hi +15.100000,78.400000,hi +15.100000,78.300000,hi +15.000000,78.300000,hi +15.000000,78.400000,hi +14.900000,78.400000,hi +14.900000,78.300000,hi +14.800000,78.300000,hi +14.800000,78.400000,hi +14.800000,78.500000,hi +14.900000,78.500000,hi +14.900000,78.600000,hi +14.800000,78.600000,hi +14.800000,78.700000,hi +14.800000,78.800000,hi +14.900000,78.800000,hi +14.900000,78.700000,hi +15.000000,78.700000,hi +15.100000,78.700000,ta +15.100000,78.800000,hi +15.000000,78.800000,hi +15.000000,78.900000,hi +15.100000,78.900000,hi +15.100000,79.000000,hi +15.000000,79.000000,hi +14.900000,79.000000,hi +14.900000,78.900000,hi +14.800000,78.900000,hi +14.800000,79.000000,hi +14.800000,79.100000,hi +14.900000,79.100000,hi +14.800000,79.200000,hi +14.800000,79.300000,hi +14.900000,79.300000,hi +14.900000,79.200000,hi +15.000000,79.200000,hi +15.000000,79.300000,hi +15.100000,79.300000,hi +15.100000,79.200000,hi +15.000000,79.100000,hi +15.100000,79.100000,hi +15.200000,79.100000,hi +15.300000,79.100000,hi +15.200000,79.200000,hi +15.200000,79.300000,hi +15.300000,79.300000,hi +15.300000,79.200000,hi +15.400000,79.200000,hi +15.400000,79.300000,hi +15.500000,79.300000,hi +15.500000,79.200000,hi +15.400000,79.100000,hi +15.500000,79.100000,hi +15.500000,79.000000,hi +15.500000,78.900000,hi +15.400000,78.900000,hi +15.400000,79.000000,hi +15.300000,79.000000,hi +15.200000,79.000000,hi +15.200000,78.900000,hi +15.300000,78.900000,hi +15.300000,78.800000,hi +15.200000,78.800000,hi +15.200000,78.700000,hi +15.300000,78.700000,hi +15.400000,78.800000,hi +15.400000,78.700000,hi +15.500000,78.700000,hi +15.500000,78.800000,hi +15.600000,78.800000,hi +15.600000,78.700000,hi +15.700000,78.700000,hi +15.800000,78.700000,hi +15.800000,78.800000,hi +15.700000,78.800000,hi +15.700000,78.900000,hi +15.800000,78.900000,hi +15.800000,79.000000,hi +15.700000,79.000000,hi +15.600000,79.000000,hi +15.600000,78.900000,hi +15.600000,79.100000,hi +15.600000,79.200000,hi +15.600000,79.300000,hi +15.700000,79.300000,hi +15.700000,79.200000,hi +15.800000,79.300000,hi +15.800000,79.200000,hi +15.700000,79.100000,hi +15.800000,79.100000,hi +15.900000,79.100000,hi +16.000000,79.100000,hi +15.900000,79.200000,hi +15.900000,79.300000,hi +16.000000,79.300000,hi +16.000000,79.200000,hi +16.100000,79.200000,hi +16.100000,79.300000,hi +16.200000,79.300000,en +16.200000,79.200000,en +16.100000,79.100000,hi +16.200000,79.100000,hi +16.200000,79.000000,hi +16.200000,78.900000,hi +16.100000,78.900000,hi +16.100000,79.000000,hi +16.000000,79.000000,hi +15.900000,79.000000,hi +15.900000,78.900000,hi +16.000000,78.900000,hi +16.000000,78.800000,hi +15.900000,78.800000,hi +15.900000,78.700000,hi +16.000000,78.700000,hi +16.100000,78.700000,hi +16.100000,78.800000,hi +16.200000,78.800000,hi +16.200000,78.700000,hi +16.200000,78.600000,hi +16.100000,78.600000,hi +16.100000,78.500000,hi +16.200000,78.500000,hi +16.200000,78.400000,hi +16.200000,78.300000,hi +16.100000,78.300000,hi +16.100000,78.400000,hi +16.000000,78.400000,hi +16.000000,78.300000,hi +15.900000,78.300000,hi +15.900000,78.400000,hi +15.900000,78.500000,hi +16.000000,78.500000,hi +16.000000,78.600000,hi +15.900000,78.600000,hi +15.800000,78.600000,hi +15.800000,78.500000,hi +15.700000,78.500000,hi +15.700000,78.600000,hi +15.600000,78.600000,hi +15.500000,78.600000,hi +15.500000,78.500000,hi +15.600000,78.500000,hi +15.600000,78.400000,hi +15.500000,78.400000,hi +15.500000,78.300000,hi +15.600000,78.300000,hi +15.700000,78.300000,hi +15.700000,78.400000,hi +15.800000,78.400000,hi +15.800000,78.300000,hi +15.800000,78.200000,hi +15.700000,78.200000,hi +15.500000,78.200000,hi +15.600000,78.200000,hi +15.600000,78.100000,hi +15.500000,78.100000,hi +15.500000,78.000000,hi +15.600000,78.000000,hi +15.700000,78.000000,hi +15.700000,78.100000,hi +15.800000,78.100000,hi +15.800000,78.000000,hi +15.900000,78.000000,hi +16.000000,78.000000,hi +16.000000,78.100000,hi +15.900000,78.100000,hi +15.900000,78.200000,hi +16.000000,78.200000,hi +16.100000,78.200000,hi +16.200000,78.200000,hi +16.100000,78.100000,hi +16.100000,78.000000,hi +16.100000,77.900000,hi +16.100000,77.800000,hi +16.000000,77.800000,hi +16.000000,77.900000,hi +15.900000,77.900000,hi +15.900000,77.800000,hi +15.900000,77.700000,hi +15.900000,77.600000,hi +16.000000,77.600000,kn +16.000000,77.700000,hi +16.100000,77.700000,hi +16.100000,77.600000,kn +16.100000,77.500000,te +16.000000,77.500000,te +16.000000,77.400000,te +16.100000,77.400000,hi +16.100000,77.300000,hi +16.100000,77.200000,hi +16.000000,77.200000,hi +16.000000,77.300000,hi +15.900000,77.300000,kn +15.900000,77.200000,kn +15.800000,77.200000,hi +15.800000,77.300000,hi +15.800000,77.400000,hi +15.900000,77.400000,kn +15.900000,77.500000,hi +15.800000,77.500000,hi +15.700000,77.500000,hi +15.700000,77.400000,hi +15.700000,77.300000,hi +15.700000,77.200000,hi +15.600000,77.200000,hi +15.600000,77.300000,hi +15.500000,77.200000,hi +15.500000,77.300000,hi +15.500000,77.400000,hi +15.600000,77.400000,hi +15.600000,77.500000,hi +15.500000,77.500000,hi +15.500000,77.600000,hi +15.500000,77.700000,hi +15.600000,77.700000,hi +15.600000,77.600000,hi +15.700000,77.600000,hi +15.800000,77.600000,hi +15.800000,77.700000,hi +15.700000,77.700000,hi +15.700000,77.800000,hi +15.800000,77.800000,hi +15.800000,77.900000,hi +15.700000,77.900000,hi +15.600000,77.900000,hi +15.600000,77.800000,hi +15.500000,77.800000,hi +15.500000,77.900000,hi +15.400000,77.900000,hi +15.300000,77.900000,hi +15.300000,77.800000,hi +15.400000,77.800000,hi +15.400000,77.700000,hi +15.400000,77.600000,hi +15.300000,77.600000,hi +15.300000,77.700000,hi +15.200000,77.700000,hi +15.200000,77.600000,hi +15.100000,77.600000,hi +15.100000,77.700000,hi +15.100000,77.800000,hi +15.200000,77.800000,hi +15.200000,77.900000,hi +15.100000,77.900000,hi +15.000000,77.900000,hi +15.000000,77.800000,hi +14.900000,77.800000,hi +14.900000,77.900000,hi +14.800000,77.900000,hi +14.800000,77.800000,hi +14.800000,77.700000,hi +14.700000,77.600000,hi +14.800000,77.600000,hi +14.900000,77.600000,hi +14.900000,77.700000,hi +15.000000,77.700000,hi +15.000000,77.600000,hi +15.000000,77.500000,hi +15.000000,77.400000,hi +14.900000,77.400000,hi +14.900000,77.500000,hi +14.800000,77.500000,hi +14.700000,77.500000,hi +14.700000,77.400000,hi +14.800000,77.400000,hi +14.800000,77.300000,hi +14.700000,77.300000,hi +14.700000,77.200000,hi +14.800000,77.200000,hi +14.900000,77.200000,hi +14.900000,77.300000,hi +15.000000,77.300000,hi +15.000000,77.200000,hi +15.100000,77.200000,hi +15.200000,77.200000,hi +15.200000,77.300000,hi +15.100000,77.300000,hi +15.100000,77.400000,hi +15.100000,77.500000,hi +15.200000,77.500000,hi +15.200000,77.400000,hi +15.300000,77.400000,hi +15.300000,77.500000,hi +15.400000,77.500000,hi +15.400000,77.400000,hi +15.400000,77.300000,hi +15.300000,77.300000,hi +15.300000,77.200000,hi +15.400000,77.200000,hi +15.300000,77.100000,hi +15.400000,77.100000,te +15.300000,76.900000,hi +15.300000,77.000000,hi +15.200000,77.000000,hi +15.200000,76.900000,hi +15.100000,76.900000,hi +15.100000,77.000000,hi +15.100000,77.100000,hi +15.200000,77.100000,hi +15.000000,77.100000,te +14.900000,77.100000,kn +14.700000,77.100000,hi +14.800000,77.100000,hi +14.800000,77.000000,hi +14.700000,77.000000,hi +14.700000,76.900000,hi +14.800000,76.900000,kn +14.900000,76.900000,te +14.900000,77.000000,kn +15.000000,77.000000,te +15.000000,76.900000,hi +15.000000,76.800000,hi +15.000000,76.700000,hi +14.900000,76.700000,hi +14.900000,76.800000,hi +14.800000,76.800000,te +14.700000,76.800000,kn +14.700000,76.700000,hi +14.800000,76.700000,te +14.800000,76.600000,hi +14.700000,76.600000,hi +14.700000,76.500000,hi +14.800000,76.500000,hi +14.900000,76.500000,hi +14.900000,76.600000,hi +15.000000,76.600000,hi +15.000000,76.500000,hi +15.100000,76.500000,hi +15.100000,76.600000,hi +15.100000,76.700000,hi +15.100000,76.800000,hi +15.200000,76.800000,hi +15.200000,76.700000,kn +15.300000,76.800000,hi +15.300000,76.700000,hi +15.300000,76.600000,hi +15.200000,76.600000,kn +15.200000,76.500000,hi +15.300000,76.500000,hi +15.400000,76.500000,hi +15.400000,76.600000,hi +15.500000,76.600000,hi +15.500000,76.500000,hi +15.600000,76.500000,hi +15.700000,76.500000,hi +15.700000,76.600000,hi +15.600000,76.600000,hi +15.600000,76.700000,hi +15.700000,76.700000,hi +15.700000,76.800000,hi +15.600000,76.800000,hi +15.500000,76.800000,hi +15.500000,76.700000,hi +15.400000,76.700000,hi +15.400000,76.800000,hi +15.400000,76.900000,hi +15.500000,76.900000,hi +15.500000,77.000000,te +15.400000,77.000000,hi +15.500000,77.100000,kn +15.600000,77.100000,kn +15.700000,77.100000,te +15.700000,77.000000,te +15.600000,77.000000,te +15.600000,76.900000,hi +15.700000,76.900000,hi +15.800000,76.900000,hi +15.900000,76.900000,hi +15.900000,77.000000,hi +15.800000,77.000000,hi +15.800000,77.100000,kn +15.900000,77.100000,te +16.000000,77.100000,hi +16.100000,77.100000,hi +16.100000,77.000000,hi +16.000000,77.000000,hi +16.000000,76.900000,hi +16.100000,76.900000,hi +16.100000,76.800000,hi +16.100000,76.700000,hi +16.000000,76.700000,hi +16.000000,76.800000,hi +15.900000,76.800000,hi +15.800000,76.800000,hi +15.800000,76.700000,hi +15.900000,76.700000,hi +15.900000,76.600000,hi +15.800000,76.600000,hi +15.800000,76.500000,hi +15.900000,76.500000,hi +16.000000,76.500000,hi +16.000000,76.600000,hi +16.100000,76.600000,hi +16.100000,76.500000,hi +16.000000,76.400000,hi +16.000000,76.300000,hi +16.000000,76.200000,hi +16.000000,76.100000,hi +15.900000,76.100000,hi +15.900000,76.200000,hi +15.800000,76.100000,hi +15.800000,76.200000,hi +15.800000,76.300000,hi +15.900000,76.300000,hi +15.900000,76.400000,hi +15.800000,76.400000,hi +15.700000,76.400000,hi +15.700000,76.300000,hi +15.600000,76.300000,hi +15.600000,76.400000,hi +15.500000,76.400000,hi +15.400000,76.400000,hi +15.400000,76.300000,hi +15.500000,76.300000,hi +15.500000,76.200000,hi +15.400000,76.200000,hi +15.400000,76.100000,hi +15.500000,76.100000,hi +15.600000,76.100000,hi +15.600000,76.200000,hi +15.700000,76.200000,hi +15.700000,76.100000,hi +15.700000,76.000000,hi +15.600000,75.900000,hi +15.600000,76.000000,hi +15.500000,76.000000,hi +15.400000,76.000000,hi +15.400000,75.900000,hi +15.500000,75.900000,hi +15.400000,75.800000,hi +15.500000,75.800000,hi +15.600000,75.800000,hi +15.700000,75.800000,hi +15.800000,75.800000,hi +15.700000,75.900000,hi +15.800000,76.000000,hi +15.800000,75.900000,hi +15.900000,75.900000,hi +15.900000,76.000000,hi +16.000000,76.000000,hi +16.000000,75.900000,hi +15.900000,75.800000,hi +16.000000,75.800000,hi +16.000000,75.700000,hi +16.000000,75.600000,hi +15.900000,75.600000,hi +15.900000,75.700000,hi +15.800000,75.700000,hi +15.700000,75.700000,hi +15.700000,75.600000,hi +15.800000,75.600000,hi +15.800000,75.500000,hi +15.700000,75.500000,hi +15.700000,75.400000,hi +15.800000,75.400000,hi +15.900000,75.400000,hi +15.900000,75.500000,hi +16.000000,75.500000,hi +16.000000,75.400000,hi +16.000000,75.300000,hi +15.900000,75.300000,hi +15.900000,75.200000,hi +16.000000,75.200000,hi +16.000000,75.100000,hi +16.000000,75.000000,hi +15.900000,75.000000,hi +15.900000,75.100000,hi +15.800000,75.100000,hi +15.800000,75.000000,hi +15.700000,75.000000,hi +15.700000,75.100000,hi +15.700000,75.200000,hi +15.800000,75.200000,hi +15.800000,75.300000,hi +15.700000,75.300000,hi +15.600000,75.300000,hi +15.500000,75.300000,hi +15.500000,75.200000,hi +15.600000,75.200000,hi +15.600000,75.100000,hi +15.600000,75.000000,hi +15.500000,75.000000,hi +15.500000,75.100000,hi +15.400000,75.100000,hi +15.400000,75.000000,hi +15.300000,75.000000,hi +15.300000,75.100000,hi +15.300000,75.200000,hi +15.400000,75.200000,hi +15.400000,75.300000,hi +15.300000,75.300000,hi +15.300000,75.400000,hi +15.400000,75.500000,hi +15.400000,75.400000,hi +15.500000,75.400000,hi +15.600000,75.400000,hi +15.600000,75.500000,hi +15.500000,75.500000,hi +15.500000,75.600000,hi +15.600000,75.600000,hi +15.600000,75.700000,hi +15.500000,75.700000,hi +15.400000,75.600000,hi +15.400000,75.700000,hi +15.300000,75.700000,hi +15.300000,75.600000,hi +15.200000,75.600000,hi +15.200000,75.700000,hi +15.100000,75.700000,hi +15.000000,75.700000,hi +15.000000,75.600000,hi +15.100000,75.600000,hi +15.100000,75.500000,hi +15.000000,75.500000,hi +15.000000,75.400000,hi +15.100000,75.400000,hi +15.200000,75.400000,hi +15.200000,75.500000,hi +15.300000,75.500000,hi +15.200000,75.300000,hi +15.200000,75.200000,hi +15.200000,75.100000,hi +15.200000,75.000000,hi +15.100000,75.000000,hi +15.100000,75.100000,hi +15.000000,75.000000,kn +15.000000,75.100000,hi +15.000000,75.200000,hi +15.100000,75.200000,hi +15.100000,75.300000,hi +15.000000,75.300000,hi +14.900000,75.300000,hi +14.800000,75.300000,hi +14.800000,75.200000,hi +14.900000,75.200000,hi +14.900000,75.100000,hi +14.900000,75.000000,bo +14.800000,75.000000,hi +14.800000,75.100000,hi +14.700000,75.100000,hi +14.700000,75.000000,hi +14.600000,75.000000,hi +14.600000,75.100000,hi +14.600000,75.200000,hi +14.700000,75.200000,hi +14.700000,75.300000,hi +14.600000,75.300000,hi +14.600000,75.400000,hi +14.600000,75.500000,hi +14.700000,75.500000,hi +14.700000,75.400000,hi +14.800000,75.400000,hi +14.900000,75.400000,hi +14.900000,75.500000,hi +14.800000,75.500000,hi +14.800000,75.600000,hi +14.900000,75.600000,hi +14.900000,75.700000,hi +14.800000,75.700000,hi +14.700000,75.700000,hi +14.700000,75.600000,hi +14.600000,75.600000,hi +14.600000,75.700000,hi +14.600000,75.800000,hi +14.700000,75.800000,hi +14.600000,75.900000,hi +14.700000,76.000000,hi +14.700000,75.900000,hi +14.800000,75.900000,hi +14.800000,76.000000,hi +14.900000,76.000000,hi +14.900000,75.900000,hi +14.800000,75.800000,hi +14.900000,75.800000,hi +15.000000,75.800000,hi +15.100000,75.800000,hi +15.200000,75.800000,hi +15.300000,75.800000,hi +15.200000,75.900000,hi +15.300000,75.900000,hi +15.300000,76.000000,hi +15.200000,76.000000,hi +15.100000,76.000000,hi +15.100000,75.900000,hi +15.000000,75.900000,hi +15.000000,76.000000,hi +15.000000,76.100000,hi +15.000000,76.200000,hi +15.100000,76.200000,hi +15.100000,76.100000,hi +15.200000,76.100000,hi +15.300000,76.100000,hi +15.300000,76.200000,hi +15.200000,76.200000,hi +15.200000,76.300000,hi +15.300000,76.300000,hi +15.300000,76.400000,hi +15.200000,76.400000,hi +15.100000,76.400000,hi +15.100000,76.300000,hi +15.000000,76.300000,hi +15.000000,76.400000,hi +14.900000,76.400000,hi +14.900000,76.300000,hi +14.900000,76.200000,hi +14.900000,76.100000,hi +14.800000,76.100000,hi +14.800000,76.200000,hi +14.700000,76.100000,hi +14.700000,76.200000,hi +14.700000,76.300000,hi +14.800000,76.300000,hi +14.800000,76.400000,hi +14.700000,76.400000,hi +14.600000,76.400000,hi +14.600000,76.300000,hi +14.500000,76.300000,hi +14.500000,76.400000,hi +14.400000,76.400000,hi +14.300000,76.400000,hi +14.300000,76.300000,hi +14.400000,76.300000,hi +14.400000,76.200000,hi +14.300000,76.200000,hi +14.300000,76.100000,hi +14.400000,76.100000,hi +14.500000,76.100000,hi +14.500000,76.200000,hi +14.600000,76.200000,hi +14.600000,76.100000,hi +14.600000,76.000000,hi +14.500000,76.000000,hi +14.500000,75.900000,hi +14.500000,75.800000,hi +14.400000,75.800000,hi +14.300000,75.800000,hi +14.300000,75.900000,hi +14.400000,75.900000,hi +14.400000,76.000000,hi +14.300000,76.000000,hi +14.200000,76.000000,hi +14.100000,76.000000,hi +14.100000,75.900000,hi +14.200000,75.900000,hi +14.200000,75.800000,hi +14.100000,75.800000,hi +14.000000,75.800000,hi +13.900000,75.800000,hi +13.900000,75.900000,hi +14.000000,75.900000,hi +14.000000,76.000000,hi +13.900000,76.000000,hi +13.900000,76.100000,hi +13.900000,76.200000,hi +14.000000,76.200000,hi +14.000000,76.100000,hi +14.100000,76.100000,hi +14.200000,76.100000,hi +14.200000,76.200000,hi +14.100000,76.200000,hi +14.100000,76.300000,hi +14.200000,76.300000,hi +14.200000,76.400000,hi +14.100000,76.400000,hi +14.000000,76.400000,hi +14.000000,76.300000,hi +13.900000,76.300000,hi +13.900000,76.400000,hi +13.800000,76.400000,hi +13.800000,76.300000,hi +13.800000,76.200000,hi +13.800000,76.100000,hi +13.700000,76.200000,hi +13.700000,76.100000,hi +13.600000,76.100000,hi +13.600000,76.200000,hi +13.600000,76.300000,hi +13.700000,76.300000,hi +13.700000,76.400000,hi +13.600000,76.400000,hi +13.500000,76.400000,hi +13.500000,76.300000,hi +13.400000,76.300000,hi +13.400000,76.400000,hi +13.300000,76.400000,hi +13.200000,76.400000,hi +13.200000,76.300000,hi +13.300000,76.300000,hi +13.300000,76.200000,hi +13.200000,76.200000,hi +13.200000,76.100000,hi +13.300000,76.100000,hi +13.400000,76.100000,hi +13.400000,76.200000,hi +13.500000,76.200000,hi +13.500000,76.100000,hi +13.500000,76.000000,hi +13.500000,75.900000,hi +13.400000,75.900000,hi +13.400000,76.000000,hi +13.300000,76.000000,hi +13.200000,76.000000,hi +13.200000,75.900000,hi +13.300000,75.900000,hi +13.200000,75.800000,hi +13.300000,75.800000,hi +13.400000,75.800000,hi +13.500000,75.800000,hi +13.600000,75.800000,hi +13.600000,75.900000,hi +13.600000,76.000000,hi +13.700000,75.900000,hi +13.700000,76.000000,hi +13.800000,76.000000,hi +13.800000,75.900000,hi +13.700000,75.800000,hi +13.800000,75.800000,hi +13.800000,75.700000,hi +13.700000,75.700000,hi +13.700000,75.600000,hi +13.800000,75.600000,hi +13.800000,75.500000,hi +13.800000,75.400000,hi +13.700000,75.400000,hi +13.700000,75.500000,hi +13.600000,75.500000,hi +13.600000,75.400000,hi +13.500000,75.400000,hi +13.500000,75.500000,hi +13.500000,75.600000,hi +13.600000,75.600000,hi +13.600000,75.700000,hi +13.500000,75.700000,hi +13.400000,75.600000,hi +13.400000,75.700000,hi +13.300000,75.700000,hi +13.200000,75.700000,hi +13.200000,75.600000,hi +13.300000,75.600000,hi +13.300000,75.500000,hi +13.200000,75.500000,hi +13.200000,75.400000,hi +13.300000,75.400000,hi +13.400000,75.500000,hi +13.400000,75.400000,hi +13.400000,75.300000,hi +13.400000,75.200000,hi +13.300000,75.200000,hi +13.300000,75.300000,hi +13.200000,75.300000,hi +13.200000,75.200000,hi +13.200000,75.100000,hi +13.100000,75.000000,hi +13.200000,75.000000,hi +13.300000,75.000000,hi +13.300000,75.100000,hi +13.400000,75.100000,hi +13.400000,75.000000,hi +13.500000,75.000000,hi +13.600000,75.000000,hi +13.600000,75.100000,hi +13.500000,75.100000,hi +13.500000,75.200000,hi +13.500000,75.300000,hi +13.600000,75.300000,hi +13.600000,75.200000,hi +13.700000,75.200000,hi +13.700000,75.300000,hi +13.800000,75.300000,hi +13.800000,75.200000,hi +13.800000,75.100000,hi +13.700000,75.100000,hi +13.700000,75.000000,hi +13.800000,75.000000,hi +13.900000,75.000000,hi +13.900000,75.100000,hi +14.000000,75.100000,hi +14.000000,75.000000,hi +14.100000,75.000000,hi +14.100000,75.100000,hi +14.100000,75.200000,hi +14.100000,75.300000,hi +14.000000,75.300000,hi +14.000000,75.200000,hi +13.900000,75.200000,hi +13.900000,75.300000,hi +13.900000,75.400000,hi +14.000000,75.400000,hi +14.000000,75.500000,hi +13.900000,75.500000,hi +13.900000,75.600000,hi +13.900000,75.700000,hi +14.000000,75.700000,hi +14.000000,75.600000,hi +14.100000,75.600000,hi +14.100000,75.700000,hi +14.200000,75.700000,hi +14.200000,75.600000,hi +14.200000,75.500000,hi +14.100000,75.500000,hi +14.100000,75.400000,hi +14.200000,75.400000,hi +14.300000,75.400000,hi +14.300000,75.500000,hi +14.300000,75.600000,hi +14.300000,75.700000,hi +14.400000,75.700000,hi +14.400000,75.600000,hi +14.500000,75.700000,hi +14.500000,75.600000,hi +14.500000,75.500000,hi +14.400000,75.500000,hi +14.400000,75.400000,hi +14.500000,75.400000,hi +14.500000,75.300000,hi +14.500000,75.200000,hi +14.400000,75.200000,hi +14.400000,75.300000,hi +14.300000,75.300000,hi +14.200000,75.300000,hi +14.200000,75.200000,hi +14.300000,75.200000,hi +14.300000,75.100000,hi +14.200000,75.100000,hi +14.200000,75.000000,hi +14.300000,75.000000,hi +14.400000,75.000000,hi +14.400000,75.100000,hi +14.500000,75.100000,hi +14.500000,75.000000,hi +14.500000,74.900000,hi +14.500000,74.800000,hi +14.400000,74.800000,hi +14.400000,74.900000,hi +14.300000,74.900000,hi +14.200000,74.900000,hi +14.200000,74.800000,hi +14.300000,74.800000,hi +14.300000,74.700000,hi +14.200000,74.700000,hi +14.200000,74.600000,hi +14.300000,74.600000,hi +14.400000,74.600000,hi +14.400000,74.700000,hi +14.500000,74.700000,hi +14.500000,74.600000,hi +14.500000,74.500000,hi +14.400000,74.500000,hi +14.500000,74.400000,hi +14.400000,74.300000,hi +14.400000,74.400000,hi +14.300000,74.400000,hi +14.300000,74.300000,hi +14.200000,74.300000,hi +14.200000,74.400000,hi +14.300000,74.500000,hi +14.200000,74.500000,hi +14.100000,74.500000,hi +14.000000,74.500000,ur +14.100000,74.400000,hi +14.100000,74.300000,hi +14.000000,74.300000,hi +14.000000,74.400000,hi +13.900000,74.400000,hi +13.900000,74.300000,hi +13.800000,74.300000,hi +13.800000,74.400000,hi +13.900000,74.500000,hi +13.800000,74.500000,hi +13.800000,74.600000,hi +13.800000,74.700000,hi +13.900000,74.700000,hi +13.900000,74.600000,hi +14.000000,74.600000,hi +14.100000,74.600000,hi +14.100000,74.700000,hi +14.000000,74.700000,hi +14.000000,74.800000,hi +14.100000,74.800000,hi +14.100000,74.900000,hi +14.000000,74.900000,hi +13.900000,74.800000,ml +13.900000,74.900000,hi +13.800000,74.900000,hi +13.700000,74.900000,hi +13.700000,74.800000,hi +13.800000,74.800000,hi +13.700000,74.600000,hi +13.700000,74.700000,hi +13.600000,74.700000,hi +13.600000,74.600000,hi +13.500000,74.600000,hi +13.500000,74.700000,hi +13.500000,74.800000,hi +13.600000,74.800000,hi +13.600000,74.900000,hi +13.500000,74.900000,hi +13.400000,74.900000,hi +13.400000,74.800000,hi +13.300000,74.800000,hi +13.300000,74.900000,hi +13.200000,74.900000,hi +13.100000,74.900000,hi +13.100000,74.800000,hi +13.200000,74.800000,hi +13.200000,74.700000,hi +13.100000,74.700000,hi +13.100000,74.600000,hi +13.200000,74.600000,hi +13.300000,74.600000,hi +13.300000,74.700000,hi +13.400000,74.700000,hi +13.400000,74.600000,hi +13.400000,74.500000,hi +13.300000,74.500000,hi +13.200000,74.500000,hi +13.100000,74.500000,hi +13.200000,74.400000,hi +13.100000,74.400000,hi +13.300000,74.300000,hi +13.300000,74.400000,hi +13.400000,74.400000,hi +13.400000,74.300000,hi +13.500000,74.300000,hi +13.600000,74.400000,hi +13.500000,74.400000,hi +13.500000,74.500000,hi +13.600000,74.500000,hi +13.700000,74.500000,hi +13.700000,74.400000,hi +13.600000,74.300000,hi +13.700000,74.300000,hi +13.700000,74.200000,hi +13.600000,74.200000,hi +13.800000,74.200000,hi +13.900000,74.200000,hi +13.900000,74.100000,hi +14.000000,74.100000,hi +14.000000,74.200000,hi +14.100000,74.200000,hi +14.100000,74.100000,hi +14.200000,74.000000,hi +14.200000,74.100000,hi +14.200000,74.200000,hi +14.300000,74.200000,hi +14.300000,74.100000,hi +14.400000,74.200000,hi +14.400000,74.100000,hi +14.400000,74.000000,hi +14.300000,74.000000,hi +14.400000,73.900000,hi +14.600000,73.800000,kn +14.700000,73.800000,kn +14.800000,73.800000,ru +15.100000,73.600000,ru +15.000000,73.700000,ru +15.100000,73.700000,hi +15.100000,73.800000,ru +15.000000,73.800000,ru +14.900000,73.700000,ru +14.900000,73.800000,de +14.900000,73.900000,kn +14.900000,74.000000,kn +15.000000,74.000000,hi +15.000000,73.900000,ru +15.100000,73.900000,ru +15.100000,74.000000,ru +15.100000,74.100000,ru +15.200000,74.100000,mr +15.200000,74.200000,mr +15.100000,74.200000,mr +15.000000,74.200000,kn +15.000000,74.100000,kn +14.900000,74.100000,kn +14.900000,74.200000,kn +14.800000,74.200000,kn +14.700000,74.200000,hi +14.700000,74.100000,kn +14.800000,74.100000,kn +14.800000,74.000000,kn +14.800000,73.900000,kn +14.700000,73.900000,kn +14.700000,74.000000,kn +14.600000,74.000000,kn +14.600000,73.900000,hi +14.500000,73.900000,hi +14.500000,74.000000,hi +14.500000,74.100000,ru +14.600000,74.100000,hi +14.600000,74.200000,hi +14.500000,74.200000,hi +14.500000,74.300000,iw +14.600000,74.400000,hi +14.600000,74.300000,ru +14.700000,74.300000,hi +14.800000,74.300000,kn +14.800000,74.400000,hi +14.700000,74.400000,hi +14.800000,74.500000,hi +14.700000,74.500000,hi +14.600000,74.500000,hi +14.600000,74.600000,hi +14.700000,74.700000,hi +14.600000,74.700000,hi +14.600000,74.800000,hi +14.600000,74.900000,hi +14.700000,74.900000,hi +14.700000,74.800000,hi +14.800000,74.800000,hi +14.800000,74.900000,hi +14.800000,74.700000,hi +14.700000,74.600000,hi +14.800000,74.600000,hi +14.900000,74.600000,hi +15.000000,74.600000,hi +15.000000,74.700000,hi +14.900000,74.700000,hi +14.900000,74.800000,bo +14.900000,74.900000,bo +15.000000,74.900000,bo +15.000000,74.800000,hi +15.100000,74.800000,hi +15.100000,74.900000,hi +15.200000,74.900000,hi +15.200000,74.800000,hi +15.200000,74.700000,hi +15.100000,74.700000,hi +15.100000,74.600000,hi +15.200000,74.600000,hi +15.200000,74.500000,hi +15.100000,74.500000,hi +15.000000,74.500000,hi +14.900000,74.500000,hi +15.000000,74.400000,kn +14.900000,74.400000,hi +14.900000,74.300000,kn +15.000000,74.300000,kn +15.100000,74.300000,kn +15.100000,74.400000,kn +15.200000,74.400000,kn +15.200000,74.300000,mr +15.300000,74.300000,mr +15.300000,74.400000,kn +15.400000,74.400000,kn +15.400000,74.300000,mr +15.500000,74.300000,mr +15.500000,74.400000,kn +15.500000,74.500000,kn +15.400000,74.500000,kn +15.300000,74.500000,hi +15.300000,74.600000,hi +15.400000,74.600000,hi +15.400000,74.700000,hi +15.300000,74.700000,hi +15.300000,74.800000,hi +15.300000,74.900000,hi +15.400000,74.900000,hi +15.400000,74.800000,hi +15.500000,74.800000,hi +15.500000,74.900000,hi +15.600000,74.900000,hi +15.600000,74.800000,hi +15.600000,74.700000,hi +15.500000,74.700000,hi +15.500000,74.600000,hi +15.600000,74.600000,kn +15.700000,74.600000,kn +15.700000,74.700000,hi +15.700000,74.800000,hi +15.700000,74.900000,hi +15.800000,74.900000,hi +15.800000,74.800000,hi +15.900000,74.900000,hi +15.900000,74.800000,hi +15.900000,74.700000,hi +15.800000,74.700000,hi +15.800000,74.600000,kn +15.900000,74.600000,kn +15.900000,74.500000,kn +15.800000,74.500000,kn +15.700000,74.500000,kn +15.600000,74.500000,kn +15.700000,74.400000,kn +15.600000,74.400000,kn +15.600000,74.300000,kn +15.700000,74.300000,kn +15.800000,74.300000,kn +15.800000,74.400000,kn +15.900000,74.400000,kn +15.900000,74.300000,kn +15.900000,74.200000,hi +15.800000,74.200000,mr +15.800000,74.100000,mr +15.900000,74.100000,hi +15.900000,74.000000,hi +15.900000,73.900000,hi +15.800000,73.900000,mr +15.800000,74.000000,ru +15.700000,74.000000,ru +15.700000,73.900000,ru +15.600000,73.900000,ru +15.600000,74.000000,mr +15.600000,74.100000,mr +15.700000,74.100000,mr +15.700000,74.200000,mr +15.600000,74.200000,mr +15.500000,74.200000,mr +15.500000,74.100000,mr +15.400000,74.100000,mr +15.400000,74.200000,mr +15.300000,74.200000,mr +15.300000,74.100000,mr +15.300000,74.000000,mr +15.200000,74.000000,ru +15.200000,73.900000,ru +15.300000,73.900000,ru +15.400000,73.900000,ru +15.400000,74.000000,mr +15.500000,74.000000,ru +15.500000,73.900000,ru +15.500000,73.800000,ru +15.500000,73.700000,ru +15.400000,73.700000,ru +15.400000,73.800000,ru +15.300000,73.800000,ru +15.200000,73.800000,ru +15.200000,73.700000,ru +15.300000,73.700000,ru +15.300000,73.600000,ru +15.200000,73.600000,ru +15.300000,73.500000,ru +15.400000,73.500000,de +15.400000,73.600000,ru +15.500000,73.600000,ru +15.500000,73.500000,de +15.600000,73.500000,hi +15.700000,73.500000,hi +15.700000,73.600000,hi +15.600000,73.600000,hi +15.600000,73.700000,hi +15.600000,73.800000,hi +15.700000,73.800000,ru +15.700000,73.700000,hi +15.800000,73.700000,ru +15.800000,73.800000,ru +15.900000,73.800000,hi +15.900000,73.700000,hi +15.800000,73.600000,hi +15.800000,73.500000,mr +15.900000,73.500000,hi +16.000000,73.500000,hi +16.000000,73.600000,hi +15.900000,73.600000,hi +16.000000,73.800000,hi +16.000000,73.700000,hi +16.100000,73.700000,hi +16.100000,73.800000,hi +16.200000,73.800000,hi +16.200000,73.700000,hi +16.200000,73.600000,hi +16.100000,73.600000,hi +16.100000,73.500000,hi +16.200000,73.500000,hi +16.300000,73.500000,hi +16.300000,73.600000,hi +16.400000,73.600000,hi +16.400000,73.500000,hi +16.500000,73.500000,hi +16.600000,73.500000,hi +16.600000,73.600000,hi +16.500000,73.600000,hi +16.500000,73.700000,hi +16.600000,73.700000,hi +16.600000,73.800000,hi +16.500000,73.800000,hi +16.400000,73.800000,hi +16.400000,73.700000,hi +16.300000,73.700000,hi +16.300000,73.800000,hi +16.300000,73.900000,hi +16.300000,74.000000,hi +16.400000,74.000000,hi +16.400000,73.900000,hi +16.500000,73.900000,hi +16.600000,73.900000,hi +16.600000,74.000000,hi +16.500000,74.000000,hi +16.500000,74.100000,hi +16.600000,74.100000,hi +16.600000,74.200000,hi +16.500000,74.200000,hi +16.400000,74.200000,hi +16.400000,74.100000,hi +16.300000,74.200000,hi +16.200000,74.200000,hi +16.200000,74.100000,hi +16.300000,74.100000,hi +16.200000,73.900000,hi +16.200000,74.000000,hi +16.100000,74.000000,hi +16.100000,73.900000,hi +16.000000,73.900000,hi +16.000000,74.000000,hi +16.000000,74.100000,hi +16.100000,74.100000,hi +16.100000,74.200000,hi +16.000000,74.200000,hi +16.000000,74.300000,kn +16.000000,74.400000,kn +16.100000,74.400000,kn +16.100000,74.300000,mr +16.200000,74.300000,hi +16.300000,74.300000,hi +16.300000,74.400000,mr +16.200000,74.400000,hi +16.300000,74.500000,hi +16.200000,74.500000,hi +16.100000,74.500000,kn +16.000000,74.500000,kn +16.000000,74.600000,kn +16.100000,74.600000,hi +16.100000,74.700000,hi +16.000000,74.700000,hi +16.000000,74.800000,hi +16.000000,74.900000,hi +16.100000,74.900000,hi +16.100000,74.800000,hi +16.200000,74.800000,hi +16.200000,74.900000,hi +16.300000,74.900000,hi +16.300000,74.800000,hi +16.300000,74.700000,hi +16.200000,74.700000,hi +16.200000,74.600000,hi +16.300000,74.600000,hi +16.400000,74.600000,hi +16.500000,74.600000,kn +16.500000,74.700000,kn +16.400000,74.700000,hi +16.400000,74.800000,hi +16.400000,74.900000,hi +16.500000,74.900000,hi +16.500000,74.800000,hi +16.600000,74.800000,kn +16.600000,74.900000,hi +16.700000,74.900000,hi +16.700000,74.800000,mr +16.700000,74.700000,mr +16.600000,74.700000,mr +16.600000,74.600000,mr +16.700000,74.600000,hi +16.600000,74.500000,mr +16.500000,74.500000,mr +16.400000,74.500000,kn +16.500000,74.400000,mr +16.400000,74.400000,mr +16.400000,74.300000,hi +16.500000,74.300000,hi +16.600000,74.400000,hi +16.600000,74.300000,hi +16.700000,74.300000,hi +16.700000,74.400000,mr +16.800000,74.400000,hi +16.800000,74.300000,hi +16.900000,74.300000,hi +17.000000,74.300000,hi +17.000000,74.400000,hi +16.900000,74.400000,hi +17.000000,74.500000,hi +16.900000,74.500000,hi +16.800000,74.500000,hi +16.700000,74.500000,mr +16.800000,74.600000,hi +16.800000,74.700000,hi +16.800000,74.800000,hi +16.800000,74.900000,mr +16.900000,74.900000,hi +16.900000,74.800000,hi +17.000000,74.900000,hi +17.000000,74.800000,hi +17.000000,74.700000,hi +16.900000,74.700000,hi +16.900000,74.600000,hi +17.000000,74.600000,hi +17.100000,74.600000,hi +17.200000,74.600000,hi +17.200000,74.700000,hi +17.100000,74.700000,hi +17.100000,74.800000,hi +17.100000,74.900000,hi +17.200000,74.900000,hi +17.200000,74.800000,hi +17.300000,74.800000,hi +17.300000,74.900000,hi +17.400000,74.900000,hi +17.400000,74.800000,hi +17.400000,74.700000,hi +17.300000,74.700000,hi +17.300000,74.600000,hi +17.400000,74.600000,hi +17.400000,74.500000,hi +17.300000,74.500000,hi +17.200000,74.500000,hi +17.100000,74.500000,hi +17.200000,74.400000,hi +17.100000,74.400000,hi +17.100000,74.300000,hi +17.200000,74.300000,hi +17.300000,74.300000,hi +17.300000,74.400000,hi +17.400000,74.400000,hi +17.400000,74.300000,hi +17.400000,74.200000,hi +17.300000,74.200000,hi +17.300000,74.100000,hi +17.300000,74.000000,hi +17.300000,73.900000,hi +17.200000,74.000000,hi +17.200000,73.900000,hi +17.100000,73.900000,hi +17.100000,74.000000,hi +17.100000,74.100000,hi +17.200000,74.100000,hi +17.200000,74.200000,hi +17.100000,74.200000,hi +17.000000,74.200000,hi +17.000000,74.100000,hi +16.900000,74.100000,hi +16.900000,74.200000,hi +16.800000,74.200000,hi +16.700000,74.200000,hi +16.700000,74.100000,hi +16.800000,74.100000,hi +16.800000,74.000000,hi +16.700000,74.000000,hi +16.700000,73.900000,hi +16.800000,73.900000,hi +16.900000,73.900000,hi +16.900000,74.000000,hi +17.000000,74.000000,hi +17.000000,73.900000,hi +17.000000,73.800000,hi +17.000000,73.700000,hi +16.900000,73.700000,hi +16.900000,73.800000,hi +16.800000,73.800000,hi +16.700000,73.800000,hi +16.700000,73.700000,hi +16.800000,73.700000,hi +16.800000,73.600000,hi +16.700000,73.600000,hi +16.700000,73.500000,hi +16.800000,73.500000,hi +16.900000,73.600000,hi +16.900000,73.500000,hi +17.000000,73.500000,hi +17.100000,73.500000,hi +17.100000,73.600000,hi +17.000000,73.600000,hi +17.100000,73.800000,hi +17.100000,73.700000,hi +17.200000,73.700000,hi +17.200000,73.800000,hi +17.300000,73.800000,hi +17.300000,73.700000,hi +17.300000,73.600000,hi +17.200000,73.600000,hi +17.200000,73.500000,hi +17.300000,73.500000,hi +17.400000,73.500000,hi +17.400000,73.600000,hi +17.500000,73.600000,hi +17.500000,73.500000,hi +17.600000,73.500000,mr +17.700000,73.500000,hi +17.700000,73.600000,hi +17.600000,73.600000,hi +17.600000,73.700000,hi +17.700000,73.700000,hi +17.700000,73.800000,hi +17.600000,73.800000,hi +17.500000,73.800000,hi +17.500000,73.700000,hi +17.400000,73.700000,hi +17.400000,73.800000,hi +17.400000,73.900000,hi +17.500000,73.900000,hi +17.500000,74.000000,hi +17.400000,74.000000,hi +17.400000,74.100000,hi +17.500000,74.200000,hi +17.500000,74.100000,hi +17.600000,74.100000,hi +17.600000,74.200000,hi +17.700000,74.200000,hi +17.700000,74.100000,hi +17.700000,74.000000,hi +17.600000,74.000000,hi +17.600000,73.900000,hi +17.700000,73.900000,hi +17.800000,73.900000,hi +17.900000,73.900000,hi +17.900000,74.000000,hi +17.800000,74.000000,hi +17.800000,74.100000,hi +17.800000,74.200000,hi +17.900000,74.200000,hi +17.900000,74.100000,hi +18.000000,74.100000,hi +18.000000,74.200000,hi +18.100000,74.200000,hi +18.100000,74.100000,hi +18.100000,74.000000,hi +18.000000,74.000000,hi +18.000000,73.900000,hi +18.100000,73.900000,hi +18.100000,73.800000,hi +18.100000,73.700000,hi +18.000000,73.700000,hi +18.000000,73.800000,hi +17.900000,73.800000,hi +17.800000,73.800000,hi +17.800000,73.700000,hi +17.900000,73.700000,mr +17.900000,73.600000,mr +17.800000,73.600000,hi +17.800000,73.500000,hi +17.900000,73.500000,hi +18.000000,73.600000,hi +18.000000,73.500000,hi +18.100000,73.500000,hi +18.200000,73.500000,hi +18.200000,73.600000,mr +18.100000,73.600000,hi +18.200000,73.800000,hi +18.200000,73.700000,mr +18.300000,73.700000,mr +18.300000,73.800000,mr +18.400000,73.800000,mr +18.400000,73.700000,mr +18.400000,73.600000,mr +18.300000,73.600000,hi +18.300000,73.500000,hi +18.400000,73.500000,mr +18.500000,73.500000,mr +18.500000,73.600000,mr +18.600000,73.600000,mr +18.600000,73.500000,mr +18.700000,73.500000,mr +18.800000,73.500000,mr +18.800000,73.600000,mr +18.700000,73.600000,mr +18.700000,73.700000,mr +18.800000,73.700000,mr +18.800000,73.800000,mr +18.700000,73.800000,mr +18.600000,73.800000,mr +18.600000,73.700000,mr +18.500000,73.700000,mr +18.500000,73.800000,mr +18.500000,73.900000,mr +18.500000,74.000000,mr +18.600000,74.000000,mr +18.600000,73.900000,mr +18.700000,73.900000,mr +18.800000,73.900000,mr +18.800000,74.000000,mr +18.700000,74.000000,mr +18.700000,74.100000,mr +18.800000,74.100000,mr +18.800000,74.200000,mr +18.700000,74.200000,mr +18.600000,74.100000,mr +18.600000,74.200000,mr +18.500000,74.200000,mr +18.400000,74.200000,mr +18.400000,74.100000,mr +18.500000,74.100000,mr +18.400000,73.900000,mr +18.400000,74.000000,mr +18.300000,74.000000,mr +18.300000,73.900000,mr +18.200000,73.900000,hi +18.200000,74.000000,hi +18.200000,74.100000,hi +18.300000,74.100000,mr +18.300000,74.200000,hi +18.200000,74.200000,hi +18.200000,74.300000,hi +18.300000,74.300000,hi +18.300000,74.400000,hi +18.200000,74.400000,hi +18.200000,74.500000,hi +18.300000,74.500000,hi +18.400000,74.500000,mr +18.500000,74.500000,hi +18.500000,74.400000,hi +18.400000,74.400000,hi +18.400000,74.300000,hi +18.500000,74.300000,mr +18.600000,74.300000,hi +18.600000,74.400000,hi +18.700000,74.400000,hi +18.700000,74.300000,mr +18.800000,74.300000,mr +18.800000,74.400000,hi +18.900000,74.500000,hi +18.800000,74.500000,hi +18.700000,74.500000,hi +18.600000,74.500000,hi +18.600000,74.600000,hi +18.600000,74.700000,hi +18.700000,74.700000,hi +18.700000,74.600000,hi +18.800000,74.600000,hi +18.900000,74.600000,hi +18.900000,74.700000,hi +18.800000,74.700000,hi +18.800000,74.800000,hi +18.900000,74.800000,hi +18.900000,74.900000,hi +18.800000,74.900000,hi +18.700000,74.900000,hi +18.700000,74.800000,hi +18.600000,74.800000,hi +18.600000,74.900000,hi +18.500000,74.900000,hi +18.400000,74.900000,hi +18.400000,74.800000,hi +18.500000,74.800000,hi +18.500000,74.700000,hi +18.500000,74.600000,mr +18.400000,74.600000,hi +18.400000,74.700000,hi +18.300000,74.700000,hi +18.300000,74.600000,hi +18.200000,74.600000,hi +18.200000,74.700000,hi +18.200000,74.800000,hi +18.300000,74.800000,hi +18.300000,74.900000,hi +18.200000,74.900000,hi +18.100000,74.800000,hi +18.100000,74.900000,hi +18.000000,74.900000,hi +17.900000,74.900000,hi +17.900000,74.800000,hi +18.000000,74.800000,hi +18.000000,74.700000,hi +17.900000,74.700000,hi +17.900000,74.600000,hi +18.000000,74.600000,hi +18.100000,74.700000,hi +18.100000,74.600000,hi +18.100000,74.500000,hi +18.000000,74.500000,hi +18.100000,74.400000,hi +18.100000,74.300000,hi +18.000000,74.300000,hi +18.000000,74.400000,hi +17.900000,74.400000,hi +17.900000,74.300000,hi +17.800000,74.300000,hi +17.800000,74.400000,hi +17.900000,74.500000,hi +17.800000,74.500000,hi +17.700000,74.500000,hi +17.700000,74.300000,hi +17.700000,74.400000,hi +17.600000,74.400000,hi +17.600000,74.300000,hi +17.500000,74.300000,hi +17.500000,74.400000,hi +17.600000,74.500000,hi +17.500000,74.500000,hi +17.500000,74.600000,hi +17.500000,74.700000,hi +17.600000,74.700000,hi +17.600000,74.600000,hi +17.700000,74.600000,hi +17.800000,74.600000,hi +17.800000,74.700000,hi +17.700000,74.700000,hi +17.700000,74.800000,hi +17.800000,74.800000,hi +17.800000,74.900000,hi +17.700000,74.900000,hi +17.600000,74.900000,hi +17.600000,74.800000,hi +17.500000,74.800000,hi +17.500000,74.900000,hi +17.500000,75.000000,hi +17.500000,75.100000,hi +17.600000,75.100000,hi +17.600000,75.000000,hi +17.700000,75.000000,hi +17.800000,75.000000,hi +17.800000,75.100000,hi +17.700000,75.100000,hi +17.700000,75.200000,hi +17.800000,75.200000,hi +17.800000,75.300000,hi +17.700000,75.300000,hi +17.600000,75.300000,hi +17.600000,75.200000,hi +17.500000,75.200000,hi +17.500000,75.300000,hi +17.600000,75.400000,hi +17.600000,75.500000,hi +17.600000,75.600000,hi +17.600000,75.700000,hi +17.700000,75.700000,hi +17.700000,75.600000,hi +17.800000,75.700000,hi +17.800000,75.600000,hi +17.800000,75.500000,hi +17.700000,75.500000,hi +17.700000,75.400000,hi +17.800000,75.400000,hi +17.900000,75.400000,hi +18.000000,75.400000,hi +18.000000,75.500000,hi +17.900000,75.500000,hi +17.900000,75.600000,hi +17.900000,75.700000,hi +18.000000,75.700000,hi +18.000000,75.600000,hi +18.100000,75.600000,hi +18.100000,75.700000,hi +18.200000,75.700000,hi +18.200000,75.600000,hi +18.200000,75.500000,hi +18.100000,75.500000,hi +18.100000,75.400000,hi +18.200000,75.400000,hi +18.200000,75.300000,hi +18.200000,75.200000,hi +18.100000,75.200000,hi +18.100000,75.300000,hi +18.000000,75.300000,hi +17.900000,75.300000,hi +17.900000,75.200000,hi +18.000000,75.200000,hi +18.000000,75.100000,hi +17.900000,75.100000,hi +17.900000,75.000000,hi +18.000000,75.000000,hi +18.100000,75.000000,hi +18.100000,75.100000,hi +18.200000,75.100000,hi +18.200000,75.000000,hi +18.300000,75.000000,hi +18.400000,75.100000,hi +18.300000,75.100000,hi +18.300000,75.200000,hi +18.300000,75.300000,hi +18.400000,75.300000,hi +18.400000,75.200000,hi +18.500000,75.200000,hi +18.500000,75.300000,hi +18.600000,75.300000,hi +18.500000,75.100000,hi +18.400000,75.000000,hi +18.500000,75.000000,hi +18.600000,75.000000,hi +18.600000,75.100000,hi +18.700000,75.100000,hi +18.700000,75.000000,hi +18.800000,75.000000,hi +18.900000,75.000000,hi +18.900000,75.100000,hi +18.800000,75.100000,hi +18.800000,75.200000,hi +18.900000,75.200000,hi +18.900000,75.300000,hi +18.800000,75.300000,hi +18.700000,75.300000,hi +18.700000,75.200000,hi +18.600000,75.200000,hi +18.700000,75.400000,hi +18.700000,75.500000,hi +18.800000,75.500000,hi +18.800000,75.400000,hi +18.900000,75.400000,hi +18.900000,75.500000,hi +18.900000,75.600000,hi +19.000000,75.700000,hi +18.900000,75.700000,hi +18.800000,75.700000,hi +18.800000,75.600000,hi +18.700000,75.600000,hi +18.700000,75.700000,hi +18.600000,75.700000,hi +18.500000,75.700000,hi +18.500000,75.600000,hi +18.600000,75.600000,hi +18.600000,75.500000,hi +18.600000,75.400000,hi +18.500000,75.400000,hi +18.500000,75.500000,hi +18.400000,75.500000,hi +18.400000,75.400000,hi +18.300000,75.400000,hi +18.300000,75.500000,hi +18.300000,75.600000,hi +18.400000,75.600000,hi +18.400000,75.700000,hi +18.300000,75.700000,hi +18.300000,75.800000,hi +18.400000,75.800000,hi +18.300000,75.900000,hi +18.300000,76.000000,hi +18.400000,76.000000,hi +18.400000,75.900000,hi +18.500000,75.900000,hi +18.500000,76.000000,hi +18.600000,76.000000,hi +18.600000,75.900000,hi +18.500000,75.800000,hi +18.600000,75.800000,hi +18.700000,75.800000,hi +18.800000,75.800000,hi +18.900000,75.800000,hi +19.000000,75.800000,hi +18.900000,75.900000,hi +19.000000,75.900000,hi +19.000000,76.000000,hi +18.900000,76.000000,hi +18.800000,76.000000,hi +18.800000,75.900000,hi +18.700000,75.900000,hi +18.700000,76.000000,hi +18.700000,76.100000,hi +18.700000,76.200000,hi +18.800000,76.200000,hi +18.800000,76.100000,hi +18.900000,76.100000,hi +19.000000,76.100000,hi +19.000000,76.200000,hi +18.900000,76.200000,hi +18.900000,76.300000,hi +19.000000,76.300000,hi +19.000000,76.400000,hi +18.900000,76.400000,hi +18.800000,76.400000,hi +18.800000,76.300000,hi +18.700000,76.300000,hi +18.700000,76.400000,hi +18.600000,76.400000,hi +18.500000,76.300000,hi +18.600000,76.300000,hi +18.600000,76.200000,hi +18.600000,76.100000,hi +18.500000,76.100000,hi +18.500000,76.200000,hi +18.400000,76.200000,hi +18.400000,76.100000,hi +18.300000,76.100000,hi +18.400000,76.300000,hi +18.500000,76.400000,hi +18.400000,76.400000,hi +18.300000,76.400000,hi +18.300000,76.300000,hi +18.200000,76.300000,hi +18.200000,76.400000,hi +18.100000,76.400000,hi +18.000000,76.400000,hi +18.000000,76.300000,hi +18.100000,76.300000,hi +18.100000,76.200000,hi +18.000000,76.200000,hi +18.000000,76.100000,hi +18.100000,76.100000,hi +18.200000,76.100000,hi +18.200000,76.200000,hi +18.300000,76.200000,hi +18.200000,76.000000,hi +18.100000,75.900000,hi +18.200000,75.900000,hi +18.200000,75.800000,hi +18.100000,75.800000,hi +18.000000,75.800000,hi +18.000000,75.900000,hi +18.100000,76.000000,hi +18.000000,76.000000,hi +17.900000,76.000000,hi +17.800000,76.000000,hi +17.800000,75.900000,hi +17.900000,75.900000,hi +17.900000,75.800000,hi +17.800000,75.800000,hi +17.700000,75.800000,hi +17.600000,75.800000,hi +17.600000,75.900000,hi +17.700000,75.900000,hi +17.700000,76.000000,hi +17.600000,76.000000,mr +17.600000,76.100000,hi +17.600000,76.200000,mr +17.700000,76.200000,hi +17.700000,76.100000,hi +17.800000,76.100000,hi +17.900000,76.100000,hi +17.900000,76.200000,hi +17.800000,76.200000,hi +17.800000,76.300000,hi +17.900000,76.300000,hi +17.900000,76.400000,hi +17.800000,76.400000,hi +17.700000,76.400000,mr +17.700000,76.300000,hi +17.600000,76.300000,hi +17.600000,76.400000,mr +17.500000,76.400000,hi +17.400000,76.400000,mr +17.400000,76.300000,mr +17.500000,76.300000,mr +17.500000,76.200000,hi +17.500000,76.100000,hi +17.400000,76.100000,hi +17.400000,76.200000,mr +17.300000,76.200000,hi +17.300000,76.100000,hi +17.200000,76.100000,hi +17.200000,76.200000,hi +17.200000,76.300000,hi +17.300000,76.300000,hi +17.300000,76.400000,hi +17.200000,76.400000,hi +17.100000,76.300000,hi +17.100000,76.400000,hi +17.000000,76.400000,hi +16.900000,76.400000,hi +16.900000,76.300000,hi +17.000000,76.300000,hi +17.000000,76.200000,hi +16.900000,76.200000,hi +16.900000,76.100000,hi +17.000000,76.100000,hi +17.100000,76.200000,hi +17.100000,76.100000,hi +17.100000,76.000000,hi +17.100000,75.900000,hi +17.000000,75.900000,hi +17.000000,76.000000,hi +16.900000,76.000000,hi +16.800000,75.900000,hi +16.900000,75.900000,hi +16.800000,75.800000,hi +16.900000,75.800000,hi +17.000000,75.800000,hi +17.100000,75.800000,hi +17.200000,75.800000,hi +17.300000,75.800000,hi +17.200000,75.900000,hi +17.200000,76.000000,hi +17.300000,76.000000,hi +17.300000,75.900000,hi +17.400000,75.900000,mr +17.400000,76.000000,hi +17.500000,76.000000,hi +17.500000,75.900000,hi +17.400000,75.800000,mr +17.500000,75.800000,hi +17.500000,75.700000,hi +17.500000,75.600000,hi +17.400000,75.600000,hi +17.400000,75.700000,hi +17.300000,75.700000,hi +17.200000,75.700000,hi +17.200000,75.600000,kn +17.300000,75.600000,hi +17.300000,75.500000,hi +17.200000,75.500000,hi +17.200000,75.400000,hi +17.300000,75.400000,hi +17.400000,75.400000,hi +17.400000,75.500000,hi +17.500000,75.500000,hi +17.500000,75.400000,hi +17.400000,75.300000,hi +17.400000,75.200000,hi +17.400000,75.100000,hi +17.400000,75.000000,hi +17.300000,75.000000,hi +17.300000,75.100000,hi +17.200000,75.000000,hi +17.200000,75.100000,hi +17.200000,75.200000,hi +17.300000,75.200000,hi +17.300000,75.300000,hi +17.200000,75.300000,hi +17.100000,75.300000,hi +17.000000,75.300000,hi +17.000000,75.200000,hi +17.100000,75.200000,hi +17.100000,75.100000,hi +17.100000,75.000000,hi +17.000000,75.000000,hi +17.000000,75.100000,hi +16.900000,75.100000,mr +16.900000,75.000000,hi +16.800000,75.000000,hi +16.800000,75.100000,hi +16.800000,75.200000,hi +16.900000,75.200000,mr +16.900000,75.300000,hi +16.800000,75.300000,hi +16.800000,75.400000,hi +16.800000,75.500000,hi +16.900000,75.500000,hi +16.900000,75.400000,hi +17.000000,75.400000,hi +17.100000,75.400000,hi +17.100000,75.500000,mr +17.000000,75.500000,hi +17.000000,75.600000,hi +17.100000,75.600000,hi +17.100000,75.700000,hi +17.000000,75.700000,hi +16.900000,75.700000,hi +16.900000,75.600000,hi +16.800000,75.600000,hi +16.800000,75.700000,hi +16.700000,75.700000,hi +16.700000,75.600000,hi +16.600000,75.600000,hi +16.600000,75.700000,hi +16.500000,75.700000,hi +16.500000,75.600000,hi +16.500000,75.500000,hi +16.400000,75.400000,hi +16.500000,75.400000,hi +16.600000,75.400000,hi +16.600000,75.500000,hi +16.700000,75.500000,hi +16.700000,75.400000,hi +16.700000,75.300000,hi +16.600000,75.300000,hi +16.600000,75.200000,hi +16.700000,75.200000,hi +16.700000,75.100000,hi +16.700000,75.000000,hi +16.600000,75.000000,hi +16.600000,75.100000,hi +16.500000,75.100000,hi +16.500000,75.000000,hi +16.400000,75.000000,hi +16.400000,75.100000,hi +16.400000,75.200000,hi +16.500000,75.200000,hi +16.500000,75.300000,hi +16.400000,75.300000,hi +16.300000,75.300000,hi +16.200000,75.200000,hi +16.300000,75.200000,hi +16.300000,75.100000,hi +16.300000,75.000000,hi +16.200000,75.000000,hi +16.200000,75.100000,hi +16.100000,75.100000,hi +16.100000,75.000000,hi +16.100000,75.200000,hi +16.200000,75.300000,hi +16.100000,75.300000,hi +16.100000,75.400000,hi +16.100000,75.500000,hi +16.200000,75.500000,hi +16.200000,75.400000,hi +16.300000,75.400000,hi +16.400000,75.500000,hi +16.300000,75.500000,hi +16.300000,75.600000,hi +16.400000,75.600000,hi +16.400000,75.700000,hi +16.300000,75.700000,hi +16.200000,75.700000,hi +16.200000,75.600000,hi +16.100000,75.600000,hi +16.100000,75.700000,hi +16.100000,75.800000,hi +16.200000,75.800000,hi +16.100000,75.900000,hi +16.100000,76.000000,hi +16.200000,76.000000,hi +16.200000,75.900000,hi +16.300000,75.900000,hi +16.300000,76.000000,hi +16.400000,76.000000,hi +16.400000,75.900000,hi +16.300000,75.800000,hi +16.400000,75.800000,hi +16.500000,75.800000,kn +16.600000,75.800000,hi +16.700000,75.800000,hi +16.700000,75.900000,hi +16.800000,76.000000,hi +16.700000,76.000000,hi +16.600000,76.000000,hi +16.600000,75.900000,hi +16.500000,75.900000,hi +16.500000,76.000000,hi +16.500000,76.100000,hi +16.500000,76.200000,hi +16.600000,76.200000,hi +16.600000,76.100000,hi +16.700000,76.100000,hi +16.800000,76.100000,hi +16.800000,76.200000,hi +16.700000,76.200000,hi +16.700000,76.300000,hi +16.800000,76.300000,hi +16.800000,76.400000,hi +16.700000,76.400000,hi +16.600000,76.400000,hi +16.600000,76.300000,hi +16.500000,76.300000,hi +16.500000,76.400000,hi +16.400000,76.400000,hi +16.300000,76.400000,hi +16.300000,76.300000,hi +16.400000,76.300000,hi +16.400000,76.200000,hi +16.400000,76.100000,hi +16.300000,76.100000,hi +16.300000,76.200000,hi +16.200000,76.200000,hi +16.200000,76.100000,hi +16.100000,76.100000,hi +16.100000,76.200000,hi +16.100000,76.300000,hi +16.200000,76.300000,hi +16.200000,76.400000,hi +16.100000,76.400000,hi +16.200000,76.600000,hi +16.200000,76.500000,hi +16.300000,76.500000,hi +16.400000,76.500000,hi +16.400000,76.600000,hi +16.300000,76.600000,hi +16.300000,76.700000,hi +16.400000,76.700000,hi +16.400000,76.800000,hi +16.300000,76.800000,hi +16.200000,76.700000,hi +16.200000,76.800000,hi +16.200000,76.900000,hi +16.300000,76.900000,hi +16.300000,77.000000,hi +16.200000,77.000000,hi +16.200000,77.100000,hi +16.300000,77.100000,hi +16.400000,77.100000,hi +16.500000,77.100000,hi +16.500000,77.000000,hi +16.400000,77.000000,hi +16.400000,76.900000,hi +16.500000,76.900000,hi +16.600000,76.900000,hi +16.600000,77.000000,hi +16.600000,77.100000,hi +16.700000,77.100000,hi +16.800000,77.100000,hi +16.800000,77.000000,hi +16.700000,77.000000,hi +16.700000,76.900000,hi +16.800000,76.900000,hi +16.800000,76.800000,hi +16.800000,76.700000,hi +16.700000,76.700000,hi +16.700000,76.800000,hi +16.600000,76.800000,hi +16.500000,76.800000,hi +16.500000,76.700000,hi +16.600000,76.700000,hi +16.600000,76.600000,hi +16.500000,76.600000,hi +16.500000,76.500000,hi +16.600000,76.500000,hi +16.700000,76.500000,hi +16.700000,76.600000,hi +16.800000,76.600000,hi +16.800000,76.500000,hi +16.900000,76.500000,hi +17.000000,76.500000,hi +17.000000,76.600000,hi +16.900000,76.600000,hi +16.900000,76.700000,hi +16.900000,76.800000,hi +17.000000,76.800000,hi +17.000000,76.700000,hi +17.100000,76.700000,hi +17.100000,76.800000,hi +17.200000,76.800000,hi +17.200000,76.700000,hi +17.200000,76.600000,hi +17.100000,76.600000,hi +17.100000,76.500000,hi +17.200000,76.500000,hi +17.300000,76.500000,hi +17.300000,76.600000,hi +17.400000,76.600000,hi +17.400000,76.500000,hi +17.500000,76.500000,hi +17.500000,76.600000,hi +17.500000,76.700000,hi +17.600000,76.800000,hi +17.500000,76.800000,hi +17.400000,76.800000,hi +17.400000,76.700000,hi +17.300000,76.700000,hi +17.300000,76.800000,hi +17.300000,76.900000,hi +17.300000,77.000000,hi +17.400000,77.000000,hi +17.400000,76.900000,hi +17.500000,76.900000,hi +17.600000,76.900000,hi +17.600000,77.000000,hi +17.500000,77.000000,hi +17.500000,77.100000,hi +17.600000,77.100000,hi +17.400000,77.100000,hi +17.300000,77.100000,hi +17.100000,77.100000,hi +17.200000,77.100000,hi +17.200000,77.000000,hi +17.200000,76.900000,hi +17.100000,76.900000,hi +17.100000,77.000000,kn +17.000000,77.000000,hi +17.000000,76.900000,hi +16.900000,76.900000,hi +16.900000,77.000000,hi +16.900000,77.100000,hi +17.000000,77.100000,hi +16.900000,77.200000,hi +17.000000,77.200000,hi +17.000000,77.300000,hi +16.900000,77.300000,hi +16.900000,77.400000,hi +17.000000,77.500000,kn +17.000000,77.400000,hi +17.100000,77.400000,hi +17.100000,77.500000,hi +17.200000,77.500000,hi +17.200000,77.400000,kn +17.200000,77.300000,hi +17.100000,77.300000,hi +17.100000,77.200000,kn +17.200000,77.200000,hi +17.300000,77.200000,hi +17.300000,77.300000,hi +17.400000,77.300000,hi +17.400000,77.200000,hi +17.500000,77.200000,hi +17.600000,77.200000,hi +17.600000,77.300000,hi +17.500000,77.300000,hi +17.500000,77.400000,hi +17.600000,77.400000,hi +17.600000,77.500000,te +17.500000,77.500000,te +17.400000,77.500000,kn +17.400000,77.400000,hi +17.300000,77.400000,hi +17.300000,77.500000,te +17.300000,77.600000,hi +17.300000,77.700000,hi +17.400000,77.700000,hi +17.400000,77.600000,hi +17.500000,77.600000,hi +17.600000,77.600000,te +17.600000,77.700000,hi +17.500000,77.700000,hi +17.500000,77.800000,hi +17.600000,77.800000,hi +17.600000,77.900000,hi +17.500000,77.900000,hi +17.400000,77.900000,hi +17.400000,77.800000,hi +17.300000,77.800000,hi +17.300000,77.900000,hi +17.200000,77.900000,hi +17.200000,77.800000,hi +17.200000,77.700000,hi +17.200000,77.600000,hi +17.100000,77.600000,hi +17.100000,77.700000,hi +17.000000,77.600000,hi +17.000000,77.700000,hi +17.000000,77.800000,hi +17.100000,77.800000,hi +17.100000,77.900000,hi +17.000000,77.900000,hi +16.900000,77.900000,hi +16.900000,77.800000,hi +16.800000,77.800000,hi +16.800000,77.900000,hi +16.700000,77.900000,hi +16.600000,77.900000,hi +16.600000,77.800000,hi +16.700000,77.800000,hi +16.700000,77.700000,hi +16.600000,77.700000,hi +16.600000,77.600000,hi +16.700000,77.600000,hi +16.800000,77.600000,hi +16.800000,77.700000,hi +16.900000,77.700000,hi +16.900000,77.600000,hi +16.900000,77.500000,hi +16.800000,77.500000,hi +16.800000,77.400000,te +16.800000,77.300000,hi +16.800000,77.200000,hi +16.700000,77.300000,hi +16.700000,77.200000,hi +16.600000,77.200000,hi +16.600000,77.300000,hi +16.600000,77.400000,kn +16.700000,77.400000,te +16.700000,77.500000,hi +16.600000,77.500000,hi +16.500000,77.500000,hi +16.400000,77.500000,te +16.400000,77.400000,hi +16.500000,77.400000,kn +16.500000,77.300000,hi +16.500000,77.200000,hi +16.400000,77.200000,hi +16.400000,77.300000,hi +16.300000,77.300000,hi +16.300000,77.200000,hi +16.200000,77.200000,hi +16.200000,77.300000,hi +16.200000,77.400000,hi +16.300000,77.400000,hi +16.300000,77.500000,hi +16.200000,77.500000,hi +16.200000,77.600000,kn +16.200000,77.700000,hi +16.300000,77.700000,hi +16.300000,77.600000,kn +16.400000,77.600000,kn +16.500000,77.600000,hi +16.500000,77.700000,hi +16.400000,77.700000,hi +16.400000,77.800000,hi +16.500000,77.800000,hi +16.500000,77.900000,hi +16.400000,77.900000,hi +16.300000,77.900000,hi +16.300000,77.800000,hi +16.200000,77.800000,hi +16.200000,77.900000,hi +16.200000,78.000000,hi +16.300000,78.000000,hi +16.300000,78.100000,hi +16.200000,78.100000,hi +16.300000,78.200000,hi +16.400000,78.200000,hi +16.500000,78.200000,hi +16.500000,78.100000,hi +16.400000,78.100000,hi +16.400000,78.000000,hi +16.500000,78.000000,hi +16.600000,78.000000,hi +16.600000,78.100000,hi +16.700000,78.100000,hi +16.700000,78.000000,hi +16.800000,78.000000,hi +16.900000,78.000000,hi +16.900000,78.100000,hi +16.800000,78.100000,hi +16.800000,78.200000,hi +16.900000,78.200000,hi +16.700000,78.200000,hi +16.600000,78.200000,hi +16.600000,78.300000,hi +16.600000,78.400000,hi +16.700000,78.400000,hi +16.700000,78.300000,hi +16.800000,78.300000,hi +16.900000,78.300000,hi +16.900000,78.400000,hi +16.800000,78.400000,hi +16.800000,78.500000,hi +16.900000,78.500000,hi +16.900000,78.600000,hi +16.800000,78.600000,hi +16.700000,78.600000,hi +16.700000,78.500000,hi +16.600000,78.500000,hi +16.600000,78.600000,hi +16.500000,78.600000,hi +16.500000,78.500000,hi +16.500000,78.400000,hi +16.500000,78.300000,hi +16.400000,78.300000,hi +16.400000,78.400000,hi +16.300000,78.300000,hi +16.300000,78.400000,hi +16.300000,78.500000,hi +16.400000,78.500000,hi +16.400000,78.600000,hi +16.300000,78.600000,hi +16.300000,78.700000,hi +16.300000,78.800000,hi +16.400000,78.800000,hi +16.400000,78.700000,hi +16.500000,78.700000,hi +16.600000,78.700000,hi +16.600000,78.800000,hi +16.500000,78.800000,hi +16.500000,78.900000,hi +16.600000,78.900000,hi +16.600000,79.000000,hi +16.500000,79.000000,hi +16.400000,79.000000,hi +16.400000,78.900000,hi +16.300000,78.900000,hi +16.300000,79.000000,hi +16.300000,79.100000,hi +16.400000,79.100000,hi +16.300000,79.200000,hi +16.300000,79.300000,hi +16.400000,79.300000,hi +16.400000,79.200000,hi +16.500000,79.200000,hi +16.500000,79.300000,hi +16.600000,79.300000,hi +16.600000,79.200000,hi +16.500000,79.100000,hi +16.600000,79.100000,hi +16.700000,79.100000,hi +16.800000,79.100000,hi +16.700000,79.200000,hi +16.700000,79.300000,hi +16.800000,79.300000,hi +16.800000,79.200000,hi +16.900000,79.200000,hi +16.900000,79.300000,hi +17.000000,79.300000,hi +17.000000,79.200000,hi +16.900000,79.100000,hi +16.900000,79.000000,hi +16.900000,78.900000,hi +16.800000,78.900000,hi +16.800000,79.000000,hi +16.700000,79.000000,hi +16.700000,78.900000,hi +16.700000,78.800000,hi +16.700000,78.700000,hi +16.800000,78.700000,hi +16.800000,78.800000,hi +16.900000,78.800000,hi +16.900000,78.700000,hi +17.000000,78.700000,hi +17.000000,78.800000,hi +17.100000,78.800000,hi +17.100000,78.700000,hi +17.200000,78.700000,hi +17.300000,78.700000,hi +17.300000,78.800000,hi +17.200000,78.800000,hi +17.200000,78.900000,hi +17.300000,78.900000,hi +17.300000,79.000000,hi +17.200000,79.000000,hi +17.100000,79.000000,hi +17.100000,78.900000,hi +17.000000,78.900000,hi +17.000000,79.000000,hi +17.000000,79.100000,hi +17.100000,79.100000,hi +17.100000,79.300000,hi +17.100000,79.200000,hi +17.200000,79.200000,hi +17.200000,79.300000,hi +17.300000,79.300000,hi +17.300000,79.200000,hi +17.200000,79.100000,hi +17.300000,79.100000,hi +17.400000,79.100000,hi +17.500000,79.100000,hi +17.400000,79.200000,hi +17.400000,79.300000,hi +17.500000,79.300000,hi +17.500000,79.200000,hi +17.600000,79.200000,hi +17.600000,79.300000,hi +17.700000,79.300000,hi +17.700000,79.200000,hi +17.600000,79.100000,hi +17.700000,79.100000,hi +17.700000,79.000000,hi +17.700000,78.900000,hi +17.600000,78.900000,hi +17.600000,79.000000,hi +17.500000,79.000000,hi +17.400000,79.000000,hi +17.400000,78.900000,hi +17.500000,78.900000,hi +17.500000,78.800000,hi +17.400000,78.800000,hi +17.400000,78.700000,hi +17.500000,78.700000,hi +17.600000,78.700000,te +17.600000,78.800000,hi +17.700000,78.800000,hi +17.700000,78.700000,te +17.700000,78.600000,hi +17.600000,78.600000,hi +17.600000,78.500000,hi +17.700000,78.500000,hi +17.700000,78.400000,hi +17.600000,78.300000,hi +17.600000,78.400000,hi +17.500000,78.400000,hi +17.500000,78.300000,hi +17.400000,78.300000,hi +17.400000,78.400000,hi +17.400000,78.500000,te +17.500000,78.500000,te +17.500000,78.600000,hi +17.400000,78.600000,hi +17.300000,78.600000,hi +17.300000,78.500000,te +17.200000,78.500000,hi +17.200000,78.600000,hi +17.100000,78.600000,hi +17.000000,78.600000,hi +17.000000,78.500000,hi +17.100000,78.500000,hi +17.100000,78.400000,hi +17.000000,78.400000,hi +17.000000,78.300000,hi +17.100000,78.300000,te +17.200000,78.300000,te +17.200000,78.400000,te +17.300000,78.400000,te +17.300000,78.300000,hi +17.300000,78.200000,hi +17.200000,78.200000,hi +17.000000,78.200000,hi +17.100000,78.200000,hi +17.100000,78.100000,hi +17.000000,78.100000,hi +17.000000,78.000000,hi +17.100000,78.000000,hi +17.200000,78.000000,hi +17.200000,78.100000,hi +17.300000,78.100000,hi +17.300000,78.000000,hi +17.400000,78.000000,hi +17.400000,78.100000,hi +17.400000,78.200000,hi +17.500000,78.200000,hi +17.600000,78.200000,hi +17.600000,78.100000,hi +17.500000,78.100000,hi +17.500000,78.000000,hi +17.600000,78.000000,hi +17.700000,78.000000,hi +17.800000,78.000000,hi +17.800000,78.100000,hi +17.700000,78.100000,hi +17.700000,78.200000,hi +17.800000,78.200000,hi +17.900000,78.200000,hi +18.000000,78.200000,hi +18.000000,78.100000,hi +17.900000,78.100000,hi +17.900000,78.000000,hi +18.000000,78.000000,hi +18.100000,78.000000,hi +18.100000,78.100000,hi +18.200000,78.100000,hi +18.200000,78.000000,hi +18.300000,78.000000,hi +18.400000,78.000000,hi +18.400000,78.100000,hi +18.300000,78.100000,hi +18.300000,78.200000,hi +18.400000,78.200000,hi +18.200000,78.200000,hi +18.100000,78.200000,hi +18.100000,78.300000,hi +18.100000,78.400000,hi +18.200000,78.400000,hi +18.200000,78.300000,hi +18.300000,78.300000,hi +18.400000,78.300000,hi +18.400000,78.400000,hi +18.300000,78.400000,hi +18.300000,78.500000,hi +18.400000,78.500000,hi +18.400000,78.600000,hi +18.300000,78.600000,hi +18.200000,78.600000,hi +18.200000,78.500000,hi +18.100000,78.500000,hi +18.100000,78.600000,hi +18.000000,78.600000,hi +17.900000,78.500000,hi +18.000000,78.500000,hi +18.000000,78.400000,hi +18.000000,78.300000,hi +17.900000,78.300000,hi +17.900000,78.400000,hi +17.800000,78.400000,hi +17.800000,78.300000,hi +17.700000,78.300000,hi +17.800000,78.500000,hi +17.900000,78.600000,hi +17.800000,78.600000,hi +17.800000,78.700000,hi +17.800000,78.800000,hi +17.900000,78.800000,hi +17.900000,78.700000,hi +18.000000,78.700000,hi +18.000000,78.800000,hi +18.000000,78.900000,hi +18.100000,78.900000,hi +18.100000,79.000000,hi +18.000000,79.000000,hi +17.900000,79.000000,hi +17.900000,78.900000,hi +17.800000,78.900000,hi +17.800000,79.000000,hi +17.800000,79.100000,hi +17.900000,79.100000,hi +17.800000,79.200000,hi +17.800000,79.300000,hi +17.900000,79.300000,hi +17.900000,79.200000,hi +18.000000,79.200000,hi +18.000000,79.300000,hi +18.100000,79.300000,hi +18.100000,79.200000,hi +18.000000,79.100000,hi +18.100000,79.100000,hi +18.200000,79.100000,hi +18.300000,79.100000,hi +18.200000,79.200000,hi +18.200000,79.300000,hi +18.300000,79.300000,hi +18.300000,79.200000,hi +18.400000,79.200000,hi +18.400000,79.300000,hi +18.500000,79.300000,hi +18.400000,79.100000,hi +18.400000,79.000000,hi +18.400000,78.900000,hi +18.300000,78.900000,hi +18.300000,79.000000,hi +18.200000,79.000000,hi +18.200000,78.900000,hi +18.200000,78.800000,hi +18.100000,78.800000,hi +18.100000,78.700000,hi +18.200000,78.700000,hi +18.300000,78.700000,hi +18.300000,78.800000,hi +18.400000,78.800000,hi +18.400000,78.700000,hi +18.500000,78.700000,hi +18.500000,78.800000,hi +18.600000,78.800000,hi +18.600000,78.700000,hi +18.700000,78.700000,hi +18.800000,78.700000,hi +18.800000,78.800000,hi +18.700000,78.800000,hi +18.700000,78.900000,hi +18.800000,78.900000,hi +18.800000,79.000000,hi +18.700000,79.000000,hi +18.600000,79.000000,hi +18.600000,78.900000,hi +18.500000,78.900000,hi +18.500000,79.000000,hi +18.500000,79.100000,hi +18.600000,79.100000,hi +18.500000,79.200000,hi +18.600000,79.300000,hi +18.600000,79.200000,hi +18.700000,79.200000,hi +18.700000,79.300000,hi +18.800000,79.300000,hi +18.800000,79.200000,hi +18.700000,79.100000,hi +18.800000,79.100000,hi +18.900000,79.100000,hi +19.000000,79.100000,hi +18.900000,79.200000,hi +18.900000,79.300000,hi +19.000000,79.300000,hi +19.000000,79.200000,hi +19.100000,79.200000,hi +19.100000,79.300000,hi +19.200000,79.300000,hi +19.200000,79.200000,hi +19.100000,79.100000,hi +19.200000,79.100000,hi +19.200000,79.000000,hi +19.200000,78.900000,hi +19.100000,78.900000,hi +19.100000,79.000000,hi +19.000000,79.000000,hi +18.900000,79.000000,hi +18.900000,78.900000,hi +19.000000,78.900000,hi +19.000000,78.800000,hi +18.900000,78.800000,hi +18.900000,78.700000,hi +19.000000,78.700000,hi +19.100000,78.700000,hi +19.100000,78.800000,hi +19.200000,78.800000,hi +19.200000,78.700000,hi +19.200000,78.600000,hi +19.100000,78.600000,hi +19.100000,78.500000,hi +19.200000,78.500000,hi +19.100000,78.300000,hi +19.100000,78.400000,hi +19.000000,78.400000,hi +19.000000,78.300000,hi +18.900000,78.300000,hi +18.900000,78.400000,hi +18.900000,78.500000,hi +19.000000,78.500000,hi +19.000000,78.600000,hi +18.900000,78.600000,hi +18.800000,78.600000,hi +18.800000,78.500000,hi +18.700000,78.500000,hi +18.700000,78.600000,hi +18.600000,78.600000,hi +18.500000,78.600000,hi +18.500000,78.500000,hi +18.600000,78.500000,hi +18.600000,78.400000,hi +18.500000,78.400000,hi +18.500000,78.300000,hi +18.600000,78.300000,hi +18.700000,78.300000,hi +18.700000,78.400000,hi +18.800000,78.400000,hi +18.800000,78.300000,hi +18.800000,78.200000,hi +18.700000,78.200000,hi +18.500000,78.200000,hi +18.600000,78.200000,hi +18.600000,78.100000,hi +18.500000,78.100000,hi +18.500000,78.000000,hi +18.600000,78.000000,hi +18.700000,78.000000,hi +18.700000,78.100000,te +18.800000,78.100000,hi +18.800000,78.000000,hi +18.900000,78.000000,hi +18.900000,78.100000,hi +18.900000,78.200000,hi +19.000000,78.200000,hi +19.100000,78.200000,hi +19.100000,78.100000,hi +19.000000,78.100000,hi +19.000000,78.000000,hi +19.100000,78.000000,te +19.100000,77.900000,hi +19.100000,77.800000,mr +19.000000,77.800000,mr +19.000000,77.900000,hi +18.900000,77.900000,hi +18.800000,77.900000,hi +18.800000,77.800000,mr +18.900000,77.800000,mr +18.900000,77.700000,mr +18.800000,77.700000,mr +18.800000,77.600000,hi +18.900000,77.600000,hi +19.000000,77.600000,mr +19.000000,77.700000,mr +19.100000,77.700000,mr +19.100000,77.600000,mr +19.100000,77.500000,mr +19.000000,77.500000,hi +19.000000,77.400000,hi +19.100000,77.400000,mr +19.100000,77.300000,mr +19.100000,77.200000,hi +19.000000,77.200000,hi +19.000000,77.300000,hi +18.900000,77.300000,hi +18.900000,77.200000,hi +18.800000,77.200000,hi +18.800000,77.300000,hi +18.800000,77.400000,hi +18.900000,77.400000,mr +18.900000,77.500000,mr +18.800000,77.500000,hi +18.700000,77.500000,hi +18.600000,77.500000,hi +18.600000,77.400000,hi +18.700000,77.400000,hi +18.700000,77.300000,hi +18.700000,77.200000,hi +18.600000,77.200000,hi +18.600000,77.300000,hi +18.500000,77.300000,mr +18.500000,77.200000,hi +18.400000,77.200000,mr +18.400000,77.300000,mr +18.400000,77.400000,mr +18.500000,77.400000,hi +18.500000,77.500000,mr +18.400000,77.500000,mr +18.400000,77.600000,te +18.500000,77.700000,te +18.500000,77.600000,mr +18.600000,77.600000,mr +18.700000,77.600000,hi +18.700000,77.700000,mr +18.600000,77.700000,te +18.600000,77.800000,hi +18.700000,77.800000,te +18.700000,77.900000,hi +18.600000,77.900000,hi +18.500000,77.800000,hi +18.500000,77.900000,hi +18.400000,77.900000,hi +18.300000,77.900000,hi +18.300000,77.800000,hi +18.400000,77.800000,hi +18.400000,77.700000,hi +18.300000,77.600000,te +18.300000,77.700000,hi +18.200000,77.700000,hi +18.200000,77.600000,hi +18.100000,77.600000,kn +18.100000,77.700000,hi +18.100000,77.800000,hi +18.200000,77.800000,hi +18.200000,77.900000,hi +18.100000,77.900000,hi +18.000000,77.900000,hi +18.000000,77.800000,hi +17.900000,77.800000,hi +17.900000,77.900000,hi +17.800000,77.900000,hi +17.700000,77.900000,hi +17.700000,77.800000,hi +17.800000,77.800000,hi +17.800000,77.700000,te +17.700000,77.700000,te +17.700000,77.600000,te +17.800000,77.600000,te +17.900000,77.600000,kn +17.900000,77.700000,te +18.000000,77.700000,te +18.000000,77.600000,kn +18.000000,77.500000,hi +18.000000,77.400000,hi +17.900000,77.400000,kn +17.900000,77.500000,kn +17.800000,77.500000,kn +17.700000,77.500000,kn +17.700000,77.400000,hi +17.800000,77.400000,kn +17.800000,77.300000,hi +17.700000,77.300000,hi +17.700000,77.200000,hi +17.800000,77.200000,hi +17.900000,77.200000,hi +17.900000,77.300000,hi +18.000000,77.300000,hi +18.000000,77.200000,kn +18.100000,77.200000,kn +18.100000,77.300000,kn +18.100000,77.400000,hi +18.100000,77.500000,hi +18.200000,77.500000,hi +18.200000,77.400000,hi +18.300000,77.500000,mr +18.300000,77.400000,kn +18.300000,77.300000,mr +18.200000,77.300000,kn +18.200000,77.200000,kn +18.300000,77.200000,mr +18.200000,77.100000,mr +18.300000,77.100000,mr +18.300000,77.000000,mr +18.300000,76.900000,mr +18.200000,76.900000,mr +18.200000,77.000000,mr +18.100000,77.000000,kn +18.100000,76.900000,mr +18.000000,76.900000,mr +18.000000,77.000000,kn +18.000000,77.100000,kn +18.100000,77.100000,kn +17.900000,77.100000,hi +17.700000,77.100000,hi +17.800000,77.100000,hi +17.800000,77.000000,hi +17.700000,77.000000,hi +17.700000,76.900000,hi +17.800000,76.900000,kn +17.900000,77.000000,kn +17.900000,76.900000,kn +17.900000,76.800000,mr +17.900000,76.700000,mr +17.800000,76.700000,mr +17.800000,76.800000,kn +17.700000,76.800000,hi +17.600000,76.700000,hi +17.700000,76.700000,mr +17.700000,76.600000,mr +17.600000,76.600000,hi +17.600000,76.500000,kn +17.700000,76.500000,mr +17.800000,76.500000,hi +17.800000,76.600000,hi +17.900000,76.600000,hi +17.900000,76.500000,hi +18.000000,76.500000,hi +18.100000,76.500000,hi +18.100000,76.600000,hi +18.000000,76.600000,hi +18.000000,76.700000,mr +18.000000,76.800000,mr +18.100000,76.800000,hi +18.100000,76.700000,mr +18.200000,76.700000,hi +18.200000,76.800000,hi +18.300000,76.800000,hi +18.300000,76.700000,hi +18.300000,76.600000,hi +18.200000,76.600000,hi +18.200000,76.500000,hi +18.300000,76.500000,hi +18.400000,76.500000,mr +18.400000,76.600000,hi +18.500000,76.600000,hi +18.500000,76.500000,hi +18.600000,76.500000,hi +18.700000,76.600000,hi +18.600000,76.600000,hi +18.600000,76.700000,hi +18.700000,76.700000,hi +18.700000,76.800000,hi +18.600000,76.800000,hi +18.500000,76.800000,hi +18.500000,76.700000,hi +18.400000,76.700000,hi +18.400000,76.800000,hi +18.400000,76.900000,mr +18.500000,76.900000,mr +18.500000,77.000000,hi +18.400000,77.000000,mr +18.400000,77.100000,mr +18.500000,77.100000,mr +18.600000,77.100000,hi +18.700000,77.100000,hi +18.700000,77.000000,hi +18.600000,77.000000,mr +18.600000,76.900000,mr +18.700000,76.900000,hi +18.800000,76.900000,hi +18.900000,76.900000,hi +18.900000,77.000000,hi +18.800000,77.000000,hi +18.800000,77.100000,hi +18.900000,77.100000,hi +19.000000,77.100000,hi +19.100000,77.100000,hi +19.100000,77.000000,hi +19.000000,77.000000,hi +19.000000,76.900000,hi +19.000000,76.800000,hi +19.000000,76.700000,hi +18.900000,76.700000,hi +18.900000,76.800000,mr +18.800000,76.800000,hi +18.800000,76.700000,hi +18.800000,76.600000,hi +18.700000,76.500000,hi +18.800000,76.500000,hi +18.900000,76.500000,hi +18.900000,76.600000,hi +19.000000,76.600000,hi +19.000000,76.500000,mr +19.100000,76.500000,mr +19.100000,76.600000,hi +19.200000,76.600000,hi +19.200000,76.500000,hi +19.300000,76.500000,hi +19.400000,76.500000,hi +19.400000,76.600000,hi +19.300000,76.600000,hi +19.300000,76.700000,hi +19.400000,76.700000,hi +19.400000,76.800000,hi +19.300000,76.800000,hi +19.200000,76.800000,hi +19.200000,76.700000,hi +19.100000,76.700000,hi +19.100000,76.800000,hi +19.100000,76.900000,hi +19.200000,76.900000,hi +19.200000,77.000000,mr +19.200000,77.100000,hi +19.300000,77.100000,hi +19.400000,77.100000,hi +19.400000,77.000000,hi +19.300000,77.000000,hi +19.300000,76.900000,hi +19.400000,76.900000,hi +19.500000,76.900000,hi +19.600000,76.900000,hi +19.600000,77.000000,hi +19.500000,77.000000,mr +19.500000,77.100000,hi +19.600000,77.100000,hi +19.700000,77.100000,mr +19.800000,77.100000,hi +19.800000,77.000000,hi +19.700000,77.000000,hi +19.700000,76.900000,hi +19.800000,76.900000,hi +19.800000,76.800000,hi +19.800000,76.700000,hi +19.700000,76.700000,hi +19.700000,76.800000,hi +19.600000,76.800000,hi +19.500000,76.800000,hi +19.500000,76.700000,hi +19.600000,76.700000,hi +19.600000,76.600000,hi +19.500000,76.600000,hi +19.500000,76.500000,hi +19.600000,76.500000,hi +19.700000,76.500000,hi +19.700000,76.600000,hi +19.800000,76.600000,hi +19.800000,76.500000,hi +19.900000,76.500000,hi +20.000000,76.500000,hi +20.000000,76.600000,hi +19.900000,76.600000,hi +19.900000,76.700000,hi +19.900000,76.800000,hi +20.000000,76.800000,mr +20.000000,76.700000,mr +20.100000,76.700000,hi +20.100000,76.800000,mr +20.200000,76.800000,mr +20.200000,76.700000,mr +20.100000,76.600000,mr +20.100000,76.500000,hi +20.200000,76.500000,hi +20.200000,76.600000,mr +20.300000,76.600000,hi +20.300000,76.500000,hi +20.400000,76.500000,hi +20.500000,76.500000,mr +20.500000,76.600000,mr +20.400000,76.600000,mr +20.400000,76.700000,mr +20.500000,76.700000,mr +20.500000,76.800000,mr +20.400000,76.800000,mr +20.300000,76.700000,mr +20.300000,76.800000,mr +20.300000,76.900000,mr +20.300000,77.000000,mr +20.400000,77.000000,mr +20.400000,76.900000,mr +20.500000,76.900000,mr +20.500000,77.000000,mr +20.500000,77.100000,mr +20.600000,77.100000,mr +20.400000,77.100000,mr +20.300000,77.100000,mr +20.100000,77.100000,hi +20.200000,77.100000,hi +20.200000,77.000000,hi +20.200000,76.900000,hi +20.100000,76.900000,hi +20.100000,77.000000,hi +20.000000,77.000000,hi +20.000000,76.900000,hi +19.900000,76.900000,hi +19.900000,77.000000,hi +19.900000,77.100000,hi +20.000000,77.100000,hi +19.900000,77.200000,hi +20.000000,77.200000,hi +20.000000,77.300000,hi +19.900000,77.300000,hi +19.900000,77.400000,hi +19.900000,77.500000,mr +20.000000,77.500000,mr +20.000000,77.400000,mr +20.100000,77.400000,hi +20.100000,77.500000,mr +20.200000,77.500000,hi +20.200000,77.400000,hi +20.200000,77.300000,hi +20.100000,77.300000,hi +20.100000,77.200000,hi +20.200000,77.200000,hi +20.300000,77.200000,hi +20.300000,77.300000,mr +20.400000,77.300000,mr +20.400000,77.200000,mr +20.500000,77.200000,mr +20.600000,77.200000,mr +20.600000,77.300000,mr +20.500000,77.300000,mr +20.500000,77.400000,mr +20.600000,77.400000,mr +20.600000,77.500000,mr +20.500000,77.500000,mr +20.400000,77.500000,mr +20.400000,77.400000,mr +20.300000,77.400000,mr +20.300000,77.500000,mr +20.300000,77.600000,mr +20.300000,77.700000,mr +20.400000,77.700000,mr +20.400000,77.600000,mr +20.500000,77.600000,mr +20.600000,77.600000,mr +20.600000,77.700000,mr +20.500000,77.700000,mr +20.500000,77.800000,mr +20.600000,77.800000,mr +20.600000,77.900000,mr +20.500000,77.900000,mr +20.400000,77.900000,mr +20.400000,77.800000,mr +20.300000,77.800000,mr +20.300000,77.900000,mr +20.200000,77.900000,mr +20.100000,77.800000,mr +20.200000,77.800000,mr +20.200000,77.700000,mr +20.200000,77.600000,hi +20.100000,77.600000,mr +20.100000,77.700000,mr +20.000000,77.700000,mr +20.000000,77.600000,mr +19.900000,77.600000,mr +20.000000,77.800000,mr +20.100000,77.900000,mr +20.000000,77.900000,mr +19.900000,77.900000,mr +19.900000,77.800000,mr +19.800000,77.800000,hi +19.800000,77.900000,mr +19.700000,77.900000,hi +19.600000,77.900000,hi +19.600000,77.800000,mr +19.700000,77.800000,mr +19.700000,77.700000,hi +19.600000,77.700000,mr +19.600000,77.600000,hi +19.700000,77.600000,hi +19.800000,77.600000,mr +19.800000,77.700000,mr +19.900000,77.700000,mr +19.800000,77.500000,mr +19.700000,77.500000,mr +19.700000,77.400000,hi +19.800000,77.400000,hi +19.800000,77.300000,hi +19.800000,77.200000,hi +19.700000,77.200000,hi +19.700000,77.300000,hi +19.600000,77.300000,hi +19.600000,77.200000,hi +19.500000,77.200000,hi +19.500000,77.300000,hi +19.600000,77.400000,hi +19.600000,77.500000,hi +19.500000,77.500000,hi +19.400000,77.500000,hi +19.400000,77.400000,hi +19.500000,77.400000,hi +19.400000,77.200000,hi +19.400000,77.300000,hi +19.300000,77.300000,hi +19.300000,77.200000,hi +19.200000,77.200000,hi +19.200000,77.300000,hi +19.200000,77.400000,hi +19.300000,77.400000,hi +19.300000,77.500000,hi +19.200000,77.500000,mr +19.200000,77.600000,mr +19.200000,77.700000,hi +19.300000,77.700000,hi +19.300000,77.600000,mr +19.400000,77.600000,hi +19.500000,77.600000,hi +19.500000,77.700000,hi +19.400000,77.700000,hi +19.400000,77.800000,hi +19.500000,77.800000,hi +19.500000,77.900000,hi +19.400000,77.900000,hi +19.300000,77.900000,mr +19.300000,77.800000,mr +19.200000,77.800000,mr +19.200000,77.900000,te +19.200000,78.000000,hi +19.300000,78.000000,te +19.300000,78.100000,hi +19.200000,78.100000,hi +19.200000,78.200000,hi +19.300000,78.200000,hi +19.400000,78.200000,mr +19.500000,78.200000,mr +19.500000,78.100000,hi +19.400000,78.100000,hi +19.400000,78.000000,hi +19.500000,78.000000,hi +19.600000,78.000000,hi +19.600000,78.100000,mr +19.700000,78.100000,mr +19.700000,78.000000,hi +19.800000,78.000000,mr +19.900000,78.000000,mr +19.900000,78.100000,mr +19.800000,78.100000,mr +19.800000,78.200000,mr +19.900000,78.200000,mr +19.700000,78.200000,mr +19.600000,78.200000,mr +19.600000,78.300000,mr +19.600000,78.400000,te +19.700000,78.400000,te +19.700000,78.300000,te +19.800000,78.300000,mr +19.900000,78.300000,mr +19.900000,78.400000,mr +19.800000,78.400000,te +19.800000,78.500000,te +19.900000,78.500000,mr +19.900000,78.600000,mr +19.800000,78.600000,te +19.700000,78.600000,te +19.700000,78.500000,te +19.600000,78.500000,te +19.600000,78.600000,te +19.500000,78.600000,te +19.400000,78.600000,hi +19.400000,78.500000,hi +19.500000,78.500000,hi +19.500000,78.400000,te +19.500000,78.300000,te +19.400000,78.300000,hi +19.400000,78.400000,hi +19.300000,78.400000,hi +19.300000,78.300000,hi +19.200000,78.300000,hi +19.200000,78.400000,hi +19.300000,78.500000,hi +19.300000,78.600000,hi +19.300000,78.700000,hi +19.300000,78.800000,hi +19.400000,78.800000,hi +19.400000,78.700000,hi +19.500000,78.700000,te +19.500000,78.800000,hi +19.500000,78.900000,mr +19.600000,78.900000,mr +19.600000,79.000000,mr +19.500000,79.000000,mr +19.400000,79.000000,hi +19.400000,78.900000,hi +19.300000,78.900000,hi +19.300000,79.000000,hi +19.300000,79.100000,hi +19.400000,79.100000,te +19.300000,79.200000,hi +19.300000,79.300000,hi +19.400000,79.300000,hi +19.400000,79.200000,hi +19.500000,79.200000,mr +19.500000,79.300000,te +19.600000,79.300000,mr +19.600000,79.200000,mr +19.500000,79.100000,mr +19.600000,79.100000,mr +19.700000,79.100000,mr +19.800000,79.100000,mr +19.700000,79.200000,mr +19.700000,79.300000,mr +19.800000,79.300000,mr +19.800000,79.200000,mr +19.900000,79.200000,mr +19.900000,79.300000,mr +20.000000,79.300000,mr +19.900000,79.100000,mr +19.900000,79.000000,mr +19.900000,78.900000,mr +19.800000,78.900000,mr +19.800000,79.000000,mr +19.700000,79.000000,mr +19.700000,78.900000,mr +19.700000,78.800000,mr +19.600000,78.800000,mr +19.600000,78.700000,te +19.700000,78.700000,te +19.800000,78.700000,mr +19.800000,78.800000,mr +19.900000,78.800000,mr +19.900000,78.700000,mr +20.000000,78.700000,mr +20.000000,78.800000,mr +20.100000,78.800000,mr +20.100000,78.700000,mr +20.200000,78.700000,mr +20.300000,78.700000,mr +20.300000,78.800000,mr +20.200000,78.800000,mr +20.200000,78.900000,mr +20.300000,78.900000,mr +20.300000,79.000000,mr +20.200000,79.000000,mr +20.100000,79.000000,mr +20.100000,78.900000,mr +20.000000,78.900000,mr +20.000000,79.000000,mr +20.000000,79.100000,mr +20.100000,79.100000,mr +20.000000,79.200000,mr +20.100000,79.300000,mr +20.100000,79.200000,mr +20.200000,79.200000,mr +20.200000,79.300000,mr +20.300000,79.300000,mr +20.300000,79.200000,mr +20.200000,79.100000,mr +20.300000,79.100000,mr +20.400000,79.100000,mr +20.500000,79.100000,vi +20.400000,79.200000,mr +20.400000,79.300000,mr +20.500000,79.300000,mr +20.500000,79.200000,mr +20.600000,79.200000,vi +20.600000,79.300000,mr +20.700000,79.300000,mr +20.700000,79.200000,mr +20.600000,79.100000,vi +20.700000,79.100000,mr +20.700000,79.000000,vi +20.700000,78.900000,mr +20.600000,78.900000,mr +20.600000,79.000000,vi +20.500000,79.000000,mr +20.400000,79.000000,mr +20.400000,78.900000,mr +20.500000,78.900000,mr +20.500000,78.800000,mr +20.400000,78.800000,mr +20.400000,78.700000,mr +20.500000,78.700000,mr +20.600000,78.700000,mr +20.600000,78.800000,mr +20.700000,78.800000,mr +20.700000,78.700000,mr +20.700000,78.600000,mr +20.600000,78.600000,mr +20.600000,78.500000,mr +20.700000,78.500000,mr +20.600000,78.300000,mr +20.600000,78.400000,mr +20.500000,78.400000,mr +20.500000,78.300000,mr +20.400000,78.300000,mr +20.400000,78.400000,mr +20.400000,78.500000,mr +20.500000,78.500000,mr +20.500000,78.600000,mr +20.400000,78.600000,mr +20.300000,78.600000,mr +20.300000,78.500000,mr +20.200000,78.500000,mr +20.200000,78.600000,mr +20.100000,78.600000,mr +20.000000,78.600000,mr +20.000000,78.500000,mr +20.100000,78.500000,mr +20.100000,78.400000,mr +20.000000,78.400000,mr +20.000000,78.300000,mr +20.100000,78.300000,mr +20.200000,78.300000,mr +20.200000,78.400000,mr +20.300000,78.400000,mr +20.300000,78.300000,mr +20.300000,78.200000,mr +20.200000,78.200000,mr +20.000000,78.200000,mr +20.100000,78.200000,mr +20.100000,78.100000,mr +20.000000,78.100000,mr +20.000000,78.000000,mr +20.100000,78.000000,mr +20.200000,78.000000,mr +20.200000,78.100000,mr +20.300000,78.100000,mr +20.300000,78.000000,mr +20.400000,78.000000,mr +20.400000,78.100000,mr +20.400000,78.200000,mr +20.500000,78.200000,mr +20.600000,78.200000,mr +20.600000,78.100000,mr +20.500000,78.100000,mr +20.500000,78.000000,mr +20.600000,78.000000,mr +20.700000,78.000000,mr +20.800000,78.000000,mr +20.800000,78.100000,mr +20.700000,78.100000,mr +20.700000,78.200000,mr +20.800000,78.200000,mr +20.900000,78.200000,mr +21.000000,78.200000,mr +21.000000,78.100000,mr +20.900000,78.100000,mr +20.900000,78.000000,mr +21.000000,78.000000,mr +21.100000,78.000000,mr +21.100000,78.100000,mr +21.200000,78.100000,mr +21.200000,78.000000,mr +21.300000,78.000000,mr +21.400000,78.000000,mr +21.400000,78.100000,mr +21.300000,78.100000,mr +21.300000,78.200000,mr +21.400000,78.200000,mr +21.200000,78.200000,mr +21.100000,78.200000,mr +21.100000,78.300000,mr +21.100000,78.400000,mr +21.200000,78.400000,mr +21.200000,78.300000,mr +21.300000,78.300000,mr +21.400000,78.300000,mr +21.400000,78.400000,mr +21.300000,78.400000,mr +21.300000,78.500000,mr +21.400000,78.500000,mr +21.400000,78.600000,mr +21.300000,78.600000,mr +21.200000,78.600000,mr +21.200000,78.500000,mr +21.100000,78.500000,mr +21.100000,78.600000,mr +21.000000,78.600000,mr +20.900000,78.500000,mr +21.000000,78.500000,mr +21.000000,78.400000,mr +21.000000,78.300000,mr +20.900000,78.300000,mr +20.900000,78.400000,mr +20.800000,78.400000,mr +20.800000,78.300000,mr +20.700000,78.300000,mr +20.700000,78.400000,mr +20.800000,78.500000,mr +20.900000,78.600000,mr +20.800000,78.600000,mr +20.800000,78.700000,mr +20.800000,78.800000,mr +20.900000,78.800000,mr +20.900000,78.700000,mr +21.000000,78.700000,mr +21.100000,78.800000,mr +21.000000,78.800000,mr +21.000000,78.900000,mr +21.100000,78.900000,mr +21.100000,79.000000,mr +21.000000,79.000000,mr +20.900000,79.000000,mr +20.900000,78.900000,mr +20.800000,78.900000,mr +20.800000,79.000000,mr +20.800000,79.100000,mr +20.900000,79.100000,mr +20.800000,79.200000,mr +20.800000,79.300000,mr +20.900000,79.300000,mr +20.900000,79.200000,mr +21.000000,79.200000,mr +21.000000,79.300000,mr +21.100000,79.300000,mr +21.100000,79.200000,mr +21.000000,79.100000,mr +21.100000,79.100000,mr +21.200000,79.100000,mr +21.300000,79.100000,mr +21.200000,79.200000,mr +21.200000,79.300000,mr +21.300000,79.300000,mr +21.300000,79.200000,mr +21.400000,79.200000,mr +21.400000,79.300000,mr +21.500000,79.300000,mr +21.500000,79.200000,mr +21.400000,79.100000,mr +21.400000,79.000000,mr +21.400000,78.900000,mr +21.300000,78.900000,mr +21.300000,79.000000,mr +21.200000,79.000000,mr +21.200000,78.900000,mr +21.200000,78.800000,mr +21.100000,78.700000,mr +21.200000,78.700000,mr +21.300000,78.700000,mr +21.300000,78.800000,mr +21.400000,78.800000,mr +21.400000,78.700000,mr +21.500000,78.700000,mr +21.500000,78.800000,mr +21.600000,78.800000,mr +21.600000,78.700000,mr +21.700000,78.700000,mr +21.800000,78.700000,mr +21.800000,78.800000,mr +21.700000,78.800000,mr +21.700000,78.900000,mr +21.800000,78.900000,mr +21.800000,79.000000,mr +21.700000,79.000000,mr +21.600000,79.000000,mr +21.600000,78.900000,mr +21.500000,78.900000,mr +21.500000,79.000000,mr +21.500000,79.100000,mr +21.600000,79.100000,mr +21.600000,79.300000,mr +21.700000,79.300000,mr +21.600000,79.200000,mr +21.700000,79.200000,mr +21.800000,79.300000,mr +21.800000,79.200000,mr +21.700000,79.100000,mr +21.800000,79.100000,en +21.900000,79.200000,mr +21.900000,79.300000,mr +22.200000,78.900000,en +22.200000,78.800000,en +22.200000,78.700000,en +22.200000,78.600000,en +22.100000,78.500000,en +22.200000,78.500000,en +22.200000,78.400000,en +22.100000,78.300000,en +22.100000,78.400000,en +22.000000,78.400000,en +22.000000,78.300000,en +21.900000,78.300000,en +21.900000,78.400000,en +21.900000,78.500000,en +22.000000,78.500000,en +21.800000,78.600000,mr +21.700000,78.500000,mr +21.700000,78.600000,mr +21.600000,78.600000,mr +21.500000,78.600000,mr +21.500000,78.500000,mr +21.600000,78.500000,mr +21.600000,78.400000,mr +21.500000,78.400000,mr +21.500000,78.300000,mr +21.600000,78.300000,mr +21.700000,78.300000,mr +21.700000,78.400000,mr +21.700000,78.200000,mr +21.500000,78.200000,mr +21.600000,78.200000,mr +21.600000,78.100000,mr +21.500000,78.100000,mr +21.500000,78.000000,mr +21.600000,78.000000,mr +21.700000,78.000000,mr +21.700000,78.100000,mr +21.900000,78.100000,en +21.900000,78.200000,en +22.000000,78.200000,en +22.100000,78.200000,en +22.100000,78.100000,en +22.000000,78.100000,en +22.100000,78.000000,en +22.100000,77.900000,en +22.100000,77.800000,en +22.000000,77.800000,en +22.000000,77.900000,en +21.900000,77.700000,en +21.800000,77.700000,en +21.800000,77.600000,en +21.900000,77.600000,en +22.000000,77.600000,en +22.000000,77.700000,en +22.100000,77.700000,en +22.100000,77.600000,en +22.100000,77.500000,en +22.000000,77.500000,en +22.000000,77.400000,en +22.100000,77.400000,en +22.100000,77.300000,en +22.100000,77.200000,en +22.000000,77.200000,en +22.000000,77.300000,en +21.900000,77.300000,en +21.900000,77.200000,en +21.800000,77.200000,en +21.800000,77.300000,en +21.800000,77.400000,en +21.900000,77.400000,en +21.900000,77.500000,en +21.800000,77.500000,en +21.700000,77.500000,en +21.600000,77.500000,mr +21.600000,77.400000,mr +21.700000,77.400000,en +21.700000,77.300000,mr +21.700000,77.200000,mr +21.600000,77.200000,mr +21.600000,77.300000,mr +21.500000,77.300000,mr +21.500000,77.200000,mr +21.400000,77.200000,mr +21.400000,77.300000,mr +21.400000,77.400000,mr +21.500000,77.400000,mr +21.500000,77.500000,mr +21.400000,77.500000,mr +21.400000,77.600000,mr +21.500000,77.700000,mr +21.500000,77.600000,mr +21.600000,77.600000,mr +21.700000,77.600000,en +21.700000,77.700000,en +21.600000,77.700000,mr +21.600000,77.800000,mr +21.700000,77.800000,en +21.600000,77.900000,mr +21.500000,77.800000,mr +21.500000,77.900000,mr +21.400000,77.900000,mr +21.300000,77.900000,mr +21.300000,77.800000,mr +21.400000,77.800000,mr +21.400000,77.700000,mr +21.300000,77.600000,mr +21.300000,77.700000,mr +21.200000,77.700000,mr +21.200000,77.600000,mr +21.100000,77.600000,mr +21.100000,77.700000,mr +21.100000,77.800000,mr +21.200000,77.800000,mr +21.200000,77.900000,mr +21.100000,77.900000,mr +21.000000,77.900000,mr +21.000000,77.800000,mr +20.900000,77.800000,mr +20.900000,77.900000,mr +20.800000,77.900000,mr +20.700000,77.900000,mr +20.700000,77.800000,mr +20.800000,77.800000,mr +20.800000,77.700000,mr +20.700000,77.700000,mr +20.700000,77.600000,mr +20.800000,77.600000,mr +20.900000,77.600000,mr +20.900000,77.700000,mr +21.000000,77.700000,mr +21.000000,77.600000,mr +21.000000,77.500000,mr +21.000000,77.400000,mr +20.900000,77.400000,mr +20.900000,77.500000,mr +20.800000,77.500000,mr +20.700000,77.500000,mr +20.700000,77.400000,mr +20.800000,77.400000,mr +20.800000,77.300000,mr +20.700000,77.300000,mr +20.700000,77.200000,mr +20.800000,77.200000,mr +20.900000,77.300000,hi +20.900000,77.200000,mr +21.000000,77.200000,mr +21.100000,77.200000,mr +21.100000,77.300000,mr +21.000000,77.300000,mr +21.100000,77.500000,mr +21.100000,77.400000,mr +21.200000,77.400000,mr +21.200000,77.500000,mr +21.300000,77.500000,mr +21.300000,77.400000,mr +21.300000,77.300000,mr +21.200000,77.300000,mr +21.200000,77.200000,mr +21.300000,77.200000,mr +21.200000,77.100000,mr +21.300000,77.100000,mr +21.300000,77.000000,mr +21.300000,76.900000,mr +21.200000,76.900000,mr +21.200000,77.000000,mr +21.100000,77.000000,mr +21.100000,76.900000,mr +21.000000,76.900000,mr +21.000000,77.000000,mr +21.000000,77.100000,mr +21.100000,77.100000,mr +20.900000,77.100000,mr +20.800000,77.100000,mr +20.700000,77.100000,mr +20.700000,77.000000,mr +20.600000,77.000000,mr +20.600000,76.900000,mr +20.700000,76.900000,mr +20.800000,76.900000,mr +20.800000,77.000000,mr +20.900000,77.000000,mr +20.900000,76.900000,mr +20.900000,76.800000,mr +20.900000,76.700000,mr +20.800000,76.700000,mr +20.800000,76.800000,mr +20.700000,76.800000,mr +20.600000,76.800000,mr +20.600000,76.700000,mr +20.700000,76.700000,mr +20.700000,76.600000,mr +20.600000,76.600000,mr +20.600000,76.500000,mr +20.700000,76.500000,mr +20.800000,76.500000,mr +20.800000,76.600000,mr +20.900000,76.600000,mr +20.900000,76.500000,mr +21.000000,76.500000,mr +21.100000,76.500000,mr +21.100000,76.600000,mr +21.000000,76.600000,mr +21.000000,76.700000,mr +21.000000,76.800000,mr +21.100000,76.800000,mr +21.100000,76.700000,mr +21.200000,76.700000,mr +21.200000,76.800000,mr +21.300000,76.800000,mr +21.300000,76.700000,mr +21.300000,76.600000,mr +21.200000,76.600000,mr +21.200000,76.500000,mr +21.300000,76.500000,mr +21.400000,76.500000,mr +21.400000,76.600000,mr +21.500000,76.600000,mr +21.500000,76.500000,mr +21.600000,76.500000,mr +21.600000,76.600000,mr +21.600000,76.700000,mr +21.700000,76.800000,mr +21.600000,76.800000,mr +21.500000,76.800000,mr +21.500000,76.700000,mr +21.400000,76.700000,mr +21.400000,76.800000,mr +21.400000,76.900000,mr +21.500000,76.900000,mr +21.500000,77.000000,mr +21.400000,77.000000,mr +21.400000,77.100000,mr +21.500000,77.100000,mr +21.600000,77.100000,mr +21.700000,77.100000,mr +21.700000,77.000000,mr +21.600000,77.000000,mr +21.600000,76.900000,mr +21.700000,76.900000,mr +21.800000,76.900000,mr +21.900000,76.900000,en +21.900000,77.000000,en +21.800000,77.000000,mr +21.800000,77.100000,mr +21.900000,77.100000,en +22.000000,77.100000,en +22.100000,77.100000,en +22.000000,77.000000,en +22.000000,76.900000,en +22.000000,76.800000,en +21.900000,76.700000,en +21.900000,76.800000,en +21.800000,76.800000,mr +21.700000,76.700000,mr +21.800000,76.700000,mr +21.800000,76.600000,en +21.700000,76.600000,mr +21.700000,76.500000,en +21.800000,76.500000,en +21.900000,76.500000,en +21.900000,76.600000,en +21.700000,76.100000,en +21.700000,76.200000,en +21.600000,76.400000,mr +21.600000,76.300000,mr +21.500000,76.300000,mr +21.500000,76.400000,mr +21.400000,76.400000,mr +21.300000,76.400000,mr +21.300000,76.300000,mr +21.400000,76.300000,mr +21.400000,76.200000,mr +21.300000,76.200000,mr +21.300000,76.100000,mr +21.400000,76.100000,mr +21.500000,76.100000,mr +21.500000,76.200000,mr +21.600000,76.200000,mr +21.600000,76.100000,mr +21.600000,76.000000,mr +21.600000,75.900000,mr +21.500000,75.900000,mr +21.500000,76.000000,mr +21.400000,76.000000,mr +21.300000,76.000000,mr +21.300000,75.900000,mr +21.400000,75.900000,mr +21.300000,75.800000,mr +21.400000,75.800000,mr +21.500000,75.800000,mr +21.600000,75.800000,mr +21.700000,75.800000,en +21.800000,75.800000,en +21.700000,75.900000,en +21.700000,76.000000,en +21.800000,76.000000,en +21.800000,75.900000,en +21.800000,75.600000,en +21.800000,75.700000,en +21.700000,75.700000,en +21.700000,75.600000,en +21.700000,75.500000,en +21.600000,75.500000,en +21.600000,75.400000,en +21.700000,75.400000,en +21.800000,75.300000,mr +21.800000,75.200000,mr +21.800000,75.000000,mr +21.800000,75.100000,mr +21.700000,75.100000,mr +21.700000,75.000000,mr +21.600000,75.000000,mr +21.600000,75.100000,mr +21.600000,75.200000,mr +21.700000,75.200000,mr +21.700000,75.300000,mr +21.600000,75.300000,mr +21.500000,75.300000,mr +21.400000,75.300000,mr +21.400000,75.200000,mr +21.500000,75.200000,mr +21.500000,75.100000,mr +21.500000,75.000000,mr +21.400000,75.000000,mr +21.400000,75.100000,mr +21.300000,75.100000,mr +21.300000,75.000000,mr +21.200000,75.000000,mr +21.200000,75.100000,mr +21.200000,75.200000,mr +21.300000,75.200000,mr +21.300000,75.300000,mr +21.300000,75.400000,mr +21.300000,75.500000,mr +21.400000,75.500000,mr +21.400000,75.400000,mr +21.500000,75.400000,mr +21.500000,75.500000,mr +21.500000,75.600000,mr +21.600000,75.600000,en +21.600000,75.700000,mr +21.500000,75.700000,mr +21.400000,75.700000,mr +21.400000,75.600000,mr +21.300000,75.600000,mr +21.300000,75.700000,mr +21.200000,75.700000,mr +21.200000,75.600000,mr +21.100000,75.600000,mr +21.100000,75.700000,mr +21.000000,75.700000,mr +20.900000,75.700000,mr +20.900000,75.600000,mr +21.000000,75.600000,mr +21.000000,75.500000,mr +20.900000,75.500000,mr +20.900000,75.400000,mr +21.000000,75.400000,mr +21.100000,75.400000,mr +21.100000,75.500000,mr +21.200000,75.500000,mr +21.200000,75.400000,mr +21.200000,75.300000,mr +21.100000,75.300000,mr +21.100000,75.200000,mr +21.100000,75.100000,mr +21.100000,75.000000,mr +21.000000,75.000000,mr +21.000000,75.100000,mr +20.900000,75.000000,mr +20.900000,75.100000,mr +20.900000,75.200000,mr +21.000000,75.200000,mr +21.000000,75.300000,mr +20.900000,75.300000,mr +20.800000,75.300000,mr +20.700000,75.300000,mr +20.700000,75.200000,mr +20.800000,75.200000,mr +20.800000,75.100000,mr +20.800000,75.000000,mr +20.700000,75.000000,mr +20.700000,75.100000,mr +20.600000,75.100000,mr +20.600000,75.000000,mr +20.500000,75.000000,mr +20.500000,75.100000,mr +20.500000,75.200000,mr +20.600000,75.200000,mr +20.600000,75.300000,mr +20.500000,75.300000,mr +20.500000,75.400000,mr +20.500000,75.500000,mr +20.600000,75.500000,mr +20.600000,75.400000,mr +20.700000,75.400000,mr +20.800000,75.400000,mr +20.800000,75.500000,mr +20.700000,75.500000,mr +20.700000,75.600000,mr +20.800000,75.600000,mr +20.800000,75.700000,mr +20.700000,75.700000,mr +20.600000,75.700000,mr +20.600000,75.600000,mr +20.500000,75.600000,mr +20.500000,75.700000,mr +20.600000,75.800000,mr +20.600000,75.900000,mr +20.600000,76.000000,hi +20.700000,76.000000,hi +20.700000,75.900000,mr +20.800000,76.000000,mr +20.800000,75.900000,mr +20.700000,75.800000,mr +20.800000,75.800000,mr +20.900000,75.800000,mr +21.000000,75.800000,mr +21.100000,75.800000,mr +21.200000,75.800000,mr +21.100000,75.900000,mr +21.200000,75.900000,mr +21.200000,76.000000,mr +21.100000,76.000000,mr +21.000000,76.000000,mr +21.000000,75.900000,mr +20.900000,75.900000,mr +20.900000,76.000000,mr +21.000000,76.200000,mr +21.000000,76.100000,mr +21.100000,76.100000,mr +21.200000,76.100000,mr +21.200000,76.200000,mr +21.100000,76.200000,mr +21.200000,76.300000,mr +21.200000,76.400000,mr +21.100000,76.400000,mr +21.100000,76.300000,mr +21.000000,76.300000,mr +21.000000,76.400000,mr +20.900000,76.400000,mr +20.800000,76.400000,mr +20.800000,76.300000,mr +20.900000,76.300000,mr +20.900000,76.200000,mr +20.900000,76.100000,mr +20.800000,76.100000,mr +20.800000,76.200000,mr +20.700000,76.200000,hi +20.700000,76.100000,mr +20.600000,76.100000,hi +20.600000,76.200000,hi +20.600000,76.300000,hi +20.700000,76.300000,mr +20.700000,76.400000,mr +20.600000,76.400000,mr +20.500000,76.400000,mr +20.500000,76.300000,hi +20.400000,76.300000,hi +20.400000,76.400000,hi +20.300000,76.400000,hi +20.200000,76.400000,hi +20.200000,76.300000,hi +20.300000,76.300000,hi +20.300000,76.200000,hi +20.200000,76.200000,hi +20.200000,76.100000,hi +20.300000,76.100000,hi +20.400000,76.100000,hi +20.400000,76.200000,hi +20.500000,76.200000,hi +20.500000,76.100000,hi +20.500000,76.000000,hi +20.400000,76.000000,hi +20.400000,75.900000,hi +20.500000,75.900000,hi +20.500000,75.800000,mr +20.400000,75.800000,mr +20.300000,75.800000,hi +20.200000,75.800000,hi +20.200000,75.900000,hi +20.300000,75.900000,hi +20.300000,76.000000,hi +20.200000,76.000000,hi +20.100000,76.000000,hi +20.000000,76.000000,hi +20.000000,75.900000,mr +20.100000,75.900000,hi +20.100000,75.800000,hi +20.000000,75.800000,mr +19.900000,75.800000,mr +19.800000,75.800000,mr +19.800000,75.900000,mr +19.900000,75.900000,mr +19.900000,76.000000,mr +19.800000,76.000000,mr +19.800000,76.100000,mr +19.800000,76.200000,hi +19.900000,76.200000,hi +19.900000,76.100000,mr +20.000000,76.100000,hi +20.100000,76.100000,hi +20.100000,76.200000,hi +20.000000,76.200000,hi +20.000000,76.300000,hi +20.100000,76.300000,hi +20.100000,76.400000,hi +20.000000,76.400000,hi +19.900000,76.400000,hi +19.900000,76.300000,hi +19.800000,76.300000,hi +19.800000,76.400000,hi +19.700000,76.400000,hi +19.700000,76.300000,mr +19.700000,76.200000,hi +19.700000,76.100000,mr +19.600000,76.100000,mr +19.600000,76.200000,hi +19.500000,76.100000,hi +19.500000,76.200000,hi +19.500000,76.300000,hi +19.600000,76.300000,hi +19.600000,76.400000,hi +19.500000,76.400000,hi +19.400000,76.400000,mr +19.400000,76.300000,hi +19.300000,76.300000,hi +19.300000,76.400000,mr +19.200000,76.400000,hi +19.100000,76.400000,hi +19.100000,76.300000,hi +19.200000,76.300000,hi +19.200000,76.200000,hi +19.100000,76.200000,hi +19.100000,76.100000,hi +19.200000,76.100000,hi +19.300000,76.100000,hi +19.300000,76.200000,hi +19.400000,76.200000,hi +19.400000,76.100000,hi +19.400000,76.000000,hi +19.300000,75.900000,hi +19.300000,76.000000,hi +19.200000,76.000000,hi +19.100000,76.000000,hi +19.100000,75.900000,hi +19.200000,75.900000,hi +19.100000,75.800000,hi +19.200000,75.800000,hi +19.300000,75.800000,hi +19.400000,75.800000,hi +19.500000,75.800000,hi +19.400000,75.900000,hi +19.500000,76.000000,hi +19.500000,75.900000,hi +19.600000,75.900000,mr +19.600000,76.000000,mr +19.700000,76.000000,mr +19.700000,75.900000,mr +19.600000,75.800000,mr +19.700000,75.800000,mr +19.700000,75.700000,mr +19.600000,75.700000,mr +19.600000,75.600000,hi +19.700000,75.600000,mr +19.700000,75.500000,mr +19.700000,75.400000,mr +19.600000,75.400000,mr +19.600000,75.500000,mr +19.500000,75.500000,hi +19.500000,75.400000,hi +19.400000,75.400000,hi +19.400000,75.500000,hi +19.400000,75.600000,hi +19.500000,75.600000,hi +19.500000,75.700000,hi +19.400000,75.700000,hi +19.300000,75.700000,hi +19.300000,75.600000,hi +19.200000,75.600000,hi +19.200000,75.700000,hi +19.100000,75.700000,hi +19.000000,75.600000,hi +19.100000,75.600000,hi +19.100000,75.500000,hi +19.000000,75.500000,hi +19.000000,75.400000,hi +19.100000,75.400000,hi +19.200000,75.400000,hi +19.200000,75.500000,hi +19.300000,75.500000,hi +19.300000,75.400000,hi +19.300000,75.300000,hi +19.300000,75.200000,hi +19.200000,75.200000,hi +19.200000,75.300000,hi +19.100000,75.300000,hi +19.000000,75.300000,hi +19.000000,75.200000,hi +19.100000,75.200000,hi +19.100000,75.100000,hi +19.000000,75.100000,hi +19.000000,75.000000,hi +19.100000,75.000000,hi +19.200000,75.000000,hi +19.200000,75.100000,hi +19.300000,75.100000,hi +19.300000,75.000000,hi +19.400000,75.000000,hi +19.500000,75.000000,hi +19.500000,75.100000,hi +19.400000,75.100000,hi +19.400000,75.200000,hi +19.400000,75.300000,hi +19.500000,75.300000,hi +19.500000,75.200000,hi +19.600000,75.200000,mr +19.600000,75.300000,mr +19.700000,75.300000,mr +19.700000,75.200000,mr +19.700000,75.100000,mr +19.600000,75.100000,mr +19.600000,75.000000,mr +19.700000,75.000000,mr +19.800000,75.100000,mr +19.800000,75.000000,mr +19.900000,75.000000,mr +20.000000,75.000000,mr +20.000000,75.100000,mr +19.900000,75.100000,mr +19.900000,75.200000,mr +20.000000,75.200000,mr +20.000000,75.300000,mr +19.900000,75.300000,mr +19.800000,75.200000,mr +19.800000,75.300000,mr +19.800000,75.400000,mr +19.900000,75.400000,mr +19.900000,75.500000,mr +19.800000,75.500000,mr +19.800000,75.600000,mr +19.800000,75.700000,mr +19.900000,75.700000,mr +19.900000,75.600000,mr +20.000000,75.600000,mr +20.000000,75.700000,mr +20.100000,75.700000,mr +20.100000,75.600000,hi +20.100000,75.500000,mr +20.000000,75.500000,mr +20.000000,75.400000,mr +20.100000,75.400000,mr +20.200000,75.400000,hi +20.200000,75.500000,hi +20.200000,75.600000,hi +20.200000,75.700000,hi +20.300000,75.700000,mr +20.300000,75.600000,hi +20.400000,75.700000,mr +20.400000,75.600000,hi +20.400000,75.500000,hi +20.300000,75.500000,hi +20.300000,75.400000,hi +20.400000,75.400000,mr +20.400000,75.300000,mr +20.400000,75.200000,mr +20.300000,75.200000,mr +20.300000,75.300000,hi +20.200000,75.300000,mr +20.100000,75.300000,mr +20.100000,75.200000,mr +20.200000,75.200000,mr +20.200000,75.100000,mr +20.100000,75.100000,mr +20.100000,75.000000,mr +20.200000,75.000000,hi +20.300000,75.000000,mr +20.300000,75.100000,hi +20.400000,75.100000,mr +20.400000,75.000000,mr +20.400000,74.900000,mr +20.400000,74.800000,hi +20.300000,74.800000,hi +20.300000,74.900000,mr +20.200000,74.900000,hi +20.100000,74.900000,hi +20.100000,74.800000,hi +20.200000,74.800000,hi +20.200000,74.700000,hi +20.100000,74.700000,hi +20.100000,74.600000,hi +20.200000,74.600000,hi +20.300000,74.600000,hi +20.300000,74.700000,hi +20.400000,74.700000,mr +20.300000,74.500000,mr +20.300000,74.400000,mr +20.300000,74.300000,hi +20.200000,74.300000,hi +20.200000,74.400000,mr +20.100000,74.300000,hi +20.100000,74.400000,hi +20.200000,74.500000,mr +20.100000,74.500000,hi +20.000000,74.500000,mr +19.900000,74.500000,mr +20.000000,74.400000,mr +20.000000,74.300000,mr +19.900000,74.300000,mr +19.900000,74.400000,mr +19.800000,74.400000,mr +19.800000,74.300000,mr +19.700000,74.300000,hi +19.700000,74.400000,mr +19.800000,74.500000,mr +19.700000,74.500000,mr +19.700000,74.600000,mr +19.700000,74.700000,mr +19.800000,74.700000,mr +19.800000,74.600000,mr +19.900000,74.600000,mr +20.000000,74.600000,mr +20.000000,74.700000,mr +19.900000,74.700000,mr +19.900000,74.800000,hi +20.000000,74.800000,hi +20.000000,74.900000,mr +19.900000,74.900000,hi +19.800000,74.900000,hi +19.800000,74.800000,hi +19.700000,74.800000,hi +19.700000,74.900000,hi +19.600000,74.900000,hi +19.500000,74.900000,hi +19.500000,74.800000,hi +19.600000,74.800000,hi +19.600000,74.700000,hi +19.600000,74.600000,mr +19.500000,74.600000,hi +19.500000,74.700000,hi +19.400000,74.700000,hi +19.400000,74.600000,hi +19.300000,74.600000,hi +19.300000,74.700000,hi +19.400000,74.800000,hi +19.400000,74.900000,mr +19.300000,74.900000,hi +19.300000,74.800000,hi +19.200000,74.800000,hi +19.200000,74.900000,hi +19.100000,74.900000,hi +19.000000,74.900000,hi +19.000000,74.800000,mr +19.100000,74.800000,mr +19.100000,74.700000,hi +19.000000,74.700000,mr +19.000000,74.600000,mr +19.100000,74.600000,hi +19.200000,74.700000,mr +19.200000,74.600000,hi +19.200000,74.500000,hi +19.100000,74.500000,hi +19.000000,74.500000,hi +19.000000,74.400000,hi +18.900000,74.400000,hi +18.900000,74.300000,hi +19.000000,74.300000,hi +19.100000,74.300000,hi +19.100000,74.400000,hi +19.200000,74.400000,hi +19.200000,74.300000,hi +19.300000,74.300000,hi +19.400000,74.300000,hi +19.400000,74.400000,hi +19.300000,74.400000,hi +19.300000,74.500000,hi +19.400000,74.500000,hi +19.500000,74.500000,hi +19.600000,74.500000,hi +19.600000,74.400000,hi +19.500000,74.400000,hi +19.500000,74.300000,hi +19.600000,74.300000,hi +19.600000,74.200000,hi +19.500000,74.200000,hi +19.500000,74.100000,hi +19.600000,74.100000,hi +19.600000,74.000000,hi +19.500000,73.900000,hi +19.500000,74.000000,hi +19.400000,74.000000,hi +19.400000,73.900000,hi +19.300000,73.900000,hi +19.300000,74.000000,hi +19.300000,74.100000,hi +19.400000,74.100000,hi +19.400000,74.200000,hi +19.300000,74.200000,hi +19.200000,74.200000,hi +19.200000,74.100000,hi +19.100000,74.100000,hi +19.100000,74.200000,hi +19.000000,74.200000,hi +18.900000,74.200000,hi +18.900000,74.100000,hi +19.000000,74.100000,hi +19.000000,74.000000,hi +18.900000,74.000000,mr +18.900000,73.900000,hi +19.000000,73.900000,hi +19.100000,73.900000,hi +19.100000,74.000000,hi +19.200000,74.000000,hi +19.200000,73.900000,hi +19.200000,73.800000,hi +19.200000,73.700000,hi +19.100000,73.700000,hi +19.100000,73.800000,hi +19.000000,73.800000,hi +18.900000,73.800000,mr +18.900000,73.700000,mr +19.000000,73.700000,mr +19.000000,73.600000,mr +18.900000,73.600000,mr +18.900000,73.500000,mr +19.000000,73.500000,mr +19.100000,73.600000,hi +19.100000,73.500000,hi +19.200000,73.500000,hi +19.300000,73.500000,hi +19.300000,73.600000,hi +19.200000,73.600000,hi +19.300000,73.800000,hi +19.400000,73.800000,hi +19.300000,73.700000,hi +19.400000,73.700000,hi +19.500000,73.800000,hi +19.500000,73.700000,hi +19.500000,73.600000,hi +19.400000,73.600000,hi +19.400000,73.500000,hi +19.500000,73.500000,hi +19.600000,73.500000,mr +19.600000,73.600000,mr +19.700000,73.600000,mr +19.700000,73.500000,mr +19.800000,73.500000,mr +19.900000,73.500000,mr +19.900000,73.600000,mr +19.800000,73.600000,mr +19.800000,73.700000,mr +19.900000,73.700000,mr +19.900000,73.800000,mr +19.800000,73.800000,mr +19.700000,73.800000,mr +19.700000,73.700000,mr +19.600000,73.700000,hi +19.600000,73.800000,hi +19.600000,73.900000,hi +19.700000,73.900000,mr +19.700000,74.000000,hi +19.700000,74.100000,hi +19.700000,74.200000,hi +19.800000,74.200000,hi +19.800000,74.100000,hi +19.900000,74.200000,hi +19.900000,74.100000,hi +19.900000,74.000000,mr +19.800000,74.000000,mr +19.800000,73.900000,mr +19.900000,73.900000,mr +20.000000,73.900000,mr +20.100000,73.900000,mr +20.100000,74.000000,mr +20.000000,74.000000,mr +20.000000,74.100000,hi +20.000000,74.200000,hi +20.100000,74.200000,hi +20.100000,74.100000,hi +20.200000,74.100000,hi +20.200000,74.200000,hi +20.300000,74.200000,hi +20.300000,74.100000,hi +20.300000,74.000000,hi +20.200000,74.000000,mr +20.200000,73.900000,mr +20.300000,73.900000,hi +20.300000,73.800000,hi +20.300000,73.700000,hi +20.200000,73.700000,mr +20.200000,73.800000,mr +20.100000,73.800000,mr +20.000000,73.800000,mr +20.000000,73.700000,mr +20.100000,73.700000,mr +20.100000,73.600000,mr +20.000000,73.600000,mr +20.000000,73.500000,mr +20.100000,73.500000,mr +20.200000,73.500000,mr +20.200000,73.600000,mr +20.300000,73.600000,hi +20.300000,73.500000,hi +20.400000,73.500000,hi +20.400000,73.600000,hi +20.400000,73.700000,hi +20.400000,73.800000,hi +20.500000,73.800000,hi +20.500000,73.700000,mr +20.600000,73.800000,mr +20.600000,73.700000,mr +20.600000,73.600000,mr +20.500000,73.600000,mr +20.500000,73.500000,mr +20.600000,73.500000,gu +20.700000,73.500000,gu +20.700000,73.600000,gu +20.800000,73.600000,gu +20.800000,73.500000,gu +20.900000,73.500000,gu +21.000000,73.500000,gu +21.000000,73.600000,gu +20.900000,73.600000,gu +20.900000,73.700000,hi +21.000000,73.700000,gu +21.000000,73.800000,gu +20.900000,73.800000,gu +20.800000,73.800000,gu +20.800000,73.700000,gu +20.700000,73.700000,gu +20.700000,73.800000,mr +20.800000,74.000000,mr +20.900000,74.000000,hi +20.800000,73.900000,mr +20.900000,73.900000,mr +21.000000,73.900000,mr +21.000000,74.000000,mr +21.000000,74.100000,mr +21.100000,74.200000,mr +21.000000,74.200000,mr +20.900000,74.200000,mr +20.900000,74.100000,mr +20.800000,74.100000,mr +20.800000,74.200000,mr +20.700000,74.200000,hi +20.600000,74.200000,hi +20.600000,74.100000,hi +20.700000,74.100000,hi +20.700000,74.000000,hi +20.700000,73.900000,mr +20.600000,73.900000,mr +20.600000,74.000000,hi +20.500000,74.000000,hi +20.500000,73.900000,hi +20.400000,73.900000,hi +20.400000,74.000000,hi +20.400000,74.100000,hi +20.500000,74.100000,hi +20.500000,74.200000,hi +20.400000,74.200000,hi +20.400000,74.300000,mr +20.400000,74.400000,mr +20.500000,74.400000,mr +20.500000,74.300000,mr +20.600000,74.300000,mr +20.700000,74.300000,mr +20.700000,74.400000,mr +20.600000,74.400000,mr +20.700000,74.500000,mr +20.600000,74.500000,mr +20.500000,74.500000,mr +20.400000,74.500000,mr +20.400000,74.600000,mr +20.500000,74.600000,mr +20.500000,74.700000,mr +20.500000,74.800000,mr +20.500000,74.900000,mr +20.600000,74.900000,mr +20.600000,74.800000,mr +20.700000,74.900000,mr +20.700000,74.800000,mr +20.700000,74.700000,mr +20.600000,74.700000,mr +20.600000,74.600000,mr +20.700000,74.600000,mr +20.800000,74.600000,mr +20.900000,74.600000,mr +20.900000,74.700000,mr +20.800000,74.700000,mr +20.800000,74.800000,mr +20.800000,74.900000,mr +20.900000,74.900000,mr +20.900000,74.800000,mr +21.000000,74.800000,mr +21.000000,74.900000,mr +21.100000,74.900000,mr +21.100000,74.800000,mr +21.100000,74.700000,mr +21.000000,74.700000,mr +21.000000,74.600000,mr +21.100000,74.600000,mr +21.100000,74.500000,mr +21.000000,74.500000,mr +20.900000,74.500000,mr +20.800000,74.500000,mr +20.900000,74.400000,mr +20.800000,74.400000,mr +20.800000,74.300000,mr +20.900000,74.300000,mr +21.000000,74.300000,mr +21.000000,74.400000,mr +21.100000,74.400000,mr +21.100000,74.300000,mr +21.200000,74.300000,mr +21.200000,74.400000,mr +21.300000,74.400000,mr +21.300000,74.300000,mr +21.400000,74.300000,mr +21.400000,74.400000,mr +21.500000,74.500000,mr +21.400000,74.500000,mr +21.300000,74.500000,mr +21.200000,74.500000,mr +21.200000,74.600000,mr +21.300000,74.600000,mr +21.300000,74.700000,mr +21.200000,74.700000,mr +21.200000,74.800000,mr +21.200000,74.900000,mr +21.300000,74.900000,mr +21.300000,74.800000,mr +21.400000,74.800000,mr +21.400000,74.900000,mr +21.500000,74.900000,mr +21.500000,74.800000,mr +21.500000,74.700000,mr +21.400000,74.700000,mr +21.400000,74.600000,mr +21.500000,74.600000,mr +21.600000,74.600000,mr +21.700000,74.700000,mr +21.600000,74.700000,mr +21.600000,74.800000,mr +21.600000,74.900000,mr +21.700000,74.900000,mr +21.700000,74.800000,mr +21.800000,74.800000,mr +21.800000,74.900000,mr +21.900000,74.900000,mr +21.900000,74.800000,mr +21.800000,74.700000,mr +21.700000,74.600000,mr +21.800000,74.600000,mr +21.800000,74.500000,mr +21.700000,74.500000,mr +21.600000,74.500000,mr +21.600000,74.400000,mr +21.500000,74.400000,mr +21.500000,74.300000,mr +21.600000,74.300000,mr +21.700000,74.300000,mr +21.700000,74.400000,mr +21.800000,74.400000,mr +21.800000,74.300000,mr +21.800000,74.200000,hi +21.700000,74.200000,mr +21.700000,74.100000,mr +21.800000,74.100000,mr +21.800000,74.000000,mr +21.800000,73.900000,gu +21.700000,73.900000,mr +21.700000,74.000000,mr +21.600000,74.000000,mr +21.600000,73.900000,mr +21.500000,73.900000,mr +21.500000,74.000000,mr +21.500000,74.100000,mr +21.600000,74.100000,mr +21.600000,74.200000,mr +21.500000,74.200000,mr +21.400000,74.200000,mr +21.400000,74.100000,mr +21.300000,74.100000,mr +21.300000,74.200000,mr +21.200000,74.200000,mr +21.100000,74.100000,mr +21.200000,74.100000,mr +21.200000,74.000000,mr +21.100000,74.000000,mr +21.100000,73.900000,mr +21.200000,73.900000,mr +21.300000,73.900000,mr +21.300000,74.000000,mr +21.400000,74.000000,mr +21.400000,73.900000,mr +21.400000,73.800000,gu +21.400000,73.700000,gu +21.300000,73.700000,gu +21.300000,73.800000,mr +21.200000,73.800000,mr +21.100000,73.800000,mr +21.100000,73.700000,gu +21.200000,73.700000,gu +21.200000,73.600000,gu +21.100000,73.600000,gu +21.100000,73.500000,gu +21.200000,73.500000,gu +21.300000,73.500000,gu +21.300000,73.600000,gu +21.400000,73.600000,gu +21.400000,73.500000,gu +21.500000,73.500000,gu +21.600000,73.600000,gu +21.500000,73.600000,gu +21.500000,73.700000,gu +21.500000,73.800000,gu +21.600000,73.800000,gu +21.600000,73.700000,gu +21.700000,73.700000,gu +21.700000,73.800000,gu +21.800000,73.800000,gu +21.700000,73.600000,gu +21.600000,73.500000,gu +21.700000,73.500000,gu +21.700000,73.400000,gu +21.700000,73.300000,gu +21.600000,73.300000,gu +21.600000,73.400000,gu +21.500000,73.400000,gu +21.400000,73.400000,gu +21.400000,73.300000,gu +21.500000,73.300000,gu +21.500000,73.200000,gu +21.400000,73.200000,gu +21.400000,73.100000,gu +21.500000,73.100000,gu +21.600000,73.100000,gu +21.600000,73.200000,gu +21.700000,73.200000,gu +21.700000,73.100000,gu +21.700000,73.000000,gu +21.600000,73.000000,gu +21.600000,72.900000,gu +21.700000,72.900000,gu +21.700000,72.800000,gu +21.600000,72.800000,gu +21.500000,72.800000,gu +21.400000,72.800000,gu +21.400000,72.900000,gu +21.500000,72.900000,gu +21.500000,73.000000,gu +21.400000,73.000000,gu +21.300000,73.000000,gu +21.200000,73.000000,gu +21.200000,72.900000,gu +21.300000,72.900000,gu +21.300000,72.800000,gu +21.200000,72.800000,gu +21.100000,72.800000,gu +21.000000,72.800000,gu +21.000000,72.900000,gu +21.100000,72.900000,gu +21.100000,73.000000,gu +21.000000,73.000000,gu +21.000000,73.100000,gu +21.100000,73.200000,gu +21.100000,73.100000,gu +21.200000,73.100000,gu +21.300000,73.100000,gu +21.300000,73.200000,gu +21.200000,73.200000,gu +21.300000,73.300000,gu +21.300000,73.400000,gu +21.200000,73.400000,gu +21.200000,73.300000,gu +21.100000,73.300000,gu +21.100000,73.400000,gu +21.000000,73.400000,gu +20.900000,73.400000,gu +20.900000,73.300000,gu +21.000000,73.300000,gu +21.000000,73.200000,gu +20.900000,73.100000,gu +20.900000,73.200000,gu +20.800000,73.200000,gu +20.800000,73.100000,gu +20.700000,73.100000,gu +20.700000,73.200000,gu +20.700000,73.300000,gu +20.800000,73.300000,gu +20.800000,73.400000,gu +20.700000,73.400000,gu +20.600000,73.400000,gu +20.600000,73.300000,gu +20.500000,73.300000,gu +20.500000,73.400000,gu +20.400000,73.400000,gu +20.300000,73.400000,mr +20.300000,73.300000,gu +20.400000,73.300000,gu +20.400000,73.200000,gu +20.300000,73.200000,gu +20.300000,73.100000,gu +20.400000,73.100000,gu +20.500000,73.100000,gu +20.500000,73.200000,gu +20.600000,73.200000,gu +20.600000,73.100000,gu +20.600000,73.000000,gu +20.600000,72.900000,gu +20.500000,72.900000,gu +20.500000,73.000000,gu +20.400000,73.000000,gu +20.300000,73.000000,gu +20.300000,72.900000,gu +20.400000,72.900000,gu +20.300000,72.800000,gu +20.400000,72.800000,gu +20.500000,72.800000,gu +20.600000,72.800000,gu +20.700000,72.800000,gu +20.700000,73.000000,gu +20.800000,73.000000,gu +20.700000,72.900000,gu +20.800000,72.900000,gu +20.900000,73.000000,gu +20.900000,72.900000,gu +20.800000,72.800000,gu +20.900000,72.800000,gu +20.900000,72.700000,gu +20.800000,72.700000,gu +20.800000,72.600000,en +20.900000,72.600000,gu +20.900000,72.500000,en +20.900000,72.400000,hi +20.800000,72.400000,gu +20.800000,72.500000,gu +20.700000,72.500000,gu +20.700000,72.400000,gu +20.600000,72.400000,gu +20.600000,72.500000,gu +20.600000,72.600000,mr +20.700000,72.600000,gu +20.700000,72.700000,gu +20.600000,72.700000,gu +20.500000,72.700000,gu +20.500000,72.600000,gu +20.400000,72.600000,gu +20.400000,72.700000,gu +20.300000,72.700000,gu +20.300000,72.600000,en +20.300000,72.500000,hi +20.200000,72.500000,mr +20.400000,72.500000,gu +20.500000,72.500000,gu +20.900000,72.300000,gu +20.900000,72.200000,hi +20.900000,72.000000,gu +20.900000,72.100000,hi +21.000000,72.100000,hi +21.000000,72.000000,gu +21.100000,72.000000,hi +21.200000,72.000000,hi +21.200000,72.100000,hi +21.100000,72.100000,hi +21.100000,72.200000,hi +21.200000,72.200000,hi +21.200000,72.300000,gu +21.100000,72.300000,hi +21.000000,72.200000,hi +21.000000,72.300000,gu +21.000000,72.400000,hi +21.100000,72.400000,hi +21.100000,72.500000,en +21.000000,72.500000,en +21.000000,72.600000,gu +21.000000,72.700000,gu +21.100000,72.700000,gu +21.100000,72.600000,gu +21.200000,72.600000,gu +21.200000,72.700000,gu +21.300000,72.700000,gu +21.300000,72.600000,gu +21.300000,72.500000,gu +21.200000,72.500000,en +21.200000,72.400000,hi +21.300000,72.400000,en +21.400000,72.400000,gu +21.400000,72.500000,gu +21.400000,72.600000,gu +21.400000,72.700000,gu +21.500000,72.700000,gu +21.500000,72.600000,gu +21.600000,72.700000,gu +21.600000,72.600000,gu +21.600000,72.500000,gu +21.500000,72.500000,gu +21.500000,72.400000,gu +21.600000,72.400000,gu +21.600000,72.300000,gu +21.600000,72.200000,gu +21.500000,72.200000,hi +21.500000,72.300000,gu +21.400000,72.300000,gu +21.300000,72.300000,gu +21.300000,72.200000,gu +21.400000,72.200000,gu +21.400000,72.100000,hi +21.300000,72.100000,hi +21.300000,72.000000,hi +21.400000,72.000000,hi +21.500000,72.000000,hi +21.500000,72.100000,hi +21.600000,72.100000,gu +21.600000,72.000000,gu +21.600000,71.900000,gu +21.500000,71.900000,hi +21.500000,71.800000,gu +21.500000,71.700000,hi +21.500000,71.600000,hi +21.400000,71.600000,hi +21.400000,71.700000,hi +21.300000,71.600000,hi +21.300000,71.700000,hi +21.300000,71.800000,hi +21.400000,71.800000,hi +21.400000,71.900000,hi +21.300000,71.900000,hi +21.200000,71.900000,hi +21.200000,71.800000,hi +21.100000,71.800000,gu +21.100000,71.900000,hi +21.000000,71.900000,gu +20.900000,71.900000,gu +20.900000,71.800000,gu +21.000000,71.800000,gu +21.000000,71.700000,gu +20.900000,71.700000,gu +20.900000,71.600000,gu +21.000000,71.600000,gu +21.100000,71.600000,hi +21.100000,71.700000,hi +21.200000,71.700000,hi +21.200000,71.600000,hi +21.100000,71.400000,gu +21.000000,71.400000,gu +21.100000,71.500000,hi +21.000000,71.500000,gu +20.900000,71.500000,gu +20.900000,71.400000,gu +20.900000,71.300000,gu +20.800000,71.200000,gu +20.900000,71.200000,gu +21.000000,71.200000,gu +21.000000,71.300000,gu +21.100000,71.300000,gu +21.100000,71.200000,hi +21.200000,71.200000,hi +21.300000,71.200000,hi +21.300000,71.300000,hi +21.200000,71.300000,hi +21.200000,71.400000,hi +21.200000,71.500000,hi +21.300000,71.500000,hi +21.300000,71.400000,hi +21.400000,71.400000,hi +21.400000,71.500000,hi +21.500000,71.500000,hi +21.500000,71.400000,hi +21.500000,71.300000,hi +21.400000,71.300000,hi +21.400000,71.200000,hi +21.500000,71.200000,hi +21.500000,71.100000,hi +21.400000,71.100000,hi +21.300000,71.100000,hi +21.200000,71.100000,hi +21.300000,71.000000,gu +21.200000,71.000000,hi +21.200000,70.900000,gu +21.300000,70.900000,hi +21.400000,71.000000,hi +21.500000,71.000000,hi +21.400000,70.900000,hi +21.400000,70.800000,hi +21.300000,70.800000,hi +21.300000,70.700000,gu +21.400000,70.700000,gu +21.400000,70.600000,gu +21.400000,70.500000,gu +21.300000,70.500000,gu +21.300000,70.600000,gu +21.200000,70.600000,gu +21.200000,70.500000,gu +21.100000,70.500000,gu +21.100000,70.600000,gu +21.200000,70.700000,gu +21.200000,70.800000,gu +21.100000,70.800000,gu +21.000000,70.800000,gu +21.000000,70.700000,gu +21.100000,70.700000,gu +21.000000,70.600000,gu +21.000000,70.500000,gu +20.900000,70.500000,gu +20.900000,70.600000,gu +20.800000,70.500000,gu +20.800000,70.600000,gu +20.800000,70.700000,gu +20.900000,70.700000,gu +20.900000,70.800000,gu +20.800000,70.800000,gu +20.800000,70.900000,gu +20.800000,71.000000,gu +20.900000,71.000000,gu +20.900000,70.900000,gu +21.000000,70.900000,gu +21.100000,70.900000,hi +21.100000,71.000000,hi +21.000000,71.000000,gu +21.100000,71.100000,hi +21.000000,71.100000,hi +20.900000,71.100000,gu +20.800000,71.100000,gu +20.700000,71.100000,gu +20.600000,71.100000,gu +20.500000,71.100000,gu +20.500000,71.000000,gu +20.500000,70.900000,gu +20.600000,70.900000,gu +20.600000,71.000000,gu +20.700000,71.000000,gu +20.700000,70.900000,gu +20.700000,70.800000,gu +20.600000,70.800000,gu +20.600000,70.700000,gu +20.700000,70.700000,gu +20.700000,70.600000,gu +20.700000,70.500000,gu +20.600000,70.500000,gu +20.600000,70.600000,gu +20.500000,70.800000,gu +20.600000,71.300000,gu +20.600000,71.200000,gu +20.700000,71.200000,gu +20.800000,71.300000,gu +20.700000,71.300000,gu +20.700000,71.400000,gu +20.800000,71.400000,gu +20.800000,71.500000,gu +20.700000,71.500000,gu +20.600000,71.400000,hi +20.700000,71.600000,gu +20.800000,71.600000,gu +20.800000,71.700000,gu +20.700000,71.700000,gu +20.800000,71.800000,hi +20.800000,71.900000,gu +18.800000,72.600000,mr +18.800000,72.700000,mr +18.900000,72.700000,mr +18.900000,72.600000,mr +19.000000,72.600000,mr +19.000000,72.700000,mr +19.100000,72.700000,mr +19.100000,72.600000,mr +19.200000,72.700000,mr +19.200000,72.600000,mr +19.300000,72.600000,mr +19.300000,72.700000,mr +19.400000,72.700000,mr +19.400000,72.600000,mr +19.400000,72.500000,hi +19.900000,72.500000,mr +20.000000,72.500000,mr +20.100000,72.500000,mr +20.100000,72.600000,mr +20.200000,72.600000,mr +20.200000,72.700000,en +20.100000,72.700000,en +20.000000,72.700000,mr +20.000000,72.600000,mr +19.900000,72.600000,mr +19.900000,72.700000,mr +19.800000,72.700000,mr +19.700000,72.700000,mr +19.700000,72.600000,mr +19.800000,72.600000,mr +19.800000,72.500000,mr +19.700000,72.500000,mr +19.600000,72.500000,mr +19.500000,72.500000,hi +19.500000,72.600000,mr +19.600000,72.600000,mr +19.600000,72.700000,mr +19.500000,72.700000,mr +19.500000,72.800000,mr +19.600000,72.800000,mr +19.600000,73.000000,mr +19.600000,72.900000,mr +19.700000,72.900000,mr +19.700000,73.000000,mr +19.800000,73.000000,mr +19.800000,72.900000,mr +19.700000,72.800000,mr +19.800000,72.800000,mr +19.900000,72.800000,mr +20.000000,72.800000,mr +20.100000,72.800000,mr +20.200000,72.800000,mr +20.100000,72.900000,mr +20.200000,72.900000,mr +20.200000,73.000000,gu +20.100000,73.000000,mr +20.000000,73.000000,mr +20.000000,72.900000,mr +19.900000,72.900000,mr +19.900000,73.000000,mr +19.900000,73.100000,mr +19.900000,73.200000,hi +20.000000,73.200000,mr +20.000000,73.100000,mr +20.100000,73.100000,mr +20.200000,73.100000,gu +20.200000,73.200000,gu +20.100000,73.200000,mr +20.100000,73.300000,mr +20.200000,73.300000,mr +20.200000,73.400000,mr +20.100000,73.400000,hi +20.000000,73.300000,mr +20.000000,73.400000,hi +19.900000,73.400000,hi +19.800000,73.400000,mr +19.800000,73.300000,hi +19.900000,73.300000,hi +19.800000,73.100000,hi +19.800000,73.200000,hi +19.700000,73.200000,hi +19.700000,73.100000,hi +19.600000,73.100000,mr +19.600000,73.200000,mr +19.600000,73.300000,mr +19.700000,73.300000,mr +19.700000,73.400000,mr +19.600000,73.400000,mr +19.500000,73.400000,mr +19.500000,73.300000,mr +19.400000,73.300000,mr +19.400000,73.400000,mr +19.300000,73.400000,mr +19.200000,73.400000,mr +19.200000,73.300000,mr +19.300000,73.300000,mr +19.300000,73.200000,mr +19.200000,73.200000,mr +19.200000,73.100000,mr +19.300000,73.100000,mr +19.400000,73.100000,mr +19.400000,73.200000,mr +19.500000,73.200000,mr +19.500000,73.100000,mr +19.500000,73.000000,mr +19.400000,73.000000,mr +19.400000,72.900000,mr +19.500000,72.900000,mr +19.400000,72.800000,mr +19.300000,72.800000,mr +19.200000,72.800000,mr +19.200000,72.900000,mr +19.300000,72.900000,mr +19.300000,73.000000,mr +19.200000,73.000000,mr +19.100000,73.000000,mr +19.000000,73.000000,mr +19.000000,72.900000,mr +19.100000,72.900000,mr +19.100000,72.800000,mr +19.000000,72.800000,mr +18.900000,72.800000,mr +18.800000,72.800000,mr +18.800000,72.900000,mr +18.900000,72.900000,mr +18.900000,73.000000,mr +18.800000,73.000000,mr +18.800000,73.100000,mr +18.800000,73.200000,mr +18.900000,73.200000,mr +18.900000,73.100000,mr +19.000000,73.100000,mr +19.100000,73.100000,mr +19.100000,73.200000,mr +19.000000,73.200000,mr +19.000000,73.300000,mr +19.100000,73.300000,mr +19.100000,73.400000,mr +19.000000,73.400000,mr +18.900000,73.300000,mr +18.900000,73.400000,mr +18.800000,73.400000,mr +18.700000,73.400000,mr +18.700000,73.300000,mr +18.800000,73.300000,mr +18.700000,73.100000,mr +18.700000,73.200000,mr +18.600000,73.200000,mr +18.600000,73.100000,mr +18.500000,73.100000,mr +18.500000,73.200000,mr +18.500000,73.300000,mr +18.600000,73.300000,mr +18.600000,73.400000,mr +18.500000,73.400000,mr +18.400000,73.400000,mr +18.400000,73.300000,mr +18.300000,73.300000,hi +18.300000,73.400000,hi +18.200000,73.400000,hi +18.100000,73.400000,hi +18.100000,73.300000,hi +18.200000,73.300000,hi +18.200000,73.200000,hi +18.100000,73.200000,hi +18.100000,73.100000,hi +18.200000,73.100000,hi +18.300000,73.100000,hi +18.300000,73.200000,hi +18.400000,73.200000,hi +18.400000,73.100000,hi +18.400000,73.000000,hi +18.300000,72.900000,hi +18.300000,73.000000,hi +18.200000,73.000000,hi +18.100000,73.000000,hi +18.100000,72.900000,hi +18.200000,72.900000,hi +18.100000,72.800000,hi +18.200000,72.800000,hi +18.300000,72.800000,hi +18.400000,72.800000,hi +18.500000,72.800000,mr +18.400000,72.900000,hi +18.500000,73.000000,mr +18.500000,72.900000,hi +18.600000,72.900000,hi +18.600000,73.000000,mr +18.700000,73.000000,mr +18.700000,72.900000,mr +18.600000,72.800000,mr +18.700000,72.800000,mr +18.700000,72.700000,mr +18.700000,72.600000,mr +18.600000,72.700000,hi +18.500000,72.700000,hi +18.400000,72.700000,hi +18.400000,72.600000,mr +18.500000,72.600000,mr +18.200000,72.600000,hi +18.300000,72.600000,mr +18.300000,72.700000,hi +18.200000,72.700000,hi +18.100000,72.600000,hi +18.100000,72.700000,hi +18.000000,72.700000,hi +17.900000,72.700000,hi +17.800000,72.700000,hi +17.700000,72.700000,hi +17.400000,72.800000,hi +17.300000,72.900000,hi +17.400000,73.000000,hi +17.400000,72.900000,hi +17.500000,72.900000,hi +17.500000,73.000000,hi +17.600000,73.000000,hi +17.600000,72.900000,hi +17.500000,72.800000,hi +17.600000,72.800000,hi +17.700000,72.800000,hi +17.800000,72.800000,hi +17.900000,72.800000,hi +18.000000,72.800000,hi +17.900000,72.900000,hi +18.000000,72.900000,hi +18.000000,73.000000,hi +17.900000,73.000000,hi +17.800000,73.000000,hi +17.800000,72.900000,hi +17.700000,72.900000,hi +17.700000,73.000000,hi +17.700000,73.100000,hi +17.700000,73.200000,hi +17.800000,73.200000,hi +17.800000,73.100000,hi +17.900000,73.100000,hi +18.000000,73.100000,hi +18.000000,73.200000,hi +17.900000,73.200000,hi +17.900000,73.300000,hi +18.000000,73.300000,hi +18.000000,73.400000,hi +17.900000,73.400000,hi +17.800000,73.300000,hi +17.700000,73.300000,hi +17.800000,73.400000,hi +17.700000,73.400000,hi +17.600000,73.400000,hi +17.600000,73.300000,hi +17.600000,73.200000,hi +17.600000,73.100000,hi +17.500000,73.100000,hi +17.500000,73.200000,hi +17.400000,73.100000,hi +17.400000,73.200000,hi +17.400000,73.300000,hi +17.500000,73.300000,hi +17.500000,73.400000,hi +17.400000,73.400000,hi +17.300000,73.400000,hi +17.300000,73.300000,hi +17.200000,73.300000,hi +17.200000,73.400000,hi +17.100000,73.400000,hi +17.000000,73.400000,hi +17.000000,73.300000,hi +17.100000,73.300000,hi +17.100000,73.200000,hi +17.000000,73.200000,hi +17.000000,73.100000,hi +17.100000,73.100000,hi +17.200000,73.100000,hi +17.200000,73.200000,hi +17.300000,73.200000,mr +17.300000,73.100000,hi +17.300000,73.000000,hi +17.200000,73.000000,mr +17.200000,72.900000,hi +17.000000,72.900000,hi +17.100000,72.900000,hi +17.100000,73.000000,hi +17.000000,73.000000,hi +16.900000,73.000000,hi +16.800000,73.000000,hi +16.900000,72.900000,hi +16.700000,73.000000,hi +16.600000,73.000000,hi +16.600000,73.100000,hi +16.600000,73.200000,hi +16.700000,73.200000,hi +16.700000,73.100000,hi +16.800000,73.100000,hi +16.900000,73.100000,hi +16.900000,73.200000,hi +16.800000,73.200000,hi +16.800000,73.300000,hi +16.900000,73.300000,hi +16.900000,73.400000,hi +16.800000,73.400000,hi +16.700000,73.300000,hi +16.700000,73.400000,hi +16.600000,73.400000,hi +16.500000,73.400000,hi +16.500000,73.300000,hi +16.600000,73.300000,hi +16.500000,73.100000,hi +16.500000,73.200000,hi +16.400000,73.200000,hi +16.400000,73.100000,hi +16.300000,73.100000,hi +16.300000,73.200000,hi +16.300000,73.300000,hi +16.400000,73.300000,hi +16.400000,73.400000,hi +16.300000,73.400000,hi +16.200000,73.400000,hi +16.200000,73.300000,hi +16.100000,73.300000,hi +16.100000,73.400000,hi +16.000000,73.400000,hi +15.900000,73.400000,hi +15.900000,73.300000,hi +16.000000,73.300000,hi +16.000000,73.200000,hi +15.900000,73.200000,hi +16.100000,73.200000,hi +16.200000,73.200000,hi +16.200000,73.100000,hi +20.700000,70.400000,gu +21.000000,69.900000,gu +21.000000,70.000000,gu +20.900000,70.000000,gu +20.800000,70.100000,gu +20.800000,70.200000,gu +20.700000,70.200000,gu +20.700000,70.300000,gu +20.800000,70.400000,gu +20.800000,70.300000,gu +20.900000,70.300000,gu +20.900000,70.400000,gu +21.000000,70.400000,gu +21.000000,70.300000,gu +21.000000,70.200000,gu +20.900000,70.200000,gu +20.900000,70.100000,gu +21.000000,70.100000,gu +21.100000,70.100000,gu +21.200000,70.100000,gu +21.200000,70.200000,gu +21.100000,70.200000,gu +21.100000,70.300000,gu +21.100000,70.400000,gu +21.200000,70.400000,hi +21.200000,70.300000,gu +21.300000,70.300000,gu +21.300000,70.400000,gu +21.400000,70.400000,gu +21.400000,70.300000,gu +21.400000,70.200000,gu +21.300000,70.200000,gu +21.300000,70.100000,hi +21.300000,70.000000,gu +21.300000,69.900000,gu +21.200000,69.900000,gu +21.200000,70.000000,gu +21.100000,70.000000,gu +21.100000,69.900000,gu +21.100000,69.800000,gu +21.100000,69.700000,gu +21.200000,69.700000,gu +21.200000,69.800000,gu +21.300000,69.800000,gu +21.300000,69.700000,gu +21.300000,69.600000,gu +21.200000,69.600000,gu +21.300000,69.500000,gu \ No newline at end of file
diff --git a/components/test/data/language/celltolang-data_rank2.csv b/components/test/data/language/celltolang-data_rank2.csv new file mode 100644 index 0000000..4d3e1e13 --- /dev/null +++ b/components/test/data/language/celltolang-data_rank2.csv
@@ -0,0 +1,15098 @@ +10.400000,93.800000,bn +10.500000,93.800000,bn +10.500000,93.700000,bn +10.500000,93.600000,bn +10.600000,93.500000,bn +10.500000,93.500000,bn +10.400000,93.500000,bn +10.300000,93.500000,bn +10.300000,93.600000,bn +10.400000,93.600000,bn +10.400000,93.700000,bn +10.300000,93.700000,bn +10.200000,93.700000,bn +10.200000,93.600000,bn +10.100000,93.700000,bn +10.000000,93.700000,bn +9.900000,93.700000,bn +10.300000,93.100000,bn +10.400000,93.100000,bn +10.400000,93.200000,bn +10.300000,93.200000,bn +10.300000,93.300000,bn +10.300000,93.400000,bn +10.400000,93.400000,bn +10.400000,93.300000,bn +10.500000,93.300000,bn +10.500000,93.400000,bn +10.600000,93.400000,bn +10.600000,93.300000,bn +10.600000,93.200000,bn +10.500000,93.200000,bn +10.500000,93.100000,bn +10.600000,93.100000,bn +10.600000,93.000000,bn +10.500000,93.000000,bn +10.300000,93.000000,bn +10.400000,93.000000,bn +10.400000,92.900000,bn +10.300000,92.900000,bn +10.300000,92.800000,bn +10.400000,92.800000,bn +10.500000,92.800000,bn +10.500000,92.900000,bn +10.600000,92.900000,bn +10.600000,92.800000,bn +10.600000,92.700000,bn +10.500000,92.700000,bn +10.600000,92.600000,bn +10.600000,92.500000,bn +10.500000,92.500000,bn +10.500000,92.600000,bn +10.400000,92.600000,bn +10.400000,92.500000,bn +10.300000,92.500000,bn +10.300000,92.600000,bn +10.400000,92.700000,bn +10.300000,92.700000,bn +10.300000,92.200000,bn +10.400000,92.200000,bn +10.400000,92.300000,bn +10.300000,92.300000,bn +10.300000,92.400000,bn +10.400000,92.400000,bn +10.500000,92.400000,bn +10.600000,92.400000,bn +10.600000,92.300000,bn +10.500000,92.300000,bn +10.500000,92.200000,bn +10.600000,92.200000,bn +10.600000,92.100000,bn +10.600000,92.000000,bn +10.500000,92.000000,bn +10.500000,92.100000,bn +10.400000,92.100000,bn +10.300000,92.100000,bn +10.400000,92.000000,bn +12.500000,92.300000,bn +12.100000,92.300000,bn +12.200000,92.300000,bn +12.400000,92.300000,bn +12.300000,92.300000,bn +12.200000,92.400000,bn +12.100000,92.400000,bn +12.000000,92.400000,bn +11.900000,92.400000,bn +12.000000,92.300000,bn +11.900000,92.300000,bn +11.800000,92.300000,bn +11.700000,92.300000,bn +11.400000,92.400000,bn +11.500000,92.300000,bn +11.400000,92.300000,bn +11.600000,92.300000,bn +11.600000,92.100000,bn +11.500000,92.100000,bn +11.400000,92.100000,bn +11.400000,92.000000,bn +11.700000,92.100000,bn +11.800000,92.100000,bn +10.700000,92.000000,bn +10.700000,92.100000,bn +10.800000,92.000000,bn +10.800000,92.100000,bn +10.900000,92.100000,bn +10.900000,92.000000,bn +10.900000,91.900000,bn +11.000000,91.900000,bn +11.100000,91.900000,bn +11.200000,92.000000,bn +11.300000,92.000000,bn +11.300000,92.100000,bn +11.200000,92.100000,bn +11.100000,92.100000,bn +11.100000,92.000000,bn +11.000000,92.000000,bn +11.000000,92.100000,bn +11.000000,92.200000,bn +11.000000,92.300000,bn +11.100000,92.300000,bn +11.300000,92.300000,bn +11.200000,92.300000,bn +11.300000,92.400000,bn +11.200000,92.400000,bn +11.100000,92.400000,bn +11.000000,92.400000,bn +10.900000,92.400000,bn +10.800000,92.400000,bn +10.900000,92.300000,bn +10.900000,92.200000,bn +10.800000,92.200000,bn +10.800000,92.300000,bn +10.700000,92.200000,bn +10.700000,92.300000,bn +10.700000,92.400000,bn +10.700000,92.600000,bn +10.700000,92.500000,bn +10.800000,92.500000,bn +10.900000,92.500000,bn +10.900000,92.600000,bn +10.800000,92.600000,bn +10.900000,92.700000,bn +10.800000,92.700000,bn +10.700000,92.700000,bn +10.700000,92.800000,bn +10.700000,92.900000,bn +10.700000,93.000000,bn +10.800000,93.000000,bn +10.900000,93.000000,bn +10.900000,92.900000,bn +10.800000,92.900000,bn +10.800000,92.800000,bn +10.900000,92.800000,bn +11.000000,92.800000,bn +11.100000,92.800000,bn +11.100000,92.900000,bn +11.000000,92.900000,bn +11.000000,93.000000,bn +11.100000,93.000000,bn +11.200000,93.000000,bn +11.300000,93.000000,bn +11.300000,92.900000,bn +11.200000,92.900000,bn +11.200000,92.800000,bn +11.300000,92.800000,bn +11.300000,92.700000,bn +11.200000,92.700000,bn +11.100000,92.700000,bn +11.000000,92.700000,bn +11.100000,92.600000,bn +11.000000,92.600000,bn +11.000000,92.500000,bn +11.100000,92.500000,bn +11.200000,92.500000,bn +11.200000,92.600000,bn +11.300000,92.600000,bn +11.300000,92.500000,bn +11.400000,92.500000,bn +11.500000,92.500000,bn +11.500000,92.600000,bn +11.400000,92.600000,bn +11.400000,92.700000,bn +11.500000,92.700000,bn +11.600000,92.700000,bn +11.600000,92.600000,bn +11.600000,92.500000,bn +11.700000,92.500000,bn +11.700000,92.600000,bn +11.800000,92.600000,bn +11.800000,92.500000,bn +11.900000,92.500000,bn +12.000000,92.500000,bn +12.000000,92.600000,bn +11.900000,92.600000,bn +12.000000,92.700000,bn +11.900000,92.700000,bn +11.800000,92.700000,bn +11.700000,92.700000,bn +11.700000,92.800000,ta +11.700000,92.900000,bn +11.800000,92.900000,bn +11.800000,92.800000,bn +11.900000,92.800000,bn +11.900000,92.900000,bn +11.600000,92.800000,bn +11.600000,92.900000,bn +11.500000,92.900000,bn +11.500000,92.800000,bn +11.400000,92.800000,bn +11.400000,92.900000,bn +11.400000,93.000000,bn +11.500000,93.000000,bn +11.400000,93.100000,bn +11.500000,93.100000,bn +11.500000,93.200000,bn +11.400000,93.200000,bn +11.400000,93.400000,bn +11.500000,93.400000,bn +11.600000,93.200000,bn +11.600000,93.100000,bn +11.700000,93.100000,bn +11.700000,93.200000,bn +11.900000,93.600000,bn +12.000000,93.600000,bn +12.000000,93.700000,bn +11.900000,93.700000,bn +11.800000,93.700000,bn +11.800000,93.600000,bn +11.700000,93.600000,bn +11.700000,93.700000,bn +11.600000,93.700000,bn +11.600000,93.600000,bn +11.500000,93.500000,bn +11.400000,93.500000,bn +11.400000,93.600000,bn +11.500000,93.600000,bn +11.500000,93.700000,bn +11.400000,93.700000,bn +11.300000,93.700000,bn +11.300000,93.600000,bn +11.200000,93.600000,bn +11.200000,93.700000,bn +11.100000,93.700000,bn +11.000000,93.700000,bn +11.000000,93.600000,bn +11.100000,93.600000,bn +11.000000,93.500000,bn +11.100000,93.500000,bn +11.200000,93.500000,bn +11.300000,93.500000,bn +11.300000,93.400000,bn +11.200000,93.400000,bn +11.200000,93.300000,bn +11.300000,93.200000,bn +11.300000,93.100000,bn +11.200000,93.100000,bn +11.200000,93.200000,bn +11.100000,93.200000,bn +11.100000,93.100000,bn +11.000000,93.100000,bn +11.000000,93.200000,bn +11.000000,93.300000,bn +11.100000,93.300000,bn +11.100000,93.400000,bn +11.000000,93.400000,bn +10.900000,93.400000,bn +10.800000,93.400000,bn +10.800000,93.300000,bn +10.900000,93.300000,bn +10.900000,93.200000,bn +10.900000,93.100000,bn +10.800000,93.100000,bn +10.800000,93.200000,bn +10.700000,93.200000,bn +10.700000,93.100000,bn +10.700000,93.300000,bn +10.700000,93.400000,bn +10.700000,93.500000,bn +10.800000,93.500000,bn +10.900000,93.500000,bn +10.800000,93.600000,bn +10.900000,93.600000,bn +10.900000,93.700000,bn +10.800000,93.700000,bn +10.700000,93.700000,bn +10.700000,93.600000,bn +10.600000,93.600000,bn +10.600000,93.700000,bn +10.600000,93.800000,bn +10.700000,93.800000,bn +10.900000,93.900000,bn +10.800000,93.900000,bn +11.000000,93.900000,bn +12.000000,94.100000,bn +11.900000,94.100000,bn +11.800000,94.100000,bn +11.700000,94.100000,bn +12.500000,94.200000,bn +12.500000,94.100000,bn +12.600000,94.100000,bn +12.700000,94.100000,bn +12.700000,94.200000,bn +12.600000,94.200000,bn +12.600000,94.300000,bn +12.700000,94.300000,bn +12.500000,94.300000,bn +12.400000,94.200000,bn +12.400000,94.100000,bn +12.300000,94.100000,bn +12.300000,94.200000,bn +12.200000,94.200000,bn +12.200000,94.100000,bn +12.100000,94.100000,bn +12.100000,94.200000,bn +12.900000,94.400000,bn +13.000000,94.400000,bn +13.100000,94.400000,bn +13.100000,94.500000,bn +13.500000,94.600000,bn +13.300000,94.500000,bn +13.200000,94.500000,bn +13.200000,94.400000,bn +13.300000,94.400000,bn +13.400000,94.400000,bn +13.400000,94.500000,bn +13.500000,94.500000,bn +13.500000,94.400000,bn +13.400000,94.300000,bn +13.500000,94.300000,bn +13.500000,94.200000,bn +13.500000,94.100000,bn +13.400000,94.100000,bn +13.400000,94.200000,bn +13.300000,94.200000,bn +13.300000,94.100000,bn +13.200000,94.100000,bn +13.200000,94.200000,bn +13.200000,94.300000,bn +13.300000,94.300000,bn +13.100000,94.300000,bn +13.000000,94.300000,bn +12.800000,94.300000,bn +12.900000,94.300000,bn +12.900000,94.200000,bn +12.800000,94.200000,bn +12.800000,94.100000,bn +12.900000,94.100000,bn +13.000000,94.100000,bn +13.000000,94.200000,bn +13.100000,94.200000,bn +13.100000,94.100000,bn +13.100000,94.000000,bn +13.200000,94.000000,bn +13.300000,94.000000,bn +13.400000,94.000000,bn +13.500000,94.000000,bn +12.600000,93.700000,bn +12.600000,93.600000,bn +12.600000,93.500000,bn +12.500000,93.500000,bn +12.500000,93.600000,bn +12.500000,93.700000,bn +12.400000,93.700000,bn +12.400000,93.600000,bn +12.300000,93.600000,bn +12.300000,93.700000,bn +12.200000,93.700000,bn +12.100000,93.700000,bn +12.100000,93.600000,bn +12.200000,93.600000,bn +12.400000,93.500000,bn +12.200000,93.200000,bn +12.100000,93.200000,bn +12.100000,93.100000,bn +12.200000,93.100000,bn +12.100000,92.700000,bn +12.100000,92.600000,bn +12.100000,92.500000,bn +12.200000,92.500000,bn +13.600000,94.000000,bn +13.600000,94.100000,bn +13.600000,94.200000,bn +13.600000,94.300000,bn +13.600000,94.500000,bn +13.600000,94.400000,bn +13.600000,94.600000,bn +22.400000,92.600000,bn +28.800000,95.900000,en +28.800000,96.000000,en +28.900000,96.000000,en +28.900000,95.900000,en +28.900000,95.800000,en +28.900000,96.300000,en +28.900000,96.400000,en +28.800000,96.400000,en +28.800000,96.300000,en +28.900000,96.200000,en +28.900000,96.100000,en +28.800000,96.100000,en +28.800000,96.200000,en +28.700000,96.300000,en +28.700000,96.400000,en +28.600000,96.400000,en +28.700000,96.500000,en +28.800000,96.500000,en +28.700000,96.600000,en +28.900000,96.500000,en +26.800000,95.200000,en +26.800000,95.100000,en +26.900000,95.100000,en +27.000000,95.100000,en +27.000000,95.200000,en +26.900000,95.200000,en +26.900000,95.300000,en +27.000000,95.300000,en +26.800000,95.300000,en +26.900000,95.400000,en +27.000000,95.400000,en +27.000000,95.500000,en +27.000000,95.600000,en +27.200000,96.900000,my +27.100000,97.100000,my +27.200000,97.100000,my +27.800000,97.100000,my +27.900000,97.200000,my +27.900000,97.100000,my +28.000000,97.100000,my +28.100000,97.100000,my +28.100000,97.200000,my +28.000000,97.200000,my +28.000000,97.300000,my +28.100000,97.300000,my +27.900000,97.300000,my +28.200000,97.300000,my +28.200000,97.200000,my +28.200000,97.100000,my +28.300000,97.100000,my +28.500000,96.800000,en +28.400000,96.800000,en +28.300000,96.900000,my +28.200000,97.000000,my +28.300000,97.000000,my +28.100000,97.000000,my +28.000000,97.000000,my +27.900000,97.000000,my +28.500000,96.700000,en +28.500000,96.600000,en +28.300000,96.200000,en +28.200000,96.200000,en +28.300000,96.100000,en +28.400000,96.100000,en +28.400000,96.200000,en +28.400000,96.000000,en +28.400000,95.900000,en +28.100000,96.000000,en +28.000000,96.000000,en +28.000000,95.900000,en +28.100000,95.900000,en +28.100000,95.800000,en +28.000000,95.800000,en +27.900000,95.800000,en +27.800000,95.900000,en +27.900000,95.900000,en +27.900000,96.000000,en +27.800000,96.000000,en +27.400000,95.900000,en +27.300000,95.900000,en +27.100000,95.900000,en +27.200000,95.900000,en +27.100000,95.800000,en +27.200000,95.800000,en +27.300000,95.800000,en +27.400000,95.800000,en +27.500000,95.800000,en +27.600000,95.800000,en +27.500000,95.900000,en +27.600000,95.900000,en +27.700000,95.900000,en +27.700000,96.000000,en +27.700000,95.800000,en +27.800000,95.800000,en +27.800000,95.700000,en +27.700000,95.700000,en +27.700000,95.600000,id +27.800000,95.600000,en +27.800000,95.500000,en +27.800000,95.400000,en +27.700000,95.400000,id +27.700000,95.500000,id +27.600000,95.500000,id +27.600000,95.400000,id +27.500000,95.400000,id +27.500000,95.500000,id +27.500000,95.600000,id +27.600000,95.600000,id +27.600000,95.700000,en +27.500000,95.700000,en +27.400000,95.700000,en +27.400000,95.600000,id +27.300000,95.600000,id +27.300000,95.700000,en +27.200000,95.700000,en +27.100000,95.700000,en +27.100000,95.600000,en +27.200000,95.600000,en +27.200000,95.500000,en +27.100000,95.500000,en +27.100000,95.400000,en +27.200000,95.400000,en +27.300000,95.400000,id +27.300000,95.500000,id +27.400000,95.500000,id +27.400000,95.400000,id +27.400000,95.300000,id +27.300000,95.300000,id +27.100000,95.300000,en +27.200000,95.300000,en +27.200000,95.200000,en +27.100000,95.200000,en +27.100000,95.100000,en +27.200000,95.100000,en +27.300000,95.100000,id +27.300000,95.200000,id +27.400000,95.200000,id +27.400000,95.100000,id +27.500000,95.100000,id +27.600000,95.100000,id +27.600000,95.200000,id +27.500000,95.200000,id +27.500000,95.300000,id +27.600000,95.300000,id +27.700000,95.300000,id +27.800000,95.300000,en +27.800000,95.200000,en +27.700000,95.200000,id +27.700000,95.100000,id +27.800000,95.100000,en +27.900000,95.100000,en +27.900000,95.200000,en +28.000000,95.200000,en +28.000000,95.100000,en +28.000000,95.300000,en +27.900000,95.300000,en +27.900000,95.400000,en +28.000000,95.400000,en +28.000000,95.500000,en +27.900000,95.500000,en +27.900000,95.600000,en +27.900000,95.700000,en +28.000000,95.600000,en +28.000000,95.700000,en +28.100000,95.700000,en +28.100000,95.600000,en +27.900000,94.600000,en +27.900000,94.700000,en +27.900000,94.800000,en +28.000000,95.000000,en +27.900000,94.900000,en +27.900000,95.000000,en +27.800000,95.000000,en +27.700000,95.000000,id +27.700000,94.900000,id +27.800000,94.900000,en +27.800000,94.800000,en +27.700000,94.800000,id +27.600000,94.800000,id +27.500000,94.800000,id +27.500000,94.900000,id +27.600000,94.900000,id +27.600000,95.000000,id +27.500000,95.000000,id +27.400000,95.000000,id +27.400000,94.900000,id +27.300000,94.900000,id +27.300000,95.000000,id +27.200000,95.000000,en +27.100000,95.000000,en +27.100000,94.900000,en +27.200000,94.900000,en +27.100000,94.800000,en +27.200000,94.800000,en +27.300000,94.800000,id +27.400000,94.800000,id +27.400000,94.700000,id +27.400000,94.600000,en +27.300000,94.600000,en +27.300000,94.700000,id +27.200000,94.700000,en +27.100000,94.700000,en +27.100000,94.600000,en +27.200000,94.600000,en +27.200000,94.500000,en +27.200000,94.400000,en +27.300000,94.400000,en +27.300000,94.500000,en +27.400000,94.500000,en +27.400000,94.400000,en +27.500000,94.400000,en +27.600000,94.400000,en +27.600000,94.500000,en +27.500000,94.500000,en +27.500000,94.600000,en +27.500000,94.700000,id +27.600000,94.700000,id +27.600000,94.600000,en +27.700000,94.600000,en +27.700000,94.700000,id +27.800000,94.700000,en +27.800000,94.600000,en +27.800000,94.500000,en +27.700000,94.500000,en +27.700000,94.400000,en +27.700000,94.300000,en +27.700000,94.100000,en +27.700000,94.200000,en +27.600000,94.200000,en +27.600000,94.100000,en +27.500000,94.100000,en +27.500000,94.200000,en +27.500000,94.300000,en +27.600000,94.300000,en +27.400000,94.300000,en +27.300000,94.300000,en +27.200000,94.300000,en +27.200000,94.200000,en +27.200000,94.100000,en +27.300000,94.100000,en +27.300000,94.200000,en +27.400000,94.200000,en +27.400000,94.100000,en +27.400000,94.000000,en +27.300000,94.000000,en +27.200000,94.000000,en +27.300000,93.900000,id +27.200000,93.900000,id +27.200000,93.800000,id +27.300000,93.800000,id +27.400000,93.800000,en +27.400000,93.900000,en +27.500000,93.900000,en +27.500000,94.000000,en +27.600000,94.000000,en +28.000000,93.900000,en +28.000000,93.800000,en +28.000000,94.000000,en +28.600000,94.100000,en +28.600000,94.000000,en +28.600000,93.900000,en +28.600000,93.800000,en +28.600000,93.700000,en +28.500000,93.700000,en +28.500000,93.600000,en +28.500000,93.500000,en +28.500000,93.300000,en +28.500000,93.400000,en +28.100000,92.700000,id +28.000000,92.800000,id +28.100000,92.800000,id +27.200000,93.400000,bn +27.300000,93.400000,bn +27.500000,93.300000,id +27.600000,93.100000,bn +27.600000,93.200000,id +27.600000,93.300000,id +27.300000,93.500000,id +27.200000,93.500000,id +27.200000,93.600000,id +27.300000,93.600000,id +27.300000,93.700000,id +27.200000,93.700000,id +27.100000,93.700000,id +27.000000,93.700000,id +27.000000,93.600000,id +27.100000,93.600000,id +27.100000,93.500000,id +27.000000,93.500000,id +26.900000,93.500000,id +26.800000,93.500000,en +26.800000,93.600000,en +26.900000,93.600000,id +26.900000,93.700000,id +26.800000,93.700000,en +26.700000,93.700000,en +26.700000,93.600000,en +26.600000,93.600000,en +26.600000,93.700000,en +26.500000,93.700000,en +26.400000,93.700000,en +26.400000,93.600000,en +26.500000,93.600000,en +26.400000,93.500000,en +26.500000,93.500000,en +26.600000,93.500000,en +26.700000,93.500000,en +26.700000,93.400000,en +26.700000,93.300000,en +26.600000,93.300000,en +26.600000,93.400000,en +26.500000,93.400000,en +26.400000,93.400000,en +26.400000,93.300000,en +26.500000,93.300000,en +26.500000,93.200000,en +26.400000,93.200000,en +26.400000,93.100000,id +26.500000,93.100000,en +26.600000,93.100000,en +26.600000,93.200000,en +26.700000,93.200000,en +26.700000,93.100000,en +26.800000,93.100000,en +26.900000,93.100000,en +26.900000,93.200000,en +26.800000,93.200000,en +26.800000,93.300000,en +26.800000,93.400000,en +26.900000,93.400000,id +26.900000,93.300000,en +27.000000,93.300000,en +27.000000,93.400000,id +27.100000,93.400000,id +27.100000,93.300000,en +27.100000,93.200000,en +27.000000,93.200000,en +27.000000,93.100000,en +27.000000,93.000000,en +26.800000,93.000000,en +26.900000,93.000000,en +26.900000,92.900000,en +26.800000,92.900000,en +26.800000,92.800000,en +26.900000,92.800000,en +27.000000,92.800000,en +27.000000,92.900000,en +27.000000,92.700000,en +27.000000,92.500000,en +27.000000,92.600000,en +26.900000,92.600000,en +26.900000,92.500000,en +26.800000,92.500000,en +26.800000,92.600000,en +26.900000,92.700000,en +26.800000,92.700000,en +26.700000,92.700000,en +26.600000,92.700000,en +26.700000,92.600000,en +26.700000,92.500000,en +26.600000,92.500000,en +26.600000,92.600000,en +26.500000,92.600000,en +26.500000,92.500000,en +26.400000,92.500000,en +26.400000,92.600000,en +26.500000,92.700000,en +26.400000,92.700000,id +26.400000,92.800000,id +26.400000,92.900000,id +26.500000,92.900000,en +26.500000,92.800000,en +26.600000,92.800000,en +26.700000,92.800000,en +26.700000,92.900000,en +26.600000,92.900000,en +26.600000,93.000000,en +26.700000,93.000000,en +26.500000,93.000000,en +26.400000,93.000000,id +26.300000,93.000000,id +26.200000,93.000000,id +26.100000,93.000000,id +26.200000,92.900000,id +26.100000,92.900000,id +26.100000,92.800000,id +26.200000,92.800000,id +26.300000,92.900000,id +26.300000,92.800000,id +26.300000,92.700000,id +26.300000,92.500000,en +26.300000,92.600000,en +26.200000,92.600000,en +26.200000,92.500000,en +26.100000,92.500000,en +26.100000,92.600000,en +26.200000,92.700000,id +26.100000,92.700000,id +26.000000,92.700000,id +25.900000,92.700000,en +26.000000,92.600000,en +26.000000,92.500000,en +25.900000,92.500000,en +25.900000,92.600000,en +25.800000,92.600000,en +25.800000,92.700000,en +25.700000,92.700000,en +25.700000,92.800000,en +25.700000,92.900000,en +25.800000,92.900000,en +25.800000,92.800000,en +25.900000,92.800000,en +26.000000,92.800000,id +26.000000,92.900000,id +25.900000,92.900000,en +25.900000,93.000000,en +26.000000,93.000000,id +25.800000,93.000000,en +25.700000,93.000000,en +25.700000,93.100000,en +25.800000,93.100000,en +25.800000,93.200000,en +25.700000,93.200000,en +25.700000,93.300000,en +25.700000,93.400000,en +25.800000,93.400000,en +25.800000,93.300000,en +25.900000,93.300000,en +25.900000,93.400000,en +26.000000,93.400000,en +26.000000,93.300000,en +26.000000,93.200000,en +25.900000,93.200000,en +25.900000,93.100000,en +26.000000,93.100000,id +26.100000,93.100000,id +26.100000,93.200000,en +26.200000,93.100000,id +26.300000,93.100000,id +26.300000,93.200000,en +26.200000,93.200000,en +26.200000,93.300000,en +26.300000,93.300000,en +26.300000,93.400000,en +26.200000,93.400000,en +26.100000,93.400000,en +26.100000,93.300000,en +26.000000,93.500000,id +26.100000,93.500000,id +26.200000,93.600000,en +26.300000,93.600000,en +26.300000,93.700000,en +26.200000,93.700000,en +26.100000,93.700000,id +26.100000,93.600000,id +26.000000,93.600000,id +26.000000,93.700000,id +25.900000,93.700000,id +25.900000,93.600000,id +25.900000,93.500000,id +25.800000,93.500000,id +25.700000,93.500000,id +25.700000,93.600000,id +25.800000,93.600000,id +25.800000,93.700000,bn +25.700000,93.700000,bn +25.700000,93.800000,bn +25.700000,93.900000,bn +25.800000,93.900000,bn +25.800000,93.800000,bn +25.900000,93.800000,bn +25.900000,93.900000,bn +25.900000,94.000000,bn +25.800000,94.000000,bn +25.700000,94.000000,bn +25.700000,94.100000,bn +25.700000,94.200000,bn +25.600000,94.300000,bn +25.700000,94.300000,bn +25.800000,94.300000,bn +25.900000,94.300000,bn +25.900000,94.200000,bn +25.800000,94.200000,bn +25.800000,94.100000,bn +25.900000,94.100000,bn +26.000000,94.100000,en +26.100000,94.100000,en +26.100000,94.200000,en +26.100000,94.300000,bn +26.200000,94.300000,id +26.300000,94.300000,id +26.300000,94.200000,en +26.200000,94.200000,en +26.200000,94.100000,en +26.300000,94.100000,en +26.300000,94.000000,en +26.200000,94.000000,en +26.100000,94.000000,id +26.000000,94.000000,id +26.100000,93.900000,id +26.000000,93.900000,id +26.000000,93.800000,id +26.100000,93.800000,id +26.200000,93.800000,en +26.200000,93.900000,en +26.300000,93.900000,en +26.300000,93.800000,en +26.400000,93.800000,en +26.500000,93.800000,en +26.500000,93.900000,en +26.400000,93.900000,en +26.400000,94.000000,en +26.500000,94.000000,en +26.600000,94.000000,en +26.700000,94.000000,en +26.700000,93.900000,en +26.600000,93.900000,en +26.600000,93.800000,en +26.700000,93.800000,en +26.800000,93.800000,en +26.800000,93.900000,en +26.900000,93.900000,id +26.900000,93.800000,id +27.000000,93.800000,id +27.100000,93.800000,id +27.100000,93.900000,id +27.000000,93.900000,id +27.100000,94.000000,en +27.000000,94.000000,en +26.900000,94.000000,en +26.800000,94.000000,en +26.800000,94.100000,en +26.800000,94.200000,en +26.900000,94.200000,en +26.900000,94.100000,en +27.000000,94.100000,en +27.100000,94.100000,en +27.100000,94.200000,en +27.000000,94.200000,en +27.000000,94.300000,en +27.100000,94.300000,en +26.900000,94.300000,en +26.800000,94.300000,en +26.600000,94.300000,en +26.700000,94.300000,en +26.700000,94.200000,en +26.700000,94.100000,en +26.600000,94.100000,en +26.600000,94.200000,en +26.500000,94.200000,en +26.500000,94.100000,en +26.400000,94.100000,en +26.400000,94.200000,en +26.400000,94.300000,id +26.500000,94.300000,id +26.400000,94.400000,id +26.500000,94.400000,id +26.500000,94.500000,id +26.400000,94.500000,bn +26.400000,94.600000,bn +26.400000,94.700000,id +26.500000,94.700000,en +26.500000,94.600000,bn +26.600000,94.600000,en +26.600000,94.700000,en +26.700000,94.700000,en +26.700000,94.600000,en +26.700000,94.500000,en +26.600000,94.500000,en +26.600000,94.400000,en +26.700000,94.400000,en +26.800000,94.400000,en +26.800000,94.500000,en +26.900000,94.500000,en +26.900000,94.400000,en +27.000000,94.400000,en +27.100000,94.400000,en +27.100000,94.500000,en +27.000000,94.500000,en +27.000000,94.600000,en +27.000000,94.700000,en +26.900000,94.700000,en +26.900000,94.600000,en +26.800000,94.600000,en +26.800000,94.700000,en +26.800000,94.800000,en +26.900000,94.800000,en +27.000000,94.800000,en +27.000000,94.900000,en +27.000000,95.000000,en +26.900000,95.000000,en +26.900000,94.900000,en +26.800000,94.900000,en +26.800000,95.000000,en +26.700000,95.000000,en +26.600000,94.900000,en +26.700000,94.900000,en +26.700000,94.800000,en +26.600000,94.800000,en +26.400000,94.800000,en +26.000000,94.800000,en +26.100000,94.800000,en +26.200000,94.800000,en +26.300000,94.800000,en +26.300000,94.700000,id +26.200000,94.700000,id +26.200000,94.600000,id +26.300000,94.600000,id +26.300000,94.500000,bn +26.300000,94.400000,bn +26.200000,94.400000,id +26.200000,94.500000,id +26.100000,94.500000,id +26.100000,94.400000,id +26.000000,94.400000,en +26.000000,94.500000,en +26.000000,94.600000,en +26.100000,94.600000,id +26.100000,94.700000,id +26.000000,94.700000,en +25.900000,94.700000,en +25.900000,94.600000,en +25.900000,94.500000,en +25.900000,94.400000,en +25.900000,94.800000,en +25.500000,94.300000,bn +25.500000,94.100000,bn +25.500000,94.200000,bn +25.600000,94.200000,bn +25.600000,94.100000,bn +25.600000,94.000000,bn +25.500000,94.000000,bn +25.600000,93.900000,bn +25.600000,93.800000,en +25.500000,93.900000,bn +25.000000,93.900000,bn +25.000000,93.800000,bn +24.900000,93.800000,bn +24.900000,93.900000,bn +25.000000,94.000000,bn +24.900000,94.000000,bn +24.900000,94.100000,bn +24.900000,94.200000,en +25.000000,94.200000,en +25.000000,94.100000,bn +24.600000,94.200000,en +24.500000,94.100000,id +24.600000,94.100000,bn +24.700000,94.100000,bn +24.700000,94.200000,en +24.800000,94.200000,en +24.800000,94.100000,bn +24.800000,94.000000,bn +24.700000,94.000000,bn +24.800000,93.900000,bn +24.800000,93.800000,bn +24.700000,93.800000,bn +24.700000,93.900000,id +24.600000,93.900000,bn +24.600000,93.800000,bn +24.500000,93.800000,bn +24.500000,93.900000,bn +24.600000,94.000000,bn +24.500000,94.000000,id +24.400000,93.900000,en +24.400000,93.800000,en +24.300000,93.800000,en +24.300000,93.900000,en +24.200000,93.900000,en +24.200000,93.800000,en +24.100000,93.800000,en +24.100000,93.900000,en +24.100000,94.100000,en +24.100000,94.200000,en +24.200000,94.200000,en +24.200000,94.100000,en +24.300000,94.100000,en +24.400000,94.100000,en +24.400000,94.200000,en +24.300000,94.200000,en +24.300000,94.300000,en +24.400000,94.300000,en +24.000000,94.200000,en +24.000000,94.100000,en +24.100000,93.600000,en +24.100000,93.500000,en +22.700000,92.600000,bn +22.800000,92.500000,bn +22.800000,92.600000,bn +22.900000,92.600000,bn +22.900000,92.500000,bn +23.000000,92.500000,bn +23.500000,92.600000,bn +23.500000,92.500000,bn +23.600000,92.500000,bn +23.700000,92.500000,bn +23.700000,92.600000,bn +23.600000,92.600000,bn +23.700000,92.700000,bn +23.600000,92.700000,bn +23.500000,92.700000,bn +23.500000,92.800000,bn +23.500000,92.900000,bn +23.700000,92.900000,bn +23.600000,92.900000,bn +23.600000,92.800000,bn +23.700000,92.800000,bn +23.800000,92.800000,bn +23.900000,92.800000,bn +23.900000,92.900000,bn +23.800000,92.900000,bn +24.000000,92.900000,en +24.000000,92.800000,en +24.000000,92.700000,en +23.900000,92.700000,bn +23.800000,92.700000,bn +23.900000,92.600000,bn +23.800000,92.600000,bn +23.800000,92.500000,bn +23.900000,92.500000,bn +24.000000,92.500000,en +24.000000,92.600000,en +24.300000,92.500000,en +24.300000,92.600000,en +24.300000,92.700000,en +24.400000,92.700000,en +24.500000,92.700000,en +24.500000,92.600000,en +24.400000,92.600000,en +24.400000,92.500000,en +24.500000,92.500000,en +24.600000,92.600000,id +24.600000,92.500000,en +24.700000,92.500000,en +24.800000,92.500000,en +24.800000,92.600000,id +24.700000,92.600000,id +24.800000,92.700000,id +24.700000,92.700000,id +24.600000,92.700000,id +24.500000,92.800000,en +24.500000,92.900000,en +24.600000,92.900000,id +24.600000,92.800000,id +24.700000,92.800000,id +24.800000,92.800000,id +24.800000,92.900000,id +24.700000,92.900000,id +24.700000,93.000000,id +24.800000,93.000000,id +24.600000,93.000000,id +24.500000,93.000000,en +24.400000,93.000000,en +24.400000,92.800000,en +24.400000,92.900000,en +24.300000,92.900000,en +24.300000,92.800000,en +24.300000,93.000000,en +24.400000,93.100000,en +24.400000,93.200000,en +24.200000,93.500000,en +24.100000,93.700000,en +24.200000,93.700000,en +24.200000,93.600000,en +24.300000,93.600000,en +24.300000,93.700000,en +24.400000,93.700000,en +24.400000,93.600000,en +24.300000,93.500000,en +24.400000,93.500000,en +24.500000,93.500000,en +24.500000,93.600000,en +24.500000,93.700000,bn +24.600000,93.700000,bn +24.700000,93.700000,bn +24.800000,93.700000,bn +24.800000,93.300000,en +24.700000,93.300000,en +24.600000,93.300000,en +24.600000,93.200000,en +24.500000,93.200000,en +24.500000,93.100000,en +24.600000,93.100000,en +24.700000,93.100000,en +24.700000,93.200000,en +24.800000,93.200000,en +24.800000,93.100000,en +24.900000,93.100000,en +24.900000,93.200000,en +25.000000,93.200000,en +25.000000,93.100000,en +25.100000,93.100000,en +25.200000,93.100000,en +25.200000,93.200000,en +25.100000,93.200000,en +25.000000,93.300000,en +24.900000,93.300000,en +24.900000,93.700000,bn +25.000000,93.700000,bn +25.600000,93.700000,en +25.600000,93.600000,id +25.600000,93.500000,en +25.600000,93.400000,en +25.600000,93.300000,en +25.500000,93.300000,en +25.500000,93.400000,en +25.400000,93.200000,en +25.300000,93.200000,en +25.300000,93.100000,en +25.400000,93.100000,en +25.500000,93.100000,en +25.500000,93.200000,en +25.600000,93.200000,en +25.600000,93.100000,en +25.500000,93.000000,en +25.600000,93.000000,en +25.600000,92.900000,en +25.600000,92.800000,en +25.400000,92.900000,en +25.400000,92.800000,en +25.300000,92.800000,en +25.300000,92.900000,en +25.300000,93.000000,en +25.400000,93.000000,en +25.200000,93.000000,en +25.100000,93.000000,en +24.900000,93.000000,id +25.000000,93.000000,id +25.000000,92.900000,id +24.900000,92.900000,id +24.900000,92.800000,id +25.000000,92.800000,id +25.100000,92.800000,en +25.100000,92.900000,en +25.200000,92.900000,en +25.200000,92.800000,en +25.200000,92.700000,en +25.100000,92.700000,en +25.000000,92.700000,id +24.900000,92.700000,id +25.000000,92.600000,id +24.900000,92.600000,id +24.900000,92.500000,en +25.000000,92.500000,en +25.100000,92.500000,en +25.100000,92.600000,en +25.200000,92.600000,en +25.200000,92.500000,en +25.300000,92.500000,en +25.400000,92.500000,en +25.400000,92.600000,en +25.300000,92.600000,en +25.600000,92.700000,en +25.600000,92.600000,en +25.500000,92.600000,en +25.500000,92.500000,en +25.600000,92.500000,en +25.600000,92.400000,bn +25.500000,92.400000,bn +25.600000,92.300000,bn +25.600000,92.200000,bn +25.500000,92.200000,bn +25.500000,92.300000,bn +25.400000,92.300000,bn +25.400000,92.200000,bn +25.300000,92.200000,bn +25.300000,92.300000,bn +25.400000,92.400000,id +25.300000,92.400000,bn +25.200000,92.400000,id +25.100000,92.400000,en +25.200000,92.300000,id +25.200000,92.200000,id +25.200000,92.100000,id +25.200000,92.000000,id +25.300000,91.900000,en +25.400000,91.900000,kha +25.300000,92.000000,id +25.300000,92.100000,id +25.400000,92.100000,id +25.400000,92.000000,id +25.500000,92.000000,id +25.500000,92.100000,id +25.600000,92.100000,id +25.600000,92.000000,id +25.500000,91.900000,kha +25.600000,91.900000,kha +25.600000,91.800000,kha +25.600000,91.700000,kha +25.500000,91.700000,kha +25.500000,91.800000,kha +25.400000,91.800000,kha +25.300000,91.800000,en +25.300000,91.700000,en +25.400000,91.700000,kha +25.400000,91.600000,en +25.300000,91.600000,en +25.500000,91.600000,en +25.600000,91.600000,en +25.600000,91.500000,en +25.500000,91.500000,en +25.500000,91.400000,en +25.600000,91.400000,en +25.600000,91.300000,en +25.500000,91.300000,en +25.400000,91.300000,en +25.300000,91.300000,en +25.300000,91.400000,en +25.400000,91.400000,en +25.400000,91.500000,en +25.300000,91.500000,en +25.200000,91.500000,en +25.200000,91.600000,en +25.200000,91.700000,en +25.200000,91.800000,en +24.200000,91.800000,en +24.200000,92.000000,en +24.200000,92.100000,id +24.300000,92.100000,en +24.300000,92.000000,en +24.600000,92.300000,en +24.800000,92.300000,en +24.800000,92.400000,en +24.700000,92.400000,en +24.600000,92.400000,en +24.500000,92.400000,en +24.400000,92.400000,en +24.500000,92.300000,en +24.400000,92.200000,en +24.400000,92.300000,en +24.300000,92.300000,en +24.300000,92.200000,en +24.200000,92.200000,id +24.200000,92.300000,en +24.300000,92.400000,en +24.200000,92.400000,en +24.100000,92.400000,en +24.000000,92.400000,en +23.900000,92.400000,en +23.800000,92.400000,en +23.900000,92.300000,en +23.800000,92.300000,en +23.800000,92.200000,id +23.900000,92.200000,id +24.000000,92.200000,id +24.000000,92.300000,en +24.100000,92.300000,en +24.100000,92.200000,id +24.100000,92.100000,id +24.000000,92.100000,id +24.000000,92.000000,hi +24.100000,92.000000,id +24.100000,91.900000,en +24.000000,91.900000,id +23.900000,91.900000,id +23.800000,91.900000,id +23.800000,92.000000,id +23.900000,92.000000,id +23.900000,92.100000,id +23.800000,92.100000,id +23.700000,91.900000,id +23.600000,91.900000,en +23.500000,91.900000,en +23.600000,92.400000,bn +23.200000,91.700000,en +23.300000,91.700000,en +23.300000,91.600000,en +23.200000,91.600000,en +23.100000,91.600000,hi +23.000000,91.600000,hi +23.000000,91.700000,hi +23.100000,91.700000,hi +23.100000,91.800000,hi +23.300000,91.500000,en +23.300000,91.400000,hi +23.500000,91.300000,hi +23.700000,91.300000,en +23.600000,91.300000,en +23.600000,91.400000,en +23.700000,91.400000,en +23.700000,91.500000,id +23.600000,91.500000,id +23.500000,91.500000,en +23.500000,91.400000,en +23.400000,91.400000,en +23.400000,91.500000,en +23.500000,91.600000,en +23.400000,91.600000,en +23.400000,91.700000,en +23.400000,91.800000,en +23.500000,91.800000,en +23.500000,91.700000,en +23.600000,91.700000,en +23.600000,91.800000,en +23.700000,91.800000,id +23.700000,91.700000,en +23.700000,91.600000,en +23.600000,91.600000,en +23.900000,91.600000,en +23.800000,91.600000,en +23.800000,91.700000,en +23.800000,91.800000,id +23.900000,91.800000,id +23.900000,91.700000,en +24.000000,91.700000,en +24.000000,91.800000,id +24.100000,91.800000,en +24.100000,91.700000,en +24.000000,91.600000,en +24.000000,91.400000,en +24.000000,91.500000,en +23.900000,91.500000,id +23.800000,91.500000,id +23.800000,91.400000,en +23.900000,91.400000,en +23.900000,91.300000,en +23.800000,91.300000,id +23.600000,91.200000,en +25.200000,90.700000,en +25.200000,90.800000,en +25.200000,90.900000,hi +25.200000,91.000000,hi +25.400000,91.000000,en +25.300000,91.000000,en +25.300000,91.100000,en +25.300000,91.200000,en +25.400000,91.200000,en +25.400000,91.100000,en +25.500000,91.200000,en +25.600000,91.200000,en +25.400000,90.900000,en +25.300000,90.900000,en +25.300000,90.800000,en +25.400000,90.800000,en +25.400000,90.700000,en +25.300000,90.700000,en +25.600000,90.400000,id +25.600000,90.300000,id +25.500000,90.300000,id +25.500000,90.400000,id +25.400000,90.400000,id +25.400000,90.300000,id +25.300000,90.300000,id +25.300000,90.400000,id +25.300000,90.500000,en +25.400000,90.500000,en +25.400000,90.600000,en +25.300000,90.600000,en +25.200000,90.600000,en +25.200000,90.500000,en +25.200000,90.400000,hi +25.300000,90.000000,en +25.400000,90.000000,en +25.400000,90.100000,id +25.300000,90.100000,en +25.300000,90.200000,en +25.400000,90.200000,id +25.500000,90.200000,id +25.600000,90.200000,id +25.600000,90.100000,id +25.500000,90.100000,id +25.500000,90.000000,id +25.600000,90.000000,id +25.700000,90.000000,id +25.700000,90.100000,id +25.800000,90.100000,en +25.800000,90.000000,en +25.900000,90.000000,en +26.000000,90.000000,en +26.000000,90.100000,en +25.900000,90.100000,en +25.900000,90.200000,en +26.000000,90.200000,en +25.800000,90.200000,en +25.700000,90.200000,id +25.700000,90.300000,id +25.800000,90.300000,en +25.800000,90.400000,en +25.700000,90.400000,id +25.800000,90.600000,en +25.800000,90.500000,en +25.900000,90.500000,en +25.900000,90.600000,en +26.000000,90.600000,en +26.000000,90.500000,en +26.000000,90.400000,en +25.900000,90.400000,en +25.900000,90.300000,en +26.000000,90.300000,en +26.100000,90.300000,en +26.200000,90.300000,id +26.200000,90.400000,id +26.100000,90.400000,en +26.100000,90.500000,en +26.100000,90.600000,en +26.200000,90.600000,en +26.200000,90.500000,id +26.300000,90.500000,id +26.300000,90.600000,en +26.400000,90.600000,en +26.400000,90.500000,id +26.400000,90.400000,id +26.300000,90.400000,id +26.300000,90.300000,id +26.400000,90.300000,id +26.400000,90.200000,id +26.300000,90.200000,id +26.100000,90.200000,en +26.200000,90.200000,id +26.200000,90.100000,id +26.100000,90.100000,en +26.100000,90.000000,en +26.200000,90.000000,en +26.300000,90.000000,en +26.300000,90.100000,id +26.400000,90.100000,id +26.400000,90.000000,en +26.500000,90.000000,en +26.600000,90.000000,en +26.600000,90.100000,id +26.500000,90.100000,id +26.500000,90.200000,id +26.600000,90.200000,id +26.700000,90.200000,en +26.700000,90.100000,en +26.700000,90.000000,en +26.800000,90.300000,en +26.800000,90.400000,bn +26.800000,90.500000,bn +26.700000,90.600000,bo +26.700000,90.500000,bo +26.700000,90.300000,bo +26.700000,90.400000,bo +26.600000,90.400000,id +26.600000,90.300000,id +26.500000,90.300000,id +26.500000,90.400000,id +26.500000,90.500000,id +26.600000,90.500000,id +26.600000,90.600000,en +26.500000,90.600000,en +26.600000,90.700000,en +26.500000,90.700000,en +26.500000,90.800000,en +26.500000,90.900000,en +26.600000,90.900000,en +26.600000,90.800000,en +26.700000,90.800000,en +26.700000,90.900000,en +26.700000,90.700000,bo +26.800000,91.100000,en +26.700000,91.200000,en +26.700000,91.100000,en +26.700000,91.000000,en +26.600000,91.000000,en +26.500000,91.000000,en +26.600000,91.100000,en +26.600000,91.200000,en +26.400000,91.200000,en +26.400000,91.100000,en +26.300000,91.100000,en +26.300000,91.200000,en +26.200000,91.200000,en +26.100000,91.200000,en +26.100000,91.100000,en +26.200000,91.100000,en +26.200000,91.000000,en +26.100000,91.000000,en +26.300000,91.000000,en +26.400000,91.000000,en +26.400000,90.900000,en +26.300000,90.900000,en +26.300000,90.800000,en +26.400000,90.800000,en +26.400000,90.700000,en +26.300000,90.700000,en +26.200000,90.700000,en +26.100000,90.700000,en +26.100000,90.800000,en +26.200000,90.800000,en +26.200000,90.900000,en +26.100000,90.900000,en +26.000000,90.900000,en +25.900000,90.900000,en +25.900000,90.800000,en +26.000000,90.800000,en +26.000000,90.700000,en +25.900000,90.700000,en +25.800000,90.700000,en +25.800000,90.800000,en +25.800000,90.900000,en +25.800000,91.000000,en +26.000000,91.000000,en +25.900000,91.000000,en +25.900000,91.100000,en +26.000000,91.100000,en +26.000000,91.200000,en +25.900000,91.200000,en +25.800000,91.200000,en +25.800000,91.100000,en +25.700000,91.200000,en +25.800000,91.300000,en +25.700000,91.300000,en +25.700000,91.400000,en +25.700000,91.500000,en +25.800000,91.500000,en +25.800000,91.400000,en +25.900000,91.400000,en +25.900000,91.500000,id +26.000000,91.500000,id +26.000000,91.400000,en +26.000000,91.300000,en +25.900000,91.300000,en +26.100000,91.300000,en +26.200000,91.300000,en +26.400000,91.300000,en +26.300000,91.300000,en +26.300000,91.400000,en +26.400000,91.400000,en +26.400000,91.500000,en +26.300000,91.500000,id +26.200000,91.500000,id +26.200000,91.400000,en +26.100000,91.400000,en +26.100000,91.500000,id +26.100000,91.600000,id +26.200000,91.600000,id +26.400000,91.600000,id +26.300000,91.600000,id +26.300000,91.700000,id +26.400000,91.700000,id +26.400000,91.800000,id +26.300000,91.800000,id +26.200000,91.800000,id +26.200000,91.700000,id +26.100000,91.700000,id +26.100000,91.800000,id +26.000000,91.800000,id +25.900000,91.800000,id +25.900000,91.700000,id +26.000000,91.700000,id +26.000000,91.600000,id +25.900000,91.600000,id +25.800000,91.600000,en +25.700000,91.600000,en +25.700000,91.700000,kha +25.800000,91.700000,kha +25.800000,91.800000,kha +25.700000,91.800000,kha +25.700000,91.900000,kha +25.800000,91.900000,kha +25.900000,91.900000,id +26.000000,91.900000,id +25.900000,92.000000,id +26.000000,92.000000,id +26.000000,92.100000,en +25.900000,92.100000,en +25.800000,92.100000,kha +25.800000,92.000000,kha +25.700000,92.000000,kha +25.700000,92.100000,kha +25.900000,92.400000,en +26.000000,92.400000,en +26.000000,92.300000,en +25.900000,92.300000,en +25.900000,92.200000,en +26.000000,92.200000,en +26.100000,92.200000,en +26.200000,92.200000,en +26.200000,92.300000,en +26.100000,92.300000,en +26.100000,92.400000,en +26.200000,92.400000,en +26.300000,92.400000,en +26.400000,92.300000,en +26.300000,92.300000,en +26.300000,92.200000,en +26.400000,92.200000,en +26.400000,92.100000,en +26.400000,92.000000,id +26.300000,92.000000,id +26.300000,92.100000,en +26.200000,92.100000,en +26.100000,92.100000,en +26.100000,92.000000,id +26.200000,92.000000,id +26.100000,91.900000,id +26.200000,91.900000,id +26.300000,91.900000,id +26.400000,91.900000,id +26.500000,91.900000,en +26.600000,91.900000,en +26.700000,91.900000,en +26.600000,92.000000,en +26.700000,92.000000,en +26.700000,92.100000,en +26.600000,92.100000,en +26.500000,92.100000,en +26.500000,92.000000,en +26.500000,92.200000,en +26.500000,92.300000,en +26.400000,92.400000,en +26.500000,92.400000,en +26.600000,92.400000,en +26.700000,92.400000,en +26.700000,92.300000,en +26.600000,92.300000,en +26.600000,92.200000,en +26.700000,92.200000,en +26.800000,92.200000,en +26.900000,92.200000,en +26.900000,92.300000,en +26.800000,92.300000,en +26.800000,92.400000,en +26.900000,92.400000,en +27.000000,92.400000,en +27.000000,92.300000,en +27.000000,92.200000,en +26.800000,92.100000,en +26.800000,92.000000,en +26.800000,91.900000,en +26.900000,91.900000,en +26.800000,91.800000,en +26.700000,91.800000,en +26.700000,91.700000,en +26.700000,91.600000,en +26.700000,91.500000,en +26.700000,91.400000,en +26.700000,91.300000,en +27.600000,91.600000,hi +27.700000,91.800000,en +27.700000,91.700000,bn +27.600000,91.700000,en +27.600000,91.800000,bn +27.500000,91.800000,en +27.500000,91.900000,bn +27.500000,92.000000,en +27.500000,92.100000,en +27.400000,92.100000,en +27.700000,92.300000,en +27.700000,92.400000,en +27.800000,92.400000,en +27.800000,92.300000,en +27.700000,92.100000,en +27.600000,92.100000,en +27.600000,92.000000,en +27.700000,92.000000,en +27.600000,91.900000,bo +27.700000,91.900000,en +28.700000,93.900000,en +28.700000,94.000000,en +28.700000,94.100000,en +33.500000,74.200000,en +33.600000,74.200000,en +33.600000,74.100000,ur +33.700000,74.100000,ur +33.700000,74.200000,en +33.800000,74.200000,en +33.800000,74.100000,en +33.700000,74.000000,ur +34.100000,74.200000,en +34.100000,74.100000,en +34.100000,74.000000,ur +34.100000,73.900000,ur +34.400000,73.800000,ur +34.500000,73.900000,en +34.600000,74.000000,en +34.700000,74.200000,en +34.600000,74.100000,en +34.600000,74.200000,en +34.500000,74.200000,en +34.400000,74.200000,en +34.400000,74.100000,en +34.500000,74.100000,en +34.500000,74.000000,en +34.400000,73.900000,en +34.400000,74.000000,en +34.300000,74.000000,en +34.200000,74.000000,ur +34.200000,74.100000,en +34.300000,74.100000,en +34.300000,74.200000,en +34.200000,74.200000,en +34.200000,74.300000,en +34.300000,74.300000,en +34.300000,74.400000,en +34.300000,74.500000,en +34.400000,74.500000,en +34.500000,74.500000,en +34.500000,74.400000,en +34.400000,74.400000,en +34.400000,74.300000,en +34.500000,74.300000,en +34.600000,74.300000,en +34.600000,74.400000,en +34.700000,74.400000,en +34.700000,74.300000,en +34.700000,74.500000,en +34.600000,74.500000,en +34.600000,74.600000,en +34.600000,74.700000,en +34.700000,74.600000,en +34.600000,74.900000,en +34.500000,74.900000,en +34.500000,74.800000,en +34.600000,74.800000,en +34.500000,74.600000,en +34.500000,74.700000,en +34.400000,74.700000,ar +34.400000,74.600000,ar +34.300000,74.600000,ar +34.300000,74.700000,ar +34.300000,74.800000,ar +34.400000,74.800000,ar +34.400000,74.900000,ar +34.300000,74.900000,ar +34.200000,74.900000,ar +34.200000,74.800000,ar +34.100000,74.800000,ar +34.100000,74.900000,ar +34.000000,74.900000,ar +34.000000,74.800000,ar +34.000000,74.700000,ar +33.900000,74.700000,ar +33.900000,74.600000,ar +34.000000,74.600000,ar +34.100000,74.600000,ar +34.100000,74.700000,ar +34.200000,74.700000,ar +34.200000,74.600000,ar +34.200000,74.500000,en +34.100000,74.500000,en +34.200000,74.400000,en +34.100000,74.300000,en +34.100000,74.400000,en +34.000000,74.400000,en +34.000000,74.300000,en +33.900000,74.300000,en +33.900000,74.400000,en +34.000000,74.500000,en +33.900000,74.500000,en +33.800000,74.500000,en +33.700000,74.500000,en +33.800000,74.400000,en +33.800000,74.300000,en +33.700000,74.300000,en +33.700000,74.400000,en +33.600000,74.400000,en +33.600000,74.300000,en +33.500000,74.300000,en +33.600000,74.500000,en +33.600000,74.600000,en +33.600000,74.700000,en +33.700000,74.700000,en +33.700000,74.600000,en +33.800000,74.600000,ar +33.800000,74.700000,ar +33.800000,74.800000,ar +33.900000,74.800000,ar +33.900000,74.900000,ar +33.800000,74.900000,ar +33.700000,74.900000,ar +33.700000,74.800000,ar +33.600000,74.800000,en +33.600000,74.900000,ar +33.600000,75.000000,ar +33.700000,75.000000,ar +33.700000,75.100000,ar +33.600000,75.100000,ar +33.700000,75.300000,ar +33.700000,75.200000,ar +33.800000,75.200000,ar +33.800000,75.300000,ar +33.900000,75.300000,ar +33.900000,75.200000,ar +33.900000,75.100000,ar +33.800000,75.100000,ar +33.800000,75.000000,ar +33.900000,75.000000,ar +34.000000,75.000000,ar +34.000000,75.100000,ar +34.100000,75.100000,ar +34.100000,75.000000,ar +34.200000,75.000000,ar +34.200000,75.100000,ar +34.200000,75.200000,en +34.100000,75.300000,en +34.100000,75.200000,ar +34.000000,75.200000,ar +34.000000,75.300000,en +34.000000,75.400000,en +34.100000,75.600000,ar +34.100000,75.700000,en +34.000000,75.700000,en +33.900000,75.700000,en +33.900000,75.600000,ar +34.000000,75.600000,ar +33.900000,75.400000,en +33.900000,75.500000,en +33.800000,75.500000,en +33.800000,75.400000,en +33.700000,75.400000,en +33.700000,75.500000,en +33.800000,75.700000,en +33.700000,75.800000,en +33.800000,75.800000,en +33.900000,75.800000,en +34.000000,75.800000,en +33.800000,76.000000,en +33.800000,75.900000,en +33.700000,75.900000,en +33.800000,76.100000,ur +33.900000,76.200000,en +33.800000,76.200000,ur +33.800000,76.300000,ur +33.800000,76.400000,en +33.900000,76.400000,en +33.900000,76.300000,en +34.000000,76.300000,en +34.000000,76.400000,en +34.100000,76.400000,ur +34.000000,76.200000,en +33.900000,76.100000,en +34.000000,76.100000,en +34.100000,76.200000,id +34.100000,76.300000,ur +34.400000,76.300000,en +34.400000,76.200000,en +34.400000,76.100000,en +34.400000,76.000000,en +34.100000,75.800000,en +34.600000,75.900000,en +34.600000,76.000000,en +34.500000,76.000000,en +34.500000,75.900000,en +34.400000,75.900000,en +34.500000,76.100000,en +34.600000,76.200000,en +34.500000,76.200000,en +34.500000,76.300000,en +34.600000,76.300000,en +34.700000,76.300000,en +34.600000,76.100000,en +34.500000,75.700000,en +34.600000,75.300000,ar +34.600000,75.200000,ar +34.400000,75.100000,en +34.300000,75.100000,en +34.300000,75.000000,ar +34.400000,75.000000,ar +34.500000,75.000000,en +34.500000,75.100000,en +35.400000,78.000000,en +35.300000,77.500000,en +35.400000,77.700000,en +35.300000,77.600000,en +35.300000,77.700000,en +35.300000,77.800000,en +35.400000,77.800000,en +35.400000,77.900000,en +35.300000,77.900000,en +35.200000,77.900000,en +35.200000,77.800000,en +35.200000,77.700000,en +35.200000,77.600000,en +35.000000,77.600000,en +35.000000,77.700000,en +34.700000,77.700000,en +34.600000,77.700000,en +34.800000,77.700000,en +34.900000,77.700000,en +34.900000,77.600000,en +34.900000,77.500000,en +34.900000,77.400000,en +34.600000,77.400000,en +34.700000,77.400000,en +34.700000,77.300000,en +34.600000,77.300000,en +34.600000,77.200000,en +34.700000,77.200000,en +34.800000,77.200000,en +34.900000,77.200000,en +35.000000,77.200000,en +35.000000,77.300000,en +34.900000,77.300000,en +35.000000,77.500000,en +35.000000,77.400000,en +35.200000,77.500000,en +35.200000,77.400000,en +35.200000,77.300000,en +34.900000,77.100000,en +35.000000,77.100000,en +35.000000,77.000000,en +34.900000,77.000000,en +34.900000,76.900000,en +34.900000,76.800000,en +34.800000,76.800000,en +34.700000,76.800000,en +34.800000,76.500000,en +34.700000,76.500000,en +34.700000,76.600000,en +34.600000,76.800000,en +34.600000,77.000000,en +34.600000,76.900000,en +34.700000,76.900000,en +34.800000,76.900000,en +34.800000,77.000000,en +34.700000,77.000000,en +34.800000,77.100000,en +34.700000,77.100000,en +34.600000,77.100000,en +34.500000,77.100000,en +34.400000,77.100000,en +34.300000,77.100000,en +34.300000,77.000000,en +34.400000,77.000000,en +34.500000,77.000000,en +34.000000,76.800000,ur +34.000000,76.700000,en +34.100000,76.600000,ur +34.100000,76.500000,ur +34.000000,76.500000,en +34.000000,76.600000,en +33.900000,76.600000,en +33.900000,76.500000,en +33.800000,76.500000,en +33.800000,76.600000,en +33.800000,76.700000,en +33.900000,76.700000,en +33.900000,76.800000,en +33.800000,76.800000,en +33.900000,77.000000,en +33.900000,76.900000,en +34.000000,76.900000,id +34.000000,77.000000,id +34.300000,77.300000,en +34.300000,77.200000,en +34.400000,77.200000,en +34.500000,77.200000,en +34.500000,77.300000,en +34.400000,77.300000,en +34.400000,77.400000,en +34.500000,77.400000,en +34.300000,77.400000,en +34.500000,77.700000,en +34.800000,78.100000,en +34.700000,78.100000,en +34.700000,78.200000,en +34.800000,78.200000,en +34.900000,78.200000,en +34.900000,78.100000,en +35.000000,78.100000,en +35.100000,78.100000,en +35.100000,78.000000,en +35.200000,78.000000,en +32.800000,78.100000,en +32.800000,78.000000,en +32.900000,78.000000,en +32.900000,78.100000,en +32.900000,78.200000,en +33.100000,78.000000,en +33.200000,78.000000,en +33.200000,77.800000,en +33.200000,77.700000,en +33.200000,77.600000,bn +33.300000,77.600000,en +33.400000,77.600000,en +33.400000,77.500000,en +33.300000,77.500000,en +33.200000,77.500000,bn +33.600000,77.000000,en +33.500000,77.000000,en +33.500000,76.900000,en +33.600000,76.900000,en +33.700000,76.900000,en +33.700000,77.000000,en +33.800000,77.000000,en +33.800000,76.900000,en +33.700000,76.800000,en +33.700000,76.700000,en +33.700000,76.600000,en +33.700000,76.500000,en +33.600000,76.500000,en +33.600000,76.600000,en +33.500000,76.500000,en +33.500000,76.600000,en +33.500000,76.700000,en +33.600000,76.700000,en +33.600000,76.800000,en +33.500000,76.800000,en +33.400000,76.800000,en +33.300000,76.800000,en +33.300000,76.700000,en +33.400000,76.700000,en +33.400000,76.600000,en +33.400000,76.500000,en +33.300000,76.500000,en +33.300000,76.600000,en +33.300000,76.900000,en +33.400000,76.900000,en +33.400000,77.000000,en +33.300000,77.000000,en +32.400000,76.500000,zh +32.400000,76.600000,zh +32.600000,77.500000,en +32.700000,77.500000,en +33.100000,77.800000,en +33.200000,77.900000,en +32.900000,77.800000,en +32.900000,77.900000,en +32.700000,77.600000,en +32.700000,77.700000,en +32.600000,77.700000,en +32.600000,77.600000,en +32.500000,77.600000,en +32.500000,77.700000,en +32.400000,77.700000,en +32.400000,77.600000,en +32.300000,77.600000,en +32.300000,77.700000,en +32.200000,77.700000,en +32.100000,77.700000,en +32.000000,77.400000,en +32.000000,77.300000,en +32.000000,77.200000,en +32.100000,77.200000,en +32.200000,77.200000,en +32.200000,77.300000,en +32.100000,77.300000,en +32.100000,77.400000,en +32.200000,77.400000,en +32.300000,77.400000,en +32.400000,77.400000,en +32.400000,77.300000,en +32.300000,77.300000,en +32.300000,77.200000,en +32.400000,77.200000,en +32.400000,77.100000,en +32.300000,77.100000,en +32.100000,77.100000,en +32.200000,77.100000,en +32.200000,77.000000,en +32.100000,77.000000,en +32.100000,76.900000,en +32.200000,76.900000,en +32.300000,77.000000,en +32.400000,77.000000,en +32.200000,76.700000,en +32.300000,76.600000,zh +32.300000,76.500000,zh +32.200000,76.500000,zh +32.200000,76.600000,zh +32.100000,76.600000,zh +32.100000,76.500000,zh +32.000000,76.500000,zh +32.100000,76.700000,en +32.200000,76.800000,en +32.100000,76.800000,en +32.000000,76.800000,en +31.900000,76.800000,en +31.900000,76.700000,en +32.000000,76.700000,en +32.000000,76.600000,zh +31.900000,76.500000,pa +31.900000,76.600000,pa +31.800000,76.600000,pa +31.800000,76.500000,pa +31.900000,76.900000,en +32.000000,76.900000,en +32.000000,77.000000,en +32.000000,77.100000,en +31.300000,76.500000,it +31.200000,76.500000,it +31.100000,76.500000,it +31.000000,76.500000,fa +31.000000,76.600000,fa +31.000000,76.700000,fa +31.000000,76.800000,fa +31.000000,76.900000,fa +31.000000,77.000000,fa +31.400000,79.100000,en +30.600000,78.200000,en +30.400000,78.200000,en +30.500000,78.200000,en +30.400000,78.300000,en +30.500000,78.300000,en +30.600000,78.300000,en +30.300000,78.500000,ru +30.100000,78.500000,ru +30.200000,78.500000,ru +30.100000,78.400000,ru +30.100000,78.300000,ru +30.200000,78.300000,ru +30.200000,78.400000,ru +30.300000,78.400000,ru +30.300000,78.300000,ru +30.200000,78.200000,ru +30.300000,78.200000,ru +30.300000,78.100000,es +30.200000,78.100000,ru +30.100000,78.100000,ru +30.000000,78.100000,ru +30.000000,78.200000,ru +30.100000,78.200000,ru +29.900000,78.200000,ru +29.900000,78.100000,ru +29.900000,78.300000,ru +30.000000,78.300000,ru +30.000000,78.400000,ru +29.900000,78.400000,ru +29.900000,78.500000,ru +30.000000,78.500000,ru +29.600000,77.900000,ar +29.500000,77.800000,ar +29.500000,77.900000,ar +29.500000,77.700000,ar +29.500000,77.600000,ar +29.500000,77.500000,ar +28.600000,77.700000,ja +28.600000,77.600000,ja +28.500000,77.600000,ja +28.500000,77.700000,ja +28.300000,77.700000,ja +28.200000,77.700000,ja +28.200000,77.600000,ja +28.300000,77.600000,ja +28.400000,77.700000,ja +28.400000,77.600000,ja +28.400000,77.500000,ja +28.400000,77.400000,fa +28.300000,77.400000,fa +28.300000,77.500000,ja +28.200000,77.500000,ja +28.100000,77.400000,es +28.200000,77.400000,ja +28.200000,77.300000,ko +28.100000,77.300000,es +28.100000,77.200000,es +28.200000,77.200000,ar +28.300000,77.200000,ar +28.300000,77.300000,ru +28.400000,77.300000,ja +28.400000,77.200000,ru +28.500000,77.200000,fa +28.600000,77.200000,fa +28.600000,77.300000,fa +28.500000,77.300000,fa +28.500000,77.400000,fa +28.500000,77.500000,ja +28.600000,77.500000,ja +28.600000,77.400000,fa +28.700000,77.400000,fa +28.800000,77.400000,fa +28.800000,77.300000,fa +28.700000,77.300000,fa +28.700000,77.200000,fa +28.800000,77.200000,fa +28.700000,77.100000,fa +28.700000,77.000000,fa +28.700000,76.900000,ar +28.600000,76.900000,ar +28.600000,77.000000,ru +28.500000,76.900000,ar +28.500000,77.000000,ru +28.500000,77.100000,ar +28.600000,77.100000,fa +28.400000,77.100000,ar +28.300000,77.100000,ar +28.100000,77.100000,es +28.200000,77.100000,ar +28.200000,77.000000,ar +28.100000,77.000000,es +28.200000,76.900000,ar +28.300000,76.900000,ar +28.300000,77.000000,ar +28.400000,77.000000,ar +28.400000,76.900000,ar +28.300000,76.800000,ar +28.200000,76.800000,ar +28.400000,76.800000,ar +28.500000,76.800000,ar +28.500000,76.700000,pt +28.600000,76.700000,pt +28.600000,76.800000,ar +28.800000,77.000000,fa +28.800000,77.100000,fa +29.800000,76.800000,de +29.800000,76.700000,de +29.800000,76.600000,de +29.800000,76.500000,de +29.900000,76.500000,de +29.900000,76.600000,de +30.000000,76.600000,de +30.000000,76.500000,pa +30.100000,76.500000,it +30.200000,76.600000,it +30.100000,76.600000,it +30.100000,76.700000,it +30.200000,76.700000,it +30.200000,76.800000,it +30.100000,76.800000,de +30.000000,76.800000,de +30.000000,76.700000,de +29.900000,76.700000,de +29.900000,76.800000,de +29.900000,76.900000,mr +30.000000,77.000000,mr +30.000000,76.900000,mr +30.100000,76.900000,it +30.200000,76.900000,pa +30.200000,77.000000,mr +30.100000,77.000000,mr +30.100000,77.100000,mr +30.200000,77.100000,mr +30.000000,77.100000,mr +29.900000,77.500000,ar +29.800000,77.500000,ar +29.700000,77.500000,ar +29.600000,77.500000,ar +29.600000,77.600000,ar +29.700000,77.600000,ar +29.700000,77.700000,ar +29.600000,77.700000,ar +29.600000,77.800000,ar +29.700000,77.900000,ar +29.700000,77.800000,ar +29.800000,77.800000,ar +29.800000,77.900000,ar +29.900000,77.900000,ar +29.900000,77.800000,ar +29.900000,77.700000,ar +29.800000,77.700000,ar +29.800000,77.600000,ar +29.900000,77.600000,ar +30.300000,77.200000,sr +30.400000,77.200000,it +30.900000,77.000000,fa +30.900000,76.900000,fa +30.800000,76.900000,fa +30.800000,77.000000,fa +30.700000,77.000000,fa +30.700000,76.900000,fa +30.600000,76.900000,fa +30.300000,77.100000,sr +30.400000,77.100000,it +30.400000,77.000000,it +30.300000,77.000000,pa +30.300000,76.900000,de +30.400000,76.900000,de +30.500000,76.900000,de +30.600000,77.000000,fa +30.500000,76.800000,de +30.500000,76.700000,de +30.400000,76.700000,de +30.400000,76.800000,de +30.300000,76.800000,de +30.300000,76.700000,de +30.300000,76.600000,de +30.200000,76.500000,it +30.300000,76.500000,de +30.400000,76.500000,de +30.400000,76.600000,de +30.500000,76.600000,de +30.500000,76.500000,it +30.600000,76.500000,it +30.700000,76.500000,fa +30.700000,76.600000,fa +30.600000,76.600000,fa +30.600000,76.700000,fa +30.600000,76.800000,fa +30.700000,76.800000,fa +30.700000,76.700000,fa +30.800000,76.700000,fa +30.800000,76.800000,fa +30.900000,76.800000,fa +30.900000,76.700000,fa +30.900000,76.600000,fa +30.800000,76.600000,fa +30.800000,76.500000,it +30.900000,76.500000,fa +30.900000,76.400000,it +30.800000,76.400000,it +30.800000,76.300000,it +30.800000,76.200000,it +30.800000,76.100000,ar +30.700000,76.100000,ar +30.700000,76.200000,it +30.600000,76.100000,ur +30.600000,76.200000,it +30.600000,76.300000,it +30.700000,76.300000,it +30.700000,76.400000,it +30.600000,76.400000,it +30.500000,76.400000,it +30.500000,76.300000,it +30.400000,76.300000,it +30.400000,76.400000,it +30.200000,76.400000,it +30.200000,76.300000,it +30.200000,76.200000,it +30.200000,76.100000,it +30.300000,76.100000,ur +30.400000,76.100000,ur +30.400000,76.200000,it +30.500000,76.200000,it +30.500000,76.100000,ur +30.500000,76.000000,ur +30.400000,75.900000,ur +30.400000,76.000000,ur +30.300000,76.000000,ur +30.300000,75.900000,ur +30.200000,75.800000,ar +30.300000,75.800000,ur +30.400000,75.800000,ur +30.500000,75.800000,ur +30.600000,75.800000,ur +30.500000,75.900000,ur +30.600000,76.000000,ur +30.600000,75.900000,ur +30.700000,75.900000,ar +30.700000,76.000000,ar +30.800000,76.000000,ar +30.800000,75.900000,ar +30.700000,75.800000,ar +30.800000,75.800000,ar +30.800000,75.700000,ar +30.800000,75.600000,it +30.700000,75.700000,ar +30.600000,75.700000,ur +30.500000,75.700000,ur +30.500000,75.600000,id +30.600000,75.600000,id +30.600000,75.500000,id +30.500000,75.500000,id +30.500000,75.400000,id +30.600000,75.400000,id +30.700000,75.300000,ar +30.600000,75.200000,ar +30.700000,75.200000,ar +30.700000,75.100000,ar +30.700000,75.000000,ar +30.600000,75.000000,ar +30.600000,75.100000,ar +30.500000,75.100000,ta +30.500000,75.000000,ta +30.400000,75.000000,id +30.500000,75.200000,ta +30.600000,75.300000,id +30.500000,75.300000,id +30.400000,75.300000,id +30.300000,75.300000,id +30.300000,75.200000,ta +30.400000,75.200000,ta +30.400000,75.100000,id +30.300000,75.000000,id +30.300000,75.100000,id +30.200000,75.100000,id +30.200000,75.000000,ta +30.100000,75.000000,id +30.100000,75.100000,id +30.100000,75.200000,ta +30.200000,75.200000,ta +30.200000,75.300000,de +30.100000,75.300000,de +30.100000,75.400000,de +30.100000,75.500000,de +30.200000,75.500000,de +30.200000,75.400000,de +30.300000,75.400000,id +30.400000,75.400000,id +30.400000,75.500000,id +30.300000,75.500000,id +30.300000,75.600000,ar +30.400000,75.600000,id +30.400000,75.700000,ur +30.300000,75.700000,ur +30.200000,75.700000,ar +30.200000,75.600000,ar +30.100000,75.600000,de +30.100000,75.700000,ar +30.000000,75.600000,de +30.000000,75.700000,id +29.900000,75.700000,id +29.800000,75.700000,id +29.800000,75.600000,de +29.900000,75.600000,de +29.900000,75.500000,de +29.800000,75.500000,de +29.800000,75.400000,de +29.900000,75.400000,de +30.000000,75.500000,de +30.000000,75.400000,de +30.000000,75.300000,de +29.900000,75.300000,de +29.900000,75.200000,de +30.000000,75.200000,ta +30.000000,75.100000,id +30.000000,75.000000,id +29.900000,75.000000,id +29.800000,75.100000,id +29.800000,75.000000,id +29.700000,75.000000,id +29.700000,75.100000,id +29.700000,75.200000,id +29.800000,75.200000,de +29.800000,75.300000,de +29.700000,75.300000,id +29.600000,75.300000,id +29.600000,75.200000,id +29.600000,75.100000,id +29.600000,75.000000,pa +29.500000,75.000000,pa +29.500000,75.100000,id +29.500000,75.200000,pa +29.500000,75.300000,pa +29.500000,75.500000,pa +29.500000,75.400000,pa +29.600000,75.400000,pa +29.700000,75.400000,id +29.700000,75.500000,id +29.600000,75.500000,id +29.600000,75.600000,id +29.700000,75.600000,id +29.700000,75.700000,id +29.600000,75.700000,id +29.600000,75.900000,id +29.600000,76.000000,id +29.700000,76.000000,id +29.700000,75.900000,id +29.600000,75.800000,id +29.700000,75.800000,id +29.800000,75.800000,id +29.900000,75.800000,id +30.000000,75.800000,id +30.100000,75.800000,ar +30.000000,75.900000,id +30.000000,76.000000,id +29.900000,76.000000,id +29.900000,75.900000,id +29.800000,75.900000,pa +29.800000,76.000000,id +29.800000,76.100000,id +29.800000,76.200000,it +29.900000,76.200000,it +29.900000,76.100000,id +30.000000,76.100000,id +30.100000,76.100000,it +30.100000,76.200000,it +30.000000,76.200000,it +30.000000,76.300000,it +30.100000,76.300000,it +30.100000,76.400000,it +30.000000,76.400000,it +29.900000,76.300000,it +29.900000,76.400000,pa +29.800000,76.400000,de +29.800000,76.300000,it +29.700000,76.100000,id +29.600000,76.100000,pa +29.600000,74.900000,pa +29.600000,74.800000,pa +29.700000,74.800000,id +29.700000,74.900000,id +29.800000,74.900000,id +29.800000,74.800000,id +29.900000,74.800000,id +29.900000,74.900000,id +30.000000,74.900000,id +30.000000,74.800000,id +29.900000,74.700000,id +29.900000,74.600000,id +30.000000,74.600000,id +30.100000,74.600000,id +30.100000,74.700000,id +30.000000,74.700000,id +30.100000,74.900000,id +30.100000,74.800000,id +30.200000,74.800000,id +30.200000,74.900000,id +30.300000,74.900000,id +30.300000,74.800000,id +30.300000,74.700000,id +30.200000,74.700000,id +30.200000,74.600000,id +30.300000,74.600000,id +30.400000,74.700000,id +30.400000,74.800000,id +30.400000,74.900000,id +30.500000,74.900000,ar +30.600000,74.900000,ar +30.700000,74.900000,ar +30.500000,74.300000,en +30.600000,74.400000,en +30.600000,74.300000,en +30.600000,74.200000,en +30.500000,74.200000,en +30.500000,74.100000,en +30.600000,74.100000,en +30.500000,74.000000,pa +30.400000,74.000000,en +30.300000,74.000000,en +30.300000,74.100000,en +30.400000,74.100000,en +30.400000,74.200000,en +30.200000,74.100000,en +30.000000,74.100000,en +30.100000,74.100000,en +30.000000,74.000000,en +29.900000,73.900000,en +30.000000,73.900000,pa +30.100000,73.900000,pa +30.100000,74.000000,en +30.200000,74.000000,en +30.000000,73.800000,ur +30.000000,73.700000,ur +30.000000,73.600000,ur +30.000000,73.500000,ur +31.700000,74.500000,hi +31.800000,74.600000,ur +31.800000,74.700000,ur +31.900000,74.700000,pa +31.900000,74.600000,pa +32.000000,74.900000,pa +31.900000,74.900000,en +31.900000,74.800000,en +31.800000,74.800000,en +31.800000,74.900000,en +31.700000,74.900000,de +31.700000,74.800000,ur +31.700000,74.700000,ur +31.700000,74.600000,ur +31.600000,74.600000,ur +31.600000,74.700000,ur +31.500000,74.600000,ur +31.500000,74.700000,ur +31.500000,74.800000,ur +31.600000,74.800000,ur +31.600000,74.900000,de +31.400000,74.800000,ur +31.200000,74.900000,id +31.100000,74.900000,id +31.100000,74.800000,id +31.200000,74.800000,id +31.200000,74.700000,ur +31.100000,74.700000,ur +31.100000,74.600000,ur +31.200000,74.600000,ur +31.300000,74.600000,ur +31.300000,74.700000,ur +31.400000,74.700000,ur +31.400000,74.600000,ur +31.200000,74.500000,ur +31.000000,74.500000,ur +30.900000,74.500000,pa +30.900000,74.400000,pa +30.800000,74.400000,en +30.800000,74.300000,pa +30.700000,74.300000,en +30.700000,74.400000,en +30.800000,74.500000,en +30.700000,74.500000,en +30.800000,74.600000,en +30.900000,74.600000,en +31.000000,74.600000,en +31.000000,74.700000,ur +30.900000,74.700000,ur +31.000000,74.800000,id +31.000000,74.900000,id +30.900000,74.900000,id +30.900000,74.800000,id +30.800000,74.800000,id +30.800000,74.900000,id +30.800000,75.000000,id +30.900000,75.000000,id +30.900000,75.100000,id +30.800000,75.100000,id +30.800000,75.200000,id +30.800000,75.300000,ar +30.900000,75.300000,it +30.900000,75.200000,id +31.000000,75.200000,id +31.000000,75.300000,it +31.100000,75.300000,id +31.100000,75.200000,id +31.100000,75.100000,id +31.000000,75.100000,id +31.000000,75.000000,id +31.100000,75.000000,id +31.200000,75.100000,id +31.200000,75.000000,it +31.300000,75.000000,it +31.400000,75.000000,it +31.400000,75.100000,it +31.300000,75.100000,id +31.400000,75.200000,it +31.500000,75.300000,it +31.400000,75.300000,it +31.300000,75.300000,id +31.300000,75.200000,it +31.200000,75.200000,it +31.200000,75.300000,it +31.200000,75.400000,it +31.200000,75.500000,it +31.300000,75.500000,it +31.300000,75.400000,it +31.400000,75.400000,it +31.500000,75.400000,it +31.500000,75.500000,it +31.400000,75.500000,it +31.400000,75.600000,it +31.500000,75.600000,it +31.500000,75.700000,it +31.400000,75.700000,it +31.300000,75.700000,ar +31.300000,75.600000,it +31.200000,75.600000,it +31.200000,75.700000,it +31.100000,75.700000,it +31.000000,75.600000,it +31.100000,75.600000,it +31.100000,75.500000,it +31.100000,75.400000,it +31.000000,75.400000,it +31.000000,75.500000,it +30.900000,75.500000,it +30.900000,75.400000,it +30.900000,75.600000,it +31.000000,75.700000,it +30.900000,75.700000,it +30.900000,75.800000,it +31.000000,75.800000,it +31.100000,75.800000,it +31.100000,75.900000,it +31.200000,75.900000,it +31.200000,76.000000,it +31.100000,76.000000,it +31.000000,76.000000,it +31.000000,75.900000,it +30.900000,75.900000,it +30.900000,76.000000,pt +30.900000,76.100000,it +31.000000,76.100000,it +31.000000,76.200000,it +30.900000,76.200000,it +30.900000,76.300000,it +31.000000,76.400000,it +31.000000,76.300000,it +31.100000,76.300000,it +31.100000,76.400000,it +31.200000,76.400000,it +31.200000,76.300000,it +31.200000,76.200000,it +31.100000,76.200000,it +31.100000,76.100000,it +31.200000,76.100000,it +31.300000,76.100000,it +31.400000,76.100000,it +31.400000,76.200000,it +31.300000,76.200000,it +31.300000,76.300000,it +31.300000,76.400000,it +31.400000,76.400000,it +31.400000,76.300000,it +31.600000,76.200000,it +31.500000,76.200000,it +31.500000,76.100000,it +31.500000,76.000000,it +31.500000,75.900000,it +31.400000,75.900000,it +31.400000,76.000000,it +31.300000,76.000000,it +31.300000,75.900000,it +31.200000,75.800000,it +31.300000,75.800000,it +31.400000,75.800000,it +31.500000,75.800000,it +31.600000,75.800000,it +31.700000,75.800000,it +31.800000,75.800000,it +31.900000,75.800000,it +31.800000,75.900000,it +31.900000,75.900000,it +31.900000,76.000000,ar +31.800000,76.000000,pa +31.700000,76.000000,it +31.700000,75.900000,it +31.600000,75.900000,it +31.600000,76.000000,it +31.600000,76.100000,it +31.700000,76.100000,it +31.700000,76.200000,ar +31.900000,76.200000,pa +31.800000,76.200000,pa +31.800000,76.100000,ar +31.900000,76.100000,ar +32.000000,76.100000,zh +32.100000,76.100000,zh +32.100000,76.200000,zh +32.000000,76.200000,zh +32.000000,76.300000,zh +32.000000,76.400000,zh +32.100000,76.400000,zh +32.100000,76.300000,zh +32.200000,76.300000,zh +32.200000,76.400000,zh +32.300000,76.400000,zh +32.300000,76.300000,zh +32.300000,76.200000,zh +32.200000,76.200000,zh +32.200000,76.100000,zh +32.300000,76.100000,zh +32.200000,76.000000,en +32.000000,76.000000,ar +32.000000,75.900000,it +32.000000,75.800000,it +32.100000,75.800000,it +32.200000,75.800000,it +32.200000,75.700000,it +32.100000,75.700000,it +32.100000,75.600000,it +32.200000,75.600000,it +32.200000,75.500000,it +32.200000,75.400000,pa +32.100000,75.400000,en +32.100000,75.500000,it +32.000000,75.500000,it +32.000000,75.400000,it +31.900000,75.400000,it +31.900000,75.500000,it +31.900000,75.600000,it +32.000000,75.600000,it +32.000000,75.700000,it +31.900000,75.700000,it +31.800000,75.600000,it +31.800000,75.700000,it +31.700000,75.700000,it +31.600000,75.700000,it +31.600000,75.600000,pa +31.700000,75.600000,pa +31.700000,75.500000,it +31.600000,75.500000,pa +31.600000,75.400000,it +31.700000,75.400000,it +31.800000,75.500000,it +31.800000,75.400000,ur +31.800000,75.300000,it +31.800000,75.200000,it +31.700000,75.200000,it +31.700000,75.300000,it +31.600000,75.300000,it +31.500000,75.200000,it +31.600000,75.200000,it +31.600000,75.100000,it +31.500000,75.100000,id +31.600000,75.000000,it +31.700000,75.000000,it +31.700000,75.100000,it +31.800000,75.100000,de +31.800000,75.000000,it +31.900000,75.000000,en +32.000000,75.100000,en +31.900000,75.100000,en +31.900000,75.200000,it +31.900000,75.300000,it +32.000000,75.300000,en +32.000000,75.200000,en +32.100000,75.200000,pa +32.100000,75.300000,en +32.200000,75.300000,pa +32.000000,75.000000,pa +32.400000,75.200000,ur +32.400000,75.300000,pa +32.500000,75.200000,ur +32.500000,75.100000,ur +32.500000,75.000000,ur +32.600000,75.000000,en +32.600000,75.100000,en +32.700000,75.100000,ta +32.700000,75.000000,ta +32.800000,75.000000,ta +32.800000,75.100000,ta +32.900000,75.200000,ur +32.900000,75.300000,ta +32.800000,75.300000,en +32.700000,75.300000,en +32.600000,75.200000,en +32.900000,75.400000,en +32.900000,75.500000,en +32.900000,75.600000,en +32.900000,75.700000,en +32.500000,75.700000,en +32.500000,75.600000,en +32.500000,75.400000,pa +32.500000,75.500000,en +32.400000,75.500000,en +32.400000,75.400000,pa +32.300000,75.400000,pa +32.300000,75.500000,en +32.500000,75.800000,en +32.400000,76.100000,zh +32.400000,76.200000,zh +32.400000,76.300000,zh +32.400000,76.400000,zh +32.900000,75.800000,en +33.000000,75.800000,en +33.100000,75.800000,en +33.200000,75.800000,en +33.300000,75.800000,en +33.200000,75.900000,en +33.300000,75.900000,en +33.300000,76.000000,en +33.200000,76.000000,en +33.100000,76.000000,en +33.100000,75.900000,en +33.300000,76.400000,en +33.400000,76.400000,en +33.500000,76.200000,id +33.400000,76.200000,id +33.400000,76.300000,id +33.500000,76.400000,en +33.500000,76.300000,id +33.600000,76.300000,ur +33.600000,76.400000,en +33.700000,76.400000,en +33.700000,76.300000,ur +33.700000,76.200000,ur +33.600000,76.200000,id +33.600000,76.100000,id +33.700000,76.100000,id +33.700000,76.000000,en +33.500000,76.000000,en +33.400000,76.000000,en +33.400000,75.900000,en +33.500000,75.900000,en +33.400000,75.800000,en +33.500000,75.800000,en +33.500000,75.700000,en +33.500000,75.600000,en +33.600000,75.500000,en +33.600000,75.400000,en +33.500000,75.400000,en +33.500000,75.500000,en +33.400000,75.500000,en +33.400000,75.400000,en +33.300000,75.400000,en +33.300000,75.500000,en +33.400000,75.600000,en +33.400000,75.700000,en +33.300000,75.700000,en +33.300000,75.600000,en +33.200000,75.600000,en +33.200000,75.700000,en +33.100000,75.700000,en +33.000000,75.700000,en +33.000000,75.600000,en +33.100000,75.600000,en +33.100000,75.500000,en +33.000000,75.500000,en +33.000000,75.400000,en +33.100000,75.400000,en +33.200000,75.500000,en +33.200000,75.400000,en +33.200000,75.300000,en +33.200000,75.200000,en +33.100000,75.200000,ta +33.100000,75.300000,ta +33.000000,75.300000,ta +33.000000,75.200000,ur +33.000000,75.100000,ur +32.900000,75.100000,ur +32.900000,75.000000,ta +33.000000,75.000000,ta +33.100000,75.000000,ur +33.100000,75.100000,ta +33.200000,75.100000,en +33.200000,75.000000,en +33.300000,75.000000,en +33.400000,75.000000,en +33.400000,75.100000,en +33.300000,75.100000,en +33.300000,75.200000,en +33.300000,75.300000,en +33.400000,75.300000,en +33.400000,75.200000,en +33.500000,75.200000,ar +33.500000,75.300000,ar +33.600000,75.300000,ar +33.600000,75.200000,ar +33.500000,75.100000,ar +33.500000,75.000000,ar +33.500000,74.900000,ar +33.500000,74.800000,en +33.400000,74.800000,en +33.400000,74.900000,en +33.200000,74.600000,en +33.300000,74.600000,en +33.400000,74.600000,en +33.400000,74.700000,en +33.500000,74.700000,en +33.500000,74.600000,en +33.500000,74.500000,en +33.400000,74.500000,en +33.500000,74.400000,en +33.400000,74.300000,en +33.400000,74.400000,en +33.300000,74.400000,en +33.300000,74.300000,en +33.200000,74.300000,ur +33.200000,74.400000,en +33.300000,74.500000,en +33.200000,74.500000,en +33.000000,74.500000,en +33.100000,74.400000,ur +33.100000,74.300000,ur +33.000000,74.400000,en +32.900000,74.400000,ur +32.900000,74.500000,en +32.900000,74.600000,en +33.000000,74.700000,en +33.000000,74.600000,en +33.100000,74.900000,en +33.000000,74.900000,ta +33.000000,74.800000,en +32.900000,74.800000,en +32.900000,74.900000,ta +32.800000,74.900000,ta +32.700000,74.900000,ta +32.700000,74.800000,pt +32.800000,74.800000,pt +32.800000,74.700000,en +32.800000,74.600000,ur +32.700000,74.700000,ur +32.600000,74.700000,ur +32.500000,74.700000,ur +32.600000,74.800000,pt +32.600000,74.900000,en +32.500000,74.900000,ur +32.500000,74.800000,en +32.800000,74.500000,ur +33.100000,74.200000,ur +33.200000,74.100000,ur +33.200000,74.200000,ur +33.300000,74.200000,en +33.400000,74.200000,en +27.900000,70.400000,ur +27.200000,69.900000,fr +27.900000,70.500000,ur +28.000000,70.600000,ur +27.900000,70.600000,ur +29.500000,73.300000,en +29.600000,73.300000,en +29.100000,73.000000,en +29.100000,73.100000,en +29.100000,73.200000,ur +29.200000,73.200000,ur +29.200000,73.100000,en +29.400000,73.200000,en +29.300000,73.200000,ur +29.400000,73.300000,pt +29.000000,73.100000,en +29.000000,73.000000,en +29.000000,72.900000,en +24.800000,73.000000,en +24.700000,73.000000,en +24.800000,71.500000,en +24.800000,71.400000,en +24.700000,71.400000,en +24.700000,71.500000,en +24.600000,71.500000,en +24.500000,71.500000,en +24.500000,71.400000,en +24.600000,71.400000,en +24.600000,71.300000,en +24.500000,71.300000,en +24.500000,71.200000,en +24.600000,71.200000,en +24.700000,71.200000,en +24.700000,71.300000,en +24.800000,71.300000,en +24.800000,71.200000,en +27.000000,71.800000,en +27.000000,71.700000,en +27.200000,71.700000,en +27.100000,71.700000,en +27.100000,71.800000,en +27.200000,71.800000,en +27.100000,71.000000,es +27.100000,70.900000,es +27.000000,70.900000,es +27.000000,71.000000,es +27.100000,71.100000,es +27.000000,71.100000,es +26.900000,71.100000,es +26.800000,71.100000,es +26.700000,71.100000,es +26.700000,71.000000,es +26.700000,70.900000,es +26.800000,70.900000,es +26.800000,71.000000,es +26.900000,71.000000,es +26.900000,70.900000,es +26.900000,70.800000,es +26.900000,70.700000,es +26.800000,70.700000,es +26.800000,70.800000,es +26.700000,70.800000,es +26.700000,70.700000,es +27.000000,70.700000,es +27.000000,70.800000,es +27.100000,70.800000,es +27.100000,70.700000,es +27.100000,69.900000,fr +26.900000,69.900000,fr +27.000000,69.900000,fr +26.700000,69.900000,fr +26.800000,69.900000,fr +26.600000,69.900000,fr +26.600000,70.400000,es +26.500000,70.400000,es +24.200000,68.800000,gu +24.200000,68.900000,gu +24.200000,69.000000,gu +24.200000,69.100000,gu +24.200000,69.200000,gu +24.300000,69.600000,gu +24.300000,70.400000,gu +24.300000,70.300000,gu +24.200000,70.300000,gu +24.200000,70.400000,gu +24.000000,70.100000,en +24.100000,70.100000,en +24.200000,70.100000,gu +24.200000,70.200000,gu +24.300000,70.200000,gu +24.300000,70.100000,gu +24.200000,69.700000,gu +24.100000,69.700000,en +24.100000,69.800000,en +24.000000,69.800000,en +24.000000,69.700000,en +23.900000,69.700000,en +24.000000,69.900000,en +24.000000,70.000000,en +23.900000,70.000000,en +23.800000,70.000000,en +23.800000,69.900000,en +23.900000,69.900000,en +23.900000,69.800000,en +23.800000,69.700000,en +23.800000,69.800000,en +23.700000,69.800000,en +23.700000,69.700000,en +23.600000,69.700000,en +23.600000,69.800000,en +23.600000,69.900000,en +23.700000,69.900000,en +23.700000,70.000000,en +23.600000,70.000000,en +23.600000,70.100000,en +23.600000,70.200000,en +23.700000,70.200000,en +23.700000,70.100000,en +23.800000,70.100000,en +23.900000,70.100000,en +23.800000,70.300000,en +23.800000,70.400000,en +23.700000,70.300000,en +23.700000,70.400000,en +23.600000,70.400000,en +23.500000,70.400000,en +23.500000,70.300000,en +23.600000,70.300000,en +23.500000,70.100000,en +23.500000,70.200000,en +23.400000,70.200000,en +23.400000,70.100000,en +23.300000,70.100000,en +23.300000,70.200000,en +23.300000,70.300000,en +23.400000,70.300000,en +23.400000,70.400000,en +23.300000,70.400000,en +23.200000,70.400000,en +23.200000,70.300000,en +23.100000,70.300000,en +23.100000,70.400000,en +23.000000,70.400000,en +22.900000,70.400000,en +22.900000,70.300000,en +23.000000,70.300000,en +23.000000,70.200000,en +22.900000,70.200000,en +22.900000,70.100000,en +23.000000,70.100000,en +23.100000,70.100000,en +23.100000,70.200000,en +23.200000,70.200000,en +23.200000,70.100000,en +23.200000,70.000000,en +23.100000,69.900000,en +23.100000,70.000000,en +23.000000,70.000000,en +22.900000,70.000000,en +22.900000,69.900000,en +23.000000,69.900000,en +22.900000,69.800000,en +23.000000,69.800000,en +23.100000,69.800000,en +23.100000,69.700000,en +23.200000,69.700000,en +23.300000,69.700000,en +23.300000,69.800000,en +23.200000,69.800000,en +23.200000,69.900000,en +23.300000,70.000000,en +23.300000,69.900000,en +23.400000,69.900000,en +23.400000,70.000000,en +23.500000,70.000000,en +23.500000,69.900000,en +23.500000,69.800000,en +23.400000,69.800000,en +23.400000,69.700000,en +23.500000,69.700000,en +23.500000,69.600000,en +23.400000,69.600000,en +23.400000,69.500000,en +23.500000,69.500000,en +23.400000,69.400000,en +23.400000,69.300000,en +23.300000,69.300000,en +23.300000,69.400000,en +23.200000,69.300000,en +23.200000,69.400000,en +23.200000,69.500000,en +23.300000,69.500000,en +23.300000,69.600000,en +23.200000,69.600000,en +23.100000,69.600000,en +23.100000,69.500000,en +22.800000,69.600000,en +22.900000,69.400000,en +22.800000,69.300000,en +22.900000,69.300000,en +23.000000,69.300000,en +23.000000,69.400000,en +23.100000,69.400000,en +23.100000,69.300000,en +23.000000,69.100000,en +23.000000,69.200000,en +22.900000,69.200000,en +22.800000,69.200000,en +22.800000,69.100000,en +22.900000,69.100000,en +22.800000,69.000000,en +22.900000,69.000000,en +23.000000,69.000000,en +23.100000,69.000000,en +23.200000,69.000000,en +23.100000,69.100000,en +23.100000,69.200000,en +23.200000,69.200000,en +23.200000,69.100000,en +23.300000,69.100000,en +23.300000,69.200000,en +23.400000,69.200000,en +23.400000,69.100000,en +23.300000,69.000000,en +23.400000,69.000000,en +23.500000,69.000000,en +23.600000,69.000000,en +23.700000,69.000000,en +23.700000,69.100000,en +23.800000,69.100000,en +23.700000,69.200000,en +23.600000,69.200000,en +23.600000,69.100000,en +23.500000,69.100000,en +23.500000,69.200000,en +23.500000,69.300000,en +23.600000,69.300000,en +23.600000,69.400000,en +23.500000,69.400000,en +23.600000,69.600000,en +23.600000,69.500000,en +23.700000,69.500000,en +23.700000,69.600000,en +23.800000,69.600000,en +23.800000,69.500000,en +23.800000,69.400000,en +23.700000,69.400000,en +23.700000,69.300000,en +23.800000,69.300000,en +23.900000,69.300000,en +24.000000,69.300000,en +24.000000,69.400000,en +23.900000,69.400000,en +23.900000,69.500000,en +23.900000,69.600000,en +24.000000,69.600000,en +24.100000,69.500000,en +24.100000,69.600000,en +24.200000,69.600000,gu +24.200000,69.500000,gu +24.200000,69.400000,gu +24.100000,69.400000,en +24.100000,69.300000,gu +24.200000,69.300000,gu +24.100000,69.200000,gu +24.100000,69.100000,gu +24.000000,69.100000,en +24.000000,69.200000,en +23.800000,69.000000,en +23.900000,69.000000,en +24.000000,69.000000,en +24.100000,69.000000,gu +24.100000,68.900000,gu +24.000000,68.900000,en +24.100000,68.800000,gu +23.900000,68.700000,en +23.900000,68.600000,en +23.800000,68.600000,en +23.800000,68.700000,en +23.800000,68.800000,en +23.900000,68.800000,en +23.900000,68.900000,en +23.800000,68.900000,en +23.700000,68.900000,en +23.700000,68.800000,en +23.600000,68.800000,en +23.600000,68.900000,en +23.500000,68.900000,en +23.500000,68.800000,en +23.500000,68.700000,en +23.400000,68.700000,en +23.400000,68.600000,en +23.500000,68.600000,en +23.600000,68.600000,en +23.600000,68.700000,en +23.700000,68.700000,en +23.700000,68.600000,en +23.700000,68.500000,en +23.700000,68.400000,en +23.600000,68.400000,en +23.600000,68.500000,en +23.500000,68.500000,en +23.400000,68.500000,en +23.500000,68.400000,en +23.500000,68.300000,en +23.400000,68.300000,en +23.500000,68.200000,en +23.600000,68.300000,en +23.600000,68.200000,en +23.700000,68.200000,en +23.800000,68.200000,en +23.800000,68.300000,en +23.700000,68.300000,en +23.800000,68.400000,en +23.800000,68.500000,en +23.900000,68.500000,en +23.900000,68.400000,en +23.900000,68.300000,en +23.300000,68.500000,en +23.200000,68.500000,en +23.100000,68.600000,en +23.100000,68.700000,en +23.200000,68.700000,en +23.200000,68.600000,en +23.300000,68.600000,en +23.300000,68.700000,en +23.300000,68.800000,en +23.400000,68.800000,en +23.400000,68.900000,en +23.300000,68.900000,en +23.200000,68.900000,en +23.200000,68.800000,en +23.100000,68.800000,en +23.100000,68.900000,en +23.000000,68.900000,en +22.900000,68.900000,en +23.000000,68.800000,en +23.000000,68.700000,en +22.700000,68.900000,en +22.600000,68.900000,en +22.500000,68.800000,en +22.600000,68.800000,mr +22.400000,68.800000,mr +22.500000,68.900000,en +22.400000,68.900000,mr +22.300000,68.900000,en +22.300000,68.800000,mr +22.200000,68.800000,mr +22.200000,68.900000,mr +22.100000,68.900000,mr +22.000000,68.900000,mr +21.900000,68.900000,mr +21.600000,69.200000,mr +21.400000,69.400000,mr +21.500000,69.600000,mr +21.500000,69.500000,mr +21.600000,69.600000,mr +21.600000,69.500000,mr +21.600000,69.400000,mr +21.500000,69.400000,mr +21.500000,69.300000,mr +21.600000,69.300000,mr +21.700000,69.300000,mr +21.800000,69.300000,mr +21.800000,69.400000,mr +21.700000,69.400000,mr +21.700000,69.500000,mr +21.700000,69.600000,mr +21.800000,69.600000,mr +21.800000,69.500000,mr +21.900000,69.500000,mr +21.900000,69.600000,mr +21.900000,69.400000,mr +21.900000,69.300000,mr +22.000000,69.200000,mr +21.700000,69.100000,mr +21.800000,69.000000,mr +22.000000,69.000000,mr +22.100000,69.000000,mr +22.000000,69.100000,mr +22.100000,69.200000,mr +22.100000,69.100000,mr +22.200000,69.100000,mr +22.200000,69.200000,mr +22.300000,69.200000,mr +22.300000,69.100000,mr +22.200000,69.000000,mr +22.300000,69.000000,mr +22.400000,69.000000,mr +22.500000,69.000000,en +22.600000,69.000000,en +22.700000,69.000000,en +22.600000,69.100000,en +22.700000,69.100000,en +22.700000,69.200000,en +22.600000,69.200000,en +22.500000,69.200000,en +22.500000,69.100000,en +22.400000,69.100000,mr +22.400000,69.200000,mr +22.400000,69.300000,en +22.400000,69.400000,en +22.500000,69.400000,en +22.500000,69.300000,en +22.600000,69.300000,en +22.700000,69.300000,en +22.600000,69.400000,en +22.600000,69.500000,en +22.700000,69.500000,en +22.700000,69.600000,en +22.600000,69.600000,bn +22.500000,69.500000,en +22.500000,69.600000,bn +22.400000,69.600000,bn +22.300000,69.600000,bn +22.300000,69.500000,en +22.400000,69.500000,en +22.300000,69.300000,en +22.300000,69.400000,en +22.200000,69.400000,en +22.200000,69.300000,en +22.100000,69.300000,en +22.100000,69.400000,en +22.100000,69.500000,en +22.200000,69.500000,en +22.200000,69.600000,bn +22.100000,69.600000,bn +22.100000,69.700000,bn +22.200000,69.700000,bn +22.200000,69.800000,bn +22.100000,69.800000,bn +22.100000,69.900000,bn +22.200000,70.000000,bn +22.200000,69.900000,bn +22.300000,69.900000,bn +22.300000,70.000000,bn +22.400000,70.000000,bn +22.400000,69.900000,bn +22.400000,69.800000,bn +22.300000,69.800000,bn +22.300000,69.700000,bn +22.400000,69.700000,bn +22.500000,69.700000,bn +22.500000,69.800000,bn +22.600000,69.800000,bn +22.600000,69.700000,bn +22.700000,69.700000,en +22.800000,69.700000,en +22.800000,69.800000,en +22.700000,69.800000,en +22.700000,69.900000,en +22.800000,69.900000,en +22.800000,70.000000,en +22.700000,70.000000,en +22.600000,70.000000,bn +22.600000,69.900000,bn +22.500000,69.900000,bn +22.500000,70.000000,bn +22.500000,70.100000,bn +22.600000,70.200000,en +22.600000,70.100000,bn +22.700000,70.100000,en +22.800000,70.100000,en +22.800000,70.200000,en +22.700000,70.200000,en +22.700000,70.300000,en +22.800000,70.300000,en +22.800000,70.400000,en +22.700000,70.400000,en +22.600000,70.300000,en +22.600000,70.400000,en +22.500000,70.400000,en +22.400000,70.400000,en +22.400000,70.300000,en +22.500000,70.300000,en +22.500000,70.200000,en +22.400000,70.100000,bn +22.400000,70.200000,en +22.300000,70.200000,en +22.300000,70.100000,bn +22.200000,70.100000,bn +22.200000,70.200000,en +22.200000,70.300000,en +22.300000,70.300000,en +22.300000,70.400000,en +22.200000,70.400000,en +22.100000,70.400000,en +22.100000,70.300000,en +22.000000,70.300000,en +22.000000,70.400000,en +22.000000,70.100000,en +22.000000,70.200000,en +22.100000,70.200000,en +22.100000,70.100000,bn +22.100000,70.000000,bn +22.000000,70.000000,en +21.900000,69.700000,mr +21.800000,69.700000,mr +21.700000,69.700000,mr +21.600000,69.700000,mr +21.500000,69.700000,mr +22.200000,71.000000,id +22.100000,71.000000,id +22.200000,71.100000,id +22.100000,71.100000,id +21.700000,71.900000,id +21.700000,71.800000,en +21.800000,71.800000,en +21.800000,71.900000,id +21.900000,71.900000,id +21.900000,71.800000,en +22.000000,71.800000,en +22.000000,71.900000,id +22.100000,71.900000,en +22.100000,71.800000,en +22.200000,71.800000,en +22.200000,71.900000,en +22.300000,71.900000,en +22.300000,71.800000,en +22.200000,71.400000,id +22.100000,71.400000,id +22.100000,71.200000,id +22.100000,71.300000,id +22.200000,71.300000,id +22.200000,71.200000,id +22.300000,71.200000,id +22.300000,71.300000,id +22.400000,71.300000,id +22.400000,71.200000,id +22.500000,71.200000,id +22.500000,71.300000,id +22.500000,71.400000,id +22.400000,71.400000,id +22.300000,71.400000,id +22.500000,71.900000,en +22.600000,71.900000,en +22.700000,71.900000,en +22.800000,71.900000,en +22.900000,71.900000,en +23.000000,71.500000,en +23.000000,71.400000,en +23.000000,71.300000,en +22.500000,71.100000,id +22.400000,71.100000,id +22.300000,71.100000,id +22.400000,71.000000,id +22.300000,71.000000,id +22.500000,71.000000,id +22.700000,70.500000,en +22.700000,70.600000,en +22.700000,70.700000,en +22.800000,70.700000,en +22.900000,70.700000,en +22.900000,70.600000,en +22.800000,70.600000,en +22.800000,70.500000,en +22.900000,70.500000,en +23.000000,70.600000,en +23.100000,70.600000,en +23.000000,70.500000,en +23.100000,70.500000,en +23.200000,70.500000,en +23.200000,70.600000,en +23.200000,70.700000,en +23.300000,70.800000,en +23.200000,70.800000,en +23.100000,70.800000,en +23.100000,70.700000,en +23.000000,70.700000,en +23.000000,70.800000,en +23.000000,70.900000,en +23.100000,70.900000,en +23.100000,71.000000,en +23.000000,71.000000,en +23.000000,71.100000,en +23.100000,71.100000,en +23.200000,71.100000,en +23.300000,71.100000,en +23.300000,71.000000,en +23.200000,71.000000,en +23.200000,70.900000,en +23.300000,70.900000,en +23.400000,70.900000,en +23.500000,70.900000,en +23.500000,71.000000,en +23.400000,71.000000,en +23.400000,71.100000,en +23.500000,71.100000,en +23.600000,71.100000,en +23.700000,71.100000,en +23.700000,71.000000,en +23.600000,71.000000,en +23.600000,70.900000,en +23.600000,70.800000,en +23.600000,70.700000,en +23.500000,70.700000,en +23.500000,70.800000,en +23.400000,70.800000,en +23.300000,70.700000,en +23.400000,70.700000,en +23.400000,70.600000,en +23.300000,70.600000,en +23.300000,70.500000,en +23.400000,70.500000,en +23.500000,70.500000,en +23.500000,70.600000,en +23.600000,70.600000,en +23.600000,70.500000,en +23.700000,70.500000,en +23.800000,70.500000,en +23.800000,70.600000,en +23.700000,70.600000,en +23.700000,70.700000,en +23.700000,70.800000,en +23.800000,70.800000,en +23.800000,70.700000,en +23.900000,70.700000,en +23.900000,70.800000,en +24.000000,70.800000,en +24.000000,70.700000,en +24.000000,70.600000,en +23.900000,70.600000,en +23.900000,70.500000,en +24.000000,70.500000,en +24.200000,70.500000,gu +24.300000,70.500000,gu +24.200000,70.600000,gu +24.200000,70.700000,en +24.100000,71.000000,en +24.100000,71.100000,en +24.000000,71.100000,en +23.900000,71.100000,en +24.000000,71.000000,en +24.000000,70.900000,en +23.900000,70.900000,en +23.900000,71.000000,en +23.800000,71.000000,en +23.800000,70.900000,en +23.700000,70.900000,en +23.800000,71.100000,en +23.800000,71.200000,en +23.900000,71.200000,en +23.900000,71.300000,en +23.800000,71.300000,en +23.800000,71.400000,en +23.800000,71.500000,en +23.900000,71.500000,en +23.900000,71.400000,en +24.000000,71.400000,en +24.000000,71.500000,en +24.100000,71.500000,en +24.100000,71.400000,en +24.100000,71.300000,en +24.000000,71.300000,en +24.000000,71.200000,en +24.100000,71.200000,en +24.200000,71.300000,en +24.200000,71.200000,en +24.300000,71.200000,en +24.400000,71.200000,en +24.400000,71.300000,en +24.300000,71.300000,en +24.400000,71.400000,en +24.400000,71.500000,en +24.300000,71.500000,en +24.300000,71.400000,en +24.200000,71.400000,en +24.200000,71.500000,en +23.800000,71.600000,en +23.700000,71.800000,ja +23.700000,71.900000,ja +23.600000,71.900000,ja +23.500000,71.900000,ja +23.500000,71.800000,ja +23.600000,71.800000,ja +23.600000,71.700000,en +23.500000,71.700000,en +23.500000,71.600000,en +23.600000,71.600000,en +23.700000,71.600000,en +23.700000,71.500000,en +23.600000,71.500000,en +23.600000,71.400000,en +23.700000,71.400000,en +23.700000,71.300000,en +23.700000,71.200000,en +23.600000,71.200000,en +23.600000,71.300000,en +23.500000,71.300000,en +23.500000,71.200000,en +23.400000,71.200000,en +23.400000,71.400000,en +23.500000,71.400000,en +23.500000,71.500000,en +23.400000,71.500000,en +23.300000,71.500000,en +23.300000,71.400000,en +23.300000,71.300000,en +23.300000,71.200000,en +23.200000,71.200000,en +23.200000,71.300000,en +23.100000,71.300000,en +23.100000,71.200000,en +23.000000,71.200000,en +23.100000,71.400000,en +23.200000,71.400000,en +23.200000,71.500000,en +23.100000,71.500000,en +23.100000,71.600000,en +23.100000,71.700000,en +23.200000,71.700000,en +23.200000,71.600000,en +23.300000,71.600000,en +23.400000,71.600000,en +23.400000,71.700000,en +23.300000,71.700000,en +23.300000,71.800000,ja +23.400000,71.800000,ja +23.400000,71.900000,ja +23.300000,71.900000,ja +23.200000,71.900000,ja +23.200000,71.800000,ja +23.100000,71.800000,en +23.200000,72.100000,ja +23.200000,72.000000,ja +23.300000,72.000000,ja +23.400000,72.000000,gu +23.400000,72.100000,ja +23.300000,72.100000,ja +23.300000,72.200000,ja +23.400000,72.200000,ja +23.400000,72.300000,ja +23.300000,72.300000,ja +23.200000,72.200000,ja +23.200000,72.300000,zh +23.200000,72.400000,mr +23.300000,72.500000,id +23.200000,72.500000,mr +23.200000,72.600000,mr +23.200000,72.700000,mr +23.300000,72.700000,id +23.300000,72.600000,id +23.400000,72.600000,id +23.400000,72.700000,id +23.400000,72.500000,id +23.600000,72.400000,id +23.600000,72.500000,id +23.600000,72.600000,id +23.700000,72.600000,id +23.800000,72.600000,id +23.800000,72.500000,id +23.700000,72.500000,id +23.700000,72.400000,id +23.800000,72.400000,id +23.800000,72.300000,id +23.800000,72.200000,id +23.700000,72.200000,id +23.700000,72.300000,id +23.600000,72.300000,id +23.500000,72.300000,ja +23.500000,72.200000,ja +23.600000,72.200000,ja +23.600000,72.100000,ja +23.500000,72.100000,ja +23.500000,72.000000,ja +23.600000,72.000000,ja +23.700000,72.000000,ja +23.700000,72.100000,ja +23.900000,72.200000,id +23.900000,72.300000,id +24.000000,72.300000,ur +24.000000,72.200000,id +24.100000,72.200000,ur +24.100000,72.300000,ur +24.200000,72.300000,ur +24.200000,72.200000,ur +24.600000,72.700000,en +24.500000,72.700000,en +24.400000,72.700000,en +24.300000,72.700000,en +24.200000,72.700000,en +24.100000,72.600000,ur +24.200000,72.600000,ur +24.200000,72.500000,ur +24.200000,72.400000,ur +24.100000,72.400000,ur +24.100000,72.500000,ur +24.000000,72.500000,ur +24.000000,72.400000,ur +23.900000,72.400000,id +23.900000,72.500000,id +23.900000,72.600000,id +24.000000,72.600000,id +24.000000,73.000000,pt +24.100000,73.000000,en +24.200000,72.900000,en +24.200000,73.000000,en +24.300000,73.000000,en +24.200000,72.800000,en +24.300000,72.800000,en +24.400000,72.800000,en +24.500000,72.800000,en +24.600000,72.800000,en +24.500000,72.900000,en +24.600000,72.900000,en +24.600000,73.000000,en +24.500000,73.000000,en +24.400000,72.900000,en +24.300000,72.900000,en +24.400000,73.000000,en +24.400000,73.100000,en +24.400000,73.200000,en +24.500000,73.200000,en +24.500000,73.100000,en +24.600000,73.100000,en +24.600000,73.200000,en +24.500000,73.300000,en +24.400000,73.300000,en +24.200000,73.400000,en +24.200000,73.300000,en +24.300000,73.300000,en +24.300000,73.200000,en +24.300000,73.100000,en +24.200000,73.100000,en +24.200000,73.200000,en +24.100000,73.200000,en +24.100000,73.100000,en +24.000000,73.100000,pt +24.000000,73.200000,pt +24.000000,73.300000,pt +24.100000,73.300000,en +24.100000,73.400000,en +24.000000,73.400000,pt +23.900000,73.400000,pt +23.900000,73.300000,pt +23.800000,73.300000,pt +23.800000,73.400000,pt +23.700000,73.400000,pt +23.700000,73.300000,pt +23.700000,73.200000,pt +23.600000,73.200000,pt +23.600000,73.100000,pt +23.700000,73.100000,pt +23.800000,73.100000,pt +23.800000,73.200000,pt +23.900000,73.200000,pt +23.900000,73.100000,pt +23.900000,73.000000,pt +23.800000,73.000000,pt +23.700000,73.000000,pt +23.600000,73.000000,pt +23.400000,72.900000,id +23.400000,72.800000,id +23.300000,72.800000,id +23.200000,72.800000,mr +23.200000,72.900000,id +23.300000,72.900000,id +23.600000,73.300000,pt +23.600000,73.400000,pt +23.000000,73.400000,ur +22.900000,73.400000,ur +22.800000,73.400000,ur +22.700000,73.400000,ur +22.600000,73.400000,ur +22.500000,73.300000,mr +22.600000,73.300000,pt +22.600000,73.200000,pt +22.500000,73.200000,mr +22.500000,73.100000,mr +22.600000,73.100000,pt +22.800000,73.000000,pt +22.800000,72.900000,pt +22.500000,73.000000,mr +22.800000,72.800000,mr +22.900000,72.800000,mr +22.900000,72.900000,pt +22.900000,73.000000,pt +23.000000,73.000000,pt +23.000000,72.900000,id +23.100000,73.000000,pt +23.200000,73.000000,pt +23.100000,72.900000,id +23.000000,72.800000,mr +23.100000,72.800000,mr +23.100000,72.700000,mr +23.100000,72.600000,mr +23.000000,72.600000,mr +23.000000,72.700000,mr +22.900000,72.700000,mr +22.800000,72.600000,mr +22.900000,72.600000,mr +22.900000,72.500000,mr +22.800000,72.500000,mr +22.800000,72.400000,mr +22.900000,72.400000,mr +23.000000,72.400000,mr +23.000000,72.500000,mr +23.100000,72.500000,mr +23.100000,72.400000,mr +23.100000,72.300000,zh +23.000000,72.300000,zh +23.000000,72.200000,zh +23.100000,72.200000,zh +23.100000,72.100000,zh +23.000000,72.100000,zh +22.900000,72.100000,zh +22.900000,72.000000,en +22.800000,72.000000,en +22.800000,72.100000,zh +22.800000,72.200000,zh +22.900000,72.200000,zh +22.900000,72.300000,zh +22.800000,72.300000,zh +22.700000,72.300000,en +22.600000,72.300000,en +22.600000,72.200000,en +22.700000,72.200000,en +22.700000,72.100000,en +22.700000,72.000000,en +22.600000,72.000000,en +22.600000,72.100000,en +22.500000,72.100000,en +22.500000,72.000000,en +22.400000,72.100000,en +22.400000,72.200000,en +22.500000,72.200000,en +22.500000,72.300000,en +22.400000,72.300000,en +22.400000,72.400000,en +22.500000,72.500000,en +22.500000,72.400000,en +22.800000,72.700000,mr +22.500000,72.600000,en +22.500000,72.700000,en +22.400000,72.700000,en +22.400000,72.600000,en +22.300000,72.600000,en +22.300000,72.700000,en +22.200000,72.700000,en +22.100000,72.700000,en +22.100000,72.600000,en +22.200000,72.600000,en +22.200000,72.500000,en +22.100000,72.500000,en +22.100000,72.400000,en +22.200000,72.400000,en +22.300000,72.400000,en +22.300000,72.500000,en +22.400000,72.500000,en +22.300000,72.300000,en +22.200000,72.200000,en +22.300000,72.200000,en +22.300000,72.100000,en +22.300000,72.000000,en +22.200000,72.000000,en +22.200000,72.100000,en +22.100000,72.100000,en +22.100000,72.000000,en +22.000000,72.000000,id +22.000000,72.100000,id +22.100000,72.200000,en +22.200000,72.300000,en +22.100000,72.300000,en +22.000000,72.300000,id +21.900000,72.300000,en +21.900000,72.200000,id +22.000000,72.200000,id +21.900000,72.000000,id +21.900000,72.100000,id +21.800000,72.100000,id +21.800000,72.000000,id +21.700000,72.000000,id +21.700000,72.100000,id +21.700000,72.200000,id +21.800000,72.200000,id +21.800000,72.300000,en +21.700000,72.300000,en +21.700000,72.400000,en +21.700000,72.500000,gu +21.800000,72.500000,en +21.800000,72.400000,en +21.900000,72.400000,en +22.000000,72.400000,en +22.000000,72.500000,en +21.900000,72.500000,en +21.900000,72.600000,en +22.000000,72.600000,en +22.000000,72.700000,en +21.900000,72.700000,en +21.800000,72.700000,en +21.800000,72.600000,en +21.700000,72.600000,bn +21.700000,72.700000,en +21.800000,72.800000,mr +21.800000,72.900000,mr +21.800000,73.000000,mr +21.900000,73.000000,mr +21.900000,72.900000,mr +22.000000,73.000000,mr +22.000000,72.900000,mr +21.900000,72.800000,bn +22.000000,72.800000,en +22.100000,72.800000,en +22.400000,73.000000,mr +22.300000,73.000000,mr +22.200000,73.000000,mr +22.200000,72.900000,mr +22.100000,72.900000,mr +22.100000,73.000000,mr +22.200000,73.200000,mr +22.300000,73.200000,mr +22.200000,73.100000,mr +22.300000,73.100000,mr +22.400000,73.100000,mr +22.400000,73.200000,mr +22.400000,73.300000,mr +22.500000,73.400000,mr +22.400000,73.400000,mr +22.300000,73.400000,fr +22.300000,73.300000,fr +22.200000,73.300000,mr +22.200000,73.400000,mr +22.100000,73.400000,mr +22.000000,73.400000,mr +22.000000,73.300000,mr +22.100000,73.300000,mr +22.100000,73.200000,mr +22.100000,73.100000,mr +22.000000,73.100000,mr +22.000000,73.200000,mr +21.900000,73.200000,mr +21.900000,73.100000,mr +21.800000,73.100000,mr +21.800000,73.200000,mr +21.800000,73.300000,mr +21.900000,73.300000,mr +21.900000,73.400000,pt +21.800000,73.400000,pt +21.800000,73.500000,pt +21.800000,73.600000,pt +21.900000,73.600000,pt +21.900000,73.500000,pt +22.000000,73.500000,mr +22.100000,73.500000,fr +22.100000,73.600000,pt +22.000000,73.600000,pt +22.000000,73.700000,pt +22.100000,73.700000,pt +22.100000,73.800000,en +22.000000,73.800000,mr +21.900000,73.700000,pt +21.800000,73.700000,pt +21.900000,73.800000,mr +21.900000,73.900000,mr +22.000000,73.900000,mr +22.000000,74.000000,mr +21.900000,74.000000,mr +21.900000,74.100000,gu +21.900000,74.200000,gu +22.000000,74.200000,mr +22.000000,74.100000,mr +22.100000,74.100000,en +22.100000,74.200000,en +22.200000,74.200000,en +22.200000,74.100000,en +22.100000,74.000000,en +22.100000,73.900000,en +22.200000,73.900000,en +22.300000,73.900000,en +22.300000,74.000000,en +22.200000,74.000000,en +22.300000,74.100000,en +22.300000,74.200000,en +22.400000,74.200000,en +22.400000,74.100000,en +22.500000,74.200000,en +22.500000,74.100000,en +22.500000,74.000000,en +22.400000,74.000000,en +22.400000,73.900000,en +22.500000,73.900000,en +22.500000,73.800000,en +22.500000,73.700000,en +22.400000,73.700000,en +22.400000,73.800000,en +22.300000,73.800000,en +22.200000,73.800000,en +22.200000,73.700000,mr +22.300000,73.700000,en +22.300000,73.600000,pt +22.200000,73.600000,pt +22.200000,73.500000,fr +22.300000,73.500000,fr +22.400000,73.500000,fr +22.400000,73.600000,pt +22.500000,73.600000,pt +22.500000,73.500000,fr +22.600000,73.500000,ur +22.700000,73.500000,ur +22.700000,73.600000,ur +22.600000,73.600000,ur +22.600000,73.700000,ur +22.600000,73.800000,ur +22.700000,73.800000,ur +22.700000,73.700000,ur +22.800000,73.700000,ur +22.800000,73.800000,ur +22.900000,73.800000,ur +22.900000,73.700000,ur +22.800000,73.600000,ur +22.800000,73.500000,ur +22.900000,73.500000,ur +22.900000,73.600000,ur +23.000000,73.600000,ur +23.000000,73.500000,ur +23.100000,73.700000,en +23.200000,73.700000,en +23.200000,73.800000,en +23.100000,73.800000,en +23.000000,73.700000,ur +23.000000,73.800000,ur +23.100000,74.000000,en +23.100000,73.900000,en +23.200000,73.900000,en +23.300000,74.000000,en +23.200000,74.000000,en +23.200000,74.100000,en +23.300000,74.100000,en +23.100000,74.100000,en +22.700000,74.000000,en +22.700000,73.900000,en +22.600000,73.900000,en +22.600000,74.000000,en +22.600000,74.100000,en +22.700000,74.100000,en +22.700000,74.200000,en +22.600000,74.200000,en +22.400000,74.400000,en +22.400000,74.300000,en +22.300000,74.300000,en +22.300000,74.400000,en +22.200000,74.400000,en +22.200000,74.300000,en +22.100000,74.300000,en +22.000000,74.400000,en +22.000000,74.300000,gu +21.900000,74.300000,gu +21.900000,74.400000,en +21.900000,74.500000,en +21.900000,74.600000,en +21.900000,74.700000,en +23.400000,74.100000,en +23.500000,74.100000,en +23.400000,74.000000,en +23.300000,73.900000,en +23.400000,73.900000,en +23.500000,73.900000,en +23.500000,74.000000,en +23.500000,73.700000,en +23.500000,73.800000,en +23.400000,73.800000,en +23.300000,73.800000,en +23.300000,73.700000,en +23.400000,73.700000,en +24.100000,73.500000,en +24.200000,73.500000,en +26.300000,74.800000,iw +26.300000,74.700000,iw +26.300000,74.600000,iw +26.300000,74.500000,iw +26.300000,74.400000,iw +26.100000,73.900000,mr +26.100000,74.000000,mr +26.000000,74.000000,mr +26.000000,73.900000,mr +25.900000,73.900000,mr +25.900000,74.000000,mr +25.700000,74.000000,mr +25.700000,73.900000,mr +25.800000,74.000000,mr +25.800000,73.900000,mr +25.800000,73.800000,mr +25.800000,73.700000,mr +25.700000,73.700000,mr +25.700000,73.800000,mr +25.700000,73.600000,mr +25.800000,73.600000,mr +26.000000,73.600000,mr +25.900000,73.600000,mr +25.900000,73.700000,mr +25.900000,73.800000,mr +26.000000,73.800000,mr +26.000000,73.700000,mr +26.100000,73.700000,mr +26.100000,73.800000,mr +26.100000,73.600000,mr +26.700000,74.600000,iw +26.700000,74.400000,iw +26.700000,74.500000,iw +26.600000,74.500000,iw +26.600000,74.400000,iw +26.500000,74.400000,iw +26.400000,74.400000,iw +26.500000,74.500000,es +26.400000,74.500000,iw +26.400000,74.600000,iw +26.400000,74.700000,iw +26.500000,74.700000,iw +26.500000,74.600000,iw +26.600000,74.600000,iw +26.700000,74.700000,iw +26.600000,74.700000,iw +26.600000,74.800000,iw +26.700000,74.800000,iw +26.500000,74.800000,iw +26.400000,74.800000,iw +27.800000,76.300000,en +27.800000,76.400000,en +27.300000,77.100000,fa +27.800000,76.600000,en +27.800000,76.500000,en +28.000000,77.000000,es +28.000000,77.100000,es +27.700000,77.100000,fa +27.600000,77.100000,fa +27.400000,77.100000,fa +27.500000,77.100000,fa +27.400000,77.200000,fa +27.500000,77.200000,fa +27.500000,77.300000,fa +27.400000,77.300000,fa +27.400000,77.400000,fa +27.400000,77.500000,ar +27.500000,77.500000,ar +27.500000,77.400000,fa +27.600000,77.400000,fa +27.600000,77.500000,ar +27.700000,77.500000,ar +27.700000,77.400000,fa +27.700000,77.300000,fa +27.600000,77.300000,fa +27.600000,77.200000,fa +27.700000,77.200000,fa +28.000000,77.200000,es +28.000000,77.300000,es +28.000000,77.400000,es +28.100000,77.900000,ur +28.000000,77.900000,ur +27.900000,77.900000,ur +27.800000,77.900000,ur +27.700000,77.900000,ur +27.600000,77.900000,id +27.600000,77.800000,id +27.400000,77.800000,id +27.500000,77.800000,id +27.500000,77.900000,id +27.400000,77.900000,es +27.300000,77.900000,it +27.200000,77.900000,it +27.100000,77.900000,it +27.300000,77.500000,fa +27.300000,77.400000,fa +27.300000,77.300000,fa +27.300000,77.200000,fa +27.000000,77.900000,it +27.000000,78.000000,it +27.000000,78.100000,it +27.000000,78.200000,it +27.000000,78.300000,it +27.100000,78.300000,it +27.200000,78.300000,it +27.300000,78.300000,it +27.400000,78.300000,it +27.400000,78.200000,it +27.300000,78.200000,it +27.100000,78.200000,it +27.200000,78.200000,it +27.200000,78.100000,it +27.100000,78.100000,it +27.100000,78.000000,it +27.200000,78.000000,it +27.300000,78.000000,it +27.300000,78.100000,it +27.400000,78.100000,it +27.400000,78.000000,es +27.700000,78.200000,ur +27.700000,78.100000,ur +27.700000,78.000000,ur +27.800000,78.000000,ur +27.800000,78.100000,ur +27.900000,78.100000,ur +27.900000,78.000000,ur +28.000000,78.000000,ur +28.100000,78.000000,ur +28.100000,78.100000,ur +28.000000,78.100000,ur +28.000000,78.200000,ur +28.100000,78.200000,ur +27.900000,78.200000,ur +27.800000,78.200000,ur +27.900000,78.300000,ur +28.000000,78.300000,ur +28.100000,78.300000,ur +27.800000,78.300000,ur +27.700000,78.300000,ur +23.700000,78.000000,ar +23.700000,77.700000,ar +23.700000,77.800000,ar +23.700000,77.900000,ar +23.600000,77.900000,ar +23.500000,77.900000,id +23.500000,77.800000,ar +23.600000,77.800000,ar +23.600000,77.700000,ar +23.500000,77.700000,ar +23.400000,77.700000,ar +23.300000,77.700000,ar +23.300000,77.800000,ar +23.400000,77.800000,ar +23.400000,77.900000,ar +23.300000,77.900000,ar +23.300000,78.000000,ar +23.400000,78.000000,ar +23.500000,78.000000,ar +23.600000,78.000000,ar +24.600000,79.700000,en +24.600000,79.800000,en +25.300000,81.400000,ar +25.400000,81.400000,ar +25.400000,81.500000,ar +25.300000,81.500000,ar +25.300000,81.600000,ar +25.400000,81.600000,ar +25.300000,81.700000,ar +25.400000,81.700000,ar +25.400000,81.800000,ar +25.300000,81.800000,ar +24.500000,84.800000,zh +24.500000,84.900000,zh +24.600000,84.900000,zh +24.600000,84.800000,zh +24.700000,84.800000,zh +24.700000,84.900000,zh +24.800000,84.900000,zh +24.800000,84.800000,zh +24.900000,84.800000,zh +24.900000,84.900000,zh +25.800000,82.900000,ar +25.800000,82.800000,ar +25.800000,82.700000,ar +26.000000,82.700000,ar +25.900000,82.700000,ar +25.900000,82.800000,ar +25.900000,82.900000,ar +26.000000,82.900000,ar +26.000000,82.800000,ar +26.100000,82.800000,ar +26.100000,82.900000,ar +26.200000,82.900000,ar +26.200000,82.800000,ar +26.200000,82.700000,ar +26.100000,82.700000,ar +26.300000,83.100000,ar +26.300000,83.200000,ar +26.300000,83.300000,ar +26.300000,83.400000,ar +26.300000,83.500000,ar +26.200000,83.500000,ar +26.100000,83.500000,ar +25.900000,83.500000,ar +26.000000,83.500000,ar +26.000000,83.400000,ar +25.900000,83.400000,ar +25.900000,83.300000,ar +26.000000,83.300000,ar +26.100000,83.300000,ar +26.100000,83.400000,ar +26.200000,83.400000,ar +26.200000,83.300000,ar +26.200000,83.200000,ar +26.100000,83.200000,ar +26.100000,83.100000,ar +26.200000,83.100000,ar +26.200000,83.000000,ar +26.100000,83.000000,ar +26.000000,83.000000,ar +25.900000,83.000000,ar +25.900000,83.100000,ar +26.000000,83.100000,ar +26.000000,83.200000,ar +25.900000,83.200000,ar +25.800000,83.100000,ar +25.800000,83.000000,ar +25.800000,83.300000,ar +25.800000,83.400000,ar +25.800000,83.500000,ar +25.900000,83.700000,ar +25.800000,83.700000,ar +25.800000,83.600000,ar +25.900000,83.600000,ar +26.000000,83.700000,ar +26.000000,83.600000,ar +26.100000,83.600000,ar +26.200000,83.600000,ar +26.200000,83.700000,ar +26.100000,83.700000,ar +26.800000,84.900000,en +26.800000,84.800000,en +26.900000,84.800000,en +26.900000,84.900000,en +27.000000,84.800000,en +27.000000,84.700000,en +26.900000,84.700000,en +27.000000,84.600000,ne +26.900000,84.600000,ne +26.900000,84.000000,th +26.900000,84.100000,th +26.800000,84.100000,id +26.800000,84.000000,id +26.800000,83.900000,id +26.800000,83.800000,id +26.900000,83.800000,id +26.900000,83.900000,id +27.200000,83.900000,en +27.300000,83.800000,en +27.300000,83.900000,en +27.400000,83.900000,en +27.400000,83.800000,ne +27.400000,83.700000,ne +27.300000,83.700000,ne +27.300000,83.600000,ne +27.400000,83.600000,ne +27.500000,84.100000,hi +27.400000,84.200000,ne +27.300000,84.200000,ne +27.400000,84.100000,en +27.400000,84.000000,en +27.300000,84.000000,en +27.300000,84.100000,ne +27.200000,84.100000,en +27.200000,84.000000,en +27.200000,84.200000,en +27.300000,84.300000,ne +27.400000,84.300000,ne +27.300000,84.400000,ne +27.300000,84.500000,ne +27.300000,84.600000,ne +27.200000,84.600000,ne +27.200000,84.500000,en +27.100000,84.500000,en +27.100000,84.600000,ne +27.400000,83.400000,ne +27.400000,83.500000,ne +27.300000,83.500000,ne +27.200000,83.300000,ar +27.300000,83.400000,ne +27.300000,83.300000,ne +27.300000,83.200000,th +27.300000,83.100000,ar +27.200000,83.100000,ne +27.200000,83.200000,ar +27.200000,83.000000,ar +27.300000,83.000000,bn +27.400000,83.000000,ne +27.400000,83.100000,ne +27.400000,83.200000,en +27.700000,82.700000,ne +27.700000,82.600000,ne +27.600000,82.600000,ne +27.600000,82.700000,en +27.500000,82.700000,en +27.500000,82.600000,en +27.400000,82.600000,ur +27.400000,82.700000,ur +27.400000,82.800000,en +27.500000,82.800000,en +27.500000,82.900000,en +27.400000,82.900000,en +27.300000,82.900000,bn +27.300000,82.800000,ur +27.200000,82.800000,bn +27.200000,82.900000,bn +27.300000,82.700000,ne +27.300000,82.600000,ne +27.600000,82.500000,ne +27.700000,82.400000,ne +27.600000,82.300000,en +27.700000,82.300000,th +27.800000,82.300000,ne +27.900000,82.100000,ne +27.800000,82.200000,ne +27.800000,82.100000,ne +27.900000,82.000000,ne +28.000000,81.700000,en +27.900000,81.700000,en +27.900000,81.800000,en +27.900000,81.600000,en +28.000000,81.600000,en +28.100000,81.400000,en +28.200000,81.300000,en +28.100000,81.300000,en +28.100000,81.200000,en +28.200000,81.200000,en +28.300000,81.200000,en +28.300000,81.100000,en +28.200000,81.100000,en +28.200000,81.000000,en +28.300000,81.000000,en +28.300000,80.900000,en +28.200000,80.900000,en +28.000000,81.300000,en +27.900000,81.400000,en +28.000000,81.400000,en +28.000000,81.500000,en +27.900000,81.500000,en +27.700000,82.200000,en +25.700000,81.700000,ar +25.700000,81.800000,ar +25.600000,81.800000,ar +25.500000,81.800000,ar +25.500000,81.700000,ar +25.600000,81.700000,ar +25.500000,81.600000,ar +25.600000,81.600000,ar +25.700000,81.600000,ar +25.700000,81.500000,ar +25.700000,81.400000,ar +25.600000,81.400000,ar +25.600000,81.500000,ar +25.500000,81.500000,ar +25.500000,81.400000,ar +28.700000,79.800000,en +28.800000,79.800000,en +28.800000,79.900000,en +28.700000,79.900000,id +28.700000,80.000000,id +28.800000,80.000000,id +28.900000,80.000000,id +29.000000,80.000000,ne +29.000000,79.900000,en +28.900000,79.900000,en +28.900000,79.800000,en +29.000000,79.800000,en +29.400000,79.800000,en +29.300000,80.000000,en +29.400000,80.000000,en +29.400000,79.900000,en +29.300000,79.800000,en +29.300000,79.900000,en +29.200000,79.900000,ne +29.200000,79.800000,en +29.100000,79.800000,bn +29.100000,79.900000,id +29.100000,80.000000,ne +29.200000,80.000000,ne +29.100000,80.100000,ne +29.200000,80.100000,ne +29.200000,80.200000,ne +29.300000,80.300000,ne +29.400000,80.200000,ne +29.300000,80.200000,bn +29.300000,80.100000,en +29.400000,80.100000,bn +29.500000,80.100000,bn +29.500000,80.200000,ne +29.600000,80.200000,en +29.700000,80.200000,en +29.700000,80.300000,en +29.800000,80.300000,en +29.800000,80.400000,en +29.600000,80.400000,en +29.600000,80.300000,en +29.500000,80.300000,ne +29.800000,80.500000,en +29.000000,80.100000,ne +28.800000,80.100000,ne +28.700000,80.100000,id +28.700000,80.200000,ne +28.700000,80.300000,ne +28.600000,80.400000,en +28.600000,80.300000,en +28.600000,80.200000,en +28.600000,80.100000,ne +28.500000,80.200000,en +28.500000,80.600000,en +28.500000,80.500000,en +28.600000,80.500000,en +28.600000,80.600000,en +28.500000,80.800000,en +28.500000,80.700000,en +28.500000,80.900000,en +28.400000,80.900000,en +28.400000,81.000000,en +30.200000,81.000000,ne +30.300000,80.600000,en +30.200000,80.600000,ne +30.200000,80.700000,ne +30.300000,80.700000,ne +30.300000,80.800000,ne +30.200000,80.800000,ne +30.000000,80.700000,ne +30.000000,80.600000,en +29.900000,80.500000,en +30.000000,80.500000,en +30.000000,80.300000,en +30.000000,80.400000,en +29.900000,80.400000,en +29.900000,80.300000,en +29.800000,80.200000,en +27.400000,88.800000,bo +27.300000,88.900000,zh +27.300000,88.800000,bo +26.800000,89.400000,bo +26.700000,89.700000,en +26.700000,89.600000,bo +26.700000,89.400000,bo +26.700000,89.500000,bo +26.600000,89.500000,en +26.600000,89.400000,en +26.500000,89.400000,en +26.500000,89.500000,en +26.500000,89.600000,en +26.600000,89.600000,en +26.600000,89.700000,en +26.500000,89.700000,en +26.500000,89.800000,en +26.600000,89.800000,en +26.700000,89.800000,en +26.700000,89.900000,en +26.600000,89.900000,en +26.500000,89.900000,en +26.300000,89.900000,en +26.400000,89.900000,en +26.400000,89.800000,en +26.300000,89.800000,en +26.200000,89.800000,en +26.100000,89.800000,en +26.100000,89.900000,en +26.200000,89.900000,en +26.000000,89.900000,en +25.900000,89.900000,en +25.700000,89.900000,en +25.800000,89.900000,en +26.100000,89.400000,en +26.200000,89.400000,en +26.200000,89.500000,en +26.100000,89.500000,en +26.200000,89.600000,en +26.400000,89.700000,en +26.400000,89.600000,en +26.400000,89.500000,en +26.400000,89.400000,en +26.400000,89.200000,en +26.400000,89.100000,en +26.300000,89.200000,en +26.200000,89.200000,en +26.100000,89.300000,en +26.200000,89.300000,en +26.400000,88.900000,en +26.300000,88.900000,en +26.400000,88.800000,en +26.500000,88.800000,en +26.600000,88.800000,en +26.700000,89.000000,en +26.700000,89.300000,bo +26.700000,89.200000,bo +26.700000,89.100000,en +26.800000,89.100000,en +26.800000,89.300000,bo +26.800000,89.000000,en +26.900000,89.000000,en +26.900000,88.900000,en +26.800000,88.900000,en +26.800000,88.800000,en +26.900000,88.800000,en +27.000000,88.800000,en +27.100000,88.800000,bo +27.100000,88.700000,ne +27.000000,88.700000,ne +26.800000,88.700000,en +26.900000,88.700000,ne +26.900000,88.600000,ne +26.800000,88.600000,ne +26.800000,88.500000,ne +26.900000,88.500000,ne +27.000000,88.500000,ne +27.000000,88.600000,ne +27.100000,88.600000,ne +27.100000,88.500000,ne +27.000000,88.400000,ne +27.100000,88.400000,ne +27.100000,88.300000,ne +27.100000,88.200000,ne +27.000000,88.200000,ne +27.000000,88.300000,th +26.900000,88.300000,ne +26.900000,88.200000,ne +26.800000,88.200000,en +26.800000,88.300000,ne +26.800000,88.400000,ne +26.900000,88.400000,ne +26.700000,88.400000,ne +26.700000,88.300000,ne +26.700000,88.200000,ne +26.600000,88.200000,ne +26.600000,88.300000,ne +26.500000,88.200000,en +26.500000,88.300000,ne +26.500000,88.600000,en +26.600000,88.600000,ne +26.600000,88.500000,ne +26.700000,88.500000,ne +26.700000,88.600000,ne +26.600000,88.700000,en +26.500000,88.700000,en +25.700000,88.300000,en +25.700000,88.200000,id +26.200000,88.200000,en +26.400000,88.400000,en +26.400000,88.300000,ne +26.300000,88.300000,en +26.300000,88.200000,ne +26.400000,88.200000,en +26.400000,88.100000,en +26.300000,88.100000,ne +26.400000,87.900000,ne +26.300000,87.900000,ne +26.300000,88.000000,ne +26.200000,88.000000,ur +26.200000,87.900000,ur +26.100000,87.900000,ar +26.100000,88.000000,ur +26.200000,88.100000,ur +26.100000,88.100000,en +26.000000,88.100000,en +25.700000,88.100000,id +25.800000,88.000000,id +25.700000,88.000000,id +25.700000,87.900000,id +25.800000,87.900000,id +25.900000,87.900000,ur +25.900000,88.000000,ur +26.000000,88.000000,ur +26.000000,87.900000,ur +26.000000,87.800000,ur +26.000000,87.700000,ur +25.900000,87.700000,ur +25.900000,87.800000,ur +25.800000,87.800000,ur +25.700000,87.800000,ur +25.700000,87.700000,ur +25.800000,87.700000,ur +25.700000,87.600000,ur +25.800000,87.600000,ur +25.900000,87.600000,ur +26.000000,87.600000,ur +26.100000,87.600000,bn +26.200000,87.600000,ur +26.100000,87.700000,ur +26.100000,87.800000,ur +26.200000,87.800000,ur +26.200000,87.700000,ur +26.300000,87.700000,ne +26.300000,87.800000,bn +26.400000,87.800000,ne +26.400000,87.700000,ne +26.300000,87.600000,ne +26.500000,88.100000,ne +27.000000,88.100000,ne +27.100000,88.100000,ne +27.100000,88.000000,bn +27.600000,88.100000,ne +27.500000,88.100000,en +27.400000,88.100000,en +27.200000,88.000000,bn +27.300000,88.100000,ne +27.200000,88.100000,th +27.200000,88.200000,th +27.200000,88.300000,ne +27.300000,88.300000,ne +27.300000,88.200000,ne +27.400000,88.200000,en +27.500000,88.200000,en +27.500000,88.300000,fa +27.400000,88.300000,fa +27.400000,88.400000,bo +27.500000,88.400000,bo +27.300000,88.400000,ne +27.200000,88.400000,ne +27.200000,88.500000,ne +27.300000,88.500000,ne +27.300000,88.600000,bo +27.200000,88.600000,ne +27.200000,88.700000,ne +27.300000,88.700000,bo +27.400000,88.700000,zh +27.500000,88.700000,zh +27.500000,88.600000,zh +27.400000,88.600000,bn +27.400000,88.500000,zh +27.500000,88.500000,fa +27.600000,88.500000,zh +27.700000,88.500000,fa +27.700000,88.600000,fa +27.600000,88.600000,zh +27.600000,88.700000,bn +27.700000,88.700000,fa +27.600000,88.400000,zh +27.700000,88.400000,fa +27.700000,88.300000,fa +27.600000,88.300000,fa +27.600000,88.200000,ne +27.700000,88.200000,bo +27.800000,88.200000,bo +27.900000,88.200000,zh +26.600000,86.100000,en +26.600000,86.200000,en +26.600000,86.000000,en +26.600000,85.800000,en +26.600000,85.900000,en +26.600000,85.700000,en +26.700000,85.700000,en +26.800000,85.700000,en +26.800000,85.600000,en +26.800000,85.500000,en +26.900000,85.000000,en +26.800000,85.000000,en +26.800000,85.100000,en +26.800000,85.200000,ne +26.700000,85.200000,ne +26.600000,85.200000,ur +26.700000,85.100000,ur +26.700000,85.000000,ne +26.600000,85.100000,ur +26.600000,85.300000,ur +26.700000,85.300000,ur +26.700000,85.400000,ur +26.600000,85.400000,ur +26.700000,85.500000,en +26.700000,85.600000,en +26.600000,85.600000,en +26.400000,86.300000,ne +26.500000,86.300000,ne +26.500000,86.400000,ne +26.400000,86.400000,ne +26.400000,86.500000,en +26.500000,86.500000,ne +26.600000,86.300000,ne +26.400000,86.600000,en +26.400000,86.700000,en +26.400000,86.800000,en +26.500000,86.900000,en +26.400000,86.900000,en +26.500000,87.000000,ne +26.400000,87.000000,ne +26.400000,87.100000,en +26.400000,87.200000,en +26.500000,87.100000,en +26.400000,87.400000,en +26.400000,87.500000,en +26.300000,87.400000,en +26.300000,87.500000,en +26.200000,87.500000,ur +26.200000,87.400000,ur +26.200000,87.300000,ur +26.300000,87.300000,ru +26.300000,87.200000,ru +26.300000,87.100000,ru +25.300000,87.500000,en +25.200000,87.500000,en +25.100000,87.500000,en +25.000000,87.500000,en +24.400000,87.500000,en +24.300000,87.500000,en +24.300000,87.400000,en +24.300000,87.300000,en +25.200000,85.200000,bn +25.100000,85.200000,bn +24.900000,85.000000,zh +24.900000,85.100000,zh +25.000000,85.200000,bn +24.900000,85.200000,zh +24.900000,85.300000,bn +24.900000,85.400000,bn +25.000000,85.400000,th +25.000000,85.300000,bn +25.100000,85.300000,bn +25.200000,85.300000,bn +25.200000,85.400000,bn +25.100000,85.400000,bn +25.100000,85.500000,bn +25.200000,85.500000,bn +25.200000,85.600000,bn +25.100000,85.600000,bn +25.000000,85.600000,bn +25.000000,85.500000,bn +24.900000,85.500000,bn +24.900000,85.600000,bn +24.800000,85.600000,th +24.800000,85.500000,th +24.800000,85.400000,th +24.800000,85.300000,th +24.800000,85.200000,zh +24.700000,85.200000,zh +24.800000,85.100000,zh +24.800000,85.000000,zh +24.700000,85.000000,zh +24.700000,85.100000,zh +24.600000,85.100000,zh +24.600000,85.000000,zh +24.500000,85.000000,zh +24.500000,85.100000,zh +24.600000,85.200000,zh +24.500000,85.200000,zh +23.800000,86.000000,bn +23.800000,86.100000,bn +23.800000,86.200000,bn +23.700000,86.200000,id +23.700000,86.100000,id +23.600000,86.100000,id +23.600000,86.200000,id +23.500000,86.200000,en +23.400000,86.200000,en +23.400000,86.100000,en +23.500000,86.100000,en +23.400000,86.000000,en +23.500000,86.000000,en +23.600000,86.000000,id +23.700000,86.000000,id +23.500000,85.900000,en +23.400000,85.900000,en +23.400000,85.800000,en +23.500000,85.800000,en +22.700000,85.700000,en +22.600000,85.700000,en +22.600000,85.800000,en +22.700000,85.800000,en +22.800000,85.800000,en +22.900000,85.800000,en +22.900000,85.700000,en +22.800000,85.700000,en +23.000000,85.700000,en +23.100000,85.700000,en +23.200000,85.800000,en +23.300000,85.800000,en +23.300000,85.900000,en +23.200000,85.900000,en +23.100000,85.900000,en +23.100000,85.800000,en +23.000000,85.800000,en +23.100000,86.000000,en +23.200000,86.000000,en +23.300000,86.000000,en +23.200000,86.100000,en +23.300000,86.100000,en +23.300000,86.200000,en +23.200000,86.200000,en +23.100000,86.200000,en +23.100000,86.100000,en +22.600000,86.100000,en +22.600000,86.200000,en +22.600000,86.300000,en +22.600000,86.400000,en +22.700000,86.400000,en +22.700000,86.300000,en +22.800000,86.300000,en +22.900000,86.300000,en +22.900000,86.400000,en +22.800000,86.400000,en +22.900000,86.500000,en +22.800000,86.500000,en +22.700000,86.500000,en +22.600000,86.500000,en +22.600000,86.600000,en +22.700000,86.600000,en +22.700000,86.700000,en +22.600000,86.700000,en +22.600000,86.800000,en +22.600000,86.900000,en +22.700000,86.900000,en +22.700000,86.800000,en +22.800000,86.800000,en +22.800000,86.900000,en +22.900000,86.900000,en +22.900000,86.800000,en +22.900000,86.700000,en +22.800000,86.700000,en +22.800000,86.600000,en +22.900000,86.600000,en +23.000000,86.600000,en +23.000000,86.700000,en +23.000000,86.800000,en +23.000000,86.900000,en +23.000000,86.500000,en +23.000000,86.400000,en +23.000000,86.300000,en +23.700000,86.400000,id +23.600000,86.400000,id +23.600000,86.300000,id +23.700000,86.300000,id +23.800000,86.300000,id +23.800000,86.400000,id +23.900000,86.400000,id +23.900000,86.300000,id +24.000000,86.300000,id +24.000000,86.400000,id +23.900000,87.500000,ja +23.800000,87.500000,ja +23.700000,87.500000,ja +23.600000,87.500000,ja +23.500000,87.500000,ja +22.800000,87.700000,id +22.800000,87.800000,id +22.900000,87.800000,id +22.900000,87.700000,id +22.800000,87.600000,id +22.900000,87.600000,id +23.000000,87.600000,id +23.100000,87.600000,id +23.200000,87.600000,id +23.200000,87.700000,id +23.200000,87.800000,id +23.100000,87.800000,id +23.100000,87.700000,id +23.000000,87.700000,id +23.000000,87.800000,id +23.000000,87.900000,id +23.000000,88.000000,id +23.100000,88.000000,id +23.100000,87.900000,id +23.200000,87.900000,id +23.200000,88.000000,id +23.200000,88.100000,id +23.100000,88.100000,id +23.000000,88.100000,id +22.900000,88.100000,id +22.800000,88.100000,id +22.900000,88.000000,id +22.900000,87.900000,id +22.800000,87.900000,id +22.800000,88.000000,id +22.700000,87.900000,id +22.700000,88.000000,id +22.700000,88.100000,id +22.700000,88.200000,id +22.700000,88.300000,id +22.800000,88.300000,id +22.800000,88.200000,id +22.900000,88.200000,id +22.900000,88.300000,id +22.900000,88.400000,id +22.800000,88.400000,id +22.700000,88.400000,id +22.700000,88.500000,id +22.800000,88.500000,id +22.800000,88.600000,id +22.700000,88.600000,id +22.700000,88.700000,id +22.800000,88.700000,id +22.900000,88.600000,id +22.900000,88.500000,id +23.300000,88.600000,ru +23.200000,88.600000,ru +23.200000,88.500000,ru +23.300000,88.500000,ru +23.300000,88.400000,ru +23.200000,88.400000,ru +23.200000,88.200000,ru +23.200000,88.300000,ru +23.300000,88.300000,ru +23.300000,88.200000,ru +23.400000,88.200000,ru +23.400000,88.300000,ru +23.500000,88.300000,ru +23.500000,88.200000,ru +23.600000,88.200000,ru +23.600000,88.300000,ru +23.600000,88.400000,ru +23.500000,88.400000,ru +23.400000,88.400000,hi +23.400000,88.500000,ru +23.500000,88.500000,ru +23.500000,88.600000,ru +23.400000,88.600000,ru +23.400000,88.700000,en +23.600000,88.500000,ru +23.900000,88.600000,en +24.000000,88.700000,en +24.100000,88.600000,en +24.000000,88.600000,en +23.900000,87.900000,ja +23.800000,87.900000,ja +23.500000,87.900000,ja +23.600000,87.900000,ja +23.700000,87.900000,ja +23.700000,87.800000,ja +23.700000,87.700000,ja +23.600000,87.700000,ja +23.600000,87.800000,ja +23.500000,87.800000,ja +23.500000,87.700000,ja +23.500000,87.600000,ja +23.600000,87.600000,ja +23.700000,87.600000,ja +23.800000,87.600000,ja +23.900000,87.600000,ja +23.800000,87.700000,ja +23.800000,87.800000,ja +23.900000,87.800000,ja +23.900000,87.700000,ja +24.300000,87.600000,en +24.400000,87.600000,en +24.500000,87.600000,en +24.400000,87.700000,en +24.500000,87.700000,en +24.300000,87.700000,en +24.400000,88.100000,en +24.500000,88.100000,en +24.500000,88.000000,en +24.400000,88.000000,en +24.700000,88.000000,en +24.600000,88.000000,en +24.800000,88.000000,en +24.800000,87.900000,id +24.800000,87.700000,en +24.700000,87.700000,en +24.600000,87.700000,en +24.600000,87.600000,en +24.700000,87.600000,en +24.800000,87.600000,en +24.900000,87.600000,en +25.000000,87.600000,en +24.900000,87.700000,id +24.900000,87.800000,id +25.000000,87.800000,id +25.000000,87.700000,id +25.100000,87.700000,id +25.100000,87.800000,id +25.200000,87.800000,id +25.200000,87.700000,id +25.100000,87.600000,en +25.200000,87.600000,en +25.300000,87.600000,en +25.500000,87.800000,ar +25.400000,87.800000,ar +25.300000,87.700000,id +25.300000,87.800000,ar +25.300000,87.900000,ar +25.300000,88.000000,ar +25.400000,88.000000,ar +25.400000,87.900000,ar +25.500000,87.900000,id +25.600000,87.900000,id +25.600000,88.000000,id +25.500000,88.000000,id +25.600000,88.100000,id +25.500000,88.100000,id +25.400000,88.100000,ar +25.300000,88.100000,ar +25.200000,88.100000,ar +25.100000,88.100000,id +25.200000,88.000000,ar +25.200000,87.900000,id +25.100000,87.900000,id +25.100000,88.000000,id +25.000000,88.000000,id +25.000000,87.900000,id +24.900000,87.900000,id +24.900000,88.000000,id +25.000000,88.100000,id +24.900000,88.100000,id +25.000000,88.200000,id +25.000000,88.300000,id +24.900000,88.300000,en +25.000000,88.400000,en +25.100000,88.400000,en +25.200000,88.400000,en +25.200000,88.300000,id +25.100000,88.300000,id +25.100000,88.200000,id +25.200000,88.200000,ar +25.300000,88.200000,ar +25.400000,88.300000,id +25.400000,88.200000,ar +25.500000,88.200000,id +25.600000,88.200000,id +25.600000,88.300000,id +25.500000,88.300000,id +25.500000,88.400000,en +25.600000,88.400000,en +25.400000,88.600000,en +25.500000,88.500000,en +25.400000,88.700000,en +25.300000,88.700000,en +24.400000,88.200000,en +24.200000,88.500000,en +24.200000,88.600000,en +24.300000,88.600000,en +24.300000,88.500000,en +24.300000,88.700000,hi +24.200000,88.700000,en +25.200000,88.800000,en +25.300000,88.800000,en +25.300000,88.900000,en +25.400000,88.800000,en +25.500000,88.800000,hi +25.500000,89.900000,en +25.600000,89.900000,en +25.400000,89.900000,en +23.200000,88.800000,en +23.200000,88.900000,en +23.100000,88.800000,en +23.000000,88.800000,en +22.900000,88.800000,en +22.800000,88.900000,en +22.800000,88.800000,en +22.700000,88.900000,en +21.600000,89.100000,en +21.400000,88.800000,en +21.500000,88.800000,en +21.600000,88.800000,en +21.600000,88.900000,en +21.500000,88.900000,en +21.500000,89.000000,en +21.600000,89.000000,en +21.700000,89.000000,en +21.800000,89.000000,en +21.800000,88.900000,en +21.700000,88.900000,en +21.700000,88.800000,en +21.900000,88.800000,en +21.900000,88.900000,en +22.000000,88.900000,en +22.000000,88.800000,en +22.100000,88.800000,en +22.200000,88.800000,en +22.200000,88.900000,en +22.100000,88.900000,en +22.100000,89.000000,hi +22.200000,89.000000,hi +22.000000,89.000000,en +21.900000,89.000000,en +22.400000,88.900000,en +22.300000,88.900000,en +22.300000,88.800000,en +22.500000,88.900000,en +22.600000,88.900000,en +22.500000,88.700000,id +22.600000,88.700000,id +22.600000,88.600000,id +22.600000,88.500000,id +22.500000,88.500000,id +22.500000,88.600000,id +22.400000,88.600000,id +22.400000,88.500000,id +22.300000,88.500000,id +22.300000,88.600000,id +22.300000,88.700000,en +22.400000,88.700000,id +22.200000,88.700000,en +22.100000,88.700000,en +21.900000,88.700000,en +22.000000,88.700000,en +22.000000,88.600000,en +21.900000,88.600000,en +22.100000,88.600000,en +22.200000,88.600000,en +21.900000,88.200000,en +22.000000,88.200000,en +22.300000,88.200000,id +22.400000,88.200000,id +22.400000,88.300000,id +22.300000,88.300000,id +22.300000,88.400000,id +22.400000,88.400000,id +22.500000,88.400000,id +22.600000,88.400000,id +22.600000,88.300000,id +22.500000,88.300000,id +22.500000,88.200000,id +22.600000,88.200000,id +22.600000,88.100000,id +22.500000,88.100000,id +22.400000,88.100000,id +22.300000,88.100000,id +22.400000,88.000000,id +22.300000,88.000000,id +22.300000,87.900000,id +22.400000,87.900000,id +22.500000,87.900000,id +22.500000,88.000000,id +22.600000,88.000000,id +22.600000,87.900000,id +21.900000,87.600000,or +22.000000,87.800000,en +21.900000,87.800000,en +21.900000,87.900000,en +21.900000,88.000000,en +22.000000,88.000000,en +22.000000,87.900000,en +22.000000,88.100000,en +21.900000,88.100000,en +21.800000,88.100000,en +21.700000,88.100000,en +21.600000,88.100000,en +21.500000,88.100000,en +21.600000,88.000000,en +21.500000,88.000000,en +21.500000,87.900000,en +21.600000,87.900000,en +21.700000,87.900000,en +21.700000,88.000000,en +21.800000,88.000000,en +21.800000,87.900000,en +21.800000,87.800000,en +21.700000,87.800000,en +21.700000,87.700000,en +21.800000,87.700000,en +21.800000,87.600000,or +21.700000,87.600000,or +21.600000,87.600000,or +21.500000,87.600000,or +21.500000,87.700000,en +21.600000,87.700000,en +21.600000,87.800000,en +21.500000,87.800000,en +21.400000,87.800000,or +21.300000,87.800000,or +21.300000,87.700000,or +21.400000,87.700000,en +21.400000,87.600000,en +21.300000,87.600000,or +21.200000,87.600000,or +21.100000,87.600000,en +21.100000,87.700000,en +21.200000,87.700000,or +21.200000,87.800000,or +21.100000,87.800000,en +21.100000,87.900000,en +21.100000,88.000000,en +21.200000,88.000000,en +21.200000,87.900000,or +21.300000,87.900000,or +21.400000,87.900000,or +21.400000,88.000000,en +21.300000,88.000000,en +21.400000,88.100000,en +21.300000,88.100000,en +21.200000,88.100000,en +21.100000,88.100000,en +21.100000,88.200000,en +21.200000,88.200000,en +21.200000,88.300000,en +21.100000,88.300000,en +21.200000,88.400000,en +21.300000,88.400000,en +21.400000,88.400000,en +21.400000,88.300000,en +21.300000,88.300000,en +21.300000,88.200000,en +21.400000,88.200000,en +21.500000,88.200000,en +21.500000,88.300000,en +21.600000,88.300000,en +21.600000,88.200000,en +21.700000,88.200000,en +21.800000,88.200000,en +21.800000,88.300000,en +21.700000,88.300000,en +21.700000,88.400000,en +21.800000,88.400000,en +21.600000,88.400000,en +21.500000,88.400000,en +21.500000,88.500000,en +21.500000,88.600000,en +21.600000,88.600000,en +21.600000,88.500000,en +21.700000,88.500000,en +21.800000,88.500000,en +21.800000,88.600000,en +21.700000,88.600000,en +21.700000,88.700000,en +21.800000,88.700000,en +21.600000,88.700000,en +21.500000,88.700000,en +21.400000,88.700000,en +21.400000,88.600000,en +21.400000,88.500000,en +21.300000,88.500000,en +21.300000,88.600000,en +21.200000,88.500000,en +21.000000,88.200000,or +21.000000,88.100000,or +20.800000,87.900000,or +20.900000,87.900000,or +20.900000,88.000000,or +21.000000,88.000000,or +21.000000,87.900000,or +21.000000,87.800000,or +20.900000,87.800000,or +20.900000,87.700000,or +21.000000,87.700000,or +20.900000,87.600000,or +20.800000,87.600000,or +20.700000,87.600000,or +20.700000,87.700000,or +20.800000,87.700000,or +20.800000,87.800000,or +20.600000,87.600000,or +19.500000,86.500000,en +19.500000,86.400000,en +19.500000,86.300000,or +19.400000,86.300000,or +19.400000,86.400000,bn +19.300000,86.300000,or +18.100000,85.000000,or +18.300000,85.200000,or +18.300000,85.100000,or +18.200000,85.100000,or +18.200000,85.000000,or +18.300000,85.000000,or +18.400000,85.000000,or +18.400000,85.100000,or +18.500000,85.100000,or +18.500000,85.000000,bn +18.600000,85.000000,bn +18.700000,85.000000,bn +18.700000,85.100000,bn +18.600000,85.100000,bn +18.600000,85.200000,or +18.500000,85.200000,or +18.400000,85.200000,or +18.400000,85.300000,or +18.400000,85.400000,or +18.500000,85.400000,or +18.500000,85.300000,or +18.600000,85.300000,or +18.700000,85.400000,or +18.600000,85.400000,or +18.600000,85.500000,or +18.700000,85.500000,or +18.700000,85.600000,or +18.600000,85.600000,or +18.500000,85.500000,or +18.300000,85.300000,or +18.700000,85.700000,te +18.800000,85.700000,bn +18.900000,85.700000,bn +19.000000,85.700000,bn +19.000000,85.800000,bn +19.100000,85.800000,bn +19.100000,85.900000,bn +19.000000,85.900000,bn +18.900000,85.900000,or +18.900000,85.800000,bn +18.800000,85.800000,bn +19.100000,86.100000,bn +19.000000,86.000000,bn +19.100000,86.000000,bn +19.200000,86.000000,bn +19.300000,86.000000,or +19.200000,86.100000,bn +19.200000,86.200000,bn +19.300000,86.200000,or +19.300000,86.100000,or +19.400000,86.100000,or +19.400000,86.200000,or +19.500000,86.200000,or +19.500000,86.100000,or +19.400000,86.000000,or +19.500000,86.000000,or +19.500000,85.900000,or +19.500000,85.800000,or +19.400000,85.800000,or +19.400000,85.900000,or +19.300000,85.900000,or +19.200000,85.900000,bn +19.300000,85.800000,or +19.300000,85.700000,or +19.200000,85.700000,bn +19.400000,85.700000,or +19.500000,85.700000,or +19.400000,85.600000,or +19.400000,85.500000,or +19.500000,85.400000,bn +19.500000,85.300000,bn +19.400000,85.300000,bn +19.300000,85.400000,or +19.300000,85.300000,en +19.200000,85.300000,te +19.200000,85.400000,bn +19.200000,85.500000,bn +19.300000,85.500000,or +19.300000,85.600000,or +19.200000,85.600000,bn +19.100000,85.600000,bn +19.100000,85.500000,bn +19.000000,85.500000,bn +19.000000,85.600000,en +18.900000,85.600000,te +18.800000,85.600000,te +18.800000,85.500000,or +18.900000,85.500000,bn +18.900000,85.400000,bn +18.800000,85.400000,bn +18.800000,85.300000,te +18.900000,85.300000,te +19.000000,85.300000,te +19.000000,85.400000,bn +19.100000,85.400000,bn +19.100000,85.300000,te +19.100000,85.200000,te +19.000000,85.200000,te +18.900000,85.200000,te +18.800000,85.200000,te +18.900000,85.100000,te +18.800000,85.100000,te +18.800000,85.000000,or +18.900000,85.000000,or +19.000000,85.100000,te +19.100000,85.100000,bn +19.100000,85.000000,te +19.200000,85.000000,te +19.300000,85.000000,te +19.300000,85.100000,bn +19.200000,85.100000,bn +19.200000,85.200000,bn +19.300000,85.200000,bn +19.400000,85.200000,bn +19.500000,85.200000,bn +19.500000,85.100000,or +19.400000,85.100000,bn +19.400000,85.000000,bn +19.500000,85.000000,bn +19.600000,85.100000,bn +19.600000,85.000000,bn +19.700000,85.000000,bn +19.800000,85.000000,bn +19.800000,85.100000,bn +19.700000,85.100000,bn +19.800000,85.200000,bn +19.700000,85.200000,bn +19.600000,85.200000,bn +19.600000,85.300000,bn +19.700000,85.400000,bn +19.600000,85.400000,bn +19.600000,85.500000,en +19.600000,85.600000,or +19.700000,85.600000,or +19.700000,85.500000,bn +19.800000,85.600000,or +19.800000,85.500000,bn +19.800000,85.400000,bn +19.700000,85.300000,bn +19.800000,85.300000,bn +19.900000,85.300000,bn +20.000000,85.300000,bn +20.000000,85.400000,bn +19.900000,85.400000,bn +19.900000,85.500000,bn +19.900000,85.600000,or +20.000000,85.600000,bn +20.000000,85.500000,bn +20.100000,85.500000,bn +20.100000,85.600000,bn +20.200000,85.600000,bn +20.200000,85.500000,bn +20.200000,85.400000,bn +20.100000,85.400000,bn +20.100000,85.300000,bn +20.200000,85.300000,bn +20.200000,85.200000,en +20.100000,85.200000,bn +20.000000,85.200000,bn +19.900000,85.200000,bn +20.000000,85.100000,bn +19.900000,85.100000,bn +19.900000,85.000000,bn +20.000000,85.000000,bn +20.100000,85.000000,en +20.100000,85.100000,en +20.200000,85.100000,en +20.200000,85.000000,en +20.300000,85.000000,en +20.400000,85.000000,en +20.400000,85.100000,en +20.300000,85.100000,en +20.300000,85.200000,en +20.400000,85.200000,en +20.500000,85.200000,en +20.600000,85.200000,bn +20.600000,85.100000,bn +20.500000,85.100000,en +20.500000,85.000000,en +20.600000,85.000000,bn +20.700000,85.000000,bn +20.700000,85.100000,bn +20.800000,85.100000,bn +20.800000,85.000000,bn +20.900000,85.000000,bn +21.000000,85.000000,bn +21.000000,85.100000,bn +20.900000,85.100000,bn +21.000000,85.200000,bn +20.900000,85.200000,bn +20.800000,85.200000,bn +20.700000,85.200000,bn +20.700000,85.300000,bn +20.700000,85.400000,bn +20.800000,85.400000,bn +20.800000,85.300000,bn +20.900000,85.300000,bn +21.000000,85.300000,bn +21.000000,85.400000,bn +20.900000,85.400000,bn +20.900000,85.500000,en +21.000000,85.500000,en +21.000000,85.600000,en +20.900000,85.600000,en +20.800000,85.600000,en +20.800000,85.500000,en +20.700000,85.500000,en +20.700000,85.600000,id +20.600000,85.600000,bn +20.500000,85.600000,bn +20.500000,85.500000,en +20.600000,85.500000,en +20.600000,85.400000,bn +20.600000,85.300000,bn +20.500000,85.300000,en +20.500000,85.400000,en +20.400000,85.400000,en +20.400000,85.300000,en +20.300000,85.300000,en +20.300000,85.400000,bn +20.300000,85.500000,bn +20.400000,85.500000,bn +20.400000,85.600000,bn +20.300000,85.600000,bn +20.400000,85.700000,bn +20.300000,85.700000,bn +20.300000,85.800000,bn +20.300000,85.900000,bn +20.400000,85.900000,bn +20.400000,85.800000,bn +20.500000,85.800000,bn +20.500000,85.900000,bn +20.600000,85.900000,bn +20.600000,85.800000,bn +20.600000,85.700000,bn +20.500000,85.700000,bn +20.700000,85.700000,bn +20.800000,85.700000,en +20.900000,85.700000,en +20.900000,85.800000,bn +21.000000,85.800000,bn +21.000000,85.900000,bn +20.900000,85.900000,bn +20.800000,85.900000,bn +20.800000,85.800000,bn +20.700000,85.800000,bn +20.700000,85.900000,bn +20.700000,86.000000,bn +20.800000,86.000000,bn +20.900000,86.000000,bn +21.000000,86.000000,bn +20.900000,86.100000,bn +21.000000,86.100000,bn +21.000000,86.200000,bn +20.900000,86.200000,bn +20.800000,86.200000,bn +20.800000,86.100000,bn +20.700000,86.100000,bn +20.700000,86.200000,bn +20.600000,86.200000,id +20.500000,86.200000,or +20.500000,86.100000,bn +20.600000,86.100000,bn +20.600000,86.000000,bn +20.500000,86.000000,bn +20.400000,86.000000,bn +20.300000,86.000000,bn +20.300000,86.100000,bn +20.400000,86.100000,bn +20.400000,86.200000,id +20.300000,86.200000,id +20.200000,86.200000,en +20.200000,86.100000,bn +20.100000,86.100000,bn +20.100000,86.200000,bn +20.000000,86.200000,bn +20.000000,86.100000,bn +20.000000,86.000000,bn +20.100000,86.000000,bn +20.200000,86.000000,bn +20.200000,85.900000,bn +20.100000,85.900000,bn +20.100000,85.800000,bn +20.200000,85.800000,bn +20.200000,85.700000,bn +20.100000,85.700000,bn +20.000000,85.700000,bn +19.900000,85.700000,or +20.000000,85.800000,bn +20.000000,85.900000,bn +19.900000,85.900000,or +19.800000,85.900000,or +19.800000,85.800000,or +19.900000,85.800000,bn +19.800000,85.700000,bn +19.700000,85.700000,or +19.600000,85.700000,or +19.600000,85.800000,or +19.700000,85.800000,or +19.700000,85.900000,or +19.600000,85.900000,or +19.600000,86.000000,or +19.700000,86.000000,or +19.800000,86.000000,or +19.900000,86.000000,bn +19.800000,86.100000,bn +19.900000,86.100000,bn +19.900000,86.200000,bn +19.800000,86.200000,bn +19.700000,86.200000,bn +19.700000,86.100000,bn +19.600000,86.100000,bn +19.600000,86.200000,bn +19.600000,86.300000,bn +19.700000,86.300000,en +19.700000,86.400000,bn +19.600000,86.400000,en +19.600000,86.500000,en +19.700000,86.500000,en +19.900000,86.400000,en +19.800000,86.400000,en +19.800000,86.300000,en +19.900000,86.300000,or +20.000000,86.300000,en +20.000000,86.400000,en +20.100000,86.400000,bn +20.100000,86.300000,en +20.200000,86.300000,en +20.200000,86.400000,bn +20.200000,86.500000,bn +20.100000,86.500000,bn +20.100000,86.700000,or +20.100000,86.600000,bn +20.200000,86.600000,bn +20.200000,86.700000,bn +20.200000,86.800000,or +20.300000,86.800000,or +20.300000,86.900000,or +20.200000,86.900000,or +20.100000,86.900000,bn +20.100000,86.800000,or +20.000000,86.800000,bn +20.000000,86.900000,bn +19.900000,86.900000,bn +19.800000,86.800000,bn +19.900000,86.800000,bn +19.900000,86.700000,bn +19.800000,86.600000,bn +19.800000,86.700000,bn +19.700000,86.700000,en +19.700000,86.600000,en +19.600000,86.600000,en +20.300000,87.100000,or +20.200000,87.100000,or +20.100000,87.100000,or +20.100000,87.000000,bn +20.000000,87.000000,bn +20.200000,87.000000,bn +20.300000,87.000000,bn +20.400000,87.100000,or +21.000000,87.500000,en +21.000000,87.400000,en +21.000000,87.300000,bn +21.000000,87.200000,bn +21.000000,86.900000,en +20.900000,86.900000,en +20.900000,86.800000,en +21.000000,86.800000,bn +21.000000,86.700000,bn +21.000000,86.600000,bn +20.900000,86.600000,bn +20.900000,86.700000,bn +20.800000,86.700000,en +20.800000,86.600000,bn +20.700000,86.600000,en +20.700000,86.700000,en +20.700000,86.800000,en +20.800000,86.800000,en +20.600000,86.800000,en +20.500000,86.800000,bn +20.500000,86.900000,or +20.400000,86.900000,or +20.400000,86.800000,bn +20.400000,86.700000,bn +20.300000,86.700000,or +20.300000,86.600000,or +20.400000,86.600000,bn +20.500000,86.600000,bn +20.500000,86.700000,bn +20.600000,86.700000,en +20.600000,86.600000,en +20.600000,86.500000,en +20.500000,86.500000,bn +20.400000,86.500000,bn +20.300000,86.500000,bn +20.400000,86.400000,id +20.300000,86.400000,bn +20.300000,86.300000,id +20.400000,86.300000,id +20.500000,86.300000,id +20.500000,86.400000,id +20.600000,86.400000,id +20.600000,86.300000,id +20.700000,86.300000,id +20.800000,86.300000,bn +20.800000,86.400000,bn +20.700000,86.400000,id +20.700000,86.500000,en +20.800000,86.500000,bn +20.900000,86.500000,bn +21.000000,86.500000,bn +21.000000,86.400000,bn +20.900000,86.400000,bn +20.900000,86.300000,bn +21.000000,86.300000,bn +21.100000,86.300000,bn +21.200000,86.300000,bn +21.200000,86.400000,bn +21.100000,86.400000,bn +21.100000,86.500000,bn +21.200000,86.500000,bn +21.300000,86.500000,bn +21.400000,86.500000,bn +21.400000,86.400000,bn +21.300000,86.400000,bn +21.300000,86.300000,bn +21.400000,86.300000,en +21.500000,86.400000,en +21.600000,86.400000,en +21.800000,86.400000,en +21.700000,86.400000,en +21.800000,86.500000,bn +21.700000,86.500000,bn +21.600000,86.500000,en +21.500000,86.500000,bn +21.500000,86.600000,bn +21.500000,86.700000,bn +21.600000,86.700000,bn +21.600000,86.600000,bn +21.700000,86.600000,bn +21.800000,86.600000,bn +21.800000,86.700000,bn +21.700000,86.700000,bn +21.700000,86.800000,bn +21.800000,86.800000,bn +21.800000,86.900000,bn +21.700000,86.900000,bn +21.600000,86.900000,bn +21.600000,86.800000,bn +21.500000,86.800000,bn +21.500000,86.900000,bn +21.400000,86.900000,bn +21.300000,86.900000,bn +21.300000,86.800000,bn +21.400000,86.800000,bn +21.400000,86.700000,bn +21.400000,86.600000,bn +21.300000,86.600000,bn +21.300000,86.700000,bn +21.200000,86.700000,bn +21.200000,86.600000,bn +21.100000,86.600000,bn +21.100000,86.700000,bn +21.100000,86.800000,bn +21.200000,86.800000,bn +21.200000,86.900000,bn +21.100000,86.900000,bn +21.100000,87.000000,en +21.200000,87.000000,bn +21.400000,87.000000,bn +21.300000,87.000000,bn +21.300000,87.100000,bn +21.400000,87.100000,bn +21.400000,87.200000,or +21.300000,87.200000,en +21.200000,87.200000,or +21.100000,87.200000,or +21.100000,87.300000,or +21.200000,87.300000,or +21.100000,87.400000,or +21.100000,87.500000,en +21.200000,87.500000,or +21.200000,87.400000,or +21.300000,87.400000,or +21.300000,87.500000,or +21.400000,87.500000,en +21.400000,87.400000,en +21.300000,87.300000,or +21.400000,87.300000,en +21.500000,87.300000,or +21.600000,87.300000,or +21.500000,87.400000,or +21.500000,87.500000,or +21.600000,87.500000,or +21.600000,87.400000,or +21.700000,87.400000,or +21.700000,87.500000,or +21.800000,87.500000,or +21.800000,87.400000,or +21.700000,87.300000,or +21.800000,87.300000,or +21.800000,87.200000,or +21.800000,87.100000,or +21.700000,87.100000,bn +21.700000,87.200000,or +21.600000,87.200000,or +21.500000,87.200000,bn +21.500000,87.100000,bn +21.600000,87.100000,bn +21.600000,87.000000,or +21.500000,87.000000,or +21.700000,87.000000,bn +21.800000,87.000000,or +21.900000,87.000000,or +22.000000,87.000000,or +22.200000,87.000000,en +22.100000,87.000000,or +22.100000,87.100000,te +22.200000,87.100000,te +22.200000,87.200000,te +22.100000,87.200000,te +22.000000,87.200000,or +22.000000,87.100000,or +21.900000,87.100000,or +21.900000,87.200000,or +21.900000,87.300000,or +22.000000,87.300000,or +21.900000,87.400000,or +21.900000,87.500000,or +22.000000,87.400000,or +22.100000,87.400000,te +22.100000,87.500000,te +22.200000,87.500000,te +22.200000,87.400000,te +22.100000,87.300000,te +22.200000,87.300000,te +22.300000,87.300000,te +22.400000,87.300000,te +22.300000,87.400000,te +22.300000,87.500000,te +22.400000,87.500000,te +22.400000,87.400000,te +22.500000,87.400000,te +22.500000,87.500000,te +22.500000,87.300000,te +22.500000,87.100000,te +22.500000,87.200000,te +22.400000,87.200000,te +22.300000,87.200000,te +22.300000,87.100000,te +22.400000,87.100000,te +22.300000,87.000000,en +22.500000,86.900000,en +22.500000,86.800000,en +22.500000,86.700000,en +22.500000,86.600000,en +22.300000,86.600000,en +22.300000,86.700000,en +22.300000,86.800000,en +22.300000,86.900000,en +22.200000,86.900000,or +22.200000,86.800000,or +22.100000,86.800000,or +22.100000,86.900000,or +22.000000,86.900000,or +21.900000,86.900000,bn +21.900000,86.800000,bn +22.000000,86.800000,bn +22.000000,86.700000,bn +21.900000,86.700000,bn +21.900000,86.600000,bn +22.000000,86.600000,bn +22.100000,86.600000,bn +22.100000,86.700000,or +22.200000,86.700000,or +22.200000,86.600000,or +22.200000,86.500000,or +22.100000,86.500000,bn +22.000000,86.500000,bn +21.900000,86.500000,bn +22.300000,86.300000,en +22.300000,86.400000,en +22.300000,86.500000,en +22.400000,86.500000,en +22.500000,86.500000,en +22.500000,86.400000,en +22.400000,86.400000,en +22.400000,86.300000,en +22.500000,86.300000,en +22.500000,86.200000,en +22.500000,86.100000,en +22.400000,86.200000,en +22.000000,85.900000,en +22.000000,85.800000,en +21.900000,85.700000,en +21.900000,85.800000,en +21.900000,85.900000,en +21.900000,86.000000,en +22.000000,86.000000,en +22.000000,86.200000,en +22.000000,86.100000,en +21.900000,86.100000,en +21.900000,86.200000,en +21.800000,86.200000,en +21.700000,86.200000,en +21.700000,86.100000,en +21.800000,86.100000,en +21.800000,86.000000,en +21.700000,86.000000,en +21.600000,86.000000,en +21.600000,86.100000,en +21.600000,86.200000,en +21.400000,86.200000,en +21.400000,86.100000,en +21.300000,86.100000,en +21.300000,86.200000,en +21.200000,86.200000,bn +21.100000,86.200000,bn +21.100000,86.100000,bn +21.200000,86.100000,bn +21.100000,86.000000,bn +21.200000,86.000000,bn +21.300000,86.000000,en +21.400000,86.000000,en +21.400000,85.900000,en +21.400000,85.800000,bn +21.300000,85.900000,en +21.200000,85.900000,bn +21.100000,85.900000,bn +21.100000,85.800000,bn +21.200000,85.800000,bn +21.400000,85.700000,bn +21.600000,85.700000,bn +21.500000,85.700000,bn +21.500000,85.800000,bn +21.600000,85.900000,en +21.600000,85.800000,bn +21.700000,85.800000,bn +21.700000,85.900000,en +21.800000,85.900000,en +21.800000,85.800000,bn +21.800000,85.700000,bn +21.700000,85.700000,bn +21.700000,85.600000,bn +21.700000,85.500000,bn +21.700000,85.400000,bn +21.600000,85.400000,bn +21.500000,85.400000,bn +21.500000,85.500000,bn +21.600000,85.500000,bn +21.600000,85.600000,bn +21.500000,85.600000,bn +21.400000,85.600000,bn +21.400000,85.500000,bn +21.100000,85.500000,en +21.200000,85.400000,en +21.100000,85.400000,en +21.100000,85.300000,en +21.200000,85.300000,en +21.300000,85.300000,en +21.400000,85.400000,bn +21.300000,85.200000,en +21.200000,85.200000,en +21.100000,85.200000,en +21.200000,85.100000,en +21.100000,85.100000,en +21.100000,85.000000,en +21.200000,85.000000,en +21.300000,85.000000,en +21.300000,85.100000,en +22.000000,85.000000,bn +22.100000,85.000000,bn +22.100000,85.100000,or +22.000000,85.100000,or +22.100000,85.200000,bn +22.000000,85.200000,bn +21.900000,85.200000,bn +21.800000,85.200000,en +21.800000,85.300000,en +21.900000,85.300000,bn +21.900000,85.400000,bn +21.800000,85.400000,bn +21.800000,85.500000,bn +21.800000,85.600000,bn +21.900000,85.600000,bn +21.900000,85.500000,bn +22.000000,85.500000,bn +22.000000,85.600000,bn +22.100000,85.600000,bn +22.100000,85.500000,bn +22.100000,85.400000,bn +22.000000,85.400000,bn +22.000000,85.300000,bn +22.100000,85.300000,bn +22.200000,85.300000,bn +22.300000,85.300000,bn +22.300000,85.400000,bn +22.200000,85.400000,bn +22.200000,85.500000,bn +22.200000,85.600000,bn +22.300000,85.600000,bn +22.300000,85.500000,bn +22.300000,85.200000,bn +22.200000,85.200000,bn +22.300000,85.100000,or +22.200000,85.100000,or +22.200000,85.000000,bn +22.300000,85.000000,bn +22.400000,85.000000,bn +22.400000,85.100000,or +22.500000,85.100000,or +22.500000,85.000000,bn +22.500000,84.900000,bn +22.400000,84.900000,bn +22.400000,84.800000,bn +22.500000,84.800000,bn +22.500000,84.700000,bn +22.400000,84.700000,bn +22.300000,84.700000,bn +22.200000,84.700000,bn +22.200000,84.800000,bn +22.300000,84.800000,bn +22.300000,84.900000,or +22.200000,84.900000,or +22.100000,84.900000,bn +22.100000,84.800000,bn +22.000000,84.800000,bn +22.000000,84.900000,bn +22.000000,84.700000,bn +22.100000,84.700000,bn +22.100000,84.600000,bn +22.100000,84.500000,en +22.000000,84.500000,en +22.000000,84.600000,bn +22.000000,84.400000,en +22.100000,84.400000,en +22.300000,84.400000,en +22.200000,84.400000,en +22.200000,84.500000,en +22.200000,84.600000,or +22.300000,84.600000,bn +22.300000,84.500000,en +22.400000,84.500000,en +22.400000,84.600000,bn +22.500000,84.600000,en +22.400000,84.400000,en +22.300000,84.200000,en +22.200000,84.200000,en +22.300000,84.100000,en +22.200000,84.100000,en +22.200000,84.000000,en +22.300000,84.000000,en +22.200000,83.800000,en +22.300000,83.800000,en +22.300000,83.900000,en +22.200000,83.900000,en +22.100000,83.900000,bn +22.000000,83.900000,or +22.000000,83.800000,or +22.100000,83.800000,bn +22.000000,83.700000,bn +21.900000,83.700000,bn +21.800000,83.700000,bn +21.800000,83.800000,or +21.900000,83.800000,or +21.900000,83.900000,or +21.800000,83.900000,bn +21.800000,84.000000,or +21.800000,84.100000,or +21.900000,84.100000,or +21.900000,84.000000,or +22.000000,84.000000,or +22.100000,84.000000,bn +22.100000,84.100000,bn +22.000000,84.100000,or +22.100000,84.200000,bn +22.000000,84.200000,or +21.900000,84.200000,or +21.800000,84.200000,or +21.700000,84.200000,bn +21.600000,84.200000,bn +21.500000,84.200000,bn +21.400000,84.200000,bn +21.500000,84.100000,bn +21.400000,84.100000,bn +21.400000,84.000000,bn +21.500000,84.000000,bn +21.600000,84.000000,bn +21.600000,84.100000,bn +21.700000,84.100000,bn +21.700000,84.000000,bn +21.700000,83.900000,bn +21.600000,83.900000,bn +21.600000,83.800000,bn +21.700000,83.800000,bn +21.700000,83.700000,bn +21.600000,83.700000,bn +21.500000,83.700000,fi +21.500000,83.600000,fi +21.400000,83.600000,fi +21.400000,83.700000,fi +21.400000,83.800000,bn +21.500000,83.800000,bn +21.500000,83.900000,bn +21.400000,83.900000,bn +21.300000,83.900000,bn +21.200000,83.800000,fi +21.300000,83.800000,bn +21.300000,83.700000,fi +21.300000,83.600000,fi +21.200000,83.600000,fi +21.200000,83.700000,fi +21.100000,83.700000,fi +21.100000,83.600000,fi +21.000000,83.600000,en +21.000000,83.700000,en +21.000000,83.800000,en +21.100000,83.800000,fi +21.000000,83.900000,en +21.000000,84.000000,en +21.000000,84.100000,en +21.300000,84.000000,bn +21.300000,84.100000,bn +21.300000,84.200000,bn +21.000000,84.200000,en +21.000000,84.300000,en +21.300000,84.900000,en +21.100000,84.800000,en +21.200000,84.900000,en +21.100000,84.900000,en +21.000000,84.900000,bn +21.000000,84.800000,en +20.900000,84.800000,en +20.900000,84.900000,bn +20.800000,84.900000,bn +20.700000,84.900000,bn +20.700000,84.800000,en +20.800000,84.800000,en +20.900000,84.500000,en +21.000000,84.500000,en +21.000000,84.400000,en +20.900000,84.300000,en +20.900000,84.400000,en +20.800000,84.400000,en +20.800000,84.300000,en +20.700000,84.300000,en +20.700000,84.400000,en +20.700000,84.500000,en +20.800000,84.500000,en +20.600000,84.500000,en +20.600000,84.400000,en +20.600000,84.300000,en +20.500000,84.300000,en +20.500000,84.400000,en +20.400000,84.400000,en +20.400000,84.300000,en +20.300000,84.300000,en +20.300000,84.400000,en +20.600000,84.900000,bn +20.300000,84.900000,en +20.200000,84.900000,en +20.100000,84.900000,en +20.100000,84.800000,en +20.100000,84.700000,en +20.000000,84.700000,en +19.900000,84.700000,en +19.900000,84.800000,en +20.000000,84.800000,en +20.000000,84.900000,en +19.900000,84.900000,en +19.800000,84.900000,en +19.800000,84.800000,en +19.700000,84.800000,en +19.700000,84.900000,bn +19.600000,84.900000,bn +19.500000,84.900000,te +19.500000,84.800000,te +19.600000,84.800000,bn +19.600000,84.700000,en +19.500000,84.700000,te +19.700000,84.700000,en +19.800000,84.700000,en +19.800000,84.600000,en +19.800000,84.500000,en +19.700000,84.500000,en +19.700000,84.600000,en +19.600000,84.600000,en +19.500000,84.600000,te +19.500000,84.500000,en +19.600000,84.500000,en +19.600000,84.400000,en +19.500000,84.400000,en +19.700000,84.400000,en +19.800000,84.400000,en +20.000000,84.400000,en +19.900000,84.400000,en +19.900000,84.500000,en +19.900000,84.600000,en +20.000000,84.600000,en +20.000000,84.500000,en +20.100000,84.500000,en +20.100000,84.600000,en +20.100000,84.400000,en +20.500000,83.600000,or +20.500000,83.700000,or +20.600000,83.800000,en +20.600000,83.900000,en +20.300000,84.000000,en +20.400000,84.000000,en +20.400000,84.100000,en +20.300000,84.100000,en +20.300000,84.200000,en +20.400000,84.200000,en +20.500000,84.200000,en +20.600000,84.200000,en +20.600000,84.100000,en +20.500000,84.100000,en +20.500000,84.000000,en +20.600000,84.000000,en +20.700000,84.000000,en +20.800000,84.100000,en +20.700000,84.100000,en +20.700000,84.200000,en +20.800000,84.200000,en +20.900000,84.200000,en +20.900000,84.100000,en +20.800000,84.000000,en +20.900000,84.000000,en +20.900000,83.900000,en +20.900000,83.800000,en +20.800000,83.800000,en +20.800000,83.900000,en +20.700000,83.900000,en +20.700000,83.800000,en +20.700000,83.700000,fi +20.600000,83.700000,fi +20.600000,83.600000,or +20.700000,83.600000,or +20.800000,83.600000,or +20.800000,83.700000,fi +20.900000,83.700000,fi +20.900000,83.600000,or +20.900000,83.500000,or +20.800000,83.500000,or +20.600000,83.500000,or +20.700000,83.500000,or +20.700000,83.400000,or +20.600000,83.400000,or +20.600000,83.300000,or +20.700000,83.300000,or +20.800000,83.300000,or +20.800000,83.400000,or +20.900000,83.400000,or +20.900000,83.300000,or +20.900000,83.000000,ta +20.800000,83.000000,ta +20.500000,83.200000,en +20.400000,83.200000,en +20.400000,83.100000,en +20.500000,83.100000,en +20.500000,83.000000,en +20.400000,83.000000,en +20.300000,83.000000,en +20.200000,83.000000,en +20.200000,83.100000,en +20.300000,83.100000,en +20.300000,83.200000,en +20.200000,83.200000,en +20.300000,83.400000,en +20.300000,83.300000,en +20.400000,83.300000,en +20.500000,83.300000,fi +20.500000,83.400000,fi +20.400000,83.400000,en +20.500000,83.500000,or +20.200000,83.400000,en +20.200000,83.300000,en +20.100000,83.300000,en +20.100000,83.400000,en +20.000000,83.400000,en +20.000000,83.300000,en +19.900000,83.300000,en +19.900000,83.400000,en +19.700000,83.300000,en +19.700000,83.400000,en +19.800000,83.400000,en +19.800000,83.300000,en +19.800000,83.200000,en +19.800000,83.100000,en +19.700000,83.100000,en +19.700000,83.200000,en +19.700000,83.000000,en +19.800000,83.000000,en +20.000000,83.000000,en +19.900000,83.000000,en +19.900000,83.100000,en +19.900000,83.200000,en +20.000000,83.200000,en +20.000000,83.100000,en +20.100000,83.100000,en +20.100000,83.200000,en +20.100000,83.000000,en +20.800000,82.800000,ta +20.800000,82.900000,ta +20.900000,82.900000,ta +20.900000,82.800000,ta +20.900000,82.700000,ta +20.800000,82.700000,ta +20.800000,82.600000,ta +20.900000,82.600000,ta +21.700000,82.800000,mr +21.700000,82.900000,mr +21.200000,82.900000,ta +21.200000,82.800000,ta +21.200000,82.600000,ta +21.200000,82.700000,ta +21.100000,82.700000,ta +21.100000,82.600000,ta +21.000000,82.600000,ta +21.000000,82.700000,ta +21.000000,82.800000,ta +21.100000,82.800000,ta +21.100000,82.900000,ta +21.000000,82.900000,ta +21.000000,83.000000,ta +21.100000,83.000000,ta +21.200000,83.000000,ta +21.100000,83.400000,fi +21.000000,83.400000,en +21.000000,83.500000,en +21.100000,83.500000,fi +21.200000,83.500000,fi +21.300000,83.500000,fi +21.300000,83.400000,fi +21.200000,83.400000,fi +21.500000,83.400000,fi +21.400000,83.400000,fi +21.400000,83.500000,fi +21.500000,83.500000,fi +21.700000,83.000000,mr +21.800000,83.000000,mr +22.000000,83.000000,mr +21.900000,83.000000,mr +22.100000,83.000000,mr +22.100000,82.600000,mr +22.100000,82.700000,mr +22.100000,82.800000,mr +22.100000,82.900000,mr +22.000000,82.900000,mr +22.000000,82.800000,mr +21.900000,82.800000,mr +21.900000,82.900000,mr +21.800000,82.900000,mr +21.800000,82.800000,mr +21.800000,82.700000,mr +21.700000,82.700000,mr +21.700000,82.600000,mr +21.800000,82.600000,mr +21.900000,82.600000,mr +21.900000,82.700000,mr +22.000000,82.700000,mr +22.000000,82.600000,mr +21.700000,80.600000,en +21.600000,80.600000,en +21.600000,80.500000,en +21.700000,80.500000,en +21.800000,80.300000,en +21.800000,80.400000,en +21.700000,80.400000,en +21.600000,80.400000,en +21.600000,80.300000,en +21.700000,80.300000,en +21.700000,80.100000,en +21.800000,80.100000,en +21.800000,80.200000,en +21.800000,79.700000,en +21.800000,79.400000,en +21.800000,79.500000,en +21.700000,79.500000,en +21.700000,79.400000,en +21.600000,79.400000,en +21.600000,79.500000,en +21.600000,79.600000,en +21.700000,79.600000,en +21.700000,79.700000,en +21.600000,79.700000,en +21.700000,79.900000,en +21.700000,79.800000,en +21.800000,79.800000,en +21.800000,79.900000,en +21.800000,80.000000,en +21.700000,80.000000,en +21.200000,80.000000,id +21.300000,80.000000,id +21.300000,79.900000,id +21.200000,79.900000,id +21.200000,79.800000,id +21.300000,79.800000,id +21.500000,79.700000,en +21.400000,79.700000,en +21.400000,79.600000,en +21.500000,79.600000,en +21.500000,79.500000,en +21.500000,79.400000,en +21.400000,79.400000,en +21.400000,79.500000,en +21.300000,79.500000,en +21.300000,79.400000,en +21.200000,79.600000,id +21.300000,79.600000,id +21.300000,79.700000,id +21.200000,79.700000,id +21.100000,79.700000,id +21.000000,79.700000,id +21.000000,79.600000,id +21.100000,79.600000,id +20.800000,79.400000,en +20.800000,79.500000,en +20.900000,79.600000,id +20.900000,79.700000,id +20.900000,79.900000,id +20.900000,79.800000,id +21.000000,79.800000,id +21.100000,79.800000,id +21.100000,79.900000,id +21.000000,79.900000,id +21.000000,80.000000,id +21.100000,80.000000,id +20.900000,80.000000,id +20.900000,80.100000,en +21.000000,80.200000,en +20.900000,80.200000,en +20.900000,80.300000,en +20.900000,80.400000,en +21.000000,80.400000,en +21.000000,80.300000,en +21.100000,80.300000,en +21.100000,80.400000,en +21.200000,80.400000,en +21.100000,80.200000,en +21.000000,80.100000,en +21.100000,80.100000,en +21.200000,80.100000,en +21.200000,80.200000,en +21.500000,80.300000,en +21.500000,80.400000,en +21.200000,80.300000,en +21.500000,80.500000,en +21.500000,80.600000,en +21.500000,80.700000,en +21.400000,80.700000,en +21.200000,80.500000,en +21.100000,80.500000,en +21.000000,80.600000,en +21.000000,80.500000,en +20.900000,80.500000,en +20.900000,80.600000,en +20.900000,80.700000,en +20.700000,80.700000,en +20.800000,80.700000,en +20.800000,80.600000,en +20.800000,80.500000,en +20.700000,80.500000,en +20.700000,80.600000,en +20.600000,80.600000,en +20.600000,80.500000,en +20.500000,80.500000,en +20.500000,80.600000,en +20.500000,80.700000,en +20.600000,80.700000,en +20.100000,80.500000,en +20.200000,80.500000,en +20.300000,80.500000,en +20.400000,80.500000,en +20.400000,80.400000,en +20.400000,80.300000,en +20.300000,80.300000,en +20.300000,80.400000,en +20.200000,80.400000,en +20.100000,80.400000,en +20.100000,80.300000,en +20.200000,80.300000,en +20.200000,80.200000,en +20.100000,80.200000,en +20.100000,80.100000,en +20.200000,80.100000,en +20.300000,80.100000,en +20.300000,80.200000,en +20.400000,80.200000,en +20.400000,80.100000,en +20.500000,80.100000,en +20.600000,80.100000,en +20.600000,80.200000,en +20.500000,80.200000,en +20.500000,80.300000,en +20.500000,80.400000,en +20.600000,80.400000,en +20.600000,80.300000,en +20.700000,80.300000,en +20.700000,80.400000,en +20.800000,80.400000,en +20.800000,80.300000,en +20.800000,80.200000,en +20.700000,80.200000,en +20.700000,80.100000,en +20.800000,80.100000,en +20.800000,80.000000,en +20.700000,80.000000,en +20.500000,80.000000,en +20.600000,80.000000,en +20.600000,79.900000,en +20.500000,79.900000,en +20.500000,79.800000,en +20.700000,79.900000,en +20.700000,79.500000,en +20.700000,79.400000,en +20.600000,79.400000,en +20.600000,79.500000,en +20.500000,79.500000,en +20.500000,79.400000,en +20.400000,79.400000,en +20.400000,79.500000,en +20.500000,79.600000,en +20.500000,79.700000,en +20.400000,79.700000,en +20.300000,79.700000,en +20.300000,79.600000,en +20.400000,79.600000,en +20.300000,79.400000,en +20.200000,79.400000,en +20.300000,79.500000,en +20.200000,79.500000,en +20.100000,79.400000,en +20.100000,79.500000,en +20.100000,79.600000,en +20.200000,79.600000,en +20.200000,79.700000,en +20.100000,79.700000,en +20.100000,79.800000,en +20.100000,79.900000,en +20.200000,79.900000,en +20.200000,79.800000,en +20.300000,79.800000,en +20.400000,79.800000,en +20.400000,79.900000,en +20.300000,79.900000,en +20.300000,80.000000,en +20.400000,80.000000,en +20.200000,80.000000,en +20.100000,80.000000,en +20.000000,80.000000,en +19.900000,80.000000,en +19.700000,80.000000,en +19.800000,80.000000,en +19.800000,79.900000,en +19.700000,79.900000,te +19.700000,79.800000,te +19.800000,79.800000,en +19.900000,79.800000,en +19.900000,79.900000,en +20.000000,79.900000,en +20.000000,79.800000,en +20.000000,79.700000,en +19.900000,79.700000,en +19.900000,79.600000,en +20.000000,79.600000,en +20.000000,79.500000,te +20.000000,79.400000,te +19.900000,79.400000,te +19.900000,79.500000,te +19.800000,79.500000,te +19.800000,79.400000,te +19.700000,79.400000,te +19.700000,79.500000,te +19.700000,79.600000,te +19.800000,79.600000,en +19.800000,79.700000,en +19.700000,79.700000,te +19.600000,79.700000,te +19.500000,79.700000,mr +19.500000,79.600000,mr +19.600000,79.600000,te +19.600000,79.500000,te +19.600000,79.400000,te +19.500000,79.400000,mr +19.500000,79.500000,mr +19.400000,79.500000,mr +19.400000,79.400000,mr +19.300000,79.400000,en +19.300000,79.500000,en +19.300000,79.600000,en +19.400000,79.600000,mr +19.400000,79.700000,mr +19.300000,79.700000,mr +19.300000,79.800000,mr +19.300000,79.900000,mr +19.400000,79.900000,te +19.400000,79.800000,mr +19.500000,79.800000,te +19.600000,79.800000,te +19.600000,79.900000,te +19.500000,79.900000,te +19.500000,80.000000,te +19.600000,80.000000,te +19.400000,80.000000,te +19.300000,80.000000,te +19.300000,80.100000,te +19.400000,80.100000,te +19.400000,80.200000,en +19.400000,80.300000,en +19.400000,80.400000,en +19.500000,80.400000,en +19.500000,80.300000,en +19.600000,80.400000,en +19.600000,80.300000,en +19.600000,80.200000,en +19.500000,80.200000,en +19.500000,80.100000,te +19.600000,80.100000,en +19.700000,80.100000,en +19.700000,80.200000,en +19.800000,80.200000,en +19.800000,80.100000,en +19.900000,80.100000,en +20.000000,80.100000,en +20.000000,80.200000,en +19.900000,80.200000,en +20.000000,80.300000,en +20.000000,80.400000,en +19.800000,80.400000,en +19.800000,80.300000,en +19.700000,80.300000,en +19.700000,80.400000,en +19.700000,80.500000,en +19.700000,80.800000,en +19.600000,80.800000,en +19.600000,80.700000,en +19.700000,80.700000,en +19.700000,80.600000,en +19.600000,80.500000,en +19.600000,80.600000,en +19.500000,80.600000,en +19.500000,80.500000,en +19.400000,80.600000,en +19.400000,80.700000,en +19.500000,80.700000,en +19.500000,80.800000,en +19.400000,80.800000,en +19.400000,80.900000,en +19.500000,80.900000,en +19.700000,80.900000,en +19.600000,80.900000,en +19.600000,81.000000,en +19.500000,81.000000,en +19.400000,81.000000,en +18.100000,82.200000,en +18.000000,82.200000,en +17.900000,82.200000,en +17.900000,81.600000,en +18.300000,81.200000,en +17.900000,81.500000,en +17.900000,81.400000,en +17.900000,81.300000,en +17.900000,81.200000,en +18.200000,81.000000,en +18.100000,81.000000,en +18.100000,81.100000,en +18.000000,81.100000,en +17.900000,81.100000,ta +17.900000,81.000000,ta +18.000000,81.000000,en +18.000000,80.900000,en +17.900000,80.900000,ta +18.100000,80.900000,en +18.200000,80.900000,en +18.300000,81.000000,en +18.300000,81.100000,en +18.400000,81.000000,en +18.500000,81.000000,en +18.500000,80.900000,en +18.400000,80.900000,en +18.600000,80.900000,en +19.300000,81.100000,en +19.300000,81.000000,en +19.300000,80.900000,en +19.300000,80.800000,en +19.200000,80.800000,en +19.300000,80.700000,en +19.300000,80.600000,en +19.300000,80.500000,en +19.200000,80.500000,en +19.200000,80.600000,en +18.900000,80.300000,en +18.800000,80.300000,en +18.600000,80.300000,en +18.700000,80.300000,en +18.700000,80.200000,mr +18.600000,80.200000,mr +18.600000,80.100000,mr +18.700000,80.100000,mr +18.800000,80.100000,mr +18.800000,80.200000,mr +18.900000,80.200000,mr +18.900000,80.100000,mr +19.000000,80.100000,mr +19.100000,80.100000,mr +19.100000,80.200000,en +19.000000,80.200000,en +19.200000,80.300000,en +19.200000,80.400000,en +19.300000,80.400000,en +19.300000,80.300000,en +19.300000,80.200000,en +19.200000,80.200000,en +19.200000,80.100000,te +19.200000,80.000000,te +19.000000,80.000000,mr +19.100000,80.000000,mr +19.000000,79.900000,mr +19.000000,79.800000,mr +19.100000,79.800000,mr +19.100000,79.900000,mr +19.200000,79.900000,te +19.200000,79.800000,mr +19.200000,79.700000,en +19.100000,79.700000,en +19.100000,79.600000,en +19.200000,79.600000,en +19.200000,79.500000,en +19.200000,79.400000,en +19.100000,79.400000,en +19.100000,79.500000,en +19.000000,79.500000,ta +19.000000,79.400000,ta +18.900000,79.400000,ta +18.900000,79.500000,ta +18.900000,79.600000,ta +19.000000,79.600000,ta +19.000000,79.700000,ta +18.900000,79.700000,ta +18.800000,79.700000,ta +18.800000,79.600000,ta +18.800000,79.500000,ta +18.800000,79.400000,ta +18.700000,79.400000,ta +18.700000,79.500000,ta +18.600000,79.400000,ta +18.600000,79.500000,ta +18.600000,79.600000,ta +18.700000,79.600000,ta +18.700000,79.700000,ta +18.600000,79.700000,ta +18.600000,79.800000,mr +18.600000,79.900000,mr +18.700000,79.900000,mr +18.700000,79.800000,mr +18.800000,79.800000,mr +18.900000,79.800000,mr +18.900000,79.900000,mr +18.800000,79.900000,mr +18.800000,80.000000,mr +18.900000,80.000000,mr +18.700000,80.000000,mr +18.600000,80.000000,mr +18.500000,80.000000,en +18.400000,80.000000,en +18.200000,80.000000,en +18.300000,80.000000,en +18.300000,79.900000,en +18.200000,79.900000,en +18.200000,79.800000,id +18.300000,79.800000,en +18.400000,79.800000,en +18.400000,79.900000,en +18.500000,79.900000,en +18.500000,79.800000,en +18.500000,79.700000,en +18.200000,79.400000,ar +18.200000,79.500000,ar +18.200000,79.600000,ar +18.200000,79.700000,ar +18.100000,79.700000,ar +18.000000,79.700000,ar +18.000000,79.600000,id +18.100000,79.600000,ar +18.100000,79.500000,ar +18.100000,79.400000,ar +18.000000,79.400000,ar +18.000000,79.500000,ar +17.900000,79.500000,ar +17.900000,79.400000,ar +17.800000,79.400000,ar +17.800000,79.500000,ar +17.800000,79.600000,ar +17.900000,79.600000,ar +17.900000,79.700000,ar +17.800000,79.700000,ar +17.800000,79.800000,id +17.800000,79.900000,en +17.900000,79.900000,en +17.900000,79.800000,id +18.000000,79.800000,id +18.100000,79.800000,id +18.100000,79.900000,en +18.000000,79.900000,en +18.000000,80.000000,en +18.100000,80.000000,en +17.900000,80.000000,en +17.800000,80.000000,en +17.800000,80.100000,en +17.900000,80.100000,en +17.900000,80.200000,mr +17.900000,80.300000,mr +17.900000,80.400000,mr +18.000000,80.300000,en +18.000000,80.400000,en +18.100000,80.400000,en +18.100000,80.300000,en +18.100000,80.200000,en +18.000000,80.200000,en +18.000000,80.100000,en +18.100000,80.100000,en +18.200000,80.100000,en +18.200000,80.200000,en +18.300000,80.200000,en +18.300000,80.100000,en +18.400000,80.100000,en +18.500000,80.100000,en +18.500000,80.200000,en +18.400000,80.200000,en +18.400000,80.300000,en +18.500000,80.300000,en +18.500000,80.400000,en +18.400000,80.400000,en +18.300000,80.400000,en +18.300000,80.300000,en +18.200000,80.300000,en +18.200000,80.400000,en +18.200000,80.500000,en +18.200000,80.600000,en +18.300000,80.600000,en +18.300000,80.500000,en +18.400000,80.500000,en +18.500000,80.500000,en +18.500000,80.600000,en +18.400000,80.600000,en +18.500000,80.800000,en +18.200000,80.800000,en +18.100000,80.800000,en +18.100000,80.700000,en +18.200000,80.700000,en +18.100000,80.500000,en +18.100000,80.600000,en +18.000000,80.600000,en +18.000000,80.500000,en +17.900000,80.500000,mr +17.900000,80.600000,mr +17.900000,80.700000,ta +18.000000,80.700000,en +18.000000,80.800000,en +17.900000,80.800000,ta +17.800000,80.800000,ta +17.700000,80.800000,ta +17.700000,80.700000,ta +17.800000,80.700000,ta +17.800000,80.600000,mr +17.800000,80.500000,mr +17.700000,80.500000,mr +17.700000,80.600000,mr +17.600000,80.600000,mr +17.600000,80.500000,mr +17.500000,80.500000,mr +17.500000,80.600000,mr +17.500000,80.700000,ta +17.600000,80.700000,ta +17.600000,80.800000,ta +17.500000,80.800000,ta +17.400000,80.800000,en +17.400000,80.700000,en +17.300000,80.700000,en +17.300000,80.800000,en +17.200000,80.800000,en +17.100000,80.800000,en +17.100000,80.700000,en +17.200000,80.700000,en +17.200000,80.600000,en +17.100000,80.600000,en +17.100000,80.500000,en +17.200000,80.500000,en +17.300000,80.500000,en +17.300000,80.600000,en +17.400000,80.600000,en +17.400000,80.500000,en +17.400000,80.400000,en +17.400000,80.300000,ta +17.300000,80.300000,ta +17.300000,80.400000,en +17.200000,80.400000,en +17.100000,80.400000,en +17.100000,80.300000,ta +17.200000,80.300000,ta +17.200000,80.200000,ta +17.100000,80.200000,ta +17.100000,80.100000,ta +17.200000,80.100000,ta +17.300000,80.100000,ta +17.300000,80.200000,ta +17.400000,80.200000,ta +17.400000,80.100000,ta +17.500000,80.100000,en +17.600000,80.100000,en +17.600000,80.200000,mr +17.500000,80.200000,mr +17.500000,80.300000,mr +17.500000,80.400000,mr +17.600000,80.400000,mr +17.600000,80.300000,mr +17.700000,80.300000,mr +17.700000,80.400000,mr +17.800000,80.400000,mr +17.800000,80.300000,mr +17.800000,80.200000,mr +17.700000,80.200000,mr +17.700000,80.100000,en +17.700000,80.000000,en +17.500000,80.000000,en +17.600000,80.000000,en +17.500000,79.900000,en +17.600000,79.900000,en +17.700000,79.900000,en +17.700000,79.500000,pt +17.700000,79.400000,pt +17.600000,79.400000,pt +17.600000,79.500000,pt +17.500000,79.500000,pt +17.500000,79.400000,pt +17.400000,79.400000,pt +17.400000,79.500000,pt +17.100000,79.900000,ta +17.200000,79.900000,ta +17.400000,79.900000,ta +17.300000,79.900000,ta +17.300000,80.000000,ta +17.400000,80.000000,ta +17.200000,80.000000,ta +17.100000,80.000000,ta +17.000000,80.000000,ta +16.700000,80.000000,en +16.800000,80.000000,en +16.800000,79.900000,en +16.700000,79.900000,en +16.700000,79.800000,en +16.800000,79.800000,en +17.000000,79.900000,ta +16.800000,79.500000,en +16.800000,79.400000,en +16.700000,79.400000,en +16.700000,79.500000,en +16.700000,79.600000,en +16.800000,79.600000,en +16.500000,79.700000,en +16.500000,79.600000,en +16.600000,79.600000,en +16.600000,79.500000,en +16.600000,79.400000,en +16.500000,79.400000,en +16.500000,79.500000,en +16.400000,79.500000,en +16.400000,79.400000,en +16.300000,79.400000,en +16.300000,79.500000,en +16.300000,79.600000,en +16.400000,79.600000,en +16.400000,79.700000,en +16.300000,79.700000,en +16.300000,79.800000,en +16.400000,79.900000,en +16.400000,79.800000,en +16.500000,79.800000,en +16.600000,79.800000,en +16.600000,79.900000,en +16.500000,79.900000,en +16.500000,80.000000,en +16.600000,80.000000,en +16.400000,80.000000,en +16.300000,80.000000,ta +16.400000,80.100000,en +16.400000,80.200000,id +16.400000,80.300000,ar +16.400000,80.400000,ar +16.500000,80.400000,ar +16.500000,80.300000,ar +16.600000,80.400000,ar +16.600000,80.300000,ar +16.600000,80.200000,en +16.500000,80.200000,id +16.500000,80.100000,en +16.600000,80.100000,en +16.700000,80.100000,en +16.700000,80.200000,en +16.800000,80.200000,en +16.800000,80.100000,en +17.000000,80.100000,ta +17.000000,80.200000,ta +17.000000,80.300000,ta +16.800000,80.400000,ar +16.800000,80.300000,ar +16.700000,80.300000,ar +16.700000,80.400000,ar +16.700000,80.500000,ar +16.700000,80.600000,ar +16.800000,80.600000,ar +16.800000,80.500000,ar +16.800000,80.700000,ar +16.700000,80.800000,ta +16.600000,80.800000,ta +16.600000,80.700000,ta +16.700000,80.700000,ta +16.600000,80.500000,ar +16.600000,80.600000,ar +16.500000,80.600000,ta +16.500000,80.500000,ar +16.400000,80.500000,ar +16.400000,80.600000,ta +16.400000,80.700000,ta +16.500000,80.700000,ta +16.500000,80.800000,ta +16.400000,80.800000,ta +16.400000,80.900000,ta +16.500000,80.900000,ta +16.700000,80.900000,ta +16.600000,80.900000,ta +16.600000,81.000000,ta +16.700000,81.000000,ta +16.500000,81.000000,ta +16.400000,81.000000,ta +16.400000,81.200000,en +16.500000,81.200000,en +16.500000,81.300000,en +16.400000,81.300000,en +16.400000,81.400000,en +16.400000,81.500000,en +16.500000,81.500000,en +16.500000,81.400000,en +16.600000,81.400000,ta +16.600000,81.500000,ta +16.700000,81.500000,ta +16.700000,81.400000,ta +16.700000,81.300000,ta +16.600000,81.300000,ta +16.900000,81.300000,ta +16.800000,81.300000,ta +16.800000,81.400000,ta +16.800000,81.500000,ta +16.900000,81.500000,ta +16.900000,81.400000,ta +17.000000,81.400000,ta +17.000000,81.500000,ta +17.100000,81.400000,en +17.100000,81.300000,en +17.000000,81.300000,ta +17.200000,80.900000,en +17.100000,80.900000,en +17.100000,81.000000,en +17.100000,81.100000,en +17.200000,81.100000,en +17.200000,81.000000,en +17.300000,81.000000,en +17.300000,81.100000,en +17.400000,81.100000,en +17.400000,81.000000,en +17.400000,80.900000,en +17.300000,80.900000,en +17.500000,80.900000,ta +17.600000,80.900000,ta +17.800000,80.900000,ta +17.700000,80.900000,ta +17.700000,81.000000,ta +17.800000,81.000000,ta +17.800000,81.100000,ta +17.700000,81.100000,ta +17.600000,81.100000,ta +17.600000,81.000000,ta +17.500000,81.000000,ta +17.500000,81.100000,ta +17.600000,81.300000,en +17.600000,81.200000,en +17.700000,81.200000,en +17.800000,81.200000,en +17.800000,81.300000,en +17.700000,81.300000,en +17.700000,81.400000,en +17.800000,81.400000,en +17.800000,81.500000,en +17.700000,81.500000,en +17.600000,81.500000,en +17.600000,81.400000,en +17.500000,81.400000,en +17.500000,81.500000,en +17.400000,81.500000,en +17.300000,81.500000,en +17.300000,81.400000,en +17.400000,81.400000,en +17.400000,81.300000,en +17.400000,81.200000,en +17.300000,81.200000,en +17.300000,81.300000,en +17.200000,81.300000,en +17.200000,81.200000,en +17.100000,81.200000,en +17.200000,81.400000,en +17.200000,81.500000,en +17.200000,81.600000,en +17.300000,81.600000,en +17.200000,81.700000,en +17.200000,81.800000,en +17.300000,81.800000,en +17.300000,81.700000,en +17.400000,81.700000,en +17.400000,81.800000,en +17.400000,81.600000,en +17.500000,81.600000,en +17.600000,81.600000,en +17.700000,81.600000,en +17.800000,81.600000,en +17.500000,81.700000,en +17.500000,81.800000,en +17.500000,82.200000,en +17.400000,82.200000,en +17.400000,82.100000,en +17.500000,82.100000,en +17.500000,82.000000,en +17.500000,81.900000,en +17.400000,81.900000,en +17.400000,82.000000,en +17.300000,82.000000,en +17.300000,81.900000,en +17.200000,81.900000,en +17.200000,82.000000,ar +17.200000,82.100000,ar +17.300000,82.100000,en +17.300000,82.200000,en +17.200000,82.200000,ar +17.100000,82.200000,ar +17.100000,82.100000,ar +17.000000,82.100000,ar +17.000000,82.200000,ar +16.900000,82.200000,ar +16.800000,82.200000,ar +16.800000,82.100000,ar +16.900000,82.100000,ar +16.900000,82.000000,ar +16.800000,82.000000,ar +17.000000,82.000000,ar +17.100000,82.000000,ar +17.000000,81.700000,ta +17.000000,81.600000,ta +16.900000,81.600000,ta +16.800000,81.600000,ta +16.800000,81.700000,ta +16.900000,81.700000,ta +16.600000,81.700000,ta +16.700000,81.700000,ta +16.700000,81.600000,ta +16.600000,81.600000,ta +16.500000,81.600000,en +16.400000,81.600000,en +16.400000,81.700000,en +16.500000,81.700000,en +16.500000,81.800000,en +16.400000,81.800000,en +16.400000,81.900000,en +16.400000,82.000000,en +16.500000,82.000000,en +16.500000,81.900000,en +16.700000,82.000000,en +16.600000,82.000000,en +16.600000,82.100000,en +16.700000,82.100000,en +16.700000,82.200000,en +16.600000,82.200000,en +16.500000,82.200000,en +16.500000,82.100000,en +16.400000,82.100000,en +16.400000,82.200000,en +16.400000,82.300000,en +16.500000,82.300000,en +16.500000,82.500000,en +16.500000,82.400000,en +16.600000,82.400000,en +16.600000,82.500000,en +16.700000,82.500000,en +16.700000,82.400000,en +16.600000,82.300000,en +16.700000,82.300000,en +16.800000,82.300000,ar +16.900000,82.300000,ar +17.000000,82.300000,ar +17.100000,82.300000,ar +17.000000,82.400000,ar +17.100000,82.400000,en +17.100000,82.500000,en +17.000000,82.500000,ar +16.900000,82.500000,ar +16.900000,82.400000,ar +16.800000,82.400000,ar +16.800000,82.500000,ar +16.800000,82.700000,ar +16.900000,82.700000,ar +17.000000,82.600000,hi +17.100000,82.600000,en +17.100000,82.700000,en +17.000000,82.700000,ar +17.000000,82.800000,en +17.100000,82.800000,en +17.100000,82.900000,en +17.000000,82.900000,en +16.900000,82.900000,en +16.900000,82.800000,en +16.800000,82.800000,en +16.800000,82.900000,en +16.700000,82.900000,ar +16.700000,82.700000,ar +16.600000,82.700000,ar +16.500000,82.700000,ar +16.600000,82.900000,ar +16.500000,82.900000,ar +16.500000,83.000000,ar +16.600000,83.000000,ar +16.700000,83.000000,ar +16.700000,83.100000,ar +16.800000,83.200000,ta +16.700000,83.200000,ar +16.600000,83.200000,ar +16.600000,83.100000,ar +16.500000,83.100000,ar +16.500000,83.200000,ar +16.500000,83.300000,ar +16.600000,83.300000,ar +16.600000,83.400000,en +16.500000,83.400000,en +16.600000,83.500000,en +16.700000,83.500000,en +16.800000,83.500000,ta +16.800000,83.400000,ta +16.700000,83.400000,en +16.700000,83.300000,ar +16.800000,83.300000,ta +16.900000,83.300000,bn +16.900000,83.400000,bn +16.900000,83.500000,bn +17.000000,83.500000,bn +17.100000,83.500000,en +17.100000,83.400000,en +17.000000,83.400000,en +17.000000,83.300000,en +17.100000,83.300000,en +17.100000,83.200000,en +17.100000,83.100000,en +17.000000,83.100000,en +17.000000,83.200000,en +16.900000,83.200000,en +16.800000,83.100000,en +16.900000,83.100000,en +16.900000,83.000000,en +16.800000,83.000000,en +17.000000,83.000000,en +17.100000,83.000000,en +17.200000,83.000000,en +17.300000,83.000000,en +17.500000,83.000000,ta +17.400000,83.000000,en +17.400000,83.100000,en +17.500000,83.100000,ta +17.500000,83.200000,ta +17.400000,83.200000,en +17.300000,83.200000,ta +17.300000,83.100000,en +17.200000,83.100000,en +17.200000,83.200000,en +17.200000,83.300000,en +17.300000,83.300000,ta +17.300000,83.400000,ta +17.200000,83.400000,en +17.200000,83.500000,en +17.300000,83.500000,ta +17.400000,83.500000,ru +17.500000,83.500000,ru +17.500000,83.400000,ru +17.400000,83.400000,en +17.400000,83.300000,en +17.500000,83.300000,ru +17.600000,83.300000,ru +17.700000,83.300000,ru +17.700000,83.400000,ru +17.600000,83.400000,ru +17.600000,83.500000,ru +17.700000,83.500000,ru +17.800000,83.500000,ru +17.900000,83.500000,ru +17.900000,83.400000,bn +17.800000,83.400000,id +17.800000,83.300000,id +17.900000,83.300000,ta +17.900000,83.200000,bn +17.900000,83.100000,bn +17.800000,83.100000,bn +17.800000,83.200000,bn +17.700000,83.200000,ta +17.600000,83.200000,ta +17.600000,83.100000,ta +17.700000,83.100000,ta +17.700000,83.000000,bn +17.600000,83.000000,bn +17.800000,83.000000,bn +17.900000,83.000000,bn +17.900000,82.900000,zh +17.800000,82.900000,zh +17.800000,82.800000,en +17.900000,82.800000,en +17.900000,82.700000,en +17.900000,82.600000,en +17.800000,82.600000,en +17.800000,82.700000,en +17.700000,82.700000,en +17.700000,82.600000,en +17.600000,82.600000,en +17.600000,82.700000,en +17.600000,82.800000,en +17.700000,82.800000,en +17.700000,82.900000,zh +17.600000,82.900000,zh +17.500000,82.900000,zh +17.500000,82.800000,en +17.400000,82.800000,en +17.400000,82.900000,en +17.300000,82.900000,en +17.200000,82.900000,en +17.200000,82.800000,en +17.300000,82.800000,en +17.300000,82.700000,en +17.200000,82.700000,en +17.200000,82.600000,en +17.300000,82.600000,en +17.400000,82.600000,en +17.400000,82.700000,en +17.500000,82.700000,en +17.500000,82.600000,en +17.500000,82.500000,en +17.500000,82.400000,en +17.400000,82.400000,en +17.400000,82.500000,en +17.300000,82.500000,en +17.200000,82.500000,ar +17.200000,82.400000,ar +17.300000,82.400000,en +17.200000,82.300000,ar +17.300000,82.300000,en +17.400000,82.300000,en +17.500000,82.300000,en +17.600000,82.300000,en +17.600000,82.400000,en +17.600000,82.500000,en +17.700000,82.500000,en +17.700000,82.400000,en +17.800000,82.400000,en +17.800000,82.500000,en +17.900000,82.500000,en +17.900000,82.300000,en +18.000000,82.300000,en +18.100000,82.300000,en +17.900000,82.400000,en +18.000000,82.600000,en +18.000000,82.700000,en +18.000000,82.800000,en +18.000000,82.900000,en +18.100000,82.900000,bn +18.100000,82.800000,bn +18.200000,82.900000,bn +18.200000,82.800000,bn +18.200000,82.700000,bn +18.100000,82.700000,bn +18.100000,82.600000,en +18.400000,82.600000,en +18.400000,82.700000,bn +18.300000,82.700000,bn +18.300000,82.800000,bn +18.300000,82.900000,bn +18.400000,82.900000,bn +18.400000,82.800000,bn +18.500000,82.800000,bn +18.500000,82.900000,bn +18.600000,82.900000,or +18.600000,82.800000,te +18.600000,82.700000,te +18.500000,82.700000,bn +18.500000,82.600000,en +18.600000,82.600000,te +18.600000,82.500000,te +18.500000,82.400000,en +18.500000,82.500000,en +18.400000,82.500000,en +18.300000,82.400000,en +18.400000,82.400000,en +18.700000,82.400000,or +18.700000,82.500000,te +18.800000,82.500000,or +18.800000,82.400000,or +18.900000,82.400000,or +18.900000,82.500000,or +19.000000,82.500000,te +19.000000,82.400000,te +19.000000,82.300000,en +19.100000,82.300000,en +19.200000,82.300000,en +19.300000,82.300000,en +19.400000,82.300000,en +19.300000,82.400000,en +19.400000,82.400000,en +19.400000,82.500000,en +19.300000,82.500000,en +19.200000,82.500000,en +19.200000,82.400000,en +19.100000,82.400000,te +19.100000,82.500000,te +19.100000,82.600000,te +19.100000,82.700000,te +19.200000,82.700000,en +19.200000,82.600000,en +19.300000,82.600000,en +19.400000,82.600000,en +19.400000,82.700000,en +19.300000,82.700000,en +19.100000,82.800000,or +19.000000,82.900000,te +18.900000,82.900000,te +18.900000,82.800000,te +19.000000,82.800000,te +19.000000,82.700000,te +19.000000,82.600000,te +18.900000,82.600000,or +18.900000,82.700000,te +18.800000,82.700000,te +18.800000,82.600000,te +18.700000,82.600000,te +18.700000,82.700000,te +18.700000,82.800000,te +18.800000,82.800000,te +18.800000,82.900000,te +18.700000,82.900000,or +18.800000,83.000000,en +18.700000,83.000000,en +18.700000,83.100000,en +18.700000,83.200000,en +18.800000,83.200000,en +18.800000,83.100000,en +18.900000,83.100000,en +18.900000,83.200000,en +19.000000,83.200000,id +19.400000,83.200000,id +19.300000,83.200000,id +19.200000,83.200000,id +19.100000,83.200000,id +19.100000,83.300000,id +19.100000,83.400000,id +19.200000,83.400000,id +19.200000,83.300000,id +19.300000,83.300000,id +19.400000,83.300000,id +19.400000,83.400000,id +19.300000,83.400000,id +19.300000,83.500000,id +19.400000,83.500000,id +19.200000,83.500000,id +19.100000,83.500000,id +18.900000,83.500000,en +19.000000,83.500000,id +19.000000,83.400000,id +19.000000,83.300000,id +18.900000,83.300000,en +18.900000,83.400000,en +18.800000,83.400000,en +18.800000,83.300000,en +18.700000,83.300000,en +18.700000,83.400000,en +18.700000,83.500000,en +18.800000,83.500000,en +18.600000,83.500000,en +18.500000,83.500000,en +18.500000,83.400000,en +18.400000,83.400000,en +18.400000,83.300000,en +18.500000,83.300000,en +18.600000,83.400000,en +18.600000,83.300000,en +18.600000,83.200000,en +18.500000,83.200000,en +18.500000,83.100000,bn +18.600000,83.100000,en +18.600000,83.000000,en +18.500000,83.000000,bn +18.400000,83.000000,bn +18.300000,83.000000,bn +18.400000,83.100000,bn +18.400000,83.200000,en +18.300000,83.200000,ta +18.200000,83.200000,ta +18.200000,83.100000,bn +18.300000,83.100000,bn +18.200000,83.000000,bn +18.100000,83.000000,bn +18.000000,83.000000,bn +18.000000,83.100000,bn +18.100000,83.100000,bn +18.100000,83.200000,ta +18.000000,83.200000,id +18.000000,83.300000,id +18.000000,83.400000,ta +18.100000,83.400000,ta +18.100000,83.300000,ta +18.200000,83.300000,ta +18.300000,83.300000,ta +18.300000,83.400000,ta +18.200000,83.400000,ta +18.200000,83.500000,ta +18.300000,83.500000,ta +18.100000,83.500000,ta +18.000000,83.500000,ta +18.000000,83.600000,ta +18.000000,83.700000,en +18.100000,83.700000,id +18.100000,83.600000,id +18.200000,83.600000,id +18.300000,83.600000,id +18.300000,83.700000,id +18.200000,83.700000,id +18.200000,83.800000,id +18.300000,83.800000,id +18.300000,83.900000,id +18.200000,83.900000,id +18.100000,83.900000,id +18.100000,83.800000,id +18.000000,83.800000,en +18.000000,83.900000,en +18.000000,84.000000,en +18.100000,84.000000,id +18.100000,84.100000,id +18.000000,84.100000,id +18.000000,84.200000,id +18.100000,84.200000,en +18.200000,84.200000,en +18.300000,84.200000,en +18.300000,84.100000,id +18.200000,84.100000,id +18.200000,84.000000,id +18.300000,84.000000,id +18.400000,84.000000,id +18.500000,84.000000,id +18.500000,84.100000,id +18.400000,84.100000,id +18.400000,84.200000,en +18.500000,84.200000,bn +18.600000,84.200000,or +18.700000,84.200000,or +18.700000,84.100000,or +18.600000,84.100000,or +18.600000,84.000000,or +18.700000,84.000000,or +18.700000,83.900000,or +18.700000,83.800000,en +18.600000,83.800000,en +18.600000,83.900000,or +18.500000,83.900000,id +18.400000,83.900000,id +18.400000,83.800000,id +18.500000,83.800000,id +18.500000,83.700000,id +18.400000,83.700000,id +18.400000,83.600000,id +18.500000,83.600000,id +18.600000,83.600000,en +18.600000,83.700000,en +18.700000,83.700000,en +18.700000,83.600000,en +18.800000,83.600000,en +18.800000,83.700000,en +18.800000,83.900000,or +18.800000,83.800000,en +18.900000,83.800000,or +18.900000,83.900000,or +19.000000,83.900000,or +19.000000,83.800000,or +19.000000,83.700000,or +18.900000,83.700000,or +18.900000,83.600000,or +19.000000,83.600000,or +19.100000,83.600000,or +19.100000,83.700000,or +19.200000,83.700000,or +19.200000,83.600000,or +19.300000,83.600000,or +19.400000,83.600000,id +19.300000,83.700000,te +19.300000,83.800000,te +19.300000,83.900000,te +19.200000,83.900000,te +19.200000,83.800000,te +19.100000,83.800000,te +19.100000,83.900000,or +19.100000,84.000000,or +19.100000,84.100000,en +19.200000,84.000000,te +19.300000,84.000000,te +19.000000,84.200000,or +19.000000,84.100000,or +19.000000,84.000000,or +18.900000,84.100000,or +18.900000,84.000000,or +18.800000,84.000000,or +18.800000,84.100000,or +18.900000,84.200000,or +18.800000,84.200000,or +18.800000,84.300000,or +18.900000,84.300000,or +18.900000,84.400000,bn +18.800000,84.400000,bn +18.800000,84.500000,bn +18.800000,84.600000,bn +18.900000,84.600000,bn +18.900000,84.500000,bn +19.000000,84.500000,bn +19.000000,84.600000,bn +19.100000,84.600000,or +19.100000,84.500000,bn +19.100000,84.400000,bn +19.000000,84.400000,bn +19.000000,84.300000,or +19.100000,84.300000,en +19.200000,84.400000,or +19.400000,84.400000,en +19.300000,84.400000,te +19.300000,84.500000,or +19.400000,84.500000,te +19.400000,84.600000,te +19.300000,84.600000,te +19.200000,84.500000,or +19.200000,84.600000,or +19.200000,84.700000,or +19.300000,84.700000,te +19.400000,84.700000,te +19.400000,84.800000,te +19.400000,84.900000,te +19.300000,84.900000,te +19.300000,84.800000,te +19.200000,84.800000,te +19.200000,84.900000,te +19.100000,84.900000,te +19.000000,84.900000,bn +19.000000,84.800000,bn +19.100000,84.800000,or +19.100000,84.700000,or +19.000000,84.700000,bn +18.900000,84.700000,bn +18.800000,84.700000,bn +18.800000,84.800000,bn +18.900000,84.800000,bn +18.900000,84.900000,bn +18.800000,84.900000,or +18.700000,84.900000,bn +18.700000,84.800000,bn +18.600000,84.800000,bn +18.600000,84.900000,bn +18.500000,84.900000,bn +18.400000,84.900000,en +18.400000,84.800000,bn +18.500000,84.800000,bn +18.500000,84.700000,bn +18.400000,84.700000,bn +18.600000,84.700000,en +18.700000,84.700000,en +18.700000,84.600000,bn +18.600000,84.600000,bn +18.600000,84.500000,bn +18.700000,84.500000,bn +18.700000,84.400000,bn +18.700000,84.300000,or +18.600000,84.300000,or +18.600000,84.400000,bn +18.500000,84.400000,bn +18.500000,84.300000,bn +18.400000,84.300000,en +18.400000,84.400000,en +18.400000,84.500000,en +18.500000,84.500000,bn +18.500000,84.600000,bn +18.400000,84.600000,or +18.300000,84.600000,or +18.200000,84.600000,en +18.200000,84.500000,en +18.300000,84.500000,or +18.300000,84.400000,en +18.300000,84.300000,en +18.200000,84.400000,id +18.100000,84.400000,id +18.100000,84.300000,id +18.000000,84.300000,id +18.000000,84.400000,id +18.000000,84.500000,en +18.100000,84.500000,en +18.100000,84.600000,en +18.000000,84.600000,en +18.000000,84.700000,en +18.100000,84.700000,en +18.300000,84.700000,bn +18.200000,84.700000,en +18.200000,84.800000,or +18.300000,84.800000,bn +18.300000,84.900000,en +18.200000,84.900000,or +18.100000,84.900000,or +18.100000,84.800000,or +18.000000,84.800000,id +18.000000,84.900000,or +17.900000,84.800000,id +17.900000,84.700000,id +17.800000,84.700000,id +17.400000,84.300000,ru +17.500000,84.400000,id +17.500000,84.300000,ru +17.600000,84.300000,ru +17.700000,84.300000,ru +17.700000,84.400000,id +17.600000,84.400000,id +17.600000,84.500000,id +17.700000,84.600000,id +17.700000,84.500000,id +17.800000,84.500000,en +17.800000,84.600000,id +17.900000,84.500000,en +17.900000,84.400000,id +17.800000,84.400000,id +17.800000,84.300000,id +17.900000,84.300000,id +17.900000,84.200000,id +17.800000,84.200000,id +17.700000,84.200000,ta +17.600000,84.200000,ta +17.700000,84.100000,en +17.600000,84.100000,en +17.600000,84.000000,en +17.700000,84.000000,en +17.800000,84.000000,id +17.800000,84.100000,id +17.900000,84.100000,id +17.900000,84.000000,id +17.900000,83.900000,id +17.800000,83.900000,id +17.800000,83.800000,id +17.900000,83.800000,en +17.900000,83.700000,en +17.900000,83.600000,id +17.800000,83.600000,id +17.800000,83.700000,en +17.700000,83.700000,ru +17.700000,83.600000,id +17.600000,83.600000,id +17.600000,83.700000,ru +17.600000,83.800000,id +17.700000,83.800000,id +17.700000,83.900000,en +17.600000,83.900000,en +17.500000,83.900000,en +17.400000,83.900000,ta +17.400000,83.800000,id +17.500000,83.800000,id +17.500000,83.700000,ru +17.500000,83.600000,ru +17.400000,83.600000,ru +17.400000,83.700000,ru +17.300000,83.700000,ru +17.300000,83.600000,ru +17.200000,83.600000,en +17.200000,83.700000,ta +17.200000,83.800000,ta +17.300000,83.800000,id +17.300000,83.900000,ta +17.200000,83.900000,ta +17.300000,84.100000,ta +17.300000,84.000000,ta +17.400000,84.000000,ta +17.500000,84.000000,ta +17.500000,84.100000,ta +17.400000,84.100000,ta +17.500000,84.200000,ta +17.400000,84.200000,ta +17.300000,84.200000,ta +17.100000,84.000000,ta +17.200000,84.100000,ta +17.200000,84.000000,ta +17.100000,83.900000,ta +17.100000,83.800000,ta +17.100000,83.700000,ta +17.100000,83.600000,en +17.000000,83.700000,bn +17.000000,83.600000,bn +16.900000,83.600000,bn +16.900000,83.700000,bn +16.900000,83.800000,bn +17.000000,83.800000,bn +17.000000,83.900000,bn +16.800000,83.700000,ta +16.800000,83.600000,ta +16.700000,83.600000,en +16.400000,83.300000,ar +16.400000,83.200000,ar +16.400000,83.100000,ar +16.300000,83.100000,ar +16.300000,83.200000,ar +16.200000,83.100000,ar +16.200000,83.000000,ar +16.100000,83.000000,ar +16.300000,83.000000,ar +16.400000,83.000000,ar +16.400000,82.900000,ar +16.300000,82.900000,ar +16.400000,82.700000,hi +16.400000,82.600000,en +16.300000,82.600000,en +16.300000,82.700000,hi +16.100000,82.800000,ar +16.200000,82.800000,ar +16.200000,82.900000,ar +16.100000,82.900000,ar +16.000000,82.800000,ar +16.000000,82.500000,en +16.000000,82.400000,en +15.900000,82.400000,en +15.900000,82.500000,en +15.900000,82.300000,en +16.000000,82.300000,en +16.100000,82.500000,en +16.200000,82.500000,en +16.300000,82.200000,hi +16.300000,82.100000,en +16.200000,82.100000,en +16.200000,82.200000,en +16.100000,82.200000,en +16.100000,82.100000,en +16.100000,81.900000,en +16.200000,81.900000,en +16.200000,82.000000,en +16.300000,82.000000,en +16.300000,81.900000,en +16.300000,81.800000,en +16.200000,81.800000,en +16.200000,81.700000,en +16.300000,81.700000,en +16.300000,81.600000,en +16.200000,81.600000,en +16.100000,81.600000,te +16.000000,81.600000,en +16.000000,81.700000,en +16.100000,81.700000,en +16.100000,81.800000,en +16.000000,81.800000,en +15.900000,81.800000,en +15.900000,81.700000,en +15.900000,81.600000,en +15.800000,81.600000,en +15.700000,81.600000,ta +15.700000,81.700000,ta +15.800000,81.700000,en +15.800000,81.800000,en +15.700000,81.800000,en +15.700000,81.900000,en +15.700000,82.000000,en +15.800000,82.000000,en +15.800000,81.900000,en +15.900000,81.900000,en +16.000000,81.900000,en +16.000000,82.000000,en +15.900000,82.000000,en +15.900000,82.100000,en +16.000000,82.100000,en +16.000000,82.200000,en +15.900000,82.200000,en +15.800000,82.200000,en +15.800000,82.100000,en +15.700000,82.100000,en +15.600000,81.900000,en +15.500000,81.700000,ta +15.600000,81.800000,en +15.600000,81.700000,ta +15.500000,81.600000,ta +15.500000,81.500000,ta +15.600000,81.300000,en +15.600000,81.200000,en +15.500000,81.200000,en +15.500000,81.300000,en +15.400000,81.300000,id +15.300000,81.300000,id +15.400000,81.400000,id +15.400000,81.500000,ar +15.200000,81.000000,ta +15.000000,80.900000,ta +15.100000,80.900000,ta +15.200000,80.900000,ta +15.400000,80.900000,ta +15.300000,80.900000,ta +15.300000,81.000000,en +15.400000,81.000000,en +15.500000,81.000000,ta +15.500000,81.100000,en +15.600000,81.100000,en +15.500000,80.900000,ta +15.600000,80.900000,ta +15.900000,80.900000,en +15.800000,80.900000,en +15.800000,81.000000,en +15.900000,81.000000,en +15.900000,81.100000,en +15.800000,81.100000,en +15.600000,81.000000,ta +15.700000,81.200000,en +15.700000,81.300000,en +15.800000,81.500000,en +15.800000,81.400000,en +15.900000,81.500000,en +15.900000,81.400000,en +15.800000,81.300000,en +16.000000,81.200000,en +16.100000,81.200000,en +16.100000,81.300000,en +16.000000,81.300000,en +16.000000,81.400000,en +16.000000,81.500000,en +16.100000,81.500000,en +16.100000,81.400000,en +16.200000,81.400000,en +16.200000,81.500000,en +16.300000,81.500000,en +16.300000,81.400000,en +16.300000,81.300000,en +16.200000,81.300000,en +16.200000,81.200000,en +16.300000,81.200000,en +16.300000,81.100000,en +16.300000,81.000000,ta +16.200000,81.000000,en +16.200000,81.100000,en +16.100000,81.100000,en +16.000000,81.100000,en +16.000000,81.000000,en +16.100000,81.000000,en +16.000000,80.900000,en +16.300000,80.900000,ta +16.300000,80.800000,ta +16.200000,80.800000,id +16.200000,80.700000,ar +16.300000,80.700000,ta +16.300000,80.600000,ta +16.300000,80.500000,id +16.200000,80.500000,id +16.200000,80.600000,id +16.100000,80.600000,id +16.100000,80.500000,id +16.000000,80.500000,ta +16.000000,80.600000,ta +16.000000,80.700000,id +16.100000,80.700000,id +16.100000,80.800000,id +16.000000,80.800000,id +15.900000,80.800000,en +15.900000,80.700000,ta +15.800000,80.700000,ta +15.800000,80.800000,en +15.600000,80.800000,ta +15.600000,80.700000,en +15.700000,80.700000,en +15.700000,80.600000,ta +15.600000,80.600000,ta +15.600000,80.500000,ta +15.700000,80.500000,ta +15.800000,80.500000,ta +15.800000,80.600000,ta +15.900000,80.600000,ta +15.900000,80.500000,ta +15.900000,80.400000,ta +15.900000,80.300000,ta +15.800000,80.300000,ta +15.800000,80.400000,ta +15.700000,80.400000,ta +15.600000,80.400000,ta +15.600000,80.300000,ta +15.700000,80.300000,ta +15.700000,80.200000,ta +15.600000,80.200000,ta +15.600000,80.100000,ta +15.700000,80.100000,ta +15.800000,80.100000,ta +15.800000,80.200000,ta +15.900000,80.200000,ta +15.900000,80.100000,ta +16.000000,80.100000,ta +16.100000,80.100000,ta +16.100000,80.200000,ta +16.000000,80.200000,ta +16.000000,80.300000,ta +16.000000,80.400000,ta +16.100000,80.400000,id +16.100000,80.300000,id +16.200000,80.300000,id +16.200000,80.400000,id +16.300000,80.400000,id +16.300000,80.300000,id +16.300000,80.200000,id +16.200000,80.200000,id +16.200000,80.100000,ta +16.300000,80.100000,ta +16.200000,80.000000,ta +16.000000,80.000000,ta +16.100000,80.000000,ta +16.100000,79.900000,id +16.000000,79.900000,id +16.000000,79.800000,id +16.100000,79.800000,id +16.200000,79.800000,en +16.200000,79.700000,en +16.100000,79.700000,id +16.100000,79.600000,id +16.200000,79.600000,en +16.200000,79.500000,en +16.100000,79.500000,id +16.000000,79.500000,id +16.000000,79.400000,en +15.900000,79.400000,en +16.000000,79.600000,id +16.000000,79.700000,id +15.900000,79.700000,id +15.800000,79.700000,id +15.800000,79.600000,id +15.900000,79.600000,id +15.900000,79.500000,id +15.800000,79.400000,en +15.800000,79.500000,id +15.700000,79.500000,id +15.700000,79.400000,en +15.600000,79.400000,en +15.600000,79.500000,en +15.600000,79.600000,en +15.700000,79.600000,id +15.700000,79.700000,id +15.600000,79.700000,en +15.600000,79.800000,ta +15.600000,79.900000,ta +15.700000,79.900000,id +15.700000,79.800000,id +15.800000,79.800000,id +15.900000,79.800000,id +15.900000,79.900000,id +15.800000,79.900000,id +15.800000,80.000000,ta +15.900000,80.000000,ta +15.700000,80.000000,ta +15.600000,80.000000,ta +15.500000,80.000000,ta +15.400000,80.000000,ta +15.200000,80.000000,ta +15.300000,80.000000,ta +15.300000,79.900000,ta +15.200000,79.900000,ta +15.200000,79.800000,ta +15.300000,79.800000,ta +15.400000,79.800000,ta +15.400000,79.900000,ta +15.500000,79.900000,ta +15.500000,79.800000,ta +15.500000,79.700000,en +15.400000,79.700000,en +15.400000,79.600000,en +15.500000,79.600000,en +15.500000,79.500000,en +15.500000,79.400000,en +15.400000,79.400000,en +15.400000,79.500000,en +15.300000,79.500000,en +15.300000,79.400000,en +15.200000,79.400000,en +15.200000,79.500000,en +15.200000,79.600000,en +15.300000,79.600000,en +15.300000,79.700000,en +15.200000,79.700000,en +15.100000,79.700000,en +15.000000,79.700000,en +15.000000,79.600000,en +15.100000,79.600000,en +15.100000,79.500000,en +15.100000,79.400000,en +15.000000,79.400000,en +15.000000,79.500000,en +14.900000,79.500000,en +14.900000,79.400000,en +14.800000,79.400000,en +14.800000,79.500000,en +14.800000,79.600000,en +14.900000,79.600000,en +14.900000,79.700000,en +14.900000,79.900000,ta +14.900000,79.800000,ta +15.000000,79.800000,ta +15.100000,79.800000,ta +15.100000,79.900000,ta +15.000000,79.900000,ta +15.000000,80.000000,ta +15.100000,80.000000,ta +14.900000,80.000000,ta +14.900000,80.100000,en +15.000000,80.100000,en +15.000000,80.200000,en +14.900000,80.200000,ta +14.900000,80.300000,hi +14.900000,80.400000,ta +15.000000,80.400000,ta +15.100000,80.400000,ta +15.200000,80.400000,ta +15.100000,80.200000,en +15.100000,80.100000,en +15.200000,80.100000,hi +15.200000,80.200000,en +15.300000,80.200000,ta +15.300000,80.100000,ta +15.400000,80.100000,ta +15.500000,80.100000,ta +15.500000,80.200000,ta +15.400000,80.200000,ta +15.400000,80.300000,en +15.500000,80.300000,ta +15.500000,80.400000,en +15.400000,80.400000,en +15.300000,80.300000,en +15.200000,80.300000,hi +15.300000,80.600000,ta +15.300000,80.500000,en +15.400000,80.500000,ta +15.500000,80.500000,ta +15.500000,80.600000,ta +15.400000,80.600000,ta +15.400000,80.700000,ta +15.500000,80.700000,ta +15.500000,80.800000,ta +15.400000,80.800000,ta +15.300000,80.700000,ta +15.300000,80.800000,ta +15.200000,80.800000,ta +15.100000,80.800000,ta +15.100000,80.700000,ta +15.200000,80.700000,ta +15.200000,80.600000,en +15.200000,80.500000,en +15.100000,80.500000,en +15.100000,80.600000,en +15.000000,80.500000,hi +14.900000,80.500000,en +14.900000,80.700000,ta +15.000000,80.700000,ta +15.000000,80.800000,ta +14.900000,80.800000,ta +14.800000,80.800000,ta +14.700000,80.800000,ta +14.700000,80.700000,ta +14.800000,80.700000,ta +14.800000,80.500000,en +14.700000,80.500000,en +14.600000,80.500000,en +14.500000,80.500000,ta +14.500000,80.700000,ta +14.600000,80.700000,ta +14.600000,80.800000,ta +14.500000,80.800000,ta +14.400000,80.800000,ta +14.400000,80.700000,ta +14.300000,80.700000,ta +14.300000,80.800000,ta +14.200000,80.800000,hi +14.200000,80.700000,hi +14.200000,80.600000,ta +14.100000,80.500000,ta +14.200000,80.500000,ta +14.300000,80.500000,ta +14.400000,80.500000,ta +14.400000,80.300000,ta +14.300000,80.300000,ta +14.100000,80.300000,ta +14.200000,80.300000,ta +14.200000,80.200000,ta +14.100000,80.200000,ta +14.100000,80.100000,ta +14.200000,80.100000,ta +14.300000,80.100000,ta +14.300000,80.200000,ta +14.400000,80.200000,ta +14.400000,80.100000,ta +14.500000,80.100000,ta +14.600000,80.100000,ta +14.600000,80.200000,ta +14.500000,80.200000,ta +14.500000,80.300000,ta +14.600000,80.300000,en +14.700000,80.300000,en +14.700000,80.400000,ta +14.800000,80.400000,ta +14.800000,80.300000,en +14.800000,80.200000,ta +14.700000,80.200000,ta +14.700000,80.100000,ta +14.800000,80.100000,ta +14.800000,80.000000,ta +14.700000,80.000000,ta +14.500000,80.000000,ta +14.600000,80.000000,ta +14.600000,79.900000,ta +14.500000,79.900000,ta +14.500000,79.800000,ta +14.600000,79.800000,ta +14.700000,79.800000,ta +14.700000,79.900000,ta +14.800000,79.900000,ta +14.800000,79.800000,ta +14.800000,79.700000,en +14.700000,79.700000,en +14.700000,79.600000,en +14.700000,79.500000,en +14.700000,79.400000,en +14.600000,79.500000,en +14.600000,79.400000,en +14.500000,79.400000,en +14.500000,79.500000,en +14.500000,79.600000,en +14.600000,79.600000,en +14.600000,79.700000,ta +14.500000,79.700000,ta +14.400000,79.700000,ta +14.300000,79.700000,ta +14.300000,79.600000,ta +14.400000,79.600000,en +14.400000,79.500000,en +14.400000,79.400000,ta +14.300000,79.400000,ta +14.300000,79.500000,en +14.200000,79.500000,ta +14.200000,79.400000,ta +14.100000,79.400000,ta +14.100000,79.500000,ta +14.100000,79.600000,ta +14.200000,79.600000,ta +14.200000,79.700000,ta +14.100000,79.700000,ta +14.100000,79.800000,ta +14.100000,79.900000,ta +14.200000,79.900000,ta +14.200000,79.800000,ta +14.300000,79.800000,ta +14.400000,79.800000,ta +14.400000,79.900000,ta +14.300000,79.900000,ta +14.300000,80.000000,ta +14.400000,80.000000,ta +14.200000,80.000000,ta +14.100000,80.000000,ta +14.000000,80.000000,ta +13.900000,80.000000,ta +13.800000,80.000000,ta +13.800000,79.900000,ta +13.800000,79.800000,ta +13.900000,79.800000,ta +13.900000,79.900000,ta +14.000000,79.900000,ta +14.000000,79.800000,ta +14.000000,79.700000,ta +13.900000,79.700000,ta +13.900000,79.600000,ta +14.000000,79.600000,ta +14.000000,79.500000,ta +14.000000,79.400000,ta +13.900000,79.400000,ta +13.900000,79.500000,ta +13.800000,79.500000,ta +13.800000,79.400000,ta +13.700000,79.400000,ta +13.700000,79.500000,ta +13.700000,79.600000,ta +13.800000,79.600000,ta +13.800000,79.700000,ta +13.700000,79.700000,ta +13.600000,79.700000,ta +13.600000,79.600000,ta +13.600000,79.500000,ta +13.600000,79.400000,ta +13.500000,79.500000,ta +13.500000,79.400000,ta +13.400000,79.400000,ta +13.400000,79.500000,ta +13.400000,79.600000,hi +13.500000,79.600000,ta +13.500000,79.700000,hi +13.400000,79.700000,hi +13.400000,79.800000,hi +13.400000,79.900000,te +13.500000,79.900000,hi +13.500000,79.800000,hi +13.600000,79.800000,ta +13.700000,79.800000,ta +13.700000,79.900000,ta +13.600000,79.900000,hi +13.600000,80.000000,hi +13.700000,80.000000,ta +13.500000,80.000000,hi +13.400000,80.000000,te +13.400000,80.100000,te +13.500000,80.100000,te +13.500000,80.200000,te +13.400000,80.200000,te +13.400000,80.300000,te +13.400000,80.400000,te +13.500000,80.400000,te +13.500000,80.300000,te +13.600000,80.300000,te +13.600000,80.400000,te +13.700000,80.400000,ta +13.700000,80.300000,te +13.700000,80.200000,ta +13.600000,80.200000,te +13.600000,80.100000,hi +13.700000,80.100000,ta +13.800000,80.100000,ta +13.800000,80.200000,ta +13.900000,80.200000,ta +13.900000,80.100000,ta +14.000000,80.100000,ta +14.000000,80.200000,ta +14.000000,80.300000,en +13.900000,80.400000,ta +13.900000,80.300000,ta +13.800000,80.300000,ta +13.800000,80.400000,ta +13.800000,80.500000,te +13.800000,80.600000,te +13.900000,80.600000,te +13.900000,80.500000,te +14.000000,80.500000,ta +14.100000,80.600000,ta +14.000000,80.600000,ta +14.000000,80.700000,te +14.100000,80.700000,hi +14.100000,80.800000,hi +14.000000,80.800000,te +13.900000,80.800000,te +13.900000,80.700000,te +13.800000,80.700000,bn +13.800000,80.800000,bn +13.700000,80.800000,bn +13.600000,80.800000,ml +13.600000,80.700000,ml +13.700000,80.700000,bn +13.700000,80.600000,te +13.700000,80.500000,te +13.600000,80.500000,ml +13.600000,80.600000,ml +13.500000,80.600000,ml +13.500000,80.500000,bn +13.400000,80.500000,bn +13.400000,80.600000,te +13.400000,80.700000,ml +13.500000,80.700000,ml +13.500000,80.800000,ml +13.400000,80.800000,ml +13.300000,80.800000,ml +13.200000,80.800000,ml +13.200000,80.700000,ml +13.300000,80.700000,ml +13.300000,80.600000,te +13.300000,80.500000,ml +13.200000,80.500000,ml +13.200000,80.600000,te +13.100000,80.600000,te +13.100000,80.500000,ml +13.000000,80.500000,ml +13.100000,80.700000,ml +13.100000,80.800000,ml +13.000000,80.800000,ml +13.000000,80.700000,ml +12.900000,80.700000,ml +12.900000,80.800000,ml +12.800000,80.800000,ml +12.700000,80.800000,ml +12.700000,80.700000,ml +12.800000,80.700000,ml +12.800000,80.600000,te +12.700000,80.600000,te +12.700000,80.500000,te +12.800000,80.500000,en +12.900000,80.500000,ml +12.900000,80.600000,te +13.000000,80.600000,te +12.900000,80.300000,en +12.900000,80.400000,te +12.800000,80.400000,te +12.700000,80.400000,te +12.700000,80.300000,te +12.800000,80.300000,te +12.800000,80.200000,te +12.700000,80.200000,te +12.700000,80.100000,te +12.800000,80.100000,te +12.900000,80.200000,te +12.900000,80.100000,te +13.000000,80.100000,te +13.100000,80.100000,te +13.100000,80.200000,te +13.000000,80.200000,te +13.000000,80.300000,te +13.000000,80.400000,te +13.100000,80.400000,ml +13.100000,80.300000,ml +13.200000,80.300000,ml +13.200000,80.400000,ml +13.300000,80.400000,ml +13.300000,80.300000,ml +13.300000,80.200000,ml +13.200000,80.200000,ml +13.200000,80.100000,te +13.300000,80.100000,ml +13.300000,80.000000,te +13.200000,80.000000,te +13.000000,80.000000,ko +13.100000,80.000000,te +13.100000,79.900000,ko +13.000000,79.900000,ko +13.000000,79.800000,ko +13.100000,79.800000,ko +13.200000,79.800000,te +13.200000,79.900000,ko +13.300000,79.900000,te +13.300000,79.800000,te +13.300000,79.700000,hi +13.200000,79.700000,te +13.200000,79.600000,te +13.300000,79.600000,hi +13.300000,79.500000,hi +13.300000,79.400000,hi +13.200000,79.400000,hi +13.200000,79.500000,hi +13.100000,79.500000,te +13.100000,79.400000,te +13.000000,79.400000,te +13.000000,79.500000,te +13.000000,79.600000,id +13.100000,79.600000,te +13.100000,79.700000,id +13.000000,79.700000,ko +12.900000,79.700000,ko +12.800000,79.700000,ko +12.900000,79.600000,id +12.900000,79.500000,id +12.900000,79.400000,te +12.800000,79.400000,te +12.800000,79.500000,fr +12.700000,79.500000,fr +12.700000,79.400000,fr +12.600000,79.400000,fr +12.600000,79.500000,fr +12.700000,79.700000,ko +12.700000,79.800000,ko +12.700000,79.900000,ko +12.800000,79.800000,ko +12.900000,79.800000,ko +12.900000,79.900000,ko +12.800000,79.900000,ko +12.800000,80.000000,te +12.900000,80.000000,te +12.700000,80.000000,te +12.600000,80.000000,te +12.500000,80.000000,fr +12.300000,80.000000,te +12.400000,80.000000,fr +12.400000,79.900000,en +12.300000,79.900000,en +12.500000,79.800000,te +12.500000,79.900000,te +12.600000,79.900000,ko +12.600000,79.800000,ko +12.500000,79.400000,fr +12.500000,79.500000,fr +12.200000,79.700000,fr +12.100000,79.700000,hi +12.100000,79.600000,hi +12.200000,79.600000,fr +11.900000,79.600000,hi +12.000000,79.600000,hi +12.000000,79.700000,hi +11.900000,79.700000,hi +11.900000,79.800000,hi +11.900000,79.900000,hi +12.000000,79.900000,hi +12.000000,79.800000,hi +12.100000,79.800000,hi +12.200000,79.800000,hi +12.200000,79.900000,hi +12.100000,79.900000,hi +12.100000,80.000000,hi +12.200000,80.000000,hi +12.000000,80.000000,hi +11.900000,80.000000,hi +11.900000,80.100000,hi +12.000000,80.100000,fr +12.000000,80.200000,hi +12.000000,80.400000,te +12.000000,80.300000,te +12.100000,80.300000,fr +12.100000,80.400000,fr +12.200000,80.400000,fr +12.200000,80.300000,fr +12.200000,80.200000,en +12.100000,80.200000,hi +12.100000,80.100000,fr +12.200000,80.100000,fr +12.300000,80.100000,en +12.300000,80.200000,te +12.400000,80.200000,fr +12.400000,80.100000,fr +12.500000,80.100000,fr +12.600000,80.100000,te +12.600000,80.200000,fr +12.500000,80.200000,te +12.500000,80.300000,fr +12.600000,80.300000,fr +12.600000,80.400000,te +12.500000,80.400000,fr +12.400000,80.400000,te +12.400000,80.300000,fr +12.300000,80.300000,te +12.300000,80.400000,te +12.300000,80.500000,te +12.300000,80.600000,te +12.400000,80.600000,te +12.400000,80.500000,te +12.500000,80.500000,te +12.600000,80.500000,te +12.600000,80.600000,te +12.500000,80.600000,te +12.500000,80.700000,te +12.600000,80.700000,ml +12.600000,80.800000,ml +12.500000,80.800000,te +12.400000,80.800000,te +12.400000,80.700000,te +12.300000,80.700000,te +12.300000,80.800000,te +12.200000,80.800000,fr +12.100000,80.700000,fr +12.200000,80.700000,fr +12.200000,80.600000,fr +12.200000,80.500000,fr +12.100000,80.500000,fr +12.100000,80.600000,fr +12.000000,80.500000,te +12.000000,80.600000,fr +12.000000,80.700000,fr +12.100000,80.800000,fr +12.000000,80.800000,fr +11.900000,80.800000,fr +11.800000,80.800000,hi +11.800000,80.700000,hi +11.900000,80.700000,fr +11.900000,80.600000,fr +11.900000,80.500000,fr +11.800000,80.500000,hi +11.800000,80.600000,hi +11.700000,80.600000,hi +11.700000,80.500000,hi +11.600000,80.500000,hi +11.600000,80.600000,hi +11.600000,80.700000,hi +11.700000,80.700000,hi +11.700000,80.800000,hi +11.600000,80.800000,hi +11.500000,80.800000,hi +11.500000,80.700000,hi +11.400000,80.700000,hi +11.400000,80.800000,hi +11.300000,80.800000,hi +11.200000,80.700000,hi +11.300000,80.700000,hi +11.300000,80.600000,hi +11.200000,80.600000,hi +11.200000,80.500000,hi +11.300000,80.500000,hi +11.400000,80.500000,hi +11.400000,80.600000,hi +11.500000,80.600000,hi +11.500000,80.500000,hi +11.500000,80.400000,hi +11.400000,80.400000,hi +11.300000,80.400000,hi +11.200000,80.400000,hi +11.200000,80.300000,en +11.300000,80.200000,fr +11.200000,80.200000,fr +11.300000,80.100000,fr +11.400000,80.100000,hi +11.400000,80.200000,hi +11.500000,80.200000,hi +11.500000,80.100000,hi +11.600000,80.100000,hi +11.700000,80.100000,hi +11.700000,80.200000,hi +11.600000,80.200000,hi +11.600000,80.300000,fr +11.600000,80.400000,hi +11.700000,80.400000,hi +11.700000,80.300000,fr +11.800000,80.300000,fr +11.800000,80.400000,hi +11.900000,80.400000,en +11.900000,80.300000,fr +11.900000,80.200000,hi +11.800000,80.200000,hi +11.800000,80.100000,hi +11.800000,80.000000,hi +11.700000,80.000000,hi +11.700000,79.900000,hi +11.600000,79.900000,ar +11.600000,79.800000,ar +11.700000,79.800000,hi +11.800000,79.900000,hi +11.800000,79.800000,hi +11.800000,79.700000,hi +11.700000,79.600000,hi +11.800000,79.600000,hi +11.600000,79.500000,ar +11.600000,79.600000,ar +11.700000,79.700000,hi +11.600000,79.700000,ar +11.500000,79.700000,ar +11.400000,79.700000,ar +11.400000,79.600000,ar +11.500000,79.600000,ar +11.500000,79.500000,ar +11.400000,79.500000,ar +11.300000,79.500000,ar +11.200000,79.500000,ar +11.200000,79.600000,ar +11.300000,79.600000,ar +11.300000,79.700000,ar +11.200000,79.700000,ar +11.200000,79.800000,id +11.200000,79.900000,id +11.300000,79.900000,ar +11.300000,79.800000,ar +11.400000,79.800000,ar +11.500000,79.800000,ar +11.500000,79.900000,ar +11.400000,79.900000,ar +11.400000,80.000000,en +11.300000,80.000000,en +11.200000,80.000000,hi +11.100000,80.000000,fr +11.000000,80.000000,fr +10.900000,80.000000,fr +10.900000,79.900000,fr +10.900000,79.800000,hi +11.000000,79.800000,hi +11.000000,79.900000,fr +11.100000,79.900000,fr +11.100000,79.800000,id +11.100000,79.700000,fr +11.000000,79.700000,fr +11.000000,79.600000,fr +11.100000,79.600000,fr +10.900000,79.600000,fr +10.900000,79.700000,fr +10.800000,79.700000,fr +10.700000,79.700000,fr +10.700000,79.600000,fr +10.800000,79.600000,fr +10.500000,79.600000,ml +10.600000,79.600000,ml +10.600000,79.700000,ml +10.500000,79.700000,ml +10.500000,79.800000,hi +10.500000,79.900000,hi +10.600000,79.900000,ml +10.600000,79.800000,ml +10.700000,79.800000,ml +10.800000,79.800000,fr +10.800000,79.900000,fr +10.700000,79.900000,fr +10.700000,80.000000,fr +10.800000,80.000000,fr +10.600000,80.000000,ml +10.500000,80.000000,hi +10.500000,80.100000,en +10.600000,80.100000,en +10.600000,80.200000,fr +10.500000,80.200000,fr +10.500000,80.300000,en +10.500000,80.400000,hi +10.600000,80.400000,hi +10.600000,80.300000,en +10.700000,80.300000,en +10.700000,80.400000,hi +10.800000,80.400000,hi +10.800000,80.300000,en +10.800000,80.200000,fr +10.700000,80.200000,fr +10.700000,80.100000,en +10.800000,80.100000,en +10.900000,80.200000,fr +11.000000,80.200000,fr +11.100000,80.200000,fr +11.100000,80.300000,en +11.100000,80.400000,hi +11.000000,80.400000,hi +11.000000,80.300000,en +10.900000,80.300000,en +10.900000,80.400000,hi +10.900000,80.500000,hi +10.900000,80.600000,hi +11.000000,80.600000,hi +11.000000,80.500000,hi +11.100000,80.500000,hi +11.100000,80.600000,hi +11.100000,80.700000,hi +11.200000,80.800000,hi +11.100000,80.800000,hi +11.000000,80.800000,hi +11.000000,80.700000,hi +10.900000,80.700000,hi +10.900000,80.800000,hi +10.800000,80.800000,hi +10.700000,80.800000,hi +10.700000,80.700000,hi +10.800000,80.700000,hi +10.800000,80.600000,hi +10.800000,80.500000,hi +10.700000,80.500000,hi +10.700000,80.600000,hi +10.600000,80.600000,hi +10.600000,80.500000,hi +10.500000,80.500000,hi +10.500000,80.600000,hi +10.500000,80.700000,hi +10.600000,80.700000,hi +10.600000,80.800000,hi +10.500000,80.800000,hi +10.500000,80.900000,si +8.800000,79.400000,hi +8.900000,79.400000,hi +9.000000,79.500000,hi +9.000000,79.400000,hi +9.100000,79.400000,en +9.200000,79.400000,en +9.200000,79.500000,en +9.100000,79.500000,en +9.200000,79.600000,hi +9.300000,79.600000,hi +9.300000,79.500000,en +9.300000,79.400000,en +9.400000,79.400000,ml +10.400000,80.800000,hi +10.400000,80.700000,hi +10.400000,80.600000,hi +10.300000,80.500000,si +10.400000,80.500000,hi +10.400000,80.400000,hi +10.400000,80.300000,en +10.300000,80.300000,si +10.300000,80.400000,si +10.200000,80.200000,ml +10.200000,80.100000,ml +10.300000,80.200000,hi +10.400000,80.200000,fr +10.100000,80.000000,si +9.900000,79.500000,hi +9.800000,79.400000,hi +10.000000,79.500000,hi +10.200000,79.500000,en +10.300000,79.500000,en +10.100000,79.100000,hi +10.100000,79.200000,hi +10.000000,79.200000,hi +10.000000,79.100000,hi +10.000000,79.000000,en +10.000000,78.900000,fr +9.900000,79.000000,en +9.800000,79.000000,hi +9.800000,78.900000,en +9.800000,78.800000,en +10.000000,78.800000,fr +10.000000,78.700000,fr +10.100000,78.700000,fr +10.200000,78.700000,id +10.200000,78.800000,fr +10.100000,78.800000,fr +10.100000,78.900000,fr +10.100000,79.000000,fr +10.200000,79.000000,id +10.200000,78.900000,id +10.300000,78.900000,id +10.300000,79.000000,id +10.400000,79.000000,id +10.400000,78.900000,id +10.400000,78.800000,id +10.300000,78.800000,id +10.300000,78.700000,id +10.400000,78.700000,id +10.400000,78.600000,id +10.300000,78.600000,id +10.200000,78.600000,id +10.100000,78.600000,fr +10.200000,78.400000,en +10.100000,78.400000,en +10.100000,78.300000,en +10.200000,78.300000,en +10.300000,78.300000,en +10.300000,78.400000,en +10.400000,78.400000,en +10.400000,78.300000,en +10.300000,78.200000,en +10.400000,78.200000,en +10.300000,78.000000,en +10.300000,78.100000,en +10.200000,78.100000,en +10.200000,78.000000,en +10.100000,78.000000,en +10.100000,78.100000,en +10.100000,78.200000,en +10.200000,78.200000,en +9.800000,78.100000,id +9.800000,78.000000,id +9.700000,78.000000,id +9.700000,78.100000,id +9.700000,78.200000,id +9.800000,78.200000,id +10.000000,78.600000,fr +9.600000,78.600000,id +9.500000,78.600000,id +9.400000,78.600000,id +9.400000,78.500000,ml +9.600000,78.200000,id +9.600000,78.000000,id +9.600000,78.100000,id +9.500000,78.100000,id +9.500000,78.000000,id +9.400000,78.000000,id +9.400000,78.100000,id +9.400000,78.200000,id +9.500000,78.200000,id +9.200000,78.200000,hi +9.200000,78.100000,en +9.100000,78.100000,en +9.000000,78.000000,id +9.000000,78.100000,id +9.000000,78.200000,id +9.100000,78.200000,en +9.100000,78.400000,en +9.100000,78.300000,en +9.200000,78.300000,hi +9.300000,78.400000,en +9.200000,78.400000,hi +9.200000,78.500000,hi +9.300000,78.500000,ml +9.300000,78.600000,id +9.200000,78.600000,id +9.100000,78.600000,hi +9.100000,78.500000,en +9.100000,78.700000,hi +9.100000,78.800000,ml +9.100000,78.900000,ml +9.100000,79.000000,ms +9.200000,78.900000,id +9.200000,79.000000,id +9.300000,79.000000,ms +9.300000,78.900000,ms +9.300000,78.800000,id +9.200000,78.800000,id +9.200000,78.700000,hi +9.300000,78.700000,id +9.400000,78.700000,id +9.400000,78.800000,hi +9.500000,78.800000,id +9.500000,78.700000,id +9.600000,78.700000,id +9.700000,78.800000,en +9.600000,78.800000,id +9.600000,78.900000,hi +9.700000,78.900000,en +9.600000,79.000000,hi +9.500000,79.000000,id +9.500000,78.900000,id +9.400000,78.900000,ms +9.400000,79.000000,id +9.400000,79.100000,ms +9.500000,79.100000,ms +9.600000,79.100000,ms +9.500000,79.300000,ml +9.500000,79.200000,ml +9.400000,79.200000,ml +9.400000,79.300000,ml +9.300000,79.300000,ml +9.300000,79.200000,ml +9.300000,79.100000,ms +9.200000,79.100000,ms +9.100000,79.100000,ml +9.100000,79.200000,en +9.200000,79.200000,en +9.200000,79.300000,en +9.100000,79.300000,en +9.000000,79.300000,hi +9.000000,79.200000,hi +8.900000,79.200000,en +8.900000,79.300000,en +8.800000,79.300000,en +8.700000,79.300000,hi +8.700000,79.200000,hi +8.800000,79.200000,en +8.700000,79.100000,ml +8.800000,79.100000,en +8.900000,79.100000,en +9.000000,79.100000,en +9.000000,79.000000,id +8.900000,79.000000,id +8.900000,78.900000,id +9.000000,78.900000,id +9.000000,78.800000,hi +9.000000,78.700000,hi +8.900000,78.700000,id +8.900000,78.800000,id +8.800000,78.800000,ml +8.800000,78.700000,id +8.700000,78.700000,id +8.700000,78.800000,hi +8.700000,78.900000,en +8.800000,78.900000,ml +8.800000,79.000000,ml +8.700000,79.000000,hi +8.600000,79.000000,hi +8.600000,78.900000,hi +8.600000,78.800000,hi +8.600000,78.700000,id +8.500000,78.700000,id +8.500000,78.800000,hi +8.400000,78.700000,id +8.400000,78.800000,hi +8.400000,78.900000,hi +8.500000,78.900000,hi +8.500000,79.000000,hi +8.400000,79.000000,hi +8.400000,79.100000,hi +8.500000,79.100000,hi +8.600000,79.100000,hi +8.600000,79.200000,hi +8.600000,79.300000,si +8.500000,79.200000,si +8.300000,79.100000,hi +8.200000,79.100000,si +8.000000,78.700000,en +8.100000,78.700000,en +8.100000,78.800000,hi +8.000000,78.800000,hi +8.000000,78.900000,si +8.100000,79.000000,si +8.100000,78.900000,si +8.200000,78.900000,si +8.200000,79.000000,si +8.300000,79.000000,hi +8.300000,78.900000,hi +8.300000,78.800000,hi +8.200000,78.800000,hi +8.200000,78.700000,en +8.300000,78.700000,hi +8.300000,78.600000,ar +8.200000,78.600000,ar +8.200000,78.500000,ar +8.300000,78.500000,ar +8.300000,78.400000,en +8.300000,78.300000,en +8.200000,78.300000,en +8.200000,78.400000,en +8.100000,78.400000,ar +8.100000,78.300000,ar +8.100000,78.500000,en +8.100000,78.600000,en +8.000000,78.000000,ml +8.100000,78.100000,en +8.000000,78.100000,en +8.000000,78.200000,hi +8.100000,78.200000,ar +8.200000,78.000000,hi +8.300000,78.000000,hi +8.400000,78.100000,ar +8.400000,78.000000,ar +8.500000,78.000000,ar +8.600000,78.000000,ar +8.600000,78.100000,hi +8.500000,78.100000,hi +8.500000,78.200000,ar +8.600000,78.200000,ar +8.400000,78.200000,en +8.400000,78.400000,ar +8.400000,78.500000,ar +8.400000,78.600000,ar +8.500000,78.500000,ar +8.500000,78.600000,ar +8.600000,78.600000,ar +8.600000,78.500000,ar +8.600000,78.400000,ar +8.500000,78.400000,ar +8.500000,78.300000,ar +8.600000,78.300000,ar +8.700000,78.300000,id +8.800000,78.300000,id +8.800000,78.400000,id +8.700000,78.400000,id +8.700000,78.500000,id +8.700000,78.600000,ar +8.800000,78.600000,id +8.800000,78.500000,id +8.900000,78.500000,hi +8.900000,78.600000,en +9.000000,78.600000,hi +9.000000,78.500000,en +9.000000,78.400000,en +8.900000,78.400000,id +8.900000,78.300000,id +9.000000,78.300000,hi +8.900000,78.200000,id +8.700000,78.200000,id +8.800000,78.200000,id +8.800000,78.100000,id +8.700000,78.100000,ar +8.700000,78.000000,ar +8.800000,78.000000,ar +8.900000,78.000000,id +8.900000,78.100000,id +8.800000,77.900000,ar +8.700000,77.900000,ar +8.800000,77.700000,en +8.700000,77.700000,en +8.700000,77.600000,en +8.800000,77.600000,en +8.900000,77.500000,ml +8.800000,77.400000,hi +8.900000,77.400000,hi +8.900000,77.300000,hi +8.900000,77.200000,hi +8.800000,77.200000,hi +8.800000,77.300000,hi +8.700000,77.200000,hi +8.700000,77.300000,hi +8.700000,77.400000,hi +8.800000,77.500000,ml +8.700000,77.500000,ml +8.600000,77.500000,ml +8.500000,77.500000,ml +8.500000,77.400000,hi +8.600000,77.400000,hi +8.600000,77.300000,hi +8.600000,77.200000,hi +8.500000,77.200000,hi +8.500000,77.300000,hi +8.400000,77.300000,hi +8.400000,77.200000,hi +8.300000,77.200000,hi +8.300000,77.300000,hi +8.300000,77.400000,hi +8.400000,77.400000,hi +8.400000,77.500000,ml +8.300000,77.500000,ml +8.300000,77.600000,ml +8.300000,77.700000,ml +8.400000,77.700000,ml +8.400000,77.600000,ml +8.500000,77.600000,id +8.600000,77.600000,en +8.600000,77.700000,en +8.500000,77.700000,en +8.500000,77.800000,en +8.600000,77.900000,ar +8.500000,77.900000,ar +8.400000,77.900000,en +8.400000,77.800000,en +8.300000,77.800000,en +8.300000,77.900000,hi +8.200000,77.900000,en +8.200000,77.800000,en +8.200000,77.600000,ml +8.200000,77.700000,ml +8.100000,77.700000,ml +8.100000,77.600000,ml +8.000000,77.600000,ml +8.000000,77.700000,ml +8.000000,77.800000,ml +8.100000,77.800000,ml +8.100000,77.900000,hi +8.000000,77.900000,ml +8.000000,77.200000,hi +8.100000,77.200000,en +8.100000,77.300000,ml +8.000000,77.300000,hi +8.000000,77.400000,en +8.000000,77.500000,en +8.100000,77.500000,ml +8.100000,77.400000,en +8.200000,77.500000,ml +8.200000,77.400000,ml +8.200000,77.300000,hi +8.200000,77.200000,hi +8.200000,77.100000,hi +8.200000,77.000000,ru +8.200000,76.900000,ru +8.100000,76.900000,hi +8.100000,77.000000,en +8.000000,76.900000,hi +8.000000,77.000000,hi +8.000000,77.100000,hi +8.100000,77.100000,en +8.100000,76.800000,hi +8.200000,76.800000,de +8.500000,76.600000,hi +8.500000,76.700000,ta +8.600000,76.700000,ta +8.600000,76.800000,ta +8.500000,76.800000,ta +8.400000,76.800000,ta +8.400000,76.700000,ta +8.300000,76.700000,ta +8.300000,76.800000,ta +8.300000,76.900000,ta +8.400000,76.900000,ta +8.400000,77.000000,ta +8.300000,77.000000,hi +8.300000,77.100000,hi +8.400000,77.100000,hi +8.500000,77.100000,hi +8.600000,77.100000,ta +8.600000,77.000000,ta +8.500000,77.000000,ta +8.500000,76.900000,ta +8.600000,76.900000,ta +8.700000,76.900000,ta +8.700000,77.000000,ta +8.700000,77.100000,ta +8.800000,77.100000,hi +8.900000,77.100000,hi +8.900000,77.000000,hi +8.800000,77.000000,ta +8.800000,76.900000,ar +8.900000,76.900000,ta +8.900000,76.800000,ar +8.900000,76.700000,ta +8.800000,76.700000,ru +8.800000,76.800000,ar +8.700000,76.800000,ta +8.700000,76.700000,hi +8.700000,76.600000,ru +8.600000,76.600000,hi +8.700000,76.500000,ta +8.800000,76.500000,ta +8.800000,76.600000,ta +8.900000,76.600000,ta +8.900000,76.500000,ta +9.000000,76.500000,ta +9.100000,76.500000,fr +9.100000,76.600000,ta +9.000000,76.600000,ta +9.000000,76.700000,ta +9.000000,76.800000,ta +9.100000,76.800000,ta +9.100000,76.700000,ta +9.200000,76.700000,ta +9.200000,76.800000,ta +9.200000,76.600000,ta +9.200000,76.500000,ta +9.300000,76.500000,ta +9.300000,76.600000,ta +9.400000,76.600000,ta +9.400000,76.500000,ta +9.500000,76.500000,ta +9.600000,76.500000,ta +9.600000,76.600000,ta +9.500000,76.600000,ta +9.500000,76.700000,ta +9.600000,76.700000,ta +9.600000,76.800000,ta +9.500000,76.800000,hi +9.400000,76.800000,ta +9.400000,76.700000,ta +9.300000,76.700000,ta +9.300000,76.800000,ta +9.400000,77.000000,hi +9.400000,76.900000,hi +9.500000,76.900000,hi +9.600000,76.900000,hi +9.600000,77.000000,hi +9.500000,77.000000,hi +9.500000,77.100000,hi +9.600000,77.100000,hi +9.400000,77.100000,hi +9.200000,77.100000,hi +9.300000,77.100000,hi +9.300000,77.000000,hi +9.300000,76.900000,ta +9.200000,76.900000,ta +9.200000,77.000000,hi +9.100000,77.000000,hi +9.100000,76.900000,ta +9.000000,76.900000,hi +9.000000,77.000000,hi +9.000000,77.100000,hi +9.100000,77.100000,hi +9.000000,77.200000,hi +9.000000,77.300000,hi +9.100000,77.300000,hi +9.100000,77.200000,hi +9.200000,77.200000,hi +9.300000,77.200000,hi +9.300000,77.300000,hi +9.200000,77.300000,hi +9.200000,77.400000,hi +9.300000,77.400000,hi +9.300000,77.500000,en +9.200000,77.500000,ml +9.100000,77.500000,hi +9.100000,77.400000,hi +9.000000,77.400000,hi +9.000000,77.500000,ml +9.300000,77.600000,en +9.400000,77.600000,en +9.500000,77.600000,en +9.500000,77.700000,en +9.400000,77.700000,en +9.400000,77.800000,id +9.400000,77.900000,id +9.500000,77.900000,id +9.500000,77.800000,id +9.600000,77.900000,id +9.600000,77.800000,id +9.600000,77.700000,en +9.600000,77.600000,en +9.600000,77.500000,ml +9.600000,77.400000,hi +9.500000,77.400000,hi +9.500000,77.500000,ml +9.400000,77.500000,en +9.400000,77.400000,hi +9.400000,77.300000,hi +9.400000,77.200000,hi +9.500000,77.200000,hi +9.500000,77.300000,hi +9.600000,77.300000,hi +9.600000,77.200000,fr +9.700000,77.200000,hi +9.700000,77.300000,hi +9.800000,77.300000,hi +9.800000,77.200000,hi +9.900000,77.200000,hi +10.000000,77.200000,hi +10.000000,77.300000,hi +9.900000,77.300000,hi +9.900000,77.400000,hi +10.000000,77.400000,hi +10.000000,77.500000,iw +9.900000,77.500000,ml +9.800000,77.500000,ml +9.800000,77.400000,hi +9.700000,77.400000,hi +9.700000,77.500000,ml +9.700000,77.600000,en +9.800000,77.600000,en +9.800000,77.700000,en +9.700000,77.700000,en +9.700000,77.800000,id +9.700000,77.900000,id +9.800000,77.900000,id +9.800000,77.800000,id +9.900000,77.800000,en +10.000000,77.800000,en +10.000000,77.700000,iw +9.900000,77.700000,en +9.900000,77.600000,en +10.000000,77.600000,iw +10.100000,77.600000,iw +10.200000,77.600000,ml +10.200000,77.700000,ml +10.100000,77.700000,ml +10.200000,77.900000,en +10.200000,77.800000,en +10.300000,77.900000,en +10.300000,77.800000,en +10.300000,77.700000,ml +10.300000,77.600000,ml +10.300000,77.500000,ml +10.300000,77.400000,hi +10.200000,77.400000,hi +10.200000,77.500000,ml +10.100000,77.500000,iw +10.100000,77.400000,hi +10.100000,77.300000,hi +10.100000,77.200000,hi +10.200000,77.200000,hi +10.200000,77.300000,hi +10.300000,77.300000,hi +10.300000,77.200000,hi +10.200000,77.100000,hi +10.300000,77.100000,hi +10.300000,77.000000,hi +10.300000,76.900000,hi +10.200000,76.900000,hi +10.200000,77.000000,hi +10.100000,77.000000,hi +10.100000,76.900000,hi +10.000000,76.900000,ta +10.100000,77.100000,hi +10.000000,77.100000,hi +9.900000,77.100000,hi +9.700000,77.100000,hi +9.800000,77.100000,hi +9.800000,77.000000,hi +9.700000,77.000000,hi +9.700000,76.900000,hi +9.800000,76.900000,ta +9.900000,76.900000,ta +9.900000,77.000000,ta +10.000000,77.000000,ta +9.900000,76.700000,ar +9.900000,76.800000,ta +9.800000,76.800000,ta +9.700000,76.800000,ta +9.700000,76.700000,ta +9.800000,76.700000,ta +9.800000,76.600000,ta +9.700000,76.600000,ta +9.700000,76.500000,ta +9.800000,76.500000,ta +9.900000,76.600000,ta +9.900000,76.500000,ta +10.000000,76.500000,ta +10.100000,76.500000,ta +10.100000,76.600000,ar +10.000000,76.600000,ar +10.000000,76.700000,ar +10.000000,76.800000,ar +10.100000,76.800000,ta +10.100000,76.700000,ar +10.200000,76.700000,ar +10.200000,76.800000,ta +10.300000,76.800000,hi +10.300000,76.700000,ta +10.300000,76.600000,ta +10.200000,76.600000,ta +10.200000,76.500000,ta +10.300000,76.500000,ta +10.300000,76.400000,ta +10.300000,76.300000,ta +10.200000,76.300000,ta +10.200000,76.400000,ta +10.100000,76.400000,ta +10.000000,76.400000,ta +10.000000,76.300000,ta +10.100000,76.300000,ta +10.100000,76.200000,ta +10.000000,76.200000,ta +10.000000,76.100000,ta +10.100000,76.100000,ta +10.200000,76.100000,ta +10.200000,76.200000,ta +10.300000,76.200000,ar +10.300000,76.100000,ar +10.300000,76.000000,ta +10.200000,76.000000,ar +10.200000,75.900000,ar +10.300000,75.900000,ar +10.300000,75.800000,en +10.200000,75.800000,ta +10.100000,75.800000,ta +10.000000,75.800000,ta +10.100000,75.900000,en +10.100000,76.000000,fr +10.000000,76.000000,fr +9.900000,76.000000,fr +9.800000,76.000000,hi +9.800000,75.900000,ta +9.900000,75.900000,ta +9.900000,75.800000,fr +9.700000,75.900000,ta +9.700000,76.000000,ta +9.700000,76.100000,ta +9.700000,76.200000,ta +9.800000,76.100000,ta +9.900000,76.100000,ta +9.900000,76.200000,ta +9.800000,76.200000,ta +9.800000,76.300000,ta +9.900000,76.300000,ta +9.900000,76.400000,ta +9.800000,76.400000,ta +9.700000,76.300000,ta +9.700000,76.400000,ta +9.600000,76.400000,fr +9.500000,76.400000,ta +9.500000,76.300000,fr +9.600000,76.300000,fr +9.600000,76.200000,fr +9.600000,76.100000,fr +9.500000,76.100000,fr +9.500000,76.200000,fr +9.400000,76.200000,fr +9.400000,76.100000,fr +9.300000,76.200000,fr +9.300000,76.300000,ta +9.400000,76.300000,ta +9.400000,76.400000,ta +9.300000,76.400000,ta +9.200000,76.400000,ta +9.200000,76.300000,ta +9.100000,76.400000,ta +9.000000,76.400000,ta +9.000000,76.300000,fr +9.100000,76.300000,ta +9.200000,76.200000,ta +9.600000,76.000000,ta +10.100000,75.700000,ar +10.200000,75.700000,ar +9.600000,73.900000,hi +9.600000,74.000000,hi +9.600000,74.100000,hi +9.600000,74.200000,ar +8.900000,76.400000,ta +8.800000,76.400000,ta +15.700000,73.300000,hi +15.800000,73.300000,hi +15.800000,73.400000,en +15.700000,73.400000,en +15.600000,73.400000,mr +15.500000,73.400000,mr +12.500000,73.000000,ml +12.500000,72.900000,ml +12.600000,72.800000,ur +12.500000,72.800000,ur +12.400000,72.800000,ur +12.300000,72.800000,ur +12.300000,72.900000,ml +12.400000,72.900000,ml +12.400000,73.000000,ml +12.300000,73.000000,ml +12.300000,73.100000,ml +12.300000,73.200000,ml +12.400000,73.100000,ml +12.300000,73.300000,ml +12.300000,72.400000,hi +12.400000,72.400000,en +12.400000,72.500000,ur +12.300000,72.500000,ur +12.300000,72.600000,ur +12.300000,72.700000,ur +12.400000,72.700000,ur +12.400000,72.600000,ur +12.500000,72.600000,ur +12.500000,72.700000,ur +12.500000,72.500000,ur +12.500000,72.400000,en +12.600000,72.400000,ru +12.600000,72.500000,ur +12.600000,72.600000,ur +11.600000,74.900000,ar +11.500000,74.100000,ar +11.600000,74.100000,ar +11.600000,74.000000,ar +11.600000,73.900000,kn +11.500000,74.000000,ar +11.400000,74.000000,ar +11.300000,74.100000,ar +11.400000,74.100000,ar +11.200000,74.200000,ar +11.200000,74.100000,en +11.700000,73.900000,kn +11.700000,74.000000,ar +11.800000,74.000000,hi +11.800000,73.900000,ml +12.700000,74.500000,ml +13.000000,74.400000,ml +13.000000,74.500000,en +12.900000,74.500000,ml +12.800000,74.500000,ml +12.800000,74.600000,ml +12.800000,74.700000,ml +12.900000,74.700000,ml +12.900000,74.600000,ml +13.000000,74.600000,ml +13.000000,74.700000,ml +13.000000,74.800000,ml +13.000000,74.900000,ml +12.900000,74.900000,ml +12.900000,74.800000,ml +12.800000,74.800000,ml +12.800000,74.900000,ml +12.700000,74.900000,hi +12.600000,74.900000,hi +12.600000,74.800000,hi +12.700000,74.800000,ml +12.700000,74.700000,ml +12.700000,74.600000,ml +12.600000,74.600000,ml +12.600000,74.700000,ml +12.500000,74.700000,hi +12.500000,74.600000,hi +12.400000,74.600000,hi +12.400000,74.700000,hi +12.400000,74.800000,ar +12.500000,74.800000,kn +12.500000,74.900000,kn +12.400000,74.900000,ar +12.300000,74.900000,ar +12.300000,74.800000,hi +12.200000,74.800000,kn +12.200000,74.900000,ar +12.100000,74.900000,ar +12.100000,74.800000,ar +12.100000,74.700000,ar +12.200000,74.700000,kn +12.300000,74.700000,hi +11.900000,74.800000,ar +12.000000,74.800000,ar +12.000000,74.900000,ar +11.900000,74.900000,ar +11.800000,74.900000,ar +11.700000,74.900000,ar +11.700000,75.000000,ar +11.700000,75.100000,ar +11.800000,75.100000,ar +11.800000,75.000000,ar +11.900000,75.000000,ar +12.000000,75.000000,ar +12.000000,75.100000,ar +11.900000,75.100000,ar +11.900000,75.200000,ar +12.000000,75.200000,ar +12.000000,75.300000,ar +11.900000,75.300000,ar +11.800000,75.300000,ar +11.800000,75.200000,ar +11.700000,75.200000,ar +11.700000,75.300000,ar +11.700000,75.400000,ar +11.800000,75.400000,ar +11.800000,75.500000,ar +11.700000,75.500000,ar +11.800000,75.700000,ar +11.800000,75.600000,ar +11.900000,75.600000,ar +11.900000,75.700000,ar +12.000000,75.700000,ar +12.000000,75.600000,ar +12.000000,75.500000,ar +11.900000,75.500000,ar +11.900000,75.400000,ar +12.000000,75.400000,ar +12.100000,75.400000,ar +12.200000,75.400000,ar +12.200000,75.500000,kn +12.100000,75.500000,ar +12.100000,75.600000,ar +12.100000,75.700000,hi +12.200000,75.700000,hi +12.200000,75.600000,hi +12.300000,75.600000,hi +12.300000,75.700000,hi +12.400000,75.700000,ml +12.400000,75.600000,hi +12.400000,75.500000,hi +12.300000,75.500000,hi +12.300000,75.400000,kn +12.400000,75.400000,hi +12.300000,75.200000,ar +12.300000,75.300000,ar +12.200000,75.300000,ar +12.100000,75.300000,ar +12.100000,75.200000,ar +12.200000,75.200000,ar +12.200000,75.100000,ar +12.100000,75.100000,ar +12.100000,75.000000,ar +12.200000,75.000000,ar +12.300000,75.100000,ar +12.300000,75.000000,ar +12.400000,75.000000,ar +12.500000,75.000000,ar +12.500000,75.100000,kn +12.400000,75.100000,ar +12.400000,75.200000,kn +12.400000,75.300000,kn +12.500000,75.300000,hi +12.500000,75.200000,hi +12.600000,75.200000,hi +12.600000,75.300000,hi +12.700000,75.300000,ml +12.700000,75.200000,hi +12.700000,75.100000,hi +12.600000,75.100000,hi +12.600000,75.000000,hi +12.700000,75.000000,hi +12.800000,75.000000,ml +12.800000,75.100000,ml +12.900000,75.100000,ml +12.900000,75.000000,ml +13.000000,75.000000,ml +13.100000,75.100000,ml +13.000000,75.100000,ml +13.000000,75.200000,ar +13.100000,75.200000,ml +13.100000,75.300000,ml +13.000000,75.300000,ml +12.900000,75.300000,ar +12.900000,75.200000,ar +12.800000,75.200000,ml +12.800000,75.300000,ml +12.800000,75.400000,ml +12.800000,75.500000,ml +12.900000,75.500000,ta +12.900000,75.400000,ta +13.000000,75.400000,ta +13.100000,75.400000,ml +13.100000,75.500000,ta +13.000000,75.500000,ta +13.000000,75.600000,ta +13.100000,75.600000,ta +13.100000,75.700000,ta +13.000000,75.700000,ta +12.900000,75.700000,ta +12.900000,75.600000,ta +12.800000,75.600000,ta +12.800000,75.700000,ta +12.700000,75.700000,ta +12.600000,75.600000,ml +12.700000,75.600000,ml +12.700000,75.500000,ml +12.700000,75.400000,ml +12.600000,75.400000,ml +12.600000,75.500000,hi +12.500000,75.500000,hi +12.500000,75.400000,hi +12.500000,75.600000,ml +12.600000,75.700000,ml +12.500000,75.700000,ml +12.500000,75.800000,bo +12.600000,75.800000,bo +12.500000,75.900000,bo +12.500000,76.000000,bo +12.600000,76.000000,bo +12.600000,75.900000,bo +12.700000,75.900000,ta +12.700000,76.000000,ta +12.700000,75.800000,ta +12.800000,75.800000,ta +12.900000,75.800000,ta +13.000000,75.800000,ta +13.100000,75.800000,ta +13.000000,75.900000,ta +13.100000,75.900000,ta +13.100000,76.000000,ta +13.000000,76.000000,ta +12.900000,76.000000,ta +12.900000,75.900000,ta +12.800000,75.900000,ta +12.800000,76.000000,ta +12.900000,76.200000,ta +12.900000,76.100000,ta +13.000000,76.100000,ta +13.100000,76.100000,ta +13.100000,76.200000,ta +13.000000,76.200000,ta +13.000000,76.300000,ta +13.100000,76.300000,ta +13.100000,76.400000,ta +13.000000,76.400000,ta +12.900000,76.300000,ta +12.900000,76.400000,ta +12.800000,76.400000,ta +12.700000,76.400000,ta +12.700000,76.300000,ta +12.800000,76.300000,ta +12.800000,76.200000,ta +12.800000,76.100000,ta +12.700000,76.100000,ml +12.700000,76.200000,ta +12.600000,76.200000,bo +12.600000,76.100000,bo +12.500000,76.100000,bo +12.500000,76.200000,bo +12.500000,76.300000,ta +12.600000,76.300000,ta +12.600000,76.400000,ta +12.500000,76.400000,ta +12.400000,76.400000,ta +12.400000,76.300000,ta +12.300000,76.300000,ta +12.300000,76.400000,ta +12.200000,76.400000,ta +12.100000,76.400000,ta +12.100000,76.300000,ml +12.200000,76.300000,ta +12.200000,76.200000,bo +12.100000,76.200000,ml +12.100000,76.100000,ml +12.200000,76.100000,bo +12.300000,76.100000,bo +12.300000,76.200000,bo +12.400000,76.200000,bo +12.400000,76.100000,bo +12.400000,76.000000,zh +12.300000,76.000000,bo +12.300000,75.900000,hi +12.400000,75.900000,bo +12.400000,75.800000,ml +12.300000,75.800000,hi +12.200000,75.800000,hi +12.100000,75.800000,hi +12.100000,75.900000,hi +12.200000,75.900000,ml +12.200000,76.000000,ml +12.100000,76.000000,hi +12.000000,76.000000,kn +11.900000,75.900000,ar +12.000000,75.900000,hi +12.000000,75.800000,kn +11.900000,75.800000,ar +11.800000,75.800000,ar +11.800000,75.900000,ar +11.900000,76.000000,ar +11.800000,76.000000,ar +11.800000,76.100000,ar +11.800000,76.200000,ar +11.900000,76.200000,hi +11.900000,76.100000,kn +12.000000,76.100000,hi +12.000000,76.200000,hi +12.000000,76.300000,hi +12.000000,76.400000,ml +11.900000,76.400000,hi +11.900000,76.300000,hi +11.800000,76.300000,kn +11.800000,76.400000,ta +11.700000,76.400000,hi +11.600000,76.400000,hi +11.600000,76.300000,hi +11.700000,76.300000,ta +11.700000,76.200000,ta +11.700000,76.100000,ar +11.600000,76.100000,ar +11.600000,76.200000,ta +11.500000,76.200000,ta +11.500000,76.100000,hi +11.400000,76.100000,hi +11.400000,76.200000,hi +11.400000,76.300000,ta +11.500000,76.300000,ar +11.500000,76.400000,ar +11.400000,76.400000,ar +11.300000,76.400000,ar +11.300000,76.300000,hi +11.200000,76.400000,hi +11.100000,76.400000,hi +11.100000,76.300000,hi +11.200000,76.300000,hi +11.200000,76.200000,hi +11.100000,76.200000,hi +11.100000,76.100000,hi +11.200000,76.100000,hi +11.300000,76.200000,hi +11.300000,76.100000,hi +11.300000,76.000000,hi +11.300000,75.900000,hi +11.200000,75.900000,hi +11.200000,76.000000,hi +11.100000,76.000000,hi +11.100000,75.900000,hi +11.100000,75.800000,hi +11.200000,75.800000,ar +11.300000,75.800000,ar +11.400000,75.800000,ar +11.500000,75.800000,ar +11.400000,75.900000,hi +11.400000,76.000000,hi +11.500000,76.000000,hi +11.500000,75.900000,ar +11.600000,75.900000,hi +11.600000,76.000000,hi +11.700000,76.000000,hi +11.700000,75.900000,hi +11.600000,75.800000,hi +11.700000,75.800000,hi +11.700000,75.700000,hi +11.700000,75.600000,ar +11.600000,75.600000,ar +11.600000,75.700000,hi +11.500000,75.700000,ar +11.400000,75.700000,ar +11.400000,75.600000,ar +11.500000,75.600000,ar +11.500000,75.500000,ar +11.400000,75.500000,ar +11.400000,75.400000,ar +11.500000,75.400000,ar +11.600000,75.400000,ar +11.600000,75.500000,ar +11.600000,75.300000,ar +11.600000,75.200000,ar +11.600000,75.100000,ar +11.600000,75.000000,ar +11.500000,75.000000,ar +11.500000,75.100000,ar +11.400000,75.000000,ar +11.400000,75.100000,ar +11.400000,75.200000,ar +11.500000,75.200000,ar +11.500000,75.300000,ar +11.400000,75.300000,ar +11.300000,75.300000,ar +11.200000,75.300000,ar +11.200000,75.200000,ar +11.300000,75.200000,ar +11.300000,75.100000,ar +11.100000,75.200000,en +11.100000,75.300000,en +11.000000,75.300000,hi +11.000000,75.400000,ar +11.000000,75.500000,hi +11.100000,75.400000,ar +11.200000,75.400000,ar +11.300000,75.400000,hi +11.300000,75.500000,ar +11.200000,75.500000,hi +11.200000,75.600000,ar +11.300000,75.600000,ar +11.300000,75.700000,hi +11.200000,75.700000,ar +11.100000,75.700000,ar +11.100000,75.600000,ar +11.000000,75.600000,ar +11.000000,75.700000,hi +10.900000,75.600000,hi +10.900000,75.700000,hi +10.800000,75.700000,hi +10.700000,75.700000,hi +10.700000,75.600000,hi +10.800000,75.600000,hi +10.800000,75.500000,hi +10.700000,75.500000,hi +10.700000,75.400000,ar +10.800000,75.400000,ar +10.900000,75.500000,hi +10.900000,75.400000,ar +10.900000,75.300000,hi +10.600000,75.500000,hi +10.500000,75.500000,hi +10.500000,75.600000,hi +10.600000,75.600000,hi +10.600000,75.700000,hi +10.500000,75.700000,hi +10.400000,75.700000,ar +10.400000,75.600000,hi +10.300000,75.600000,hi +10.300000,75.700000,ar +10.400000,75.800000,ta +10.400000,76.000000,ta +10.400000,75.900000,ar +10.500000,75.900000,ar +10.500000,76.000000,ta +10.600000,76.000000,ta +10.600000,75.900000,ar +10.500000,75.800000,ar +10.600000,75.800000,hi +10.700000,75.800000,hi +10.800000,75.800000,hi +10.900000,75.800000,hi +11.000000,75.800000,hi +10.900000,75.900000,hi +11.000000,75.900000,hi +11.000000,76.000000,hi +10.900000,76.000000,hi +10.800000,76.000000,hi +10.800000,75.900000,hi +10.700000,75.900000,hi +10.700000,76.000000,ar +10.700000,76.100000,ar +10.700000,76.200000,ar +10.800000,76.200000,ar +10.800000,76.100000,hi +10.900000,76.100000,hi +11.000000,76.100000,hi +11.000000,76.200000,hi +10.900000,76.200000,hi +10.900000,76.300000,hi +11.000000,76.300000,hi +11.000000,76.400000,hi +10.900000,76.400000,ta +10.800000,76.400000,ta +10.800000,76.300000,hi +10.700000,76.300000,ta +10.700000,76.400000,ta +10.600000,76.400000,ta +10.500000,76.300000,ta +10.600000,76.300000,ta +10.600000,76.200000,ta +10.600000,76.100000,ta +10.500000,76.100000,ar +10.500000,76.200000,ta +10.400000,76.100000,ar +10.400000,76.200000,ta +10.400000,76.300000,ta +10.500000,76.400000,ta +10.400000,76.400000,ta +10.400000,76.500000,ta +10.400000,76.600000,ta +10.500000,76.600000,hi +10.500000,76.500000,ta +10.600000,76.500000,ta +10.600000,76.600000,ta +10.600000,76.700000,hi +10.600000,76.800000,hi +10.500000,76.800000,hi +10.500000,76.700000,hi +10.400000,76.700000,hi +10.400000,76.800000,hi +10.400000,76.900000,hi +10.500000,76.900000,hi +10.500000,77.000000,hi +10.400000,77.000000,hi +10.400000,77.100000,hi +10.500000,77.100000,ml +10.600000,77.100000,ml +10.700000,77.100000,ml +10.700000,77.000000,ml +10.600000,77.000000,hi +10.600000,76.900000,hi +10.700000,76.900000,hi +10.800000,76.900000,hi +10.800000,77.000000,ml +10.800000,77.100000,ml +10.900000,77.100000,ml +11.000000,77.100000,ml +11.000000,77.000000,ml +10.900000,77.000000,ml +10.900000,76.900000,ml +11.000000,76.900000,ml +11.000000,76.800000,hi +11.000000,76.700000,hi +10.900000,76.700000,hi +10.900000,76.800000,hi +10.800000,76.800000,hi +10.700000,76.800000,hi +10.700000,76.700000,hi +10.800000,76.700000,hi +10.800000,76.600000,ta +10.700000,76.600000,hi +10.700000,76.500000,ta +10.800000,76.500000,ta +10.900000,76.500000,ta +10.900000,76.600000,hi +11.000000,76.600000,hi +11.000000,76.500000,ta +11.100000,76.500000,hi +11.200000,76.500000,ar +11.200000,76.600000,hi +11.100000,76.600000,hi +11.100000,76.700000,hi +11.100000,76.800000,ml +11.200000,76.800000,ml +11.200000,76.700000,hi +11.300000,76.700000,ml +11.300000,76.800000,ml +11.400000,76.800000,ml +11.400000,76.700000,hi +11.300000,76.600000,hi +11.300000,76.500000,hi +11.400000,76.500000,hi +11.400000,76.600000,hi +11.500000,76.600000,hi +11.500000,76.500000,hi +11.600000,76.500000,hi +11.700000,76.500000,kn +11.700000,76.600000,hi +11.600000,76.600000,hi +11.600000,76.700000,ml +11.700000,76.700000,hi +11.700000,76.800000,hi +11.600000,76.800000,ml +11.500000,76.800000,ml +11.500000,76.700000,ml +11.500000,77.000000,ml +11.500000,76.900000,ml +11.600000,76.900000,ml +11.700000,76.900000,hi +11.700000,77.000000,hi +11.600000,77.000000,kn +11.600000,77.100000,kn +11.700000,77.100000,hi +11.500000,77.100000,ml +11.300000,77.100000,ml +11.400000,77.100000,ml +11.400000,77.000000,ml +11.400000,76.900000,ml +11.300000,76.900000,ml +11.300000,77.000000,ml +11.200000,77.000000,ml +11.200000,76.900000,ml +11.100000,76.900000,ml +11.100000,77.000000,ml +11.100000,77.100000,ml +11.200000,77.100000,ml +11.100000,77.200000,ml +11.200000,77.200000,ml +11.200000,77.300000,ar +11.100000,77.300000,ar +11.100000,77.400000,bn +11.100000,77.500000,bn +11.200000,77.500000,ar +11.200000,77.400000,bn +11.300000,77.400000,bn +11.300000,77.500000,ar +11.400000,77.500000,ar +11.400000,77.400000,bn +11.400000,77.300000,en +11.300000,77.300000,ml +11.300000,77.200000,ml +11.400000,77.200000,ml +11.500000,77.200000,en +11.500000,77.300000,en +11.600000,77.300000,en +11.600000,77.200000,kn +11.700000,77.200000,hi +11.700000,77.300000,kn +11.700000,77.400000,kn +11.700000,77.500000,kn +11.600000,77.500000,ar +11.600000,77.400000,en +11.500000,77.400000,bn +11.500000,77.500000,ar +11.500000,77.600000,ar +11.500000,77.700000,ar +11.600000,77.700000,ar +11.600000,77.600000,ar +11.700000,77.600000,kn +11.800000,77.700000,kn +11.700000,77.700000,kn +11.700000,77.800000,kn +11.800000,77.800000,kn +11.800000,77.900000,kn +11.700000,77.900000,kn +11.600000,77.900000,ar +11.600000,77.800000,ar +11.500000,77.800000,ar +11.500000,77.900000,ar +11.400000,77.900000,ar +11.300000,77.900000,ar +11.300000,77.800000,ar +11.400000,77.800000,ar +11.400000,77.700000,ar +11.400000,77.600000,ar +11.300000,77.600000,bn +11.300000,77.700000,ar +11.200000,77.700000,ar +11.200000,77.600000,ar +11.100000,77.600000,bn +11.100000,77.700000,bn +11.100000,77.800000,bn +11.200000,77.800000,ar +11.200000,77.900000,ar +11.000000,77.300000,ar +11.000000,77.200000,ml +10.900000,77.200000,ml +10.900000,77.300000,ar +10.800000,77.200000,ml +10.800000,77.300000,ar +10.800000,77.400000,ml +10.800000,77.500000,ml +10.700000,77.500000,ml +10.600000,77.500000,ml +10.600000,77.400000,ml +10.700000,77.400000,ml +10.700000,77.300000,ml +10.700000,77.200000,ml +10.600000,77.200000,ml +10.600000,77.300000,ml +10.500000,77.300000,ml +10.500000,77.200000,ml +10.400000,77.200000,hi +10.400000,77.300000,hi +10.400000,77.400000,ml +10.500000,77.400000,ml +10.500000,77.500000,ml +10.400000,77.500000,ml +10.400000,77.600000,ml +10.400000,77.700000,ml +10.500000,77.700000,ml +10.500000,77.600000,ml +10.600000,77.600000,ml +10.600000,77.700000,ml +10.600000,77.800000,en +10.600000,77.900000,en +10.500000,77.900000,en +10.500000,77.800000,en +10.400000,77.800000,en +10.400000,77.900000,en +10.400000,78.000000,en +10.500000,78.000000,en +10.500000,78.100000,en +10.400000,78.100000,en +10.500000,78.200000,en +11.000000,78.500000,id +11.100000,78.500000,id +11.100000,78.600000,id +11.000000,78.600000,id +10.900000,78.600000,id +10.900000,78.500000,id +10.600000,78.600000,id +10.500000,78.400000,en +10.500000,78.300000,en +10.500000,78.600000,id +10.500000,78.700000,id +10.500000,78.800000,id +10.600000,78.700000,id +10.700000,78.800000,te +10.600000,78.800000,id +10.700000,78.900000,te +10.700000,79.000000,te +10.600000,79.000000,te +10.600000,78.900000,te +10.500000,78.900000,id +10.500000,79.000000,id +10.500000,79.100000,te +10.600000,79.100000,te +10.500000,79.200000,te +10.600000,79.200000,te +10.700000,79.200000,te +10.700000,79.100000,te +10.800000,79.100000,te +10.900000,79.100000,te +10.800000,79.200000,te +10.900000,79.200000,te +11.100000,78.900000,id +11.000000,78.900000,id +10.900000,79.000000,te +10.800000,79.000000,te +10.800000,78.900000,te +10.900000,78.900000,id +10.900000,78.800000,id +10.800000,78.800000,te +10.900000,78.700000,id +11.000000,78.700000,id +11.000000,78.800000,id +11.100000,78.800000,id +11.100000,78.700000,hi +11.200000,78.700000,id +11.200000,78.800000,id +11.300000,78.800000,id +11.300000,78.700000,id +11.300000,78.900000,id +11.200000,78.900000,id +11.800000,78.900000,en +11.700000,78.900000,en +11.700000,78.700000,en +11.700000,78.800000,en +11.800000,78.800000,en +11.800000,78.700000,en +11.800000,78.600000,az +11.700000,78.600000,en +11.700000,78.500000,en +11.800000,78.500000,az +11.800000,78.400000,az +11.800000,78.300000,az +11.700000,78.300000,en +11.700000,78.400000,en +11.300000,78.500000,id +11.300000,78.600000,id +11.200000,78.600000,id +11.200000,78.500000,id +11.800000,78.200000,az +11.900000,78.200000,az +12.000000,78.200000,az +12.100000,78.200000,az +12.100000,78.100000,en +12.000000,78.100000,en +12.000000,78.000000,en +12.100000,78.000000,en +12.200000,78.000000,en +12.200000,78.100000,en +12.300000,78.100000,en +12.300000,78.000000,en +12.400000,78.000000,kn +12.500000,78.000000,te +12.500000,78.100000,te +12.400000,78.100000,kn +12.400000,78.200000,kn +12.500000,78.200000,te +12.200000,78.200000,az +12.200000,78.300000,az +12.200000,78.400000,az +12.400000,78.300000,kn +12.500000,78.300000,te +12.500000,78.400000,te +12.500000,78.500000,te +12.500000,78.600000,te +12.400000,78.600000,en +12.300000,78.600000,en +12.200000,78.500000,az +12.200000,78.600000,az +12.100000,78.600000,az +12.100000,78.500000,az +12.100000,78.300000,az +12.100000,78.400000,az +12.000000,78.400000,tr +12.000000,78.300000,az +11.900000,78.300000,az +11.900000,78.400000,az +11.900000,78.500000,az +12.000000,78.500000,hi +12.000000,78.600000,hi +11.900000,78.600000,hi +11.900000,78.700000,en +11.900000,78.800000,en +12.000000,78.800000,de +12.000000,78.700000,en +12.100000,78.700000,en +12.200000,78.800000,de +12.100000,78.800000,de +12.100000,78.900000,ru +12.200000,78.900000,ru +12.200000,79.000000,de +12.100000,79.000000,hi +12.000000,79.000000,de +12.000000,78.900000,ru +11.900000,78.900000,en +12.000000,79.100000,de +12.000000,79.300000,de +12.000000,79.200000,de +12.100000,79.200000,de +12.100000,79.300000,de +12.200000,79.300000,de +12.200000,79.200000,de +12.100000,79.100000,de +12.200000,79.100000,de +12.300000,79.100000,de +12.400000,79.100000,de +12.300000,79.200000,de +12.300000,79.300000,de +12.400000,79.300000,de +12.400000,79.200000,de +12.500000,79.300000,fr +12.500000,79.200000,fr +12.500000,79.100000,fr +12.500000,79.000000,en +12.500000,78.900000,en +12.400000,78.900000,de +12.400000,79.000000,de +12.300000,79.000000,de +12.300000,78.900000,de +12.300000,78.800000,ru +12.300000,78.700000,en +12.400000,78.700000,en +12.400000,78.800000,ru +12.500000,78.800000,ur +12.500000,78.700000,ur +12.600000,78.700000,ur +12.600000,78.800000,ur +12.700000,78.800000,ur +12.700000,78.700000,ur +12.800000,78.700000,ur +12.900000,78.700000,te +12.900000,78.800000,te +12.800000,78.800000,ur +12.800000,78.900000,bn +12.900000,78.900000,bn +12.900000,79.000000,bn +12.800000,79.000000,bn +12.700000,79.000000,bn +12.700000,78.900000,bn +12.600000,78.900000,ur +12.600000,79.000000,en +12.600000,79.100000,fr +12.700000,79.100000,bn +12.600000,79.200000,fr +12.600000,79.300000,fr +12.700000,79.300000,fr +12.700000,79.200000,bn +12.800000,79.200000,bn +12.800000,79.300000,bn +12.900000,79.300000,bn +12.900000,79.200000,bn +12.800000,79.100000,bn +12.900000,79.100000,bn +13.000000,79.100000,te +13.100000,79.100000,hi +13.000000,79.200000,te +13.000000,79.300000,te +13.100000,79.300000,te +13.100000,79.200000,te +13.200000,79.200000,hi +13.200000,79.300000,hi +13.300000,79.300000,hi +13.300000,79.200000,ta +13.200000,79.100000,ta +13.300000,79.100000,ta +13.300000,79.000000,ta +13.200000,78.900000,hi +13.200000,79.000000,hi +13.100000,79.000000,hi +13.000000,79.000000,te +13.000000,78.900000,te +13.100000,78.900000,hi +13.100000,78.800000,hi +13.000000,78.800000,hi +13.000000,78.700000,hi +13.100000,78.700000,hi +13.200000,78.800000,ta +13.200000,78.700000,ta +13.200000,78.600000,kn +13.100000,78.500000,hi +13.200000,78.500000,hi +13.200000,78.400000,te +13.200000,78.300000,te +13.100000,78.300000,te +13.100000,78.400000,te +13.000000,78.300000,ta +13.000000,78.400000,te +13.000000,78.500000,ta +13.100000,78.600000,kn +13.000000,78.600000,hi +12.900000,78.600000,hi +12.900000,78.500000,hi +12.800000,78.500000,hi +12.800000,78.600000,te +12.700000,78.600000,ur +12.600000,78.600000,te +12.600000,78.500000,te +12.700000,78.500000,hi +12.700000,78.400000,hi +12.600000,78.400000,te +12.600000,78.300000,te +12.700000,78.300000,hi +12.800000,78.300000,hi +12.800000,78.400000,hi +12.900000,78.400000,hi +12.900000,78.300000,hi +12.900000,78.200000,ta +12.800000,78.200000,hi +12.600000,78.200000,te +12.700000,78.200000,hi +12.700000,78.100000,te +12.600000,78.100000,te +12.600000,78.000000,kn +12.700000,78.000000,kn +12.800000,78.000000,kn +12.800000,78.100000,hi +12.900000,78.100000,ta +12.900000,78.000000,ta +13.000000,78.000000,ta +13.000000,78.100000,ta +13.000000,78.200000,ta +13.100000,78.200000,ta +13.200000,78.200000,te +13.200000,78.100000,te +13.100000,78.100000,te +13.100000,78.000000,ta +13.200000,78.000000,ta +13.200000,77.900000,ta +13.200000,77.800000,fa +13.100000,77.800000,ta +13.100000,77.900000,ta +13.000000,77.900000,ta +12.900000,77.900000,ta +12.900000,77.800000,ta +13.000000,77.800000,ta +13.000000,77.700000,ta +12.900000,77.700000,ta +12.900000,77.600000,ta +13.000000,77.600000,kn +13.100000,77.600000,ta +13.100000,77.700000,ta +13.200000,77.700000,fa +13.200000,77.600000,fa +13.200000,77.500000,fa +13.100000,77.500000,fa +13.100000,77.400000,fa +13.200000,77.400000,fa +13.200000,77.300000,ta +13.200000,77.200000,ta +13.100000,77.200000,ta +13.100000,77.300000,ta +13.000000,77.300000,ta +13.000000,77.200000,ta +12.900000,77.200000,ta +12.900000,77.300000,ta +12.900000,77.400000,fa +13.000000,77.400000,fa +13.000000,77.500000,ta +12.900000,77.500000,ta +12.800000,77.500000,ta +12.700000,77.500000,ta +12.700000,77.400000,ta +12.800000,77.400000,fa +12.800000,77.300000,ta +12.800000,77.200000,ta +12.700000,77.200000,ta +12.700000,77.300000,ta +12.600000,77.300000,ta +12.600000,77.200000,ta +12.500000,77.200000,ta +12.600000,77.400000,ta +12.600000,77.500000,ta +12.600000,77.600000,kn +12.600000,77.700000,kn +12.700000,77.700000,ta +12.700000,77.600000,ta +12.800000,77.600000,ta +12.800000,77.700000,ta +12.800000,77.800000,ta +12.800000,77.900000,kn +12.700000,77.900000,kn +12.700000,77.800000,kn +12.600000,77.800000,kn +12.600000,77.900000,kn +12.500000,77.900000,kn +12.400000,77.900000,kn +12.400000,77.800000,kn +12.500000,77.800000,kn +12.500000,77.700000,kn +12.500000,77.600000,hi +12.400000,77.600000,hi +12.400000,77.700000,hi +12.300000,77.700000,hi +12.300000,77.600000,hi +12.200000,77.600000,hi +12.200000,77.700000,hi +12.200000,77.800000,hi +12.300000,77.800000,kn +12.300000,77.900000,en +12.200000,77.900000,en +12.100000,77.900000,en +12.100000,77.800000,hi +12.000000,77.800000,hi +12.000000,77.900000,en +11.900000,77.900000,kn +11.900000,77.800000,kn +11.900000,77.700000,hi +11.800000,77.600000,hi +11.900000,77.600000,hi +12.000000,77.600000,hi +12.000000,77.700000,hi +12.100000,77.700000,hi +12.100000,77.600000,hi +12.100000,77.500000,hi +12.100000,77.400000,ta +12.000000,77.400000,ta +12.000000,77.500000,hi +11.900000,77.500000,hi +11.800000,77.500000,hi +11.800000,77.400000,hi +11.900000,77.400000,ta +11.900000,77.300000,ta +11.800000,77.300000,en +11.800000,77.200000,hi +11.900000,77.200000,hi +12.000000,77.200000,ta +12.000000,77.300000,ta +12.100000,77.300000,ta +12.100000,77.200000,ta +12.200000,77.200000,ta +12.300000,77.200000,ta +12.300000,77.300000,ta +12.200000,77.300000,ta +12.200000,77.400000,ta +12.200000,77.500000,hi +12.300000,77.500000,ta +12.300000,77.400000,ta +12.400000,77.400000,ta +12.400000,77.500000,ta +12.500000,77.500000,ta +12.500000,77.400000,ta +12.500000,77.300000,ta +12.400000,77.300000,ta +12.400000,77.200000,ta +12.400000,77.100000,ta +12.400000,77.000000,ta +12.400000,76.900000,ar +12.300000,77.000000,ta +12.300000,76.900000,ar +12.200000,76.900000,ta +12.200000,77.000000,ta +12.200000,77.100000,ta +12.300000,77.100000,ta +12.100000,77.100000,ta +12.000000,77.100000,ta +11.800000,77.100000,hi +11.900000,77.100000,ta +11.900000,77.000000,ta +11.800000,77.000000,hi +11.800000,76.900000,hi +11.900000,76.900000,ta +12.000000,76.900000,ta +12.000000,77.000000,ta +12.100000,77.000000,ta +12.100000,76.900000,ta +12.100000,76.800000,ta +12.100000,76.700000,ta +12.000000,76.700000,ta +12.000000,76.800000,ta +11.900000,76.800000,ta +11.800000,76.800000,ta +11.800000,76.700000,ta +11.900000,76.700000,ta +11.900000,76.600000,ml +11.800000,76.600000,ta +11.800000,76.500000,ta +11.900000,76.500000,hi +12.000000,76.500000,ta +12.000000,76.600000,ta +12.100000,76.600000,ta +12.100000,76.500000,ta +12.200000,76.500000,ta +12.200000,76.600000,ta +12.200000,76.700000,ta +12.200000,76.800000,ta +12.300000,76.700000,ar +12.300000,76.800000,ta +12.400000,76.800000,ta +12.400000,76.700000,ta +12.400000,76.600000,ta +12.300000,76.600000,ta +12.300000,76.500000,ta +12.400000,76.500000,ta +12.500000,76.500000,ta +12.500000,76.600000,ta +12.600000,76.600000,ta +12.600000,76.500000,ta +12.700000,76.500000,ta +12.800000,76.500000,ta +12.800000,76.600000,ta +12.700000,76.600000,ta +12.700000,76.700000,ta +12.800000,76.700000,ta +12.800000,76.800000,ta +12.700000,76.800000,ta +12.600000,76.800000,ta +12.600000,76.700000,ta +12.500000,76.700000,ta +12.500000,76.800000,ta +12.500000,76.900000,ta +12.600000,76.900000,ta +12.600000,77.000000,ta +12.500000,77.000000,ta +12.500000,77.100000,ta +12.600000,77.100000,ta +12.700000,77.100000,ta +12.800000,77.100000,ta +12.800000,77.000000,ta +12.700000,77.000000,ta +12.700000,76.900000,ta +12.800000,76.900000,ta +12.900000,76.900000,ta +13.000000,76.900000,ta +13.000000,77.000000,ta +12.900000,77.000000,ta +12.900000,77.100000,ta +13.000000,77.100000,ta +13.100000,77.100000,ta +13.200000,77.100000,ta +13.200000,77.000000,ta +13.100000,77.000000,ta +13.100000,76.900000,ta +13.200000,76.900000,ta +13.100000,76.700000,ta +13.100000,76.800000,ta +13.000000,76.800000,ta +12.900000,76.800000,ta +12.900000,76.700000,ta +13.000000,76.700000,ta +13.000000,76.600000,ta +12.900000,76.600000,ta +12.900000,76.500000,ta +13.000000,76.500000,ta +13.100000,76.600000,ta +13.100000,76.500000,ta +13.200000,76.500000,ta +13.200000,76.600000,ta +13.300000,76.600000,ta +13.300000,76.500000,ta +13.400000,76.500000,ta +13.500000,76.500000,ta +13.500000,76.600000,ta +13.400000,76.600000,ta +13.400000,76.700000,ta +13.500000,76.700000,ta +13.500000,76.800000,fi +13.400000,76.800000,ta +13.300000,76.800000,ta +13.300000,76.700000,ta +13.200000,76.700000,ta +13.200000,76.800000,ta +13.300000,76.900000,ta +13.300000,77.000000,ta +13.300000,77.100000,ta +13.400000,77.100000,ta +13.500000,77.100000,ta +13.500000,77.000000,ta +13.400000,77.000000,ta +13.400000,76.900000,ta +13.500000,76.900000,ta +13.600000,76.900000,te +13.700000,76.900000,fi +13.700000,77.000000,te +13.600000,77.000000,te +13.600000,77.100000,te +13.700000,77.100000,te +13.800000,77.100000,hi +13.900000,77.100000,hi +13.900000,77.000000,hi +13.800000,77.000000,hi +13.800000,76.900000,te +13.900000,76.900000,hi +13.900000,76.800000,te +13.900000,76.700000,ta +13.800000,76.700000,ta +13.800000,76.800000,te +13.700000,76.800000,fi +13.600000,76.800000,fi +13.600000,76.700000,fi +13.700000,76.700000,ta +13.700000,76.600000,ta +13.600000,76.600000,en +13.600000,76.500000,en +13.700000,76.500000,ta +13.800000,76.500000,ta +13.800000,76.600000,ta +13.900000,76.600000,ta +13.900000,76.500000,ta +14.000000,76.500000,ta +14.000000,76.600000,ta +14.000000,76.700000,ta +14.000000,76.800000,te +14.100000,76.800000,te +14.100000,76.700000,ta +14.200000,76.800000,te +14.200000,76.700000,te +14.200000,76.600000,te +14.100000,76.600000,ta +14.100000,76.500000,te +14.200000,76.500000,te +14.300000,76.500000,te +14.300000,76.600000,te +14.400000,76.600000,te +14.400000,76.500000,te +14.500000,76.500000,te +14.600000,76.600000,te +14.500000,76.600000,te +14.500000,76.700000,hi +14.600000,76.700000,hi +14.600000,76.800000,hi +14.500000,76.800000,hi +14.400000,76.800000,hi +14.400000,76.700000,te +14.300000,76.700000,te +14.300000,76.800000,te +14.300000,76.900000,hi +14.300000,77.000000,hi +14.400000,77.000000,hi +14.400000,76.900000,hi +14.500000,76.900000,hi +14.600000,76.900000,hi +14.600000,77.000000,kn +14.500000,77.000000,kn +14.500000,77.100000,kn +14.600000,77.100000,kn +14.400000,77.100000,hi +14.200000,77.100000,hi +14.300000,77.100000,hi +14.200000,76.900000,hi +14.200000,77.000000,en +14.100000,77.000000,en +14.100000,76.900000,hi +14.000000,76.900000,hi +14.000000,77.000000,hi +14.000000,77.100000,hi +14.100000,77.100000,hi +14.000000,77.200000,hi +14.100000,77.200000,hi +14.100000,77.300000,hi +14.000000,77.300000,hi +14.000000,77.400000,hi +14.000000,77.500000,kn +14.100000,77.500000,kn +14.100000,77.400000,hi +14.200000,77.400000,te +14.200000,77.500000,kn +14.300000,77.500000,kn +14.300000,77.400000,hi +14.300000,77.300000,hi +14.200000,77.300000,hi +14.200000,77.200000,hi +14.300000,77.200000,hi +14.400000,77.200000,hi +14.400000,77.300000,hi +14.500000,77.200000,kn +14.500000,77.300000,kn +14.600000,77.400000,es +14.600000,77.500000,es +14.500000,77.500000,es +14.500000,77.400000,es +14.400000,77.400000,kn +14.400000,77.500000,pl +14.400000,77.600000,ru +14.400000,77.700000,pl +14.500000,77.700000,pl +14.500000,77.600000,pl +14.600000,77.600000,es +14.700000,77.700000,es +14.600000,77.700000,es +14.600000,77.800000,es +14.700000,77.800000,es +14.700000,77.900000,pl +14.600000,77.900000,pl +14.500000,77.900000,pl +14.500000,77.800000,pl +14.400000,77.800000,ru +14.400000,77.900000,ru +14.300000,77.900000,ru +14.200000,77.900000,hi +14.200000,77.800000,hi +14.300000,77.800000,ru +14.300000,77.700000,ru +14.300000,77.600000,ru +14.200000,77.600000,ko +14.200000,77.700000,ru +14.100000,77.700000,ru +14.100000,77.600000,ko +14.000000,77.600000,kn +14.000000,77.700000,kn +14.000000,77.800000,kn +14.100000,77.800000,ru +14.100000,77.900000,hi +14.000000,77.900000,kn +13.900000,77.900000,hi +13.900000,77.800000,hi +13.800000,77.800000,hi +13.800000,77.900000,hi +13.700000,77.900000,hi +13.700000,77.800000,te +13.700000,77.700000,te +13.700000,77.600000,hi +13.800000,77.600000,kn +13.800000,77.700000,kn +13.900000,77.700000,kn +13.900000,77.600000,kn +13.900000,77.500000,kn +13.800000,77.500000,kn +13.800000,77.400000,hi +13.900000,77.400000,kn +13.900000,77.300000,kn +13.900000,77.200000,hi +13.800000,77.200000,hi +13.800000,77.300000,hi +13.700000,77.300000,hi +13.700000,77.200000,te +13.600000,77.200000,te +13.600000,77.300000,te +13.600000,77.400000,te +13.700000,77.400000,te +13.700000,77.500000,kn +13.600000,77.500000,te +13.500000,77.500000,te +13.500000,77.400000,te +13.500000,77.300000,te +13.500000,77.200000,ta +13.400000,77.300000,ta +13.400000,77.200000,ta +13.300000,77.200000,ta +13.300000,77.300000,ta +13.300000,77.400000,ta +13.400000,77.400000,te +13.400000,77.500000,te +13.300000,77.500000,te +13.300000,77.600000,te +13.300000,77.700000,ta +13.400000,77.700000,te +13.400000,77.600000,te +13.500000,77.600000,te +13.600000,77.600000,te +13.600000,77.700000,te +13.500000,77.700000,te +13.500000,77.800000,te +13.600000,77.800000,te +13.600000,77.900000,te +13.500000,77.900000,te +13.400000,77.900000,te +13.400000,77.800000,te +13.300000,77.800000,te +13.300000,77.900000,te +13.300000,78.000000,te +13.400000,78.000000,te +13.400000,78.100000,te +13.300000,78.100000,te +13.300000,78.200000,te +13.400000,78.200000,te +13.500000,78.200000,hi +13.600000,78.200000,hi +13.600000,78.100000,hi +13.500000,78.100000,te +13.500000,78.000000,te +13.600000,78.000000,te +13.700000,78.000000,hi +13.700000,78.100000,hi +13.800000,78.100000,hi +13.800000,78.000000,hi +13.900000,78.000000,hi +13.900000,78.100000,kn +13.900000,78.200000,kn +13.800000,78.200000,kn +13.700000,78.200000,hi +13.700000,78.300000,kn +13.700000,78.400000,kn +13.800000,78.400000,ta +13.800000,78.300000,kn +13.900000,78.300000,kn +14.000000,78.300000,kn +14.000000,78.400000,kn +13.900000,78.400000,kn +13.900000,78.500000,en +14.000000,78.500000,en +14.000000,78.600000,en +13.900000,78.600000,en +13.800000,78.600000,ta +13.800000,78.500000,ta +13.700000,78.500000,ta +13.700000,78.600000,ta +13.600000,78.600000,ta +13.500000,78.600000,ta +13.500000,78.500000,kn +13.600000,78.500000,ta +13.600000,78.400000,kn +13.600000,78.300000,kn +13.500000,78.300000,hi +13.500000,78.400000,kn +13.400000,78.400000,hi +13.400000,78.300000,hi +13.300000,78.300000,te +13.300000,78.400000,hi +13.300000,78.500000,hi +13.400000,78.500000,kn +13.400000,78.600000,ta +13.300000,78.600000,kn +13.300000,78.700000,ta +13.300000,78.800000,ta +13.400000,78.800000,ta +13.400000,78.700000,ta +13.500000,78.700000,ta +13.600000,78.700000,ta +13.600000,78.800000,ta +13.500000,78.800000,ta +13.500000,78.900000,ta +13.600000,78.900000,ta +13.600000,79.000000,ta +13.500000,79.000000,ta +13.400000,79.000000,ta +13.400000,78.900000,ta +13.300000,78.900000,ta +13.400000,79.100000,ta +13.400000,79.200000,ta +13.400000,79.300000,ta +13.500000,79.200000,ta +13.500000,79.300000,ta +13.600000,79.300000,ta +13.600000,79.200000,ta +13.500000,79.100000,ta +13.600000,79.100000,ta +13.700000,79.100000,ta +13.800000,79.100000,ta +13.700000,79.200000,ta +13.700000,79.300000,ta +13.800000,79.300000,ta +13.800000,79.200000,ta +13.900000,79.200000,ta +13.900000,79.300000,ta +14.000000,79.300000,ta +14.000000,79.200000,ta +13.900000,79.100000,ta +14.000000,79.100000,ta +14.000000,79.000000,ta +14.000000,78.900000,ta +13.900000,78.900000,ta +13.900000,79.000000,ta +13.800000,79.000000,ta +13.700000,79.000000,ta +13.700000,78.900000,ta +13.800000,78.900000,ta +13.800000,78.800000,ta +13.700000,78.800000,ta +13.700000,78.700000,ta +13.800000,78.700000,ta +13.900000,78.700000,ta +13.900000,78.800000,ta +14.000000,78.800000,ta +14.000000,78.700000,ta +14.100000,78.700000,en +14.100000,78.800000,en +14.200000,78.800000,en +14.200000,78.700000,en +14.300000,78.700000,ta +14.300000,78.800000,ta +14.300000,78.900000,ta +14.400000,79.000000,ta +14.300000,79.000000,ta +14.200000,79.000000,ta +14.200000,78.900000,en +14.100000,78.900000,en +14.100000,79.000000,ta +14.100000,79.100000,ta +14.200000,79.100000,ta +14.100000,79.200000,ta +14.100000,79.300000,ta +14.200000,79.300000,ta +14.200000,79.200000,ta +14.300000,79.200000,ta +14.300000,79.300000,ta +14.400000,79.300000,ta +14.400000,79.200000,ta +14.300000,79.100000,ta +14.400000,79.100000,ta +14.500000,79.100000,en +14.500000,79.200000,en +14.500000,79.300000,en +14.600000,79.200000,en +14.600000,79.300000,en +14.700000,79.300000,en +14.700000,79.200000,en +14.600000,79.100000,en +14.700000,79.100000,en +14.700000,79.000000,ta +14.700000,78.900000,ta +14.600000,78.900000,ta +14.600000,79.000000,ta +14.500000,79.000000,ta +14.400000,78.900000,ta +14.500000,78.900000,ta +14.500000,78.800000,ta +14.400000,78.800000,ta +14.400000,78.700000,ta +14.500000,78.700000,pl +14.600000,78.700000,pl +14.600000,78.800000,pl +14.700000,78.800000,pl +14.700000,78.700000,pl +14.700000,78.600000,pl +14.600000,78.600000,pl +14.600000,78.500000,pl +14.700000,78.500000,pl +14.700000,78.400000,pl +14.700000,78.300000,pl +14.600000,78.300000,pl +14.600000,78.400000,pl +14.500000,78.400000,pl +14.500000,78.300000,pl +14.400000,78.300000,pl +14.400000,78.400000,pl +14.400000,78.500000,en +14.500000,78.500000,pl +14.500000,78.600000,pl +14.400000,78.600000,ta +14.300000,78.600000,ta +14.300000,78.500000,en +14.200000,78.500000,en +14.200000,78.600000,en +14.100000,78.600000,en +14.100000,78.500000,en +14.100000,78.400000,kn +14.100000,78.300000,kn +14.200000,78.300000,kn +14.200000,78.400000,pl +14.300000,78.400000,pl +14.300000,78.300000,pl +14.300000,78.200000,pl +14.200000,78.200000,kn +14.000000,78.200000,kn +14.100000,78.200000,kn +14.100000,78.100000,kn +14.000000,78.100000,kn +14.000000,78.000000,kn +14.100000,78.000000,ru +14.200000,78.000000,ru +14.200000,78.100000,kn +14.300000,78.100000,pl +14.300000,78.000000,ru +14.400000,78.000000,ru +14.500000,78.000000,pl +14.500000,78.100000,pl +14.400000,78.100000,pl +14.400000,78.200000,pl +14.500000,78.200000,pl +14.600000,78.200000,pl +14.700000,78.200000,pl +14.700000,78.100000,pl +14.600000,78.100000,pl +14.600000,78.000000,pl +14.700000,78.000000,pl +14.800000,78.000000,pl +14.900000,78.000000,pl +14.900000,78.100000,pl +14.800000,78.100000,pl +14.800000,78.200000,pl +14.900000,78.200000,pl +15.000000,78.200000,pl +15.000000,78.100000,pl +15.000000,78.000000,pl +15.100000,78.000000,pl +15.100000,78.100000,pl +15.200000,78.100000,pl +15.200000,78.000000,pl +15.300000,78.000000,pl +15.400000,78.000000,pl +15.400000,78.100000,pl +15.300000,78.100000,pl +15.300000,78.200000,en +15.400000,78.200000,en +15.200000,78.200000,en +15.100000,78.200000,pl +15.200000,78.300000,en +15.300000,78.300000,pl +15.400000,78.300000,pl +15.400000,78.400000,pl +15.300000,78.400000,pl +15.300000,78.500000,pl +15.400000,78.500000,pl +15.400000,78.600000,pl +15.300000,78.600000,pl +15.200000,78.500000,ta +15.200000,78.600000,ta +15.100000,78.600000,ta +15.000000,78.600000,pl +15.000000,78.500000,pl +15.100000,78.500000,ta +15.100000,78.400000,en +15.100000,78.300000,mr +15.000000,78.300000,pl +15.000000,78.400000,pl +14.900000,78.400000,pl +14.900000,78.300000,pl +14.800000,78.300000,pl +14.800000,78.400000,pl +14.800000,78.500000,pl +14.900000,78.500000,pl +14.900000,78.600000,pl +14.800000,78.600000,pl +14.800000,78.700000,pl +14.800000,78.800000,pl +14.900000,78.800000,pl +14.900000,78.700000,pl +15.000000,78.700000,pl +15.100000,78.700000,hi +15.100000,78.800000,ta +15.000000,78.800000,pl +15.000000,78.900000,ta +15.100000,78.900000,ta +15.100000,79.000000,en +15.000000,79.000000,en +14.900000,79.000000,en +14.900000,78.900000,ta +14.800000,78.900000,en +14.800000,79.000000,en +14.800000,79.100000,en +14.900000,79.100000,en +14.800000,79.200000,en +14.800000,79.300000,en +14.900000,79.300000,en +14.900000,79.200000,en +15.000000,79.200000,en +15.000000,79.300000,en +15.100000,79.300000,en +15.100000,79.200000,en +15.000000,79.100000,en +15.100000,79.100000,en +15.200000,79.100000,en +15.300000,79.100000,en +15.200000,79.200000,en +15.200000,79.300000,en +15.300000,79.300000,en +15.300000,79.200000,en +15.400000,79.200000,en +15.400000,79.300000,en +15.500000,79.300000,en +15.500000,79.200000,en +15.400000,79.100000,en +15.500000,79.100000,en +15.500000,79.000000,en +15.500000,78.900000,en +15.400000,78.900000,en +15.400000,79.000000,en +15.300000,79.000000,en +15.200000,79.000000,en +15.200000,78.900000,ta +15.300000,78.900000,ta +15.300000,78.800000,ta +15.200000,78.800000,ta +15.200000,78.700000,ta +15.300000,78.700000,pl +15.400000,78.800000,en +15.400000,78.700000,pl +15.500000,78.700000,pl +15.500000,78.800000,en +15.600000,78.800000,en +15.600000,78.700000,pl +15.700000,78.700000,pl +15.800000,78.700000,en +15.800000,78.800000,en +15.700000,78.800000,en +15.700000,78.900000,en +15.800000,78.900000,en +15.800000,79.000000,en +15.700000,79.000000,en +15.600000,79.000000,en +15.600000,78.900000,en +15.600000,79.100000,en +15.600000,79.200000,en +15.600000,79.300000,en +15.700000,79.300000,en +15.700000,79.200000,en +15.800000,79.300000,en +15.800000,79.200000,en +15.700000,79.100000,en +15.800000,79.100000,en +15.900000,79.100000,mr +16.000000,79.100000,mr +15.900000,79.200000,en +15.900000,79.300000,en +16.000000,79.300000,en +16.000000,79.200000,en +16.100000,79.200000,en +16.100000,79.300000,en +16.100000,79.100000,mr +16.200000,79.100000,mr +16.200000,79.000000,mr +16.200000,78.900000,mr +16.100000,78.900000,mr +16.100000,79.000000,mr +16.000000,79.000000,mr +15.900000,79.000000,mr +15.900000,78.900000,mr +16.000000,78.900000,mr +16.000000,78.800000,mr +15.900000,78.800000,mr +15.900000,78.700000,mr +16.000000,78.700000,mr +16.100000,78.700000,mr +16.100000,78.800000,mr +16.200000,78.800000,mr +16.200000,78.700000,mr +16.200000,78.600000,en +16.100000,78.600000,en +16.100000,78.500000,en +16.200000,78.500000,en +16.200000,78.400000,en +16.200000,78.300000,en +16.100000,78.300000,en +16.100000,78.400000,en +16.000000,78.400000,en +16.000000,78.300000,ur +15.900000,78.300000,ur +15.900000,78.400000,en +15.900000,78.500000,en +16.000000,78.500000,en +16.000000,78.600000,en +15.900000,78.600000,en +15.800000,78.600000,en +15.800000,78.500000,en +15.700000,78.500000,pl +15.700000,78.600000,pl +15.600000,78.600000,pl +15.500000,78.600000,pl +15.500000,78.500000,pl +15.600000,78.500000,pl +15.600000,78.400000,pl +15.500000,78.400000,pl +15.500000,78.300000,pl +15.600000,78.300000,pl +15.700000,78.300000,pl +15.700000,78.400000,pl +15.800000,78.400000,en +15.800000,78.300000,ur +15.800000,78.200000,ur +15.700000,78.200000,ur +15.500000,78.200000,en +15.600000,78.200000,ur +15.600000,78.100000,ur +15.500000,78.100000,pl +15.500000,78.000000,pl +15.600000,78.000000,ur +15.700000,78.000000,ur +15.700000,78.100000,ur +15.800000,78.100000,ur +15.800000,78.000000,ur +15.900000,78.000000,ur +16.000000,78.000000,ur +16.000000,78.100000,ur +15.900000,78.100000,ur +15.900000,78.200000,ur +16.000000,78.200000,ur +16.100000,78.200000,en +16.200000,78.200000,en +16.100000,78.000000,kn +16.100000,77.900000,kn +16.100000,77.800000,kn +16.000000,77.800000,pl +16.000000,77.900000,ur +15.900000,77.900000,ur +15.900000,77.800000,pl +15.900000,77.700000,kn +15.900000,77.600000,kn +16.000000,77.600000,hi +16.000000,77.700000,kn +16.100000,77.700000,kn +16.100000,77.600000,hi +16.100000,77.500000,hi +16.000000,77.500000,hi +16.000000,77.400000,hi +16.100000,77.400000,te +16.100000,77.300000,te +16.100000,77.200000,te +16.000000,77.200000,te +16.000000,77.300000,te +15.900000,77.300000,hi +15.900000,77.200000,hi +15.800000,77.200000,kn +15.800000,77.300000,kn +15.800000,77.400000,kn +15.900000,77.400000,hi +15.900000,77.500000,kn +15.800000,77.500000,kn +15.700000,77.500000,kn +15.700000,77.400000,kn +15.700000,77.300000,kn +15.700000,77.200000,kn +15.600000,77.200000,kn +15.600000,77.300000,kn +15.500000,77.200000,kn +15.500000,77.300000,kn +15.500000,77.400000,kn +15.600000,77.400000,kn +15.600000,77.500000,kn +15.500000,77.500000,kn +15.500000,77.600000,en +15.500000,77.700000,pl +15.600000,77.700000,pl +15.600000,77.600000,kn +15.700000,77.600000,kn +15.800000,77.600000,kn +15.800000,77.700000,kn +15.700000,77.700000,kn +15.700000,77.800000,pl +15.800000,77.800000,pl +15.800000,77.900000,ur +15.700000,77.900000,ur +15.600000,77.900000,ur +15.600000,77.800000,pl +15.500000,77.800000,pl +15.500000,77.900000,pl +15.400000,77.900000,pl +15.300000,77.900000,pl +15.300000,77.800000,pl +15.400000,77.800000,pl +15.400000,77.700000,pl +15.400000,77.600000,ta +15.300000,77.600000,ta +15.300000,77.700000,pl +15.200000,77.700000,ta +15.200000,77.600000,ta +15.100000,77.600000,ta +15.100000,77.700000,ta +15.100000,77.800000,pl +15.200000,77.800000,pl +15.200000,77.900000,pl +15.100000,77.900000,pl +15.000000,77.900000,pl +15.000000,77.800000,pl +14.900000,77.800000,pl +14.900000,77.900000,pl +14.800000,77.900000,pl +14.800000,77.800000,es +14.800000,77.700000,es +14.700000,77.600000,es +14.800000,77.600000,es +14.900000,77.600000,es +14.900000,77.700000,es +15.000000,77.700000,ta +15.000000,77.600000,ta +15.000000,77.500000,ta +15.000000,77.400000,ta +14.900000,77.400000,es +14.900000,77.500000,es +14.800000,77.500000,es +14.700000,77.500000,es +14.700000,77.400000,es +14.800000,77.400000,es +14.800000,77.200000,kn +14.900000,77.200000,kn +14.900000,77.300000,kn +15.000000,77.300000,kn +15.000000,77.200000,kn +15.100000,77.200000,kn +15.200000,77.200000,kn +15.200000,77.300000,kn +15.100000,77.300000,kn +15.100000,77.400000,ta +15.100000,77.500000,ta +15.200000,77.500000,ta +15.200000,77.400000,ta +15.300000,77.400000,ta +15.300000,77.500000,ta +15.400000,77.500000,kn +15.400000,77.400000,kn +15.400000,77.300000,kn +15.300000,77.300000,kn +15.300000,77.200000,kn +15.400000,77.200000,kn +15.300000,77.100000,te +15.400000,77.100000,hi +15.300000,76.900000,te +15.300000,77.000000,te +15.200000,77.000000,te +15.200000,76.900000,te +15.100000,76.900000,te +15.100000,77.000000,te +15.100000,77.100000,te +15.200000,77.100000,te +15.000000,77.100000,hi +14.900000,77.100000,hi +14.700000,77.100000,kn +14.800000,77.100000,kn +14.800000,77.000000,kn +14.700000,77.000000,kn +14.700000,76.900000,kn +14.800000,76.900000,hi +14.900000,76.900000,hi +14.900000,77.000000,hi +15.000000,77.000000,hi +15.000000,76.900000,te +15.000000,76.800000,te +15.000000,76.700000,te +14.900000,76.700000,te +14.900000,76.800000,te +14.800000,76.800000,hi +14.700000,76.800000,hi +14.700000,76.700000,te +14.800000,76.700000,hi +14.800000,76.600000,te +14.700000,76.600000,te +14.700000,76.500000,en +14.800000,76.500000,en +14.900000,76.500000,en +14.900000,76.600000,te +15.000000,76.600000,te +15.000000,76.500000,te +15.100000,76.500000,te +15.100000,76.600000,te +15.100000,76.700000,te +15.100000,76.800000,te +15.200000,76.800000,te +15.200000,76.700000,te +15.300000,76.800000,te +15.300000,76.700000,te +15.300000,76.600000,te +15.200000,76.600000,te +15.200000,76.500000,te +15.300000,76.500000,iw +15.400000,76.500000,te +15.400000,76.600000,te +15.500000,76.600000,te +15.500000,76.500000,te +15.600000,76.500000,te +15.700000,76.500000,te +15.700000,76.600000,te +15.600000,76.600000,te +15.600000,76.700000,te +15.700000,76.700000,te +15.700000,76.800000,te +15.600000,76.800000,te +15.500000,76.800000,te +15.500000,76.700000,te +15.400000,76.700000,te +15.400000,76.800000,te +15.400000,76.900000,te +15.500000,76.900000,te +15.500000,77.000000,hi +15.400000,77.000000,te +15.500000,77.100000,hi +15.600000,77.100000,hi +15.700000,77.100000,hi +15.700000,77.000000,hi +15.600000,77.000000,hi +15.600000,76.900000,te +15.700000,76.900000,te +15.800000,76.900000,te +15.900000,76.900000,mr +15.900000,77.000000,te +15.800000,77.000000,te +15.800000,77.100000,hi +15.900000,77.100000,hi +16.000000,77.100000,te +16.100000,77.100000,te +16.100000,77.000000,mr +16.000000,77.000000,mr +16.000000,76.900000,mr +16.100000,76.900000,mr +16.100000,76.800000,mr +16.000000,76.700000,te +16.000000,76.800000,mr +15.900000,76.800000,te +15.800000,76.800000,te +15.800000,76.700000,te +15.900000,76.700000,te +15.900000,76.600000,te +15.800000,76.600000,te +15.800000,76.500000,te +15.900000,76.500000,te +16.000000,76.500000,te +16.000000,76.600000,te +16.000000,76.300000,mr +16.000000,76.200000,mr +16.000000,76.100000,mr +15.900000,76.100000,mr +15.900000,76.200000,mr +15.800000,76.100000,mr +15.800000,76.200000,mr +15.800000,76.300000,mr +15.900000,76.300000,mr +15.700000,76.400000,te +15.600000,76.300000,te +15.600000,76.400000,te +15.500000,76.400000,te +15.400000,76.400000,te +15.400000,76.300000,te +15.500000,76.300000,te +15.500000,76.200000,te +15.400000,76.200000,te +15.400000,76.100000,te +15.500000,76.100000,te +15.500000,76.000000,te +15.400000,76.000000,te +15.400000,75.900000,id +15.500000,75.900000,id +15.400000,75.800000,id +15.500000,75.800000,id +15.700000,75.800000,mr +15.800000,75.800000,mr +15.700000,75.900000,mr +15.800000,76.000000,mr +15.800000,75.900000,mr +15.900000,75.900000,mr +15.900000,76.000000,mr +16.000000,76.000000,mr +16.000000,75.900000,mr +15.900000,75.800000,mr +16.000000,75.800000,mr +16.000000,75.700000,mr +16.000000,75.600000,mr +15.900000,75.600000,mr +15.900000,75.700000,mr +15.800000,75.700000,mr +15.700000,75.700000,mr +15.700000,75.600000,mr +15.800000,75.600000,mr +15.800000,75.500000,mr +15.700000,75.500000,mr +15.900000,75.500000,mr +16.000000,75.500000,mr +16.000000,75.300000,mr +15.900000,75.300000,mr +15.900000,75.200000,mr +16.000000,75.200000,mr +16.000000,75.100000,mr +16.000000,75.000000,mr +15.900000,75.000000,mr +15.900000,75.100000,mr +15.800000,75.100000,mr +15.800000,75.000000,mr +15.700000,75.000000,mr +15.700000,75.100000,mr +15.700000,75.200000,mr +15.800000,75.200000,mr +15.800000,75.300000,mr +15.700000,75.300000,mr +15.600000,75.300000,mr +15.500000,75.300000,mr +15.500000,75.200000,mr +15.600000,75.200000,mr +15.600000,75.100000,mr +15.600000,75.000000,mr +15.500000,75.000000,mr +15.500000,75.100000,mr +15.400000,75.100000,mr +15.400000,75.000000,mr +15.300000,75.000000,mr +15.300000,75.100000,mr +15.300000,75.200000,mr +15.400000,75.200000,te +15.400000,75.300000,mr +15.300000,75.300000,mr +15.300000,75.400000,te +15.400000,75.500000,id +15.400000,75.400000,te +15.500000,75.400000,te +15.600000,75.400000,te +15.500000,75.500000,id +15.500000,75.600000,id +15.500000,75.700000,id +15.400000,75.600000,id +15.400000,75.700000,id +15.300000,75.700000,id +15.300000,75.600000,id +15.200000,75.600000,id +15.200000,75.700000,id +15.100000,75.700000,id +15.100000,75.600000,id +15.100000,75.500000,id +15.100000,75.400000,te +15.200000,75.400000,te +15.200000,75.500000,id +15.300000,75.500000,id +15.200000,75.300000,mr +15.200000,75.200000,mr +15.200000,75.100000,mr +15.200000,75.000000,mr +15.100000,75.000000,bo +15.100000,75.100000,bo +15.000000,75.000000,zh +15.000000,75.100000,bo +15.000000,75.200000,bo +15.100000,75.200000,bo +15.100000,75.300000,mr +14.800000,75.200000,bo +14.900000,75.200000,bo +14.900000,75.100000,bo +14.900000,75.000000,hi +14.800000,75.000000,bo +14.800000,75.100000,bo +14.700000,75.100000,en +14.700000,75.000000,en +14.600000,75.000000,en +14.600000,75.100000,en +14.600000,75.700000,te +14.600000,75.800000,te +14.600000,75.900000,te +15.100000,75.800000,id +15.200000,75.800000,id +15.300000,75.800000,id +15.200000,75.900000,id +15.300000,75.900000,id +15.300000,76.000000,te +15.200000,76.000000,te +15.100000,76.000000,te +15.100000,75.900000,id +15.100000,76.200000,te +15.100000,76.100000,te +15.200000,76.100000,te +15.300000,76.100000,te +15.300000,76.200000,te +15.200000,76.200000,te +15.200000,76.300000,te +15.300000,76.300000,te +15.300000,76.400000,te +15.200000,76.400000,te +15.100000,76.400000,te +15.100000,76.300000,te +15.000000,76.400000,te +14.400000,76.400000,te +14.300000,76.400000,te +14.300000,76.300000,te +14.400000,76.300000,te +14.400000,76.200000,te +14.300000,76.200000,te +14.300000,76.100000,te +14.400000,76.100000,te +14.500000,76.100000,te +14.600000,76.100000,te +14.600000,76.000000,te +14.500000,76.000000,te +14.500000,75.900000,te +14.500000,75.800000,te +14.400000,75.800000,te +14.300000,75.800000,te +14.300000,75.900000,te +14.400000,75.900000,te +14.400000,76.000000,te +14.300000,76.000000,te +14.200000,76.000000,te +14.100000,76.000000,en +14.100000,75.900000,ta +14.200000,75.900000,te +14.200000,75.800000,te +14.100000,75.800000,ta +14.000000,75.800000,ta +13.900000,75.800000,ta +13.900000,75.900000,ta +14.000000,75.900000,ta +14.000000,76.000000,en +13.900000,76.000000,en +13.900000,76.100000,en +13.900000,76.200000,en +14.000000,76.200000,te +14.000000,76.100000,en +14.100000,76.100000,en +14.200000,76.100000,te +14.200000,76.200000,te +14.100000,76.200000,te +14.100000,76.300000,te +14.200000,76.300000,te +14.200000,76.400000,te +14.100000,76.400000,te +14.000000,76.400000,te +14.000000,76.300000,te +13.900000,76.300000,en +13.900000,76.400000,ta +13.800000,76.400000,ta +13.800000,76.300000,en +13.800000,76.200000,ta +13.800000,76.100000,ta +13.700000,76.200000,ta +13.700000,76.100000,ta +13.600000,76.100000,ta +13.600000,76.200000,ta +13.600000,76.300000,en +13.700000,76.300000,en +13.700000,76.400000,ta +13.600000,76.400000,en +13.500000,76.400000,ta +13.500000,76.300000,ta +13.400000,76.300000,ta +13.400000,76.400000,ta +13.300000,76.400000,ta +13.200000,76.400000,ta +13.200000,76.300000,ta +13.300000,76.300000,ta +13.200000,76.200000,ta +13.200000,76.100000,ta +13.300000,76.100000,ta +13.400000,76.100000,ta +13.400000,76.200000,ta +13.500000,76.200000,ta +13.500000,76.100000,ta +13.500000,76.000000,ta +13.500000,75.900000,ta +13.400000,75.900000,ta +13.400000,76.000000,ta +13.300000,76.000000,ta +13.200000,76.000000,ta +13.200000,75.900000,ta +13.300000,75.900000,ta +13.200000,75.800000,ta +13.300000,75.800000,ta +13.400000,75.800000,ta +13.500000,75.800000,ta +13.600000,75.800000,ta +13.600000,75.900000,ta +13.600000,76.000000,ta +13.700000,75.900000,ta +13.700000,76.000000,ta +13.800000,76.000000,ta +13.800000,75.900000,ta +13.700000,75.800000,ta +13.800000,75.800000,ta +13.800000,75.700000,ta +13.700000,75.700000,ta +13.700000,75.600000,ta +13.800000,75.600000,ta +13.800000,75.500000,ta +13.800000,75.400000,ta +13.700000,75.400000,ta +13.700000,75.500000,ta +13.600000,75.500000,ta +13.600000,75.400000,ta +13.500000,75.400000,ta +13.500000,75.500000,ta +13.500000,75.600000,ta +13.600000,75.600000,ta +13.600000,75.700000,ta +13.500000,75.700000,ta +13.400000,75.600000,ta +13.400000,75.700000,ta +13.300000,75.700000,ta +13.200000,75.700000,ta +13.200000,75.600000,ta +13.300000,75.600000,ta +13.300000,75.500000,ta +13.200000,75.500000,ml +13.200000,75.400000,ml +13.300000,75.400000,ta +13.400000,75.500000,ta +13.400000,75.400000,ta +13.400000,75.300000,ta +13.400000,75.200000,ta +13.300000,75.200000,ml +13.300000,75.300000,ta +13.200000,75.300000,ml +13.200000,75.200000,ml +13.200000,75.100000,ml +13.100000,75.000000,ml +13.200000,75.000000,ml +13.300000,75.000000,zh +13.300000,75.100000,ml +13.400000,75.100000,ta +13.400000,75.000000,zh +13.500000,75.000000,zh +13.600000,75.000000,zh +13.600000,75.100000,ta +13.500000,75.100000,ta +13.500000,75.200000,ta +13.500000,75.300000,ta +13.600000,75.300000,ta +13.600000,75.200000,ta +13.700000,75.200000,ta +13.700000,75.300000,ta +13.800000,75.300000,ta +13.800000,75.200000,ta +13.800000,75.100000,ta +13.700000,75.100000,ta +13.700000,75.000000,ml +13.800000,75.000000,ml +13.900000,75.000000,ml +13.900000,75.100000,en +14.000000,75.100000,en +14.000000,75.000000,ml +14.100000,75.000000,ml +14.100000,75.100000,en +14.100000,75.200000,en +14.100000,75.300000,en +14.000000,75.300000,en +14.000000,75.200000,en +13.900000,75.200000,en +13.900000,75.300000,en +13.900000,75.400000,ta +14.000000,75.400000,ta +14.000000,75.500000,ta +13.900000,75.500000,ta +13.900000,75.600000,ta +13.900000,75.700000,ta +14.000000,75.700000,ta +14.000000,75.600000,ta +14.100000,75.600000,ta +14.100000,75.700000,ta +14.200000,75.700000,te +14.100000,75.500000,ta +14.100000,75.400000,ta +14.300000,75.700000,te +14.400000,75.700000,te +14.500000,75.700000,te +14.200000,75.100000,en +14.200000,75.000000,en +14.500000,74.900000,en +14.500000,74.800000,en +14.400000,74.800000,fa +14.400000,74.900000,en +14.300000,74.900000,en +14.200000,74.900000,en +14.200000,74.800000,ur +14.300000,74.800000,fa +14.300000,74.700000,fa +14.200000,74.700000,ur +14.200000,74.600000,fa +14.300000,74.600000,fa +14.400000,74.600000,fa +14.400000,74.700000,fa +14.500000,74.700000,en +14.500000,74.600000,ml +14.500000,74.500000,ru +14.400000,74.500000,ru +14.500000,74.400000,ru +14.400000,74.300000,ru +14.400000,74.400000,ru +14.300000,74.400000,ml +14.300000,74.300000,iw +14.200000,74.300000,ur +14.200000,74.400000,en +14.300000,74.500000,iw +14.200000,74.500000,ur +14.100000,74.500000,ur +14.000000,74.500000,hi +14.100000,74.400000,ur +14.100000,74.300000,ur +14.000000,74.300000,ur +14.000000,74.400000,ur +13.900000,74.400000,ur +13.900000,74.300000,ur +13.800000,74.300000,ur +13.800000,74.400000,ur +13.900000,74.500000,ur +13.800000,74.500000,ur +13.800000,74.600000,ur +13.800000,74.700000,ur +13.900000,74.700000,ur +13.900000,74.600000,ur +14.000000,74.600000,ur +14.100000,74.600000,ur +14.100000,74.700000,ur +14.000000,74.700000,ur +14.000000,74.800000,ml +14.100000,74.800000,ur +14.100000,74.900000,ml +14.000000,74.900000,ml +13.900000,74.800000,hi +13.900000,74.900000,ml +13.800000,74.900000,ml +13.700000,74.900000,ml +13.700000,74.800000,ml +13.800000,74.800000,ml +13.700000,74.600000,ml +13.700000,74.700000,ml +13.600000,74.700000,ml +13.600000,74.600000,zh +13.500000,74.600000,zh +13.500000,74.700000,zh +13.500000,74.800000,zh +13.600000,74.800000,zh +13.600000,74.900000,zh +13.500000,74.900000,zh +13.400000,74.900000,zh +13.400000,74.800000,zh +13.300000,74.800000,ru +13.300000,74.900000,zh +13.200000,74.900000,ml +13.100000,74.900000,ml +13.100000,74.800000,ml +13.200000,74.800000,ta +13.200000,74.700000,ta +13.100000,74.700000,ml +13.100000,74.600000,ml +13.200000,74.600000,ta +13.300000,74.600000,ta +13.300000,74.700000,ml +13.400000,74.700000,ml +13.400000,74.600000,zh +13.400000,74.500000,ml +13.300000,74.500000,ml +13.200000,74.500000,ml +13.100000,74.500000,ml +13.200000,74.400000,ml +13.100000,74.400000,ml +13.300000,74.300000,ml +13.300000,74.400000,ml +13.400000,74.400000,ml +13.400000,74.300000,ml +13.500000,74.300000,ml +13.600000,74.400000,en +13.500000,74.400000,ml +13.500000,74.500000,ml +13.600000,74.500000,ml +13.700000,74.500000,ml +13.700000,74.400000,ml +13.600000,74.300000,ur +13.700000,74.300000,ur +13.700000,74.200000,ur +13.600000,74.200000,ur +13.800000,74.200000,ur +13.900000,74.200000,ur +13.900000,74.100000,ur +14.000000,74.100000,ur +14.000000,74.200000,ur +14.100000,74.200000,en +14.100000,74.100000,ur +14.200000,74.000000,ur +14.200000,74.100000,ur +14.200000,74.200000,en +14.300000,74.200000,iw +14.300000,74.100000,ru +14.400000,74.200000,ru +14.400000,74.100000,ru +14.400000,74.000000,ru +14.300000,74.000000,ru +14.400000,73.900000,ru +14.600000,73.800000,ru +14.700000,73.800000,ru +14.800000,73.800000,kn +15.100000,73.600000,mr +15.000000,73.700000,mr +15.100000,73.700000,de +15.100000,73.800000,mr +15.000000,73.800000,de +14.900000,73.700000,mr +14.900000,73.800000,hi +14.900000,73.900000,ru +14.900000,74.000000,ru +15.000000,74.000000,de +15.000000,73.900000,kn +15.100000,73.900000,mr +15.100000,74.000000,mr +15.100000,74.100000,mr +15.200000,74.100000,ru +15.200000,74.200000,ru +15.100000,74.200000,ru +15.000000,74.200000,ru +15.000000,74.100000,mr +14.900000,74.100000,mr +14.900000,74.200000,ru +14.800000,74.200000,ml +14.700000,74.200000,ru +14.700000,74.100000,ru +14.800000,74.100000,mr +14.800000,74.000000,ru +14.800000,73.900000,ru +14.700000,73.900000,mr +14.700000,74.000000,mr +14.600000,74.000000,mr +14.600000,73.900000,ru +14.500000,73.900000,ru +14.500000,74.000000,ru +14.500000,74.100000,iw +14.600000,74.100000,ru +14.600000,74.200000,ru +14.500000,74.200000,ru +14.500000,74.300000,ru +14.600000,74.400000,ru +14.600000,74.300000,hi +14.700000,74.300000,ru +14.800000,74.300000,ru +14.800000,74.400000,ru +14.700000,74.400000,ru +14.800000,74.500000,ru +14.700000,74.500000,ru +14.600000,74.500000,ru +14.600000,74.600000,en +14.700000,74.700000,en +14.600000,74.700000,en +14.600000,74.800000,en +14.600000,74.900000,en +14.700000,74.900000,en +14.700000,74.800000,en +14.800000,74.800000,bo +14.800000,74.900000,bo +14.800000,74.700000,en +14.700000,74.600000,en +14.800000,74.600000,en +14.900000,74.600000,en +15.000000,74.600000,en +15.000000,74.700000,en +14.900000,74.700000,en +14.900000,74.800000,hi +14.900000,74.900000,zh +15.000000,74.900000,hi +15.000000,74.800000,bo +15.100000,74.800000,bo +15.100000,74.900000,bo +15.200000,74.900000,bo +15.200000,74.800000,bo +15.200000,74.700000,en +15.100000,74.700000,en +15.100000,74.600000,en +15.200000,74.600000,en +15.200000,74.500000,en +15.100000,74.500000,en +15.000000,74.500000,en +14.900000,74.500000,en +15.000000,74.400000,ml +14.900000,74.400000,ml +14.900000,74.300000,mr +15.000000,74.300000,mr +15.100000,74.300000,mr +15.100000,74.400000,mr +15.200000,74.400000,mr +15.200000,74.300000,ru +15.300000,74.300000,ru +15.300000,74.400000,mr +15.400000,74.400000,mr +15.400000,74.300000,kn +15.500000,74.300000,kn +15.500000,74.400000,mr +15.500000,74.500000,mr +15.400000,74.500000,mr +15.300000,74.500000,en +15.300000,74.600000,en +15.400000,74.600000,mr +15.400000,74.700000,mr +15.300000,74.700000,ta +15.300000,74.800000,ta +15.300000,74.900000,mr +15.400000,74.900000,mr +15.400000,74.800000,ta +15.500000,74.800000,ta +15.500000,74.900000,ta +15.600000,74.900000,mr +15.600000,74.800000,mr +15.600000,74.700000,mr +15.500000,74.700000,mr +15.500000,74.600000,mr +15.600000,74.600000,mr +15.700000,74.600000,mr +15.700000,74.700000,mr +15.700000,74.800000,mr +15.700000,74.900000,mr +15.800000,74.900000,mr +15.800000,74.800000,mr +15.900000,74.900000,mr +15.900000,74.800000,mr +15.900000,74.700000,mr +15.800000,74.700000,mr +15.800000,74.600000,mr +15.900000,74.600000,mr +15.900000,74.500000,mr +15.800000,74.500000,mr +15.700000,74.500000,mr +15.600000,74.500000,mr +15.700000,74.400000,mr +15.600000,74.400000,mr +15.600000,74.300000,mr +15.700000,74.300000,mr +15.800000,74.300000,mr +15.800000,74.400000,mr +15.900000,74.400000,mr +15.900000,74.300000,mr +15.900000,74.200000,kn +15.800000,74.200000,kn +15.800000,74.100000,ru +15.900000,74.100000,en +15.900000,74.000000,ru +15.900000,73.900000,ru +15.800000,73.900000,ru +15.800000,74.000000,mr +15.700000,74.000000,mr +15.700000,73.900000,mr +15.600000,73.900000,mr +15.600000,74.000000,ru +15.600000,74.100000,ru +15.700000,74.100000,ru +15.700000,74.200000,kn +15.600000,74.200000,kn +15.500000,74.200000,ru +15.500000,74.100000,ru +15.400000,74.100000,ru +15.400000,74.200000,ru +15.300000,74.200000,ru +15.300000,74.100000,ru +15.300000,74.000000,ru +15.200000,74.000000,mr +15.200000,73.900000,mr +15.300000,73.900000,mr +15.400000,73.900000,mr +15.400000,74.000000,ru +15.500000,74.000000,mr +15.500000,73.900000,mr +15.500000,73.800000,mr +15.500000,73.700000,mr +15.400000,73.700000,mr +15.400000,73.800000,mr +15.300000,73.800000,mr +15.200000,73.800000,mr +15.200000,73.700000,mr +15.300000,73.700000,mr +15.300000,73.600000,mr +15.200000,73.600000,mr +15.300000,73.500000,mr +15.400000,73.500000,hi +15.400000,73.600000,mr +15.500000,73.600000,mr +15.500000,73.500000,hi +15.600000,73.500000,de +15.700000,73.500000,mr +15.700000,73.600000,mr +15.600000,73.600000,mr +15.600000,73.700000,de +15.600000,73.800000,mr +15.700000,73.800000,mr +15.700000,73.700000,mr +15.800000,73.700000,mr +15.800000,73.800000,mr +15.900000,73.800000,ru +15.900000,73.700000,ru +15.800000,73.600000,mr +15.800000,73.500000,hi +15.900000,73.500000,ru +16.000000,73.500000,ru +16.000000,73.600000,ru +15.900000,73.600000,ru +16.000000,73.800000,ru +16.000000,73.700000,ru +16.100000,73.700000,en +16.100000,73.800000,en +16.200000,73.800000,pt +16.200000,73.700000,pt +16.200000,73.600000,pt +16.100000,73.600000,en +16.100000,73.500000,en +16.200000,73.500000,pt +16.300000,73.500000,pt +16.300000,73.600000,pt +16.400000,73.600000,pt +16.400000,73.500000,pt +16.500000,73.500000,pt +16.600000,73.500000,pt +16.600000,73.600000,pt +16.500000,73.600000,pt +16.500000,73.700000,pt +16.600000,73.700000,pt +16.600000,73.800000,pt +16.500000,73.800000,pt +16.400000,73.800000,pt +16.400000,73.700000,pt +16.300000,73.700000,pt +16.300000,73.800000,pt +16.300000,73.900000,pt +16.300000,74.000000,en +16.400000,74.000000,en +16.400000,73.900000,pt +16.500000,73.900000,pt +16.600000,73.900000,pt +16.600000,74.000000,en +16.500000,74.000000,en +16.500000,74.100000,kn +16.600000,74.100000,kn +16.600000,74.200000,kn +16.500000,74.200000,kn +16.400000,74.200000,kn +16.400000,74.100000,kn +16.300000,74.200000,kn +16.200000,74.200000,kn +16.200000,74.100000,en +16.300000,74.100000,kn +16.200000,73.900000,pt +16.200000,74.000000,en +16.100000,74.000000,en +16.100000,73.900000,en +16.000000,73.900000,ru +16.000000,74.000000,en +16.000000,74.100000,en +16.100000,74.100000,en +16.100000,74.200000,kn +16.000000,74.200000,kn +16.000000,74.300000,mr +16.000000,74.400000,mr +16.100000,74.400000,mr +16.100000,74.300000,kn +16.200000,74.300000,kn +16.300000,74.300000,kn +16.300000,74.400000,kn +16.200000,74.400000,kn +16.300000,74.500000,mr +16.200000,74.500000,mr +16.100000,74.500000,mr +16.000000,74.500000,mr +16.000000,74.600000,mr +16.100000,74.600000,mr +16.100000,74.700000,mr +16.000000,74.700000,mr +16.000000,74.800000,mr +16.000000,74.900000,mr +16.100000,74.900000,mr +16.100000,74.800000,mr +16.200000,74.800000,mr +16.200000,74.900000,mr +16.300000,74.900000,mr +16.300000,74.800000,mr +16.300000,74.700000,mr +16.200000,74.700000,mr +16.200000,74.600000,mr +16.300000,74.600000,mr +16.400000,74.600000,mr +16.500000,74.600000,mr +16.500000,74.700000,mr +16.400000,74.700000,mr +16.400000,74.800000,mr +16.400000,74.900000,mr +16.500000,74.900000,mr +16.500000,74.800000,mr +16.600000,74.800000,mr +16.600000,74.900000,mr +16.700000,74.900000,mr +16.700000,74.800000,kn +16.700000,74.700000,kn +16.600000,74.700000,kn +16.600000,74.600000,kn +16.700000,74.600000,kn +16.600000,74.500000,kn +16.500000,74.500000,kn +16.400000,74.500000,mr +16.500000,74.400000,kn +16.400000,74.400000,kn +16.400000,74.300000,kn +16.500000,74.300000,kn +16.600000,74.400000,kn +16.600000,74.300000,kn +16.700000,74.300000,kn +16.700000,74.400000,kn +16.800000,74.400000,kn +16.800000,74.300000,kn +16.900000,74.500000,kn +16.800000,74.500000,kn +16.700000,74.500000,kn +16.800000,74.600000,kn +16.800000,74.700000,kn +16.800000,74.800000,kn +16.800000,74.900000,kn +16.900000,74.900000,kn +16.900000,74.800000,kn +17.000000,74.900000,kn +17.000000,74.800000,kn +17.000000,74.700000,kn +16.900000,74.700000,kn +16.900000,74.600000,kn +17.100000,74.800000,kn +17.100000,74.900000,kn +17.300000,74.000000,en +17.300000,73.900000,en +17.200000,74.000000,en +17.200000,73.900000,en +17.100000,73.900000,en +17.100000,74.000000,en +17.000000,74.100000,en +16.900000,74.100000,en +16.800000,74.200000,kn +16.700000,74.200000,kn +16.700000,74.100000,kn +16.800000,74.100000,en +16.800000,74.000000,en +16.700000,74.000000,en +16.700000,73.900000,en +16.800000,73.900000,en +16.900000,73.900000,en +16.900000,74.000000,en +17.000000,74.000000,en +17.000000,73.900000,en +17.000000,73.800000,en +17.000000,73.700000,en +16.900000,73.700000,en +16.900000,73.800000,en +16.800000,73.800000,en +16.700000,73.800000,en +16.700000,73.700000,en +16.800000,73.700000,en +16.800000,73.600000,en +16.700000,73.600000,en +16.700000,73.500000,en +16.800000,73.500000,en +16.900000,73.600000,en +16.900000,73.500000,en +17.000000,73.500000,en +17.100000,73.500000,pt +17.100000,73.600000,pt +17.000000,73.600000,en +17.100000,73.800000,en +17.100000,73.700000,pt +17.200000,73.700000,pt +17.200000,73.800000,en +17.300000,73.800000,en +17.300000,73.700000,pt +17.300000,73.600000,pt +17.200000,73.600000,pt +17.200000,73.500000,pt +17.300000,73.500000,pt +17.400000,73.500000,pt +17.400000,73.600000,pt +17.500000,73.600000,pt +17.500000,73.500000,pt +17.600000,73.500000,en +17.700000,73.500000,en +17.700000,73.600000,en +17.600000,73.600000,en +17.600000,73.700000,en +17.700000,73.700000,en +17.700000,73.800000,en +17.600000,73.800000,en +17.500000,73.800000,en +17.500000,73.700000,pt +17.400000,73.700000,pt +17.400000,73.800000,en +17.400000,73.900000,en +17.500000,73.900000,en +17.500000,74.000000,en +17.400000,74.000000,en +17.700000,74.000000,en +17.600000,74.000000,en +17.600000,73.900000,en +17.700000,73.900000,en +17.800000,73.900000,en +17.800000,74.000000,en +18.100000,73.700000,en +18.000000,73.700000,en +17.900000,73.800000,en +17.800000,73.800000,en +17.800000,73.700000,en +17.900000,73.700000,en +17.900000,73.600000,en +17.800000,73.600000,en +17.800000,73.500000,en +17.900000,73.500000,en +18.000000,73.600000,en +18.000000,73.500000,en +18.100000,73.500000,en +18.200000,73.500000,en +18.200000,73.600000,en +18.100000,73.600000,en +18.200000,73.800000,ar +18.200000,73.700000,ar +18.300000,73.700000,de +18.300000,73.800000,de +18.400000,73.800000,de +18.400000,73.700000,de +18.400000,73.600000,de +18.300000,73.600000,de +18.300000,73.500000,es +18.400000,73.500000,te +18.500000,73.500000,te +18.500000,73.600000,de +18.600000,73.600000,de +18.600000,73.500000,te +18.700000,73.500000,te +18.800000,73.500000,te +18.800000,73.600000,te +18.700000,73.600000,de +18.700000,73.700000,de +18.800000,73.700000,te +18.800000,73.800000,te +18.700000,73.800000,de +18.600000,73.800000,de +18.600000,73.700000,te +18.500000,73.700000,de +18.500000,73.800000,de +18.500000,73.900000,de +18.500000,74.000000,de +18.600000,74.000000,de +18.600000,73.900000,de +18.700000,73.900000,de +18.800000,73.900000,te +18.700000,74.000000,de +18.600000,74.100000,ar +18.400000,74.100000,ar +18.500000,74.100000,ar +18.400000,73.900000,ar +18.400000,74.000000,de +18.300000,74.000000,de +18.300000,73.900000,de +18.200000,73.900000,ar +18.200000,74.000000,ar +18.200000,74.100000,ar +18.300000,74.100000,ar +18.800000,74.400000,ta +18.900000,74.500000,ta +18.800000,74.500000,ta +18.600000,74.700000,pt +18.700000,74.700000,pt +18.800000,74.600000,ta +18.900000,74.600000,ta +18.900000,74.700000,ta +18.800000,74.700000,ta +18.800000,74.800000,ta +18.900000,74.800000,ta +18.900000,74.900000,pt +18.800000,74.900000,pt +18.700000,74.900000,pt +18.700000,74.800000,pt +18.600000,74.800000,pt +18.600000,74.900000,pt +17.600000,75.400000,kn +17.600000,75.500000,kn +17.600000,75.600000,kn +17.600000,75.700000,kn +18.600000,75.000000,pt +18.600000,75.100000,pt +18.700000,75.100000,pt +18.700000,75.000000,pt +18.800000,75.000000,pt +18.900000,75.000000,pt +18.900000,75.100000,pt +18.800000,75.100000,pt +18.800000,75.200000,pt +18.900000,75.200000,pt +18.900000,75.300000,pt +18.800000,75.300000,pt +18.700000,75.300000,pt +18.700000,75.200000,pt +19.000000,75.700000,en +18.900000,75.700000,en +18.800000,75.700000,en +18.700000,75.700000,en +18.700000,75.800000,en +18.800000,75.800000,en +18.900000,75.800000,en +19.000000,75.800000,en +18.900000,75.900000,en +19.000000,75.900000,en +19.000000,76.000000,en +18.900000,76.000000,en +18.800000,76.000000,en +18.800000,75.900000,en +18.700000,75.900000,en +18.700000,76.000000,en +18.700000,76.100000,en +18.700000,76.200000,id +18.800000,76.200000,id +18.800000,76.100000,en +18.900000,76.100000,en +19.000000,76.100000,en +18.900000,76.200000,id +18.900000,76.300000,id +18.900000,76.400000,id +18.800000,76.400000,id +18.800000,76.300000,id +18.700000,76.300000,id +18.700000,76.400000,id +18.600000,76.400000,id +18.500000,76.300000,id +18.600000,76.300000,id +18.600000,76.200000,id +18.500000,76.200000,id +18.500000,76.400000,id +17.800000,76.000000,kn +17.800000,75.900000,kn +17.800000,75.800000,kn +17.700000,75.800000,kn +17.600000,75.800000,kn +17.600000,75.900000,kn +17.700000,75.900000,kn +17.700000,76.000000,kn +17.600000,76.000000,kn +17.600000,76.100000,kn +17.600000,76.200000,kn +17.700000,76.200000,kn +17.700000,76.100000,kn +17.800000,76.100000,kn +17.800000,76.200000,kn +17.800000,76.300000,kn +17.900000,76.400000,kn +17.800000,76.400000,kn +17.700000,76.400000,kn +17.700000,76.300000,kn +17.600000,76.300000,kn +17.600000,76.400000,kn +17.500000,76.400000,mr +17.400000,76.400000,kn +17.400000,76.300000,kn +17.500000,76.300000,kn +17.500000,76.200000,kn +17.500000,76.100000,kn +17.400000,76.100000,kn +17.400000,76.200000,kn +17.300000,76.200000,mr +17.300000,76.100000,mr +17.200000,76.100000,mr +17.200000,76.200000,mr +17.200000,76.300000,mr +17.300000,76.300000,mr +17.300000,76.400000,mr +17.200000,76.400000,mr +17.100000,76.300000,mr +17.100000,76.400000,mr +17.000000,76.400000,mr +17.000000,76.300000,mr +17.000000,76.200000,mr +17.000000,76.100000,mr +17.100000,76.200000,mr +17.100000,76.100000,mr +17.100000,76.000000,mr +17.100000,75.900000,mr +17.000000,75.900000,mr +17.000000,76.000000,mr +16.800000,75.900000,mr +16.900000,75.900000,mr +16.800000,75.800000,mr +16.900000,75.800000,mr +17.000000,75.800000,mr +17.100000,75.800000,mr +17.200000,75.800000,mr +17.300000,75.800000,mr +17.200000,75.900000,mr +17.200000,76.000000,mr +17.300000,76.000000,mr +17.300000,75.900000,mr +17.400000,75.900000,kn +17.400000,76.000000,kn +17.500000,76.000000,kn +17.500000,75.900000,kn +17.400000,75.800000,kn +17.500000,75.800000,kn +17.500000,75.700000,kn +17.500000,75.600000,kn +17.400000,75.600000,kn +17.400000,75.700000,kn +17.300000,75.700000,mr +17.200000,75.700000,mr +17.200000,75.600000,hi +17.300000,75.600000,kn +17.300000,75.500000,kn +17.200000,75.500000,kn +17.200000,75.400000,kn +17.300000,75.400000,kn +17.400000,75.400000,kn +17.400000,75.500000,kn +17.500000,75.500000,kn +17.500000,75.400000,kn +17.200000,75.000000,kn +17.200000,75.100000,kn +17.200000,75.200000,kn +17.300000,75.200000,kn +17.300000,75.300000,kn +17.200000,75.300000,kn +17.100000,75.300000,kn +17.000000,75.300000,kn +17.000000,75.200000,kn +17.100000,75.200000,kn +17.100000,75.100000,kn +17.100000,75.000000,kn +17.000000,75.000000,kn +17.000000,75.100000,kn +16.900000,75.100000,hi +16.900000,75.000000,kn +16.800000,75.000000,mr +16.800000,75.100000,mr +16.800000,75.200000,mr +16.900000,75.200000,hi +16.900000,75.300000,mr +16.800000,75.300000,mr +16.800000,75.400000,mr +16.800000,75.500000,mr +16.900000,75.500000,mr +16.900000,75.400000,mr +17.000000,75.400000,kn +17.100000,75.400000,kn +17.100000,75.500000,kn +17.000000,75.500000,mr +17.000000,75.600000,mr +17.100000,75.600000,mr +17.100000,75.700000,mr +17.000000,75.700000,mr +16.900000,75.700000,mr +16.900000,75.600000,mr +16.800000,75.600000,mr +16.800000,75.700000,mr +16.700000,75.700000,mr +16.700000,75.600000,mr +16.600000,75.600000,mr +16.600000,75.700000,mr +16.500000,75.700000,mr +16.500000,75.500000,mr +16.400000,75.400000,mr +16.500000,75.400000,mr +16.600000,75.400000,mr +16.600000,75.500000,mr +16.700000,75.500000,mr +16.700000,75.400000,mr +16.700000,75.300000,mr +16.600000,75.300000,mr +16.600000,75.200000,mr +16.700000,75.200000,mr +16.700000,75.100000,mr +16.700000,75.000000,mr +16.600000,75.000000,mr +16.600000,75.100000,mr +16.500000,75.100000,mr +16.500000,75.000000,mr +16.400000,75.000000,mr +16.400000,75.100000,mr +16.400000,75.200000,mr +16.500000,75.200000,mr +16.500000,75.300000,mr +16.400000,75.300000,mr +16.300000,75.300000,mr +16.200000,75.200000,mr +16.300000,75.200000,mr +16.300000,75.100000,mr +16.300000,75.000000,mr +16.200000,75.000000,mr +16.200000,75.100000,mr +16.100000,75.100000,mr +16.100000,75.000000,mr +16.100000,75.200000,mr +16.200000,75.300000,mr +16.100000,75.300000,mr +16.100000,75.400000,mr +16.100000,75.500000,mr +16.200000,75.500000,mr +16.200000,75.400000,mr +16.300000,75.400000,mr +16.400000,75.500000,mr +16.300000,75.500000,mr +16.300000,75.600000,mr +16.400000,75.600000,mr +16.400000,75.700000,mr +16.300000,75.700000,mr +16.200000,75.700000,mr +16.200000,75.600000,mr +16.100000,75.600000,mr +16.100000,75.700000,mr +16.100000,75.800000,mr +16.200000,75.800000,mr +16.100000,75.900000,mr +16.100000,76.000000,mr +16.200000,76.000000,mr +16.200000,75.900000,mr +16.300000,75.900000,mr +16.300000,76.000000,mr +16.400000,76.000000,mr +16.400000,75.900000,mr +16.300000,75.800000,mr +16.400000,75.800000,mr +16.500000,75.800000,mr +16.600000,75.800000,mr +16.700000,75.800000,mr +16.700000,75.900000,mr +16.600000,75.900000,mr +16.500000,75.900000,mr +16.500000,76.000000,mr +16.500000,76.100000,mr +16.400000,76.100000,mr +16.300000,76.100000,mr +16.200000,76.200000,mr +16.200000,76.100000,mr +16.100000,76.100000,mr +16.100000,76.200000,mr +16.100000,76.300000,mr +16.200000,76.300000,mr +16.200000,76.800000,mr +16.200000,76.900000,mr +16.200000,77.000000,mr +16.200000,77.100000,te +16.300000,77.100000,te +16.400000,77.100000,te +16.500000,77.100000,te +16.500000,77.000000,mr +16.500000,76.900000,mr +16.600000,76.900000,te +16.600000,77.000000,te +16.600000,77.100000,te +16.700000,77.100000,mr +16.800000,77.100000,te +16.800000,77.000000,te +16.700000,77.000000,te +16.700000,76.900000,te +16.800000,76.900000,te +16.800000,76.800000,mr +17.000000,76.500000,mr +17.000000,76.600000,mr +16.900000,76.800000,te +17.000000,76.800000,te +17.000000,76.700000,mr +17.100000,76.700000,mr +17.100000,76.800000,mr +17.200000,76.800000,mr +17.200000,76.700000,mr +17.200000,76.600000,mr +17.100000,76.600000,mr +17.100000,76.500000,mr +17.200000,76.500000,mr +17.300000,76.500000,mr +17.300000,76.600000,mr +17.400000,76.600000,mr +17.400000,76.500000,mr +17.500000,76.500000,mr +17.500000,76.600000,mr +17.500000,76.700000,mr +17.600000,76.800000,mr +17.500000,76.800000,mr +17.400000,76.800000,mr +17.400000,76.700000,mr +17.300000,76.700000,mr +17.300000,76.800000,mr +17.300000,76.900000,ur +17.300000,77.000000,ur +17.400000,77.000000,ur +17.400000,76.900000,ur +17.500000,76.900000,mr +17.600000,76.900000,mr +17.600000,77.000000,mr +17.500000,77.000000,ur +17.500000,77.100000,ur +17.600000,77.100000,mr +17.400000,77.100000,te +17.300000,77.100000,te +17.100000,77.100000,te +17.200000,77.100000,te +17.200000,77.000000,te +17.200000,76.900000,te +17.100000,76.900000,te +17.100000,77.000000,te +17.000000,77.000000,te +17.000000,76.900000,te +16.900000,76.900000,te +16.900000,77.000000,te +16.900000,77.100000,te +17.000000,77.100000,te +16.900000,77.200000,te +17.000000,77.200000,te +17.000000,77.300000,te +16.900000,77.300000,te +16.900000,77.400000,te +17.000000,77.500000,hi +17.000000,77.400000,te +17.100000,77.400000,te +17.100000,77.500000,kn +17.200000,77.500000,kn +17.200000,77.400000,te +17.200000,77.300000,te +17.100000,77.300000,te +17.100000,77.200000,te +17.200000,77.200000,te +17.300000,77.200000,te +17.300000,77.300000,te +17.400000,77.300000,te +17.400000,77.200000,te +17.600000,77.200000,te +17.600000,77.300000,te +17.500000,77.300000,te +17.500000,77.400000,te +17.600000,77.400000,te +17.600000,77.500000,kn +17.500000,77.500000,kn +17.400000,77.500000,te +17.400000,77.400000,te +17.300000,77.400000,te +17.300000,77.500000,kn +17.300000,77.600000,kn +17.300000,77.700000,kn +17.400000,77.700000,kn +17.400000,77.600000,kn +17.500000,77.600000,kn +17.600000,77.600000,kn +17.600000,77.700000,kn +17.500000,77.700000,kn +17.500000,77.800000,kn +17.600000,77.800000,kn +17.600000,77.900000,ur +17.500000,77.900000,ur +17.400000,77.900000,mr +17.400000,77.800000,kn +17.300000,77.800000,mr +17.300000,77.900000,mr +17.200000,77.900000,mr +17.200000,77.800000,mr +17.200000,77.700000,mr +17.200000,77.600000,kn +17.100000,77.600000,kn +17.100000,77.700000,mr +17.000000,77.600000,kn +17.100000,77.800000,mr +17.100000,77.900000,mr +16.900000,77.900000,ur +16.900000,77.800000,ur +16.800000,77.800000,ur +16.800000,77.900000,ur +16.700000,77.900000,ur +16.600000,77.900000,ur +16.600000,77.800000,ur +16.700000,77.800000,ur +16.700000,77.700000,kn +16.600000,77.700000,kn +16.600000,77.600000,kn +16.700000,77.600000,kn +16.800000,77.600000,kn +16.800000,77.700000,kn +16.900000,77.700000,kn +16.900000,77.600000,kn +16.900000,77.500000,kn +16.800000,77.500000,kn +16.800000,77.400000,hi +16.800000,77.300000,te +16.800000,77.200000,te +16.700000,77.300000,te +16.700000,77.200000,te +16.600000,77.200000,te +16.600000,77.300000,te +16.600000,77.400000,hi +16.700000,77.400000,hi +16.700000,77.500000,kn +16.600000,77.500000,kn +16.500000,77.500000,kn +16.400000,77.500000,hi +16.400000,77.400000,te +16.500000,77.400000,hi +16.500000,77.300000,te +16.500000,77.200000,te +16.400000,77.200000,te +16.400000,77.300000,te +16.300000,77.300000,te +16.300000,77.200000,te +16.200000,77.200000,te +16.200000,77.300000,te +16.200000,77.400000,te +16.300000,77.400000,te +16.300000,77.500000,te +16.200000,77.500000,te +16.200000,77.600000,hi +16.200000,77.700000,kn +16.300000,77.700000,kn +16.300000,77.600000,hi +16.400000,77.600000,hi +16.500000,77.600000,kn +16.500000,77.700000,kn +16.400000,77.700000,kn +16.400000,77.800000,kn +16.500000,77.800000,ur +16.500000,77.900000,ur +16.400000,77.900000,kn +16.300000,77.900000,kn +16.300000,77.800000,kn +16.200000,77.800000,kn +16.200000,77.900000,kn +16.200000,78.000000,kn +16.300000,78.000000,kn +16.300000,78.200000,en +16.500000,78.200000,ur +16.500000,78.100000,ur +16.400000,78.000000,kn +16.500000,78.000000,ur +16.600000,78.000000,ur +16.600000,78.100000,ur +16.700000,78.100000,ur +16.700000,78.000000,ur +16.800000,78.000000,ur +16.900000,78.000000,ur +16.900000,78.100000,ur +16.800000,78.100000,ur +16.800000,78.200000,ur +16.900000,78.200000,ur +16.700000,78.200000,ur +16.600000,78.200000,ur +16.500000,78.600000,en +16.500000,78.500000,en +16.400000,78.300000,en +16.400000,78.400000,en +16.300000,78.300000,en +16.300000,78.400000,en +16.300000,78.500000,en +16.400000,78.500000,en +16.400000,78.600000,en +16.300000,78.600000,en +16.300000,78.700000,mr +16.300000,78.800000,mr +16.400000,78.800000,en +16.400000,78.700000,en +16.500000,78.700000,en +16.600000,78.800000,en +16.500000,78.800000,en +16.500000,78.900000,en +16.600000,78.900000,en +16.600000,79.000000,en +16.500000,79.000000,en +16.400000,79.000000,en +16.400000,78.900000,en +16.300000,78.900000,mr +16.300000,79.000000,mr +16.300000,79.100000,mr +16.400000,79.100000,en +16.300000,79.200000,en +16.300000,79.300000,en +16.400000,79.300000,en +16.400000,79.200000,en +16.500000,79.200000,en +16.500000,79.300000,en +16.600000,79.300000,en +16.600000,79.200000,en +16.500000,79.100000,en +16.600000,79.100000,en +16.700000,79.100000,en +16.800000,79.100000,en +16.700000,79.200000,en +16.700000,79.300000,en +16.800000,79.300000,en +16.800000,79.200000,en +16.800000,78.900000,en +16.800000,79.000000,en +16.700000,79.000000,en +16.700000,78.900000,en +16.700000,78.800000,en +17.000000,78.700000,ta +17.100000,78.800000,ar +17.100000,78.700000,ar +17.200000,78.700000,ar +17.300000,78.700000,ar +17.300000,78.800000,ar +17.200000,78.800000,ar +17.200000,78.900000,ar +17.300000,78.900000,pt +17.300000,79.000000,pt +17.200000,79.000000,pt +17.100000,78.900000,ar +17.200000,79.200000,pt +17.300000,79.200000,pt +17.200000,79.100000,pt +17.300000,79.100000,pt +17.400000,79.100000,pt +17.500000,79.100000,pt +17.400000,79.200000,pt +17.400000,79.300000,pt +17.500000,79.300000,pt +17.500000,79.200000,pt +17.600000,79.200000,pt +17.600000,79.300000,pt +17.700000,79.300000,pt +17.700000,79.200000,pt +17.600000,79.100000,pt +17.700000,79.100000,pt +17.700000,79.000000,pt +17.700000,78.900000,pt +17.600000,78.900000,pt +17.600000,79.000000,pt +17.500000,79.000000,pt +17.400000,79.000000,pt +17.400000,78.900000,pt +17.500000,78.900000,pt +17.500000,78.800000,ar +17.400000,78.800000,ar +17.400000,78.700000,ar +17.500000,78.700000,ar +17.600000,78.700000,ar +17.600000,78.800000,ta +17.700000,78.800000,ta +17.700000,78.700000,ta +17.700000,78.600000,ta +17.600000,78.600000,ar +17.600000,78.500000,ar +17.700000,78.500000,ta +17.700000,78.400000,ta +17.600000,78.300000,ar +17.600000,78.400000,ar +17.500000,78.400000,ar +17.500000,78.300000,ar +17.400000,78.300000,ar +17.400000,78.400000,ar +17.400000,78.500000,ar +17.500000,78.500000,ar +17.500000,78.600000,ar +17.400000,78.600000,ar +17.300000,78.600000,ar +17.300000,78.500000,ar +17.200000,78.500000,ar +17.200000,78.600000,ar +17.100000,78.600000,ar +17.000000,78.600000,ta +17.000000,78.500000,ta +17.100000,78.500000,ar +17.100000,78.400000,ar +17.000000,78.400000,ta +17.000000,78.300000,ta +17.100000,78.300000,ar +17.200000,78.300000,ar +17.200000,78.400000,ar +17.300000,78.400000,ar +17.300000,78.300000,ar +17.300000,78.200000,ar +17.200000,78.200000,ar +17.000000,78.200000,ta +17.100000,78.200000,ar +17.100000,78.100000,mr +17.000000,78.100000,ta +17.100000,78.000000,mr +17.200000,78.000000,mr +17.200000,78.100000,de +17.300000,78.100000,ta +17.300000,78.000000,mr +17.400000,78.000000,mr +17.400000,78.100000,ta +17.400000,78.200000,ar +17.500000,78.200000,ar +17.600000,78.200000,ar +17.600000,78.100000,ur +17.500000,78.100000,ta +17.500000,78.000000,mr +17.600000,78.000000,ur +17.700000,78.000000,ur +17.800000,78.000000,ur +17.800000,78.100000,ur +17.700000,78.100000,ta +17.700000,78.200000,ta +17.800000,78.200000,ur +18.000000,78.200000,pt +18.000000,78.100000,en +17.900000,78.100000,en +17.900000,78.000000,en +18.000000,78.000000,en +18.100000,78.000000,en +18.100000,78.100000,en +18.200000,78.100000,en +18.200000,78.000000,en +18.300000,78.000000,en +18.400000,78.000000,en +18.400000,78.100000,en +18.300000,78.100000,en +18.300000,78.200000,pt +18.400000,78.200000,pt +18.200000,78.200000,pt +18.100000,78.200000,pt +18.100000,78.300000,pt +18.100000,78.400000,pt +18.200000,78.400000,pt +18.200000,78.300000,pt +18.300000,78.300000,pt +18.400000,78.300000,pt +18.400000,78.400000,pt +18.300000,78.400000,pt +18.300000,78.500000,pt +18.400000,78.500000,pt +18.400000,78.600000,pt +18.300000,78.600000,pt +18.200000,78.600000,pt +18.200000,78.500000,pt +18.100000,78.500000,pt +18.100000,78.600000,pt +18.000000,78.600000,pt +18.000000,78.500000,pt +18.000000,78.400000,pt +18.000000,78.300000,pt +17.800000,78.400000,ta +17.800000,78.300000,mr +17.700000,78.300000,ta +17.800000,78.500000,mr +17.800000,78.600000,mr +17.800000,78.700000,mr +17.800000,78.800000,ta +17.900000,78.800000,id +18.000000,78.800000,id +18.000000,78.900000,id +18.100000,78.900000,id +18.100000,79.000000,id +18.000000,79.000000,id +17.900000,79.000000,id +17.900000,78.900000,id +17.800000,79.100000,pt +17.900000,79.100000,id +17.800000,79.200000,pt +17.800000,79.300000,ar +17.900000,79.300000,ar +17.900000,79.200000,id +18.000000,79.200000,id +18.000000,79.300000,ar +18.100000,79.300000,ar +18.100000,79.200000,id +18.000000,79.100000,id +18.100000,79.100000,id +18.200000,79.100000,ur +18.300000,79.100000,ur +18.200000,79.200000,ur +18.200000,79.300000,ar +18.300000,79.300000,ur +18.300000,79.200000,ur +18.400000,79.200000,ur +18.400000,79.300000,ur +18.500000,79.300000,ur +18.400000,79.100000,ur +18.400000,79.000000,ur +18.400000,78.900000,ur +18.300000,78.900000,ur +18.300000,79.000000,ur +18.200000,79.000000,id +18.200000,78.900000,id +18.200000,78.800000,id +18.100000,78.800000,id +18.300000,78.700000,en +18.300000,78.800000,id +18.400000,78.800000,en +18.400000,78.700000,en +18.500000,78.700000,en +18.500000,78.800000,en +18.600000,78.800000,en +18.600000,78.700000,en +18.700000,78.700000,en +18.800000,78.700000,en +18.800000,78.800000,en +18.700000,78.800000,en +18.800000,78.900000,en +18.800000,79.000000,en +18.600000,79.000000,ur +18.600000,78.900000,ur +18.500000,78.900000,ur +18.500000,79.000000,ur +18.500000,79.100000,ur +18.600000,79.100000,ur +18.500000,79.200000,ur +18.600000,79.300000,ur +18.600000,79.200000,ur +18.700000,79.300000,ta +18.800000,79.300000,ta +18.800000,79.200000,en +18.800000,79.100000,en +18.900000,79.100000,en +19.000000,79.100000,en +18.900000,79.200000,en +18.900000,79.300000,ta +19.000000,79.300000,ta +19.000000,79.200000,en +19.100000,79.200000,en +19.100000,79.300000,en +19.200000,79.300000,en +19.200000,79.200000,en +19.100000,79.100000,en +19.200000,79.100000,en +19.200000,79.000000,en +19.200000,78.900000,en +19.100000,78.900000,en +19.100000,79.000000,en +19.000000,79.000000,en +18.900000,79.000000,en +18.900000,78.900000,en +19.000000,78.900000,en +19.000000,78.800000,en +18.900000,78.800000,en +18.900000,78.700000,en +19.000000,78.700000,en +19.100000,78.700000,en +19.100000,78.800000,en +19.200000,78.800000,en +19.200000,78.700000,en +19.200000,78.600000,en +19.100000,78.600000,en +19.100000,78.500000,mr +19.200000,78.500000,mr +19.100000,78.300000,mr +19.100000,78.400000,mr +19.000000,78.400000,mr +19.000000,78.300000,mr +18.900000,78.300000,ur +18.900000,78.400000,mr +18.900000,78.500000,mr +19.000000,78.500000,mr +19.000000,78.600000,en +18.900000,78.600000,en +18.800000,78.600000,en +18.800000,78.500000,en +18.700000,78.500000,en +18.700000,78.600000,en +18.600000,78.600000,en +18.500000,78.600000,en +18.500000,78.500000,en +18.600000,78.500000,en +18.600000,78.400000,en +18.500000,78.400000,en +18.500000,78.300000,ur +18.600000,78.300000,ur +18.700000,78.300000,ur +18.700000,78.400000,en +18.800000,78.400000,en +18.800000,78.300000,ur +18.800000,78.200000,ur +18.700000,78.200000,ur +18.500000,78.200000,ur +18.600000,78.200000,ur +18.600000,78.100000,ur +18.500000,78.100000,ur +18.500000,78.000000,ur +18.600000,78.000000,ur +18.700000,78.000000,mr +18.700000,78.100000,ur +18.800000,78.100000,mr +18.800000,78.000000,mr +18.900000,78.000000,mr +18.900000,78.100000,mr +18.900000,78.200000,ur +19.000000,78.200000,mr +19.100000,78.200000,mr +19.100000,78.100000,mr +19.000000,78.100000,mr +19.000000,78.000000,mr +19.100000,78.000000,mr +19.100000,77.900000,mr +19.100000,77.800000,te +19.000000,77.800000,te +19.000000,77.900000,mr +18.900000,77.900000,mr +18.800000,77.900000,mr +18.800000,77.800000,te +18.900000,77.800000,te +18.900000,77.700000,te +18.800000,77.700000,te +18.800000,77.600000,te +18.900000,77.600000,te +19.000000,77.700000,te +19.100000,77.700000,te +19.100000,77.500000,ar +19.000000,77.500000,ar +19.000000,77.400000,ar +19.100000,77.400000,ar +19.100000,77.300000,ar +19.100000,77.200000,ar +19.000000,77.200000,ar +19.000000,77.300000,ar +18.900000,77.300000,ar +18.900000,77.200000,ar +18.900000,77.400000,ar +18.900000,77.500000,ar +18.700000,77.500000,te +18.600000,77.500000,te +18.600000,77.400000,te +18.700000,77.400000,te +18.500000,77.300000,kn +18.500000,77.200000,kn +18.400000,77.200000,kn +18.400000,77.300000,kn +18.400000,77.400000,kn +18.500000,77.400000,kn +18.500000,77.500000,te +18.400000,77.500000,te +18.400000,77.600000,mr +18.500000,77.700000,mr +18.500000,77.600000,te +18.600000,77.600000,te +18.700000,77.600000,te +18.700000,77.700000,te +18.600000,77.700000,mr +18.600000,77.800000,mr +18.700000,77.800000,mr +18.700000,77.900000,mr +18.600000,77.900000,mr +18.500000,77.800000,mr +18.500000,77.900000,mr +18.400000,77.900000,mr +18.300000,77.900000,en +18.300000,77.800000,mr +18.400000,77.800000,mr +18.400000,77.700000,mr +18.300000,77.600000,mr +18.300000,77.700000,mr +18.200000,77.700000,kn +18.200000,77.600000,kn +18.100000,77.600000,te +18.100000,77.700000,kn +18.100000,77.800000,kn +18.200000,77.800000,en +18.200000,77.900000,en +18.100000,77.900000,en +18.000000,77.900000,en +18.000000,77.800000,kn +17.900000,77.800000,kn +17.900000,77.900000,en +17.800000,77.900000,ur +17.700000,77.900000,ur +17.700000,77.800000,kn +17.800000,77.800000,kn +17.800000,77.700000,kn +17.700000,77.700000,kn +17.700000,77.600000,kn +17.800000,77.600000,kn +17.900000,77.600000,te +17.900000,77.700000,kn +18.000000,77.700000,kn +18.000000,77.600000,te +18.000000,77.500000,te +18.000000,77.400000,te +17.900000,77.400000,te +17.900000,77.500000,te +17.800000,77.500000,te +17.700000,77.500000,te +17.700000,77.400000,te +17.800000,77.400000,te +17.800000,77.300000,te +17.700000,77.300000,te +17.700000,77.200000,ta +17.800000,77.200000,ta +17.900000,77.200000,ta +17.900000,77.300000,mr +18.000000,77.300000,mr +18.000000,77.200000,mr +18.100000,77.200000,mr +18.100000,77.300000,mr +18.100000,77.400000,mr +18.100000,77.500000,te +18.200000,77.500000,te +18.200000,77.400000,mr +18.300000,77.500000,kn +18.300000,77.400000,mr +18.300000,77.300000,kn +18.200000,77.300000,mr +18.200000,77.200000,mr +18.300000,77.200000,kn +18.200000,77.100000,kn +18.300000,77.100000,kn +18.300000,77.000000,kn +18.300000,76.900000,kn +18.200000,76.900000,kn +18.200000,77.000000,kn +18.100000,77.000000,mr +18.100000,76.900000,kn +18.000000,76.900000,kn +18.000000,77.000000,mr +18.000000,77.100000,mr +18.100000,77.100000,mr +17.900000,77.100000,mr +17.700000,77.100000,mr +17.800000,77.100000,mr +17.800000,77.000000,mr +17.700000,77.000000,mr +17.700000,76.900000,mr +17.800000,76.900000,mr +17.900000,77.000000,mr +17.900000,76.900000,mr +17.900000,76.800000,kn +17.900000,76.700000,kn +17.800000,76.700000,kn +17.800000,76.800000,mr +17.700000,76.800000,mr +17.600000,76.700000,mr +17.700000,76.700000,kn +17.700000,76.600000,kn +17.600000,76.600000,mr +17.600000,76.500000,mr +17.700000,76.500000,kn +17.800000,76.500000,kn +17.800000,76.600000,kn +17.900000,76.600000,kn +17.900000,76.500000,kn +18.000000,76.600000,kn +18.000000,76.700000,kn +18.000000,76.800000,kn +18.100000,76.800000,kn +18.100000,76.700000,kn +18.200000,76.800000,kn +18.300000,76.800000,kn +18.500000,76.600000,id +18.500000,76.500000,id +18.600000,76.500000,id +18.700000,76.600000,id +18.600000,76.600000,id +18.500000,77.000000,kn +18.400000,77.000000,kn +18.400000,77.100000,kn +18.500000,77.100000,kn +18.900000,77.100000,ar +19.000000,77.100000,ar +19.100000,77.100000,ar +18.800000,76.600000,id +18.700000,76.500000,id +18.800000,76.500000,id +18.900000,76.500000,id +18.900000,76.600000,id +19.200000,77.100000,ar +19.300000,77.100000,ar +19.500000,76.900000,en +19.600000,76.900000,en +19.600000,77.000000,en +19.500000,77.000000,en +19.500000,77.100000,en +19.600000,77.100000,en +19.700000,77.100000,en +19.800000,77.100000,en +19.800000,77.000000,en +19.700000,77.000000,en +19.700000,76.900000,en +19.800000,76.900000,en +19.800000,76.800000,en +19.800000,76.700000,en +19.700000,76.700000,en +19.700000,76.800000,en +19.600000,76.800000,en +19.500000,76.800000,en +19.500000,76.700000,en +19.600000,76.700000,en +19.900000,76.700000,en +19.900000,76.800000,en +20.200000,76.800000,en +20.500000,76.500000,ur +20.500000,76.600000,ur +20.500000,76.700000,ur +20.500000,76.800000,ur +20.400000,76.800000,en +20.300000,76.800000,en +20.300000,76.900000,en +20.300000,77.000000,en +20.400000,77.000000,en +20.400000,76.900000,en +20.500000,76.900000,en +20.500000,77.000000,en +20.500000,77.100000,en +20.600000,77.100000,en +20.400000,77.100000,en +20.300000,77.100000,en +20.200000,77.100000,en +20.200000,77.000000,en +20.200000,76.900000,en +19.900000,76.900000,en +19.900000,77.000000,en +19.900000,77.100000,en +20.100000,77.400000,en +20.100000,77.500000,en +20.200000,77.500000,en +20.200000,77.400000,en +20.200000,77.200000,en +20.300000,77.200000,en +20.400000,77.200000,en +20.500000,77.200000,en +20.600000,77.200000,en +20.500000,77.400000,en +20.500000,77.500000,en +20.400000,77.500000,en +20.400000,77.400000,en +20.300000,77.400000,en +20.300000,77.500000,en +20.300000,77.600000,en +20.300000,77.700000,en +20.400000,77.700000,en +20.400000,77.600000,en +20.500000,77.600000,en +20.500000,77.700000,en +20.500000,77.800000,en +20.400000,77.800000,en +20.300000,77.800000,en +20.200000,77.900000,id +20.100000,77.800000,id +20.200000,77.800000,id +20.200000,77.700000,en +20.200000,77.600000,en +20.100000,77.600000,en +20.100000,77.700000,en +20.000000,77.800000,id +20.100000,77.900000,id +20.000000,77.900000,id +19.900000,77.900000,id +19.900000,77.800000,id +19.800000,77.800000,id +19.800000,77.900000,id +19.700000,77.900000,en +19.600000,77.900000,en +19.600000,77.800000,en +19.700000,77.800000,en +19.300000,77.300000,ar +19.300000,77.200000,ar +19.200000,77.200000,ar +19.200000,77.300000,ar +19.200000,77.400000,ar +19.300000,77.400000,ar +19.300000,77.500000,ar +19.200000,77.500000,ar +19.200000,77.700000,te +19.300000,77.700000,te +19.500000,77.700000,en +19.400000,77.700000,en +19.400000,77.800000,te +19.500000,77.800000,en +19.500000,77.900000,en +19.400000,77.900000,te +19.300000,77.900000,te +19.300000,77.800000,te +19.200000,77.800000,te +19.200000,77.900000,mr +19.200000,78.000000,mr +19.300000,78.000000,mr +19.300000,78.100000,mr +19.200000,78.100000,mr +19.200000,78.200000,mr +19.300000,78.200000,mr +19.400000,78.200000,te +19.500000,78.200000,te +19.500000,78.100000,te +19.400000,78.100000,te +19.400000,78.000000,te +19.500000,78.000000,en +19.600000,78.000000,en +19.600000,78.100000,en +19.700000,78.100000,en +19.700000,78.000000,en +19.800000,78.000000,id +19.900000,78.000000,id +19.900000,78.100000,id +19.800000,78.100000,id +19.800000,78.200000,id +19.900000,78.200000,id +19.700000,78.200000,en +19.600000,78.200000,te +19.600000,78.300000,te +19.600000,78.400000,mr +19.700000,78.400000,mr +19.700000,78.300000,mr +19.800000,78.300000,te +19.900000,78.300000,te +19.900000,78.400000,te +19.800000,78.400000,mr +19.800000,78.500000,mr +19.900000,78.500000,te +19.900000,78.600000,te +19.800000,78.600000,mr +19.700000,78.600000,mr +19.700000,78.500000,ar +19.600000,78.500000,mr +19.600000,78.600000,mr +19.500000,78.600000,ar +19.400000,78.600000,en +19.400000,78.500000,en +19.500000,78.500000,ar +19.500000,78.400000,mr +19.500000,78.300000,mr +19.400000,78.300000,mr +19.400000,78.400000,mr +19.300000,78.400000,mr +19.300000,78.300000,mr +19.200000,78.300000,mr +19.200000,78.400000,mr +19.300000,78.500000,mr +19.300000,78.600000,en +19.300000,78.700000,en +19.300000,78.800000,en +19.400000,78.800000,en +19.400000,78.700000,en +19.500000,78.700000,ar +19.500000,78.800000,mr +19.500000,78.900000,te +19.600000,78.900000,te +19.600000,79.000000,te +19.500000,79.000000,te +19.400000,79.000000,mr +19.400000,78.900000,mr +19.300000,78.900000,en +19.300000,79.000000,en +19.300000,79.100000,en +19.400000,79.100000,mr +19.300000,79.200000,en +19.300000,79.300000,en +19.400000,79.300000,mr +19.400000,79.200000,mr +19.500000,79.200000,te +19.500000,79.300000,mr +19.600000,79.300000,te +19.600000,79.200000,te +19.500000,79.100000,te +19.600000,79.100000,te +19.700000,79.100000,te +19.800000,79.100000,te +19.700000,79.200000,te +19.700000,79.300000,te +19.800000,79.300000,te +19.800000,79.200000,te +19.900000,79.200000,te +19.900000,79.300000,te +20.000000,79.300000,te +19.900000,79.100000,te +19.900000,79.000000,en +19.900000,78.900000,en +19.800000,78.900000,en +19.800000,79.000000,en +19.700000,79.000000,en +19.700000,78.900000,en +19.700000,78.800000,en +19.600000,78.800000,te +19.600000,78.700000,mr +19.700000,78.700000,mr +19.800000,78.700000,te +19.800000,78.800000,en +19.900000,78.800000,en +19.900000,78.700000,te +20.000000,78.700000,en +20.000000,78.800000,en +20.100000,78.800000,en +20.100000,78.700000,en +20.200000,78.700000,en +20.300000,78.700000,en +20.200000,78.800000,en +20.200000,78.900000,en +20.100000,79.000000,en +20.100000,78.900000,en +20.000000,78.900000,en +20.000000,79.000000,en +20.000000,79.100000,te +20.100000,79.100000,en +20.000000,79.200000,te +20.100000,79.300000,en +20.100000,79.200000,en +20.200000,79.200000,en +20.200000,79.300000,en +20.300000,79.300000,en +20.300000,79.200000,en +20.200000,79.100000,en +20.300000,79.100000,en +20.400000,79.100000,vi +20.500000,79.100000,mr +20.400000,79.200000,vi +20.400000,79.300000,en +20.500000,79.300000,en +20.500000,79.200000,vi +20.600000,79.200000,mr +20.600000,79.300000,en +20.700000,79.300000,en +20.700000,79.200000,vi +20.600000,79.100000,id +20.700000,79.100000,vi +20.700000,79.000000,mr +20.700000,78.900000,vi +20.600000,78.900000,vi +20.600000,79.000000,id +20.500000,79.000000,vi +20.400000,79.000000,vi +20.400000,78.900000,vi +20.500000,78.900000,vi +20.500000,78.800000,vi +20.400000,78.800000,vi +20.400000,78.700000,en +20.500000,78.700000,en +20.600000,78.800000,vi +20.700000,78.800000,vi +20.700000,78.600000,en +20.700000,78.500000,en +20.500000,78.400000,en +20.500000,78.300000,en +20.400000,78.300000,en +20.400000,78.400000,en +20.400000,78.500000,en +20.500000,78.500000,en +20.500000,78.600000,en +20.400000,78.600000,en +20.300000,78.600000,en +20.300000,78.500000,id +20.200000,78.500000,id +20.200000,78.600000,en +20.100000,78.600000,en +20.000000,78.600000,en +20.000000,78.500000,id +20.100000,78.500000,id +20.100000,78.400000,id +20.000000,78.400000,id +20.000000,78.300000,id +20.100000,78.300000,id +20.200000,78.300000,id +20.200000,78.400000,id +20.300000,78.400000,id +20.300000,78.300000,id +20.300000,78.200000,id +20.200000,78.200000,id +20.000000,78.200000,id +20.100000,78.200000,id +20.100000,78.100000,id +20.000000,78.100000,id +20.000000,78.000000,id +20.100000,78.000000,id +20.200000,78.000000,id +20.200000,78.100000,id +20.300000,78.100000,id +20.700000,78.200000,en +20.800000,78.200000,en +20.900000,78.200000,en +21.000000,78.200000,en +21.100000,78.200000,en +21.100000,78.300000,en +21.100000,78.400000,en +21.200000,78.400000,en +21.200000,78.300000,en +21.200000,78.600000,en +21.200000,78.500000,en +21.100000,78.500000,en +21.100000,78.600000,en +21.000000,78.600000,en +20.900000,78.500000,en +21.000000,78.500000,en +21.000000,78.400000,en +21.000000,78.300000,en +20.900000,78.300000,en +20.900000,78.400000,en +20.800000,78.400000,en +20.800000,78.300000,en +20.700000,78.300000,en +20.700000,78.400000,en +20.800000,78.500000,en +20.900000,78.600000,en +20.800000,78.600000,en +20.800000,78.700000,en +20.800000,78.800000,vi +20.900000,78.800000,en +20.900000,78.700000,en +21.000000,78.700000,en +21.100000,78.800000,en +21.000000,78.800000,en +20.800000,78.900000,vi +20.800000,79.000000,vi +20.800000,79.100000,vi +20.800000,79.200000,vi +20.800000,79.300000,en +21.300000,79.100000,en +21.300000,79.300000,en +21.300000,79.200000,en +21.400000,79.200000,en +21.400000,79.300000,en +21.500000,79.300000,en +21.500000,79.200000,en +21.400000,79.100000,en +21.400000,79.000000,en +21.400000,78.900000,en +21.300000,78.900000,en +21.300000,79.000000,en +21.200000,78.800000,en +21.100000,78.700000,en +21.200000,78.700000,en +21.400000,78.800000,en +21.500000,78.800000,en +21.600000,78.800000,en +21.800000,78.800000,en +21.700000,78.800000,en +21.700000,78.900000,en +21.800000,78.900000,en +21.800000,79.000000,en +21.700000,79.000000,en +21.600000,79.000000,en +21.600000,78.900000,en +21.500000,78.900000,en +21.500000,79.000000,en +21.500000,79.100000,en +21.600000,79.100000,en +21.600000,79.300000,en +21.700000,79.300000,en +21.600000,79.200000,en +21.700000,79.200000,en +21.800000,79.300000,en +21.800000,79.200000,en +21.700000,79.100000,en +21.600000,77.500000,en +21.600000,77.400000,en +21.700000,77.300000,en +21.700000,77.200000,en +21.600000,77.200000,en +21.600000,77.300000,en +21.500000,77.300000,en +21.500000,77.200000,en +21.400000,77.200000,en +21.400000,77.300000,en +21.400000,77.400000,en +21.500000,77.400000,en +21.500000,77.500000,en +21.400000,77.500000,en +21.400000,77.600000,en +21.500000,77.700000,en +21.500000,77.600000,en +21.600000,77.600000,en +21.600000,77.700000,en +21.600000,77.800000,en +21.500000,77.800000,en +21.300000,77.800000,en +21.400000,77.800000,en +21.400000,77.700000,en +21.300000,77.600000,en +21.300000,77.700000,en +21.100000,77.200000,en +21.100000,77.300000,en +21.100000,77.500000,en +21.100000,77.400000,en +21.200000,77.400000,en +21.200000,77.500000,en +21.300000,77.500000,en +21.300000,77.400000,en +21.300000,77.300000,en +21.200000,77.300000,en +21.200000,77.200000,en +21.300000,77.200000,en +21.200000,77.100000,en +21.300000,77.100000,en +21.300000,77.000000,en +21.300000,76.900000,en +21.200000,76.900000,en +21.200000,77.000000,en +21.100000,77.000000,en +21.100000,76.900000,en +21.000000,76.900000,en +21.000000,77.000000,en +21.100000,77.100000,en +20.600000,77.000000,en +20.600000,76.900000,en +20.900000,76.800000,ur +20.900000,76.700000,ur +20.800000,76.700000,ur +20.800000,76.800000,ur +20.700000,76.800000,ur +20.600000,76.800000,ur +20.600000,76.700000,ur +20.700000,76.700000,ur +20.700000,76.600000,ur +20.600000,76.600000,ur +20.600000,76.500000,ur +20.700000,76.500000,ur +20.800000,76.500000,ur +20.800000,76.600000,ur +20.900000,76.600000,ur +20.900000,76.500000,ur +21.000000,76.500000,en +21.100000,76.500000,en +21.100000,76.600000,en +21.000000,76.600000,en +21.000000,76.700000,en +21.000000,76.800000,en +21.100000,76.800000,en +21.100000,76.700000,en +21.200000,76.700000,en +21.200000,76.800000,en +21.300000,76.800000,en +21.300000,76.700000,en +21.300000,76.600000,en +21.200000,76.600000,en +21.200000,76.500000,en +21.300000,76.500000,en +21.400000,76.500000,en +21.400000,76.600000,en +21.500000,76.600000,en +21.500000,76.500000,en +21.600000,76.500000,en +21.600000,76.600000,en +21.600000,76.700000,en +21.700000,76.800000,en +21.600000,76.800000,en +21.500000,76.800000,en +21.500000,76.700000,en +21.400000,76.700000,en +21.400000,76.800000,en +21.400000,76.900000,en +21.500000,76.900000,en +21.500000,77.000000,en +21.400000,77.000000,en +21.400000,77.100000,en +21.500000,77.100000,en +21.600000,77.100000,en +21.700000,77.100000,en +21.700000,77.000000,en +21.600000,77.000000,en +21.600000,76.900000,en +21.700000,76.900000,en +21.800000,76.900000,en +21.800000,77.000000,en +21.800000,77.100000,en +21.800000,76.800000,en +21.700000,76.700000,en +21.800000,76.700000,en +21.700000,76.600000,en +21.300000,76.400000,en +21.300000,76.300000,en +21.400000,76.200000,en +21.300000,76.200000,en +21.300000,76.100000,en +21.400000,76.100000,en +21.500000,76.100000,en +21.500000,76.200000,en +21.600000,76.200000,en +21.600000,76.100000,en +21.600000,76.000000,en +21.600000,75.900000,en +21.500000,75.900000,en +21.500000,76.000000,en +21.400000,76.000000,en +21.300000,76.000000,en +21.300000,75.900000,en +21.400000,75.900000,en +21.300000,75.800000,en +21.400000,75.800000,en +21.500000,75.800000,en +21.600000,75.800000,en +21.800000,75.000000,en +21.800000,75.100000,en +21.700000,75.100000,en +21.700000,75.000000,en +21.600000,75.000000,en +21.600000,75.100000,en +21.600000,75.200000,en +21.700000,75.200000,en +21.700000,75.300000,en +21.600000,75.300000,en +21.500000,75.300000,en +21.400000,75.300000,en +21.400000,75.200000,en +21.500000,75.200000,en +21.500000,75.100000,en +21.500000,75.000000,en +21.400000,75.000000,ru +21.400000,75.100000,en +21.300000,75.100000,en +21.300000,75.000000,ru +21.200000,75.000000,ru +21.300000,75.200000,en +21.300000,75.300000,en +21.300000,75.400000,en +21.300000,75.500000,en +21.400000,75.500000,en +21.400000,75.400000,en +21.500000,75.400000,en +21.500000,75.500000,en +21.500000,75.600000,en +21.600000,75.700000,en +21.500000,75.700000,en +21.400000,75.700000,en +21.400000,75.600000,en +21.300000,75.600000,en +21.300000,75.700000,en +21.200000,75.700000,en +21.200000,75.600000,en +21.100000,75.600000,en +21.100000,75.700000,en +21.100000,75.400000,en +21.100000,75.500000,en +21.200000,75.500000,en +21.200000,75.400000,en +21.200000,75.300000,en +21.100000,75.300000,en +21.100000,75.000000,ru +21.000000,75.000000,ru +21.200000,75.800000,en +21.200000,75.900000,en +21.200000,76.000000,en +21.000000,76.200000,en +21.000000,76.100000,en +21.100000,76.100000,en +21.200000,76.100000,en +21.200000,76.200000,en +21.100000,76.200000,en +21.200000,76.300000,en +21.200000,76.400000,en +21.100000,76.400000,en +21.100000,76.300000,en +21.000000,76.300000,en +21.000000,76.400000,en +20.900000,76.400000,ur +20.800000,76.400000,ur +20.900000,76.300000,en +20.900000,76.200000,en +20.900000,76.100000,en +20.700000,76.400000,ur +20.600000,76.400000,ur +20.500000,76.400000,ur +20.000000,75.900000,id +20.000000,75.800000,id +19.900000,75.800000,id +19.800000,75.800000,id +19.800000,75.900000,id +19.900000,75.900000,id +19.100000,76.100000,en +19.100000,76.000000,en +19.100000,75.900000,en +19.100000,75.800000,en +19.600000,75.900000,id +19.700000,75.900000,id +19.600000,75.800000,id +19.700000,75.800000,id +19.700000,75.700000,id +19.600000,75.700000,id +19.600000,75.600000,id +19.700000,75.600000,id +19.700000,75.500000,ar +19.700000,75.400000,ar +19.600000,75.400000,en +19.600000,75.500000,id +19.500000,75.500000,en +19.500000,75.400000,en +19.400000,75.400000,en +19.400000,75.500000,en +19.100000,75.700000,en +19.300000,75.500000,en +19.300000,75.400000,en +19.300000,75.300000,en +19.300000,75.200000,en +19.100000,75.300000,pt +19.000000,75.300000,pt +19.000000,75.200000,pt +19.100000,75.200000,pt +19.100000,75.100000,pt +19.000000,75.100000,pt +19.000000,75.000000,pt +19.100000,75.000000,pt +19.300000,75.100000,en +19.500000,75.000000,pt +19.500000,75.100000,pt +19.400000,75.100000,en +19.400000,75.200000,en +19.400000,75.300000,en +19.500000,75.300000,en +19.500000,75.200000,pt +19.600000,75.200000,pt +19.600000,75.300000,en +19.700000,75.300000,ar +19.700000,75.200000,ar +19.700000,75.100000,ar +19.600000,75.100000,pt +19.600000,75.000000,pt +19.700000,75.000000,pt +19.800000,75.100000,ar +19.800000,75.000000,pt +19.900000,75.000000,pt +20.000000,75.100000,ar +19.900000,75.100000,ar +19.900000,75.200000,ar +20.000000,75.200000,ar +20.000000,75.300000,ar +19.900000,75.300000,ar +19.800000,75.200000,ar +19.800000,75.300000,ar +19.800000,75.400000,ar +19.900000,75.400000,ar +19.900000,75.500000,ar +19.800000,75.500000,ar +19.800000,75.600000,id +19.800000,75.700000,id +19.900000,75.700000,id +19.900000,75.600000,id +20.000000,75.600000,id +20.000000,75.700000,id +20.100000,75.500000,ar +20.000000,75.500000,ar +20.000000,75.400000,ar +20.100000,75.400000,ar +20.100000,75.300000,ar +20.100000,75.200000,ar +20.100000,75.100000,ar +20.400000,74.800000,ur +20.300000,74.600000,ur +20.300000,74.700000,ur +20.400000,74.700000,ur +20.300000,74.500000,ur +20.300000,74.400000,ur +20.300000,74.300000,ur +20.000000,74.500000,te +19.900000,74.500000,te +20.000000,74.400000,te +20.000000,74.300000,te +19.900000,74.300000,te +19.900000,74.400000,te +19.800000,74.400000,te +19.800000,74.300000,te +19.700000,74.300000,te +19.700000,74.400000,te +19.800000,74.500000,te +19.700000,74.500000,te +19.700000,74.600000,te +19.700000,74.700000,te +19.800000,74.700000,te +19.800000,74.600000,te +19.900000,74.600000,te +20.000000,74.600000,te +20.000000,74.700000,te +19.900000,74.700000,te +19.900000,74.800000,pt +19.900000,74.900000,pt +19.800000,74.900000,pt +19.800000,74.800000,pt +19.700000,74.800000,pt +19.700000,74.900000,pt +19.600000,74.900000,pt +19.500000,74.900000,pt +19.500000,74.800000,pt +19.600000,74.800000,pt +19.600000,74.700000,te +19.600000,74.600000,te +19.200000,74.800000,ta +19.100000,74.900000,pt +19.000000,74.900000,pt +19.000000,74.800000,ta +19.100000,74.800000,ta +19.100000,74.700000,ta +19.000000,74.700000,ta +19.000000,74.600000,ta +19.100000,74.600000,ta +19.200000,74.700000,ta +19.200000,74.600000,ta +19.200000,74.500000,ta +19.100000,74.500000,ta +19.000000,74.500000,ta +19.000000,74.400000,ta +18.900000,74.400000,ta +19.100000,74.400000,ta +19.200000,74.400000,ta +19.600000,74.500000,te +19.600000,74.400000,te +19.600000,74.300000,te +19.600000,74.200000,pt +19.600000,74.100000,pt +19.600000,74.000000,pt +19.200000,73.800000,en +19.200000,73.700000,en +19.100000,73.700000,en +19.100000,73.800000,en +19.000000,73.800000,en +18.900000,73.800000,en +18.900000,73.700000,en +19.000000,73.700000,en +19.000000,73.600000,en +18.900000,73.600000,en +18.900000,73.500000,en +19.000000,73.500000,en +19.100000,73.600000,en +19.100000,73.500000,en +19.200000,73.500000,en +19.300000,73.500000,en +19.300000,73.600000,en +19.200000,73.600000,en +19.300000,73.800000,en +19.400000,73.800000,en +19.300000,73.700000,en +19.400000,73.700000,en +19.500000,73.600000,pt +19.400000,73.600000,pt +19.400000,73.500000,pt +19.500000,73.500000,pt +19.600000,73.500000,pt +19.600000,73.600000,pt +19.700000,73.600000,pt +19.700000,73.500000,pt +19.800000,73.500000,pt +19.900000,73.500000,en +19.900000,73.600000,en +19.800000,73.600000,pt +19.600000,73.900000,pt +19.700000,73.900000,pt +19.700000,74.000000,pt +19.700000,74.100000,pt +19.700000,74.200000,pt +19.800000,74.200000,pt +19.800000,74.100000,pt +19.900000,74.200000,pt +19.900000,74.100000,pt +19.900000,74.000000,pt +19.800000,74.000000,pt +19.800000,73.900000,pt +19.900000,73.900000,pt +20.000000,73.900000,pt +20.000000,74.000000,pt +20.000000,74.100000,pt +20.000000,74.200000,pt +20.300000,73.700000,en +20.200000,73.700000,en +20.000000,73.700000,en +20.100000,73.700000,en +20.100000,73.600000,en +20.000000,73.600000,en +20.000000,73.500000,en +20.100000,73.500000,en +20.200000,73.500000,en +20.200000,73.600000,en +20.300000,73.600000,en +20.300000,73.500000,en +20.400000,73.500000,gu +20.400000,73.600000,gu +20.400000,73.700000,gu +20.400000,73.800000,gu +20.500000,73.800000,gu +20.500000,73.700000,gu +20.600000,73.800000,gu +20.600000,73.700000,gu +20.600000,73.600000,gu +20.500000,73.600000,gu +20.500000,73.500000,gu +20.600000,73.500000,mr +20.700000,73.500000,mr +20.700000,73.600000,mr +20.800000,73.600000,mr +20.800000,73.500000,mr +20.900000,73.500000,mr +21.000000,73.500000,mr +21.000000,73.600000,mr +20.900000,73.600000,mr +20.900000,73.700000,mr +21.000000,73.700000,mr +21.000000,73.800000,mr +20.900000,73.800000,mr +20.800000,73.800000,mr +20.800000,73.700000,mr +20.700000,73.700000,mr +20.700000,73.800000,gu +20.800000,74.000000,gu +20.900000,74.000000,gu +20.800000,73.900000,gu +20.900000,73.900000,gu +21.000000,73.900000,gu +21.000000,74.000000,gu +21.000000,74.100000,en +21.100000,74.200000,en +21.000000,74.200000,en +20.900000,74.200000,en +20.900000,74.100000,en +20.800000,74.100000,en +20.800000,74.200000,en +20.700000,74.200000,en +20.600000,74.200000,en +20.600000,74.100000,en +20.700000,74.100000,en +20.700000,74.000000,gu +20.700000,73.900000,gu +20.600000,73.900000,gu +20.600000,74.000000,gu +20.500000,74.000000,gu +20.500000,73.900000,gu +20.400000,73.900000,gu +20.400000,74.000000,gu +20.400000,74.100000,en +20.500000,74.100000,en +20.400000,74.300000,ur +20.400000,74.400000,ur +20.500000,74.400000,ur +20.500000,74.300000,ur +20.600000,74.300000,ur +20.700000,74.300000,ur +20.700000,74.400000,ur +20.600000,74.400000,ur +20.700000,74.500000,ur +20.600000,74.500000,ur +20.500000,74.500000,ur +20.400000,74.500000,ur +20.400000,74.600000,ur +20.500000,74.600000,ur +20.500000,74.700000,ur +20.500000,74.800000,ur +20.600000,74.800000,ur +20.700000,74.800000,ur +20.700000,74.700000,ur +20.600000,74.700000,ur +20.600000,74.600000,ur +20.700000,74.600000,ur +20.800000,74.600000,ur +20.800000,74.700000,ur +20.800000,74.800000,ur +21.000000,74.800000,ru +21.000000,74.900000,ru +21.100000,74.900000,ru +21.100000,74.800000,ru +21.100000,74.700000,ru +21.000000,74.700000,ru +21.000000,74.600000,ru +21.100000,74.600000,ru +20.800000,74.500000,ur +20.800000,74.400000,ur +20.800000,74.300000,ur +21.200000,74.300000,id +21.200000,74.400000,id +21.300000,74.400000,id +21.300000,74.300000,gu +21.400000,74.300000,gu +21.400000,74.400000,id +21.500000,74.500000,en +21.400000,74.500000,en +21.300000,74.500000,en +21.200000,74.600000,ru +21.300000,74.600000,ru +21.300000,74.700000,ru +21.200000,74.700000,ru +21.200000,74.800000,ru +21.200000,74.900000,ru +21.300000,74.900000,ru +21.300000,74.800000,ru +21.400000,74.800000,ru +21.400000,74.900000,ru +21.500000,74.900000,en +21.500000,74.800000,en +21.500000,74.700000,en +21.400000,74.700000,ru +21.400000,74.600000,ru +21.500000,74.600000,en +21.600000,74.600000,en +21.700000,74.700000,en +21.600000,74.700000,en +21.600000,74.800000,en +21.600000,74.900000,en +21.700000,74.900000,en +21.700000,74.800000,en +21.800000,74.800000,en +21.800000,74.900000,en +21.800000,74.700000,en +21.700000,74.600000,en +21.800000,74.600000,en +21.800000,74.500000,en +21.700000,74.500000,en +21.600000,74.500000,en +21.600000,74.400000,gu +21.500000,74.400000,gu +21.500000,74.300000,gu +21.600000,74.300000,gu +21.700000,74.300000,gu +21.700000,74.400000,gu +21.800000,74.400000,en +21.800000,74.300000,gu +21.800000,74.200000,ur +21.700000,74.200000,gu +21.700000,74.100000,gu +21.800000,74.100000,ur +21.800000,74.000000,gu +21.800000,73.900000,mr +21.700000,73.900000,gu +21.700000,74.000000,gu +21.600000,74.000000,ur +21.600000,73.900000,gu +21.500000,73.900000,gu +21.500000,74.000000,gu +21.500000,74.100000,gu +21.600000,74.100000,gu +21.600000,74.200000,gu +21.500000,74.200000,gu +21.400000,74.200000,id +21.400000,74.100000,gu +21.300000,74.100000,gu +21.300000,74.200000,gu +21.200000,74.200000,id +21.100000,74.100000,en +21.200000,74.100000,id +21.200000,74.000000,gu +21.100000,74.000000,gu +21.100000,73.900000,gu +21.200000,73.900000,gu +21.300000,73.900000,gu +21.300000,74.000000,gu +21.400000,74.000000,gu +21.400000,73.900000,gu +21.400000,73.800000,mr +21.400000,73.700000,mr +21.300000,73.700000,mr +21.300000,73.800000,gu +21.200000,73.800000,gu +21.100000,73.800000,gu +21.100000,73.700000,mr +21.200000,73.700000,mr +21.200000,73.600000,mr +21.100000,73.600000,mr +21.100000,73.500000,mr +21.200000,73.500000,mr +21.300000,73.500000,mr +21.300000,73.600000,mr +21.400000,73.600000,mr +21.400000,73.500000,mr +21.500000,73.500000,en +21.600000,73.600000,en +21.500000,73.600000,en +21.500000,73.700000,mr +21.500000,73.800000,mr +21.600000,73.800000,mr +21.600000,73.700000,mr +21.700000,73.700000,mr +21.700000,73.800000,mr +21.800000,73.800000,mr +21.700000,73.600000,pt +21.600000,73.500000,en +21.700000,73.500000,pt +21.700000,73.400000,pt +21.700000,73.300000,mr +21.600000,73.300000,mr +21.600000,73.400000,en +21.500000,73.400000,en +21.400000,73.400000,mr +21.400000,73.300000,mr +21.500000,73.300000,mr +21.500000,73.200000,mr +21.400000,73.200000,mr +21.400000,73.100000,mr +21.500000,73.100000,mr +21.600000,73.100000,mr +21.600000,73.200000,mr +21.700000,73.200000,mr +21.700000,73.100000,mr +21.700000,73.000000,mr +21.600000,73.000000,mr +21.600000,72.900000,mr +21.700000,72.900000,mr +21.700000,72.800000,mr +21.600000,72.800000,mr +21.500000,72.800000,mr +21.400000,72.800000,mr +21.400000,72.900000,mr +21.500000,72.900000,mr +21.500000,73.000000,mr +21.400000,73.000000,mr +21.300000,73.000000,mr +21.200000,73.000000,mr +21.200000,72.900000,mr +21.300000,72.900000,mr +21.300000,72.800000,mr +21.200000,72.800000,mr +21.100000,72.800000,mr +21.000000,72.800000,mr +21.000000,72.900000,mr +21.100000,72.900000,mr +21.100000,73.000000,mr +21.000000,73.000000,mr +21.000000,73.100000,mr +21.100000,73.200000,mr +21.100000,73.100000,mr +21.200000,73.100000,mr +21.300000,73.100000,mr +21.300000,73.200000,mr +21.200000,73.200000,mr +21.300000,73.300000,mr +21.300000,73.400000,mr +21.200000,73.400000,mr +21.200000,73.300000,mr +21.100000,73.300000,mr +21.100000,73.400000,mr +21.000000,73.400000,mr +20.900000,73.400000,mr +20.900000,73.300000,mr +21.000000,73.300000,mr +21.000000,73.200000,mr +20.900000,73.100000,mr +20.900000,73.200000,mr +20.800000,73.200000,mr +20.800000,73.100000,mr +20.700000,73.100000,mr +20.700000,73.200000,mr +20.700000,73.300000,mr +20.800000,73.300000,mr +20.800000,73.400000,mr +20.700000,73.400000,mr +20.600000,73.400000,mr +20.600000,73.300000,mr +20.500000,73.300000,mr +20.500000,73.400000,mr +20.400000,73.400000,mr +20.300000,73.400000,gu +20.300000,73.300000,mr +20.400000,73.300000,mr +20.400000,73.200000,mr +20.300000,73.200000,mr +20.300000,73.100000,mr +20.400000,73.100000,mr +20.500000,73.100000,mr +20.500000,73.200000,mr +20.600000,73.200000,mr +20.600000,73.100000,mr +20.600000,73.000000,mr +20.600000,72.900000,mr +20.500000,72.900000,mr +20.500000,73.000000,mr +20.400000,73.000000,mr +20.300000,73.000000,mr +20.300000,72.900000,mr +20.400000,72.900000,mr +20.300000,72.800000,mr +20.400000,72.800000,mr +20.500000,72.800000,mr +20.600000,72.800000,mr +20.700000,72.800000,mr +20.700000,73.000000,mr +20.800000,73.000000,mr +20.700000,72.900000,mr +20.800000,72.900000,mr +20.900000,73.000000,mr +20.900000,72.900000,mr +20.800000,72.800000,mr +20.900000,72.800000,en +20.900000,72.700000,en +20.800000,72.700000,mr +20.800000,72.600000,gu +20.900000,72.600000,en +20.900000,72.500000,gu +20.800000,72.400000,mr +20.800000,72.500000,mr +20.700000,72.500000,mr +20.700000,72.400000,mr +20.600000,72.400000,mr +20.600000,72.500000,mr +20.600000,72.600000,gu +20.700000,72.700000,mr +20.600000,72.700000,mr +20.500000,72.700000,mr +20.500000,72.600000,mr +20.400000,72.600000,mr +20.400000,72.700000,mr +20.300000,72.700000,mr +20.300000,72.600000,mr +20.300000,72.500000,mr +20.200000,72.500000,en +20.400000,72.500000,mr +20.500000,72.500000,mr +20.900000,72.300000,en +20.900000,72.200000,en +20.900000,72.000000,en +20.900000,72.100000,en +21.000000,72.000000,en +21.100000,72.000000,en +21.200000,72.000000,en +21.200000,72.300000,en +21.100000,72.300000,en +21.000000,72.300000,en +21.000000,72.400000,gu +21.100000,72.400000,gu +21.100000,72.500000,gu +21.000000,72.500000,gu +21.000000,72.600000,en +21.000000,72.700000,en +21.100000,72.700000,mr +21.100000,72.600000,en +21.200000,72.600000,mr +21.200000,72.700000,mr +21.300000,72.700000,mr +21.300000,72.600000,mr +21.300000,72.500000,en +21.200000,72.500000,gu +21.200000,72.400000,gu +21.300000,72.400000,gu +21.400000,72.400000,en +21.400000,72.500000,bn +21.400000,72.600000,mr +21.400000,72.700000,mr +21.500000,72.700000,en +21.500000,72.600000,en +21.600000,72.700000,en +21.600000,72.600000,en +21.600000,72.500000,en +21.500000,72.500000,en +21.500000,72.400000,en +21.600000,72.400000,en +21.600000,72.300000,en +21.600000,72.200000,id +21.500000,72.200000,en +21.500000,72.300000,en +21.400000,72.300000,en +21.300000,72.300000,en +21.300000,72.200000,en +21.400000,72.200000,en +21.400000,72.100000,en +21.300000,72.100000,en +21.500000,72.100000,en +21.600000,72.100000,id +21.600000,72.000000,id +21.600000,71.900000,id +21.500000,71.800000,en +21.500000,71.700000,en +21.500000,71.600000,en +21.400000,71.600000,en +21.400000,71.700000,en +21.300000,71.600000,en +21.300000,71.700000,en +21.300000,71.800000,en +21.400000,71.800000,en +21.200000,71.900000,en +21.200000,71.800000,en +21.100000,71.800000,en +21.100000,71.900000,en +21.000000,71.900000,en +20.900000,71.900000,en +20.900000,71.800000,en +21.000000,71.800000,en +21.000000,71.700000,en +20.900000,71.700000,en +20.900000,71.600000,en +21.000000,71.600000,en +21.100000,71.600000,en +21.100000,71.700000,en +21.200000,71.700000,en +21.200000,71.600000,en +21.100000,71.400000,en +21.000000,71.400000,en +21.100000,71.500000,en +21.000000,71.500000,en +20.900000,71.500000,en +20.900000,71.400000,en +20.900000,71.300000,en +20.800000,71.200000,pt +20.900000,71.200000,pt +21.000000,71.200000,en +21.000000,71.300000,en +21.100000,71.300000,en +21.100000,71.200000,en +21.200000,71.200000,en +21.300000,71.200000,en +21.300000,71.300000,en +21.200000,71.300000,en +21.200000,71.400000,en +21.200000,71.500000,en +21.300000,71.500000,en +21.300000,71.400000,en +21.400000,71.400000,en +21.400000,71.500000,en +21.500000,71.500000,en +21.500000,71.400000,en +21.400000,71.200000,en +21.400000,71.100000,en +21.300000,71.100000,en +21.200000,71.100000,en +21.300000,71.000000,en +21.200000,71.000000,en +21.200000,70.900000,en +21.300000,70.900000,en +21.400000,71.000000,en +21.400000,70.900000,en +21.400000,70.800000,en +21.300000,70.800000,en +21.300000,70.700000,en +21.400000,70.700000,en +21.400000,70.600000,en +21.400000,70.500000,en +21.300000,70.500000,en +21.300000,70.600000,en +21.200000,70.600000,en +21.200000,70.500000,en +21.100000,70.500000,en +21.100000,70.600000,en +21.200000,70.700000,en +21.200000,70.800000,en +21.100000,70.800000,en +21.000000,70.800000,en +21.000000,70.700000,en +21.100000,70.700000,en +21.000000,70.600000,en +21.000000,70.500000,en +20.900000,70.500000,en +20.900000,70.600000,en +20.800000,70.500000,en +20.800000,70.600000,en +20.800000,70.700000,en +20.900000,70.700000,en +20.900000,70.800000,pt +20.800000,70.800000,pt +20.800000,70.900000,pt +20.800000,71.000000,pt +20.900000,71.000000,pt +20.900000,70.900000,pt +21.000000,70.900000,en +21.100000,70.900000,en +21.100000,71.000000,en +21.000000,71.000000,en +21.100000,71.100000,en +21.000000,71.100000,en +20.900000,71.100000,pt +20.800000,71.100000,pt +20.700000,71.100000,pt +20.600000,71.100000,pt +20.500000,71.100000,pt +20.500000,71.000000,pt +20.500000,70.900000,pt +20.600000,70.900000,pt +20.600000,71.000000,pt +20.700000,71.000000,pt +20.700000,70.900000,pt +20.700000,70.800000,pt +20.600000,70.800000,pt +20.600000,70.700000,en +20.700000,70.700000,en +20.700000,70.600000,en +20.700000,70.500000,en +20.600000,70.500000,en +20.600000,70.600000,en +20.500000,70.800000,pt +20.600000,71.300000,en +20.600000,71.200000,pt +20.700000,71.200000,pt +20.800000,71.300000,en +20.700000,71.300000,en +20.700000,71.400000,en +20.800000,71.400000,en +20.800000,71.500000,en +20.700000,71.500000,en +20.600000,71.400000,en +20.700000,71.600000,en +20.800000,71.600000,en +20.800000,71.700000,en +20.700000,71.700000,en +20.800000,71.800000,en +20.800000,71.900000,en +18.800000,72.600000,ar +18.800000,72.700000,ar +18.900000,72.700000,ar +18.900000,72.600000,ar +19.000000,72.600000,ar +19.000000,72.700000,ar +19.100000,72.700000,fr +19.100000,72.600000,ar +19.200000,72.700000,gu +19.200000,72.600000,fr +19.300000,72.600000,gu +19.300000,72.700000,gu +19.400000,72.700000,gu +19.400000,72.600000,gu +19.400000,72.500000,mr +19.900000,72.500000,en +20.000000,72.500000,en +20.100000,72.500000,en +20.100000,72.600000,en +20.200000,72.600000,en +20.200000,72.700000,mr +20.100000,72.700000,mr +20.000000,72.700000,en +20.000000,72.600000,en +19.900000,72.600000,en +19.900000,72.700000,en +19.800000,72.700000,en +19.700000,72.700000,en +19.700000,72.600000,en +19.800000,72.600000,en +19.800000,72.500000,en +19.700000,72.500000,en +19.600000,72.500000,en +19.500000,72.500000,mr +19.500000,72.600000,en +19.600000,72.600000,en +19.600000,72.700000,en +19.500000,72.700000,en +19.500000,72.800000,en +19.600000,72.800000,en +19.600000,73.000000,pt +19.600000,72.900000,en +19.700000,72.900000,en +19.700000,73.000000,pt +19.800000,73.000000,pt +19.800000,72.900000,pt +19.700000,72.800000,en +19.800000,72.800000,en +19.900000,72.800000,en +20.000000,72.800000,en +20.100000,72.800000,gu +20.200000,72.800000,gu +20.100000,72.900000,gu +20.200000,72.900000,gu +20.200000,73.000000,mr +20.100000,73.000000,gu +20.000000,73.000000,gu +20.000000,72.900000,en +19.900000,72.900000,en +19.900000,73.000000,pt +19.900000,73.100000,gu +19.900000,73.200000,gu +20.000000,73.200000,gu +20.000000,73.100000,gu +20.100000,73.100000,gu +20.200000,73.100000,mr +20.200000,73.200000,mr +20.100000,73.200000,gu +20.100000,73.300000,gu +20.200000,73.300000,gu +20.200000,73.400000,gu +20.100000,73.400000,gu +20.000000,73.300000,gu +20.000000,73.400000,en +19.900000,73.400000,en +19.800000,73.400000,pt +19.800000,73.300000,pt +19.900000,73.300000,gu +19.800000,73.100000,pt +19.800000,73.200000,pt +19.700000,73.200000,pt +19.700000,73.100000,pt +19.600000,73.100000,pt +19.600000,73.200000,pt +19.600000,73.300000,pt +19.700000,73.300000,pt +19.700000,73.400000,pt +19.600000,73.400000,pt +19.500000,73.400000,pt +19.500000,73.300000,ur +19.400000,73.300000,ur +19.400000,73.400000,pt +19.300000,73.400000,en +19.200000,73.400000,pt +19.200000,73.300000,ur +19.300000,73.300000,ur +19.300000,73.200000,ur +19.200000,73.200000,ur +19.200000,73.100000,gu +19.300000,73.100000,ur +19.400000,73.100000,gu +19.400000,73.200000,ur +19.500000,73.200000,ur +19.500000,73.100000,ur +19.500000,73.000000,ur +19.400000,73.000000,gu +19.400000,72.900000,gu +19.500000,72.900000,ur +19.400000,72.800000,gu +19.300000,72.800000,gu +19.200000,72.800000,gu +19.200000,72.900000,gu +19.300000,72.900000,gu +19.300000,73.000000,gu +19.200000,73.000000,gu +19.100000,73.000000,gu +19.000000,73.000000,ta +19.000000,72.900000,ta +19.100000,72.900000,gu +19.100000,72.800000,fr +19.000000,72.800000,ar +18.900000,72.800000,ar +18.800000,72.800000,ar +18.800000,72.900000,ar +18.900000,72.900000,ar +18.900000,73.000000,ar +18.800000,73.000000,ar +18.800000,73.100000,ta +18.800000,73.200000,ta +18.900000,73.200000,ta +18.900000,73.100000,ta +19.000000,73.100000,ta +19.100000,73.100000,bn +19.100000,73.200000,ur +19.000000,73.200000,ta +19.000000,73.300000,bn +19.100000,73.300000,ur +19.100000,73.400000,pt +19.000000,73.400000,pt +18.900000,73.300000,bn +18.900000,73.400000,pt +18.800000,73.400000,pt +18.700000,73.400000,en +18.700000,73.300000,en +18.800000,73.300000,pt +18.700000,73.100000,bn +18.700000,73.200000,en +18.600000,73.200000,en +18.600000,73.100000,en +18.500000,73.100000,en +18.500000,73.200000,en +18.500000,73.300000,en +18.600000,73.300000,en +18.600000,73.400000,en +18.500000,73.400000,en +18.400000,73.400000,en +18.400000,73.300000,en +18.300000,73.300000,en +18.300000,73.400000,en +18.200000,73.400000,en +18.100000,73.400000,en +18.100000,73.300000,en +18.200000,73.300000,en +18.200000,73.200000,en +18.100000,73.200000,en +18.100000,73.100000,en +18.200000,73.100000,en +18.300000,73.100000,en +18.300000,73.200000,en +18.400000,73.200000,en +18.400000,73.100000,en +18.400000,73.000000,en +18.300000,72.900000,en +18.300000,73.000000,en +18.200000,73.000000,en +18.100000,73.000000,en +18.100000,72.900000,en +18.200000,72.900000,en +18.100000,72.800000,en +18.200000,72.800000,en +18.300000,72.800000,en +18.400000,72.800000,en +18.500000,72.800000,en +18.400000,72.900000,en +18.500000,73.000000,en +18.500000,72.900000,en +18.600000,72.900000,en +18.600000,73.000000,en +18.700000,73.000000,ar +18.700000,72.900000,ar +18.600000,72.800000,en +18.700000,72.800000,ar +18.700000,72.700000,ar +18.700000,72.600000,ar +18.600000,72.700000,en +18.500000,72.700000,en +18.400000,72.700000,en +18.400000,72.600000,ar +18.500000,72.600000,ar +18.200000,72.600000,en +18.300000,72.600000,en +18.300000,72.700000,en +18.200000,72.700000,en +18.100000,72.600000,en +18.100000,72.700000,en +18.000000,72.700000,en +17.900000,72.700000,en +17.800000,72.700000,en +17.700000,72.700000,en +17.400000,72.800000,en +17.300000,72.900000,en +17.400000,73.000000,en +17.400000,72.900000,en +17.500000,72.900000,en +17.500000,73.000000,en +17.600000,73.000000,en +17.600000,72.900000,en +17.500000,72.800000,en +17.600000,72.800000,en +17.700000,72.800000,en +17.800000,72.800000,en +17.900000,72.800000,en +18.000000,73.000000,en +17.900000,73.000000,en +17.800000,73.000000,en +17.800000,72.900000,en +17.700000,72.900000,en +17.700000,73.000000,en +17.700000,73.100000,en +17.700000,73.200000,en +17.800000,73.200000,en +17.800000,73.100000,en +17.900000,73.100000,en +18.000000,73.100000,en +18.000000,73.200000,en +17.900000,73.200000,en +17.900000,73.300000,en +18.000000,73.300000,en +18.000000,73.400000,en +17.900000,73.400000,en +17.800000,73.300000,en +17.700000,73.300000,en +17.800000,73.400000,en +17.700000,73.400000,en +17.600000,73.400000,en +17.600000,73.300000,en +17.600000,73.200000,en +17.600000,73.100000,en +17.500000,73.100000,en +17.500000,73.200000,en +17.400000,73.100000,en +17.400000,73.200000,en +17.400000,73.300000,pt +17.500000,73.300000,pt +17.500000,73.400000,pt +17.400000,73.400000,pt +17.300000,73.400000,pt +17.300000,73.300000,pt +17.200000,73.300000,pt +17.200000,73.400000,pt +17.100000,73.400000,pt +17.000000,73.400000,en +17.000000,73.300000,en +17.100000,73.300000,pt +17.100000,73.200000,en +17.000000,73.200000,en +17.000000,73.100000,en +17.100000,73.100000,en +17.200000,73.100000,en +17.200000,73.200000,en +17.300000,73.200000,en +17.300000,73.100000,en +17.300000,73.000000,en +17.200000,73.000000,en +17.200000,72.900000,en +17.000000,72.900000,en +17.100000,72.900000,en +17.100000,73.000000,pt +17.000000,73.000000,pt +16.900000,73.000000,pt +16.800000,73.000000,pt +16.900000,72.900000,en +16.700000,73.000000,en +16.600000,73.000000,en +16.600000,73.200000,en +16.700000,73.200000,en +16.900000,73.200000,en +16.800000,73.200000,en +16.800000,73.300000,en +16.900000,73.300000,en +16.900000,73.400000,en +16.800000,73.400000,en +16.700000,73.300000,en +16.700000,73.400000,en +16.600000,73.400000,en +16.600000,73.300000,en +16.400000,73.100000,en +16.300000,73.100000,en +16.100000,73.300000,en +16.100000,73.400000,en +16.000000,73.400000,en +15.900000,73.400000,en +15.900000,73.300000,en +16.000000,73.300000,en +16.000000,73.200000,en +15.900000,73.200000,en +16.100000,73.200000,en +16.200000,73.100000,en +20.700000,70.200000,en +21.200000,69.600000,mr +21.300000,69.500000,mr \ No newline at end of file
diff --git a/components/unified_consent/unified_consent_service.cc b/components/unified_consent/unified_consent_service.cc index a4df2170..f890d5f6 100644 --- a/components/unified_consent/unified_consent_service.cc +++ b/components/unified_consent/unified_consent_service.cc
@@ -92,10 +92,10 @@ void UnifiedConsentService::OnStateChanged(syncer::SyncService* sync) { // Start observing pref changes when the user enters sync setup. - // Note: |sync->IsSetupInProgress()| is used instead of - // |sync->IsFirstSetupInProgress()|, because on Android - // |SetFirstSetupComplete()| is called automatically during the first setup. - // I.e. the value could change in the meantime. + // Note: Only |sync->IsSetupInProgress()| is used (i.e. no check for + // |IsFirstSetupComplete()|), because on Android |SetFirstSetupComplete()| is + // called automatically during the first setup, i.e. the value could change in + // the meantime. if (sync->IsSetupInProgress() && !pref_service_->IsSyncing()) { StartObservingServicePrefChanges(); } else {
diff --git a/content/browser/background_sync/background_sync_manager.cc b/content/browser/background_sync/background_sync_manager.cc index c7225b59..d0d8134 100644 --- a/content/browser/background_sync/background_sync_manager.cc +++ b/content/browser/background_sync/background_sync_manager.cc
@@ -239,6 +239,24 @@ } } +// This prevents the browser process from shutting down when the last browser +// window is closed and there are one-shot Background Sync events ready to fire. +std::unique_ptr<BackgroundSyncController::BackgroundSyncEventKeepAlive> +CreateBackgroundSyncEventKeepAliveOnUIThread( + scoped_refptr<ServiceWorkerContextWrapper> sw_context_wrapper, + const blink::mojom::BackgroundSyncRegistrationInfo& registration_info) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + + BackgroundSyncController* controller = + GetBackgroundSyncControllerOnUIThread(sw_context_wrapper); + if (!controller || + registration_info.sync_type != BackgroundSyncType::ONE_SHOT) { + return nullptr; + } + + return controller->CreateBackgroundSyncEventKeepAlive(); +} + } // namespace BackgroundSyncManager::BackgroundSyncRegistrations:: @@ -880,7 +898,20 @@ } registration->set_resolved(); - FireReadyEvents(MakeEmptyCompletion()); + base::PostTaskWithTraitsAndReplyWithResult( + FROM_HERE, {BrowserThread::UI}, + base::BindOnce(&CreateBackgroundSyncEventKeepAliveOnUIThread, + service_worker_context_, std::move(*registration_info)), + base::BindOnce( + &BackgroundSyncManager::ResolveRegistrationDidCreateKeepAlive, + weak_ptr_factory_.GetWeakPtr())); +} + +void BackgroundSyncManager::ResolveRegistrationDidCreateKeepAlive( + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive) { + DCHECK_CURRENTLY_ON(BrowserThread::IO); + + FireReadyEvents(MakeEmptyCompletion(), std::move(keepalive)); op_scheduler_.CompleteOperationAndRunNext(); } @@ -1103,7 +1134,8 @@ if (!soonest_wakeup_delta.is_max() && !soonest_wakeup_delta.is_zero()) { delayed_sync_task_.Reset( base::BindOnce(&BackgroundSyncManager::FireReadyEvents, - weak_ptr_factory_.GetWeakPtr(), MakeEmptyCompletion())); + weak_ptr_factory_.GetWeakPtr(), MakeEmptyCompletion(), + /* keepalive= */ nullptr)); ScheduleDelayedTask(delayed_sync_task_.callback(), soonest_wakeup_delta); } @@ -1114,7 +1146,9 @@ base::BindOnce(RunInBackgroundOnUIThread, service_worker_context_)); } -void BackgroundSyncManager::FireReadyEvents(base::OnceClosure callback) { +void BackgroundSyncManager::FireReadyEvents( + base::OnceClosure callback, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive) { DCHECK_CURRENTLY_ON(BrowserThread::IO); if (disabled_) @@ -1123,10 +1157,13 @@ op_scheduler_.ScheduleOperation( CacheStorageSchedulerOp::kBackgroundSync, base::BindOnce(&BackgroundSyncManager::FireReadyEventsImpl, - weak_ptr_factory_.GetWeakPtr(), std::move(callback))); + weak_ptr_factory_.GetWeakPtr(), std::move(callback), + std::move(keepalive))); } -void BackgroundSyncManager::FireReadyEventsImpl(base::OnceClosure callback) { +void BackgroundSyncManager::FireReadyEventsImpl( + base::OnceClosure callback, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive) { DCHECK_CURRENTLY_ON(BrowserThread::IO); if (disabled_) { @@ -1197,12 +1234,14 @@ base::BindOnce( &BackgroundSyncManager::FireReadyEventsDidFindRegistration, weak_ptr_factory_.GetWeakPtr(), std::move(registration_info), - events_fired_barrier_closure, events_completed_barrier_closure)); + std::move(keepalive), events_fired_barrier_closure, + events_completed_barrier_closure)); } } void BackgroundSyncManager::FireReadyEventsDidFindRegistration( blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive, base::OnceClosure event_fired_callback, base::OnceClosure event_completed_callback, blink::ServiceWorkerStatusCode service_worker_status, @@ -1264,10 +1303,10 @@ DispatchSyncEvent( registration->options()->tag, service_worker_registration->active_version(), last_chance, - base::BindOnce(&BackgroundSyncManager::EventComplete, - weak_ptr_factory_.GetWeakPtr(), - service_worker_registration, std::move(registration_info), - std::move(event_completed_callback))); + base::BindOnce( + &BackgroundSyncManager::EventComplete, weak_ptr_factory_.GetWeakPtr(), + service_worker_registration, std::move(registration_info), + std::move(keepalive), std::move(event_completed_callback))); base::ThreadTaskRunnerHandle::Get()->PostTask( FROM_HERE, std::move(event_fired_callback)); @@ -1286,6 +1325,7 @@ void BackgroundSyncManager::EventComplete( scoped_refptr<ServiceWorkerRegistration> service_worker_registration, blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive, base::OnceClosure callback, blink::ServiceWorkerStatusCode status_code) { DCHECK_CURRENTLY_ON(BrowserThread::IO); @@ -1309,12 +1349,14 @@ CacheStorageSchedulerOp::kBackgroundSync, base::BindOnce(&BackgroundSyncManager::EventCompleteImpl, weak_ptr_factory_.GetWeakPtr(), - std::move(registration_info), status_code, origin, + std::move(registration_info), std::move(keepalive), + status_code, origin, op_scheduler_.WrapCallbackToRunNext(std::move(callback)))); } void BackgroundSyncManager::EventCompleteImpl( blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive, blink::ServiceWorkerStatusCode status_code, const url::Origin& origin, base::OnceClosure callback) {
diff --git a/content/browser/background_sync/background_sync_manager.h b/content/browser/background_sync/background_sync_manager.h index 8ca76b85..35250620 100644 --- a/content/browser/background_sync/background_sync_manager.h +++ b/content/browser/background_sync/background_sync_manager.h
@@ -28,6 +28,7 @@ #include "content/browser/service_worker/service_worker_context_core_observer.h" #include "content/browser/service_worker/service_worker_storage.h" #include "content/common/content_export.h" +#include "content/public/browser/background_sync_controller.h" #include "content/public/browser/background_sync_parameters.h" #include "content/public/browser/browser_thread.h" #include "third_party/blink/public/common/service_worker/service_worker_status_code.h" @@ -63,6 +64,8 @@ using StatusAndRegistrationsCallback = base::OnceCallback<void( BackgroundSyncStatus, std::vector<std::unique_ptr<BackgroundSyncRegistration>>)>; + using BackgroundSyncEventKeepAlive = + BackgroundSyncController::BackgroundSyncEventKeepAlive; static std::unique_ptr<BackgroundSyncManager> Create( scoped_refptr<ServiceWorkerContextWrapper> service_worker_context, @@ -122,7 +125,9 @@ // Scans the list of available events and fires those that are // ready to fire. For those that can't yet be fired, wakeup alarms are set. // Once all of this is done, invokes |callback|. - void FireReadyEvents(base::OnceClosure callback); + void FireReadyEvents( + base::OnceClosure callback, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive = nullptr); // Gets the soonest delta after which the browser should be woken up to send // a Background Sync event. If set to max, the browser won't be woken up. @@ -247,6 +252,8 @@ // DidResolveRegistration callbacks void DidResolveRegistrationImpl( blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info); + void ResolveRegistrationDidCreateKeepAlive( + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive); // GetRegistrations callbacks void GetRegistrationsImpl(int64_t sw_registration_id, @@ -265,9 +272,12 @@ // called by FireReadyEvents. void RunInBackgroundIfNecessary(); - void FireReadyEventsImpl(base::OnceClosure callback); + void FireReadyEventsImpl( + base::OnceClosure callback, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive); void FireReadyEventsDidFindRegistration( blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive, base::OnceClosure event_fired_callback, base::OnceClosure event_completed_callback, blink::ServiceWorkerStatusCode service_worker_status, @@ -278,10 +288,12 @@ void EventComplete( scoped_refptr<ServiceWorkerRegistration> service_worker_registration, blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive, base::OnceClosure callback, blink::ServiceWorkerStatusCode status_code); void EventCompleteImpl( blink::mojom::BackgroundSyncRegistrationInfoPtr registration_info, + std::unique_ptr<BackgroundSyncEventKeepAlive> keepalive, blink::ServiceWorkerStatusCode status_code, const url::Origin& origin, base::OnceClosure callback);
diff --git a/content/browser/gpu/gpu_internals_ui.cc b/content/browser/gpu/gpu_internals_ui.cc index 71fab54..29f0f18 100644 --- a/content/browser/gpu/gpu_internals_ui.cc +++ b/content/browser/gpu/gpu_internals_ui.cc
@@ -48,6 +48,7 @@ #include "ui/display/display.h" #include "ui/display/screen.h" #include "ui/gfx/buffer_format_util.h" +#include "ui/gfx/buffer_usage_util.h" #include "ui/gl/gpu_switching_manager.h" #if defined(OS_WIN) @@ -329,29 +330,6 @@ return info; } -const char* BufferUsageToString(gfx::BufferUsage usage) { - switch (usage) { - case gfx::BufferUsage::GPU_READ: - return "GPU_READ"; - case gfx::BufferUsage::SCANOUT: - return "SCANOUT"; - case gfx::BufferUsage::SCANOUT_CAMERA_READ_WRITE: - return "SCANOUT_CAMERA_READ_WRITE"; - case gfx::BufferUsage::CAMERA_AND_CPU_READ_WRITE: - return "CAMERA_AND_CPU_READ_WRITE"; - case gfx::BufferUsage::SCANOUT_CPU_READ_WRITE: - return "SCANOUT_CPU_READ_WRITE"; - case gfx::BufferUsage::SCANOUT_VDA_WRITE: - return "SCANOUT_VDA_WRITE"; - case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE: - return "GPU_READ_CPU_READ_WRITE"; - case gfx::BufferUsage::GPU_READ_CPU_READ_WRITE_PERSISTENT: - return "GPU_READ_CPU_READ_WRITE_PERSISTENT"; - } - NOTREACHED(); - return nullptr; -} - std::unique_ptr<base::ListValue> CompositorInfo() { auto compositor_info = std::make_unique<base::ListValue>(); @@ -383,7 +361,7 @@ native_usage_support = base::StringPrintf( "%s%s %s", native_usage_support.c_str(), native_usage_support.empty() ? "" : ",", - BufferUsageToString(static_cast<gfx::BufferUsage>(usage))); + gfx::BufferUsageToString(static_cast<gfx::BufferUsage>(usage))); } } if (native_usage_support.empty())
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc index c6f920cd..c767bc4 100644 --- a/content/browser/loader/navigation_url_loader_impl.cc +++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -615,8 +615,10 @@ // Set-up an interceptor for service workers. if (service_worker_navigation_handle_core) { std::unique_ptr<NavigationLoaderInterceptor> service_worker_interceptor = - CreateServiceWorkerInterceptor(*request_info, - service_worker_navigation_handle_core); + ServiceWorkerRequestHandler::CreateForNavigation( + resource_request_->url, resource_context_, + service_worker_navigation_handle_core, *request_info, + web_contents_getter_, &service_worker_provider_host_); // The interceptor for service worker may not be created for some reasons // (e.g. the origin is not secure). if (service_worker_interceptor) @@ -1318,28 +1320,6 @@ navigation_ui_data_.get(), frame_tree_node_id_); } - std::unique_ptr<NavigationLoaderInterceptor> CreateServiceWorkerInterceptor( - const NavigationRequestInfo& request_info, - ServiceWorkerNavigationHandleCore* - service_worker_navigation_handle_core) { - const ResourceType resource_type = request_info.is_main_frame - ? RESOURCE_TYPE_MAIN_FRAME - : RESOURCE_TYPE_SUB_FRAME; - network::mojom::RequestContextFrameType frame_type = - request_info.is_main_frame - ? network::mojom::RequestContextFrameType::kTopLevel - : network::mojom::RequestContextFrameType::kNested; - storage::BlobStorageContext* blob_storage_context = GetBlobStorageContext( - GetChromeBlobStorageContextForResourceContext(resource_context_)); - return ServiceWorkerRequestHandler::InitializeForNavigation( - resource_request_->url, resource_context_, - service_worker_navigation_handle_core, blob_storage_context, - request_info.begin_params->skip_service_worker, resource_type, - request_info.begin_params->request_context_type, frame_type, - request_info.are_ancestors_secure, request_info.common_params.post_data, - web_contents_getter_, &service_worker_provider_host_); - } - std::unique_ptr<SignedExchangeRequestHandler> CreateSignedExchangeRequestHandler( const NavigationRequestInfo& request_info,
diff --git a/content/browser/loader/prefetch_browsertest.cc b/content/browser/loader/prefetch_browsertest.cc index 00f4bf0..a4a8dca 100644 --- a/content/browser/loader/prefetch_browsertest.cc +++ b/content/browser/loader/prefetch_browsertest.cc
@@ -52,9 +52,7 @@ } }; -class PrefetchBrowserTest - : public ContentBrowserTest, - public testing::WithParamInterface<PrefetchBrowserTestParam> { +class PrefetchBrowserTestBase : public ContentBrowserTest { public: struct ResponseEntry { ResponseEntry() = default; @@ -68,29 +66,8 @@ std::string content_type; std::vector<std::pair<std::string, std::string>> headers; }; - - PrefetchBrowserTest() { - cross_origin_server_ = std::make_unique<net::EmbeddedTestServer>( - net::EmbeddedTestServer::TYPE_HTTPS); - } - ~PrefetchBrowserTest() = default; - - void SetUp() override { - std::vector<base::Feature> enable_features; - std::vector<base::Feature> disabled_features; - if (GetParam().signed_exchange_enabled) { - enable_features.push_back(features::kSignedHTTPExchange); - } else { - disabled_features.push_back(features::kSignedHTTPExchange); - } - if (GetParam().network_service_enabled) { - enable_features.push_back(network::features::kNetworkService); - } else { - disabled_features.push_back(network::features::kNetworkService); - } - feature_list_.InitWithFeatures(enable_features, disabled_features); - ContentBrowserTest::SetUp(); - } + PrefetchBrowserTestBase() = default; + ~PrefetchBrowserTestBase() override = default; void SetUpOnMainThread() override { ContentBrowserTest::SetUpOnMainThread(); @@ -102,10 +79,12 @@ BindOnce( &PrefetchURLLoaderService::RegisterPrefetchLoaderCallbackForTest, base::RetainedRef(partition->GetPrefetchURLLoaderService()), - base::BindRepeating(&PrefetchBrowserTest::OnPrefetchURLLoaderCalled, - base::Unretained(this)))); + base::BindRepeating( + &PrefetchBrowserTestBase::OnPrefetchURLLoaderCalled, + base::Unretained(this)))); } + protected: void RegisterResponse(const std::string& url, const ResponseEntry& entry) { response_map_[url] = entry; } @@ -145,14 +124,14 @@ int* count, base::RunLoop* waiter) { test_server->RegisterRequestMonitor(base::BindRepeating( - &PrefetchBrowserTest::WatchURLAndRunClosure, base::Unretained(this), + &PrefetchBrowserTestBase::WatchURLAndRunClosure, base::Unretained(this), path, count, waiter ? waiter->QuitClosure() : base::RepeatingClosure())); } void RegisterRequestHandler(net::EmbeddedTestServer* test_server) { test_server->RegisterRequestHandler(base::BindRepeating( - &PrefetchBrowserTest::ServeResponses, base::Unretained(this))); + &PrefetchBrowserTestBase::ServeResponses, base::Unretained(this))); } void NavigateToURLAndWaitTitle(const GURL& url, const std::string& title) { @@ -180,11 +159,45 @@ } int prefetch_url_loader_called_ = 0; + + private: + std::map<std::string, ResponseEntry> response_map_; + + DISALLOW_COPY_AND_ASSIGN(PrefetchBrowserTestBase); +}; + +class PrefetchBrowserTest + : public PrefetchBrowserTestBase, + public testing::WithParamInterface<PrefetchBrowserTestParam> { + public: + PrefetchBrowserTest() { + cross_origin_server_ = std::make_unique<net::EmbeddedTestServer>( + net::EmbeddedTestServer::TYPE_HTTPS); + } + ~PrefetchBrowserTest() = default; + + void SetUp() override { + std::vector<base::Feature> enable_features; + std::vector<base::Feature> disabled_features; + if (GetParam().signed_exchange_enabled) { + enable_features.push_back(features::kSignedHTTPExchange); + } else { + disabled_features.push_back(features::kSignedHTTPExchange); + } + if (GetParam().network_service_enabled) { + enable_features.push_back(network::features::kNetworkService); + } else { + disabled_features.push_back(network::features::kNetworkService); + } + feature_list_.InitWithFeatures(enable_features, disabled_features); + PrefetchBrowserTestBase::SetUp(); + } + + protected: std::unique_ptr<net::EmbeddedTestServer> cross_origin_server_; private: base::test::ScopedFeatureList feature_list_; - std::map<std::string, ResponseEntry> response_map_; DISALLOW_COPY_AND_ASSIGN(PrefetchBrowserTest); }; @@ -497,11 +510,11 @@ embedded_test_server()->GetURL(preload_path_in_sxg); const GURL target_sxg_url = embedded_test_server()->GetURL(target_sxg_path); - MockSignedExchangeHandlerFactory factory( - SignedExchangeLoadResult::kSuccess, net::OK, + MockSignedExchangeHandlerFactory factory({MockSignedExchangeHandlerParams( + target_sxg_url, SignedExchangeLoadResult::kSuccess, net::OK, GURL(embedded_test_server()->GetURL(target_path)), "text/html", {base::StringPrintf("Link: <%s>;rel=\"preload\";as=\"script\"", - preload_url_in_sxg.spec().c_str())}); + preload_url_in_sxg.spec().c_str())})}); ScopedSignedExchangeHandlerFactory scoped_factory(&factory); // Loading a page that prefetches the target URL would increment both @@ -569,11 +582,11 @@ ASSERT_TRUE(embedded_test_server()->Start()); EXPECT_EQ(0, prefetch_url_loader_called_); - MockSignedExchangeHandlerFactory factory( - SignedExchangeLoadResult::kSuccess, net::OK, + MockSignedExchangeHandlerFactory factory({MockSignedExchangeHandlerParams( + target_sxg_url, SignedExchangeLoadResult::kSuccess, net::OK, GURL(cross_origin_server_->GetURL(target_path)), "text/html", {base::StringPrintf("Link: <%s>;rel=\"preload\";as=\"script\"", - preload_url_in_sxg.spec().c_str())}); + preload_url_in_sxg.spec().c_str())})}); ScopedSignedExchangeHandlerFactory scoped_factory(&factory); // Loading a page that prefetches the target URL would increment both @@ -610,4 +623,107 @@ PrefetchBrowserTestParam(true, false), PrefetchBrowserTestParam(true, true))); +class SignedExchangeSubresourcePrefetchBrowserTest + : public PrefetchBrowserTestBase, + public testing::WithParamInterface<PrefetchBrowserTestParam> { + public: + SignedExchangeSubresourcePrefetchBrowserTest() = default; + ~SignedExchangeSubresourcePrefetchBrowserTest() = default; + + void SetUp() override { + std::vector<base::Feature> enable_features; + std::vector<base::Feature> disabled_features; + enable_features.push_back(features::kSignedHTTPExchange); + enable_features.push_back(features::kSignedExchangeSubresourcePrefetch); + if (GetParam().network_service_enabled) { + enable_features.push_back(network::features::kNetworkService); + } else { + disabled_features.push_back(network::features::kNetworkService); + } + feature_list_.InitWithFeatures(enable_features, disabled_features); + PrefetchBrowserTestBase::SetUp(); + } + + private: + base::test::ScopedFeatureList feature_list_; + + DISALLOW_COPY_AND_ASSIGN(SignedExchangeSubresourcePrefetchBrowserTest); +}; + +IN_PROC_BROWSER_TEST_P(SignedExchangeSubresourcePrefetchBrowserTest, + PrefetchAlternativeSubresourceSXG) { + int script_sxg_fetch_count = 0; + const char* prefetch_path = "/prefetch.html"; + const char* target_sxg_path = "/target.sxg"; + const char* target_path = "/target.html"; + const char* script_path_in_sxg = "/script.js"; + const char* script_sxg_path = "/script_js.sxg"; + + base::RunLoop script_sxg_prefetch_waiter; + RegisterRequestMonitor(embedded_test_server(), script_sxg_path, + &script_sxg_fetch_count, &script_sxg_prefetch_waiter); + RegisterRequestHandler(embedded_test_server()); + ASSERT_TRUE(embedded_test_server()->Start()); + EXPECT_EQ(0, prefetch_url_loader_called_); + + const GURL target_sxg_url = embedded_test_server()->GetURL(target_sxg_path); + const GURL target_url = embedded_test_server()->GetURL(target_path); + const GURL script_sxg_url = embedded_test_server()->GetURL(script_sxg_path); + const GURL script_url = embedded_test_server()->GetURL(script_path_in_sxg); + + const std::string outer_link_header = base::StringPrintf( + "<%s>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "anchor=\"%s\"", + script_sxg_url.spec().c_str(), script_url.spec().c_str()); + const std::string inner_link_headers = base::StringPrintf( + "Link: <%s>;" + "rel=\"allowed-alt-sxg\";header-integrity=\"%s\"," + "<%s>;rel=\"preload\";as=\"script\"", + script_url.spec().c_str(), + // This is just a dummy data as of now. + // TODO(crbug.com/935267): When we will implement the header integrity + // checking logic, add tests for it. + "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=", + script_url.spec().c_str()); + + RegisterResponse( + prefetch_path, + ResponseEntry(base::StringPrintf( + "<body><link rel='prefetch' href='%s'></body>", target_sxg_path))); + RegisterResponse( + target_sxg_path, + // We mock the SignedExchangeHandler, so just return a HTML content + // as "application/signed-exchange;v=b3". + ResponseEntry("<head><title>Prefetch Target (SXG)</title><script " + "src=\"./preload.js\"></script></head>", + "application/signed-exchange;v=b3", + {{"x-content-type-options", "nosniff"}, + {"link", outer_link_header}})); + RegisterResponse(script_sxg_path, + // We mock the SignedExchangeHandler, so just return a JS + // content as "application/signed-exchange;v=b3". + ResponseEntry("document.title=\"done\";", + "application/signed-exchange;v=b3", + {{"x-content-type-options", "nosniff"}})); + + MockSignedExchangeHandlerFactory factory( + {MockSignedExchangeHandlerParams( + target_sxg_url, SignedExchangeLoadResult::kSuccess, net::OK, + target_url, "text/html", {inner_link_headers}), + MockSignedExchangeHandlerParams( + script_sxg_url, SignedExchangeLoadResult::kSuccess, net::OK, + script_url, "text/javascript", {})}); + ScopedSignedExchangeHandlerFactory scoped_factory(&factory); + + NavigateToURL(shell(), embedded_test_server()->GetURL(prefetch_path)); + script_sxg_prefetch_waiter.Run(); + EXPECT_EQ(1, script_sxg_fetch_count); +} + +INSTANTIATE_TEST_SUITE_P(SignedExchangeSubresourcePrefetchBrowserTest, + SignedExchangeSubresourcePrefetchBrowserTest, + testing::Values(PrefetchBrowserTestParam(true, false), + PrefetchBrowserTestParam(true, true))); } // namespace content
diff --git a/content/browser/renderer_host/media/media_stream_manager.cc b/content/browser/renderer_host/media/media_stream_manager.cc index 9bb3b80..e8a3b75b 100644 --- a/content/browser/renderer_host/media/media_stream_manager.cc +++ b/content/browser/renderer_host/media/media_stream_manager.cc
@@ -195,18 +195,6 @@ MediaStreamManager::SendMessageToNativeLog("video capture: " + message); } -MediaStreamType AdjustAudioStreamTypeBasedOnCommandLineSwitches( - MediaStreamType stream_type) { - if ((stream_type != blink::MEDIA_GUM_DESKTOP_AUDIO_CAPTURE) && - (stream_type != blink::MEDIA_DISPLAY_AUDIO_CAPTURE)) - return stream_type; - const bool audio_support_flag_for_desktop_share = - !base::CommandLine::ForCurrentProcess()->HasSwitch( - switches::kDisableAudioSupportForDesktopShare); - return audio_support_flag_for_desktop_share ? stream_type - : blink::MEDIA_NO_SERVICE; -} - // Returns MediaStreamDevices for getDisplayMedia() calls. // Returns a video device built with DesktopMediaID with fake initializers if // |kUseFakeDeviceForMediaStream| is set. Returns a video device with @@ -1227,8 +1215,7 @@ return; // This can happen if the request has been canceled. } - request->SetAudioType(AdjustAudioStreamTypeBasedOnCommandLineSwitches( - request->controls.audio.stream_type)); + request->SetAudioType(request->controls.audio.stream_type); request->SetVideoType(request->controls.video.stream_type); const bool is_display_capture =
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.cc b/content/browser/service_worker/service_worker_controllee_request_handler.cc index 45426aa..d0de1d7 100644 --- a/content/browser/service_worker/service_worker_controllee_request_handler.cc +++ b/content/browser/service_worker/service_worker_controllee_request_handler.cc
@@ -91,7 +91,6 @@ ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler( base::WeakPtr<ServiceWorkerContextCore> context, base::WeakPtr<ServiceWorkerProviderHost> provider_host, - base::WeakPtr<storage::BlobStorageContext> blob_storage_context, network::mojom::FetchRequestMode request_mode, network::mojom::FetchCredentialsMode credentials_mode, network::mojom::FetchRedirectMode redirect_mode, @@ -101,10 +100,8 @@ blink::mojom::RequestContextType request_context_type, network::mojom::RequestContextFrameType frame_type, scoped_refptr<network::ResourceRequestBody> body) - : ServiceWorkerRequestHandler(std::move(context), - std::move(provider_host), - std::move(blob_storage_context), - resource_type), + : context_(std::move(context)), + provider_host_(std::move(provider_host)), resource_type_(resource_type), request_mode_(request_mode), credentials_mode_(credentials_mode),
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler.h b/content/browser/service_worker/service_worker_controllee_request_handler.h index ab02c38..65b2d92 100644 --- a/content/browser/service_worker/service_worker_controllee_request_handler.h +++ b/content/browser/service_worker/service_worker_controllee_request_handler.h
@@ -15,7 +15,7 @@ #include "base/memory/weak_ptr.h" #include "base/time/time.h" #include "content/browser/service_worker/service_worker_navigation_loader.h" -#include "content/browser/service_worker/service_worker_request_handler.h" +#include "content/common/content_export.h" #include "content/common/service_worker/service_worker_types.h" #include "content/public/common/resource_type.h" #include "services/network/public/mojom/fetch_api.mojom.h" @@ -29,19 +29,21 @@ namespace content { +class ServiceWorkerContextCore; +class ServiceWorkerProviderHost; class ServiceWorkerRegistration; class ServiceWorkerVersion; // Handles main resource requests for service worker clients (documents and // shared workers). -class CONTENT_EXPORT ServiceWorkerControlleeRequestHandler - : public ServiceWorkerRequestHandler, +// TODO(falken): Rename to ServiceWorkerNavigationLoaderInterceptor. +class CONTENT_EXPORT ServiceWorkerControlleeRequestHandler final + : public NavigationLoaderInterceptor, public ServiceWorkerNavigationLoader::Delegate { public: ServiceWorkerControlleeRequestHandler( base::WeakPtr<ServiceWorkerContextCore> context, base::WeakPtr<ServiceWorkerProviderHost> provider_host, - base::WeakPtr<storage::BlobStorageContext> blob_storage_context, network::mojom::FetchRequestMode request_mode, network::mojom::FetchCredentialsMode credentials_mode, network::mojom::FetchRedirectMode redirect_mode, @@ -121,6 +123,8 @@ // initial subresources load, if this handler was for a navigation. void MaybeScheduleUpdate(); + const base::WeakPtr<ServiceWorkerContextCore> context_; + const base::WeakPtr<ServiceWorkerProviderHost> provider_host_; const ResourceType resource_type_; std::unique_ptr<ServiceWorkerNavigationLoaderWrapper> loader_wrapper_; network::mojom::FetchRequestMode request_mode_;
diff --git a/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc b/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc index d25f766..9bb4772 100644 --- a/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc +++ b/content/browser/service_worker/service_worker_controllee_request_handler_unittest.cc
@@ -56,7 +56,6 @@ handler_(new ServiceWorkerControlleeRequestHandler( test->context()->AsWeakPtr(), test->provider_host_, - base::WeakPtr<storage::BlobStorageContext>(), fetch_type, network::mojom::FetchCredentialsMode::kOmit, network::mojom::FetchRedirectMode::kFollow,
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc index a4e5f3c..27d80a29 100644 --- a/content/browser/service_worker/service_worker_provider_host.cc +++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -16,6 +16,7 @@ #include "base/time/time.h" #include "content/browser/bad_message.h" #include "content/browser/interface_provider_filtering.h" +#include "content/browser/loader/navigation_loader_interceptor.h" #include "content/browser/renderer_interface_binders.h" #include "content/browser/service_worker/embedded_worker_status.h" #include "content/browser/service_worker/service_worker_consts.h" @@ -43,7 +44,6 @@ #include "net/base/url_util.h" #include "services/network/public/cpp/features.h" #include "services/network/public/cpp/resource_request_body.h" -#include "storage/browser/blob/blob_storage_context.h" #include "third_party/blink/public/common/messaging/message_port_channel.h" #include "third_party/blink/public/common/service_worker/service_worker_utils.h" #include "third_party/blink/public/mojom/service_worker/service_worker_client.mojom.h" @@ -60,29 +60,20 @@ return g_next_provider_id++; } -// A request handler derivative used to handle navigation requests when -// skip_service_worker flag is set. It tracks the document URL and sets the url -// to the provider host. -class ServiceWorkerURLTrackingRequestHandler - : public ServiceWorkerRequestHandler { +// A navigation interceptor that observes redirects so the resulting +// provider host can have the correct URL. +class NavigationUrlTracker final : public NavigationLoaderInterceptor { public: - ServiceWorkerURLTrackingRequestHandler( - base::WeakPtr<ServiceWorkerContextCore> context, - base::WeakPtr<ServiceWorkerProviderHost> provider_host, - base::WeakPtr<storage::BlobStorageContext> blob_storage_context, - ResourceType resource_type) - : ServiceWorkerRequestHandler(context, - provider_host, - blob_storage_context, - resource_type) {} - ~ServiceWorkerURLTrackingRequestHandler() override {} + explicit NavigationUrlTracker( + base::WeakPtr<ServiceWorkerProviderHost> provider_host) + : provider_host_(std::move(provider_host)) {} + ~NavigationUrlTracker() override {} void MaybeCreateLoader( const network::ResourceRequest& tentative_resource_request, ResourceContext*, LoaderCallback callback, - FallbackCallback fallback_callback) override { - // |provider_host_| may have been deleted when the request is resumed. + FallbackCallback) override { if (!provider_host_) return; const GURL stripped_url = @@ -94,7 +85,8 @@ } private: - DISALLOW_COPY_AND_ASSIGN(ServiceWorkerURLTrackingRequestHandler); + const base::WeakPtr<ServiceWorkerProviderHost> provider_host_; + DISALLOW_COPY_AND_ASSIGN(NavigationUrlTracker); }; void GetInterfaceImpl(const std::string& interface_name, @@ -592,8 +584,8 @@ versions_to_update_.emplace(std::move(version)); } -std::unique_ptr<ServiceWorkerRequestHandler> -ServiceWorkerProviderHost::CreateRequestHandler( +std::unique_ptr<NavigationLoaderInterceptor> +ServiceWorkerProviderHost::CreateLoaderInterceptor( network::mojom::FetchRequestMode request_mode, network::mojom::FetchCredentialsMode credentials_mode, network::mojom::FetchRedirectMode redirect_mode, @@ -602,27 +594,18 @@ ResourceType resource_type, blink::mojom::RequestContextType request_context_type, network::mojom::RequestContextFrameType frame_type, - base::WeakPtr<storage::BlobStorageContext> blob_storage_context, scoped_refptr<network::ResourceRequestBody> body, bool skip_service_worker) { - // We only get here for main resource requests for service worker clients - // (navigations, dedicated workers, and shared workers). - DCHECK(!IsProviderForServiceWorker()); - DCHECK(ServiceWorkerUtils::IsMainResourceType(resource_type)); - if (skip_service_worker) { - // Use a request handler that just observes redirects so the resulting + // Use an interceptor that just observes redirects so the resulting // provider host can have the correct URL. - // TODO(falken): Just pass |skip_service_worker| to - // ServiceWorkerControlleeRequestHandler. - return std::make_unique<ServiceWorkerURLTrackingRequestHandler>( - context_, AsWeakPtr(), blob_storage_context, resource_type); + return std::make_unique<NavigationUrlTracker>(AsWeakPtr()); } return std::make_unique<ServiceWorkerControlleeRequestHandler>( - context_, AsWeakPtr(), blob_storage_context, request_mode, - credentials_mode, redirect_mode, integrity, keepalive, resource_type, - request_context_type, frame_type, body); + context_, AsWeakPtr(), request_mode, credentials_mode, redirect_mode, + integrity, keepalive, resource_type, request_context_type, frame_type, + std::move(body)); } base::WeakPtr<ServiceWorkerObjectHost>
diff --git a/content/browser/service_worker/service_worker_provider_host.h b/content/browser/service_worker/service_worker_provider_host.h index 2596395..039a8f3 100644 --- a/content/browser/service_worker/service_worker_provider_host.h +++ b/content/browser/service_worker/service_worker_provider_host.h
@@ -45,15 +45,11 @@ class ServiceWorkerObjectHostTest; } -namespace storage { -class BlobStorageContext; -} - namespace content { +class NavigationLoaderInterceptor; class ServiceWorkerContextCore; class ServiceWorkerRegistrationObjectHost; -class ServiceWorkerRequestHandler; class ServiceWorkerVersion; class WebContents; @@ -299,9 +295,9 @@ return allow_set_controller_registration_; } - // Returns a handler for a request. May return nullptr if the request doesn't - // require special handling. - std::unique_ptr<ServiceWorkerRequestHandler> CreateRequestHandler( + // Returns an interceptor for a main resource request. May return nullptr if + // the request doesn't require interception. + std::unique_ptr<NavigationLoaderInterceptor> CreateLoaderInterceptor( network::mojom::FetchRequestMode request_mode, network::mojom::FetchCredentialsMode credentials_mode, network::mojom::FetchRedirectMode redirect_mode, @@ -310,7 +306,6 @@ ResourceType resource_type, blink::mojom::RequestContextType request_context_type, network::mojom::RequestContextFrameType frame_type, - base::WeakPtr<storage::BlobStorageContext> blob_storage_context, scoped_refptr<network::ResourceRequestBody> body, bool skip_service_worker);
diff --git a/content/browser/service_worker/service_worker_request_handler.cc b/content/browser/service_worker/service_worker_request_handler.cc index a6273ef..dad4fe5 100644 --- a/content/browser/service_worker/service_worker_request_handler.cc +++ b/content/browser/service_worker/service_worker_request_handler.cc
@@ -9,23 +9,18 @@ #include "base/command_line.h" #include "base/macros.h" +#include "content/browser/frame_host/navigation_request_info.h" #include "content/browser/loader/navigation_loader_interceptor.h" #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" +#include "content/browser/service_worker/service_worker_controllee_request_handler.h" #include "content/browser/service_worker/service_worker_navigation_handle_core.h" #include "content/browser/service_worker/service_worker_provider_host.h" -#include "content/browser/service_worker/service_worker_registration.h" -#include "content/common/service_worker/service_worker_types.h" #include "content/public/browser/resource_context.h" -#include "content/public/common/child_process_host.h" -#include "content/public/common/content_features.h" -#include "content/public/common/content_switches.h" #include "content/public/common/origin_util.h" #include "content/public/common/url_constants.h" -#include "ipc/ipc_message.h" #include "net/base/url_util.h" #include "services/network/public/cpp/resource_request_body.h" -#include "storage/browser/blob/blob_storage_context.h" namespace content { @@ -43,17 +38,11 @@ // static std::unique_ptr<NavigationLoaderInterceptor> -ServiceWorkerRequestHandler::InitializeForNavigation( +ServiceWorkerRequestHandler::CreateForNavigation( const GURL& url, ResourceContext* resource_context, ServiceWorkerNavigationHandleCore* navigation_handle_core, - storage::BlobStorageContext* blob_storage_context, - bool skip_service_worker, - ResourceType resource_type, - blink::mojom::RequestContextType request_context_type, - network::mojom::RequestContextFrameType frame_type, - bool is_parent_frame_secure, - scoped_refptr<network::ResourceRequestBody> body, + const NavigationRequestInfo& request_info, base::RepeatingCallback<WebContents*()> web_contents_getter, base::WeakPtr<ServiceWorkerProviderHost>* out_provider_host) { DCHECK(navigation_handle_core); @@ -75,30 +64,35 @@ auto provider_info = blink::mojom::ServiceWorkerProviderInfoForWindow::New(); // Initialize the SWProviderHost. *out_provider_host = ServiceWorkerProviderHost::PreCreateNavigationHost( - context->AsWeakPtr(), is_parent_frame_secure, + context->AsWeakPtr(), request_info.are_ancestors_secure, std::move(web_contents_getter), &provider_info); - - std::unique_ptr<ServiceWorkerRequestHandler> handler( - (*out_provider_host) - ->CreateRequestHandler( - network::mojom::FetchRequestMode::kNavigate, - network::mojom::FetchCredentialsMode::kInclude, - network::mojom::FetchRedirectMode::kManual, - std::string() /* integrity */, false /* keepalive */, - resource_type, request_context_type, frame_type, - blob_storage_context->AsWeakPtr(), body, skip_service_worker)); - navigation_handle_core->OnCreatedProviderHost(*out_provider_host, std::move(provider_info)); - return base::WrapUnique<NavigationLoaderInterceptor>(handler.release()); + const ResourceType resource_type = request_info.is_main_frame + ? RESOURCE_TYPE_MAIN_FRAME + : RESOURCE_TYPE_SUB_FRAME; + const network::mojom::RequestContextFrameType frame_type = + request_info.is_main_frame + ? network::mojom::RequestContextFrameType::kTopLevel + : network::mojom::RequestContextFrameType::kNested; + return (*out_provider_host) + ->CreateLoaderInterceptor( + network::mojom::FetchRequestMode::kNavigate, + network::mojom::FetchCredentialsMode::kInclude, + network::mojom::FetchRedirectMode::kManual, + std::string() /* integrity */, false /* keepalive */, resource_type, + request_info.begin_params->request_context_type, frame_type, + request_info.common_params.post_data, + request_info.begin_params->skip_service_worker); } // static std::unique_ptr<NavigationLoaderInterceptor> -ServiceWorkerRequestHandler::InitializeForWorker( +ServiceWorkerRequestHandler::CreateForWorker( const network::ResourceRequest& resource_request, - base::WeakPtr<ServiceWorkerProviderHost> host) { + ServiceWorkerProviderHost* host) { + DCHECK(host); DCHECK(resource_request.resource_type == RESOURCE_TYPE_WORKER || resource_request.resource_type == RESOURCE_TYPE_SHARED_WORKER) << resource_request.resource_type; @@ -110,43 +104,17 @@ return nullptr; } - std::unique_ptr<ServiceWorkerRequestHandler> handler( - host->CreateRequestHandler( - resource_request.fetch_request_mode, - resource_request.fetch_credentials_mode, - resource_request.fetch_redirect_mode, - resource_request.fetch_integrity, resource_request.keepalive, - static_cast<ResourceType>(resource_request.resource_type), - resource_request.resource_type == RESOURCE_TYPE_WORKER - ? blink::mojom::RequestContextType::WORKER - : blink::mojom::RequestContextType::SHARED_WORKER, - resource_request.fetch_frame_type, - nullptr /* blob_storage_context: unused in S13n */, - resource_request.request_body, resource_request.skip_service_worker)); - - return base::WrapUnique<NavigationLoaderInterceptor>(handler.release()); + return host->CreateLoaderInterceptor( + resource_request.fetch_request_mode, + resource_request.fetch_credentials_mode, + resource_request.fetch_redirect_mode, resource_request.fetch_integrity, + resource_request.keepalive, + static_cast<ResourceType>(resource_request.resource_type), + resource_request.resource_type == RESOURCE_TYPE_WORKER + ? blink::mojom::RequestContextType::WORKER + : blink::mojom::RequestContextType::SHARED_WORKER, + resource_request.fetch_frame_type, resource_request.request_body, + resource_request.skip_service_worker); } -void ServiceWorkerRequestHandler::MaybeCreateLoader( - const network::ResourceRequest& tentative_request, - ResourceContext* resource_context, - LoaderCallback callback, - FallbackCallback fallback_callback) { - NOTREACHED(); - std::move(callback).Run({}); -} - -ServiceWorkerRequestHandler::~ServiceWorkerRequestHandler() { -} - -ServiceWorkerRequestHandler::ServiceWorkerRequestHandler( - base::WeakPtr<ServiceWorkerContextCore> context, - base::WeakPtr<ServiceWorkerProviderHost> provider_host, - base::WeakPtr<storage::BlobStorageContext> blob_storage_context, - ResourceType resource_type) - : context_(context), - provider_host_(provider_host), - blob_storage_context_(blob_storage_context), - resource_type_(resource_type) {} - } // namespace content
diff --git a/content/browser/service_worker/service_worker_request_handler.h b/content/browser/service_worker/service_worker_request_handler.h index c0663d3..ba977507 100644 --- a/content/browser/service_worker/service_worker_request_handler.h +++ b/content/browser/service_worker/service_worker_request_handler.h
@@ -10,77 +10,39 @@ #include "base/callback_forward.h" #include "base/macros.h" #include "base/memory/weak_ptr.h" -#include "base/supports_user_data.h" #include "content/browser/loader/navigation_loader_interceptor.h" #include "content/common/content_export.h" #include "content/common/service_worker/service_worker_types.h" #include "content/public/common/resource_type.h" -#include "services/network/public/mojom/fetch_api.mojom.h" -#include "services/network/public/mojom/request_context_frame_type.mojom.h" -#include "third_party/blink/public/common/service_worker/service_worker_status_code.h" -#include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom.h" - -namespace network { -class ResourceRequestBody; -} - -namespace storage { -class BlobStorageContext; -} namespace content { class ResourceContext; -class ServiceWorkerContextCore; class ServiceWorkerNavigationHandleCore; class ServiceWorkerProviderHost; class WebContents; +struct NavigationRequestInfo; -// Abstract base class for routing network requests to ServiceWorkers. -// Created one per URLRequest and attached to each request. -class CONTENT_EXPORT ServiceWorkerRequestHandler - : public base::SupportsUserData::Data, - public NavigationLoaderInterceptor { +// Contains factory methods for creating the NavigationLoaderInterceptors for +// routing requests to service workers. +// TODO(falken): This is just a collection of static functions. Move these to +// non-member functions? +class CONTENT_EXPORT ServiceWorkerRequestHandler { public: // Returns a loader interceptor for a navigation. May return nullptr // if the navigation cannot use service workers. - static std::unique_ptr<NavigationLoaderInterceptor> InitializeForNavigation( + static std::unique_ptr<NavigationLoaderInterceptor> CreateForNavigation( const GURL& url, ResourceContext* resource_context, ServiceWorkerNavigationHandleCore* navigation_handle_core, - storage::BlobStorageContext* blob_storage_context, - bool skip_service_worker, - ResourceType resource_type, - blink::mojom::RequestContextType request_context_type, - network::mojom::RequestContextFrameType frame_type, - bool is_parent_frame_secure, - scoped_refptr<network::ResourceRequestBody> body, + const NavigationRequestInfo& request_info, base::RepeatingCallback<WebContents*()> web_contents_getter, base::WeakPtr<ServiceWorkerProviderHost>* out_provider_host); - static std::unique_ptr<NavigationLoaderInterceptor> InitializeForWorker( + // Same as above but for a dedicated worker or shared worker. + static std::unique_ptr<NavigationLoaderInterceptor> CreateForWorker( const network::ResourceRequest& resource_request, - base::WeakPtr<ServiceWorkerProviderHost> host); - - ~ServiceWorkerRequestHandler() override; - - // NavigationLoaderInterceptor overrides. - void MaybeCreateLoader(const network::ResourceRequest& tentative_request, - ResourceContext* resource_context, - LoaderCallback callback, - FallbackCallback fallback_callback) override; - - protected: - ServiceWorkerRequestHandler( - base::WeakPtr<ServiceWorkerContextCore> context, - base::WeakPtr<ServiceWorkerProviderHost> provider_host, - base::WeakPtr<storage::BlobStorageContext> blob_storage_context, - ResourceType resource_type); - - base::WeakPtr<ServiceWorkerContextCore> context_; - base::WeakPtr<ServiceWorkerProviderHost> provider_host_; - base::WeakPtr<storage::BlobStorageContext> blob_storage_context_; - ResourceType resource_type_; + ServiceWorkerProviderHost* host); private: DISALLOW_COPY_AND_ASSIGN(ServiceWorkerRequestHandler);
diff --git a/content/browser/service_worker/service_worker_request_handler_unittest.cc b/content/browser/service_worker/service_worker_request_handler_unittest.cc index c85ec1f..ed64434 100644 --- a/content/browser/service_worker/service_worker_request_handler_unittest.cc +++ b/content/browser/service_worker/service_worker_request_handler_unittest.cc
@@ -4,17 +4,20 @@ #include "content/browser/service_worker/service_worker_request_handler.h" +#include <string> #include <utility> #include "base/bind.h" #include "base/run_loop.h" #include "base/task/post_task.h" +#include "content/browser/frame_host/navigation_request_info.h" #include "content/browser/service_worker/embedded_worker_test_helper.h" #include "content/browser/service_worker/service_worker_context_core.h" #include "content/browser/service_worker/service_worker_context_wrapper.h" #include "content/browser/service_worker/service_worker_navigation_handle_core.h" #include "content/browser/service_worker/service_worker_provider_host.h" #include "content/browser/service_worker/service_worker_test_utils.h" +#include "content/common/navigation_params.mojom.h" #include "content/common/service_worker/service_worker_utils.h" #include "content/public/browser/browser_task_traits.h" #include "content/public/common/resource_type.h" @@ -76,14 +79,24 @@ std::unique_ptr<ServiceWorkerNavigationHandleCore> navigation_handle_core = CreateNavigationHandleCore(helper_->context_wrapper()); base::WeakPtr<ServiceWorkerProviderHost> service_worker_provider_host; + GURL gurl(url); + CommonNavigationParams common_params; + auto begin_params = mojom::BeginNavigationParams::New(); + begin_params->request_context_type = + blink::mojom::RequestContextType::HYPERLINK; + NavigationRequestInfo request_info( + common_params, std::move(begin_params), gurl, url::Origin::Create(gurl), + true /* is_main_frame */, false /* parent_is_main_frame */, + true /* are_ancestors_secure */, -1 /* frame_tree_node_id */, + false /* is_for_guests_only */, false /* report_raw_headers */, + false /* is_prerendering */, false /* upgrade_if_insecure */, + nullptr /* blob_url_loader_factory */, + base::UnguessableToken::Create() /* devtools_navigation_token */, + base::UnguessableToken::Create() /* devtools_frame_token */); std::unique_ptr<NavigationLoaderInterceptor> interceptor = - ServiceWorkerRequestHandler::InitializeForNavigation( + ServiceWorkerRequestHandler::CreateForNavigation( GURL(url), nullptr /* resource_context */, - navigation_handle_core.get(), &blob_storage_context_, - false /* skip_service_worker */, RESOURCE_TYPE_MAIN_FRAME, - blink::mojom::RequestContextType::HYPERLINK, - network::mojom::RequestContextFrameType::kTopLevel, - true /* is_parent_frame_secure */, nullptr /* body */, + navigation_handle_core.get(), request_info, base::RepeatingCallback<WebContents*(void)>(), &service_worker_provider_host); EXPECT_EQ(expected_handler_created, !!interceptor.get());
diff --git a/content/browser/web_package/mock_signed_exchange_handler.cc b/content/browser/web_package/mock_signed_exchange_handler.cc index 4c7c29e..d85f77ee 100644 --- a/content/browser/web_package/mock_signed_exchange_handler.cc +++ b/content/browser/web_package/mock_signed_exchange_handler.cc
@@ -14,52 +14,66 @@ namespace content { -MockSignedExchangeHandler::MockSignedExchangeHandler( +MockSignedExchangeHandlerParams::MockSignedExchangeHandlerParams( + const GURL& outer_url, SignedExchangeLoadResult result, net::Error error, - const GURL& request_url, + const GURL& inner_url, const std::string& mime_type, - const std::vector<std::string>& response_headers, + std::vector<std::string> response_headers) + : outer_url(outer_url), + result(result), + error(error), + inner_url(inner_url), + mime_type(mime_type), + response_headers(std::move(response_headers)) {} + +MockSignedExchangeHandlerParams::MockSignedExchangeHandlerParams( + const MockSignedExchangeHandlerParams& other) = default; +MockSignedExchangeHandlerParams::~MockSignedExchangeHandlerParams() = default; + +MockSignedExchangeHandler::MockSignedExchangeHandler( + const MockSignedExchangeHandlerParams& params, std::unique_ptr<net::SourceStream> body, ExchangeHeadersCallback headers_callback) { network::ResourceResponseHead head; - if (error == net::OK) { + if (params.error == net::OK) { head.headers = base::MakeRefCounted<net::HttpResponseHeaders>("HTTP/1.1 200 OK"); - head.mime_type = mime_type; + head.mime_type = params.mime_type; head.headers->AddHeader( - base::StringPrintf("Content-type: %s", mime_type.c_str())); - for (const auto& header : response_headers) + base::StringPrintf("Content-type: %s", params.mime_type.c_str())); + for (const auto& header : params.response_headers) head.headers->AddHeader(header); + head.is_signed_exchange_inner_response = true; } base::SequencedTaskRunnerHandle::Get()->PostTask( - FROM_HERE, base::BindOnce(std::move(headers_callback), result, error, - request_url, head, std::move(body))); + FROM_HERE, + base::BindOnce(std::move(headers_callback), params.result, params.error, + params.inner_url, head, std::move(body))); } MockSignedExchangeHandler::~MockSignedExchangeHandler() {} MockSignedExchangeHandlerFactory::MockSignedExchangeHandlerFactory( - SignedExchangeLoadResult result, - net::Error error, - const GURL& request_url, - const std::string& mime_type, - std::vector<std::string> response_headers) - : result_(result), - error_(error), - request_url_(request_url), - mime_type_(mime_type), - response_headers_(std::move(response_headers)) {} + std::vector<MockSignedExchangeHandlerParams> params_list) + : params_list_(std::move(params_list)) {} MockSignedExchangeHandlerFactory::~MockSignedExchangeHandlerFactory() = default; std::unique_ptr<SignedExchangeHandler> MockSignedExchangeHandlerFactory::Create( + const GURL& outer_url, std::unique_ptr<net::SourceStream> body, ExchangeHeadersCallback headers_callback, std::unique_ptr<SignedExchangeCertFetcherFactory> cert_fetcher_factory) { - return std::make_unique<MockSignedExchangeHandler>( - result_, error_, request_url_, mime_type_, response_headers_, - std::move(body), std::move(headers_callback)); + for (const auto& params : params_list_) { + if (params.outer_url == outer_url) { + return std::make_unique<MockSignedExchangeHandler>( + params, std::move(body), std::move(headers_callback)); + } + } + NOTREACHED(); + return nullptr; } } // namespace content
diff --git a/content/browser/web_package/mock_signed_exchange_handler.h b/content/browser/web_package/mock_signed_exchange_handler.h index 2b8d6e4..6c63e39 100644 --- a/content/browser/web_package/mock_signed_exchange_handler.h +++ b/content/browser/web_package/mock_signed_exchange_handler.h
@@ -15,13 +15,28 @@ class SignedExchangeCertFetcherFactory; +class MockSignedExchangeHandlerParams { + public: + // |mime_type| and |response_headers| are ignored if |error| is not net::OK. + MockSignedExchangeHandlerParams(const GURL& outer_url, + SignedExchangeLoadResult result, + net::Error error, + const GURL& inner_url, + const std::string& mime_type, + std::vector<std::string> response_headers); + MockSignedExchangeHandlerParams(const MockSignedExchangeHandlerParams& other); + ~MockSignedExchangeHandlerParams(); + const GURL outer_url; + const SignedExchangeLoadResult result; + const net::Error error; + const GURL inner_url; + const std::string mime_type; + const std::vector<std::string> response_headers; +}; + class MockSignedExchangeHandler final : public SignedExchangeHandler { public: - MockSignedExchangeHandler(SignedExchangeLoadResult result, - net::Error error, - const GURL& request_url, - const std::string& mime_type, - const std::vector<std::string>& response_headers, + MockSignedExchangeHandler(const MockSignedExchangeHandlerParams& params, std::unique_ptr<net::SourceStream> body, ExchangeHeadersCallback headers_callback); ~MockSignedExchangeHandler(); @@ -36,30 +51,21 @@ using ExchangeHeadersCallback = SignedExchangeHandler::ExchangeHeadersCallback; - // Creates a factory that creates SignedExchangeHandler which always fires - // a headers callback with the given |result|, |error|, |request_url|, - // |mime_type| and |response_headers|. - // |mime_type| and |response_headers| are ignored if |error| is not - // net::OK. - MockSignedExchangeHandlerFactory(SignedExchangeLoadResult result, - net::Error error, - const GURL& request_url, - const std::string& mime_type, - std::vector<std::string> response_headers); + // Creates a factory that creates SignedExchangeHandler which fires + // a headers callback with the matching MockSignedExchangeHandlerParams. + MockSignedExchangeHandlerFactory( + std::vector<MockSignedExchangeHandlerParams> params_list); ~MockSignedExchangeHandlerFactory() override; std::unique_ptr<SignedExchangeHandler> Create( + const GURL& outer_url, std::unique_ptr<net::SourceStream> body, ExchangeHeadersCallback headers_callback, std::unique_ptr<SignedExchangeCertFetcherFactory> cert_fetcher_factory) override; private: - const SignedExchangeLoadResult result_; - const net::Error error_; - const GURL request_url_; - const std::string mime_type_; - const std::vector<std::string> response_headers_; + const std::vector<MockSignedExchangeHandlerParams> params_list_; DISALLOW_COPY_AND_ASSIGN(MockSignedExchangeHandlerFactory); };
diff --git a/content/browser/web_package/signed_exchange_error.h b/content/browser/web_package/signed_exchange_error.h index 1e793d3..fee51314 100644 --- a/content/browser/web_package/signed_exchange_error.h +++ b/content/browser/web_package/signed_exchange_error.h
@@ -49,7 +49,9 @@ kInvalidIntegrityHeader, // SXG has Variants / Variant-Key headers that don't match the request. kVariantMismatch, - kMaxValue = kVariantMismatch + // Certificate's validity period is too long. + kCertValidityPeriodTooLong, + kMaxValue = kCertValidityPeriodTooLong }; struct SignedExchangeError {
diff --git a/content/browser/web_package/signed_exchange_handler.cc b/content/browser/web_package/signed_exchange_handler.cc index 4aa7b26..af01d132 100644 --- a/content/browser/web_package/signed_exchange_handler.cc +++ b/content/browser/web_package/signed_exchange_handler.cc
@@ -542,17 +542,62 @@ weak_factory_.GetWeakPtr()))); } -bool SignedExchangeHandler::CheckCertExtension( +// https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#cross-origin-cert-req +SignedExchangeLoadResult SignedExchangeHandler::CheckCertRequirements( const net::X509Certificate* verified_cert) { - if (base::FeatureList::IsEnabled( - features::kAllowSignedHTTPExchangeCertsWithoutExtension)) - return true; - // https://wicg.github.io/webpackage/draft-yasskin-http-origin-signed-responses.html#cross-origin-trust // Step 6.2. Validate that main-certificate has the CanSignHttpExchanges // extension (Section 4.2). [spec text] - return net::asn1::HasCanSignHttpExchangesDraftExtension( - net::x509_util::CryptoBufferAsStringPiece(verified_cert->cert_buffer())); + if (!net::asn1::HasCanSignHttpExchangesDraftExtension( + net::x509_util::CryptoBufferAsStringPiece( + verified_cert->cert_buffer())) && + !base::FeatureList::IsEnabled( + features::kAllowSignedHTTPExchangeCertsWithoutExtension)) { + signed_exchange_utils::ReportErrorAndTraceEvent( + devtools_proxy_.get(), + "Certificate must have CanSignHttpExchangesDraft extension. To ignore " + "this error for testing, enable " + "chrome://flags/#allow-sxg-certs-without-extension.", + std::make_pair(0 /* signature_index */, + SignedExchangeError::Field::kSignatureCertUrl)); + return SignedExchangeLoadResult::kCertRequirementsNotMet; + } + + // - Clients MUST reject certificates with this extension that were issued + // after 2019-05-01 and have a Validity Period longer than 90 days. [spec + // text] + // - After 2019-08-01, clients MUST reject all certificates with this + // extension that have a Validity Period longer than 90 days. [spec text] + // TODO(crbug.com/953165): Simplify this logic after 2019-08-01. + base::TimeDelta validity_period = + verified_cert->valid_expiry() - verified_cert->valid_start(); + if (validity_period > base::TimeDelta::FromDays(90)) { + // 2019-05-01 00:00:00 UTC. + const base::Time kRequirementStartDateForIssuance = + base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1556668800); + if (verified_cert->valid_start() >= kRequirementStartDateForIssuance) { + signed_exchange_utils::ReportErrorAndTraceEvent( + devtools_proxy_.get(), + "Signed Exchange's certificate issued after 2019-05-01 must not have " + "a validity period longer than 90 days.", + std::make_pair(0 /* signature_index */, + SignedExchangeError::Field::kSignatureCertUrl)); + return SignedExchangeLoadResult::kCertValidityPeriodTooLong; + } + // 2019-08-01 00:00:00 UTC. + const base::Time kRequirementStartDateForVerification = + base::Time::UnixEpoch() + base::TimeDelta::FromSeconds(1564617600); + if (GetVerificationTime() >= kRequirementStartDateForVerification) { + signed_exchange_utils::ReportErrorAndTraceEvent( + devtools_proxy_.get(), + "After 2019-08-01, Signed Exchange's certificate must not have a " + "validity period longer than 90 days.", + std::make_pair(0 /* signature_index */, + SignedExchangeError::Field::kSignatureCertUrl)); + return SignedExchangeLoadResult::kCertValidityPeriodTooLong; + } + } + return SignedExchangeLoadResult::kSuccess; } bool SignedExchangeHandler::CheckOCSPStatus( @@ -616,16 +661,10 @@ return; } - if (!CheckCertExtension(cv_result.verified_cert.get())) { - signed_exchange_utils::ReportErrorAndTraceEvent( - devtools_proxy_.get(), - "Certificate must have CanSignHttpExchangesDraft extension. To ignore " - "this error for testing, enable " - "chrome://flags/#allow-sxg-certs-without-extension.", - std::make_pair(0 /* signature_index */, - SignedExchangeError::Field::kSignatureCertUrl)); - RunErrorCallback(SignedExchangeLoadResult::kCertRequirementsNotMet, - net::ERR_INVALID_SIGNED_EXCHANGE); + SignedExchangeLoadResult result = + CheckCertRequirements(cv_result.verified_cert.get()); + if (result != SignedExchangeLoadResult::kSuccess) { + RunErrorCallback(result, net::ERR_INVALID_SIGNED_EXCHANGE); return; }
diff --git a/content/browser/web_package/signed_exchange_handler.h b/content/browser/web_package/signed_exchange_handler.h index 93a2fb9..ffef9da 100644 --- a/content/browser/web_package/signed_exchange_handler.h +++ b/content/browser/web_package/signed_exchange_handler.h
@@ -125,7 +125,8 @@ void OnCertReceived( SignedExchangeLoadResult result, std::unique_ptr<SignedExchangeCertificateChain> cert_chain); - bool CheckCertExtension(const net::X509Certificate* verified_cert); + SignedExchangeLoadResult CheckCertRequirements( + const net::X509Certificate* verified_cert); bool CheckOCSPStatus(const net::OCSPVerifyResult& ocsp_result); void OnVerifyCert(int32_t error_code, @@ -179,6 +180,7 @@ virtual ~SignedExchangeHandlerFactory() {} virtual std::unique_ptr<SignedExchangeHandler> Create( + const GURL& outer_url, std::unique_ptr<net::SourceStream> body, SignedExchangeHandler::ExchangeHeadersCallback headers_callback, std::unique_ptr<SignedExchangeCertFetcherFactory>
diff --git a/content/browser/web_package/signed_exchange_handler_unittest.cc b/content/browser/web_package/signed_exchange_handler_unittest.cc index 4c536aa0..5e3efaa 100644 --- a/content/browser/web_package/signed_exchange_handler_unittest.cc +++ b/content/browser/web_package/signed_exchange_handler_unittest.cc
@@ -46,7 +46,9 @@ namespace { -const uint64_t kSignatureHeaderDate = 1520834000; +const uint64_t kSignatureHeaderDate = 1564272000; // 2019-07-28T00:00:00Z +const uint64_t kCertValidityPeriodEnforcementDate = + 1564617600; // 2019-08-01T00:00:00Z const int kOutputBufferSize = 4096; constexpr char kTestSxgInnerURL[] = "https://test.example.org/test/"; @@ -562,6 +564,127 @@ ReadStream(source_, nullptr); } +TEST_P(SignedExchangeHandlerTest, + CertIssuedAfterMay2019AndValidMoreThan90DaysShouldBeRejected) { + mock_cert_fetcher_factory_->ExpectFetch( + GURL("https://cert.example.org/cert.msg"), + GetTestFileContents( + "test.example.org-validity-too-long.public.pem.cbor")); + + // Make the MockCertVerifier treat the certificate + // "prime256v1-sha256-validity-too-long.public.pem" as valid for + // "test.example.org". + scoped_refptr<net::X509Certificate> original_cert = + LoadCertificate("prime256v1-sha256-validity-too-long.public.pem"); + net::CertVerifyResult dummy_result; + dummy_result.verified_cert = original_cert; + dummy_result.cert_status = net::OK; + dummy_result.ocsp_result.response_status = net::OCSPVerifyResult::PROVIDED; + dummy_result.ocsp_result.revocation_status = net::OCSPRevocationStatus::GOOD; + auto mock_cert_verifier = std::make_unique<net::MockCertVerifier>(); + mock_cert_verifier->AddResultForCertAndHost(original_cert, "test.example.org", + dummy_result, net::OK); + SetCertVerifier(std::move(mock_cert_verifier)); + + std::string contents = + GetTestFileContents("test.example.org_cert_validity_too_long.sxg"); + source_->AddReadResult(contents.data(), contents.size(), net::OK, GetParam()); + source_->AddReadResult(nullptr, 0, net::OK, GetParam()); + + CreateSignedExchangeHandler(CreateTestURLRequestContext()); + WaitForHeader(); + + ASSERT_TRUE(read_header()); + EXPECT_EQ(SignedExchangeLoadResult::kCertValidityPeriodTooLong, result()); + EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error()); + EXPECT_EQ(kTestSxgInnerURL, inner_url()); + // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure. + ReadStream(source_, nullptr); +} + +TEST_P(SignedExchangeHandlerTest, + CertIssuedAfterMay2019AndValidFor90DaysShouldBeAccepted) { + SignedExchangeHandler::SetVerificationTimeForTesting( + base::Time::UnixEpoch() + + base::TimeDelta::FromSeconds(kCertValidityPeriodEnforcementDate)); + mock_cert_fetcher_factory_->ExpectFetch( + GURL("https://cert.example.org/cert.msg"), + GetTestFileContents( + "test.example.org-valid-for-90-days.public.pem.cbor")); + + // Make the MockCertVerifier treat the certificate + // "prime256v1-sha256-validity-too-long.public.pem" as valid for + // "test.example.org". + scoped_refptr<net::X509Certificate> original_cert = + LoadCertificate("prime256v1-sha256-valid-for-90-days.public.pem"); + net::CertVerifyResult dummy_result; + dummy_result.verified_cert = original_cert; + dummy_result.cert_status = net::OK; + dummy_result.ocsp_result.response_status = net::OCSPVerifyResult::PROVIDED; + dummy_result.ocsp_result.revocation_status = net::OCSPRevocationStatus::GOOD; + auto mock_cert_verifier = std::make_unique<net::MockCertVerifier>(); + mock_cert_verifier->AddResultForCertAndHost(original_cert, "test.example.org", + dummy_result, net::OK); + SetCertVerifier(std::move(mock_cert_verifier)); + + std::string contents = + GetTestFileContents("test.example.org_cert_valid_for_90_days.sxg"); + source_->AddReadResult(contents.data(), contents.size(), net::OK, GetParam()); + source_->AddReadResult(nullptr, 0, net::OK, GetParam()); + + CreateSignedExchangeHandler(CreateTestURLRequestContext()); + WaitForHeader(); + + ASSERT_TRUE(read_header()); + EXPECT_EQ(SignedExchangeLoadResult::kSuccess, result()); + EXPECT_EQ(net::OK, error()); + std::string payload; + int rv = ReadPayloadStream(&payload); + std::string expected_payload = GetTestFileContents("test.html"); + + EXPECT_EQ(expected_payload, payload); + EXPECT_EQ(static_cast<int>(expected_payload.size()), rv); +} + +TEST_P(SignedExchangeHandlerTest, + CertValidMoreThan90DaysShouldBeRejectedAfterAugust2019) { + SignedExchangeHandler::SetVerificationTimeForTesting( + base::Time::UnixEpoch() + + base::TimeDelta::FromSeconds(kCertValidityPeriodEnforcementDate)); + mock_cert_fetcher_factory_->ExpectFetch( + GURL("https://cert.example.org/cert.msg"), + GetTestFileContents("test.example.org.public.pem.cbor")); + + // Make the MockCertVerifier treat the certificate + // "prime256v1-sha256-validity-too-long.public.pem" as valid for + // "test.example.org". + scoped_refptr<net::X509Certificate> original_cert = + LoadCertificate("prime256v1-sha256.public.pem"); + net::CertVerifyResult dummy_result; + dummy_result.verified_cert = original_cert; + dummy_result.cert_status = net::OK; + dummy_result.ocsp_result.response_status = net::OCSPVerifyResult::PROVIDED; + dummy_result.ocsp_result.revocation_status = net::OCSPRevocationStatus::GOOD; + auto mock_cert_verifier = std::make_unique<net::MockCertVerifier>(); + mock_cert_verifier->AddResultForCertAndHost(original_cert, "test.example.org", + dummy_result, net::OK); + SetCertVerifier(std::move(mock_cert_verifier)); + + std::string contents = GetTestFileContents("test.example.org_test.sxg"); + source_->AddReadResult(contents.data(), contents.size(), net::OK, GetParam()); + source_->AddReadResult(nullptr, 0, net::OK, GetParam()); + + CreateSignedExchangeHandler(CreateTestURLRequestContext()); + WaitForHeader(); + + ASSERT_TRUE(read_header()); + EXPECT_EQ(SignedExchangeLoadResult::kCertValidityPeriodTooLong, result()); + EXPECT_EQ(net::ERR_INVALID_SIGNED_EXCHANGE, error()); + EXPECT_EQ(kTestSxgInnerURL, inner_url()); + // Drain the MockSourceStream, otherwise its destructer causes DCHECK failure. + ReadStream(source_, nullptr); +} + TEST_P(SignedExchangeHandlerTest, CertWithoutExtensionAllowedByFeatureFlag) { base::test::ScopedFeatureList scoped_feature_list_; scoped_feature_list_.InitAndEnableFeature(
diff --git a/content/browser/web_package/signed_exchange_loader.cc b/content/browser/web_package/signed_exchange_loader.cc index 848981b..8cb75ed 100644 --- a/content/browser/web_package/signed_exchange_loader.cc +++ b/content/browser/web_package/signed_exchange_loader.cc
@@ -78,19 +78,35 @@ } // namespace -class SignedExchangeLoader::ResponseTimingInfo { +class SignedExchangeLoader::OuterResponseInfo { public: - explicit ResponseTimingInfo(const network::ResourceResponseHead& response) + explicit OuterResponseInfo(const network::ResourceResponseHead& response) : request_start_(response.request_start), response_start_(response.response_start), request_time_(response.request_time), response_time_(response.response_time), - load_timing_(response.load_timing) {} + load_timing_(response.load_timing) { + if (base::FeatureList::IsEnabled( + features::kSignedExchangeSubresourcePrefetch) && + response.headers) { + response.headers->GetNormalizedHeader("link", &link_header_); + } + } network::ResourceResponseHead CreateRedirectResponseHead() const { network::ResourceResponseHead response_head; response_head.encoded_data_length = 0; - std::string buf(base::StringPrintf("HTTP/1.1 %d %s\r\n", 303, "See Other")); + std::string buf; + if (link_header_.empty()) { + buf = base::StringPrintf("HTTP/1.1 %d %s\r\n", 303, "See Other"); + } else { + DCHECK(base::FeatureList::IsEnabled( + features::kSignedExchangeSubresourcePrefetch)); + buf = base::StringPrintf( + "HTTP/1.1 %d %s\r\n" + "link: %s\r\n", + 303, "See Other", link_header_.c_str()); + } response_head.headers = new net::HttpResponseHeaders( net::HttpUtil::AssembleRawHeaders(buf.c_str(), buf.size())); response_head.encoded_data_length = 0; @@ -108,8 +124,9 @@ const base::Time request_time_; const base::Time response_time_; const net::LoadTimingInfo load_timing_; + std::string link_header_; - DISALLOW_COPY_AND_ASSIGN(ResponseTimingInfo); + DISALLOW_COPY_AND_ASSIGN(OuterResponseInfo); }; SignedExchangeLoader::SignedExchangeLoader( @@ -127,8 +144,7 @@ scoped_refptr<SignedExchangePrefetchMetricRecorder> metric_recorder, const std::string& accept_langs) : outer_request_(outer_request), - outer_response_timing_info_( - std::make_unique<ResponseTimingInfo>(outer_response)), + outer_response_info_(std::make_unique<OuterResponseInfo>(outer_response)), outer_response_(outer_response), forwarding_client_(std::move(forwarding_client)), url_loader_client_binding_(this), @@ -218,6 +234,7 @@ if (g_signed_exchange_factory_for_testing_) { signed_exchange_handler_ = g_signed_exchange_factory_for_testing_->Create( + outer_request_.url, std::make_unique<DataPipeToSourceStream>(std::move(body)), base::BindOnce(&SignedExchangeLoader::OnHTTPExchangeFound, weak_factory_.GetWeakPtr()), @@ -301,22 +318,22 @@ // Make a fallback redirect to |request_url|. DCHECK(!fallback_url_); fallback_url_ = request_url; - DCHECK(outer_response_timing_info_); + DCHECK(outer_response_info_); forwarding_client_->OnReceiveRedirect( CreateRedirectInfo(request_url, outer_request_, outer_response_, true /* is_fallback_redirect */), - std::move(outer_response_timing_info_)->CreateRedirectResponseHead()); + std::move(outer_response_info_)->CreateRedirectResponseHead()); forwarding_client_.reset(); return; } DCHECK_EQ(result, SignedExchangeLoadResult::kSuccess); inner_request_url_ = request_url; - DCHECK(outer_response_timing_info_); + DCHECK(outer_response_info_); forwarding_client_->OnReceiveRedirect( CreateRedirectInfo(request_url, outer_request_, outer_response_, false /* is_fallback_redirect */), - std::move(outer_response_timing_info_)->CreateRedirectResponseHead()); + std::move(outer_response_info_)->CreateRedirectResponseHead()); forwarding_client_.reset(); const base::Optional<net::SSLInfo>& ssl_info = resource_response.ssl_info;
diff --git a/content/browser/web_package/signed_exchange_loader.h b/content/browser/web_package/signed_exchange_loader.h index e27140f..7645fb6c 100644 --- a/content/browser/web_package/signed_exchange_loader.h +++ b/content/browser/web_package/signed_exchange_loader.h
@@ -109,7 +109,7 @@ SignedExchangeHandlerFactory* factory); private: - class ResponseTimingInfo; + class OuterResponseInfo; // Called from |signed_exchange_handler_| when it finds an origin-signed HTTP // exchange. @@ -126,8 +126,8 @@ const network::ResourceRequest outer_request_; - // This timing info is used to create a dummy redirect response. - std::unique_ptr<const ResponseTimingInfo> outer_response_timing_info_; + // This info is used to create a dummy redirect response. + std::unique_ptr<const OuterResponseInfo> outer_response_info_; // The outer response of signed HTTP exchange which was received from network. const network::ResourceResponseHead outer_response_;
diff --git a/content/browser/web_package/signed_exchange_loader_unittest.cc b/content/browser/web_package/signed_exchange_loader_unittest.cc index ac2b03b3..5b8ac546 100644 --- a/content/browser/web_package/signed_exchange_loader_unittest.cc +++ b/content/browser/web_package/signed_exchange_loader_unittest.cc
@@ -106,9 +106,9 @@ response.headers = new net::HttpResponseHeaders( net::HttpUtil::AssembleRawHeaders(headers.c_str(), headers.size())); - MockSignedExchangeHandlerFactory factory( - SignedExchangeLoadResult::kSuccess, net::OK, - GURL("https://publisher.example.com/"), "text/html", {}); + MockSignedExchangeHandlerFactory factory({MockSignedExchangeHandlerParams( + resource_request.url, SignedExchangeLoadResult::kSuccess, net::OK, + GURL("https://publisher.example.com/"), "text/html", {})}); SignedExchangeLoader::SetSignedExchangeHandlerFactoryForTest(&factory); std::unique_ptr<SignedExchangeLoader> signed_exchange_loader =
diff --git a/content/browser/web_package/signed_exchange_reporter.cc b/content/browser/web_package/signed_exchange_reporter.cc index 0804b4f..ca7e0ac 100644 --- a/content/browser/web_package/signed_exchange_reporter.cc +++ b/content/browser/web_package/signed_exchange_reporter.cc
@@ -67,6 +67,7 @@ case SignedExchangeLoadResult::kOCSPError: return kSXGResultCertVerificationError; case SignedExchangeLoadResult::kCertRequirementsNotMet: + case SignedExchangeLoadResult::kCertValidityPeriodTooLong: return kSXGResultCertVerificationError; case SignedExchangeLoadResult::kMerkleIntegrityError: return kSXGResultMiError;
diff --git a/content/browser/web_package/signed_exchange_request_matcher.cc b/content/browser/web_package/signed_exchange_request_matcher.cc index 02713e4..d1b493f4 100644 --- a/content/browser/web_package/signed_exchange_request_matcher.cc +++ b/content/browser/web_package/signed_exchange_request_matcher.cc
@@ -15,13 +15,12 @@ #include "net/base/mime_util.h" #include "net/http/http_request_headers.h" #include "net/http/http_util.h" +#include "third_party/blink/public/common/web_package/signed_exchange_consts.h" namespace content { namespace { -constexpr char kVariantsHeader[] = "variants-04"; -constexpr char kVariantKeyHeader[] = "variant-key-04"; constexpr char kIdentity[] = "identity"; class ContentNegotiationAlgorithm { @@ -376,8 +375,10 @@ bool SignedExchangeRequestMatcher::MatchRequest( const net::HttpRequestHeaders& request_headers, const HeaderMap& response_headers) { - auto variants_found = response_headers.find(kVariantsHeader); - auto variant_key_found = response_headers.find(kVariantKeyHeader); + auto variants_found = + response_headers.find(blink::kSignedExchangeVariantsHeader); + auto variant_key_found = + response_headers.find(blink::kSignedExchangeVariantKeyHeader); // Step 3. If storedExchange's response's header list contains: // - Neither a `Variants` nor a `Variant-Key` header
diff --git a/content/browser/worker_host/worker_script_loader.cc b/content/browser/worker_host/worker_script_loader.cc index 1c2a5c6..6c34482 100644 --- a/content/browser/worker_host/worker_script_loader.cc +++ b/content/browser/worker_host/worker_script_loader.cc
@@ -42,8 +42,8 @@ weak_factory_(this) { if (service_worker_provider_host_) { std::unique_ptr<NavigationLoaderInterceptor> service_worker_interceptor = - ServiceWorkerRequestHandler::InitializeForWorker( - resource_request_, service_worker_provider_host_); + ServiceWorkerRequestHandler::CreateForWorker( + resource_request_, service_worker_provider_host_.get()); if (service_worker_interceptor) interceptors_.push_back(std::move(service_worker_interceptor)); }
diff --git a/content/browser/worker_host/worker_script_loader.h b/content/browser/worker_host/worker_script_loader.h index 6627801f..2117687 100644 --- a/content/browser/worker_host/worker_script_loader.h +++ b/content/browser/worker_host/worker_script_loader.h
@@ -5,7 +5,13 @@ #ifndef CONTENT_BROWSER_WORKER_HOST_WORKER_SCRIPT_LOADER_H_ #define CONTENT_BROWSER_WORKER_HOST_WORKER_SCRIPT_LOADER_H_ +#include <memory> +#include <string> +#include <utility> +#include <vector> + #include "base/macros.h" +#include "base/optional.h" #include "content/common/navigation_subresource_loader_params.h" #include "content/common/single_request_url_loader_factory.h" #include "mojo/public/cpp/bindings/binding.h"
diff --git a/content/public/browser/background_sync_controller.h b/content/public/browser/background_sync_controller.h index 4bf2067..ade65bf0 100644 --- a/content/public/browser/background_sync_controller.h +++ b/content/public/browser/background_sync_controller.h
@@ -24,6 +24,14 @@ // embedder. Must only be used on the UI thread. class CONTENT_EXPORT BackgroundSyncController { public: + class BackgroundSyncEventKeepAlive { + public: + virtual ~BackgroundSyncEventKeepAlive() = default; + + protected: + BackgroundSyncEventKeepAlive() = default; + }; + virtual ~BackgroundSyncController() {} // This function allows the controller to alter the parameters used by @@ -61,6 +69,11 @@ int num_attempts, blink::mojom::BackgroundSyncType sync_type, BackgroundSyncParameters* parameters) const = 0; + + // Keeps the browser alive to allow a one-shot Background Sync registration + // to finish firing one sync event. + virtual std::unique_ptr<BackgroundSyncEventKeepAlive> + CreateBackgroundSyncEventKeepAlive() = 0; }; } // namespace content
diff --git a/content/public/common/content_switches.cc b/content/public/common/content_switches.cc index e1dd1a94..e2c3e6d 100644 --- a/content/public/common/content_switches.cc +++ b/content/public/common/content_switches.cc
@@ -954,10 +954,6 @@ // Enable indication that browser is controlled by automation. const char kEnableAutomation[] = "enable-automation"; -// Enable audio for desktop share. -const char kDisableAudioSupportForDesktopShare[] = - "disable-audio-support-for-desktop-share"; - #if defined(OS_CHROMEOS) // Disables panel fitting (used for mirror mode). const char kDisablePanelFitting[] = "disable-panel-fitting";
diff --git a/content/public/common/content_switches.h b/content/public/common/content_switches.h index 3ad2be1..62294da 100644 --- a/content/public/common/content_switches.h +++ b/content/public/common/content_switches.h
@@ -35,7 +35,6 @@ CONTENT_EXPORT extern const char kDisableAcceleratedJpegDecoding[]; CONTENT_EXPORT extern const char kDisableAcceleratedVideoDecode[]; CONTENT_EXPORT extern const char kDisableAcceleratedVideoEncode[]; -CONTENT_EXPORT extern const char kDisableAudioSupportForDesktopShare[]; extern const char kDisableBackingStoreLimit[]; CONTENT_EXPORT extern const char kDisableBackgroundingOccludedWindowsForTesting[];
diff --git a/content/public/renderer/BUILD.gn b/content/public/renderer/BUILD.gn index d0397eb..bc03d93 100644 --- a/content/public/renderer/BUILD.gn +++ b/content/public/renderer/BUILD.gn
@@ -40,8 +40,6 @@ "context_menu_client.h", "document_state.cc", "document_state.h", - "fixed_received_data.cc", - "fixed_received_data.h", "media_stream_utils.h", "pepper_plugin_instance.h", "plugin_instance_throttler.h",
diff --git a/content/public/renderer/fixed_received_data.cc b/content/public/renderer/fixed_received_data.cc deleted file mode 100644 index 096a732..0000000 --- a/content/public/renderer/fixed_received_data.cc +++ /dev/null
@@ -1,29 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/public/renderer/fixed_received_data.h" - -namespace content { - -FixedReceivedData::FixedReceivedData(const char* data, size_t length) - : data_(data, data + length) {} - -FixedReceivedData::FixedReceivedData(ReceivedData* data) - : FixedReceivedData(data->payload(), data->length()) {} - -FixedReceivedData::FixedReceivedData(const std::vector<char>& data) - : data_(data) {} - -FixedReceivedData::~FixedReceivedData() { -} - -const char* FixedReceivedData::payload() { - return data_.empty() ? nullptr : &data_[0]; -} - -int FixedReceivedData::length() { - return static_cast<int>(data_.size()); -} - -} // namespace content
diff --git a/content/public/renderer/fixed_received_data.h b/content/public/renderer/fixed_received_data.h deleted file mode 100644 index 6ba5ccc..0000000 --- a/content/public/renderer/fixed_received_data.h +++ /dev/null
@@ -1,37 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_PUBLIC_RENDERER_FIXED_RECEIVED_DATA_H_ -#define CONTENT_PUBLIC_RENDERER_FIXED_RECEIVED_DATA_H_ - -#include <stddef.h> - -#include <vector> - -#include "base/macros.h" -#include "content/common/content_export.h" -#include "content/public/renderer/request_peer.h" - -namespace content { - -class CONTENT_EXPORT FixedReceivedData final - : public RequestPeer::ThreadSafeReceivedData { - public: - FixedReceivedData(const char* data, size_t length); - explicit FixedReceivedData(ReceivedData* data); - FixedReceivedData(const std::vector<char>& data); - ~FixedReceivedData() override; - - const char* payload() override; - int length() override; - - private: - std::vector<char> data_; - - DISALLOW_COPY_AND_ASSIGN(FixedReceivedData); -}; - -} // namespace content - -#endif // CONTENT_PUBLIC_RENDERER_FIXED_RECEIVED_DATA_H_
diff --git a/content/public/renderer/request_peer.h b/content/public/renderer/request_peer.h index 5738e41..5988dc78 100644 --- a/content/public/renderer/request_peer.h +++ b/content/public/renderer/request_peer.h
@@ -34,25 +34,6 @@ // for more information. class CONTENT_EXPORT RequestPeer { public: - // This class represents data gotten from the Browser process. Each data - // consists of |payload|, |length|, |encoded_data_length| and - // |encoded_body_length|. The payload is valid only when the data instance is - // valid. - // In order to work with Chrome resource loading IPC, it is desirable to - // reclaim data in FIFO order in a RequestPeer in terms of performance. - // |payload|, |length|, |encoded_data_length| and |encoded_body_length| - // functions are thread-safe, but the data object itself must be destroyed on - // the original thread. - class CONTENT_EXPORT ReceivedData { - public: - virtual ~ReceivedData() {} - virtual const char* payload() = 0; - virtual int length() = 0; - }; - - // A ThreadSafeReceivedData can be deleted on ANY thread. - class CONTENT_EXPORT ThreadSafeReceivedData : public ReceivedData {}; - // Called as upload progress is made. // note: only for requests with upload progress enabled. virtual void OnUploadProgress(uint64_t position, uint64_t size) = 0; @@ -70,17 +51,10 @@ virtual void OnReceivedResponse( const network::ResourceResponseInfo& info) = 0; - // Called when the response body becomes available. This method is only called - // if |pass_response_pipe_to_peer| was set to true when calling StartAsync. - // TODO(mek): Deprecate OnReceivedData in favor of this method, and always use - // this codepath. + // Called when the response body becomes available. virtual void OnStartLoadingResponseBody( mojo::ScopedDataPipeConsumerHandle body) = 0; - // Called when a chunk of response data is available. This method may - // be called multiple times or not at all if an error occurs. - virtual void OnReceivedData(std::unique_ptr<ReceivedData> data) = 0; - // Called when the transfer size is updated. This method may be called // multiple times or not at all. The transfer size is the length of the // response (including both headers and the body) over the network.
diff --git a/content/public/test/signed_exchange_browser_test_helper.cc b/content/public/test/signed_exchange_browser_test_helper.cc index 4cd4619..23b8f68 100644 --- a/content/public/test/signed_exchange_browser_test_helper.cc +++ b/content/public/test/signed_exchange_browser_test_helper.cc
@@ -28,9 +28,9 @@ namespace content { constexpr uint64_t SignedExchangeBrowserTestHelper::kSignatureHeaderDate = - 1520834000; // 2018-03-12T05:53:20Z + 1564272000; // 2019-07-28T00:00:00Z constexpr uint64_t SignedExchangeBrowserTestHelper::kSignatureHeaderExpires = - 1520837600; // 2018-03-12T06:53:20Z + 1564876800; // 2019-08-04T00:00:00Z SignedExchangeBrowserTestHelper::SignedExchangeBrowserTestHelper() = default;
diff --git a/content/renderer/BUILD.gn b/content/renderer/BUILD.gn index f2cbdbc7..3b3080e9 100644 --- a/content/renderer/BUILD.gn +++ b/content/renderer/BUILD.gn
@@ -174,8 +174,6 @@ "loader/resource_dispatcher.h", "loader/resource_load_stats.cc", "loader/resource_load_stats.h", - "loader/shared_memory_data_consumer_handle.cc", - "loader/shared_memory_data_consumer_handle.h", "loader/sync_load_context.cc", "loader/sync_load_context.h", "loader/sync_load_response.cc",
diff --git a/content/renderer/accessibility/ax_image_annotator.cc b/content/renderer/accessibility/ax_image_annotator.cc index 611c1ce..06a8fb95 100644 --- a/content/renderer/accessibility/ax_image_annotator.cc +++ b/content/renderer/accessibility/ax_image_annotator.cc
@@ -28,8 +28,10 @@ AXImageAnnotator::AXImageAnnotator( RenderAccessibilityImpl* const render_accessibility, + const std::string& preferred_language, image_annotation::mojom::AnnotatorPtr annotator_ptr) : render_accessibility_(render_accessibility), + preferred_language_(preferred_language), annotator_ptr_(std::move(annotator_ptr)), weak_factory_(this) { DCHECK(render_accessibility_); @@ -82,11 +84,11 @@ ImageInfo& image_info = image_annotations_.at(image.AxID()); // Fetch image annotation. annotator_ptr_->AnnotateImage( - image_id, image_info.GetImageProcessor(), + image_id, preferred_language_, image_info.GetImageProcessor(), base::BindOnce(&AXImageAnnotator::OnImageAnnotated, weak_factory_.GetWeakPtr(), image)); - VLOG(1) << "Requesting annotation for " << image_id << " from page " - << GetDocumentUrl(); + VLOG(1) << "Requesting annotation for " << image_id << " with language '" + << preferred_language_ << "' from page " << GetDocumentUrl(); } void AXImageAnnotator::OnImageUpdated(blink::WebAXObject& image) { @@ -99,7 +101,7 @@ ImageInfo& image_info = image_annotations_.at(image.AxID()); // Update annotation. annotator_ptr_->AnnotateImage( - image_id, image_info.GetImageProcessor(), + image_id, preferred_language_, image_info.GetImageProcessor(), base::BindOnce(&AXImageAnnotator::OnImageAnnotated, weak_factory_.GetWeakPtr(), image)); }
diff --git a/content/renderer/accessibility/ax_image_annotator.h b/content/renderer/accessibility/ax_image_annotator.h index 0b7c01a..7cd5fec 100644 --- a/content/renderer/accessibility/ax_image_annotator.h +++ b/content/renderer/accessibility/ax_image_annotator.h
@@ -37,6 +37,7 @@ class CONTENT_EXPORT AXImageAnnotator : public base::CheckedObserver { public: AXImageAnnotator(RenderAccessibilityImpl* const render_accessibility, + const std::string& preferred_language, image_annotation::mojom::AnnotatorPtr annotator_ptr); ~AXImageAnnotator() override; @@ -52,6 +53,10 @@ void OnImageUpdated(blink::WebAXObject& image); void OnImageRemoved(blink::WebAXObject& image); + void set_preferred_language(const std::string& language) { + preferred_language_ = language; + } + private: // Keeps track of the image data and the automatic annotation for each image. class ImageInfo final { @@ -113,6 +118,9 @@ // Weak, owns us. RenderAccessibilityImpl* const render_accessibility_; + // The language in which to request image descriptions. + std::string preferred_language_; + // A pointer to the automatic image annotation service. image_annotation::mojom::AnnotatorPtr annotator_ptr_;
diff --git a/content/renderer/accessibility/render_accessibility_impl.cc b/content/renderer/accessibility/render_accessibility_impl.cc index 30f04d2..3b77665 100644 --- a/content/renderer/accessibility/render_accessibility_impl.cc +++ b/content/renderer/accessibility/render_accessibility_impl.cc
@@ -17,6 +17,7 @@ #include "base/memory/ptr_util.h" #include "base/metrics/histogram_macros.h" #include "base/single_thread_task_runner.h" +#include "base/strings/string_split.h" #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_task_runner_handle.h" #include "build/build_config.h" @@ -72,6 +73,13 @@ if (ax_mode_crash_key) base::debug::SetCrashKeyString(ax_mode_crash_key, mode.ToString()); } + +// Returns the first language in the accept languages list. +std::string GetPreferredLanguage(const std::string& accept_languages) { + const std::vector<std::string> tokens = base::SplitString( + accept_languages, ",", base::TRIM_WHITESPACE, base::SPLIT_WANT_NONEMPTY); + return tokens.empty() ? "" : tokens[0]; +} } namespace content { @@ -124,6 +132,7 @@ ui::AXMode mode) : RenderFrameObserver(render_frame), render_frame_(render_frame), + pref_watcher_binding_(this), tree_source_(render_frame, mode), serializer_(&tree_source_), plugin_tree_source_(nullptr), @@ -164,6 +173,13 @@ image_annotation_debugging_ = base::CommandLine::ForCurrentProcess()->HasSwitch( ::switches::kEnableExperimentalAccessibilityLabelsDebugging); + + blink::mojom::RendererPreferenceWatcherPtr pref_watcher_ptr; + pref_watcher_binding_.Bind(mojo::MakeRequest(&pref_watcher_ptr)); + + if (render_frame->render_view()) + render_frame_->render_view()->RegisterRendererPreferenceWatcher( + std::move(pref_watcher_ptr)); } RenderAccessibilityImpl::~RenderAccessibilityImpl() = default; @@ -251,6 +267,13 @@ return handled; } +void RenderAccessibilityImpl::NotifyUpdate( + blink::mojom::RendererPreferencesPtr new_prefs) { + if (ax_image_annotator_) + ax_image_annotator_->set_preferred_language( + GetPreferredLanguage(new_prefs->accept_languages)); +} + void RenderAccessibilityImpl::HandleWebAccessibilityEvent( const WebAXObject& obj, ax::mojom::Event event) { @@ -930,8 +953,14 @@ image_annotation::mojom::AnnotatorPtr annotator_ptr; render_frame()->GetRemoteInterfaces()->GetInterface( mojo::MakeRequest(&annotator_ptr)); - ax_image_annotator_ = - std::make_unique<AXImageAnnotator>(this, std::move(annotator_ptr)); + + const std::string preferred_language = + render_frame()->render_view() + ? GetPreferredLanguage( + render_frame()->render_view()->GetAcceptLanguages()) + : std::string(); + ax_image_annotator_ = std::make_unique<AXImageAnnotator>( + this, preferred_language, std::move(annotator_ptr)); tree_source_.AddImageAnnotator(ax_image_annotator_.get()); }
diff --git a/content/renderer/accessibility/render_accessibility_impl.h b/content/renderer/accessibility/render_accessibility_impl.h index aa86c84..3a84790a 100644 --- a/content/renderer/accessibility/render_accessibility_impl.h +++ b/content/renderer/accessibility/render_accessibility_impl.h
@@ -15,6 +15,8 @@ #include "content/public/renderer/render_accessibility.h" #include "content/public/renderer/render_frame_observer.h" #include "content/renderer/accessibility/blink_ax_tree_source.h" +#include "mojo/public/cpp/bindings/binding.h" +#include "third_party/blink/public/mojom/renderer_preference_watcher.mojom.h" #include "third_party/blink/public/web/web_ax_context.h" #include "third_party/blink/public/web/web_ax_object.h" #include "ui/accessibility/ax_relative_bounds.h" @@ -60,7 +62,8 @@ // (e.g., change focus, or click on a button). class CONTENT_EXPORT RenderAccessibilityImpl : public RenderAccessibility, - RenderFrameObserver { + public RenderFrameObserver, + public blink::mojom::RendererPreferenceWatcher { public: // Request a one-time snapshot of the accessibility tree without // enabling accessibility if it wasn't already enabled. @@ -85,6 +88,9 @@ void AccessibilityModeChanged() override; bool OnMessageReceived(const IPC::Message& message) override; + // blink::mojom::RendererPreferenceObserver implementation. + void NotifyUpdate(blink::mojom::RendererPreferencesPtr new_prefs) override; + // Called when an accessibility notification occurs in Blink. void HandleWebAccessibilityEvent(const blink::WebAXObject& obj, ax::mojom::Event event); @@ -171,6 +177,9 @@ // Manages the automatic image annotations, if enabled. std::unique_ptr<AXImageAnnotator> ax_image_annotator_; + // The Mojo binding for this object as a RenderPreferenceWatcher. + mojo::Binding<blink::mojom::RendererPreferenceWatcher> pref_watcher_binding_; + // Events from Blink are collected until they are ready to be // sent to the browser. std::vector<ui::AXEvent> pending_events_;
diff --git a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc index c1758309..4ec4f38 100644 --- a/content/renderer/accessibility/render_accessibility_impl_browsertest.cc +++ b/content/renderer/accessibility/render_accessibility_impl_browsertest.cc
@@ -64,7 +64,9 @@ public: TestAXImageAnnotator(TestRenderAccessibilityImpl* const render_accessibility, image_annotation::mojom::AnnotatorPtr annotator_ptr) - : AXImageAnnotator(render_accessibility, std::move(annotator_ptr)) {} + : AXImageAnnotator(render_accessibility, + std::string() /* preferred_language */, + std::move(annotator_ptr)) {} ~TestAXImageAnnotator() override = default; private: @@ -97,6 +99,7 @@ } void AnnotateImage(const std::string& image_id, + const std::string& /* description_language_tag */, image_annotation::mojom::ImageProcessorPtr image_processor, AnnotateImageCallback callback) override { image_ids_.push_back(image_id);
diff --git a/content/renderer/loader/resource_dispatcher.cc b/content/renderer/loader/resource_dispatcher.cc index 11deaad3..9bc5663 100644 --- a/content/renderer/loader/resource_dispatcher.cc +++ b/content/renderer/loader/resource_dispatcher.cc
@@ -27,7 +27,6 @@ #include "content/public/common/navigation_policy.h" #include "content/public/common/resource_type.h" #include "content/public/common/url_utils.h" -#include "content/public/renderer/fixed_received_data.h" #include "content/public/renderer/request_peer.h" #include "content/public/renderer/resource_dispatcher_delegate.h" #include "content/renderer/loader/request_extra_data.h"
diff --git a/content/renderer/loader/resource_dispatcher_unittest.cc b/content/renderer/loader/resource_dispatcher_unittest.cc index 4a6ccc7..b3254be 100644 --- a/content/renderer/loader/resource_dispatcher_unittest.cc +++ b/content/renderer/loader/resource_dispatcher_unittest.cc
@@ -21,7 +21,6 @@ #include "base/test/scoped_task_environment.h" #include "content/common/appcache_interfaces.h" #include "content/public/common/content_features.h" -#include "content/public/renderer/fixed_received_data.h" #include "content/public/renderer/request_peer.h" #include "content/public/renderer/resource_dispatcher_delegate.h" #include "content/renderer/loader/navigation_response_override_parameters.h" @@ -216,10 +215,6 @@ body_handle_ = std::move(body); } - void OnReceivedData(std::unique_ptr<ReceivedData> data) override { - NOTREACHED(); - } - void OnTransferSizeUpdated(int transfer_size_diff) override {} void OnCompletedRequest(
diff --git a/content/renderer/loader/shared_memory_data_consumer_handle.cc b/content/renderer/loader/shared_memory_data_consumer_handle.cc deleted file mode 100644 index bef2b8cc..0000000 --- a/content/renderer/loader/shared_memory_data_consumer_handle.cc +++ /dev/null
@@ -1,463 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/loader/shared_memory_data_consumer_handle.h" - -#include <algorithm> -#include <utility> - -#include "base/bind.h" -#include "base/containers/circular_deque.h" -#include "base/macros.h" -#include "base/memory/ptr_util.h" -#include "base/single_thread_task_runner.h" -#include "base/synchronization/lock.h" -#include "base/threading/thread_task_runner_handle.h" - -namespace content { - -namespace { - -class DelegateThreadSafeReceivedData final - : public RequestPeer::ThreadSafeReceivedData { - public: - explicit DelegateThreadSafeReceivedData( - std::unique_ptr<RequestPeer::ReceivedData> data) - : data_(std::move(data)), - task_runner_(base::ThreadTaskRunnerHandle::Get()) {} - ~DelegateThreadSafeReceivedData() override { - if (!task_runner_->BelongsToCurrentThread()) { - // Delete the data on the original thread. - task_runner_->DeleteSoon(FROM_HERE, data_.release()); - } - } - - const char* payload() override { return data_->payload(); } - int length() override { return data_->length(); } - - private: - std::unique_ptr<RequestPeer::ReceivedData> data_; - scoped_refptr<base::SingleThreadTaskRunner> task_runner_; - - DISALLOW_COPY_AND_ASSIGN(DelegateThreadSafeReceivedData); -}; - -} // namespace - -using Result = blink::WebDataConsumerHandle::Result; - -// All methods (except for ctor/dtor) must be called with |lock_| aquired -// unless otherwise stated. -class SharedMemoryDataConsumerHandle::Context final - : public base::RefCountedThreadSafe<Context> { - public: - explicit Context(base::OnceClosure on_reader_detached) - : result_(kOk), - first_offset_(0), - client_(nullptr), - writer_task_runner_(base::ThreadTaskRunnerHandle::Get()), - on_reader_detached_(std::move(on_reader_detached)), - is_on_reader_detached_valid_(!on_reader_detached_.is_null()), - is_handle_active_(true), - is_two_phase_read_in_progress_(false) {} - - bool IsEmpty() const { - lock_.AssertAcquired(); - return queue_.empty(); - } - void ClearIfNecessary() { - lock_.AssertAcquired(); - if (!is_handle_locked() && !is_handle_active()) { - // No one is interested in the contents. - if (is_on_reader_detached_valid_) { - is_on_reader_detached_valid_ = false; - // We post a task even in the writer thread in order to avoid a - // reentrance problem as calling |on_reader_detached_| may manipulate - // the context synchronously. - writer_task_runner_->PostTask(FROM_HERE, - std::move(on_reader_detached_)); - } - Clear(); - } - } - void ClearQueue() { - lock_.AssertAcquired(); - queue_.clear(); - first_offset_ = 0; - } - RequestPeer::ThreadSafeReceivedData* Top() { - lock_.AssertAcquired(); - return queue_.front().get(); - } - void Push(std::unique_ptr<RequestPeer::ThreadSafeReceivedData> data) { - lock_.AssertAcquired(); - queue_.push_back(std::move(data)); - } - size_t first_offset() const { - lock_.AssertAcquired(); - return first_offset_; - } - Result result() const { - lock_.AssertAcquired(); - return result_; - } - void set_result(Result r) { - lock_.AssertAcquired(); - result_ = r; - } - void AcquireReaderLock( - Client* client, - scoped_refptr<base::SingleThreadTaskRunner> task_runner) { - lock_.AssertAcquired(); - // TODO(yhirano): Turn these CHECKs to DCHECKs once the crash is fixed. - CHECK(!notification_task_runner_); - CHECK(!client_); - notification_task_runner_ = std::move(task_runner); - client_ = client; - if (client && !(IsEmpty() && result() == kOk)) { - // We cannot notify synchronously because the user doesn't have the reader - // yet. - notification_task_runner_->PostTask( - FROM_HERE, base::BindOnce(&Context::NotifyInternal, this, false)); - } - } - void ReleaseReaderLock() { - lock_.AssertAcquired(); - // TODO(yhirano): Turn these CHECKs to DCHECKs once the crash is fixed. - CHECK(notification_task_runner_); - CHECK(notification_task_runner_->BelongsToCurrentThread()); - notification_task_runner_ = nullptr; - client_ = nullptr; - } - void PostNotify() { - lock_.AssertAcquired(); - auto runner = notification_task_runner_; - if (!runner) - return; - // We don't re-post the task when the runner changes while waiting for - // this task because in this case a new reader is obtained and - // notification is already done at the reader creation time if necessary. - runner->PostTask(FROM_HERE, - base::BindOnce(&Context::NotifyInternal, this, false)); - } - // Must be called with |lock_| not aquired. - void Notify() { NotifyInternal(true); } - // This function doesn't work in the destructor if |on_reader_detached_| is - // not null. - void ResetOnReaderDetached() { - lock_.AssertAcquired(); - if (on_reader_detached_.is_null()) { - DCHECK(!is_on_reader_detached_valid_); - return; - } - is_on_reader_detached_valid_ = false; - if (writer_task_runner_->BelongsToCurrentThread()) { - // We can reset the closure immediately. - on_reader_detached_.Reset(); - } else { - // We need to reset |on_reader_detached_| on the right thread because it - // might lead to the object destruction. - writer_task_runner_->PostTask( - FROM_HERE, - base::BindOnce(&Context::ResetOnReaderDetachedWithLock, this)); - } - } - bool is_handle_locked() const { - lock_.AssertAcquired(); - return static_cast<bool>(notification_task_runner_); - } - bool IsReaderBoundToCurrentThread() const { - lock_.AssertAcquired(); - return notification_task_runner_ && - notification_task_runner_->BelongsToCurrentThread(); - } - bool is_handle_active() const { - lock_.AssertAcquired(); - return is_handle_active_; - } - void set_is_handle_active(bool b) { - lock_.AssertAcquired(); - is_handle_active_ = b; - } - void Consume(size_t s) { - lock_.AssertAcquired(); - first_offset_ += s; - auto* top = Top(); - if (static_cast<size_t>(top->length()) <= first_offset_) { - queue_.pop_front(); - first_offset_ = 0; - } - } - bool is_two_phase_read_in_progress() const { - lock_.AssertAcquired(); - return is_two_phase_read_in_progress_; - } - void set_is_two_phase_read_in_progress(bool b) { - lock_.AssertAcquired(); - is_two_phase_read_in_progress_ = b; - } - // Can be called with |lock_| not aquired. - base::Lock& lock() { return lock_; } - - private: - // Must be called with |lock_| not aquired. - void NotifyInternal(bool repost) { - scoped_refptr<base::SingleThreadTaskRunner> runner; - { - base::AutoLock lock(lock_); - runner = notification_task_runner_; - } - if (!runner) - return; - - if (runner->BelongsToCurrentThread()) { - // It is safe to access member variables without lock because |client_| - // is bound to the current thread. - if (client_) - client_->DidGetReadable(); - return; - } - if (repost) { - // We don't re-post the task when the runner changes while waiting for - // this task because in this case a new reader is obtained and - // notification is already done at the reader creation time if necessary. - runner->PostTask(FROM_HERE, - base::BindOnce(&Context::NotifyInternal, this, false)); - } - } - void Clear() { - lock_.AssertAcquired(); - ClearQueue(); - // Turn this CHECK to DCHECK. - CHECK(!client_); - ResetOnReaderDetached(); - } - // Must be called with |lock_| not aquired. - void ResetOnReaderDetachedWithLock() { - base::AutoLock lock(lock_); - ResetOnReaderDetached(); - } - - friend class base::RefCountedThreadSafe<Context>; - ~Context() = default; - - base::Lock lock_; - // |result_| stores the ultimate state of this handle if it has. Otherwise, - // |Ok| is set. - Result result_; - base::circular_deque<std::unique_ptr<RequestPeer::ThreadSafeReceivedData>> - queue_; - size_t first_offset_; - Client* client_; - scoped_refptr<base::SingleThreadTaskRunner> notification_task_runner_; - scoped_refptr<base::SingleThreadTaskRunner> writer_task_runner_; - base::OnceClosure on_reader_detached_; - // We need this boolean variable to remember if |on_reader_detached_| is - // callable because we need to reset |on_reader_detached_| only on the writer - // thread and hence |on_reader_detached_.is_null()| is untrustworthy on - // other threads. - bool is_on_reader_detached_valid_; - bool is_handle_active_; - bool is_two_phase_read_in_progress_; - - DISALLOW_COPY_AND_ASSIGN(Context); -}; - -SharedMemoryDataConsumerHandle::Writer::Writer( - const scoped_refptr<Context>& context) - : context_(context) {} - -SharedMemoryDataConsumerHandle::Writer::~Writer() { - Close(); - base::AutoLock lock(context_->lock()); - context_->ResetOnReaderDetached(); -} - -void SharedMemoryDataConsumerHandle::Writer::AddData( - std::unique_ptr<RequestPeer::ReceivedData> data) { - if (!data->length()) { - // We omit empty data. - return; - } - - bool needs_notification = false; - { - base::AutoLock lock(context_->lock()); - if (!context_->is_handle_active() && !context_->is_handle_locked()) { - // No one is interested in the data. - return; - } - - needs_notification = context_->IsEmpty(); - // Transfers |data| in order to apply backpressure. - context_->Push( - std::make_unique<DelegateThreadSafeReceivedData>(std::move(data))); - } - - if (needs_notification) { - // We CAN issue the notification synchronously if the associated reader - // lives in this thread, because this function cannot be called in the - // client's callback. - context_->Notify(); - } -} - -void SharedMemoryDataConsumerHandle::Writer::Close() { - base::AutoLock lock(context_->lock()); - if (context_->result() == kOk) { - context_->set_result(kDone); - context_->ResetOnReaderDetached(); - if (context_->IsEmpty()) { - // We cannot issue the notification synchronously because this function - // can be called in the client's callback. - context_->PostNotify(); - } - } -} - -void SharedMemoryDataConsumerHandle::Writer::Fail() { - base::AutoLock lock(context_->lock()); - if (context_->result() == kOk) { - // TODO(yhirano): Use an appropriate error code other than - // UnexpectedError. - context_->set_result(kUnexpectedError); - - if (context_->is_two_phase_read_in_progress()) { - // If we are in two-phase read session, we cannot discard the data. We - // will clear the queue at the end of the session. - } else { - context_->ClearQueue(); - } - - context_->ResetOnReaderDetached(); - // We cannot issue the notification synchronously because this function can - // be called in the client's callback. - context_->PostNotify(); - } -} - -SharedMemoryDataConsumerHandle::ReaderImpl::ReaderImpl( - scoped_refptr<Context> context, - Client* client, - scoped_refptr<base::SingleThreadTaskRunner> task_runner) - : context_(context) { - base::AutoLock lock(context_->lock()); - DCHECK(!context_->is_handle_locked()); - context_->AcquireReaderLock(client, std::move(task_runner)); -} - -SharedMemoryDataConsumerHandle::ReaderImpl::~ReaderImpl() { - base::AutoLock lock(context_->lock()); - context_->ReleaseReaderLock(); - context_->ClearIfNecessary(); -} - -Result SharedMemoryDataConsumerHandle::ReaderImpl::Read( - void* data, - size_t size, - Flags flags, - size_t* read_size_to_return) { - base::AutoLock lock(context_->lock()); - - size_t total_read_size = 0; - *read_size_to_return = 0; - - if (context_->result() == kOk && context_->is_two_phase_read_in_progress()) - context_->set_result(kUnexpectedError); - - if (context_->result() != kOk && context_->result() != kDone) - return context_->result(); - - while (!context_->IsEmpty() && total_read_size < size) { - auto* top = context_->Top(); - size_t readable = top->length() - context_->first_offset(); - size_t writable = size - total_read_size; - size_t read_size = std::min(readable, writable); - const char* begin = top->payload() + context_->first_offset(); - std::copy(begin, begin + read_size, - static_cast<char*>(data) + total_read_size); - total_read_size += read_size; - context_->Consume(read_size); - } - *read_size_to_return = total_read_size; - if (total_read_size || !context_->IsEmpty()) - return kOk; - if (context_->result() == kDone) - return kDone; - return kShouldWait; -} - -Result SharedMemoryDataConsumerHandle::ReaderImpl::BeginRead( - const void** buffer, - Flags flags, - size_t* available) { - *buffer = nullptr; - *available = 0; - - base::AutoLock lock(context_->lock()); - - if (context_->result() == kOk && context_->is_two_phase_read_in_progress()) - context_->set_result(kUnexpectedError); - - if (context_->result() != kOk && context_->result() != kDone) - return context_->result(); - - if (context_->IsEmpty()) - return context_->result() == kDone ? kDone : kShouldWait; - - context_->set_is_two_phase_read_in_progress(true); - auto* top = context_->Top(); - *buffer = top->payload() + context_->first_offset(); - *available = top->length() - context_->first_offset(); - - return kOk; -} - -Result SharedMemoryDataConsumerHandle::ReaderImpl::EndRead(size_t read_size) { - base::AutoLock lock(context_->lock()); - - if (!context_->is_two_phase_read_in_progress()) - return kUnexpectedError; - - context_->set_is_two_phase_read_in_progress(false); - if (context_->result() != kOk && context_->result() != kDone) { - // We have an error, so we can discard the stored data. - context_->ClearQueue(); - } else { - context_->Consume(read_size); - } - - return kOk; -} - -SharedMemoryDataConsumerHandle::SharedMemoryDataConsumerHandle( - std::unique_ptr<Writer>* writer) - : SharedMemoryDataConsumerHandle(base::OnceClosure(), writer) {} - -SharedMemoryDataConsumerHandle::SharedMemoryDataConsumerHandle( - base::OnceClosure on_reader_detached, - std::unique_ptr<Writer>* writer) - : context_(new Context(std::move(on_reader_detached))) { - writer->reset(new Writer(context_)); -} - -SharedMemoryDataConsumerHandle::~SharedMemoryDataConsumerHandle() { - base::AutoLock lock(context_->lock()); - context_->set_is_handle_active(false); - context_->ClearIfNecessary(); -} - -std::unique_ptr<blink::WebDataConsumerHandle::Reader> -SharedMemoryDataConsumerHandle::ObtainReader( - Client* client, - scoped_refptr<base::SingleThreadTaskRunner> task_runner) { - return base::WrapUnique( - new ReaderImpl(context_, client, std::move(task_runner))); -} - -const char* SharedMemoryDataConsumerHandle::DebugName() const { - return "SharedMemoryDataConsumerHandle"; -} - -} // namespace content
diff --git a/content/renderer/loader/shared_memory_data_consumer_handle.h b/content/renderer/loader/shared_memory_data_consumer_handle.h deleted file mode 100644 index 6e2c276..0000000 --- a/content/renderer/loader/shared_memory_data_consumer_handle.h +++ /dev/null
@@ -1,92 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef CONTENT_RENDERER_LOADER_SHARED_MEMORY_DATA_CONSUMER_HANDLE_H_ -#define CONTENT_RENDERER_LOADER_SHARED_MEMORY_DATA_CONSUMER_HANDLE_H_ - -#include <stddef.h> - -#include <memory> - -#include "base/callback.h" -#include "base/macros.h" -#include "base/memory/ref_counted.h" -#include "content/common/content_export.h" -#include "content/public/renderer/request_peer.h" -#include "third_party/blink/public/platform/web_data_consumer_handle.h" - -namespace content { - -// This class is a WebDataConsumerHandle that accepts RequestPeer::ReceivedData. -class CONTENT_EXPORT SharedMemoryDataConsumerHandle final - : public blink::WebDataConsumerHandle { - private: - class Context; - - public: - class CONTENT_EXPORT Writer final { - public: - explicit Writer(const scoped_refptr<Context>& context); - ~Writer(); - // Note: Writer assumes |AddData| is not called in a client's didGetReadable - // callback. There isn't such assumption for |Close| and |Fail|. - void AddData(std::unique_ptr<RequestPeer::ReceivedData> data); - void Close(); - // TODO(yhirano): Consider providing error code. - void Fail(); - - private: - scoped_refptr<Context> context_; - - DISALLOW_COPY_AND_ASSIGN(Writer); - }; - - class ReaderImpl final : public Reader { - public: - ReaderImpl(scoped_refptr<Context> context, - Client* client, - scoped_refptr<base::SingleThreadTaskRunner> task_runner); - ~ReaderImpl() override; - Result Read(void* data, - size_t size, - Flags flags, - size_t* readSize) override; - Result BeginRead(const void** buffer, - Flags flags, - size_t* available) override; - Result EndRead(size_t readSize) override; - - private: - scoped_refptr<Context> context_; - - DISALLOW_COPY_AND_ASSIGN(ReaderImpl); - }; - - // Creates a handle and a writer associated with the handle. The created - // writer should be used on the calling thread. - explicit SharedMemoryDataConsumerHandle(std::unique_ptr<Writer>* writer); - // |on_reader_detached| will be called aynchronously on the calling thread - // when the reader (including the handle) is detached (i.e. both the handle - // and the reader are destructed). The callback will be reset in the internal - // context when the writer is detached, i.e. |Close| or |Fail| is called, - // and the callback will never be called. - SharedMemoryDataConsumerHandle(base::OnceClosure on_reader_detached, - std::unique_ptr<Writer>* writer); - ~SharedMemoryDataConsumerHandle() override; - - std::unique_ptr<Reader> ObtainReader( - Client* client, - scoped_refptr<base::SingleThreadTaskRunner> task_runner) override; - - private: - const char* DebugName() const override; - - scoped_refptr<Context> context_; - - DISALLOW_COPY_AND_ASSIGN(SharedMemoryDataConsumerHandle); -}; - -} // namespace content - -#endif // CONTENT_RENDERER_LOADER_SHARED_MEMORY_DATA_CONSUMER_HANDLE_H_
diff --git a/content/renderer/loader/shared_memory_data_consumer_handle_unittest.cc b/content/renderer/loader/shared_memory_data_consumer_handle_unittest.cc deleted file mode 100644 index 0a99ca6a..0000000 --- a/content/renderer/loader/shared_memory_data_consumer_handle_unittest.cc +++ /dev/null
@@ -1,1045 +0,0 @@ -// Copyright 2015 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "content/renderer/loader/shared_memory_data_consumer_handle.h" - -#include <stddef.h> -#include <string.h> - -#include <string> -#include <utility> -#include <vector> - -#include "base/bind.h" -#include "base/callback.h" -#include "base/location.h" -#include "base/run_loop.h" -#include "base/single_thread_task_runner.h" -#include "base/stl_util.h" -#include "base/strings/string_split.h" -#include "base/task_runner.h" -#include "base/test/scoped_task_environment.h" -#include "base/threading/thread.h" -#include "base/threading/thread_task_runner_handle.h" -#include "content/public/renderer/fixed_received_data.h" -#include "testing/gmock/include/gmock/gmock.h" -#include "testing/gtest/include/gtest/gtest.h" -#include "third_party/blink/public/platform/scheduler/test/renderer_scheduler_test_support.h" - -namespace content { - -namespace { -using blink::WebDataConsumerHandle; -using Result = WebDataConsumerHandle::Result; -using Writer = SharedMemoryDataConsumerHandle::Writer; - -const WebDataConsumerHandle::Flags kNone = WebDataConsumerHandle::kFlagNone; -const Result kOk = WebDataConsumerHandle::kOk; -const Result kDone = WebDataConsumerHandle::kDone; -const Result kShouldWait = WebDataConsumerHandle::kShouldWait; -const Result kUnexpectedError = WebDataConsumerHandle::kUnexpectedError; - -using ::testing::_; -using ::testing::InSequence; -using ::testing::Invoke; -using ::testing::MockFunction; -using ::testing::Return; -using ::testing::StrictMock; - -using Checkpoint = StrictMock<MockFunction<void(int)>>; -using ReceivedData = RequestPeer::ReceivedData; - -class Logger final : public base::RefCounted<Logger> { - public: - Logger() {} - void Add(const std::string& entry) { log_ += entry + "\n"; } - const std::string& log() const { return log_; } - - private: - friend class base::RefCounted<Logger>; - ~Logger() {} - std::string log_; - - DISALLOW_COPY_AND_ASSIGN(Logger); -}; - -class LoggingFixedReceivedData final : public RequestPeer::ReceivedData { - public: - LoggingFixedReceivedData(const char* name, - const char* s, - scoped_refptr<Logger> logger) - : name_(name), data_(s, s + strlen(s)), logger_(logger) {} - ~LoggingFixedReceivedData() override { - logger_->Add(name_ + " is destructed."); - } - - const char* payload() override { return data_.empty() ? nullptr : &data_[0]; } - int length() override { return static_cast<int>(data_.size()); } - - private: - const std::string name_; - const std::vector<char> data_; - scoped_refptr<Logger> logger_; - - DISALLOW_COPY_AND_ASSIGN(LoggingFixedReceivedData); -}; - -class DestructionTrackingFunction - : public base::RefCountedThreadSafe<DestructionTrackingFunction> { - public: - MOCK_METHOD0(Destruct, void(void)); - MOCK_METHOD0(Call, void(void)); - - protected: - friend class base::RefCountedThreadSafe<DestructionTrackingFunction>; - virtual ~DestructionTrackingFunction() { Destruct(); } -}; - -class MockClient : public WebDataConsumerHandle::Client { - public: - MOCK_METHOD0(DidGetReadable, void()); -}; - -std::string ToString(const void* p, size_t size) { - const char* q = static_cast<const char*>(p); - return std::string(q, q + size); -} - -class ThreadedSharedMemoryDataConsumerHandleTest : public ::testing::Test { - protected: - class ReadDataOperation; - class ClientImpl final : public WebDataConsumerHandle::Client { - public: - explicit ClientImpl(ReadDataOperation* operation) : operation_(operation) {} - - void DidGetReadable() override { operation_->ReadData(); } - - private: - ReadDataOperation* operation_; - }; - - class ReadDataOperation final { - public: - typedef WebDataConsumerHandle::Result Result; - ReadDataOperation( - std::unique_ptr<SharedMemoryDataConsumerHandle> handle, - scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner, - const base::Closure& on_done) - : handle_(std::move(handle)), - main_thread_task_runner_(std::move(main_thread_task_runner)), - on_done_(on_done) {} - - const std::string& result() const { return result_; } - - void ReadData() { - if (!client_) { - client_.reset(new ClientImpl(this)); - reader_ = handle_->ObtainReader( - client_.get(), - blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - } - - Result rv = kOk; - size_t read_size = 0; - - while (true) { - char buffer[16]; - rv = reader_->Read(&buffer, sizeof(buffer), kNone, &read_size); - if (rv != kOk) - break; - result_.insert(result_.size(), &buffer[0], read_size); - } - - if (rv == kShouldWait) { - // Wait a while... - return; - } - - if (rv != kDone) { - // Something is wrong. - result_ = "error"; - } - - // The operation is done. - reader_.reset(); - main_thread_task_runner_->PostTask(FROM_HERE, on_done_); - } - - private: - std::unique_ptr<SharedMemoryDataConsumerHandle> handle_; - std::unique_ptr<WebDataConsumerHandle::Reader> reader_; - std::unique_ptr<WebDataConsumerHandle::Client> client_; - scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; - base::Closure on_done_; - std::string result_; - }; - - void SetUp() override { - handle_ = std::make_unique<SharedMemoryDataConsumerHandle>(&writer_); - } - - StrictMock<MockClient> client_; - std::unique_ptr<SharedMemoryDataConsumerHandle> handle_; - std::unique_ptr<Writer> writer_; - base::test::ScopedTaskEnvironment task_environment_; -}; - -class SharedMemoryDataConsumerHandleTest : public testing::Test { - protected: - void SetUp() override { - handle_ = std::make_unique<SharedMemoryDataConsumerHandle>(&writer_); - } - std::unique_ptr<FixedReceivedData> NewFixedData(const char* s) { - return std::make_unique<FixedReceivedData>(s, strlen(s)); - } - - StrictMock<MockClient> client_; - std::unique_ptr<SharedMemoryDataConsumerHandle> handle_; - std::unique_ptr<Writer> writer_; - base::test::ScopedTaskEnvironment task_environment_; -}; - -void RunPostedTasks() { - base::RunLoop run_loop; - blink::scheduler::GetSingleThreadTaskRunnerForTesting()->PostTask( - FROM_HERE, run_loop.QuitClosure()); - run_loop.Run(); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, ReadFromEmpty) { - char buffer[4]; - size_t read = 88; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - Result result = reader->Read(buffer, 4, kNone, &read); - - EXPECT_EQ(kShouldWait, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, AutoClose) { - char buffer[4]; - size_t read = 88; - - writer_.reset(); - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - Result result = reader->Read(buffer, 4, kNone, &read); - - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, ReadSimple) { - writer_->AddData(NewFixedData("hello")); - - char buffer[4] = {}; - size_t read = 88; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - Result result = reader->Read(buffer, 3, kNone, &read); - - EXPECT_EQ(kOk, result); - EXPECT_EQ(3u, read); - EXPECT_STREQ("hel", buffer); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(2u, read); - EXPECT_STREQ("lol", buffer); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kShouldWait, result); - EXPECT_EQ(0u, read); - - writer_->Close(); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, ReadAfterHandleIsGone) { - writer_->AddData(NewFixedData("hello")); - - char buffer[8] = {}; - size_t read = 88; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - - handle_.reset(); - - Result result = reader->Read(buffer, sizeof(buffer), kNone, &read); - - EXPECT_EQ(kOk, result); - EXPECT_EQ(5u, read); - EXPECT_STREQ("hello", buffer); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kShouldWait, result); - EXPECT_EQ(0u, read); - - writer_->Close(); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, ReObtainReader) { - writer_->AddData(NewFixedData("hello")); - - char buffer[4] = {}; - size_t read = 88; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - Result result = reader->Read(buffer, 3, kNone, &read); - - EXPECT_EQ(kOk, result); - EXPECT_EQ(3u, read); - EXPECT_STREQ("hel", buffer); - - reader.reset(); - reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(2u, read); - EXPECT_STREQ("lol", buffer); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kShouldWait, result); - EXPECT_EQ(0u, read); - - writer_->Close(); - - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, CloseBeforeReading) { - writer_->AddData(NewFixedData("hello")); - writer_->Close(); - - char buffer[20] = {}; - size_t read = 88; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - Result result = reader->Read(buffer, sizeof(buffer), kNone, &read); - - EXPECT_EQ(kOk, result); - EXPECT_EQ(5u, read); - EXPECT_STREQ("hello", buffer); - - result = reader->Read(buffer, sizeof(buffer), kNone, &read); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, CloseWithDataBeforeZeroRead) { - writer_->AddData(NewFixedData("hello")); - writer_->Close(); - - size_t read = 88; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - Result result = reader->Read(nullptr, 0, kNone, &read); - - EXPECT_EQ(kOk, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, CloseWithoutDataBeforeZeroRead) { - writer_->Close(); - - size_t read = 88; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - Result result = reader->Read(nullptr, 0, kNone, &read); - - EXPECT_EQ(kDone, result); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, AddMultipleData) { - writer_->AddData(NewFixedData("Once ")); - writer_->AddData(NewFixedData("upon ")); - writer_->AddData(NewFixedData("a ")); - writer_->AddData(NewFixedData("time ")); - writer_->AddData(NewFixedData("there ")); - writer_->AddData(NewFixedData("was ")); - writer_->AddData(NewFixedData("a ")); - writer_->Close(); - - char buffer[20]; - size_t read; - Result result; - - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 6, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(6u, read); - EXPECT_STREQ("Once u", buffer); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 2, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(2u, read); - EXPECT_STREQ("po", buffer); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 9, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(9u, read); - EXPECT_STREQ("n a time ", buffer); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 3, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(3u, read); - EXPECT_STREQ("the", buffer); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 20, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(9u, read); - EXPECT_STREQ("re was a ", buffer); - - result = reader->Read(buffer, sizeof(buffer), kNone, &read); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, AddMultipleDataInteractively) { - writer_->AddData(NewFixedData("Once ")); - writer_->AddData(NewFixedData("upon ")); - - char buffer[20]; - size_t read; - Result result; - - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 6, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(6u, read); - EXPECT_STREQ("Once u", buffer); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 2, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(2u, read); - EXPECT_STREQ("po", buffer); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 9, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(2u, read); - EXPECT_STREQ("n ", buffer); - - writer_->AddData(NewFixedData("a ")); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 1, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(1u, read); - EXPECT_STREQ("a", buffer); - - writer_->AddData(NewFixedData("time ")); - writer_->AddData(NewFixedData("there ")); - writer_->AddData(NewFixedData("was ")); - writer_->AddData(NewFixedData("a ")); - writer_->Close(); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 9, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(9u, read); - EXPECT_STREQ(" time the", buffer); - - std::fill(&buffer[0], &buffer[base::size(buffer)], 0); - result = reader->Read(buffer, 20, kNone, &read); - EXPECT_EQ(kOk, result); - EXPECT_EQ(9u, read); - EXPECT_STREQ("re was a ", buffer); - - result = reader->Read(buffer, sizeof(buffer), kNone, &read); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, RegisterClient) { - Checkpoint checkpoint; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(checkpoint, Call(3)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(4)); - - checkpoint.Call(0); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(1); - RunPostedTasks(); - checkpoint.Call(2); - writer_->Close(); - checkpoint.Call(3); - RunPostedTasks(); - checkpoint.Call(4); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, RegisterClientWhenDataExists) { - Checkpoint checkpoint; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(3)); - - checkpoint.Call(0); - writer_->AddData(NewFixedData("Once ")); - checkpoint.Call(1); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(2); - RunPostedTasks(); - checkpoint.Call(3); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, AddDataWhenClientIsRegistered) { - Checkpoint checkpoint; - char buffer[20]; - Result result; - size_t size; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(checkpoint, Call(3)); - EXPECT_CALL(checkpoint, Call(4)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(5)); - - checkpoint.Call(0); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(1); - writer_->AddData(NewFixedData("Once ")); - checkpoint.Call(2); - writer_->AddData(NewFixedData("upon ")); - checkpoint.Call(3); - result = reader->Read(buffer, sizeof(buffer), kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(10u, size); - checkpoint.Call(4); - writer_->AddData(NewFixedData("a ")); - checkpoint.Call(5); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, CloseWithClientAndData) { - Checkpoint checkpoint; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(checkpoint, Call(3)); - - checkpoint.Call(0); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(1); - writer_->AddData(NewFixedData("Once ")); - checkpoint.Call(2); - writer_->Close(); - checkpoint.Call(3); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, ReleaseReader) { - Checkpoint checkpoint; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(checkpoint, Call(2)); - - checkpoint.Call(0); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(1); - reader.reset(); - writer_->AddData(NewFixedData("Once ")); - checkpoint.Call(2); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, TwoPhaseReadShouldWait) { - Result result; - const void* buffer = &result; - size_t size = 99; - - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kShouldWait, result); - EXPECT_EQ(nullptr, buffer); - EXPECT_EQ(0u, size); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, TwoPhaseReadSimple) { - writer_->AddData(NewFixedData("Once ")); - - Result result; - const void* buffer = &result; - size_t size = 99; - - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(5u, size); - EXPECT_EQ("Once ", ToString(buffer, 5)); - - reader->EndRead(1); - - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(4u, size); - EXPECT_EQ("nce ", ToString(buffer, 4)); - - reader->EndRead(4); - - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kShouldWait, result); - EXPECT_EQ(0u, size); - EXPECT_EQ(nullptr, buffer); - - writer_->Close(); - - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, size); - EXPECT_EQ(nullptr, buffer); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, CallOnClearWhenDestructed1) { - // Call |on_clear| when the handle is gone and if there is no reader. - Checkpoint checkpoint; - scoped_refptr<DestructionTrackingFunction> on_clear( - new StrictMock<DestructionTrackingFunction>); - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(*on_clear, Call()); - EXPECT_CALL(*on_clear, Destruct()); - EXPECT_CALL(checkpoint, Call(2)); - - checkpoint.Call(0); - handle_ = std::make_unique<SharedMemoryDataConsumerHandle>( - base::BindOnce(&DestructionTrackingFunction::Call, on_clear), &writer_); - handle_.reset(); - on_clear = nullptr; - checkpoint.Call(1); - RunPostedTasks(); - checkpoint.Call(2); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, CallOnClearWhenDestructed2) { - // Call |on_clear| when the reader is gone if the handle is alredy gone. - Checkpoint checkpoint; - scoped_refptr<DestructionTrackingFunction> on_clear( - new StrictMock<DestructionTrackingFunction>); - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(checkpoint, Call(3)); - EXPECT_CALL(*on_clear, Call()); - EXPECT_CALL(*on_clear, Destruct()); - EXPECT_CALL(checkpoint, Call(4)); - - checkpoint.Call(0); - handle_ = std::make_unique<SharedMemoryDataConsumerHandle>( - base::BindOnce(&DestructionTrackingFunction::Call, on_clear), &writer_); - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - handle_.reset(); - on_clear = nullptr; - checkpoint.Call(1); - RunPostedTasks(); - checkpoint.Call(2); - reader.reset(); - checkpoint.Call(3); - RunPostedTasks(); - checkpoint.Call(4); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, DoNotCallOnClearWhenDone) { - Checkpoint checkpoint; - scoped_refptr<DestructionTrackingFunction> on_clear( - new StrictMock<DestructionTrackingFunction>); - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(*on_clear, Destruct()); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(checkpoint, Call(3)); - EXPECT_CALL(checkpoint, Call(4)); - - checkpoint.Call(0); - handle_ = std::make_unique<SharedMemoryDataConsumerHandle>( - base::BindOnce(&DestructionTrackingFunction::Call, on_clear), &writer_); - on_clear = nullptr; - checkpoint.Call(1); - writer_->Close(); - checkpoint.Call(2); - handle_.reset(); - checkpoint.Call(3); - RunPostedTasks(); - checkpoint.Call(4); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, DoNotCallOnClearWhenErrored) { - Checkpoint checkpoint; - scoped_refptr<DestructionTrackingFunction> on_clear( - new StrictMock<DestructionTrackingFunction>); - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(*on_clear, Destruct()); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(checkpoint, Call(3)); - EXPECT_CALL(checkpoint, Call(4)); - - checkpoint.Call(0); - handle_ = std::make_unique<SharedMemoryDataConsumerHandle>( - base::BindOnce(&DestructionTrackingFunction::Call, on_clear), &writer_); - on_clear = nullptr; - checkpoint.Call(1); - writer_->Fail(); - checkpoint.Call(2); - handle_.reset(); - checkpoint.Call(3); - RunPostedTasks(); - checkpoint.Call(4); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, TwoPhaseReadWithMultipleData) { - writer_->AddData(NewFixedData("Once ")); - writer_->AddData(NewFixedData("upon ")); - - Result result; - const void* buffer = &result; - size_t size = 99; - - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(5u, size); - EXPECT_EQ("Once ", ToString(buffer, 5)); - - reader->EndRead(1); - - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(4u, size); - EXPECT_EQ("nce ", ToString(buffer, 4)); - - reader->EndRead(4); - - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(5u, size); - EXPECT_EQ("upon ", ToString(buffer, 5)); - - reader->EndRead(5); - - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kShouldWait, result); - EXPECT_EQ(0u, size); - EXPECT_EQ(nullptr, buffer); - - writer_->Close(); - - result = reader->BeginRead(&buffer, kNone, &size); - EXPECT_EQ(kDone, result); - EXPECT_EQ(0u, size); - EXPECT_EQ(nullptr, buffer); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, ErrorRead) { - Checkpoint checkpoint; - Result result; - char buffer[20] = {}; - size_t read = 99; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - - writer_->Fail(); - result = reader->Read(buffer, sizeof(buffer), kNone, &read); - - EXPECT_EQ(kUnexpectedError, result); - EXPECT_EQ(0u, read); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, ErrorTwoPhaseRead) { - Result result; - const void* pointer = &result; - size_t size = 99; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - - writer_->Fail(); - result = reader->BeginRead(&pointer, kNone, &size); - - EXPECT_EQ(kUnexpectedError, result); - EXPECT_EQ(nullptr, pointer); - EXPECT_EQ(0u, size); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, FailWhileTwoPhaseReadIsInProgress) { - Result result; - const void* pointer = nullptr; - size_t size = 0; - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - - writer_->AddData(NewFixedData("Once ")); - result = reader->BeginRead(&pointer, kNone, &size); - auto* buffer = static_cast<const char*>(pointer); - - ASSERT_EQ(kOk, result); - ASSERT_NE(nullptr, pointer); - ASSERT_EQ(size, 5u); - - writer_->Fail(); - - // We can access the buffer after calling |Fail|. I hope ASAN will detect - // an error if the region is already freed. - EXPECT_EQ('O', buffer[0]); - EXPECT_EQ('n', buffer[1]); - EXPECT_EQ('c', buffer[2]); - EXPECT_EQ('e', buffer[3]); - EXPECT_EQ(' ', buffer[4]); - - EXPECT_EQ(kOk, reader->EndRead(size)); - - EXPECT_EQ(kUnexpectedError, reader->BeginRead(&pointer, kNone, &size)); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, FailWithClient) { - Checkpoint checkpoint; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(3)); - - checkpoint.Call(0); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(1); - writer_->Fail(); - checkpoint.Call(2); - RunPostedTasks(); - checkpoint.Call(3); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, FailWithClientAndData) { - Checkpoint checkpoint; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(checkpoint, Call(3)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(4)); - - checkpoint.Call(0); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(1); - writer_->AddData(NewFixedData("Once ")); - checkpoint.Call(2); - writer_->Fail(); - checkpoint.Call(3); - RunPostedTasks(); - checkpoint.Call(4); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, RecursiveErrorNotification) { - Checkpoint checkpoint; - - InSequence s; - EXPECT_CALL(checkpoint, Call(0)); - EXPECT_CALL(checkpoint, Call(1)); - EXPECT_CALL(client_, DidGetReadable()) - .WillOnce(Invoke(writer_.get(), &Writer::Fail)); - EXPECT_CALL(checkpoint, Call(2)); - EXPECT_CALL(client_, DidGetReadable()); - EXPECT_CALL(checkpoint, Call(3)); - - checkpoint.Call(0); - auto reader = handle_->ObtainReader( - &client_, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - checkpoint.Call(1); - writer_->AddData(NewFixedData("Once ")); - checkpoint.Call(2); - RunPostedTasks(); - checkpoint.Call(3); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, Read) { - char buffer[20]; - Result result; - size_t size; - - scoped_refptr<Logger> logger(new Logger); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data1", "Once ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data2", "upon ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data3", "a ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data4", "time ", logger)); - - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - logger->Add("1"); - result = reader->Read(buffer, 2, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(2u, size); - logger->Add("2"); - result = reader->Read(buffer, 5, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(5u, size); - logger->Add("3"); - result = reader->Read(buffer, 6, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(6u, size); - logger->Add("4"); - - EXPECT_EQ( - "1\n" - "2\n" - "data1 is destructed.\n" - "3\n" - "data2 is destructed.\n" - "data3 is destructed.\n" - "4\n", - logger->log()); -} - -TEST_F(SharedMemoryDataConsumerHandleTest, CloseAndReset) { - char buffer[20]; - Result result; - size_t size; - - scoped_refptr<Logger> logger(new Logger); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data1", "Once ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data2", "upon ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data3", "a ", logger)); - - auto reader = handle_->ObtainReader( - nullptr, blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - logger->Add("1"); - result = reader->Read(buffer, 2, kNone, &size); - EXPECT_EQ(kOk, result); - EXPECT_EQ(2u, size); - logger->Add("2"); - writer_->Close(); - logger->Add("3"); - handle_.reset(); - reader.reset(); - logger->Add("4"); - - std::vector<std::string> log = base::SplitString( - logger->log(), "\n", base::KEEP_WHITESPACE, base::SPLIT_WANT_ALL); - - ASSERT_EQ(8u, log.size()); - EXPECT_EQ("1", log[0]); - EXPECT_EQ("2", log[1]); - EXPECT_EQ("3", log[2]); - EXPECT_EQ("4", log[6]); - EXPECT_EQ("", log[7]); - - // The destruction order doesn't matter in this case. - std::vector<std::string> destruction_entries = {log[3], log[4], log[5]}; - std::sort(destruction_entries.begin(), destruction_entries.end()); - EXPECT_EQ(destruction_entries[0], "data1 is destructed."); - EXPECT_EQ(destruction_entries[1], "data2 is destructed."); - EXPECT_EQ(destruction_entries[2], "data3 is destructed."); -} - -TEST_F(ThreadedSharedMemoryDataConsumerHandleTest, Read) { - base::RunLoop run_loop; - auto operation = std::make_unique<ReadDataOperation>( - std::move(handle_), - blink::scheduler::GetSingleThreadTaskRunnerForTesting(), - run_loop.QuitClosure()); - scoped_refptr<Logger> logger(new Logger); - - base::Thread t("DataConsumerHandle test thread"); - ASSERT_TRUE(t.Start()); - - t.task_runner()->PostTask(FROM_HERE, - base::BindOnce(&ReadDataOperation::ReadData, - base::Unretained(operation.get()))); - - logger->Add("1"); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data1", "Once ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data2", "upon ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data3", "a time ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data4", "there ", logger)); - writer_->AddData( - std::make_unique<LoggingFixedReceivedData>("data5", "was ", logger)); - writer_->Close(); - logger->Add("2"); - - run_loop.Run(); - t.Stop(); - - EXPECT_EQ("Once upon a time there was ", operation->result()); - EXPECT_EQ( - "1\n" - "2\n" - "data1 is destructed.\n" - "data2 is destructed.\n" - "data3 is destructed.\n" - "data4 is destructed.\n" - "data5 is destructed.\n", - logger->log()); -} - -} // namespace - -} // namespace content
diff --git a/content/renderer/loader/sync_load_context.cc b/content/renderer/loader/sync_load_context.cc index 44869f4..177bf3e2 100644 --- a/content/renderer/loader/sync_load_context.cc +++ b/content/renderer/loader/sync_load_context.cc
@@ -213,14 +213,6 @@ body_watcher_.ArmOrNotify(); } -void SyncLoadContext::OnReceivedData(std::unique_ptr<ReceivedData> data) { - if (mode_ == Mode::kInitial) - mode_ = Mode::kNonDataPipe; - DCHECK_EQ(Mode::kNonDataPipe, mode_); - DCHECK(!Completed()); - response_->data.append(data->payload(), data->length()); -} - void SyncLoadContext::OnTransferSizeUpdated(int transfer_size_diff) {} void SyncLoadContext::OnCompletedRequest(
diff --git a/content/renderer/loader/sync_load_context.h b/content/renderer/loader/sync_load_context.h index d98ec9bf..e362b171 100644 --- a/content/renderer/loader/sync_load_context.h +++ b/content/renderer/loader/sync_load_context.h
@@ -33,12 +33,10 @@ // This class owns the context necessary to perform an asynchronous request // while the main thread is blocked so that it appears to be synchronous. -// There are a few mode to load a request: -// 1) kNonDataPipe: body is received on OnReceivedData(), and the body is set -// to response_.data. -// 2) kDataPipe; body is received on a data pipe passed on +// There are a couple of modes to load a request: +// 1) kDataPipe; body is received on a data pipe passed on // OnStartLoadingResponseBody(), and the body is set to response_.data. -// 3) kBlob: body is received on a data pipe passed on +// 2) kBlob: body is received on a data pipe passed on // OnStartLoadingResponseBody(), and wraps the data pipe with a // SerializedBlobPtr. class CONTENT_EXPORT SyncLoadContext : public RequestPeer { @@ -88,7 +86,6 @@ void OnReceivedResponse(const network::ResourceResponseInfo& info) override; void OnStartLoadingResponseBody( mojo::ScopedDataPipeConsumerHandle body) override; - void OnReceivedData(std::unique_ptr<ReceivedData> data) override; void OnTransferSizeUpdated(int transfer_size_diff) override; void OnCompletedRequest( const network::URLLoaderCompletionStatus& status) override; @@ -109,7 +106,7 @@ // Set to null after CompleteRequest() is called. SyncLoadResponse* response_; - enum class Mode { kInitial, kNonDataPipe, kDataPipe, kBlob }; + enum class Mode { kInitial, kDataPipe, kBlob }; Mode mode_ = Mode::kInitial; // Used when Mode::kDataPipe.
diff --git a/content/renderer/loader/sync_load_context_unittest.cc b/content/renderer/loader/sync_load_context_unittest.cc index 83ce44aa..4b91bc8 100644 --- a/content/renderer/loader/sync_load_context_unittest.cc +++ b/content/renderer/loader/sync_load_context_unittest.cc
@@ -5,7 +5,6 @@ #include "content/renderer/loader/sync_load_context.h" #include "base/bind.h" #include "base/threading/thread.h" -#include "content/public/renderer/fixed_received_data.h" #include "content/renderer/loader/sync_load_response.h" #include "mojo/public/cpp/system/data_pipe_utils.h" #include "net/traffic_annotation/network_traffic_annotation_test_helper.h" @@ -109,32 +108,6 @@ nullptr /* download_to_blob_registry */)); } - static void RunSyncLoadContextViaNonDataPipe( - network::ResourceRequest* request, - SyncLoadResponse* response, - std::string expected_data, - base::WaitableEvent* redirect_or_response_event, - scoped_refptr<base::SingleThreadTaskRunner> task_runner) { - DCHECK(task_runner->BelongsToCurrentThread()); - auto* context = new SyncLoadContext( - request, std::make_unique<MockSharedURLLoaderFactoryInfo>(), response, - redirect_or_response_event, nullptr /* terminate_sync_load_event */, - base::TimeDelta::FromSeconds(60) /* timeout */, - nullptr /* download_to_blob_registry */, task_runner); - - // Override |resource_dispatcher_| for testing. - auto dispatcher = std::make_unique<MockResourceDispatcher>(); - context->request_id_ = - dispatcher->CreatePendingRequest(base::WrapUnique(context)); - context->resource_dispatcher_ = std::move(dispatcher); - - // Simulate the response. - context->OnReceivedResponse(network::ResourceResponseInfo()); - context->OnReceivedData(std::make_unique<FixedReceivedData>( - expected_data.data(), expected_data.size())); - context->OnCompletedRequest(network::URLLoaderCompletionStatus(net::OK)); - } - static void RunSyncLoadContextViaDataPipe( network::ResourceRequest* request, SyncLoadResponse* response, @@ -195,32 +168,6 @@ EXPECT_EQ(expected_data, response.data); } -TEST_F(SyncLoadContextTest, ResponseBodyViaNonDataPipe) { - GURL expected_url = GURL("https://example.com"); - std::string expected_data = "foobarbaz"; - - // Create and exercise SyncLoadContext on the |loading_thread_|. - auto request = std::make_unique<network::ResourceRequest>(); - request->url = expected_url; - SyncLoadResponse response; - base::WaitableEvent redirect_or_response_event( - base::WaitableEvent::ResetPolicy::MANUAL, - base::WaitableEvent::InitialState::NOT_SIGNALED); - loading_thread_.task_runner()->PostTask( - FROM_HERE, - base::BindOnce(&SyncLoadContextTest::RunSyncLoadContextViaNonDataPipe, - request.get(), &response, expected_data, - &redirect_or_response_event, - loading_thread_.task_runner())); - - // Wait until the response is received. - redirect_or_response_event.Wait(); - - // Check if |response| is set properly after the WaitableEvent fires. - EXPECT_EQ(net::OK, response.error_code); - EXPECT_EQ(expected_data, response.data); -} - TEST_F(SyncLoadContextTest, ResponseBodyViaDataPipe) { GURL expected_url = GURL("https://example.com"); std::string expected_data = "foobarbaz";
diff --git a/content/renderer/loader/test_request_peer.cc b/content/renderer/loader/test_request_peer.cc index bff5d20..dc531128 100644 --- a/content/renderer/loader/test_request_peer.cc +++ b/content/renderer/loader/test_request_peer.cc
@@ -57,21 +57,6 @@ context_->body_handle = std::move(body); } -void TestRequestPeer::OnReceivedData(std::unique_ptr<ReceivedData> data) { - if (context_->cancelled) - return; - EXPECT_TRUE(context_->received_response); - EXPECT_FALSE(context_->complete); - context_->data.append(data->payload(), data->length()); - - if (context_->cancel_on_receive_data) { - dispatcher_->Cancel( - context_->request_id, - blink::scheduler::GetSingleThreadTaskRunnerForTesting()); - context_->cancelled = true; - } -} - void TestRequestPeer::OnTransferSizeUpdated(int transfer_size_diff) { EXPECT_TRUE(context_->received_response); EXPECT_FALSE(context_->complete);
diff --git a/content/renderer/loader/test_request_peer.h b/content/renderer/loader/test_request_peer.h index ff4fc9f..0fc27ef 100644 --- a/content/renderer/loader/test_request_peer.h +++ b/content/renderer/loader/test_request_peer.h
@@ -24,7 +24,6 @@ namespace content { -class ReceivedData; class ResourceDispatcher; // Listens for request response data and stores it so that it can be compared @@ -41,7 +40,6 @@ void OnReceivedResponse(const network::ResourceResponseInfo& info) override; void OnStartLoadingResponseBody( mojo::ScopedDataPipeConsumerHandle body) override; - void OnReceivedData(std::unique_ptr<ReceivedData> data) override; void OnTransferSizeUpdated(int transfer_size_diff) override; void OnReceivedCachedMetadata(const char* data, int len) override; void OnCompletedRequest(
diff --git a/content/renderer/loader/web_url_loader_impl.cc b/content/renderer/loader/web_url_loader_impl.cc index 0ac80b7..7e11c59 100644 --- a/content/renderer/loader/web_url_loader_impl.cc +++ b/content/renderer/loader/web_url_loader_impl.cc
@@ -35,11 +35,9 @@ #include "content/public/common/origin_util.h" #include "content/public/common/previews_state.h" #include "content/public/common/referrer.h" -#include "content/public/renderer/fixed_received_data.h" #include "content/public/renderer/request_peer.h" #include "content/renderer/loader/request_extra_data.h" #include "content/renderer/loader/resource_dispatcher.h" -#include "content/renderer/loader/shared_memory_data_consumer_handle.h" #include "content/renderer/loader/sync_load_response.h" #include "content/renderer/loader/web_url_request_util.h" #include "net/base/data_url.h" @@ -365,8 +363,6 @@ // deleted if it may have work to do after calling into the client. class WebURLLoaderImpl::Context : public base::RefCounted<Context> { public: - using ReceivedData = RequestPeer::ReceivedData; - Context( WebURLLoaderImpl* loader, ResourceDispatcher* resource_dispatcher, @@ -394,7 +390,6 @@ const network::ResourceResponseInfo& info); void OnReceivedResponse(const network::ResourceResponseInfo& info); void OnStartLoadingResponseBody(mojo::ScopedDataPipeConsumerHandle body); - void OnReceivedData(std::unique_ptr<ReceivedData> data); void OnTransferSizeUpdated(int transfer_size_diff); void OnReceivedCachedMetadata(const char* data, int len); void OnCompletedRequest(const network::URLLoaderCompletionStatus& status); @@ -410,43 +405,18 @@ ~Context(); - class ReceivedDataImpl : public ReceivedData { - public: - ReceivedDataImpl(const char* payload, - int length, - scoped_refptr<Context> context) - : payload_(payload), length_(length), context_(std::move(context)) {} - - ~ReceivedDataImpl() override { - DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_); - context_->OnBodyHasBeenRead(length_); - } - - const char* payload() override { return payload_; } - int length() override { return length_; } - - private: - SEQUENCE_CHECKER(sequence_checker_); - const char* const payload_; - const int length_; - scoped_refptr<Context> context_; - }; - // Called when the body data stream is detached from the reader side. void CancelBodyStreaming(); void OnBodyAvailable(MojoResult, const mojo::HandleSignalsState&); void OnBodyHasBeenRead(uint32_t read_bytes); - void MaybeCompleteRequest(); - static net::NetworkTrafficAnnotationTag GetTrafficAnnotationTag( const blink::WebURLRequest& request); WebURLLoaderImpl* loader_; WebURL url_; - bool use_stream_on_response_; // Controls SetSecurityStyleAndDetails() in PopulateURLResponse(). Initially // set to WebURLRequest::ReportRawHeaders() in Start() and gets updated in // WillFollowRedirect() (by the InspectorNetworkAgent) while the new @@ -463,7 +433,6 @@ ResourceDispatcher* resource_dispatcher_; std::unique_ptr<WebResourceLoadingTaskRunnerHandle> task_runner_handle_; scoped_refptr<base::SingleThreadTaskRunner> task_runner_; - std::unique_ptr<SharedMemoryDataConsumerHandle::Writer> body_stream_writer_; mojom::KeepAliveHandlePtr keep_alive_handle_; enum DeferState { NOT_DEFERRING, SHOULD_DEFER }; DeferState defers_loading_; @@ -471,10 +440,6 @@ bool in_two_phase_read_ = false; bool is_in_on_body_available_ = false; - // Used when ResponseLoadViaDataPipe is enabled and - // |pass_response_pipe_to_client_| is false. - mojo::ScopedDataPipeConsumerHandle body_handle_; - mojo::SimpleWatcher body_watcher_; base::Optional<network::URLLoaderCompletionStatus> completion_status_; scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; @@ -496,7 +461,6 @@ void OnReceivedResponse(const network::ResourceResponseInfo& info) override; void OnStartLoadingResponseBody( mojo::ScopedDataPipeConsumerHandle body) override; - void OnReceivedData(std::unique_ptr<ReceivedData> data) override; void OnTransferSizeUpdated(int transfer_size_diff) override; void OnReceivedCachedMetadata(const char* data, int len) override; void OnCompletedRequest( @@ -537,7 +501,6 @@ base::BindRepeating(&SinkPeer::OnBodyAvailable, base::Unretained(this))); } - void OnReceivedData(std::unique_ptr<ReceivedData> data) override {} void OnTransferSizeUpdated(int transfer_size_diff) override {} void OnReceivedCachedMetadata(const char* data, int len) override {} void OnCompletedRequest( @@ -591,7 +554,6 @@ scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory, mojom::KeepAliveHandlePtr keep_alive_handle_ptr) : loader_(loader), - use_stream_on_response_(false), report_raw_headers_(false), client_(nullptr), resource_dispatcher_(resource_dispatcher), @@ -600,9 +562,6 @@ keep_alive_handle_(std::move(keep_alive_handle_ptr)), defers_loading_(NOT_DEFERRING), request_id_(-1), - body_watcher_(FROM_HERE, - mojo::SimpleWatcher::ArmingPolicy::MANUAL, - task_runner_), url_loader_factory_(std::move(url_loader_factory)) { DCHECK(url_loader_factory_ || !resource_dispatcher); } @@ -616,14 +575,6 @@ request_id_ = -1; } - if (body_stream_writer_) - body_stream_writer_->Fail(); - - if (!in_two_phase_read_) { - body_handle_.reset(); - body_watcher_.Cancel(); - } - // Do not make any further calls to the client. client_ = nullptr; loader_ = nullptr; @@ -636,10 +587,6 @@ defers_loading_ = SHOULD_DEFER; } else if (!value && defers_loading_ != NOT_DEFERRING) { defers_loading_ = NOT_DEFERRING; - - if (body_watcher_.IsWatching()) { - body_watcher_.ArmOrNotify(); - } } } @@ -663,7 +610,6 @@ ConvertWebKitPriorityToNetPriority(request.GetPriority())); url_ = request.Url(); - use_stream_on_response_ = request.UseStreamOnResponse(); report_raw_headers_ = request.ReportRawHeaders(); pass_response_pipe_to_client_ = request.PassResponsePipeToClient(); @@ -913,11 +859,6 @@ client_->DidStartLoadingResponseBody(std::move(body)); } -void WebURLLoaderImpl::Context::OnReceivedData( - std::unique_ptr<ReceivedData> data) { - NOTREACHED(); -} - void WebURLLoaderImpl::Context::OnTransferSizeUpdated(int transfer_size_diff) { client_->DidReceiveTransferSizeUpdate(transfer_size_diff); } @@ -934,13 +875,24 @@ void WebURLLoaderImpl::Context::OnCompletedRequest( const network::URLLoaderCompletionStatus& status) { - if (completion_status_.has_value()) { - // |completion_status_| could be set before OnCompletedRequest() is called - // when Mojo error happens during reading the body. - return; + int64_t total_transfer_size = status.encoded_data_length; + int64_t encoded_body_size = status.encoded_body_length; + + if (client_) { + TRACE_EVENT_WITH_FLOW0("loading", + "WebURLLoaderImpl::Context::OnCompletedRequest", + this, TRACE_EVENT_FLAG_FLOW_IN); + + if (status.error_code != net::OK) { + client_->DidFail(PopulateURLError(status, url_), total_transfer_size, + encoded_body_size, status.decoded_body_length); + } else { + client_->DidFinishLoading(status.completion_time, total_transfer_size, + encoded_body_size, status.decoded_body_length, + status.should_report_corb_blocking, + status.cors_preflight_timing_info); + } } - completion_status_ = status; - MaybeCompleteRequest(); } WebURLLoaderImpl::Context::~Context() { @@ -951,10 +903,6 @@ void WebURLLoaderImpl::Context::CancelBodyStreaming() { scoped_refptr<Context> protect(this); - if (body_stream_writer_) { - body_stream_writer_->Fail(); - body_stream_writer_.reset(); - } if (client_) { // TODO(yhirano): Set |stale_copy_in_cache| appropriately if possible. client_->DidFail(WebURLError(net::ERR_ABORTED, url_), @@ -965,105 +913,6 @@ Cancel(); } -void WebURLLoaderImpl::Context::OnBodyAvailable( - MojoResult, - const mojo::HandleSignalsState&) { - DCHECK(!is_in_on_body_available_); - // Cancel may happen so that we need to protect |this|. - scoped_refptr<Context> protect(this); - uint32_t read_bytes = 0; - base::AutoReset<bool> auto_reset(&is_in_on_body_available_, true); - - // |client_| is nullptr when the request is canceled. - while (client_ && defers_loading_ == NOT_DEFERRING && !in_two_phase_read_) { - const void* buffer = nullptr; - uint32_t available_bytes = 0; - MojoResult rv = body_handle_->BeginReadData(&buffer, &available_bytes, - MOJO_READ_DATA_FLAG_NONE); - if (rv == MOJO_RESULT_SHOULD_WAIT) { - body_watcher_.ArmOrNotify(); - return; - } - if (rv == MOJO_RESULT_FAILED_PRECONDITION) { - body_handle_.reset(); - body_watcher_.Cancel(); - MaybeCompleteRequest(); - return; - } - if (rv != MOJO_RESULT_OK) { - body_handle_.reset(); - body_watcher_.Cancel(); - completion_status_ = network::URLLoaderCompletionStatus(net::ERR_FAILED); - MaybeCompleteRequest(); - return; - } - in_two_phase_read_ = true; - DCHECK_EQ(MOJO_RESULT_OK, rv); - DCHECK_LE(read_bytes, kMaxNumConsumedBytesInTask); - available_bytes = - std::min(available_bytes, kMaxNumConsumedBytesInTask - read_bytes); - if (available_bytes == 0) { - // We've already read kMaxNumConsumedBytesInTask bytes of the body in this - // task. Defer the remaining to the next task. - rv = body_handle_->EndReadData(0); - in_two_phase_read_ = false; - DCHECK_EQ(MOJO_RESULT_OK, rv); - body_watcher_.ArmOrNotify(); - return; - } - read_bytes += available_bytes; - OnReceivedData(std::make_unique<ReceivedDataImpl>( - static_cast<const char*>(buffer), available_bytes, this)); - } -} - -void WebURLLoaderImpl::Context::OnBodyHasBeenRead(uint32_t read_bytes) { - DCHECK(in_two_phase_read_); - MojoResult rv = body_handle_->EndReadData(read_bytes); - DCHECK_EQ(MOJO_RESULT_OK, rv); - in_two_phase_read_ = false; - if (!client_) { - // The request has been cancelled. - body_handle_.reset(); - body_watcher_.Cancel(); - } - if (defers_loading_ == NOT_DEFERRING && !is_in_on_body_available_) - body_watcher_.ArmOrNotify(); -} - -void WebURLLoaderImpl::Context::MaybeCompleteRequest() { - if (!completion_status_.has_value() || body_handle_.is_valid()) { - // OnCompletedRequest() hasn't been called yet or the body didn't reach to - // the end. - return; - } - - int64_t total_transfer_size = completion_status_->encoded_data_length; - int64_t encoded_body_size = completion_status_->encoded_body_length; - - if (body_stream_writer_ && completion_status_->error_code != net::OK) - body_stream_writer_->Fail(); - body_stream_writer_.reset(); - - if (client_) { - TRACE_EVENT_WITH_FLOW0("loading", - "WebURLLoaderImpl::Context::OnCompletedRequest", - this, TRACE_EVENT_FLAG_FLOW_IN); - - if (completion_status_->error_code != net::OK) { - client_->DidFail(PopulateURLError(*completion_status_, url_), - total_transfer_size, encoded_body_size, - completion_status_->decoded_body_length); - } else { - client_->DidFinishLoading(completion_status_->completion_time, - total_transfer_size, encoded_body_size, - completion_status_->decoded_body_length, - completion_status_->should_report_corb_blocking, - completion_status_->cors_preflight_timing_info); - } - } -} - // WebURLLoaderImpl::RequestPeerImpl ------------------------------------------ WebURLLoaderImpl::RequestPeerImpl::RequestPeerImpl(Context* context, @@ -1091,11 +940,6 @@ context_->OnStartLoadingResponseBody(std::move(body)); } -void WebURLLoaderImpl::RequestPeerImpl::OnReceivedData( - std::unique_ptr<ReceivedData> data) { - NOTREACHED(); -} - void WebURLLoaderImpl::RequestPeerImpl::OnTransferSizeUpdated( int transfer_size_diff) { context_->OnTransferSizeUpdated(transfer_size_diff);
diff --git a/content/renderer/loader/web_url_loader_impl_unittest.cc b/content/renderer/loader/web_url_loader_impl_unittest.cc index 0c2ae21..2e395a8a 100644 --- a/content/renderer/loader/web_url_loader_impl_unittest.cc +++ b/content/renderer/loader/web_url_loader_impl_unittest.cc
@@ -19,7 +19,6 @@ #include "base/time/default_tick_clock.h" #include "base/time/time.h" #include "content/public/common/content_switches.h" -#include "content/public/renderer/fixed_received_data.h" #include "content/public/renderer/request_peer.h" #include "content/renderer/loader/navigation_response_override_parameters.h" #include "content/renderer/loader/request_extra_data.h"
diff --git a/content/renderer/media/webrtc/rtc_video_decoder.cc b/content/renderer/media/webrtc/rtc_video_decoder.cc index 55b5366..7d692a5c 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder.cc
@@ -173,18 +173,14 @@ int32_t RTCVideoDecoder::Decode( const webrtc::EncodedImage& input_image, bool missing_frames, - const webrtc::CodecSpecificInfo* codec_specific_info, int64_t render_time_ms) { DVLOG(3) << "Decode"; - DCHECK(!codec_specific_info || - video_codec_type_ == codec_specific_info->codecType); // Hardware VP9 decoders don't handle more than one spatial layer. Fall back // to software decoding. See https://crbug.com/webrtc/9304, // https://crbug.com/webrtc/9518. - if (video_codec_type_ == webrtc::kVideoCodecVP9 && codec_specific_info && - codec_specific_info->codecSpecific.VP9.ss_data_available && - codec_specific_info->codecSpecific.VP9.num_spatial_layers > 1) { + if (video_codec_type_ == webrtc::kVideoCodecVP9 && + input_image.SpatialIndex().value_or(0) > 0) { return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE; }
diff --git a/content/renderer/media/webrtc/rtc_video_decoder.h b/content/renderer/media/webrtc/rtc_video_decoder.h index 68474805..40b7e5c 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder.h +++ b/content/renderer/media/webrtc/rtc_video_decoder.h
@@ -71,7 +71,6 @@ // Called on WebRTC DecodingThread. int32_t Decode(const webrtc::EncodedImage& inputImage, bool missingFrames, - const webrtc::CodecSpecificInfo* codecSpecificInfo, int64_t renderTimeMs) override; // Called on WebRTC DecodingThread. int32_t RegisterDecodeCompleteCallback(
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc index a933f65..04939e1 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder_adapter.cc
@@ -218,8 +218,9 @@ int32_t number_of_cores) { DVLOG(1) << __func__; DCHECK_CALLED_ON_VALID_SEQUENCE(decoding_sequence_checker_); - DCHECK_EQ(webrtc::PayloadStringToCodecType(format_.name), - codec_settings->codecType); + + video_codec_type_ = codec_settings->codecType; + DCHECK_EQ(webrtc::PayloadStringToCodecType(format_.name), video_codec_type_); base::AutoLock auto_lock(lock_); UMA_HISTOGRAM_BOOLEAN("Media.RTCVideoDecoderInitDecodeSuccess", !has_error_); @@ -229,17 +230,14 @@ int32_t RTCVideoDecoderAdapter::Decode( const webrtc::EncodedImage& input_image, bool missing_frames, - const webrtc::CodecSpecificInfo* codec_specific_info, int64_t render_time_ms) { DVLOG(2) << __func__; DCHECK_CALLED_ON_VALID_SEQUENCE(decoding_sequence_checker_); // Hardware VP9 decoders don't handle more than one spatial layer. Fall back // to software decoding. See https://crbug.com/webrtc/9304. - if (codec_specific_info && - codec_specific_info->codecType == webrtc::kVideoCodecVP9 && - codec_specific_info->codecSpecific.VP9.ss_data_available && - codec_specific_info->codecSpecific.VP9.num_spatial_layers > 1) { + if (video_codec_type_ == webrtc::kVideoCodecVP9 && + input_image.SpatialIndex().value_or(0) > 0) { return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE; }
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_adapter.h b/content/renderer/media/webrtc/rtc_video_decoder_adapter.h index 9df22e1e..c56b397 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_adapter.h +++ b/content/renderer/media/webrtc/rtc_video_decoder_adapter.h
@@ -70,7 +70,6 @@ // Called on the DecodingThread. int32_t Decode(const webrtc::EncodedImage& input_image, bool missing_frames, - const webrtc::CodecSpecificInfo* codec_specific_info, int64_t render_time_ms) override; // Called on the worker thread and on the DecodingThread. int32_t Release() override; @@ -118,6 +117,7 @@ bool key_frame_required_ = true; // Shared members. base::Lock lock_; + webrtc::VideoCodecType video_codec_type_ = webrtc::kVideoCodecGeneric; int32_t consecutive_error_count_ = 0; bool has_error_ = false; webrtc::DecodedImageCallback* decode_complete_callback_ = nullptr;
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc b/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc index a14c40c..020fc42b 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder_adapter_unittest.cc
@@ -171,7 +171,7 @@ input_image._frameType = webrtc::VideoFrameType::kVideoFrameKey; input_image._completeFrame = true; input_image.SetTimestamp(timestamp); - return rtc_video_decoder_adapter_->Decode(input_image, false, nullptr, 0); + return rtc_video_decoder_adapter_->Decode(input_image, false, 0); } void FinishDecode(uint32_t timestamp) { @@ -344,9 +344,8 @@ .WillOnce(DoAll(SaveArg<0>(&vda_config_), media::RunCallback<3>(true))); webrtc::EncodedImage first_input_image = GetEncodedImageWithColorSpace(&buf[0], 0); - ASSERT_EQ( - rtc_video_decoder_adapter_->Decode(first_input_image, false, nullptr, 0), - WEBRTC_VIDEO_CODEC_OK); + ASSERT_EQ(rtc_video_decoder_adapter_->Decode(first_input_image, false, 0), + WEBRTC_VIDEO_CODEC_OK); media_thread_.FlushForTesting(); EXPECT_TRUE(vda_config_.color_space_info().IsSpecified()); FinishDecode(0); @@ -355,9 +354,8 @@ // Second Decode() with same params should happen normally. webrtc::EncodedImage second_input_image = GetEncodedImageWithColorSpace(&buf[0], 1); - ASSERT_EQ( - rtc_video_decoder_adapter_->Decode(second_input_image, false, nullptr, 0), - WEBRTC_VIDEO_CODEC_OK); + ASSERT_EQ(rtc_video_decoder_adapter_->Decode(second_input_image, false, 0), + WEBRTC_VIDEO_CODEC_OK); FinishDecode(1); media_thread_.FlushForTesting(); } @@ -379,7 +377,7 @@ // Set Initialize() to fail. EXPECT_CALL(*video_decoder_, Initialize(_, _, _, _, _, _)) .WillOnce(media::RunCallback<3>(false)); - ASSERT_EQ(rtc_video_decoder_adapter_->Decode(input_image, false, nullptr, 0), + ASSERT_EQ(rtc_video_decoder_adapter_->Decode(input_image, false, 0), WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE); } @@ -396,7 +394,7 @@ // Decode() is expected to be called for EOS flush, set to fail. EXPECT_CALL(*video_decoder_, Decode(_, _)) .WillOnce(media::RunCallback<1>(media::DecodeStatus::ABORTED)); - ASSERT_EQ(rtc_video_decoder_adapter_->Decode(input_image, false, nullptr, 0), + ASSERT_EQ(rtc_video_decoder_adapter_->Decode(input_image, false, 0), WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE); }
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_factory.cc b/content/renderer/media/webrtc/rtc_video_decoder_factory.cc index db9e4a4..0e5c4803 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_factory.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder_factory.cc
@@ -128,10 +128,8 @@ int32_t Release() override { return decoder_->Release(); } int32_t Decode(const webrtc::EncodedImage& input_image, bool missing_frames, - const webrtc::CodecSpecificInfo* codec_specific_info, int64_t render_time_ms) override { - return decoder_->Decode(input_image, missing_frames, codec_specific_info, - render_time_ms); + return decoder_->Decode(input_image, missing_frames, render_time_ms); } bool PrefersLateDecoding() const override { return decoder_->PrefersLateDecoding();
diff --git a/content/renderer/media/webrtc/rtc_video_decoder_unittest.cc b/content/renderer/media/webrtc/rtc_video_decoder_unittest.cc index 9cdf2c5..0e47914 100644 --- a/content/renderer/media/webrtc/rtc_video_decoder_unittest.cc +++ b/content/renderer/media/webrtc/rtc_video_decoder_unittest.cc
@@ -217,7 +217,7 @@ CreateDecoder(webrtc::kVideoCodecVP8); webrtc::EncodedImage input_image; EXPECT_EQ(WEBRTC_VIDEO_CODEC_UNINITIALIZED, - rtc_decoder_->Decode(input_image, false, nullptr, 0)); + rtc_decoder_->Decode(input_image, false, 0)); } TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnIncompleteFrame) { @@ -226,7 +226,7 @@ webrtc::EncodedImage input_image; input_image._completeFrame = false; EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, - rtc_decoder_->Decode(input_image, false, nullptr, 0)); + rtc_decoder_->Decode(input_image, false, 0)); } TEST_F(RTCVideoDecoderTest, DecodeReturnsErrorOnMissingFrames) { @@ -235,9 +235,8 @@ webrtc::EncodedImage input_image; input_image._completeFrame = true; bool missingFrames = true; - EXPECT_EQ( - WEBRTC_VIDEO_CODEC_ERROR, - rtc_decoder_->Decode(input_image, missingFrames, nullptr, 0)); + EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, + rtc_decoder_->Decode(input_image, missingFrames, 0)); } TEST_F(RTCVideoDecoderTest, FallBackToSoftwareOnVp9Svc) { @@ -248,14 +247,10 @@ CreateDecoder(webrtc::kVideoCodecVP9); Initialize(); - webrtc::CodecSpecificInfo codec_specific_info; - codec_specific_info.codecType = webrtc::kVideoCodecVP9; - codec_specific_info.codecSpecific.VP9.ss_data_available = true; - codec_specific_info.codecSpecific.VP9.num_spatial_layers = 2; - webrtc::EncodedImage input_image; + input_image.SetSpatialIndex(1); EXPECT_EQ(WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE, - rtc_decoder_->Decode(input_image, false, &codec_specific_info, 0)); + rtc_decoder_->Decode(input_image, false, 0)); } TEST_F(RTCVideoDecoderTest, ReleaseReturnsOk) { @@ -373,7 +368,7 @@ input_image.set_buffer(buffer, sizeof(buffer)); input_image.set_size(sizeof(buffer)); EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, - rtc_decoder_->Decode(input_image, false, nullptr, 0)); + rtc_decoder_->Decode(input_image, false, 0)); RunUntilIdle(); // Notify the decoder about a platform error. @@ -384,13 +379,13 @@ // Expect decode call to reset decoder, and set up a new VDA to track it. SetUpResetVDA(); EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, - rtc_decoder_->Decode(input_image, false, nullptr, 0)); + rtc_decoder_->Decode(input_image, false, 0)); EXPECT_EQ(1, rtc_decoder_->GetVDAErrorCounterForTesting()); // Decoder expects a frame with size after reset, so drops any other frames. // However, we should still increment the error counter. EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, - rtc_decoder_->Decode(input_image, false, nullptr, 0)); + rtc_decoder_->Decode(input_image, false, 0)); EXPECT_EQ(2, rtc_decoder_->GetVDAErrorCounterForTesting()); } @@ -415,8 +410,7 @@ const uint32_t kMaxNumDecodeRequests = 100; uint32_t i = 0; while (i++ < kMaxNumDecodeRequests) { - const int32_t result = - rtc_decoder_->Decode(input_image, false, nullptr, 0); + const int32_t result = rtc_decoder_->Decode(input_image, false, 0); RunUntilIdle(); if (result == WEBRTC_VIDEO_CODEC_OK) EXPECT_EQ(0, rtc_decoder_->GetVDAErrorCounterForTesting()); @@ -450,7 +444,7 @@ input_image.set_size(sizeof(buffer)); const int kNumDecodeRequests = 3; for (int i = 0; i < kNumDecodeRequests; i++) { - const int32_t result = rtc_decoder_->Decode(input_image, false, nullptr, 0); + const int32_t result = rtc_decoder_->Decode(input_image, false, 0); RunUntilIdle(); EXPECT_EQ(WEBRTC_VIDEO_CODEC_ERROR, result); EXPECT_EQ(i + 1, rtc_decoder_->GetVDAErrorCounterForTesting()); @@ -471,16 +465,14 @@ input_image.set_buffer(buffer, sizeof(buffer)); input_image.set_size(sizeof(buffer)); EXPECT_CALL(*mock_vda_, Decode(_)).Times(1); - EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, - rtc_decoder_->Decode(input_image, false, nullptr, 0)); + EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, rtc_decoder_->Decode(input_image, false, 0)); RunUntilIdle(); // InitDecode and Decode after Release should succeed. EXPECT_CALL(*mock_vda_, Reset()).Times(1); rtc_decoder_->Release(); Initialize(); - EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, - rtc_decoder_->Decode(input_image, false, nullptr, 0)); + EXPECT_EQ(WEBRTC_VIDEO_CODEC_OK, rtc_decoder_->Decode(input_image, false, 0)); } INSTANTIATE_TEST_SUITE_P(CodecProfiles,
diff --git a/content/renderer/media_recorder/media_recorder_handler.cc b/content/renderer/media_recorder/media_recorder_handler.cc index 7d5c614..1146447 100644 --- a/content/renderer/media_recorder/media_recorder_handler.cc +++ b/content/renderer/media_recorder/media_recorder_handler.cc
@@ -331,7 +331,8 @@ video_recorder->Pause(); for (const auto& audio_recorder : audio_recorders_) audio_recorder->Pause(); - webm_muxer_->Pause(); + if (webm_muxer_) + webm_muxer_->Pause(); } void MediaRecorderHandler::Resume() {
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc index 0afe87b..ef41d7f 100644 --- a/content/renderer/render_frame_impl.cc +++ b/content/renderer/render_frame_impl.cc
@@ -4045,7 +4045,7 @@ blink::mojom::RendererPreferenceWatcherPtr watcher; blink::mojom::RendererPreferenceWatcherRequest watcher_request = mojo::MakeRequest(&watcher); - render_view()->RegisterRendererPreferenceWatcherForWorker(std::move(watcher)); + render_view()->RegisterRendererPreferenceWatcher(std::move(watcher)); scoped_refptr<WebWorkerFetchContextImpl> worker_fetch_context = WebWorkerFetchContextImpl::Create( @@ -4078,7 +4078,7 @@ blink::mojom::RendererPreferenceWatcherPtr watcher; blink::mojom::RendererPreferenceWatcherRequest watcher_request = mojo::MakeRequest(&watcher); - render_view()->RegisterRendererPreferenceWatcherForWorker(std::move(watcher)); + render_view()->RegisterRendererPreferenceWatcher(std::move(watcher)); scoped_refptr<WebWorkerFetchContextImpl> worker_fetch_context = static_cast<DedicatedWorkerHostFactoryClient*>(factory_client)
diff --git a/content/renderer/render_view_impl.cc b/content/renderer/render_view_impl.cc index 28bce0c2..3e328da 100644 --- a/content/renderer/render_view_impl.cc +++ b/content/renderer/render_view_impl.cc
@@ -1744,7 +1744,7 @@ history_navigation_virtual_time_pauser_.UnpauseVirtualTime(); } -void RenderViewImpl::RegisterRendererPreferenceWatcherForWorker( +void RenderViewImpl::RegisterRendererPreferenceWatcher( blink::mojom::RendererPreferenceWatcherPtr watcher) { renderer_preference_watchers_.AddPtr(std::move(watcher)); }
diff --git a/content/renderer/render_view_impl.h b/content/renderer/render_view_impl.h index 89a93e1..ddb93ca 100644 --- a/content/renderer/render_view_impl.h +++ b/content/renderer/render_view_impl.h
@@ -215,7 +215,7 @@ // Registers a watcher to observe changes in the // blink::mojom::RendererPreferences. - void RegisterRendererPreferenceWatcherForWorker( + void RegisterRendererPreferenceWatcher( blink::mojom::RendererPreferenceWatcherPtr watcher); // IPC::Listener implementation (via RenderWidget inheritance).
diff --git a/content/shell/browser/shell_browser_main_parts.cc b/content/shell/browser/shell_browser_main_parts.cc index da56c7036..266b1e0 100644 --- a/content/shell/browser/shell_browser_main_parts.cc +++ b/content/shell/browser/shell_browser_main_parts.cc
@@ -116,7 +116,7 @@ void ShellBrowserMainParts::PostMainMessageLoopStart() { #if defined(OS_CHROMEOS) chromeos::DBusThreadManager::Initialize(); - bluez::BluezDBusManager::Initialize(); + bluez::BluezDBusManager::InitializeFake(); #elif defined(OS_LINUX) bluez::DBusBluezManagerWrapperLinux::Initialize(); #endif
diff --git a/content/test/BUILD.gn b/content/test/BUILD.gn index 441f483..227fc59f 100644 --- a/content/test/BUILD.gn +++ b/content/test/BUILD.gn
@@ -1788,7 +1788,6 @@ "../renderer/input/main_thread_event_queue_unittest.cc", "../renderer/loader/navigation_body_loader_unittest.cc", "../renderer/loader/resource_dispatcher_unittest.cc", - "../renderer/loader/shared_memory_data_consumer_handle_unittest.cc", "../renderer/loader/sync_load_context_unittest.cc", "../renderer/loader/test_request_peer.cc", "../renderer/loader/test_request_peer.h",
diff --git a/content/test/data/sxg/ca.cnf b/content/test/data/sxg/ca.cnf new file mode 100644 index 0000000..04ff0be --- /dev/null +++ b/content/test/data/sxg/ca.cnf
@@ -0,0 +1,33 @@ +[ca] +default_ca = CA_root +preserve = yes + +[CA_root] +dir = out +new_certs_dir = $dir +database = $dir/index.txt +serial = $dir/serial +certificate = ../../../../net/data/ssl/certificates/root_ca_cert.pem +private_key = ../../../../net/data/ssl/certificates/root_ca_cert.pem +default_md = sha256 +unique_subject = no +policy = policy_anything + +[sxg_cert] +basicConstraints = CA:FALSE +# OID required for sxg since d54c469 +1.3.6.1.4.1.11129.2.1.22 = ASN1:NULL +keyUsage = nonRepudiation, digitalSignature, keyEncipherment +subjectKeyIdentifier = hash +authorityKeyIdentifier = keyid,issuer +subjectAltName=DNS:test.example.org + +[policy_anything] +# Default signing policy +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = optional +emailAddress = optional
diff --git a/content/test/data/sxg/generate-test-certs.sh b/content/test/data/sxg/generate-test-certs.sh index 3d2021f..2b9d6ec39 100755 --- a/content/test/data/sxg/generate-test-certs.sh +++ b/content/test/data/sxg/generate-test-certs.sh
@@ -13,20 +13,54 @@ base64 } +rm -rf out +mkdir out +/bin/sh -c "echo 01 > out/serial" +touch out/index.txt + # Generate a "secp256r1 (== prime256v1) ecdsa with sha256" key/cert pair openssl ecparam -out prime256v1.key -name prime256v1 -genkey openssl req -new -sha256 -key prime256v1.key -out prime256v1-sha256.csr \ -subj '/CN=test.example.org/O=Test/C=US' -openssl x509 -req -days 360 -in prime256v1-sha256.csr \ - -CA ../../../../net/data/ssl/certificates/root_ca_cert.pem \ - -out prime256v1-sha256.public.pem -set_serial 1 \ - -extfile x509.ext +# Generate a certificate. This will be rejected after 2019-08-01, because +# the validity period is more than 90 days. +openssl ca -batch \ + -config ca.cnf \ + -extensions sxg_cert \ + -startdate 190101000000Z \ + -enddate 200101000000Z \ + -in prime256v1-sha256.csr \ + -out prime256v1-sha256.public.pem -openssl x509 -req -days 360 -in prime256v1-sha256.csr \ - -CA ../../../../net/data/ssl/certificates/root_ca_cert.pem \ - -out prime256v1-sha256-noext.public.pem -set_serial 1 +# Generate a certificate without CanSignHttpExchangesDraft extension. +openssl ca -batch \ + -config ca.cnf \ + -startdate 190101000000Z \ + -enddate 200101000000Z \ + -in prime256v1-sha256.csr \ + -out prime256v1-sha256-noext.public.pem + +# Generate a certificate whose validity period starts at 2019-05-01 and +# valid for 91 days. +openssl ca -batch \ + -config ca.cnf \ + -extensions sxg_cert \ + -startdate 190501000000Z \ + -enddate 190731000000Z \ + -in prime256v1-sha256.csr \ + -out prime256v1-sha256-validity-too-long.public.pem + +# Generate a certificate whose validity period starts at 2019-06-01 and +# valid for 90 days. +openssl ca -batch \ + -config ca.cnf \ + -extensions sxg_cert \ + -startdate 190601000000Z \ + -enddate 190830000000Z \ + -in prime256v1-sha256.csr \ + -out prime256v1-sha256-valid-for-90-days.public.pem # Generate a "secp384r1 ecdsa with sha256" key/cert pair for negative test openssl ecparam -out secp384r1.key -name secp384r1 -genkey @@ -34,9 +68,14 @@ openssl req -new -sha256 -key secp384r1.key -out secp384r1-sha256.csr \ --subj '/CN=test.example.org/O=Test/C=US' -openssl x509 -req -days 360 -in secp384r1-sha256.csr \ - -CA ../../../../net/data/ssl/certificates/root_ca_cert.pem \ - -out secp384r1-sha256.public.pem -set_serial 1 +# Generate a certificate with the secp384r1-sha256 key. +openssl ca -batch \ + -config ca.cnf \ + -extensions sxg_cert \ + -startdate 190101000000Z \ + -enddate 200101000000Z \ + -in secp384r1-sha256.csr \ + -out secp384r1-sha256.public.pem echo echo "Update the test certs in signed_exchange_signature_verifier_unittest.cc"
diff --git a/content/test/data/sxg/generate-test-sxgs.sh b/content/test/data/sxg/generate-test-sxgs.sh index e6823f9..5fda050 100755 --- a/content/test/data/sxg/generate-test-sxgs.sh +++ b/content/test/data/sxg/generate-test-sxgs.sh
@@ -5,6 +5,7 @@ # found in the LICENSE file. variants_header=variants-04 variant_key_header=variant-key-04 +signature_date=2019-07-28T00:00:00Z set -e @@ -31,6 +32,18 @@ gen-certurl -pem prime256v1-sha256.public.pem \ -ocsp $tmpdir/ocsp -sctDir $sctdir > test.example.org.public.pem.cbor +# Generate the certificate chain of "*.example.org", whose validity period is +# more than 90 days. +gen-certurl -pem prime256v1-sha256-validity-too-long.public.pem \ + -ocsp $tmpdir/ocsp -sctDir $sctdir \ + > test.example.org-validity-too-long.public.pem.cbor + +# Generate the certificate chain of "*.example.org", whose validity period is +# exactly 90 days. +gen-certurl -pem prime256v1-sha256-valid-for-90-days.public.pem \ + -ocsp $tmpdir/ocsp -sctDir $sctdir \ + > test.example.org-valid-for-90-days.public.pem.cbor + # Generate the certificate chain of "*.example.org", without # CanSignHttpExchangesDraft extension. gen-certurl -pem prime256v1-sha256-noext.public.pem \ @@ -46,7 +59,8 @@ -certUrl https://cert.example.org/cert.msg \ -validityUrl https://test.example.org/resource.validity.msg \ -privateKey prime256v1.key \ - -date 2018-03-12T05:53:20Z \ + -date $signature_date \ + -expire 168h \ -o test.example.org_test.sxg \ -miRecordSize 100 @@ -81,7 +95,8 @@ -certUrl https://cert.example.org/cert.msg \ -validityUrl https://test.example.org/resource.validity.msg \ -privateKey prime256v1.key \ - -date 2018-03-12T05:53:20Z \ + -date $signature_date \ + -expire 168h \ -o - \ -miRecordSize 32 | xxd -p | @@ -99,10 +114,43 @@ -certUrl https://cert.example.org/cert.msg \ -validityUrl https://test.example.org/resource.validity.msg \ -privateKey prime256v1.key \ - -date 2018-03-12T05:53:20Z \ + -date $signature_date \ + -expire 168h \ -o test.example.org_noext_test.sxg \ -miRecordSize 100 +# Generate the signed exchange file whose certificate's validity period is more +# than 90 days. +gen-signedexchange \ + -version 1b3 \ + -uri https://test.example.org/test/ \ + -status 200 \ + -content test.html \ + -certificate prime256v1-sha256-validity-too-long.public.pem \ + -certUrl https://cert.example.org/cert.msg \ + -validityUrl https://test.example.org/resource.validity.msg \ + -privateKey prime256v1.key \ + -date $signature_date \ + -expire 168h \ + -o test.example.org_cert_validity_too_long.sxg \ + -miRecordSize 100 + +# Generate the signed exchange file whose certificate's validity period is +# exactly 90 days. +gen-signedexchange \ + -version 1b3 \ + -uri https://test.example.org/test/ \ + -status 200 \ + -content test.html \ + -certificate prime256v1-sha256-valid-for-90-days.public.pem \ + -certUrl https://cert.example.org/cert.msg \ + -validityUrl https://test.example.org/resource.validity.msg \ + -privateKey prime256v1.key \ + -date $signature_date \ + -expire 168h \ + -o test.example.org_cert_valid_for_90_days.sxg \ + -miRecordSize 100 + # Generate the signed exchange file with invalid URL. gen-signedexchange \ -version 1b3 \ @@ -113,7 +161,8 @@ -certUrl https://cert.example.org/cert.msg \ -validityUrl https://test.example.com/resource.validity.msg \ -privateKey prime256v1.key \ - -date 2018-03-12T05:53:20Z \ + -date $signature_date \ + -expire 168h \ -o test.example.com_invalid_test.sxg \ -miRecordSize 100 @@ -128,7 +177,8 @@ -validityUrl https://test.example.org/resource.validity.msg \ -privateKey prime256v1.key \ -responseHeader 'Content-Type: text/plain; charset=iso-8859-1' \ - -date 2018-03-12T05:53:20Z \ + -date $signature_date \ + -expire 168h \ -o test.example.org_hello.txt.sxg # Generate the signed exchange whose content is gzip-encoded. @@ -143,7 +193,8 @@ -validityUrl https://test.example.org/resource.validity.msg \ -privateKey prime256v1.key \ -responseHeader 'Content-Encoding: gzip' \ - -date 2018-03-12T05:53:20Z \ + -date $signature_date \ + -expire 168h \ -o test.example.org_test.html.gz.sxg # Generate the signed exchange with variants / variant-key headers. @@ -156,7 +207,8 @@ -certUrl https://cert.example.org/cert.msg \ -validityUrl https://test.example.org/resource.validity.msg \ -privateKey prime256v1.key \ - -date 2018-03-12T05:53:20Z \ + -date $signature_date \ + -expire 168h \ -responseHeader "${variants_header}: accept-language;en;fr" \ -responseHeader "${variant_key_header}: fr" \ -o test.example.org_fr_variant.sxg \
diff --git a/content/test/data/sxg/prime256v1-sha256-noext.public.pem b/content/test/data/sxg/prime256v1-sha256-noext.public.pem index caa42f5b..e5472ca7 100644 --- a/content/test/data/sxg/prime256v1-sha256-noext.public.pem +++ b/content/test/data/sxg/prime256v1-sha256-noext.public.pem
@@ -1,15 +1,52 @@ +Certificate: + Data: + Version: 1 (0x0) + Serial Number: 2 (0x2) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA + Validity + Not Before: Jan 1 00:00:00 2019 GMT + Not After : Jan 1 00:00:00 2020 GMT + Subject: CN=test.example.org, O=Test, C=US + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (256 bit) + pub: + 04:48:a2:35:4e:57:f1:45:7c:1d:8d:1e:f3:de:6a: + d0:81:01:c0:4a:87:14:92:cc:28:11:fa:bf:a4:51: + dc:76:48:a1:24:48:39:87:7b:8b:3e:6c:81:84:63: + b2:aa:f5:6f:bc:e3:d0:17:5e:14:a3:16:18:1f:21: + c8:b0:39:29:a9 + ASN1 OID: prime256v1 + NIST CURVE: P-256 + Signature Algorithm: sha256WithRSAEncryption + 6c:d3:91:ee:a0:e9:e3:b6:75:ab:30:8b:60:b8:49:6d:7e:04: + 5e:67:df:15:6f:33:21:7e:50:ac:70:1d:95:9b:d3:e7:02:0c: + 17:88:d0:a5:f6:b4:ca:08:af:97:99:5f:83:89:d7:d7:03:ca: + 42:c9:aa:a7:ef:ed:40:f3:c5:d4:7b:ee:77:e4:78:d3:7d:fd: + ee:7a:ec:ff:2b:3b:38:d2:df:d0:d8:d5:3f:a8:30:24:7b:17: + ff:ae:51:f3:5b:1b:46:e2:a8:f3:54:a5:88:09:0a:d8:65:a3: + 7e:82:96:4c:27:39:92:af:24:12:72:58:08:40:c8:51:3d:d7: + ac:7e:4b:b9:a0:b8:02:c8:4f:7f:e6:e7:4e:e6:09:dc:cc:54: + 5f:15:bb:d3:be:28:45:63:a4:4e:3f:69:a3:29:b5:d4:b8:17: + 0a:01:1f:81:b1:67:86:b8:6c:ba:c8:30:58:22:2c:51:79:f0: + 1b:72:33:25:56:e2:c8:e4:71:8f:9d:a2:c5:69:9a:33:45:8e: + fc:51:92:4d:d4:b7:5b:25:b4:5f:8d:50:ec:ed:9e:37:b5:39: + a6:a2:d9:bc:e2:38:aa:23:60:fa:fc:0e:04:24:22:4e:1f:fc: + c8:c1:68:67:16:53:46:e1:51:11:39:8e:48:3a:27:6a:47:3a: + ab:27:de:ee -----BEGIN CERTIFICATE----- -MIICQzCCASsCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV +MIICQzCCASsCAQIwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV BAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoM -B1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9vdCBDQTAeFw0xODA2MTMwODM0MDda -Fw0xOTA2MDgwODM0MDdaMDcxGTAXBgNVBAMMEHRlc3QuZXhhbXBsZS5vcmcxDTAL +B1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9vdCBDQTAeFw0xOTAxMDEwMDAwMDBa +Fw0yMDAxMDEwMDAwMDBaMDcxGTAXBgNVBAMMEHRlc3QuZXhhbXBsZS5vcmcxDTAL BgNVBAoMBFRlc3QxCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD -QgAECQYn3HDPPhtMv2hzyjI7E3FU89EjnzTtvLd9OP55GLAsaE/FCTWbx6rKOxF7 -O4jP0N3PsIzr+nT1lIix+HpxujANBgkqhkiG9w0BAQsFAAOCAQEAZz/6HXUHaCIE -BQBgvuDZTFjz1Os7LuYqPdsTJA8VNKts2krPL+KKnlwLe5+BJXdPUOt+uFpiKpnU -JwN9J8HtSE/mOszpHCnAnPLh6nQWJi8FFlF/xlPJ31lhC6xi69r2VpNeA7JbI+zX -fs2qtFwEUqgPlRv0Jkgyn7NFHS2WE8zEAlHyiEXLHSrNb51lGBL3b4+SHCj7z+RW -x7Vbb5C4PfFLmrPnf9+C1D+it7isoiFewwg+xP3Q0hPW+IEDJVB0CMqFjwTU/867 -oKO8iWqks2PD/fRjZHuxy/2Ita9XyMs+sl2GWb9PZq8R9Y0EuZp+INLtMKrwCt6N -j7Obp1tX0Q== +QgAESKI1TlfxRXwdjR7z3mrQgQHASocUkswoEfq/pFHcdkihJEg5h3uLPmyBhGOy +qvVvvOPQF14UoxYYHyHIsDkpqTANBgkqhkiG9w0BAQsFAAOCAQEAbNOR7qDp47Z1 +qzCLYLhJbX4EXmffFW8zIX5QrHAdlZvT5wIMF4jQpfa0ygivl5lfg4nX1wPKQsmq +p+/tQPPF1Hvud+R403397nrs/ys7ONLf0NjVP6gwJHsX/65R81sbRuKo81SliAkK +2GWjfoKWTCc5kq8kEnJYCEDIUT3XrH5LuaC4AshPf+bnTuYJ3MxUXxW7074oRWOk +Tj9poym11LgXCgEfgbFnhrhsusgwWCIsUXnwG3IzJVbiyORxj52ixWmaM0WO/FGS +TdS3WyW0X41Q7O2eN7U5pqLZvOI4qiNg+vwOBCQiTh/8yMFoZxZTRuFRETmOSDon +akc6qyfe7g== -----END CERTIFICATE-----
diff --git a/content/test/data/sxg/prime256v1-sha256-valid-for-90-days.public.pem b/content/test/data/sxg/prime256v1-sha256-valid-for-90-days.public.pem new file mode 100644 index 0000000..abc34c8a --- /dev/null +++ b/content/test/data/sxg/prime256v1-sha256-valid-for-90-days.public.pem
@@ -0,0 +1,69 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 4 (0x4) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA + Validity + Not Before: Jun 1 00:00:00 2019 GMT + Not After : Aug 30 00:00:00 2019 GMT + Subject: CN=test.example.org, O=Test, C=US + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (256 bit) + pub: + 04:48:a2:35:4e:57:f1:45:7c:1d:8d:1e:f3:de:6a: + d0:81:01:c0:4a:87:14:92:cc:28:11:fa:bf:a4:51: + dc:76:48:a1:24:48:39:87:7b:8b:3e:6c:81:84:63: + b2:aa:f5:6f:bc:e3:d0:17:5e:14:a3:16:18:1f:21: + c8:b0:39:29:a9 + ASN1 OID: prime256v1 + NIST CURVE: P-256 + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + 1.3.6.1.4.1.11129.2.1.22: + .. + X509v3 Key Usage: + Digital Signature, Non Repudiation, Key Encipherment + X509v3 Subject Key Identifier: + D5:7E:AD:00:90:91:B9:38:35:AA:28:44:DD:71:2C:96:E7:42:45:E8 + X509v3 Authority Key Identifier: + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB + + X509v3 Subject Alternative Name: + DNS:test.example.org + Signature Algorithm: sha256WithRSAEncryption + 1c:fb:d3:12:7f:07:66:ee:5b:e8:3b:2d:71:94:ce:1b:fb:a7: + 1a:98:8b:fe:09:b9:89:e0:75:b5:ee:ad:ee:ff:9b:94:b1:8f: + 23:ef:98:c4:12:cb:ee:a7:68:b8:d4:ce:b5:11:2c:78:f5:50: + 1f:dc:03:c9:39:69:42:46:78:7d:38:1a:80:6c:73:11:22:72: + 77:ef:e7:72:32:a8:d3:fa:af:03:74:8b:2b:27:a3:59:c3:22: + 38:dc:19:b2:20:a4:82:74:9a:79:3c:f5:7a:0d:56:33:be:97: + 05:66:fc:ce:87:57:ca:aa:60:13:02:c4:ad:49:04:9b:a1:ef: + b2:b6:b4:7c:de:18:b5:9d:04:e2:89:3a:3c:28:0e:6d:a0:27: + 95:cf:79:2e:73:e6:83:55:76:29:ae:ce:d1:73:05:37:3c:f5: + fe:5d:15:93:9f:38:e9:32:f5:7b:ec:24:ec:75:53:79:2d:30: + 1d:bc:0c:c5:39:b0:bb:58:9c:01:8d:93:ac:14:11:75:09:58: + 9e:05:c4:38:4e:91:13:ad:d8:b1:a4:59:84:ae:04:0e:3e:9d: + 10:35:96:cd:c8:d1:3b:16:27:23:42:e2:96:2f:ea:14:1f:17: + 13:4e:92:26:2d:05:4f:0a:8e:55:2d:cb:73:80:eb:11:96:17: + 75:6c:54:c3 +-----BEGIN CERTIFICATE----- +MIIC1TCCAb2gAwIBAgIBBDANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE5MDYwMTAw +MDAwMFoXDTE5MDgzMDAwMDAwMFowNzEZMBcGA1UEAwwQdGVzdC5leGFtcGxlLm9y +ZzENMAsGA1UECgwEVGVzdDELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjO +PQMBBwNCAARIojVOV/FFfB2NHvPeatCBAcBKhxSSzCgR+r+kUdx2SKEkSDmHe4s+ +bIGEY7Kq9W+849AXXhSjFhgfIciwOSmpo4GKMIGHMAkGA1UdEwQCMAAwEAYKKwYB +BAHWeQIBFgQCBQAwCwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTVfq0AkJG5ODWqKETd +cSyW50JF6DAfBgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAbBgNVHREE +FDASghB0ZXN0LmV4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQAc+9MSfwdm +7lvoOy1xlM4b+6camIv+CbmJ4HW17q3u/5uUsY8j75jEEsvup2i41M61ESx49VAf +3APJOWlCRnh9OBqAbHMRInJ37+dyMqjT+q8DdIsrJ6NZwyI43BmyIKSCdJp5PPV6 +DVYzvpcFZvzOh1fKqmATAsStSQSboe+ytrR83hi1nQTiiTo8KA5toCeVz3kuc+aD +VXYprs7RcwU3PPX+XRWTnzjpMvV77CTsdVN5LTAdvAzFObC7WJwBjZOsFBF1CVie +BcQ4TpETrdixpFmErgQOPp0QNZbNyNE7FicjQuKWL+oUHxcTTpImLQVPCo5VLctz +gOsRlhd1bFTD +-----END CERTIFICATE-----
diff --git a/content/test/data/sxg/prime256v1-sha256-validity-too-long.public.pem b/content/test/data/sxg/prime256v1-sha256-validity-too-long.public.pem new file mode 100644 index 0000000..2ca2247b --- /dev/null +++ b/content/test/data/sxg/prime256v1-sha256-validity-too-long.public.pem
@@ -0,0 +1,69 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 3 (0x3) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA + Validity + Not Before: May 1 00:00:00 2019 GMT + Not After : Jul 31 00:00:00 2019 GMT + Subject: CN=test.example.org, O=Test, C=US + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (256 bit) + pub: + 04:48:a2:35:4e:57:f1:45:7c:1d:8d:1e:f3:de:6a: + d0:81:01:c0:4a:87:14:92:cc:28:11:fa:bf:a4:51: + dc:76:48:a1:24:48:39:87:7b:8b:3e:6c:81:84:63: + b2:aa:f5:6f:bc:e3:d0:17:5e:14:a3:16:18:1f:21: + c8:b0:39:29:a9 + ASN1 OID: prime256v1 + NIST CURVE: P-256 + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + 1.3.6.1.4.1.11129.2.1.22: + .. + X509v3 Key Usage: + Digital Signature, Non Repudiation, Key Encipherment + X509v3 Subject Key Identifier: + D5:7E:AD:00:90:91:B9:38:35:AA:28:44:DD:71:2C:96:E7:42:45:E8 + X509v3 Authority Key Identifier: + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB + + X509v3 Subject Alternative Name: + DNS:test.example.org + Signature Algorithm: sha256WithRSAEncryption + 3a:49:c4:e7:d3:a6:23:60:b5:6f:1f:74:ea:55:da:fb:1e:58: + 93:a8:20:08:2a:f7:64:49:04:b0:a4:5a:bd:e9:2f:8f:de:42: + 3c:1c:4d:db:3d:9c:05:64:35:06:26:33:24:ae:0f:93:ae:4f: + e5:34:c6:8a:0b:17:18:a6:4c:63:bd:72:4c:5b:4a:8c:6c:19: + 12:b9:b3:ca:22:8b:59:68:1c:9b:0e:fe:64:c1:0a:96:c9:16: + 17:b9:ed:a6:45:5d:79:7a:f3:43:4b:d3:85:b6:0a:15:3c:7a: + 4a:f9:51:27:e2:4a:72:b3:a8:42:53:f6:3d:68:9a:df:0e:fd: + a6:e8:53:a6:6b:dd:dc:9a:9d:a4:bc:6c:a5:13:19:ae:c8:83: + 27:47:6f:11:3c:28:78:d6:8e:df:f7:13:0b:69:98:9b:57:90: + 59:60:fd:5e:16:a5:8c:d8:3e:0b:2c:23:47:33:d2:2b:e8:8a: + 46:dd:a3:ac:88:43:1d:08:0d:07:e8:d3:7f:22:37:23:29:25: + a3:01:b9:2a:3d:07:65:00:8c:23:f2:9a:f9:c0:74:f1:32:dc: + 78:f6:35:9c:c6:76:7c:40:b5:3c:9d:4b:c9:40:51:88:2f:be: + 93:10:ce:81:6e:a0:a1:1b:84:7a:a3:3d:9c:3a:02:0e:5c:45: + d2:41:38:91 +-----BEGIN CERTIFICATE----- +MIIC1TCCAb2gAwIBAgIBAzANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE5MDUwMTAw +MDAwMFoXDTE5MDczMTAwMDAwMFowNzEZMBcGA1UEAwwQdGVzdC5leGFtcGxlLm9y +ZzENMAsGA1UECgwEVGVzdDELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjO +PQMBBwNCAARIojVOV/FFfB2NHvPeatCBAcBKhxSSzCgR+r+kUdx2SKEkSDmHe4s+ +bIGEY7Kq9W+849AXXhSjFhgfIciwOSmpo4GKMIGHMAkGA1UdEwQCMAAwEAYKKwYB +BAHWeQIBFgQCBQAwCwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTVfq0AkJG5ODWqKETd +cSyW50JF6DAfBgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAbBgNVHREE +FDASghB0ZXN0LmV4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQA6ScTn06Yj +YLVvH3TqVdr7HliTqCAIKvdkSQSwpFq96S+P3kI8HE3bPZwFZDUGJjMkrg+Trk/l +NMaKCxcYpkxjvXJMW0qMbBkSubPKIotZaBybDv5kwQqWyRYXue2mRV15evNDS9OF +tgoVPHpK+VEn4kpys6hCU/Y9aJrfDv2m6FOma93cmp2kvGylExmuyIMnR28RPCh4 +1o7f9xMLaZibV5BZYP1eFqWM2D4LLCNHM9Ir6IpG3aOsiEMdCA0H6NN/IjcjKSWj +AbkqPQdlAIwj8pr5wHTxMtx49jWcxnZ8QLU8nUvJQFGIL76TEM6BbqChG4R6oz2c +OgIOXEXSQTiR +-----END CERTIFICATE-----
diff --git a/content/test/data/sxg/prime256v1-sha256.csr b/content/test/data/sxg/prime256v1-sha256.csr index 7b35e79a..8bc5d53 100644 --- a/content/test/data/sxg/prime256v1-sha256.csr +++ b/content/test/data/sxg/prime256v1-sha256.csr
@@ -1,8 +1,8 @@ -----BEGIN CERTIFICATE REQUEST----- MIHyMIGZAgEAMDcxGTAXBgNVBAMMEHRlc3QuZXhhbXBsZS5vcmcxDTALBgNVBAoM -BFRlc3QxCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECQYn -3HDPPhtMv2hzyjI7E3FU89EjnzTtvLd9OP55GLAsaE/FCTWbx6rKOxF7O4jP0N3P -sIzr+nT1lIix+HpxuqAAMAoGCCqGSM49BAMCA0gAMEUCIFbI69IXFiR89spslIup -fExgyUwh+N/bzLLfqr3u0YqhAiEA+zt5SwcyU/L7nG1R46bBPirrB1jeEv4q6NdK -mBFSMjQ= +BFRlc3QxCzAJBgNVBAYTAlVTMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESKI1 +TlfxRXwdjR7z3mrQgQHASocUkswoEfq/pFHcdkihJEg5h3uLPmyBhGOyqvVvvOPQ +F14UoxYYHyHIsDkpqaAAMAoGCCqGSM49BAMCA0gAMEUCIQCcW9PphIdwkTuFpGYT +VP8E5ZVAyFrK+q0VMk1sfMBlHwIgFSZUimkG62ucX2SY9Yc4vSII4c5xYjezkBI+ +zUJCjD4= -----END CERTIFICATE REQUEST-----
diff --git a/content/test/data/sxg/prime256v1-sha256.public.pem b/content/test/data/sxg/prime256v1-sha256.public.pem index be9cf64..f8b72c2 100644 --- a/content/test/data/sxg/prime256v1-sha256.public.pem +++ b/content/test/data/sxg/prime256v1-sha256.public.pem
@@ -1,18 +1,69 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 1 (0x1) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA + Validity + Not Before: Jan 1 00:00:00 2019 GMT + Not After : Jan 1 00:00:00 2020 GMT + Subject: CN=test.example.org, O=Test, C=US + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (256 bit) + pub: + 04:48:a2:35:4e:57:f1:45:7c:1d:8d:1e:f3:de:6a: + d0:81:01:c0:4a:87:14:92:cc:28:11:fa:bf:a4:51: + dc:76:48:a1:24:48:39:87:7b:8b:3e:6c:81:84:63: + b2:aa:f5:6f:bc:e3:d0:17:5e:14:a3:16:18:1f:21: + c8:b0:39:29:a9 + ASN1 OID: prime256v1 + NIST CURVE: P-256 + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + 1.3.6.1.4.1.11129.2.1.22: + .. + X509v3 Key Usage: + Digital Signature, Non Repudiation, Key Encipherment + X509v3 Subject Key Identifier: + D5:7E:AD:00:90:91:B9:38:35:AA:28:44:DD:71:2C:96:E7:42:45:E8 + X509v3 Authority Key Identifier: + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB + + X509v3 Subject Alternative Name: + DNS:test.example.org + Signature Algorithm: sha256WithRSAEncryption + 37:e9:47:28:9e:9f:6f:fe:46:58:22:6b:aa:7c:2b:67:ff:ca: + 37:f3:40:44:01:cb:1b:81:c0:dc:8f:cc:fe:c9:6a:22:e6:65: + 65:73:e2:a1:e9:34:89:aa:91:16:1a:a6:5a:c2:9b:7a:70:17: + b4:d6:f8:73:b6:f1:98:c7:c3:f7:0f:f1:cc:5e:7a:66:c8:7c: + 53:67:e9:3c:5b:45:88:67:4f:f3:3b:96:62:c0:b6:67:03:5d: + 28:63:19:ec:2b:18:83:fd:ac:81:f3:95:b3:8f:a9:28:01:9d: + a0:7f:34:d5:f3:ee:f2:b9:a1:9f:12:70:34:3d:20:a5:a2:80: + 5b:4d:7a:84:32:01:d2:d8:73:49:80:85:9c:09:bd:c1:b1:76: + 51:6c:05:22:bf:18:40:ad:05:89:e5:54:13:e7:49:cb:91:b2: + 17:a8:4a:98:f7:86:44:ce:7e:d7:39:f4:ac:ce:f6:20:33:90: + 5c:41:08:ba:89:a8:93:b5:c9:3f:ad:c5:bb:4e:66:5c:b3:c1: + 13:cc:de:b6:3c:54:fb:8d:32:5b:d5:ce:67:b2:1a:70:c1:7c: + 35:2f:b0:3f:79:07:cf:6e:63:64:21:c0:f4:04:bf:fa:2e:00: + f0:a2:1b:69:f6:8c:8b:27:1d:84:c4:a6:86:49:da:f3:9d:50: + d5:eb:fa:a9 -----BEGIN CERTIFICATE----- MIIC1TCCAb2gAwIBAgIBATANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G -A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE4MDYyODA1 -MTUzMFoXDTE5MDYyMzA1MTUzMFowNzEZMBcGA1UEAwwQdGVzdC5leGFtcGxlLm9y +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE5MDEwMTAw +MDAwMFoXDTIwMDEwMTAwMDAwMFowNzEZMBcGA1UEAwwQdGVzdC5leGFtcGxlLm9y ZzENMAsGA1UECgwEVGVzdDELMAkGA1UEBhMCVVMwWTATBgcqhkjOPQIBBggqhkjO -PQMBBwNCAAQJBifccM8+G0y/aHPKMjsTcVTz0SOfNO28t304/nkYsCxoT8UJNZvH -qso7EXs7iM/Q3c+wjOv6dPWUiLH4enG6o4GKMIGHMAkGA1UdEwQCMAAwEAYKKwYB -BAHWeQIBFgQCBQAwCwYDVR0PBAQDAgXgMB0GA1UdDgQWBBS6dTuFdAI6uylsw3cy -H3FXfh9g+jAfBgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAbBgNVHREE -FDASghB0ZXN0LmV4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQCi/l1E+JDK -/g3cLa5GD8vthZJuFwYEF6lGaAj1RtZ+UwbtRs1vnkJbEpLD1xX5rKXAdWT5QI99 -yK6gXbbicaJmw0KjeE0qizTT1oEfavQu7FtJZ4gfBjIHLsk8PVqHI3t8hf/pJwOd -n+E79k3qQ2w1IeeVFZXJfnjhOsxHp2NTbeY+ZnbWsTSyUiL81n5GkuyKNDeZkoXi -x5M6kp+6ZZJHJvLQFp4CqhU+wvM2lvP5mYYDcSlRnlti+N8xwDUb/yGR0UdNx76K -7uFRoc8R1W8e4kFvU2NHkrtVbaLL6m+/vHE2LehVPh0QQT34Fv0QugYm+iYNToCT -k5bUo19UY4w3 +PQMBBwNCAARIojVOV/FFfB2NHvPeatCBAcBKhxSSzCgR+r+kUdx2SKEkSDmHe4s+ +bIGEY7Kq9W+849AXXhSjFhgfIciwOSmpo4GKMIGHMAkGA1UdEwQCMAAwEAYKKwYB +BAHWeQIBFgQCBQAwCwYDVR0PBAQDAgXgMB0GA1UdDgQWBBTVfq0AkJG5ODWqKETd +cSyW50JF6DAfBgNVHSMEGDAWgBSbJguKmKm7HbkfHOMaQDPtjheIqzAbBgNVHREE +FDASghB0ZXN0LmV4YW1wbGUub3JnMA0GCSqGSIb3DQEBCwUAA4IBAQA36Uconp9v +/kZYImuqfCtn/8o380BEAcsbgcDcj8z+yWoi5mVlc+Kh6TSJqpEWGqZawpt6cBe0 +1vhztvGYx8P3D/HMXnpmyHxTZ+k8W0WIZ0/zO5ZiwLZnA10oYxnsKxiD/ayB85Wz +j6koAZ2gfzTV8+7yuaGfEnA0PSClooBbTXqEMgHS2HNJgIWcCb3BsXZRbAUivxhA +rQWJ5VQT50nLkbIXqEqY94ZEzn7XOfSszvYgM5BcQQi6iaiTtck/rcW7TmZcs8ET +zN62PFT7jTJb1c5nshpwwXw1L7A/eQfPbmNkIcD0BL/6LgDwohtp9oyLJx2ExKaG +SdrznVDV6/qp -----END CERTIFICATE-----
diff --git a/content/test/data/sxg/prime256v1.key b/content/test/data/sxg/prime256v1.key index ac7a9ee..affaba5 100644 --- a/content/test/data/sxg/prime256v1.key +++ b/content/test/data/sxg/prime256v1.key
@@ -1,8 +1,8 @@ ------BEGIN EC PRIVATE KEY----- -MHcCAQEEIACpZHAwKl6X34eFHbyyU0FhVjxJ2TccdnppCl2Ks+DRoAoGCCqGSM49 -AwEHoUQDQgAECQYn3HDPPhtMv2hzyjI7E3FU89EjnzTtvLd9OP55GLAsaE/FCTWb -x6rKOxF7O4jP0N3PsIzr+nT1lIix+Hpxug== ------END EC PRIVATE KEY----- -----BEGIN EC PARAMETERS----- BggqhkjOPQMBBw== -----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MHcCAQEEIPTxIRVvESqEW+0N6fvuki7VDIVRbm6seOYSTNalynHjoAoGCCqGSM49 +AwEHoUQDQgAESKI1TlfxRXwdjR7z3mrQgQHASocUkswoEfq/pFHcdkihJEg5h3uL +PmyBhGOyqvVvvOPQF14UoxYYHyHIsDkpqQ== +-----END EC PRIVATE KEY-----
diff --git a/content/test/data/sxg/secp384r1-sha256.csr b/content/test/data/sxg/secp384r1-sha256.csr index ced2b2dd..d780d320 100644 --- a/content/test/data/sxg/secp384r1-sha256.csr +++ b/content/test/data/sxg/secp384r1-sha256.csr
@@ -1,9 +1,9 @@ -----BEGIN CERTIFICATE REQUEST----- MIIBLzCBtgIBADA3MRkwFwYDVQQDDBB0ZXN0LmV4YW1wbGUub3JnMQ0wCwYDVQQK -DARUZXN0MQswCQYDVQQGEwJVUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABGCtBT3O -gdlJAztxh0veTy7LPXvNn/EXUAyGRPVD1EjidVCEjk9fY/0iat4MqGPqSifNfC4V -XvssIHR/rSqLDur9ZdqPxH3yEQ4wnzf2klLkI5JEsIMi+tv/evO/uPOs+qAAMAoG -CCqGSM49BAMCA2gAMGUCMQDZAarDLRA7UF7QcV86yR9aCEmE7FRskn9GvZxvQFom -Ip59HDmVpKWqZdJ8rD03JcUCMG1DQgy3A4hzLzshjLM0z9vOE+hmGV5nQpA3AyAR -UmSOVq0NLiISKrN4k5FQG8o1AA== +DARUZXN0MQswCQYDVQQGEwJVUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABFjgkhkQ +DLdVil0D94ShZ6mAV2Va8fI5NlVB9xLwilZvm4bWvBRWdchNIvMn32lwWY9yj5Pw +mihgzrb2kw8d8YKkqLxuoXh12aHpm5UB+uwoIsCPWLXfbYonMS/wPb9dZaAAMAoG +CCqGSM49BAMCA2gAMGUCMCPkBaCE/CODnXaU5qwim06GW+6QWKEfpNOx+ljVQ8D7 +Jhw8NedJppbDpXgkwF5XMAIxANQLVQ79EvbdMOXq9t2eE0Re2y7qMPd33iT8l9DV +ieFM5pYLjq35zI29UZo+cicdsg== -----END CERTIFICATE REQUEST-----
diff --git a/content/test/data/sxg/secp384r1-sha256.public.pem b/content/test/data/sxg/secp384r1-sha256.public.pem index 8429427..ae215ab 100644 --- a/content/test/data/sxg/secp384r1-sha256.public.pem +++ b/content/test/data/sxg/secp384r1-sha256.public.pem
@@ -1,15 +1,71 @@ +Certificate: + Data: + Version: 3 (0x2) + Serial Number: 5 (0x5) + Signature Algorithm: sha256WithRSAEncryption + Issuer: C=US, ST=California, L=Mountain View, O=Test CA, CN=Test Root CA + Validity + Not Before: Jan 1 00:00:00 2019 GMT + Not After : Jan 1 00:00:00 2020 GMT + Subject: CN=test.example.org, O=Test, C=US + Subject Public Key Info: + Public Key Algorithm: id-ecPublicKey + Public-Key: (384 bit) + pub: + 04:58:e0:92:19:10:0c:b7:55:8a:5d:03:f7:84:a1: + 67:a9:80:57:65:5a:f1:f2:39:36:55:41:f7:12:f0: + 8a:56:6f:9b:86:d6:bc:14:56:75:c8:4d:22:f3:27: + df:69:70:59:8f:72:8f:93:f0:9a:28:60:ce:b6:f6: + 93:0f:1d:f1:82:a4:a8:bc:6e:a1:78:75:d9:a1:e9: + 9b:95:01:fa:ec:28:22:c0:8f:58:b5:df:6d:8a:27: + 31:2f:f0:3d:bf:5d:65 + ASN1 OID: secp384r1 + NIST CURVE: P-384 + X509v3 extensions: + X509v3 Basic Constraints: + CA:FALSE + 1.3.6.1.4.1.11129.2.1.22: + .. + X509v3 Key Usage: + Digital Signature, Non Repudiation, Key Encipherment + X509v3 Subject Key Identifier: + 5D:94:AB:AB:83:FC:94:ED:F3:18:E5:86:84:F8:47:DD:DE:6D:6A:20 + X509v3 Authority Key Identifier: + keyid:9B:26:0B:8A:98:A9:BB:1D:B9:1F:1C:E3:1A:40:33:ED:8E:17:88:AB + + X509v3 Subject Alternative Name: + DNS:test.example.org + Signature Algorithm: sha256WithRSAEncryption + 45:77:27:ce:89:0a:c6:5c:fa:94:b1:cb:5c:40:03:40:67:0d: + 75:11:54:5b:94:55:d0:36:15:1c:fd:1e:0f:53:93:db:e9:89: + 9f:2a:ec:24:30:24:98:5f:1a:be:ff:b5:4e:f1:da:ce:ec:6a: + 84:ae:c7:b6:8d:ae:22:73:67:46:45:63:44:52:3f:01:44:20: + 36:d6:c7:c2:b4:ab:57:2d:2e:6a:02:64:4a:8e:30:ed:d1:bd: + 23:86:4a:b1:6d:36:aa:4c:00:97:c2:7c:37:f6:94:61:12:f4: + 8c:82:6f:aa:ca:33:2f:5c:85:4b:27:39:74:a9:ca:bf:f8:a1: + 7f:49:26:96:f8:72:75:79:ec:e7:e3:ed:01:6b:a8:27:05:1f: + 25:eb:dc:c0:58:3a:26:1d:74:80:3c:1e:cf:34:dd:4a:5b:cc: + 69:fd:09:de:5e:ba:ac:ec:c4:f7:f1:a4:49:5d:2c:b5:48:6c: + 63:9b:fa:b8:5e:2d:2f:64:98:5d:1c:37:df:32:fd:d0:ba:59: + 77:70:be:9c:59:12:be:01:74:d8:99:6c:27:9f:09:7d:0a:68: + 09:6e:19:c8:12:ff:fa:52:7d:fc:a5:4d:94:f2:ec:60:d1:61: + f2:7d:0d:80:a2:60:68:95:0a:2d:73:37:77:00:9f:27:67:62: + 4f:77:ce:b9 -----BEGIN CERTIFICATE----- -MIICYDCCAUgCAQEwDQYJKoZIhvcNAQELBQAwYzELMAkGA1UEBhMCVVMxEzARBgNV -BAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDU1vdW50YWluIFZpZXcxEDAOBgNVBAoM -B1Rlc3QgQ0ExFTATBgNVBAMMDFRlc3QgUm9vdCBDQTAeFw0xODA0MDkwMTUyMzVa -Fw0xOTA0MDQwMTUyMzVaMDcxGTAXBgNVBAMMEHRlc3QuZXhhbXBsZS5vcmcxDTAL -BgNVBAoMBFRlc3QxCzAJBgNVBAYTAlVTMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE -YK0FPc6B2UkDO3GHS95PLss9e82f8RdQDIZE9UPUSOJ1UISOT19j/SJq3gyoY+pK -J818LhVe+ywgdH+tKosO6v1l2o/EffIRDjCfN/aSUuQjkkSwgyL62/9687+486z6 -MA0GCSqGSIb3DQEBCwUAA4IBAQB61Q+/68hsD5OapG+2CDsJI+oR91H+Jv+tRMby -of47O0hJGISuAB9xcFhIcMKwBReODpBmzwSO713NNU/oaG/XysHH1TNZZodTtWD9 -Z1g5AJamfwvFS+ObqzOtyFUdFS4NBAE4lXi5XnHa2hU2Bkm+abVYLqyAGw1kh2ES -DGC2vA1lb2Uy9bgLCYYkZoESjb/JYRQjCmqlwYKOozU7ZbIe3zJPjRWYP1Tuany5 -+rYllWk/DJlMVjs/fbf0jj32vrevCgul43iWMgprOw1ncuK8l5nND/o5aN2mwMDw -Xhe5DP7VATeQq3yGV3ps+rCTHDP6qSHDEWP7DqHQdSsxtI0E +MIIC8jCCAdqgAwIBAgIBBTANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzET +MBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNTW91bnRhaW4gVmlldzEQMA4G +A1UECgwHVGVzdCBDQTEVMBMGA1UEAwwMVGVzdCBSb290IENBMB4XDTE5MDEwMTAw +MDAwMFoXDTIwMDEwMTAwMDAwMFowNzEZMBcGA1UEAwwQdGVzdC5leGFtcGxlLm9y +ZzENMAsGA1UECgwEVGVzdDELMAkGA1UEBhMCVVMwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAARY4JIZEAy3VYpdA/eEoWepgFdlWvHyOTZVQfcS8IpWb5uG1rwUVnXITSLz +J99pcFmPco+T8JooYM629pMPHfGCpKi8bqF4ddmh6ZuVAfrsKCLAj1i1322KJzEv +8D2/XWWjgYowgYcwCQYDVR0TBAIwADAQBgorBgEEAdZ5AgEWBAIFADALBgNVHQ8E +BAMCBeAwHQYDVR0OBBYEFF2Uq6uD/JTt8xjlhoT4R93ebWogMB8GA1UdIwQYMBaA +FJsmC4qYqbsduR8c4xpAM+2OF4irMBsGA1UdEQQUMBKCEHRlc3QuZXhhbXBsZS5v +cmcwDQYJKoZIhvcNAQELBQADggEBAEV3J86JCsZc+pSxy1xAA0BnDXURVFuUVdA2 +FRz9Hg9Tk9vpiZ8q7CQwJJhfGr7/tU7x2s7saoSux7aNriJzZ0ZFY0RSPwFEIDbW +x8K0q1ctLmoCZEqOMO3RvSOGSrFtNqpMAJfCfDf2lGES9IyCb6rKMy9chUsnOXSp +yr/4oX9JJpb4cnV57Ofj7QFrqCcFHyXr3MBYOiYddIA8Hs803UpbzGn9Cd5euqzs +xPfxpEldLLVIbGOb+rheLS9kmF0cN98y/dC6WXdwvpxZEr4BdNiZbCefCX0KaAlu +GcgS//pSffylTZTy7GDRYfJ9DYCiYGiVCi1zN3cAnydnYk93zrk= -----END CERTIFICATE-----
diff --git a/content/test/data/sxg/secp384r1.key b/content/test/data/sxg/secp384r1.key index 38a408a..2fbff09 100644 --- a/content/test/data/sxg/secp384r1.key +++ b/content/test/data/sxg/secp384r1.key
@@ -1,9 +1,9 @@ ------BEGIN EC PRIVATE KEY----- -MIGkAgEBBDArUsDuSllgZ3ZGc7lsemJaeHO6NyttyL2BqGFVb8EDcsmbJlknYdwL -A/msGLdplUqgBwYFK4EEACKhZANiAARgrQU9zoHZSQM7cYdL3k8uyz17zZ/xF1AM -hkT1Q9RI4nVQhI5PX2P9ImreDKhj6konzXwuFV77LCB0f60qiw7q/WXaj8R98hEO -MJ839pJS5COSRLCDIvrb/3rzv7jzrPo= ------END EC PRIVATE KEY----- -----BEGIN EC PARAMETERS----- BgUrgQQAIg== -----END EC PARAMETERS----- +-----BEGIN EC PRIVATE KEY----- +MIGkAgEBBDDypWpUImYKpzyV/SjDEXZ3gvpIPnFJtVcbXmcF/FcLO+zhXYUI/PSU +GOwbgersFw2gBwYFK4EEACKhZANiAARY4JIZEAy3VYpdA/eEoWepgFdlWvHyOTZV +QfcS8IpWb5uG1rwUVnXITSLzJ99pcFmPco+T8JooYM629pMPHfGCpKi8bqF4ddmh +6ZuVAfrsKCLAj1i1322KJzEv8D2/XWU= +-----END EC PRIVATE KEY-----
diff --git a/content/test/data/sxg/test.example.com_invalid_test.sxg b/content/test/data/sxg/test.example.com_invalid_test.sxg index b63856b..76aa537 100644 --- a/content/test/data/sxg/test.example.com_invalid_test.sxg +++ b/content/test/data/sxg/test.example.com_invalid_test.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org-noext.public.pem.cbor b/content/test/data/sxg/test.example.org-noext.public.pem.cbor index 7238915..eb66085 100644 --- a/content/test/data/sxg/test.example.org-noext.public.pem.cbor +++ b/content/test/data/sxg/test.example.org-noext.public.pem.cbor Binary files differ
diff --git a/content/test/data/sxg/test.example.org-valid-for-90-days.public.pem.cbor b/content/test/data/sxg/test.example.org-valid-for-90-days.public.pem.cbor new file mode 100644 index 0000000..ffd7de0 --- /dev/null +++ b/content/test/data/sxg/test.example.org-valid-for-90-days.public.pem.cbor Binary files differ
diff --git a/content/test/data/sxg/test.example.org-validity-too-long.public.pem.cbor b/content/test/data/sxg/test.example.org-validity-too-long.public.pem.cbor new file mode 100644 index 0000000..5e23e85 --- /dev/null +++ b/content/test/data/sxg/test.example.org-validity-too-long.public.pem.cbor Binary files differ
diff --git a/content/test/data/sxg/test.example.org.public.pem.cbor b/content/test/data/sxg/test.example.org.public.pem.cbor index 33d8d888..c773217 100644 --- a/content/test/data/sxg/test.example.org.public.pem.cbor +++ b/content/test/data/sxg/test.example.org.public.pem.cbor Binary files differ
diff --git a/content/test/data/sxg/test.example.org_cert_valid_for_90_days.sxg b/content/test/data/sxg/test.example.org_cert_valid_for_90_days.sxg new file mode 100644 index 0000000..073e220f --- /dev/null +++ b/content/test/data/sxg/test.example.org_cert_valid_for_90_days.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_cert_validity_too_long.sxg b/content/test/data/sxg/test.example.org_cert_validity_too_long.sxg new file mode 100644 index 0000000..c757e9a0 --- /dev/null +++ b/content/test/data/sxg/test.example.org_cert_validity_too_long.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_fr_variant.sxg b/content/test/data/sxg/test.example.org_fr_variant.sxg index 890ef91..46f411e 100644 --- a/content/test/data/sxg/test.example.org_fr_variant.sxg +++ b/content/test/data/sxg/test.example.org_fr_variant.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_hello.txt.sxg b/content/test/data/sxg/test.example.org_hello.txt.sxg index 227dab6d..0b56406 100644 --- a/content/test/data/sxg/test.example.org_hello.txt.sxg +++ b/content/test/data/sxg/test.example.org_hello.txt.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_noext_test.sxg b/content/test/data/sxg/test.example.org_noext_test.sxg index 9439a4c..c3cb7a8e 100644 --- a/content/test/data/sxg/test.example.org_noext_test.sxg +++ b/content/test/data/sxg/test.example.org_noext_test.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test.html.gz.sxg b/content/test/data/sxg/test.example.org_test.html.gz.sxg index be2da64..85e63ea0 100644 --- a/content/test/data/sxg/test.example.org_test.html.gz.sxg +++ b/content/test/data/sxg/test.example.org_test.html.gz.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test.sxg b/content/test/data/sxg/test.example.org_test.sxg index cefc173..3c4a9c0b 100644 --- a/content/test/data/sxg/test.example.org_test.sxg +++ b/content/test/data/sxg/test.example.org_test.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test_bad_mice.sxg b/content/test/data/sxg/test.example.org_test_bad_mice.sxg index 44118063..b4d4d02 100644 --- a/content/test/data/sxg/test.example.org_test_bad_mice.sxg +++ b/content/test/data/sxg/test.example.org_test_bad_mice.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test_download.sxg b/content/test/data/sxg/test.example.org_test_download.sxg index cefc173..3c4a9c0b 100644 --- a/content/test/data/sxg/test.example.org_test_download.sxg +++ b/content/test/data/sxg/test.example.org_test_download.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test_invalid_cbor_header.sxg b/content/test/data/sxg/test.example.org_test_invalid_cbor_header.sxg index 1ab62c91..54f29ce 100644 --- a/content/test/data/sxg/test.example.org_test_invalid_cbor_header.sxg +++ b/content/test/data/sxg/test.example.org_test_invalid_cbor_header.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test_invalid_content_type.sxg b/content/test/data/sxg/test.example.org_test_invalid_content_type.sxg index cefc173..3c4a9c0b 100644 --- a/content/test/data/sxg/test.example.org_test_invalid_content_type.sxg +++ b/content/test/data/sxg/test.example.org_test_invalid_content_type.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test_invalid_magic_string.sxg b/content/test/data/sxg/test.example.org_test_invalid_magic_string.sxg index db141c9..8fef8f9 100644 --- a/content/test/data/sxg/test.example.org_test_invalid_magic_string.sxg +++ b/content/test/data/sxg/test.example.org_test_invalid_magic_string.sxg Binary files differ
diff --git a/content/test/data/sxg/test.example.org_test_missing_nosniff.sxg b/content/test/data/sxg/test.example.org_test_missing_nosniff.sxg index cefc173..3c4a9c0b 100644 --- a/content/test/data/sxg/test.example.org_test_missing_nosniff.sxg +++ b/content/test/data/sxg/test.example.org_test_missing_nosniff.sxg Binary files differ
diff --git a/content/test/data/sxg/x509.ext b/content/test/data/sxg/x509.ext deleted file mode 100644 index 09b90ef2..0000000 --- a/content/test/data/sxg/x509.ext +++ /dev/null
@@ -1,7 +0,0 @@ -basicConstraints = CA:FALSE -# OID required for sxg since d54c469 -1.3.6.1.4.1.11129.2.1.22 = ASN1:NULL -keyUsage = nonRepudiation, digitalSignature, keyEncipherment -subjectKeyIdentifier = hash -authorityKeyIdentifier = keyid,issuer -subjectAltName=DNS:test.example.org
diff --git a/content/test/gpu/gpu_tests/pixel_test_pages.py b/content/test/gpu/gpu_tests/pixel_test_pages.py index 045d4b42..fe316b4c 100644 --- a/content/test/gpu/gpu_tests/pixel_test_pages.py +++ b/content/test/gpu/gpu_tests/pixel_test_pages.py
@@ -139,13 +139,13 @@ 'pixel_background_image.html', base_name + '_BackgroundImage', test_rect=[20, 20, 370, 370], - revision=2), + revision=3), PixelTestPage( 'pixel_canvas2d.html', base_name + '_Canvas2DRedBox', test_rect=[0, 0, 300, 300], - revision=12), + revision=13), PixelTestPage( 'pixel_canvas2d_untagged.html', @@ -163,31 +163,31 @@ 'pixel_webgl_aa_alpha.html', base_name + '_WebGLGreenTriangle_AA_Alpha', test_rect=[0, 0, 300, 300], - revision=8), + revision=9), PixelTestPage( 'pixel_webgl_noaa_alpha.html', base_name + '_WebGLGreenTriangle_NoAA_Alpha', test_rect=[0, 0, 300, 300], - revision=5), + revision=6), PixelTestPage( 'pixel_webgl_aa_noalpha.html', base_name + '_WebGLGreenTriangle_AA_NoAlpha', test_rect=[0, 0, 300, 300], - revision=9), + revision=10), PixelTestPage( 'pixel_webgl_noaa_noalpha.html', base_name + '_WebGLGreenTriangle_NoAA_NoAlpha', test_rect=[0, 0, 300, 300], - revision=5), + revision=6), PixelTestPage( 'pixel_webgl_noalpha_implicit_clear.html', base_name + '_WebGLTransparentGreenTriangle_NoAlpha_ImplicitClear', test_rect=[0, 0, 300, 300], - revision=5), + revision=6), PixelTestPage( 'pixel_webgl_sad_canvas.html', @@ -227,7 +227,7 @@ 'pixel_canvas2d_webgl.html', base_name + '_2DCanvasWebGL', test_rect=[0, 0, 300, 300], - revision=12), + revision=13), PixelTestPage( 'pixel_background.html', @@ -812,7 +812,7 @@ 'pixel_canvas_display_linear-rgb.html', base_name + '_CanvasDisplayLinearRGBAccelerated2D', test_rect=[0, 0, 140, 140], - revision=8, + revision=9, browser_args=browser_args), PixelTestPage( @@ -854,7 +854,7 @@ 'pixel_canvas_low_latency_2d.html', base_name + '_CanvasLowLatency2D', test_rect=[0, 0, 100, 100], - revision=6, + revision=7, browser_args=browser_args), PixelTestPage(
diff --git a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt index 3235591..b048df4 100644 --- a/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt +++ b/content/test/gpu/gpu_tests/test_expectations/pixel_expectations.txt
@@ -171,3 +171,15 @@ # Mark all webview tests as RetryOnFailure due to Nexus 5x driver bug. crbug.com/950932 [ android-webview-instrumentation qualcomm-adreno-(tm)-418 ] * [ RetryOnFailure ] + +# Mark pixel tests as failure to generate new ref images with gpu raster for android webview. +crbug.com/899399 Pixel_2DCanvasWebGL [ Failure ] +crbug.com/899399 Pixel_BackgroundImage [ Failure ] +crbug.com/899399 Pixel_Canvas2DRedBox [ Failure ] +crbug.com/899399 Pixel_CanvasDisplayLinearRGBAccelerated2D [ Failure ] +crbug.com/899399 Pixel_CanvasLowLatency2D [ Failure ] +crbug.com/899399 Pixel_WebGLGreenTriangle_AA_Alpha [ Failure ] +crbug.com/899399 Pixel_WebGLGreenTriangle_AA_NoAlpha [ Failure ] +crbug.com/899399 Pixel_WebGLGreenTriangle_NoAA_Alpha [ Failure ] +crbug.com/899399 Pixel_WebGLGreenTriangle_NoAA_NoAlpha [ Failure ] +crbug.com/899399 Pixel_WebGLTransparentGreenTriangle_NoAlpha_ImplicitClear [ Failure ]
diff --git a/content/test/mock_background_sync_controller.cc b/content/test/mock_background_sync_controller.cc index 1e35350b..c84d874d 100644 --- a/content/test/mock_background_sync_controller.cc +++ b/content/test/mock_background_sync_controller.cc
@@ -60,4 +60,9 @@ pow(parameters->retry_delay_factor, num_attempts - 1); } +std::unique_ptr<BackgroundSyncController::BackgroundSyncEventKeepAlive> +MockBackgroundSyncController::CreateBackgroundSyncEventKeepAlive() { + return nullptr; +} + } // namespace content
diff --git a/content/test/mock_background_sync_controller.h b/content/test/mock_background_sync_controller.h index e6ff84d..482a5f0 100644 --- a/content/test/mock_background_sync_controller.h +++ b/content/test/mock_background_sync_controller.h
@@ -36,6 +36,8 @@ int num_attempts, blink::mojom::BackgroundSyncType sync_type, BackgroundSyncParameters* parameters) const override; + std::unique_ptr<BackgroundSyncController::BackgroundSyncEventKeepAlive> + CreateBackgroundSyncEventKeepAlive() override; int registration_count() const { return registration_count_; } const url::Origin& registration_origin() const {
diff --git a/device/bluetooth/BUILD.gn b/device/bluetooth/BUILD.gn index 8291648b..359a5ef 100644 --- a/device/bluetooth/BUILD.gn +++ b/device/bluetooth/BUILD.gn
@@ -234,10 +234,7 @@ } if (is_chromeos) { - deps += [ - "//chromeos/constants", - "//chromeos/dbus", - ] + deps += [ "//chromeos/constants" ] } if (is_mac) {
diff --git a/device/bluetooth/dbus/bluez_dbus_manager.cc b/device/bluetooth/dbus/bluez_dbus_manager.cc index fddf543..739adba1 100644 --- a/device/bluetooth/dbus/bluez_dbus_manager.cc +++ b/device/bluetooth/dbus/bluez_dbus_manager.cc
@@ -35,10 +35,6 @@ #include "device/bluetooth/dbus/bluez_dbus_thread_manager.h" #include "third_party/cros_system_api/dbus/service_constants.h" -#if defined(OS_CHROMEOS) -#include "chromeos/dbus/dbus_thread_manager.h" -#endif - namespace bluez { static BluezDBusManager* g_bluez_dbus_manager = nullptr; @@ -251,7 +247,7 @@ } // static -void BluezDBusManager::Initialize() { +void BluezDBusManager::Initialize(dbus::Bus* system_bus) { // If we initialize BluezDBusManager twice we may also be shutting it down // early; do not allow that. if (g_using_bluez_dbus_manager_for_testing) @@ -259,24 +255,35 @@ CHECK(!g_bluez_dbus_manager); + BluezDBusThreadManager::Initialize(); + #if defined(OS_CHROMEOS) + DCHECK(system_bus); // On ChromeOS, BluetoothSystem needs a separate connection to Bluez, so we // use BluezDBusThreadManager to get two different connections to the same // services. This allows us to have two separate sets of clients in the same // process. - BluezDBusThreadManager::Initialize(); - - CreateGlobalInstance(chromeos::DBusThreadManager::Get()->GetSystemBus(), + CreateGlobalInstance(system_bus, BluezDBusThreadManager::Get()->GetSystemBus(), - chromeos::DBusThreadManager::Get()->IsUsingFakes()); + false /* use_dbus_stubs */); #elif defined(OS_LINUX) // BluetoothSystem, the client that needs the extra connection, is not // implemented on Linux, so no need for an extra Bus. CreateGlobalInstance(BluezDBusThreadManager::Get()->GetSystemBus(), nullptr, false /* use_dbus_stubs */); +#else + NOTREACHED(); #endif } +void BluezDBusManager::InitializeFake() { + if (g_using_bluez_dbus_manager_for_testing) + return; + CHECK(!g_bluez_dbus_manager); + BluezDBusThreadManager::Initialize(); + CreateGlobalInstance(nullptr, nullptr, true /* use_dbus_stubs */); +} + // static std::unique_ptr<BluezDBusManagerSetter> bluez::BluezDBusManager::GetSetterForTesting() {
diff --git a/device/bluetooth/dbus/bluez_dbus_manager.h b/device/bluetooth/dbus/bluez_dbus_manager.h index 6863eae..4fb2e74 100644 --- a/device/bluetooth/dbus/bluez_dbus_manager.h +++ b/device/bluetooth/dbus/bluez_dbus_manager.h
@@ -69,13 +69,17 @@ class DEVICE_BLUETOOTH_EXPORT BluezDBusManager { public: - // Sets the global instance. Must be called before any calls to Get(). - // We explicitly initialize and shut down the global object, rather than - // making it a Singleton, to ensure clean startup and shutdown. - // This will initialize real, stub, or fake DBusClients depending on - // command-line arguments, whether Object Manager is supported and - // whether this process runs in a real or test environment. - static void Initialize(); + // Initializes the global instance with a real client. Must be called before + // any calls to Get(). We explicitly initialize and shutdown the global object + // rather than making it a Singleton to ensure clean startup and shutdown. + // * On Chrome OS, |system_bus| must not be null. It will be used as the + // primary bus and a secondary bus will be created. + // * On Linux, |system_bus| is ignored and a primary bus only will be created + // and used. + static void Initialize(dbus::Bus* system_bus); + + // Initializes the global instance with a fake client. + static void InitializeFake(); // Returns a BluezDBusManagerSetter instance that allows tests to // replace individual D-Bus clients with their own implementations.
diff --git a/device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.cc b/device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.cc index b3f10b5..4e561e1 100644 --- a/device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.cc +++ b/device/bluetooth/dbus/dbus_bluez_manager_wrapper_linux.cc
@@ -11,8 +11,7 @@ // static void DBusBluezManagerWrapperLinux::Initialize() { - BluezDBusThreadManager::Initialize(); - BluezDBusManager::Initialize(); + BluezDBusManager::Initialize(nullptr /* system_bus */); } // static
diff --git a/extensions/browser/updater/extension_downloader_test_helper.cc b/extensions/browser/updater/extension_downloader_test_helper.cc index e237af3..67db5a8 100644 --- a/extensions/browser/updater/extension_downloader_test_helper.cc +++ b/extensions/browser/updater/extension_downloader_test_helper.cc
@@ -81,4 +81,11 @@ test_url_loader_factory_.ClearResponses(); } +std::unique_ptr<ExtensionDownloader> +ExtensionDownloaderTestHelper::CreateDownloader() { + return std::make_unique<ExtensionDownloader>( + &delegate_, test_shared_url_loader_factory_, + test_data_decoder_service_.connector(), GetTestVerifierFormat()); +} + } // namespace extensions
diff --git a/extensions/browser/updater/extension_downloader_test_helper.h b/extensions/browser/updater/extension_downloader_test_helper.h index 86f6532..ac157b9c 100644 --- a/extensions/browser/updater/extension_downloader_test_helper.h +++ b/extensions/browser/updater/extension_downloader_test_helper.h
@@ -79,6 +79,10 @@ // Clears previously added responses from URL loader factory. void ClearURLLoaderFactoryResponses(); + // Create a downloader in a separate pointer. Could be used by, for example, + // ExtensionUpdater. + std::unique_ptr<ExtensionDownloader> CreateDownloader(); + private: network::TestURLLoaderFactory test_url_loader_factory_; scoped_refptr<network::SharedURLLoaderFactory>
diff --git a/extensions/shell/browser/shell_browser_main_parts.cc b/extensions/shell/browser/shell_browser_main_parts.cc index 8a7860cc..862c82c 100644 --- a/extensions/shell/browser/shell_browser_main_parts.cc +++ b/extensions/shell/browser/shell_browser_main_parts.cc
@@ -127,17 +127,17 @@ chromeos::DBusThreadManager::Initialize(); dbus::Bus* bus = chromeos::DBusThreadManager::Get()->GetSystemBus(); if (bus) { + bluez::BluezDBusManager::Initialize(bus); chromeos::CrasAudioClient::Initialize(bus); chromeos::PowerManagerClient::Initialize(bus); } else { + bluez::BluezDBusManager::InitializeFake(); chromeos::CrasAudioClient::InitializeFake(); chromeos::PowerManagerClient::InitializeFake(); } chromeos::disks::DiskMountManager::Initialize(); - bluez::BluezDBusManager::Initialize(); - chromeos::NetworkHandler::Initialize(); network_controller_.reset(new ShellNetworkController( base::CommandLine::ForCurrentProcess()->GetSwitchValueNative( @@ -153,8 +153,7 @@ // TODO(michaelpg): Verify this works for target environments. ui::InitializeInputMethodForTesting(); - bluez::BluezDBusThreadManager::Initialize(); - bluez::BluezDBusManager::Initialize(); + bluez::BluezDBusManager::Initialize(nullptr /* system_bus */); #else ui::InitializeInputMethodForTesting(); #endif
diff --git a/gpu/ipc/host/gpu_memory_buffer_support.cc b/gpu/ipc/host/gpu_memory_buffer_support.cc index af8eb2a..d5891be 100644 --- a/gpu/ipc/host/gpu_memory_buffer_support.cc +++ b/gpu/ipc/host/gpu_memory_buffer_support.cc
@@ -15,7 +15,7 @@ namespace gpu { bool AreNativeGpuMemoryBuffersEnabled() { -#if defined(OS_MACOSX) +#if defined(OS_MACOSX) || defined(OS_FUCHSIA) return !base::CommandLine::ForCurrentProcess()->HasSwitch( switches::kDisableNativeGpuMemoryBuffers); #else
diff --git a/gpu/ipc/service/gpu_memory_buffer_factory.cc b/gpu/ipc/service/gpu_memory_buffer_factory.cc index 5a70a0221..6b5c797 100644 --- a/gpu/ipc/service/gpu_memory_buffer_factory.cc +++ b/gpu/ipc/service/gpu_memory_buffer_factory.cc
@@ -12,7 +12,7 @@ #include "gpu/ipc/service/gpu_memory_buffer_factory_io_surface.h" #endif -#if defined(OS_LINUX) +#if defined(OS_LINUX) || defined(OS_FUCHSIA) #include "gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.h" #endif @@ -33,7 +33,7 @@ return base::WrapUnique(new GpuMemoryBufferFactoryIOSurface); #elif defined(OS_ANDROID) return base::WrapUnique(new GpuMemoryBufferFactoryAndroidHardwareBuffer); -#elif defined(OS_LINUX) +#elif defined(OS_LINUX) || defined(OS_FUCHSIA) return base::WrapUnique(new GpuMemoryBufferFactoryNativePixmap); #elif defined(OS_WIN) return base::WrapUnique(new GpuMemoryBufferFactoryDXGI);
diff --git a/ios/chrome/browser/download/BUILD.gn b/ios/chrome/browser/download/BUILD.gn index df8a7a8..437749b 100644 --- a/ios/chrome/browser/download/BUILD.gn +++ b/ios/chrome/browser/download/BUILD.gn
@@ -34,7 +34,7 @@ "//components/keyed_service/core", "//components/keyed_service/ios", "//ios/chrome/browser/browser_state", - "//ios/chrome/browser/ui:network_activity_indicator_manager", + "//ios/chrome/browser/network_activity", "//ios/web/public", "//ios/web/public/download", ] @@ -80,7 +80,7 @@ "//ios/chrome/browser/browser_state:test_support", "//ios/chrome/browser/download", "//ios/chrome/browser/download:features", - "//ios/chrome/browser/ui:network_activity_indicator_manager", + "//ios/chrome/browser/network_activity", "//ios/chrome/test/fakes", "//ios/web/public", "//ios/web/public/download",
diff --git a/ios/chrome/browser/download/download_manager_tab_helper.mm b/ios/chrome/browser/download/download_manager_tab_helper.mm index 66f29a7..aae48fa 100644 --- a/ios/chrome/browser/download/download_manager_tab_helper.mm +++ b/ios/chrome/browser/download/download_manager_tab_helper.mm
@@ -7,7 +7,7 @@ #include "base/logging.h" #include "base/memory/ptr_util.h" #import "ios/chrome/browser/download/download_manager_tab_helper_delegate.h" -#import "ios/chrome/browser/ui/network_activity_indicator_manager.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_manager.h" #import "ios/web/public/download/download_task.h" #if !defined(__has_feature) || !__has_feature(objc_arc)
diff --git a/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm b/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm index ae275e2..ec2e067 100644 --- a/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm +++ b/ios/chrome/browser/download/download_manager_tab_helper_unittest.mm
@@ -6,7 +6,7 @@ #include <memory> -#import "ios/chrome/browser/ui/network_activity_indicator_manager.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_manager.h" #import "ios/chrome/test/fakes/fake_download_manager_tab_helper_delegate.h" #import "ios/web/public/test/fakes/fake_download_task.h" #import "ios/web/public/test/fakes/test_web_state.h"
diff --git a/ios/chrome/browser/network_activity/BUILD.gn b/ios/chrome/browser/network_activity/BUILD.gn new file mode 100644 index 0000000..05deed7 --- /dev/null +++ b/ios/chrome/browser/network_activity/BUILD.gn
@@ -0,0 +1,44 @@ +# Copyright 2019 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +source_set("network_activity") { + configs += [ "//build/config/compiler:enable_arc" ] + sources = [ + "network_activity_indicator_manager.h", + "network_activity_indicator_manager.mm", + ] + deps = [ + "//base", + ] +} + +source_set("tab_helper") { + configs += [ "//build/config/compiler:enable_arc" ] + sources = [ + "network_activity_indicator_tab_helper.h", + "network_activity_indicator_tab_helper.mm", + ] + deps = [ + ":network_activity", + "//base", + "//ios/web/public", + ] +} + +source_set("unit_tests") { + configs += [ "//build/config/compiler:enable_arc" ] + testonly = true + sources = [ + "network_activity_indicator_manager_unittest.mm", + "network_activity_indicator_tab_helper_unittest.mm", + ] + deps = [ + ":network_activity", + ":tab_helper", + "//ios/web/public", + "//ios/web/public/test", + "//ios/web/public/test/fakes", + "//testing/gtest", + ] +}
diff --git a/ios/chrome/browser/ui/network_activity_indicator_manager.h b/ios/chrome/browser/network_activity/network_activity_indicator_manager.h similarity index 92% rename from ios/chrome/browser/ui/network_activity_indicator_manager.h rename to ios/chrome/browser/network_activity/network_activity_indicator_manager.h index b7805a4..d43065b 100644 --- a/ios/chrome/browser/ui/network_activity_indicator_manager.h +++ b/ios/chrome/browser/network_activity/network_activity_indicator_manager.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_UI_NETWORK_ACTIVITY_INDICATOR_MANAGER_H_ -#define IOS_CHROME_BROWSER_UI_NETWORK_ACTIVITY_INDICATOR_MANAGER_H_ +#ifndef IOS_CHROME_BROWSER_NETWORK_ACTIVITY_NETWORK_ACTIVITY_INDICATOR_MANAGER_H_ +#define IOS_CHROME_BROWSER_NETWORK_ACTIVITY_NETWORK_ACTIVITY_INDICATOR_MANAGER_H_ #import <Foundation/Foundation.h> @@ -64,4 +64,4 @@ @end -#endif // IOS_CHROME_BROWSER_UI_NETWORK_ACTIVITY_INDICATOR_MANAGER_H_ +#endif // IOS_CHROME_BROWSER_NETWORK_ACTIVITY_NETWORK_ACTIVITY_INDICATOR_MANAGER_H_
diff --git a/ios/chrome/browser/ui/network_activity_indicator_manager.mm b/ios/chrome/browser/network_activity/network_activity_indicator_manager.mm similarity index 96% rename from ios/chrome/browser/ui/network_activity_indicator_manager.mm rename to ios/chrome/browser/network_activity/network_activity_indicator_manager.mm index 70e452e..96917dd 100644 --- a/ios/chrome/browser/ui/network_activity_indicator_manager.mm +++ b/ios/chrome/browser/network_activity/network_activity_indicator_manager.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/ui/network_activity_indicator_manager.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_manager.h" #import <UIKit/UIKit.h>
diff --git a/ios/chrome/browser/ui/network_activity_indicator_manager_unittest.mm b/ios/chrome/browser/network_activity/network_activity_indicator_manager_unittest.mm similarity index 98% rename from ios/chrome/browser/ui/network_activity_indicator_manager_unittest.mm rename to ios/chrome/browser/network_activity/network_activity_indicator_manager_unittest.mm index 4601bdc..fde94a3 100644 --- a/ios/chrome/browser/ui/network_activity_indicator_manager_unittest.mm +++ b/ios/chrome/browser/network_activity/network_activity_indicator_manager_unittest.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/ui/network_activity_indicator_manager.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_manager.h" #import <UIKit/UIKit.h>
diff --git a/ios/chrome/browser/web/network_activity_indicator_tab_helper.h b/ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.h similarity index 83% rename from ios/chrome/browser/web/network_activity_indicator_tab_helper.h rename to ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.h index 32c1c50..282d034 100644 --- a/ios/chrome/browser/web/network_activity_indicator_tab_helper.h +++ b/ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.h
@@ -2,8 +2,8 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#ifndef IOS_CHROME_BROWSER_WEB_NETWORK_ACTIVITY_INDICATOR_TAB_HELPER_H_ -#define IOS_CHROME_BROWSER_WEB_NETWORK_ACTIVITY_INDICATOR_TAB_HELPER_H_ +#ifndef IOS_CHROME_BROWSER_NETWORK_ACTIVITY_NETWORK_ACTIVITY_INDICATOR_TAB_HELPER_H_ +#define IOS_CHROME_BROWSER_NETWORK_ACTIVITY_NETWORK_ACTIVITY_INDICATOR_TAB_HELPER_H_ #import <Foundation/Foundation.h> @@ -42,4 +42,4 @@ DISALLOW_COPY_AND_ASSIGN(NetworkActivityIndicatorTabHelper); }; -#endif // IOS_CHROME_BROWSER_WEB_NETWORK_ACTIVITY_INDICATOR_TAB_HELPER_H_ +#endif // IOS_CHROME_BROWSER_NETWORK_ACTIVITY_NETWORK_ACTIVITY_INDICATOR_TAB_HELPER_H_
diff --git a/ios/chrome/browser/web/network_activity_indicator_tab_helper.mm b/ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.mm similarity index 92% rename from ios/chrome/browser/web/network_activity_indicator_tab_helper.mm rename to ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.mm index f8f6f76..17b63fc 100644 --- a/ios/chrome/browser/web/network_activity_indicator_tab_helper.mm +++ b/ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.mm
@@ -2,10 +2,10 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/web/network_activity_indicator_tab_helper.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.h" #include "base/memory/ptr_util.h" -#import "ios/chrome/browser/ui/network_activity_indicator_manager.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_manager.h" #import "ios/web/public/web_state/web_state.h" #if !defined(__has_feature) || !__has_feature(objc_arc)
diff --git a/ios/chrome/browser/web/network_activity_indicator_tab_helper_unittest.mm b/ios/chrome/browser/network_activity/network_activity_indicator_tab_helper_unittest.mm similarity index 97% rename from ios/chrome/browser/web/network_activity_indicator_tab_helper_unittest.mm rename to ios/chrome/browser/network_activity/network_activity_indicator_tab_helper_unittest.mm index cf02031..c15ffc6 100644 --- a/ios/chrome/browser/web/network_activity_indicator_tab_helper_unittest.mm +++ b/ios/chrome/browser/network_activity/network_activity_indicator_tab_helper_unittest.mm
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#import "ios/chrome/browser/web/network_activity_indicator_tab_helper.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.h" #import <UIKit/UIKit.h>
diff --git a/ios/chrome/browser/passwords/ios_chrome_password_manager_driver.mm b/ios/chrome/browser/passwords/ios_chrome_password_manager_driver.mm index eca00ff..194a658 100644 --- a/ios/chrome/browser/passwords/ios_chrome_password_manager_driver.mm +++ b/ios/chrome/browser/passwords/ios_chrome_password_manager_driver.mm
@@ -37,7 +37,8 @@ void IOSChromePasswordManagerDriver::FormEligibleForGenerationFound( const autofill::NewPasswordFormGenerationData& form) { - if (GetPasswordGenerationHelper()->IsGenerationEnabled( + if (GetPasswordGenerationHelper() && + GetPasswordGenerationHelper()->IsGenerationEnabled( /*log_debug_data*/ true)) { [delegate_ formEligibleForGenerationFound:form]; }
diff --git a/ios/chrome/browser/sync/sync_setup_service.cc b/ios/chrome/browser/sync/sync_setup_service.cc index 870cd69..277b8b78 100644 --- a/ios/chrome/browser/sync/sync_setup_service.cc +++ b/ios/chrome/browser/sync/sync_setup_service.cc
@@ -192,12 +192,12 @@ void SyncSetupService::PreUnityCommitChanges() { DCHECK(!unified_consent::IsUnifiedConsentFeatureEnabled()); - if (sync_service_->IsFirstSetupInProgress()) { - // Turn on the sync setup completed flag only if the user did not turn sync - // off. - if (sync_service_->CanSyncFeatureStart()) { - sync_service_->GetUserSettings()->SetFirstSetupComplete(); - } + // If this was the first Sync setup and the user did not turn Sync off, then + // turn on the first-setup-complete flag now. + if (sync_service_->IsSetupInProgress() && + !sync_service_->GetUserSettings()->IsFirstSetupComplete() && + sync_service_->CanSyncFeatureStart()) { + sync_service_->GetUserSettings()->SetFirstSetupComplete(); } sync_blocker_.reset();
diff --git a/ios/chrome/browser/tabs/BUILD.gn b/ios/chrome/browser/tabs/BUILD.gn index f2c2043..ef495fdf 100644 --- a/ios/chrome/browser/tabs/BUILD.gn +++ b/ios/chrome/browser/tabs/BUILD.gn
@@ -106,6 +106,7 @@ "//ios/chrome/browser/language", "//ios/chrome/browser/metrics", "//ios/chrome/browser/metrics:metrics_internal", + "//ios/chrome/browser/network_activity:tab_helper", "//ios/chrome/browser/overscroll_actions", "//ios/chrome/browser/passwords", "//ios/chrome/browser/prerender",
diff --git a/ios/chrome/browser/tabs/tab_helper_util.mm b/ios/chrome/browser/tabs/tab_helper_util.mm index 930df5f..596c04d 100644 --- a/ios/chrome/browser/tabs/tab_helper_util.mm +++ b/ios/chrome/browser/tabs/tab_helper_util.mm
@@ -28,6 +28,7 @@ #import "ios/chrome/browser/infobars/infobar_manager_impl.h" #import "ios/chrome/browser/itunes_urls/itunes_urls_handler_tab_helper.h" #import "ios/chrome/browser/metrics/ukm_url_recorder.h" +#import "ios/chrome/browser/network_activity/network_activity_indicator_tab_helper.h" #import "ios/chrome/browser/overscroll_actions/overscroll_actions_tab_helper.h" #import "ios/chrome/browser/passwords/password_tab_helper.h" #include "ios/chrome/browser/reading_list/features.h" @@ -55,7 +56,6 @@ #import "ios/chrome/browser/web/image_fetch_tab_helper.h" #import "ios/chrome/browser/web/java_script_console/java_script_console_tab_helper.h" #import "ios/chrome/browser/web/load_timing_tab_helper.h" -#import "ios/chrome/browser/web/network_activity_indicator_tab_helper.h" #import "ios/chrome/browser/web/page_placeholder_tab_helper.h" #import "ios/chrome/browser/web/print_tab_helper.h" #import "ios/chrome/browser/web/sad_tab_tab_helper.h"
diff --git a/ios/chrome/browser/ui/BUILD.gn b/ios/chrome/browser/ui/BUILD.gn index fdc5fb1..4f7091c 100644 --- a/ios/chrome/browser/ui/BUILD.gn +++ b/ios/chrome/browser/ui/BUILD.gn
@@ -10,7 +10,6 @@ "native_content_controller.mm", ] public_deps = [ - ":network_activity_indicator_manager", "//ios/chrome/browser/ui/util", "//ios/chrome/common/ui_util", ] @@ -26,17 +25,6 @@ configs += [ "//build/config/compiler:enable_arc" ] } -source_set("network_activity_indicator_manager") { - sources = [ - "network_activity_indicator_manager.h", - "network_activity_indicator_manager.mm", - ] - deps = [ - "//base", - ] - configs += [ "//build/config/compiler:enable_arc" ] -} - source_set("feature_flags") { configs += [ "//build/config/compiler:enable_arc" ] sources = [ @@ -53,7 +41,6 @@ testonly = true sources = [ "native_content_controller_unittest.mm", - "network_activity_indicator_manager_unittest.mm", ] deps = [ ":native_content_controller_test_xib",
diff --git a/ios/chrome/browser/web/BUILD.gn b/ios/chrome/browser/web/BUILD.gn index 41619b9..1372a0cf 100644 --- a/ios/chrome/browser/web/BUILD.gn +++ b/ios/chrome/browser/web/BUILD.gn
@@ -17,8 +17,6 @@ "image_fetch_tab_helper.mm", "load_timing_tab_helper.h", "load_timing_tab_helper.mm", - "network_activity_indicator_tab_helper.h", - "network_activity_indicator_tab_helper.mm", "page_placeholder_tab_helper.h", "page_placeholder_tab_helper.mm", "repost_form_tab_helper.h", @@ -87,7 +85,6 @@ "image_fetch_js_unittest.mm", "image_fetch_tab_helper_unittest.mm", "load_timing_tab_helper_unittest.mm", - "network_activity_indicator_tab_helper_unittest.mm", "page_placeholder_tab_helper_unittest.mm", "repost_form_tab_helper_unittest.mm", "sad_tab_tab_helper_unittest.mm",
diff --git a/ios/chrome/test/BUILD.gn b/ios/chrome/test/BUILD.gn index 5338892..8eca483 100644 --- a/ios/chrome/test/BUILD.gn +++ b/ios/chrome/test/BUILD.gn
@@ -159,6 +159,7 @@ "//ios/chrome/browser/metrics:unit_tests", "//ios/chrome/browser/metrics:unit_tests_internal", "//ios/chrome/browser/net:unit_tests", + "//ios/chrome/browser/network_activity:unit_tests", "//ios/chrome/browser/ntp:unit_tests", "//ios/chrome/browser/omaha:unit_tests", "//ios/chrome/browser/overlays:unit_tests",
diff --git a/ios/web/navigation/error_retry_state_machine.mm b/ios/web/navigation/error_retry_state_machine.mm index 02be34d..ce86963 100644 --- a/ios/web/navigation/error_retry_state_machine.mm +++ b/ios/web/navigation/error_retry_state_machine.mm
@@ -74,7 +74,12 @@ case ErrorRetryState::kDisplayingNativeErrorForFailedNavigation: // Retry of a previous failure still fails. case ErrorRetryState::kDisplayingWebErrorForFailedNavigation: - return BackForwardOrReloadFailed(web_view_url, error_url); + if (web::GetWebClient()->IsSlimNavigationManagerEnabled()) { + state_ = ErrorRetryState::kLoadingPlaceholder; + return ErrorRetryCommand::kLoadPlaceholder; + } else { + return BackForwardOrReloadFailed(web_view_url, error_url); + } case ErrorRetryState::kLoadingPlaceholder: case ErrorRetryState::kReadyToDisplayErrorForFailedNavigation:
diff --git a/ios/web/navigation/error_retry_state_machine_unittest.mm b/ios/web/navigation/error_retry_state_machine_unittest.mm index 64986998..a00ee06 100644 --- a/ios/web/navigation/error_retry_state_machine_unittest.mm +++ b/ios/web/navigation/error_retry_state_machine_unittest.mm
@@ -5,6 +5,7 @@ #include "ios/web/navigation/error_retry_state_machine.h" #include "ios/web/navigation/wk_navigation_util.h" +#import "ios/web/public/web_client.h" #include "testing/gtest/include/gtest/gtest.h" #import "testing/gtest_mac.h" #include "testing/platform_test.h" @@ -67,10 +68,16 @@ // Reload fails again in provisional navigation (e.g. still in airplane mode). { ErrorRetryStateMachine clone(machine); - ASSERT_EQ(ErrorRetryCommand::kLoadErrorView, - clone.DidFailProvisionalNavigation(test_url, test_url)); - ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation, - clone.state()); + if (web::GetWebClient()->IsSlimNavigationManagerEnabled()) { + ASSERT_EQ(ErrorRetryCommand::kLoadPlaceholder, + clone.DidFailProvisionalNavigation(test_url, test_url)); + ASSERT_EQ(ErrorRetryState::kLoadingPlaceholder, clone.state()); + } else { + ASSERT_EQ(ErrorRetryCommand::kLoadErrorView, + clone.DidFailProvisionalNavigation(test_url, test_url)); + ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation, + clone.state()); + } } // Reload fails after navigation is committed. @@ -130,10 +137,16 @@ // Reload fails again in provisional navigation. { ErrorRetryStateMachine clone(machine); - ASSERT_EQ(ErrorRetryCommand::kLoadErrorView, - clone.DidFailProvisionalNavigation(test_url, test_url)); - ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation, - clone.state()); + if (web::GetWebClient()->IsSlimNavigationManagerEnabled()) { + ASSERT_EQ(ErrorRetryCommand::kLoadPlaceholder, + clone.DidFailProvisionalNavigation(test_url, test_url)); + ASSERT_EQ(ErrorRetryState::kLoadingPlaceholder, clone.state()); + } else { + ASSERT_EQ(ErrorRetryCommand::kLoadErrorView, + clone.DidFailProvisionalNavigation(test_url, test_url)); + ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation, + clone.state()); + } } // Reload fails after navigation is committed. @@ -193,10 +206,16 @@ // Reloads fails provisional navigation. { ErrorRetryStateMachine clone(machine); - ASSERT_EQ(ErrorRetryCommand::kLoadErrorView, - clone.DidFailProvisionalNavigation(test_url, test_url)); - ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation, - clone.state()); + if (web::GetWebClient()->IsSlimNavigationManagerEnabled()) { + ASSERT_EQ(ErrorRetryCommand::kLoadPlaceholder, + clone.DidFailProvisionalNavigation(test_url, test_url)); + ASSERT_EQ(ErrorRetryState::kLoadingPlaceholder, clone.state()); + } else { + ASSERT_EQ(ErrorRetryCommand::kLoadErrorView, + clone.DidFailProvisionalNavigation(test_url, test_url)); + ASSERT_EQ(ErrorRetryState::kReadyToDisplayErrorForFailedNavigation, + clone.state()); + } } // Reload fails after commit.
diff --git a/ios/web/web_state/error_page_inttest.mm b/ios/web/web_state/error_page_inttest.mm index ac36a0a..e42f4a7 100644 --- a/ios/web/web_state/error_page_inttest.mm +++ b/ios/web/web_state/error_page_inttest.mm
@@ -51,6 +51,16 @@ is_off_the_record); } +// Waits for text for and error in NSURLErrorDomain and +// kCFURLErrorNetworkConnectionLost error code. +bool WaitForErrorText(WebState* web_state, const GURL& url) WARN_UNUSED_RESULT; +bool WaitForErrorText(WebState* web_state, const GURL& url) { + return test::WaitForWebViewContainingText( + web_state, + GetErrorText(web_state, url, "NSURLErrorDomain", /*error_code*/ -1005, + /*is_post*/ false, /*is_otr*/ false)); +} + // Overrides PrepareErrorPage to render all important arguments. class TestWebClient : public WebClient { void PrepareErrorPage(WebState* web_state, @@ -122,15 +132,35 @@ DISALLOW_COPY_AND_ASSIGN(ErrorPageTest); }; +// Tests that the error page is correctly displayed after navigating back to it +// multiple times. See http://crbug.com/944037 . +TEST_P(ErrorPageTest, BackForwardErrorPage) { + test::LoadUrl(web_state(), server_.GetURL("/close-socket")); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/close-socket"))); + + test::LoadUrl(web_state(), server_.GetURL("/echo")); + ASSERT_TRUE(test::WaitForWebViewContainingText(web_state(), "Echo")); + + web_state()->GetNavigationManager()->GoBack(); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/close-socket"))); + + web_state()->GetNavigationManager()->GoForward(); + ASSERT_TRUE(test::WaitForWebViewContainingText(web_state(), "Echo")); + + web_state()->GetNavigationManager()->GoBack(); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/close-socket"))); + + // Make sure that the forward history isn't destroyed. + web_state()->GetNavigationManager()->GoForward(); + ASSERT_TRUE(test::WaitForWebViewContainingText(web_state(), "Echo")); +} + // Loads the URL which fails to load, then sucessfully reloads the page. TEST_P(ErrorPageTest, ReloadErrorPage) { // No response leads to -1005 error code. server_responds_with_content_ = false; test::LoadUrl(web_state(), server_.GetURL("/echo-query?foo")); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/echo-query?foo"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/echo-query?foo"))); ASSERT_FALSE(security_state_info()); // Reload the page, which should load without errors. @@ -151,10 +181,7 @@ server_responds_with_content_ = false; web_state()->GetNavigationManager()->Reload(ReloadType::NORMAL, /*check_for_repost=*/false); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/echo-query?foo"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/echo-query?foo"))); ASSERT_TRUE(security_state_info()); ASSERT_TRUE(security_state_info()->visible_ssl_status); EXPECT_EQ(SECURITY_STYLE_UNKNOWN, @@ -188,10 +215,7 @@ // Reload bypasses the cache. web_state()->GetNavigationManager()->Reload(ReloadType::NORMAL, /*check_for_repost=*/false); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/echo-query?foo"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/echo-query?foo"))); ASSERT_TRUE(security_state_info()); ASSERT_TRUE(security_state_info()->visible_ssl_status); EXPECT_EQ(SECURITY_STYLE_UNKNOWN, @@ -209,10 +233,7 @@ // Second page fails to load. test::LoadUrl(web_state(), server_.GetURL("/close-socket")); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/close-socket"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/close-socket"))); // Going back should sucessfully load the first page. web_state()->GetNavigationManager()->GoBack(); @@ -220,10 +241,7 @@ // Going forward fails the load. web_state()->GetNavigationManager()->GoForward(); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/close-socket"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/close-socket"))); ASSERT_TRUE(security_state_info()); ASSERT_TRUE(security_state_info()->visible_ssl_status); EXPECT_EQ(SECURITY_STYLE_UNKNOWN, @@ -246,10 +264,7 @@ // Second page fails to load. test::LoadUrl(web_state(), server_.GetURL("/close-socket")); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/close-socket"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/close-socket"))); // Going back should sucessfully load the first page. ExecuteJavaScript(@"window.history.back();"); @@ -257,10 +272,7 @@ // Going forward fails the load. ExecuteJavaScript(@"window.history.forward();"); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/close-socket"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/close-socket"))); ASSERT_TRUE(security_state_info()); ASSERT_TRUE(security_state_info()->visible_ssl_status); EXPECT_EQ(SECURITY_STYLE_UNKNOWN, @@ -273,10 +285,7 @@ server_responds_with_content_ = false; test::LoadUrl(web_state(), server_.GetURL("/server-redirect?echo-query")); // Error is displayed after the resdirection to /echo-query. - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), GetErrorText(web_state(), server_.GetURL("/echo-query"), - "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), server_.GetURL("/echo-query"))); } // Loads the page with iframe, and that iframe fails to load. There should be no @@ -336,10 +345,7 @@ web::NavigationManager* manager = web_state()->GetNavigationManager(); manager->LoadURLWithParams(params); manager->LoadIfNecessary(); - ASSERT_TRUE(test::WaitForWebViewContainingText( - web_state(), - GetErrorText(web_state(), url, "NSURLErrorDomain", /*error_code*/ -1005, - /*is_post*/ false, /*is_otr*/ false))); + ASSERT_TRUE(WaitForErrorText(web_state(), url)); EXPECT_EQ(url, manager->GetLastCommittedItem()->GetURL()); EXPECT_EQ(virtual_url, manager->GetLastCommittedItem()->GetVirtualURL());
diff --git a/media/audio/fuchsia/audio_output_stream_fuchsia.cc b/media/audio/fuchsia/audio_output_stream_fuchsia.cc index 6fc9f38..ae9435d 100644 --- a/media/audio/fuchsia/audio_output_stream_fuchsia.cc +++ b/media/audio/fuchsia/audio_output_stream_fuchsia.cc
@@ -8,6 +8,7 @@ #include "base/bind.h" #include "base/fuchsia/service_directory_client.h" +#include "base/memory/writable_shared_memory_region.h" #include "media/audio/fuchsia/audio_manager_fuchsia.h" #include "media/base/audio_sample_types.h" #include "media/base/audio_timestamp_helper.h" @@ -120,14 +121,18 @@ bool AudioOutputStreamFuchsia::InitializePayloadBuffer() { size_t buffer_size = GetMinBufferSize(); - if (!payload_buffer_.CreateAndMapAnonymous(buffer_size)) { + auto region = base::WritableSharedMemoryRegion::Create(buffer_size); + payload_buffer_ = region.Map(); + if (!payload_buffer_.IsValid()) { LOG(WARNING) << "Failed to allocate VMO of size " << buffer_size; return false; } payload_buffer_pos_ = 0; audio_renderer_->AddPayloadBuffer( - kBufferId, zx::vmo(payload_buffer_.handle().Duplicate().GetHandle())); + kBufferId, base::WritableSharedMemoryRegion::TakeHandleForSerialization( + std::move(region)) + .PassPlatformHandle()); return true; } @@ -140,9 +145,9 @@ // lated in PumpSamples(). This is necessary because VMO allocation may fail // and it's not possible to report that error here - OnMinLeadTimeChanged() // may be invoked before Start(). - if (payload_buffer_.mapped_size() > 0 && - GetMinBufferSize() > payload_buffer_.mapped_size()) { - payload_buffer_.Unmap(); + if (payload_buffer_.IsValid() && + GetMinBufferSize() > payload_buffer_.size()) { + payload_buffer_ = {}; } } @@ -162,7 +167,7 @@ DCHECK(audio_renderer_); // Allocate payload buffer if necessary. - if (!payload_buffer_.mapped_size() && !InitializePayloadBuffer()) { + if (!payload_buffer_.IsValid() && !InitializePayloadBuffer()) { ReportError(); return; } @@ -200,7 +205,7 @@ // Save samples to the |payload_buffer_|. size_t packet_size = parameters_.GetBytesPerBuffer(kSampleFormatF32); - DCHECK_LE(payload_buffer_pos_ + packet_size, payload_buffer_.mapped_size()); + DCHECK_LE(payload_buffer_pos_ + packet_size, payload_buffer_.size()); audio_bus_->ToInterleaved<media::Float32SampleTypeTraits>( audio_bus_->frames(), reinterpret_cast<float*>(static_cast<uint8_t*>(payload_buffer_.memory()) + @@ -217,7 +222,7 @@ stream_position_samples_ += frames_filled; payload_buffer_pos_ = - (payload_buffer_pos_ + packet_size) % payload_buffer_.mapped_size(); + (payload_buffer_pos_ + packet_size) % payload_buffer_.size(); SchedulePumpSamples(now); }
diff --git a/media/audio/fuchsia/audio_output_stream_fuchsia.h b/media/audio/fuchsia/audio_output_stream_fuchsia.h index 9f1748c..cbfcbae7 100644 --- a/media/audio/fuchsia/audio_output_stream_fuchsia.h +++ b/media/audio/fuchsia/audio_output_stream_fuchsia.h
@@ -7,7 +7,7 @@ #include <fuchsia/media/cpp/fidl.h> -#include "base/memory/shared_memory.h" +#include "base/memory/shared_memory_mapping.h" #include "base/timer/timer.h" #include "media/audio/audio_io.h" #include "media/base/audio_parameters.h" @@ -67,7 +67,7 @@ // reallocating the memory every time. std::unique_ptr<AudioBus> audio_bus_; - base::SharedMemory payload_buffer_; + base::WritableSharedMemoryMapping payload_buffer_; size_t payload_buffer_pos_ = 0; AudioSourceCallback* callback_ = nullptr;
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn index 4a33889..6eed6db 100644 --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn
@@ -483,7 +483,7 @@ if (use_v4l2_codec || use_vaapi || is_mac || is_win) { test("video_encode_accelerator_unittest") { deps = [ - "test:encode_helpers", + "test:helpers", "//base", "//base/test:test_support", "//media:test_support", @@ -645,6 +645,7 @@ ":buildflags", "test:frame_file_writer", "test:frame_validator", + "test:helpers", "test:video_player", "test:video_player_test_environment", "test:video_player_thumbnail_renderer",
diff --git a/media/gpu/test/BUILD.gn b/media/gpu/test/BUILD.gn index de591d3f..a6f0781 100644 --- a/media/gpu/test/BUILD.gn +++ b/media/gpu/test/BUILD.gn
@@ -10,16 +10,30 @@ sources = [ "image.cc", "image.h", - "video_accelerator_unittest_helpers.h", "video_frame_helpers.cc", "video_frame_helpers.h", + "video_test_environment.cc", + "video_test_environment.h", ] deps = [ "//base:base", + "//base/test:test_config", + "//base/test:test_support", "//media:test_support", "//media/gpu", + "//mojo/core/embedder:embedder", "//third_party/libyuv", ] + public_deps = [ + "//testing/gtest", + ] + + if (use_ozone) { + deps += [ "//ui/ozone" ] + } + if (use_vaapi) { + deps += [ "//media/gpu/vaapi" ] + } } source_set("render_helpers") { @@ -86,21 +100,6 @@ } } -source_set("encode_helpers") { - testonly = true - sources = [ - "video_encode_accelerator_unittest_helpers.cc", - "video_encode_accelerator_unittest_helpers.h", - ] - public_deps = [ - ":helpers", - ":render_helpers", - ] - deps = [ - "//media/gpu", - ] -} - static_library("video_player_thumbnail_renderer") { testonly = true sources = [ @@ -150,19 +149,10 @@ "//media/test/data/", ] deps = [ + ":helpers", ":video_player", - "//base/test:test_config", - "//base/test:test_support", "//media/gpu", - "//mojo/core/embedder:embedder", - "//testing/gtest:gtest", ] - if (use_ozone) { - deps += [ "//ui/ozone" ] - } - if (use_vaapi) { - deps += [ "//media/gpu/vaapi" ] - } } static_library("image_processor") {
diff --git a/media/gpu/test/image_processor/image_processor_client.cc b/media/gpu/test/image_processor/image_processor_client.cc index c4549bc..674f0dc 100644 --- a/media/gpu/test/image_processor/image_processor_client.cc +++ b/media/gpu/test/image_processor/image_processor_client.cc
@@ -109,8 +109,8 @@ const auto& input_layout = image_processor_->input_layout(); if (VideoFrame::IsStorageTypeMappable( image_processor_->input_storage_type())) { - return CloneVideoFrameWithLayout( - CreateVideoFrameFromImage(input_image).get(), input_layout); + return CloneVideoFrame(CreateVideoFrameFromImage(input_image).get(), + input_layout, VideoFrame::STORAGE_OWNED_MEMORY); } else { #if defined(OS_CHROMEOS) LOG_ASSERT(image_processor_->input_storage_type() ==
diff --git a/media/gpu/test/texture_ref.cc b/media/gpu/test/texture_ref.cc index ab0c7eb..24d1553 100644 --- a/media/gpu/test/texture_ref.cc +++ b/media/gpu/test/texture_ref.cc
@@ -76,13 +76,5 @@ #endif } -bool TextureRef::IsDirectlyMappable() const { -#if defined(OS_CHROMEOS) - return frame_->layout().planes()[0].modifier == DRM_FORMAT_MOD_LINEAR; -#else - return false; -#endif -} - } // namespace test } // namespace media
diff --git a/media/gpu/test/texture_ref.h b/media/gpu/test/texture_ref.h index 570f724..3bae3b3a 100644 --- a/media/gpu/test/texture_ref.h +++ b/media/gpu/test/texture_ref.h
@@ -34,12 +34,6 @@ gfx::GpuMemoryBufferHandle ExportGpuMemoryBufferHandle() const; scoped_refptr<VideoFrame> ExportVideoFrame(gfx::Rect visible_rect) const; - // Return true if contains data in a buffer and format directly mappable and - // readable (e.g. not tiled), without a need to first format convert it. - // TODO(crbug.com/900865): Remove this once it is doable to get tiled - // information in media::VideoFrame. - bool IsDirectlyMappable() const; - int32_t texture_id() const { return texture_id_; } private:
diff --git a/media/gpu/test/video_encode_accelerator_unittest_helpers.cc b/media/gpu/test/video_encode_accelerator_unittest_helpers.cc deleted file mode 100644 index 16d11ab..0000000 --- a/media/gpu/test/video_encode_accelerator_unittest_helpers.cc +++ /dev/null
@@ -1,80 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#include "media/gpu/test/video_encode_accelerator_unittest_helpers.h" - -#include "base/bind_helpers.h" -#include "build/build_config.h" -#include "media/gpu/test/texture_ref.h" -#include "media/gpu/video_frame_mapper.h" -#include "media/gpu/video_frame_mapper_factory.h" -#include "ui/gfx/buffer_format_util.h" -#include "ui/gfx/native_pixmap.h" - -#if defined(OS_POSIX) -#include <sys/mman.h> -#endif // defined(OS_POSIX) - -namespace media { -namespace test { - -namespace { - -#if defined(OS_CHROMEOS) -// Copy |src_frame| buffer to buffers referred by |dst_frame|. -bool BlitVideoFrame(scoped_refptr<VideoFrame> src_frame, - scoped_refptr<VideoFrame> dst_frame) { - LOG_ASSERT(src_frame->storage_type() != VideoFrame::STORAGE_DMABUFS); - - scoped_refptr<VideoFrame> mapped_dst_frame = dst_frame; - if (dst_frame->storage_type() == VideoFrame::STORAGE_DMABUFS) { - auto video_frame_mapper = VideoFrameMapperFactory::CreateMapper(true); - LOG_ASSERT(video_frame_mapper); - mapped_dst_frame = video_frame_mapper->Map(dst_frame); - if (!mapped_dst_frame) { - LOG(ERROR) << "Failed to map DMABuf video frame."; - return false; - } - } - - LOG_ASSERT(src_frame->format() == dst_frame->format()); - size_t num_planes = VideoFrame::NumPlanes(src_frame->format()); - for (size_t i = 0; i < num_planes; i++) { - size_t length = dst_frame->layout().planes()[i].stride * - VideoFrame::Rows(i, dst_frame->format(), - dst_frame->coded_size().height()); - memcpy(mapped_dst_frame->data(i), src_frame->data(i), length); - } - return true; -} -#endif // defined(OS_CHROMEOS) - -} // namespace - -scoped_refptr<VideoFrame> CreateDmabufFrameFromVideoFrame( - scoped_refptr<VideoFrame> frame) { - scoped_refptr<VideoFrame> dmabuf_frame; -#if defined(OS_CHROMEOS) - constexpr uint32_t kDummyTextureId = 0; - auto texture_ref = test::TextureRef::CreatePreallocated( - kDummyTextureId, base::DoNothing(), frame->format(), frame->coded_size(), - gfx::BufferUsage::GPU_READ_CPU_READ_WRITE); - LOG_ASSERT(texture_ref); - dmabuf_frame = texture_ref->ExportVideoFrame(frame->visible_rect()); - if (!dmabuf_frame) { - LOG(ERROR) << "Failed to create video frame from texture_ref"; - return nullptr; - } - dmabuf_frame->set_timestamp(frame->timestamp()); - LOG_ASSERT(texture_ref->IsDirectlyMappable()); - if (!BlitVideoFrame(frame, dmabuf_frame)) { - LOG(ERROR) << "Failed to copy mapped buffer to dmabuf fds"; - return nullptr; - } -#endif // defined(OS_CHROMEOS) - return dmabuf_frame; -} - -} // namespace test -} // namespace media
diff --git a/media/gpu/test/video_encode_accelerator_unittest_helpers.h b/media/gpu/test/video_encode_accelerator_unittest_helpers.h deleted file mode 100644 index 019551e..0000000 --- a/media/gpu/test/video_encode_accelerator_unittest_helpers.h +++ /dev/null
@@ -1,21 +0,0 @@ -// Copyright 2018 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -#ifndef MEDIA_GPU_TEST_VIDEO_ENCODE_ACCELERATOR_UNITTEST_HELPERS_H_ -#define MEDIA_GPU_TEST_VIDEO_ENCODE_ACCELERATOR_UNITTEST_HELPERS_H_ - -#include "media/base/video_frame.h" - -namespace media { -namespace test { - -// Create DMABuf-backed video frame from MEM-backed VideoFrame. The created -// VideoFrame owns the buffer resource. -scoped_refptr<VideoFrame> CreateDmabufFrameFromVideoFrame( - scoped_refptr<VideoFrame> frame); - -} // namespace test -} // namespace media - -#endif // MEDIA_GPU_TEST_VIDEO_ENCODE_ACCELERATOR_UNITTEST_HELPERS_H_
diff --git a/media/gpu/test/video_frame_helpers.cc b/media/gpu/test/video_frame_helpers.cc index ce3655f..9478494 100644 --- a/media/gpu/test/video_frame_helpers.cc +++ b/media/gpu/test/video_frame_helpers.cc
@@ -16,6 +16,8 @@ #if defined(OS_CHROMEOS) #include "media/base/scopedfd_helper.h" #include "media/gpu/linux/platform_video_frame_utils.h" +#include "media/gpu/video_frame_mapper.h" +#include "media/gpu/video_frame_mapper_factory.h" #endif namespace media { @@ -115,6 +117,43 @@ } } +// Copy memory based |src_frame| buffer to |dst_frame| buffer. +bool CopyVideoFrame(const VideoFrame* src_frame, + scoped_refptr<VideoFrame> dst_frame) { + LOG_ASSERT(src_frame->IsMappable()); +#if defined(OS_CHROMEOS) + // If |dst_frame| is a Dmabuf-backed VideoFrame, we need to map its underlying + // buffer into memory. We use a VideoFrameMapper to create a memory-based + // VideoFrame that refers to the |dst_frame|'s buffer. + if (dst_frame->storage_type() == VideoFrame::STORAGE_DMABUFS) { + auto video_frame_mapper = VideoFrameMapperFactory::CreateMapper(true); + LOG_ASSERT(video_frame_mapper); + dst_frame = video_frame_mapper->Map(std::move(dst_frame)); + if (!dst_frame) { + LOG(ERROR) << "Failed to map DMABuf video frame."; + return false; + } + } +#endif // defined(OS_CHROMEOS) + LOG_ASSERT(dst_frame->IsMappable()); + LOG_ASSERT(src_frame->format() == dst_frame->format()); + + // Copy every plane's content from |src_frame| to |dst_frame|. + const size_t num_planes = VideoFrame::NumPlanes(dst_frame->format()); + LOG_ASSERT(dst_frame->layout().planes().size() == num_planes); + LOG_ASSERT(src_frame->layout().planes().size() == num_planes); + for (size_t i = 0; i < num_planes; ++i) { + // |width| in libyuv::CopyPlane() is in bytes, not pixels. + gfx::Size plane_size = VideoFrame::PlaneSize(dst_frame->format(), i, + dst_frame->natural_size()); + libyuv::CopyPlane( + src_frame->data(i), src_frame->layout().planes()[i].stride, + dst_frame->data(i), dst_frame->layout().planes()[i].stride, + plane_size.width(), plane_size.height()); + } + return true; +} + } // namespace bool ConvertVideoFrame(const VideoFrame* src_frame, VideoFrame* dst_frame) { @@ -155,37 +194,47 @@ return dst_frame; } -scoped_refptr<VideoFrame> CloneVideoFrameWithLayout( +scoped_refptr<VideoFrame> CloneVideoFrame( const VideoFrame* const src_frame, - const VideoFrameLayout& dst_layout) { + const VideoFrameLayout& dst_layout, + VideoFrame::StorageType dst_storage_type) { if (!src_frame) return nullptr; + if (!src_frame->IsMappable()) { + LOG(ERROR) << "The source video frame must be memory-backed VideoFrame"; + return nullptr; + } - LOG_ASSERT(src_frame->IsMappable()); - LOG_ASSERT(src_frame->format() == dst_layout.format()); - // Create VideoFrame, which allocates and owns data. - auto dst_frame = VideoFrame::CreateFrameWithLayout( - dst_layout, src_frame->visible_rect(), src_frame->natural_size(), - src_frame->timestamp(), false /* zero_initialize_memory*/); + scoped_refptr<VideoFrame> dst_frame; + switch (dst_storage_type) { +#if defined(OS_CHROMEOS) + case VideoFrame::STORAGE_DMABUFS: + dst_frame = CreatePlatformVideoFrame( + dst_layout.format(), dst_layout.coded_size(), + src_frame->visible_rect(), src_frame->visible_rect().size(), + src_frame->timestamp(), gfx::BufferUsage::GPU_READ_CPU_READ_WRITE); + break; +#endif + case VideoFrame::STORAGE_OWNED_MEMORY: + // Create VideoFrame, which allocates and owns data. + dst_frame = VideoFrame::CreateFrameWithLayout( + dst_layout, src_frame->visible_rect(), src_frame->natural_size(), + src_frame->timestamp(), false /* zero_initialize_memory*/); + break; + default: + LOG(ERROR) << "Clone video frame must have the ownership of the buffer"; + return nullptr; + } + if (!dst_frame) { LOG(ERROR) << "Failed to create VideoFrame"; return nullptr; } - // Copy every plane's content from |src_frame| to |dst_frame|. - const size_t num_planes = VideoFrame::NumPlanes(dst_layout.format()); - LOG_ASSERT(dst_layout.planes().size() == num_planes); - LOG_ASSERT(src_frame->layout().planes().size() == num_planes); - for (size_t i = 0; i < num_planes; ++i) { - // |width| in libyuv::CopyPlane() is in bytes, not pixels. - gfx::Size plane_size = VideoFrame::PlaneSize(dst_frame->format(), i, - dst_frame->natural_size()); - libyuv::CopyPlane( - src_frame->data(i), src_frame->layout().planes()[i].stride, - dst_frame->data(i), dst_frame->layout().planes()[i].stride, - plane_size.width(), plane_size.height()); + if (!CopyVideoFrame(src_frame, dst_frame)) { + LOG(ERROR) << "Failed to copy VideoFrame"; + return nullptr; } - return dst_frame; }
diff --git a/media/gpu/test/video_frame_helpers.h b/media/gpu/test/video_frame_helpers.h index bb9fd43..5542386 100644 --- a/media/gpu/test/video_frame_helpers.h +++ b/media/gpu/test/video_frame_helpers.h
@@ -6,15 +6,13 @@ #define MEDIA_GPU_TEST_VIDEO_FRAME_HELPERS_H_ #include "base/memory/scoped_refptr.h" +#include "media/base/video_frame.h" #include "media/base/video_frame_layout.h" #include "media/base/video_types.h" #include "ui/gfx/buffer_types.h" #include "ui/gfx/geometry/size.h" namespace media { - -class VideoFrame; - namespace test { class Image; @@ -50,14 +48,17 @@ scoped_refptr<VideoFrame> ConvertVideoFrame(const VideoFrame* src_frame, VideoPixelFormat dst_pixel_format); -// Copy |src_frame| into a new VideoFrame with |dst_layout|. This doesn't -// convert pixel format. That is, |dst_layout|'s format must be the same as -// |src_frame|'s format. This function supports all formats. The created -// VideoFrame's content is the same as |src_frame|. The created VideoFrame owns -// the buffer. Returns nullptr on failure. -scoped_refptr<VideoFrame> CloneVideoFrameWithLayout( +// Copy |src_frame| into a new VideoFrame. +// If |dst_storage_type| is STORAGE_DMABUFS, this function creates DMABUF-backed +// VideoFrame with |dst_layout|. If |dst_storage_type| is STORAGE_OWNED_MEMORY, +// this function creates memory-backed VideoFrame with |dst_layout|. +// The created VideoFrame's content is the same as |src_frame|. The created +// VideoFrame owns the buffer. Returns nullptr on failure. +scoped_refptr<VideoFrame> CloneVideoFrame( const VideoFrame* const src_frame, - const VideoFrameLayout& dst_layout); + const VideoFrameLayout& dst_layout, + VideoFrame::StorageType dst_storage_type = + VideoFrame::STORAGE_OWNED_MEMORY); // Get VideoFrame that contains Load()ed data. The returned VideoFrame doesn't // own the data and thus must not be changed.
diff --git a/media/gpu/test/video_player/video_player_test_environment.cc b/media/gpu/test/video_player/video_player_test_environment.cc index 750084c..9d5b4b5 100644 --- a/media/gpu/test/video_player/video_player_test_environment.cc +++ b/media/gpu/test/video_player/video_player_test_environment.cc
@@ -6,22 +6,7 @@ #include <utility> -#include "base/command_line.h" -#include "base/strings/utf_string_conversions.h" -#include "base/test/test_timeouts.h" -#include "build/build_config.h" -#include "media/gpu/buildflags.h" #include "media/gpu/test/video_player/video.h" -#include "mojo/core/embedder/embedder.h" - -#if BUILDFLAG(USE_VAAPI) -#include "media/gpu/vaapi/vaapi_wrapper.h" -#endif - -#if defined(USE_OZONE) -#include "ui/ozone/public/ozone_gpu_test_helper.h" -#include "ui/ozone/public/ozone_platform.h" -#endif namespace media { namespace test { @@ -61,51 +46,6 @@ VideoPlayerTestEnvironment::~VideoPlayerTestEnvironment() = default; -void VideoPlayerTestEnvironment::SetUp() { - // Using shared memory requires mojo to be initialized (crbug.com/849207). - mojo::core::Init(); - - // Needed to enable DVLOG through --vmodule. - logging::LoggingSettings settings; - settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; - LOG_ASSERT(logging::InitLogging(settings)); - - // Setting up a task environment will create a task runner for the current - // thread and allow posting tasks to other threads. This is required for the - // test video player to function correctly. - TestTimeouts::Initialize(); - task_environment_ = std::make_unique<base::test::ScopedTaskEnvironment>( - base::test::ScopedTaskEnvironment::MainThreadType::UI); - - // Perform all static initialization that is required when running video - // decoders in a test environment. -#if BUILDFLAG(USE_VAAPI) - media::VaapiWrapper::PreSandboxInitialization(); -#endif - -#if defined(USE_OZONE) - // Initialize Ozone. This is necessary to gain access to the GPU for hardware - // video decode acceleration. - LOG(WARNING) << "Initializing Ozone Platform...\n" - "If this hangs indefinitely please call 'stop ui' first!"; - ui::OzonePlatform::InitParams params = {.single_process = false}; - ui::OzonePlatform::InitializeForUI(params); - ui::OzonePlatform::InitializeForGPU(params); - ui::OzonePlatform::GetInstance()->AfterSandboxEntry(); - - // Initialize the Ozone GPU helper. If this is not done an error will occur: - // "Check failed: drm. No devices available for buffer allocation." - // Note: If a task environment is not set up initialization will hang - // indefinitely here. - gpu_helper_.reset(new ui::OzoneGpuTestHelper()); - gpu_helper_->Initialize(base::ThreadTaskRunnerHandle::Get()); -#endif -} - -void VideoPlayerTestEnvironment::TearDown() { - task_environment_.reset(); -} - const media::test::Video* VideoPlayerTestEnvironment::Video() const { return video_.get(); } @@ -122,17 +62,5 @@ return use_vd_; } -base::FilePath::StringType VideoPlayerTestEnvironment::GetTestName() const { - const ::testing::TestInfo* const test_info = - ::testing::UnitTest::GetInstance()->current_test_info(); -#if defined(OS_WIN) - // On Windows the default file path string type is UTF16. Since the test name - // is always returned in UTF8 we need to do a conversion here. - return base::UTF8ToUTF16(test_info->name()); -#else - return test_info->name(); -#endif -} - } // namespace test } // namespace media
diff --git a/media/gpu/test/video_player/video_player_test_environment.h b/media/gpu/test/video_player/video_player_test_environment.h index e4cd659..db9b92b9 100644 --- a/media/gpu/test/video_player/video_player_test_environment.h +++ b/media/gpu/test/video_player/video_player_test_environment.h
@@ -7,15 +7,8 @@ #include <memory> -#include "base/at_exit.h" -#include "base/test/scoped_task_environment.h" -#include "testing/gtest/include/gtest/gtest.h" - -#if defined(USE_OZONE) -namespace ui { -class OzoneGpuTestHelper; -} -#endif +#include "base/files/file_path.h" +#include "media/gpu/test/video_test_environment.h" namespace media { namespace test { @@ -24,7 +17,7 @@ // Test environment for video decode tests. Performs setup and teardown once for // the entire test run. -class VideoPlayerTestEnvironment : public ::testing::Environment { +class VideoPlayerTestEnvironment : public VideoTestEnvironment { public: static VideoPlayerTestEnvironment* Create( const base::FilePath& video_path, @@ -34,11 +27,6 @@ bool use_vd); ~VideoPlayerTestEnvironment() override; - // Set up the video decode test environment, only called once. - void SetUp() override; - // Tear down the video decode test environment, only called once. - void TearDown() override; - // Get the video the tests will be ran on. const media::test::Video* Video() const; // Check whether frame validation is enabled. @@ -48,27 +36,16 @@ // Check whether we should use VD-based video decoders instead of VDA-based. bool UseVD() const; - // Get the name of the current test. - base::FilePath::StringType GetTestName() const; - private: VideoPlayerTestEnvironment(std::unique_ptr<media::test::Video> video, bool enable_validator, bool output_frames, bool use_vd); - std::unique_ptr<base::test::ScopedTaskEnvironment> task_environment_; const std::unique_ptr<media::test::Video> video_; const bool enable_validator_; const bool output_frames_; const bool use_vd_; - - // An exit manager is required to run callbacks on shutdown. - base::AtExitManager at_exit_manager; - -#if defined(USE_OZONE) - std::unique_ptr<ui::OzoneGpuTestHelper> gpu_helper_; -#endif }; } // namespace test } // namespace media
diff --git a/media/gpu/test/video_test_environment.cc b/media/gpu/test/video_test_environment.cc new file mode 100644 index 0000000..365cab6 --- /dev/null +++ b/media/gpu/test/video_test_environment.cc
@@ -0,0 +1,88 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "media/gpu/test/video_test_environment.h" + +#include "base/command_line.h" +#include "base/strings/utf_string_conversions.h" +#include "base/test/scoped_task_environment.h" +#include "base/test/test_timeouts.h" +#include "build/build_config.h" +#include "media/gpu/buildflags.h" +#include "mojo/core/embedder/embedder.h" + +#if BUILDFLAG(USE_VAAPI) +#include "media/gpu/vaapi/vaapi_wrapper.h" +#endif + +#if defined(USE_OZONE) +#include "ui/ozone/public/ozone_gpu_test_helper.h" +#include "ui/ozone/public/ozone_platform.h" +#endif + +namespace media { +namespace test { + +VideoTestEnvironment::VideoTestEnvironment() = default; +VideoTestEnvironment::~VideoTestEnvironment() = default; + +void VideoTestEnvironment::SetUp() { + // Using shared memory requires mojo to be initialized (crbug.com/849207). + mojo::core::Init(); + + // Needed to enable DVLOG through --vmodule. + logging::LoggingSettings settings; + settings.logging_dest = logging::LOG_TO_SYSTEM_DEBUG_LOG; + LOG_ASSERT(logging::InitLogging(settings)); + + // Setting up a task environment will create a task runner for the current + // thread and allow posting tasks to other threads. This is required for video + // tests to function correctly. + TestTimeouts::Initialize(); + task_environment_ = std::make_unique<base::test::ScopedTaskEnvironment>( + base::test::ScopedTaskEnvironment::MainThreadType::UI); + + // Perform all static initialization that is required when running video + // decoders in a test environment. +#if BUILDFLAG(USE_VAAPI) + media::VaapiWrapper::PreSandboxInitialization(); +#endif + +#if defined(USE_OZONE) + // Initialize Ozone. This is necessary to gain access to the GPU for hardware + // video decode acceleration. + LOG(WARNING) << "Initializing Ozone Platform...\n" + "If this hangs indefinitely please call 'stop ui' first!"; + ui::OzonePlatform::InitParams params = {.single_process = false}; + ui::OzonePlatform::InitializeForUI(params); + ui::OzonePlatform::InitializeForGPU(params); + ui::OzonePlatform::GetInstance()->AfterSandboxEntry(); + + // Initialize the Ozone GPU helper. If this is not done an error will occur: + // "Check failed: drm. No devices available for buffer allocation." + // Note: If a task environment is not set up initialization will hang + // indefinitely here. + gpu_helper_.reset(new ui::OzoneGpuTestHelper()); + gpu_helper_->Initialize(base::ThreadTaskRunnerHandle::Get()); +#endif +} + +void VideoTestEnvironment::TearDown() { + task_environment_.reset(); +} + +base::FilePath::StringType VideoTestEnvironment::GetTestName() const { + const ::testing::TestInfo* const test_info = + ::testing::UnitTest::GetInstance()->current_test_info(); +#if defined(OS_WIN) + // On Windows the default file path string type is UTF16. Since the test name + // is always returned in UTF8 we need to do a conversion here. + return base::UTF8ToUTF16(test_info->name()); +#else + return test_info->name(); +#endif +} + +} // namespace test +} // namespace media
diff --git a/media/gpu/test/video_test_environment.h b/media/gpu/test/video_test_environment.h new file mode 100644 index 0000000..33ce0e4 --- /dev/null +++ b/media/gpu/test/video_test_environment.h
@@ -0,0 +1,58 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. +// +// This file contains helper classes for video accelerator unittests. + +#ifndef MEDIA_GPU_TEST_VIDEO_TEST_ENVIRONMENT_H_ +#define MEDIA_GPU_TEST_VIDEO_TEST_ENVIRONMENT_H_ + +#include <memory> + +#include "base/at_exit.h" +#include "base/files/file_path.h" +#include "testing/gtest/include/gtest/gtest.h" + +#if defined(USE_OZONE) +namespace ui { +class OzoneGpuTestHelper; +} // namespace ui +#endif + +namespace base { +namespace test { +class ScopedTaskEnvironment; +} // namespace test +} // namespace base + +namespace media { +namespace test { + +class VideoTestEnvironment : public ::testing::Environment { + public: + VideoTestEnvironment(); + virtual ~VideoTestEnvironment(); + // ::testing::Environment implementation. + // Set up video test environment, called once for entire test run. + void SetUp() override; + // Tear down video test environment, called once for entire test run. + void TearDown() override; + + // Get the name of the current test. + base::FilePath::StringType GetTestName() const; + + private: + // An exit manager is required to run callbacks on shutdown. + base::AtExitManager at_exit_manager; + + std::unique_ptr<base::test::ScopedTaskEnvironment> task_environment_; + +#if defined(USE_OZONE) + std::unique_ptr<ui::OzoneGpuTestHelper> gpu_helper_; +#endif +}; + +} // namespace test +} // namespace media + +#endif // MEDIA_GPU_TEST_VIDEO_TEST_ENVIRONMENT_H_
diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc index 2f511b1..72984ea 100644 --- a/media/gpu/video_encode_accelerator_unittest.cc +++ b/media/gpu/video_encode_accelerator_unittest.cc
@@ -58,7 +58,7 @@ #include "media/gpu/h264_decoder.h" #include "media/gpu/h264_dpb.h" #include "media/gpu/test/video_accelerator_unittest_helpers.h" -#include "media/gpu/test/video_encode_accelerator_unittest_helpers.h" +#include "media/gpu/test/video_frame_helpers.h" #include "media/video/fake_video_encode_accelerator.h" #include "media/video/h264_level_limits.h" #include "media/video/h264_parser.h" @@ -1961,8 +1961,13 @@ base::TimeDelta().FromMilliseconds( (next_input_id_ + 1) * base::Time::kMillisecondsPerSecond / current_framerate_)); - if (g_native_input) { - video_frame = test::CreateDmabufFrameFromVideoFrame(std::move(video_frame)); + if (video_frame && g_native_input) { +#if defined(OS_LINUX) + video_frame = test::CloneVideoFrame( + video_frame.get(), video_frame->layout(), VideoFrame::STORAGE_DMABUFS); +#else + video_frame = nullptr; +#endif } EXPECT_NE(nullptr, video_frame.get());
diff --git a/services/identity/public/cpp/identity_test_environment.cc b/services/identity/public/cpp/identity_test_environment.cc index 1c0bba3..c62d623 100644 --- a/services/identity/public/cpp/identity_test_environment.cc +++ b/services/identity/public/cpp/identity_test_environment.cc
@@ -229,12 +229,19 @@ } IdentityTestEnvironment::~IdentityTestEnvironment() { + // Remove the Observer that IdentityTestEnvironment added during its + // initialization. + identity_manager()->RemoveDiagnosticsObserver(this); + if (owned_account_tracker_service_) { owned_account_tracker_service_->Shutdown(); } - identity_manager()->RemoveDiagnosticsObserver(this); - identity_manager()->Shutdown(); + // Call shutdown only if we own the IdentityManager. + // It is the owner's responsibility to call Shutdown. + if (owned_identity_manager_) { + owned_identity_manager_->Shutdown(); + } } IdentityManager* IdentityTestEnvironment::identity_manager() {
diff --git a/services/image_annotation/annotator.cc b/services/image_annotation/annotator.cc index 000c4e3..924becc 100644 --- a/services/image_annotation/annotator.cc +++ b/services/image_annotation/annotator.cc
@@ -31,6 +31,13 @@ constexpr size_t kMaxResponseSize = 1024 * 1024; // 1MB. +// For a given source ID and requested description language, returns the unique +// image ID string that can be used to look up results from a server response. +std::string MakeImageId(const std::string& source_id, + const std::string& desc_lang_tag) { + return source_id + (desc_lang_tag.empty() ? "" : " " + desc_lang_tag); +} + // The server returns separate OCR results for each region of the image; we // naively concatenate these into one response string. // @@ -162,11 +169,17 @@ continue; const base::Value* const text = desc.FindKey("text"); - if (!text || !text->is_string() || text->GetString().empty()) + if (!text || !text->is_string()) continue; ReportDescAnnotation(type_lookup->second, score->GetDouble(), text->GetString().empty()); + + // Empty text is valid for OCR, but not for labels or captions. + if (type_lookup->second != mojom::AnnotationType::kOcr && + text->GetString().empty()) + continue; + results.push_back(mojom::Annotation::New( type_lookup->second, score->GetDouble(), text->GetString())); } @@ -202,7 +215,7 @@ } // Attempts to extract annotation results from the server response, returning a -// map from each source ID to its annotations (if successfully extracted). +// map from each image ID to its annotations (if successfully extracted). std::map<std::string, mojom::AnnotateImageResultPtr> UnpackJsonResponse( const base::Value& json_data, const double min_ocr_confidence) { @@ -301,6 +314,29 @@ static_assert(Annotator::kDescMaxAspectRatio > 0.0, "Description engine must accept images of some aspect ratios."); +Annotator::ClientRequestInfo::ClientRequestInfo( + mojom::ImageProcessorPtr in_image_processor, + AnnotateImageCallback in_callback) + : image_processor(std::move(in_image_processor)), + callback(std::move(in_callback)) {} + +Annotator::ClientRequestInfo::~ClientRequestInfo() = default; + +Annotator::ServerRequestInfo::ServerRequestInfo( + const std::string& in_source_id, + const bool in_desc_requested, + const std::string& in_desc_lang_tag, + const std::vector<uint8_t>& in_image_bytes) + : source_id(in_source_id), + desc_requested(in_desc_requested), + desc_lang_tag(in_desc_lang_tag), + image_bytes(in_image_bytes) {} + +Annotator::ServerRequestInfo& Annotator::ServerRequestInfo::operator=( + ServerRequestInfo&& other) = default; + +Annotator::ServerRequestInfo::~ServerRequestInfo() = default; + Annotator::Annotator( GURL server_url, std::string api_key, @@ -311,7 +347,7 @@ service_manager::Connector* const connector) : url_loader_factory_(std::move(url_loader_factory)), connector_(connector), - http_request_timer_( + server_request_timer_( FROM_HERE, throttle, base::BindRepeating(&Annotator::SendRequestBatchToServer, @@ -338,10 +374,13 @@ } void Annotator::AnnotateImage(const std::string& source_id, + const std::string& description_language_tag, mojom::ImageProcessorPtr image_processor, AnnotateImageCallback callback) { + const RequestKey request_key(source_id, description_language_tag); + // Return cached results if they exist. - const auto cache_lookup = cached_results_.find(source_id); + const auto cache_lookup = cached_results_.find(request_key); ReportCacheHit(cache_lookup != cached_results_.end()); if (cache_lookup != cached_results_.end()) { std::move(callback).Run(cache_lookup->second.Clone()); @@ -349,32 +388,32 @@ } // Register the ImageProcessor and callback to be used for this request. - RequestInfoList& request_info_list = request_infos_[source_id]; - request_info_list.push_back( - {std::move(image_processor), std::move(callback)}); + std::list<ClientRequestInfo>& request_info_list = request_infos_[request_key]; + request_info_list.emplace_back(std::move(image_processor), + std::move(callback)); // If the image processor dies: automatically delete the request info and // reassign local processing (for other interested clients) if the dead image // processor was responsible for some ongoing work. - request_info_list.back().first.set_connection_error_handler(base::BindOnce( - &Annotator::RemoveRequestInfo, base::Unretained(this), source_id, - --request_info_list.end(), true /* canceled */)); + request_info_list.back().image_processor.set_connection_error_handler( + base::BindOnce(&Annotator::RemoveRequestInfo, base::Unretained(this), + request_key, --request_info_list.end(), + true /* canceled */)); - // Don't start local work if it would duplicate some ongoing or already- - // completed work. - if (base::ContainsKey(local_processors_, source_id) || - base::ContainsKey(pending_source_ids_, source_id)) + // Don't start local work if it would duplicate some already-ongoing work. + if (base::ContainsKey(local_processors_, request_key) || + base::ContainsKey(pending_requests_, request_key)) return; local_processors_.insert( - std::make_pair(source_id, &request_info_list.back().first)); + {request_key, &request_info_list.back().image_processor}); // TODO(crbug.com/916420): first query the public result cache by URL to // improve latency. - request_info_list.back().first->GetJpgImageData( + request_info_list.back().image_processor->GetJpgImageData( base::BindOnce(&Annotator::OnJpgImageDataReceived, base::Unretained(this), - source_id, --request_info_list.end())); + request_key, --request_info_list.end())); } // static @@ -394,19 +433,16 @@ // static std::string Annotator::FormatJsonRequest( - const HttpRequestQueue::iterator begin_it, - const HttpRequestQueue::iterator end_it) { + const std::deque<ServerRequestInfo>::iterator begin, + const std::deque<ServerRequestInfo>::iterator end) { base::Value image_request_list(base::Value::Type::LIST); - for (HttpRequestQueue::iterator it = begin_it; it != end_it; ++it) { - const std::string& source_id = std::get<0>(*it); - const std::vector<uint8_t>& bytes = std::get<1>(*it); - const bool desc = std::get<2>(*it); - + for (std::deque<ServerRequestInfo>::iterator it = begin; it != end; ++it) { // Re-encode image bytes into base64, which can be represented in JSON. std::string base64_data; - Base64Encode(base::StringPiece(reinterpret_cast<const char*>(bytes.data()), - bytes.size()), - &base64_data); + Base64Encode( + base::StringPiece(reinterpret_cast<const char*>(it->image_bytes.data()), + it->image_bytes.size()), + &base64_data); // TODO(crbug.com/916420): accept and propagate page language info to // improve OCR accuracy. @@ -419,16 +455,27 @@ // Also add a description annotations request if the image is within model // policy. - if (desc) { - base::Value desc_engine_params(base::Value::Type::DICTIONARY); - desc_engine_params.SetKey("descriptionParameters", - base::Value(base::Value::Type::DICTIONARY)); - engine_params_list.GetList().push_back(std::move(desc_engine_params)); + if (it->desc_requested) { + base::Value desc_params(base::Value::Type::DICTIONARY); + + // Add preferred description language if it has been specified. + if (!it->desc_lang_tag.empty()) { + base::Value desc_lang_list(base::Value::Type::LIST); + desc_lang_list.GetList().push_back(base::Value(it->desc_lang_tag)); + + desc_params.SetKey("preferredLanguages", std::move(desc_lang_list)); + } + + base::Value engine_params(base::Value::Type::DICTIONARY); + engine_params.SetKey("descriptionParameters", std::move(desc_params)); + + engine_params_list.GetList().push_back(std::move(engine_params)); } - ReportImageRequestIncludesDesc(desc); + ReportImageRequestIncludesDesc(it->desc_requested); base::Value image_request(base::Value::Type::DICTIONARY); - image_request.SetKey("imageId", base::Value(source_id)); + image_request.SetKey( + "imageId", base::Value(MakeImageId(it->source_id, it->desc_lang_tag))); image_request.SetKey("imageBytes", base::Value(std::move(base64_data))); image_request.SetKey("engineParameters", std::move(engine_params_list)); @@ -450,13 +497,11 @@ std::unique_ptr<network::SimpleURLLoader> Annotator::MakeRequestLoader( const GURL& server_url, const std::string& api_key, - const HttpRequestQueue::iterator begin_it, - const HttpRequestQueue::iterator end_it) { + const std::deque<ServerRequestInfo>::iterator begin, + const std::deque<ServerRequestInfo>::iterator end) { auto resource_request = std::make_unique<network::ResourceRequest>(); resource_request->method = "POST"; - // TODO(crbug.com/916420): accept and pass API key when the server is - // configured to require it. resource_request->url = server_url; resource_request->load_flags = net::LOAD_DO_NOT_SAVE_COOKIES | @@ -504,89 +549,92 @@ auto url_loader = network::SimpleURLLoader::Create( std::move(resource_request), traffic_annotation); - url_loader->AttachStringForUpload(FormatJsonRequest(begin_it, end_it), + url_loader->AttachStringForUpload(FormatJsonRequest(begin, end), "application/json"); return url_loader; } void Annotator::OnJpgImageDataReceived( - const std::string& source_id, - const RequestInfoList::iterator request_info_it, + const RequestKey& request_key, + const std::list<ClientRequestInfo>::iterator request_info_it, const std::vector<uint8_t>& image_bytes, const int32_t width, const int32_t height) { + const std::string& source_id = request_key.first; + const std::string& desc_lang_tag = request_key.second; + ReportPixelFetchSuccess(!image_bytes.empty()); // Failed to retrieve bytes from local processor; remove dead processor and // reschedule processing. if (image_bytes.empty()) { - RemoveRequestInfo(source_id, request_info_it, false /* canceled */); + RemoveRequestInfo(request_key, request_info_it, false /* canceled */); return; } // Local processing is no longer ongoing. - local_processors_.erase(source_id); + local_processors_.erase(request_key); - // Schedule an HTTP request for this image. - http_request_queue_.push_front( - {source_id, image_bytes, IsWithinDescPolicy(width, height)}); - pending_source_ids_.insert(source_id); + // Schedule a server request for this image. + server_request_queue_.emplace_front( + source_id, IsWithinDescPolicy(width, height), desc_lang_tag, image_bytes); + pending_requests_.insert(request_key); // Start sending batches to the server. - if (!http_request_timer_.IsRunning()) - http_request_timer_.Reset(); + if (!server_request_timer_.IsRunning()) + server_request_timer_.Reset(); } void Annotator::SendRequestBatchToServer() { - if (http_request_queue_.empty()) { - http_request_timer_.Stop(); + if (server_request_queue_.empty()) { + server_request_timer_.Stop(); return; } // Take last n elements (or all elements if there are less than n). - const auto begin_it = - http_request_queue_.end() - - std::min<size_t>(http_request_queue_.size(), batch_size_); - const auto end_it = http_request_queue_.end(); + const auto begin = + server_request_queue_.end() - + std::min<size_t>(server_request_queue_.size(), batch_size_); + const auto end = server_request_queue_.end(); - // The set of source IDs relevant for this request. - std::set<std::string> source_ids; - for (HttpRequestQueue::iterator it = begin_it; it != end_it; it++) { - source_ids.insert(std::get<0>(*it)); + // The set of (source ID, desc lang) pairs relevant for this request. + std::set<RequestKey> request_keys; + for (std::deque<ServerRequestInfo>::iterator it = begin; it != end; it++) { + request_keys.insert({it->source_id, it->desc_lang_tag}); } // Kick off server communication. - http_requests_.push_back( - MakeRequestLoader(server_url_, api_key_, begin_it, end_it)); - http_requests_.back()->DownloadToString( + ongoing_server_requests_.push_back( + MakeRequestLoader(server_url_, api_key_, begin, end)); + ongoing_server_requests_.back()->DownloadToString( url_loader_factory_.get(), base::BindOnce(&Annotator::OnServerResponseReceived, - base::Unretained(this), source_ids, - --http_requests_.end()), + base::Unretained(this), request_keys, + --ongoing_server_requests_.end()), kMaxResponseSize); - http_request_queue_.erase(begin_it, end_it); + server_request_queue_.erase(begin, end); } void Annotator::OnServerResponseReceived( - const std::set<std::string>& source_ids, - const UrlLoaderList::iterator http_request_it, + const std::set<RequestKey>& request_keys, + const UrlLoaderList::iterator server_request_it, const std::unique_ptr<std::string> json_response) { - ReportServerNetError(http_request_it->get()->NetError()); + ReportServerNetError(server_request_it->get()->NetError()); if (const network::ResourceResponseInfo* const response_info = - http_request_it->get()->ResponseInfo()) { + server_request_it->get()->ResponseInfo()) { ReportServerResponseCode(response_info->headers->response_code()); ReportServerLatency(response_info->response_time - response_info->request_time); } - http_requests_.erase(http_request_it); + ongoing_server_requests_.erase(server_request_it); if (!json_response) { DVLOG(1) << "HTTP request to image annotation server failed."; - ProcessResults(source_ids, {}); + ProcessResults(request_keys, {}); return; } @@ -595,46 +643,48 @@ // Send JSON string to a dedicated service for safe parsing. GetJsonParser().Parse(*json_response, base::BindOnce(&Annotator::OnResponseJsonParsed, - base::Unretained(this), source_ids)); + base::Unretained(this), request_keys)); } void Annotator::OnResponseJsonParsed( - const std::set<std::string>& source_ids, + const std::set<RequestKey>& request_keys, const base::Optional<base::Value> json_data, const base::Optional<std::string>& error) { const bool success = json_data.has_value() && !error.has_value(); ReportJsonParseSuccess(success); - // Extract annotation results for each source ID with valid results. + // Extract annotation results for each request key with valid results. if (success) { - ProcessResults(source_ids, + ProcessResults(request_keys, UnpackJsonResponse(*json_data, min_ocr_confidence_)); } else { DVLOG(1) << "Parsing server response JSON failed with error: " << error.value_or("No reason reported."); - ProcessResults(source_ids, {}); + ProcessResults(request_keys, {}); } } void Annotator::ProcessResults( - const std::set<std::string>& source_ids, + const std::set<RequestKey>& request_keys, const std::map<std::string, mojom::AnnotateImageResultPtr>& results) { - // Process each source ID for which we expect to have results. - for (const std::string& source_id : source_ids) { - pending_source_ids_.erase(source_id); + // Process each request key for which we expect to have results. + for (const RequestKey& request_key : request_keys) { + pending_requests_.erase(request_key); // The lookup will be successful if there is a valid result (i.e. not an - // error and not a malformed result) for this source ID. - const auto result_lookup = results.find(source_id); + // error and not a malformed result) for this (source ID, desc lang) pair. + const auto result_lookup = + results.find(MakeImageId(request_key.first, request_key.second)); // Populate the result struct for this image and copy it into the cache if // necessary. if (result_lookup != results.end()) - cached_results_.insert({source_id, result_lookup->second.Clone()}); + cached_results_.insert({request_key, result_lookup->second.Clone()}); // This should not happen, since only this method removes entries of - // |request_infos_|, and this method should only execute once per source ID. - const auto request_info_it = request_infos_.find(source_id); + // |request_infos_|, and this method should only execute once per request + // key. + const auto request_info_it = request_infos_.find(request_key); if (request_info_it == request_infos_.end()) continue; @@ -649,7 +699,7 @@ // Notify clients of success or failure. // TODO(crbug.com/916420): explore server retry strategies. for (auto& info : request_info_it->second) { - std::move(info.second).Run(image_result.Clone()); + std::move(info.callback).Run(image_result.Clone()); ReportClientResult(client_result); } request_infos_.erase(request_info_it); @@ -669,34 +719,40 @@ } void Annotator::RemoveRequestInfo( - const std::string& source_id, - const RequestInfoList::iterator request_info_it, + const RequestKey& request_key, + const std::list<ClientRequestInfo>::iterator request_info_it, const bool canceled) { // Check whether we are deleting the ImageProcessor responsible for current // local processing. - auto lookup = local_processors_.find(source_id); - const bool should_reassign = lookup != local_processors_.end() && - lookup->second == &request_info_it->first; + auto local_processor_lookup = local_processors_.find(request_key); + const bool should_reassign = + local_processor_lookup != local_processors_.end() && + local_processor_lookup->second == &request_info_it->image_processor; // Notify client of cancellation / failure. ReportClientResult(canceled ? ClientResult::kCanceled : ClientResult::kFailed); - std::move(request_info_it->second) + std::move(request_info_it->callback) .Run(mojom::AnnotateImageResult::NewErrorCode( canceled ? mojom::AnnotateImageError::kCanceled : mojom::AnnotateImageError::kFailure)); // Delete the specified ImageProcessor. - RequestInfoList& request_info_list = request_infos_[source_id]; + std::list<ClientRequestInfo>& request_info_list = request_infos_[request_key]; request_info_list.erase(request_info_it); // If necessary, reassign local processing. - if (!request_info_list.empty() && should_reassign) { - lookup->second = &request_info_list.front().first; + if (should_reassign) { + if (request_info_list.empty()) { + local_processors_.erase(local_processor_lookup); + } else { + local_processor_lookup->second = + &request_info_list.front().image_processor; - request_info_list.front().first->GetJpgImageData(base::BindOnce( - &Annotator::OnJpgImageDataReceived, base::Unretained(this), source_id, - request_info_list.begin())); + request_info_list.front().image_processor->GetJpgImageData(base::BindOnce( + &Annotator::OnJpgImageDataReceived, base::Unretained(this), + request_key, request_info_list.begin())); + } } }
diff --git a/services/image_annotation/annotator.h b/services/image_annotation/annotator.h index 7adda22..834d9bb 100644 --- a/services/image_annotation/annotator.h +++ b/services/image_annotation/annotator.h
@@ -81,27 +81,57 @@ // mojom::Annotator: void AnnotateImage(const std::string& source_id, + const std::string& description_language_tag, mojom::ImageProcessorPtr image, AnnotateImageCallback callback) override; private: - // A list of the information associated with each request made by a client - // (i.e. a Chrome component) to this service. Each entry contains: - // 1) the ImageProcessor to use for local processing, and - // 2) the callback to execute when request processing has finished. - using RequestInfoList = - std::list<std::pair<mojom::ImageProcessorPtr, AnnotateImageCallback>>; + // The relevant info for a request from a client feature for a single image. + struct ClientRequestInfo { + ClientRequestInfo(mojom::ImageProcessorPtr image_processor, + AnnotateImageCallback callback); + ~ClientRequestInfo(); + + mojom::ImageProcessorPtr image_processor; // The interface to use for local + // processing for this client. + + AnnotateImageCallback callback; // The callback to execute when + // processing has finished. + }; + + // The relevant info for a request to the image annotation server for a single + // image. + struct ServerRequestInfo { + ServerRequestInfo(const std::string& source_id, + bool desc_requested, + const std::string& desc_lang_tag, + const std::vector<uint8_t>& image_bytes); + ServerRequestInfo(const ServerRequestInfo& other) = delete; + ~ServerRequestInfo(); + + // Use in a deque requires a move-assign operator. + ServerRequestInfo& operator=(ServerRequestInfo&& other); + ServerRequestInfo& operator=(const ServerRequestInfo& other) = delete; + + std::string source_id; // The URL or hashed data URI for the image. + + bool desc_requested; // Whether or not descriptions have been requested. + std::string desc_lang_tag; // The language in which descriptions have been + // requested. + + std::vector<uint8_t> image_bytes; // The encoded pixel data for the image. + }; + + // The pair of (source ID, desc lang) for a client request. + // + // Unique request keys represent unique requests to the server (i.e. two + // client requests that induce the same request key can be served by a single + // server request). + using RequestKey = std::pair<std::string, std::string>; // List of URL loader objects. using UrlLoaderList = std::list<std::unique_ptr<network::SimpleURLLoader>>; - // A queue of the data needed to make HTTP requests to the image annotation - // server. Each entry is a (source ID, image bytes, desc) triple, where desc - // is a bool that specifies whether or not description annotations should be - // requested. - using HttpRequestQueue = - std::deque<std::tuple<std::string, std::vector<uint8_t>, bool>>; - // Returns true if the given dimensions fit the policy of the description // backend (i.e. the image has size / shape on which it is acceptable to run // the description model). @@ -109,16 +139,17 @@ // Constructs and returns a JSON object containing an request for the // given images. - static std::string FormatJsonRequest(HttpRequestQueue::iterator begin_it, - HttpRequestQueue::iterator end_it); + static std::string FormatJsonRequest( + std::deque<ServerRequestInfo>::iterator begin_it, + std::deque<ServerRequestInfo>::iterator end_it); // Creates a URL loader that calls the image annotation server with an // annotation request for the given images. static std::unique_ptr<network::SimpleURLLoader> MakeRequestLoader( const GURL& server_url, const std::string& api_key, - HttpRequestQueue::iterator begin_it, - HttpRequestQueue::iterator end_it); + std::deque<ServerRequestInfo>::iterator begin_it, + std::deque<ServerRequestInfo>::iterator end_it); // Create or reuse a connection to the data decoder service for safe JSON // parsing. @@ -126,63 +157,73 @@ // Removes the given request, reassigning local processing if its associated // image processor had some ongoing. - void RemoveRequestInfo(const std::string& source_id, - RequestInfoList::iterator request_info_it, + void RemoveRequestInfo(const RequestKey& request_key, + std::list<ClientRequestInfo>::iterator request_info_it, bool canceled); // Called when a local handler returns compressed image data for the given - // source ID. - void OnJpgImageDataReceived(const std::string& source_id, - RequestInfoList::iterator request_info_it, - const std::vector<uint8_t>& image_bytes, - int32_t width, - int32_t height); + // request key. + void OnJpgImageDataReceived( + const RequestKey& request_key, + std::list<ClientRequestInfo>::iterator request_info_it, + const std::vector<uint8_t>& image_bytes, + int32_t width, + int32_t height); // Called periodically to send the next batch of requests to the image // annotation server. void SendRequestBatchToServer(); // Called when the image annotation server responds with annotations for the - // given source IDs. - void OnServerResponseReceived(const std::set<std::string>& source_ids, - UrlLoaderList::iterator http_request_it, + // given request keys. + void OnServerResponseReceived(const std::set<RequestKey>& request_keys, + UrlLoaderList::iterator server_request_it, std::unique_ptr<std::string> json_response); // Called when the data decoder service provides parsed JSON data for a server // response. - void OnResponseJsonParsed(const std::set<std::string>& source_ids, + void OnResponseJsonParsed(const std::set<RequestKey>& request_keys, base::Optional<base::Value> json_data, const base::Optional<std::string>& error); // Adds the given results to the cache (if successful) and notifies clients. void ProcessResults( - const std::set<std::string>& source_ids, + const std::set<RequestKey>& request_keys, const std::map<std::string, mojom::AnnotateImageResultPtr>& results); - // Maps from source ID to previously-obtained annotation results. + // Maps from request key to previously-obtained annotation results. // TODO(crbug.com/916420): periodically clear entries from this cache. - std::map<std::string, mojom::AnnotateImageResultPtr> cached_results_; + std::map<RequestKey, mojom::AnnotateImageResultPtr> cached_results_; - // Maps from source ID to the list of request info (i.e. info of clients that - // have made requests) for that source. - std::map<std::string, RequestInfoList> request_infos_; + // Maps from request key to its list of request infos (i.e. info of clients + // that have made requests with that language and source ID). + std::map<RequestKey, std::list<ClientRequestInfo>> request_infos_; - // Maps from the source IDs of images currently being locally processed to the + // Maps from request keys of images currently being locally processed to the // ImageProcessors responsible for their processing. // - // The value is a weak pointer to an entry in the RequestInfoList for the - // given source. - std::map<std::string, mojom::ImageProcessorPtr*> local_processors_; + // The value is a weak pointer to an entry in the client info list for the + // given request key. + // + // Note that separate local processing will be scheduled for two requests that + // share a source ID but differ in language. This is suboptimal; in future we + // could share local processing among all relevant requests. + std::map<RequestKey, mojom::ImageProcessorPtr*> local_processors_; // A list of currently-ongoing HTTP requests to the image annotation server. - UrlLoaderList http_requests_; + UrlLoaderList ongoing_server_requests_; - // A queue of HTTP requests waiting to be made. - HttpRequestQueue http_request_queue_; + // A queue of requests for the image annotation server waiting to be made. + std::deque<ServerRequestInfo> server_request_queue_; - // The set of source IDs for which an HTTP request is either queued or - // currently ongoing. - std::set<std::string> pending_source_ids_; + // The set of request keys for which a server request has been scheduled but + // not yet returned to clients. + // + // This comprises request keys for which: + // - A server query has been queued (but not yet sent), + // - A server query is ongoing, + // - A server query has been returned and is being parsed. + std::set<RequestKey> pending_requests_; scoped_refptr<network::SharedURLLoaderFactory> url_loader_factory_; @@ -193,8 +234,8 @@ // Should not be used directly; GetJsonParser() should be called instead. data_decoder::mojom::JsonParserPtr json_parser_; - // A timer used to throttle HTTP request frequency. - base::RepeatingTimer http_request_timer_; + // A timer used to throttle server request frequency. + base::RepeatingTimer server_request_timer_; const GURL server_url_;
diff --git a/services/image_annotation/annotator_unittest.cc b/services/image_annotation/annotator_unittest.cc index ca96a269..6833ca3 100644 --- a/services/image_annotation/annotator_unittest.cc +++ b/services/image_annotation/annotator_unittest.cc
@@ -229,6 +229,10 @@ // The minimum dimension required for description annotation. constexpr int32_t kDescDim = Annotator::kDescMinDimension; +// The description language to use in tests that don't exercise +// language-handling logic. +constexpr char kDescLang[] = ""; + // An image processor that holds and exposes the callbacks it is passed. class TestImageProcessor : public mojom::ImageProcessor { public: @@ -399,7 +403,7 @@ std::vector<mojom::Annotation> annotations; annotator.AnnotateImage( - kImage1Url, processor.GetPtr(), + kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -465,7 +469,7 @@ std::vector<mojom::Annotation> annotations; annotator.AnnotateImage( - kImage1Url, processor.GetPtr(), + kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -502,7 +506,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -609,7 +613,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -724,7 +728,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -779,7 +783,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -862,7 +866,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -956,7 +960,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -1046,7 +1050,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -1104,7 +1108,7 @@ base::Optional<mojom::AnnotateImageError> error; std::vector<mojom::Annotation> annotations; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), base::BindOnce(&ReportResult, &error, &annotations)); test_task_env.RunUntilIdle(); @@ -1181,7 +1185,7 @@ for (int i = 0; i < 3; ++i) { annotator.AnnotateImage( - kImage1Url, processor[i].GetPtr(), + kImage1Url, kDescLang, processor[i].GetPtr(), base::BindOnce(&ReportResult, &error[i], &annotations[i])); } test_task_env.RunUntilIdle(); @@ -1240,6 +1244,76 @@ Bucket(static_cast<int32_t>(ClientResult::kSucceeded), 2))); } +// Test a case that was previously buggy: when one client requests annotations, +// then fails local processing, then another client makes the same request. +TEST(AnnotatorTest, ProcessorFailedPreviously) { + base::test::ScopedTaskEnvironment test_task_env( + base::test::ScopedTaskEnvironment::MainThreadType::MOCK_TIME); + TestServerURLLoaderFactory test_url_factory( + "https://ia-pa.googleapis.com/v1/"); + data_decoder::TestDataDecoderService test_dd_service; + base::HistogramTester histogram_tester; + + Annotator annotator( + GURL(kTestServerUrl), std::string() /* api_key */, kThrottle, + 1 /* batch_size */, 1.0 /* min_ocr_confidence */, + test_url_factory.AsSharedURLLoaderFactory(), test_dd_service.connector()); + + TestImageProcessor processor[2]; + base::Optional<mojom::AnnotateImageError> error[2]; + std::vector<mojom::Annotation> annotations[2]; + + // Processor 1 makes a request for annotation of a given image. + annotator.AnnotateImage( + kImage1Url, kDescLang, processor[0].GetPtr(), + base::BindOnce(&ReportResult, &error[0], &annotations[0])); + test_task_env.RunUntilIdle(); + + // Annotator should have asked processor 1 for the image's pixels. + ASSERT_THAT(processor[0].callbacks(), SizeIs(1)); + ASSERT_THAT(processor[1].callbacks(), IsEmpty()); + + // Make processor 1 fail by returning empty bytes. + std::move(processor[0].callbacks()[0]).Run({}, 0, 0); + processor[0].callbacks().pop_back(); + test_task_env.RunUntilIdle(); + + // Processor 2 makes a request for annotation of the same image. + annotator.AnnotateImage( + kImage1Url, kDescLang, processor[1].GetPtr(), + base::BindOnce(&ReportResult, &error[1], &annotations[1])); + test_task_env.RunUntilIdle(); + + // Annotator should have asked processor 2 for the image's pixels. + ASSERT_THAT(processor[1].callbacks(), SizeIs(1)); + + // Send back image data. + std::move(processor[1].callbacks()[0]).Run({1, 2, 3}, kDescDim, kDescDim); + processor[1].callbacks().pop_back(); + test_task_env.RunUntilIdle(); + + // No request should be sent yet (because service is waiting to batch up + // multiple requests). + EXPECT_THAT(test_url_factory.requests(), IsEmpty()); + test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1)); + + // HTTP request for image 1 should have been made. + test_url_factory.ExpectRequestAndSimulateResponse( + "annotation", {} /* expected_headers */, + ReformatJson(base::StringPrintf(kTemplateRequest, kImage1Url, "AQID")), + kOcrSuccessResponse, net::HTTP_OK); + test_task_env.RunUntilIdle(); + + // Annotator should have called all callbacks, but request 1 received an error + // when we returned empty bytes. + ASSERT_THAT(error, + ElementsAre(mojom::AnnotateImageError::kFailure, base::nullopt)); + EXPECT_THAT(annotations[0], IsEmpty()); + EXPECT_THAT(annotations[1], + UnorderedElementsAre(AnnotatorEq(mojom::AnnotationType::kOcr, 1.0, + "Region 1\nRegion 2"))); +} + // Test that work is reassigned if processor dies. TEST(AnnotatorTest, ProcessorDies) { base::test::ScopedTaskEnvironment test_task_env( @@ -1260,7 +1334,7 @@ for (int i = 0; i < 3; ++i) { annotator.AnnotateImage( - kImage1Url, processor[i].GetPtr(), + kImage1Url, kDescLang, processor[i].GetPtr(), base::BindOnce(&ReportResult, &error[i], &annotations[i])); } test_task_env.RunUntilIdle(); @@ -1335,13 +1409,13 @@ // Request OCR for images 1, 2 and 3. annotator.AnnotateImage( - kImage1Url, processor[0].GetPtr(), + kImage1Url, kDescLang, processor[0].GetPtr(), base::BindOnce(&ReportResult, &error[0], &annotations[0])); annotator.AnnotateImage( - kImage2Url, processor[1].GetPtr(), + kImage2Url, kDescLang, processor[1].GetPtr(), base::BindOnce(&ReportResult, &error[1], &annotations[1])); annotator.AnnotateImage( - kImage3Url, processor[2].GetPtr(), + kImage3Url, kDescLang, processor[2].GetPtr(), base::BindOnce(&ReportResult, &error[2], &annotations[2])); test_task_env.RunUntilIdle(); @@ -1422,7 +1496,7 @@ // Request OCR for image 1. annotator.AnnotateImage( - kImage1Url, processor[0].GetPtr(), + kImage1Url, kDescLang, processor[0].GetPtr(), base::BindOnce(&ReportResult, &error[0], &annotations[0])); test_task_env.RunUntilIdle(); @@ -1442,7 +1516,7 @@ // Request OCR for image 2. annotator.AnnotateImage( - kImage2Url, processor[1].GetPtr(), + kImage2Url, kDescLang, processor[1].GetPtr(), base::BindOnce(&ReportResult, &error[1], &annotations[1])); test_task_env.RunUntilIdle(); @@ -1566,7 +1640,7 @@ // First request annotation of the image with processor 1. annotator.AnnotateImage( - kImage1Url, processor[0].GetPtr(), + kImage1Url, kDescLang, processor[0].GetPtr(), base::BindOnce(&ReportResult, &error[0], &annotations[0])); test_task_env.RunUntilIdle(); @@ -1578,7 +1652,7 @@ // Now request annotation of the image with processor 2. annotator.AnnotateImage( - kImage1Url, processor[1].GetPtr(), + kImage1Url, kDescLang, processor[1].GetPtr(), base::BindOnce(&ReportResult, &error[1], &annotations[1])); test_task_env.RunUntilIdle(); @@ -1596,7 +1670,7 @@ // Now request annotation of the image with processor 3. annotator.AnnotateImage( - kImage1Url, processor[2].GetPtr(), + kImage1Url, kDescLang, processor[2].GetPtr(), base::BindOnce(&ReportResult, &error[2], &annotations[2])); test_task_env.RunUntilIdle(); @@ -1613,7 +1687,7 @@ test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1)); EXPECT_THAT(test_url_factory.requests(), SizeIs(1)); annotator.AnnotateImage( - kImage1Url, processor[3].GetPtr(), + kImage1Url, kDescLang, processor[3].GetPtr(), base::BindOnce(&ReportResult, &error[3], &annotations[3])); test_task_env.RunUntilIdle(); @@ -1674,13 +1748,13 @@ // Request annotation for images 1, 2 and 3. annotator.AnnotateImage( - kImage1Url, processor[0].GetPtr(), + kImage1Url, kDescLang, processor[0].GetPtr(), base::BindOnce(&ReportResult, &error[0], &annotations[0])); annotator.AnnotateImage( - kImage2Url, processor[1].GetPtr(), + kImage2Url, kDescLang, processor[1].GetPtr(), base::BindOnce(&ReportResult, &error[1], &annotations[1])); annotator.AnnotateImage( - kImage3Url, processor[2].GetPtr(), + kImage3Url, kDescLang, processor[2].GetPtr(), base::BindOnce(&ReportResult, &error[2], &annotations[2])); test_task_env.RunUntilIdle(); @@ -1856,6 +1930,199 @@ false, 1); } +// Test that description language preferences are sent to the server. +TEST(AnnotatorTest, DescLanguage) { + base::test::ScopedTaskEnvironment test_task_env( + base::test::ScopedTaskEnvironment::MainThreadType::MOCK_TIME); + TestServerURLLoaderFactory test_url_factory( + "https://ia-pa.googleapis.com/v1/"); + data_decoder::TestDataDecoderService test_dd_service; + base::HistogramTester histogram_tester; + + Annotator annotator( + GURL(kTestServerUrl), std::string() /* api_key */, kThrottle, + 3 /* batch_size */, 1.0 /* min_ocr_confidence */, + test_url_factory.AsSharedURLLoaderFactory(), test_dd_service.connector()); + + TestImageProcessor processor[3]; + base::Optional<mojom::AnnotateImageError> error[3]; + std::vector<mojom::Annotation> annotations[3]; + + // Request annotation for one image in two languages, and one other image in + // one language. + annotator.AnnotateImage( + kImage1Url, "fr", processor[0].GetPtr(), + base::BindOnce(&ReportResult, &error[0], &annotations[0])); + annotator.AnnotateImage( + kImage1Url, "en-AU", processor[1].GetPtr(), + base::BindOnce(&ReportResult, &error[1], &annotations[1])); + annotator.AnnotateImage( + kImage2Url, "en-US", processor[2].GetPtr(), + base::BindOnce(&ReportResult, &error[2], &annotations[2])); + test_task_env.RunUntilIdle(); + + // Annotator should have asked processor 1 and 2 for image 1's pixels and + // processor 3 for image 2's pixels. + ASSERT_THAT(processor[0].callbacks(), SizeIs(1)); + ASSERT_THAT(processor[1].callbacks(), SizeIs(1)); + ASSERT_THAT(processor[2].callbacks(), SizeIs(1)); + + // Send back image data. Image 2 is out of policy. + std::move(processor[0].callbacks()[0]).Run({1, 2, 3}, kDescDim, kDescDim); + processor[0].callbacks().pop_back(); + std::move(processor[1].callbacks()[0]).Run({1, 2, 3}, kDescDim, kDescDim); + processor[1].callbacks().pop_back(); + std::move(processor[2].callbacks()[0]) + .Run({4, 5, 6}, Annotator::kDescMinDimension - 1, + Annotator::kDescMinDimension); + processor[2].callbacks().pop_back(); + test_task_env.RunUntilIdle(); + + // No request should be sent yet (because service is waiting to batch up + // multiple requests). + EXPECT_THAT(test_url_factory.requests(), IsEmpty()); + test_task_env.FastForwardBy(base::TimeDelta::FromSeconds(1)); + + // A single HTTP request for all images should have been sent. + test_url_factory.ExpectRequestAndSimulateResponse( + "annotation", {} /* expected_headers */, + // Image requests should include the preferred language in their image IDs + // and description parameters (except for image 2 which should not include + // description parameters). + ReformatJson(R"( + { + "imageRequests": [ + { + "imageId": "https://www.example.com/image2.jpg en-US", + "imageBytes": "BAUG", + "engineParameters": [ + {"ocrParameters": {}} + ] + }, + { + "imageId": "https://www.example.com/image1.jpg en-AU", + "imageBytes": "AQID", + "engineParameters": [ + {"ocrParameters": {}}, + { + "descriptionParameters": { + "preferredLanguages": ["en-AU"] + } + } + ] + }, + { + "imageId": "https://www.example.com/image1.jpg fr", + "imageBytes": "AQID", + "engineParameters": [ + {"ocrParameters": {}}, + { + "descriptionParameters": { + "preferredLanguages": ["fr"] + } + } + ] + } + ] + } + )"), + R"( + { + "results": [ + { + "imageId": "https://www.example.com/image1.jpg en-AU", + "engineResults": [ + { + "status": {}, + "ocrEngine": { + "ocrRegions": [{ + "words": [{ + "detectedText": "1", + "confidenceScore": 1.0 + }] + }] + } + }, + { + "status": {}, + "descriptionEngine": { + "descriptionList": { + "descriptions": [{ + "type": "CAPTION", + "text": "This is an example image.", + "score": 1.0 + }] + } + } + } + ] + }, + { + "imageId": "https://www.example.com/image1.jpg fr", + "engineResults": [ + { + "status": {}, + "ocrEngine": { + "ocrRegions": [{ + "words": [{ + "detectedText": "1", + "confidenceScore": 1.0 + }] + }] + } + }, + { + "status": {}, + "descriptionEngine": { + "descriptionList": { + "descriptions": [{ + "type": "CAPTION", + "text": "Ceci est un exemple d'image.", + "score": 1.0 + }] + } + } + } + ] + }, + { + "imageId": "https://www.example.com/image2.jpg en-US", + "engineResults": [ + { + "status": {}, + "ocrEngine": { + "ocrRegions": [{ + "words": [{ + "detectedText": "2", + "confidenceScore": 1.0 + }] + }] + } + } + ] + } + ] + } + )", + net::HTTP_OK); + test_task_env.RunUntilIdle(); + + // Annotator should have called each callback with its corresponding results. + ASSERT_THAT(error, ElementsAre(base::nullopt, base::nullopt, base::nullopt)); + EXPECT_THAT( + annotations[0], + UnorderedElementsAre(AnnotatorEq(mojom::AnnotationType::kOcr, 1.0, "1"), + AnnotatorEq(mojom::AnnotationType::kCaption, 1.0, + "Ceci est un exemple d'image."))); + EXPECT_THAT( + annotations[1], + UnorderedElementsAre(AnnotatorEq(mojom::AnnotationType::kOcr, 1.0, "1"), + AnnotatorEq(mojom::AnnotationType::kCaption, 1.0, + "This is an example image."))); + EXPECT_THAT(annotations[2], UnorderedElementsAre(AnnotatorEq( + mojom::AnnotationType::kOcr, 1.0, "2"))); +} + // Test that the specified API key is sent, but only to Google-associated server // domains. TEST(AnnotatorTest, ApiKey) { @@ -1875,7 +2142,8 @@ test_dd_service.connector()); TestImageProcessor processor; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), base::DoNothing()); + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), + base::DoNothing()); test_task_env.RunUntilIdle(); // Annotator should have asked processor for pixels. @@ -1908,7 +2176,8 @@ test_dd_service.connector()); TestImageProcessor processor; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), base::DoNothing()); + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), + base::DoNothing()); test_task_env.RunUntilIdle(); // Annotator should have asked processor for pixels. @@ -1938,7 +2207,8 @@ test_dd_service.connector()); TestImageProcessor processor; - annotator.AnnotateImage(kImage1Url, processor.GetPtr(), base::DoNothing()); + annotator.AnnotateImage(kImage1Url, kDescLang, processor.GetPtr(), + base::DoNothing()); test_task_env.RunUntilIdle(); // Annotator should have asked processor for pixels.
diff --git a/services/image_annotation/public/mojom/image_annotation.mojom b/services/image_annotation/public/mojom/image_annotation.mojom index 9970aab..19574d3b 100644 --- a/services/image_annotation/public/mojom/image_annotation.mojom +++ b/services/image_annotation/public/mojom/image_annotation.mojom
@@ -50,13 +50,16 @@ // uniquely identifies an image (e.g. a hash of image content for a data // URI). Source IDs are used to query local and remote caches. // + // |description_language_tag| is the string representation of the BCP-47 code + // for the language in which descriptions should be generated (or empty for + // the default language). + // // |result| will contain either the error code specifying how annotation // failed, or the annotations extracted from the image. // // TODO(crbug.com/916420): expand this signature to include a request // argument when we support more than one type of // annotation. - // TODO(crbug.com/916420): add a language code as an arg / parameter. - AnnotateImage(string source_id, ImageProcessor image_processor) - => (AnnotateImageResult result); + AnnotateImage(string source_id, string description_language_tag, + ImageProcessor image_processor) => (AnnotateImageResult result); };
diff --git a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc index ef4012d..4f1bf3c 100644 --- a/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc +++ b/services/tracing/public/cpp/perfetto/trace_event_data_source_unittest.cc
@@ -749,8 +749,12 @@ TRACE_EVENT_PHASE_INSTANT, "toplevel", "ThreadControllerImpl::RunTask", TRACE_EVENT_SCOPE_THREAD | TRACE_EVENT_FLAG_TYPED_PROTO_ARGS, "src_file", "my_file", "src_func", "my_func"); + INTERNAL_TRACE_EVENT_ADD( + TRACE_EVENT_PHASE_INSTANT, "toplevel", "ThreadControllerImpl::RunTask", + TRACE_EVENT_SCOPE_THREAD | TRACE_EVENT_FLAG_TYPED_PROTO_ARGS, "src_file", + "my_file", "src_func", "my_func"); - EXPECT_EQ(producer_client()->GetFinalizedPacketCount(), 2u); + EXPECT_EQ(producer_client()->GetFinalizedPacketCount(), 3u); auto* e_packet = producer_client()->GetFinalizedPacket(1); ExpectTraceEvent(e_packet, /*category_iid=*/1u, /*name_iid=*/1u, TRACE_EVENT_PHASE_INSTANT, TRACE_EVENT_SCOPE_THREAD); @@ -763,6 +767,14 @@ EXPECT_EQ(locations.size(), 1); EXPECT_EQ(locations[0].file_name(), "my_file"); EXPECT_EQ(locations[0].function_name(), "my_func"); + + // Second event should refer to the same interning entries. + auto* e_packet2 = producer_client()->GetFinalizedPacket(2); + ExpectTraceEvent(e_packet2, /*category_iid=*/1u, /*name_iid=*/1u, + TRACE_EVENT_PHASE_INSTANT, TRACE_EVENT_SCOPE_THREAD); + + EXPECT_EQ(e_packet2->track_event().task_execution().posted_from_iid(), 1u); + EXPECT_EQ(e_packet2->interned_data().source_locations().size(), 0); } TEST_F(TraceEventDataSourceTest, TaskExecutionEventWithoutFunction) {
diff --git a/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc b/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc index 162b5b6..7b97f5c 100644 --- a/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc +++ b/services/tracing/public/cpp/perfetto/track_event_thread_local_event_sink.cc
@@ -429,12 +429,15 @@ } if (interned_source_location) { - auto* source_location_entry = interned_data->add_source_locations(); - source_location_entry->set_iid(interned_source_location->id); - source_location_entry->set_file_name(trace_event->arg_value(0).as_string); - if (trace_event->arg_size() > 1) { - source_location_entry->set_function_name( - trace_event->arg_value(1).as_string); + if (!interned_source_location->was_emitted) { + auto* source_location_entry = interned_data->add_source_locations(); + source_location_entry->set_iid(interned_source_location->id); + source_location_entry->set_file_name(trace_event->arg_value(0).as_string); + if (trace_event->arg_size() > 1) { + source_location_entry->set_function_name( + trace_event->arg_value(1).as_string); + } + interned_source_location->was_emitted = true; } } else if (!privacy_filtering_enabled_) { for (size_t i = 0; i < trace_event->arg_size() && trace_event->arg_name(i);
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json index abd4567..a1b2d3c 100644 --- a/testing/variations/fieldtrial_testing_config.json +++ b/testing/variations/fieldtrial_testing_config.json
@@ -2207,6 +2207,22 @@ ] } ], + "GpuRasterizationViewportRestriction": [ + { + "platforms": [ + "android", + "android_webview" + ], + "experiments": [ + { + "name": "Disabled", + "disable_features": [ + "EnableGpuRasterizationViewportRestriction" + ] + } + ] + } + ], "GpuScheduler": [ { "platforms": [ @@ -2642,23 +2658,6 @@ ] } ], - "LinkManagedNoticeToChromeUIManagementURL": [ - { - "platforms": [ - "linux", - "mac", - "windows" - ], - "experiments": [ - { - "name": "Enabled", - "enable_features": [ - "LinkManagedNoticeToChromeUIManagementURL" - ] - } - ] - } - ], "LookalikeUrlNavigationSuggestionsUI": [ { "platforms": [ @@ -4139,21 +4138,6 @@ ] } ], - "RemoveGpuRasterizationViewportRestriction": [ - { - "platforms": [ - "android" - ], - "experiments": [ - { - "name": "RemoveRestriction", - "disable_features": [ - "EnableGpuRasterizationViewportRestriction" - ] - } - ] - } - ], "RemoveNTPFakebox": [ { "platforms": [
diff --git a/third_party/blink/common/BUILD.gn b/third_party/blink/common/BUILD.gn index a4bfc68..7c26ca2 100644 --- a/third_party/blink/common/BUILD.gn +++ b/third_party/blink/common/BUILD.gn
@@ -67,6 +67,7 @@ "service_worker/service_worker_status_code.cc", "service_worker/service_worker_type_converters.cc", "service_worker/service_worker_utils.cc", + "web_package/signed_exchange_consts.cc", ] public_deps = [
diff --git a/third_party/blink/common/web_package/signed_exchange_consts.cc b/third_party/blink/common/web_package/signed_exchange_consts.cc new file mode 100644 index 0000000..ec50c6b --- /dev/null +++ b/third_party/blink/common/web_package/signed_exchange_consts.cc
@@ -0,0 +1,16 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/public/common/web_package/signed_exchange_consts.h" + +namespace blink { + +const char kSignedExchangeMimeType[] = "application/signed-exchange;v=b3"; + +// Currently we are using "-04" suffix in case Variants spec changes. +// https://httpwg.org/http-extensions/draft-ietf-httpbis-variants.html#variants +const char kSignedExchangeVariantsHeader[] = "variants-04"; +const char kSignedExchangeVariantKeyHeader[] = "variant-key-04"; + +} // namespace blink
diff --git a/third_party/blink/public/common/BUILD.gn b/third_party/blink/public/common/BUILD.gn index ddd2d06..e0c7db7 100644 --- a/third_party/blink/public/common/BUILD.gn +++ b/third_party/blink/public/common/BUILD.gn
@@ -101,6 +101,7 @@ "service_worker/service_worker_types.h", "service_worker/service_worker_utils.h", "user_agent/user_agent_metadata.h", + "web_package/signed_exchange_consts.h", ] public_deps = [
diff --git a/third_party/blink/public/common/web_package/signed_exchange_consts.h b/third_party/blink/public/common/web_package/signed_exchange_consts.h new file mode 100644 index 0000000..d9c67d9 --- /dev/null +++ b/third_party/blink/public/common/web_package/signed_exchange_consts.h
@@ -0,0 +1,21 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_PUBLIC_COMMON_WEB_PACKAGE_SIGNED_EXCHANGE_CONSTS_H_ +#define THIRD_PARTY_BLINK_PUBLIC_COMMON_WEB_PACKAGE_SIGNED_EXCHANGE_CONSTS_H_ + +#include <stddef.h> +#include <string> + +#include "third_party/blink/public/common/common_export.h" + +namespace blink { + +BLINK_COMMON_EXPORT extern const char kSignedExchangeVariantsHeader[]; +BLINK_COMMON_EXPORT extern const char kSignedExchangeVariantKeyHeader[]; +BLINK_COMMON_EXPORT extern const char kSignedExchangeMimeType[]; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_PUBLIC_COMMON_WEB_PACKAGE_SIGNED_EXCHANGE_CONSTS_H_
diff --git a/third_party/blink/renderer/bindings/IDLExtendedAttributes.md b/third_party/blink/renderer/bindings/IDLExtendedAttributes.md index f29c7d3..89f59d5 100644 --- a/third_party/blink/renderer/bindings/IDLExtendedAttributes.md +++ b/third_party/blink/renderer/bindings/IDLExtendedAttributes.md
@@ -114,7 +114,7 @@ ### interface mixins -Extended attributes on members of an interface mixin work as normal. However, only the following 5 extended attributes can be used on the interface mixin itself; otherwise extended attributes should appear on the main (including) interface definition: +Extended attributes on members of an interface mixin work as normal. However, only the following 4 extended attributes can be used on the interface mixin itself; otherwise extended attributes should appear on the main (including) interface definition: * `[LegacyTreatAsPartialInterface]` is part of an ongoing change, as interface mixins used to be treated internally as partial interfaces.
diff --git a/third_party/blink/renderer/core/BUILD.gn b/third_party/blink/renderer/core/BUILD.gn index ca31874..667ed6f 100644 --- a/third_party/blink/renderer/core/BUILD.gn +++ b/third_party/blink/renderer/core/BUILD.gn
@@ -2093,6 +2093,7 @@ "layout/svg/layout_svg_text_test.cc", "layout/text_autosizer_test.cc", "layout/visual_rect_mapping_test.cc", + "loader/alternate_signed_exchange_resource_info_test.cc", "loader/base_fetch_context_test.cc", "loader/document_load_timing_test.cc", "loader/document_loader_test.cc", @@ -2221,6 +2222,7 @@ "style/style_difference_test.cc", "style/svg_computed_style_test.cc", "svg/graphics/svg_image_test.cc", + "svg/svg_element_test.cc", "svg/svg_path_parser_test.cc", "svg/svg_text_content_element_test.cc", "svg/unsafe_svg_attribute_sanitization_test.cc",
diff --git a/third_party/blink/renderer/core/editing/finder/find_buffer.cc b/third_party/blink/renderer/core/editing/finder/find_buffer.cc index 8ace57e..68390d28 100644 --- a/third_party/blink/renderer/core/editing/finder/find_buffer.cc +++ b/third_party/blink/renderer/core/editing/finder/find_buffer.cc
@@ -317,13 +317,17 @@ void FindBuffer::CollectTextUntilBlockBoundary( const EphemeralRangeInFlatTree& range) { DCHECK(range.IsNotNull() && !range.IsCollapsed()) << range; + + node_after_block_ = nullptr; + const Node* const first_node = range.StartPosition().NodeAsRangeFirstNode(); + if (!first_node) + return; // Get first visible text node from |start_position|. Node* node = GetVisibleTextNode(*range.StartPosition().NodeAsRangeFirstNode()); - if (!node || !node->isConnected()) { - node_after_block_ = nullptr; + if (!node || !node->isConnected()) return; - } + Node& block_ancestor = GetLowestDisplayBlockInclusiveAncestor(*node); const Node* just_after_block = FlatTreeTraversal::Next( FlatTreeTraversal::LastWithinOrSelf(block_ancestor));
diff --git a/third_party/blink/renderer/core/editing/finder/find_buffer_test.cc b/third_party/blink/renderer/core/editing/finder/find_buffer_test.cc index 88638e5..713fdd8 100644 --- a/third_party/blink/renderer/core/editing/finder/find_buffer_test.cc +++ b/third_party/blink/renderer/core/editing/finder/find_buffer_test.cc
@@ -645,4 +645,10 @@ EXPECT_EQ(0u, buffer.FindMatches("find", 0)->CountForTesting()); } +TEST_F(FindBufferTest, NullRange) { + SetBodyContent("x<div></div>"); + FindBuffer buffer(WholeDocumentRange()); + EXPECT_EQ(0u, buffer.FindMatches("find", 0)->CountForTesting()); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc b/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc index 974f117..67b24bce 100644 --- a/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc +++ b/third_party/blink/renderer/core/exported/web_associated_url_loader_impl.cc
@@ -216,7 +216,7 @@ WebHTTPHeaderSet blocked_headers; for (const auto& header : response.HttpHeaderFields()) { if (FetchUtils::IsForbiddenResponseHeaderName(header.key) || - (!cors::IsOnAccessControlResponseHeaderWhitelist(header.key) && + (!cors::IsCorsSafelistedResponseHeader(header.key) && exposed_headers.find(header.key.Ascii().data()) == exposed_headers.end())) blocked_headers.insert(header.key.Ascii().data());
diff --git a/third_party/blink/renderer/core/fetch/fetch_response_data.cc b/third_party/blink/renderer/core/fetch/fetch_response_data.cc index 6b8f63f..83eed1d 100644 --- a/third_party/blink/renderer/core/fetch/fetch_response_data.cc +++ b/third_party/blink/renderer/core/fetch/fetch_response_data.cc
@@ -99,7 +99,7 @@ response->SetURLList(url_list_); for (const auto& header : header_list_->List()) { const String& name = header.first; - if (cors::IsOnAccessControlResponseHeaderWhitelist(name) || + if (cors::IsCorsSafelistedResponseHeader(name) || (exposed_headers.find(name.Ascii().data()) != exposed_headers.end() && !FetchUtils::IsForbiddenResponseHeaderName(name))) { response->header_list_->Append(name, header.second);
diff --git a/third_party/blink/renderer/core/layout/layout_block.cc b/third_party/blink/renderer/core/layout/layout_block.cc index 3ac6079..255bbdb3 100644 --- a/third_party/blink/renderer/core/layout/layout_block.cc +++ b/third_party/blink/renderer/core/layout/layout_block.cc
@@ -166,13 +166,13 @@ if (old_style && Parent()) { bool old_style_contains_fixed_position = old_style->CanContainFixedPositionObjects(IsDocumentElement()) || - ShouldApplyPaintContainment() || ShouldApplyLayoutContainment(); + old_style->ContainsPaint() || old_style->ContainsLayout(); bool old_style_contains_absolute_position = old_style_contains_fixed_position || old_style->CanContainAbsolutePositionObjects(); bool new_style_contains_fixed_position = new_style.CanContainFixedPositionObjects(IsDocumentElement()) || - ShouldApplyPaintContainment() || ShouldApplyLayoutContainment(); + new_style.ContainsPaint() || new_style.ContainsLayout(); bool new_style_contains_absolute_position = new_style_contains_fixed_position || new_style.CanContainAbsolutePositionObjects();
diff --git a/third_party/blink/renderer/core/layout/layout_block_test.cc b/third_party/blink/renderer/core/layout/layout_block_test.cc index aa1b4ce3..6669dd6 100644 --- a/third_party/blink/renderer/core/layout/layout_block_test.cc +++ b/third_party/blink/renderer/core/layout/layout_block_test.cc
@@ -97,4 +97,34 @@ #endif } +TEST_F(LayoutBlockTest, ContainmentStyleChange) { + SetBodyInnerHTML(R"HTML( + <style> + * { display: block } + </style> + <div id=target style="contain:strict"> + <div> + <div> + <div id=contained style="position: fixed"></div> + <div></div> + <div> + </div> + </div> + )HTML"); + + Element* target_element = GetDocument().getElementById("target"); + LayoutBlockFlow* target = + ToLayoutBlockFlow(target_element->GetLayoutObject()); + LayoutBox* contained = ToLayoutBox(GetLayoutObjectByElementId("contained")); + EXPECT_TRUE(target->PositionedObjects()->Contains(contained)); + + // Remove layout containment. This should cause |contained| to now be + // in the positioned objects set for the LayoutView, not |target|. + target_element->setAttribute(html_names::kStyleAttr, "contain:style"); + UpdateAllLifecyclePhasesForTest(); + EXPECT_FALSE(target->PositionedObjects()); + EXPECT_TRUE( + GetDocument().GetLayoutView()->PositionedObjects()->Contains(contained)); +} + } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc index ea43555..6b84be4 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
@@ -434,8 +434,7 @@ // text-transform CSS property changes text length. NGOffsetMappingBuilder& mapping_builder = builder.GetOffsetMappingBuilder(); mapping_builder.SetDestinationString(data->text_content); - data->offset_mapping = - std::make_unique<NGOffsetMapping>(mapping_builder.Build()); + data->offset_mapping = mapping_builder.Build(); DCHECK(data->offset_mapping); }
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc index a42a9cd..fab78c10 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.cc
@@ -235,11 +235,6 @@ return nullptr; } -NGOffsetMapping::NGOffsetMapping(NGOffsetMapping&& other) - : NGOffsetMapping(std::move(other.units_), - std::move(other.ranges_), - other.text_) {} - NGOffsetMapping::NGOffsetMapping(UnitVector&& units, RangeMap&& ranges, String text)
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h index 05f2b03..a8b59f75 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h
@@ -117,7 +117,6 @@ using RangeMap = HashMap<Persistent<const Node>, std::pair<unsigned, unsigned>>; - NGOffsetMapping(NGOffsetMapping&&); NGOffsetMapping(UnitVector&&, RangeMap&&, String); ~NGOffsetMapping();
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.cc b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.cc index f04e45d..8969d67f 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.cc +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.cc
@@ -180,7 +180,7 @@ destination_string_ = string; } -NGOffsetMapping NGOffsetMappingBuilder::Build() { +std::unique_ptr<NGOffsetMapping> NGOffsetMappingBuilder::Build() { // All mapping units are already built. Scan them to build mapping ranges. for (unsigned range_start = 0; range_start < mapping_units_.size();) { const LayoutObject& layout_object = @@ -203,8 +203,8 @@ range_start = range_end; } - return NGOffsetMapping(std::move(mapping_units_), std::move(unit_ranges_), - destination_string_); + return std::make_unique<NGOffsetMapping>( + std::move(mapping_units_), std::move(unit_ranges_), destination_string_); } } // namespace blink
diff --git a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h index d9b95a96..fe84b2f 100644 --- a/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h +++ b/third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping_builder.h
@@ -5,6 +5,7 @@ #ifndef NGOffsetMappingBuilder_h #define NGOffsetMappingBuilder_h +#include <memory> #include "base/auto_reset.h" #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/core/layout/ng/inline/ng_offset_mapping.h" @@ -110,7 +111,7 @@ // Finalize and return the offset mapping. // This method can only be called once, as it can invalidate the stored data. - NGOffsetMapping Build(); + std::unique_ptr<NGOffsetMapping> Build(); private: const LayoutObject* current_layout_object_ = nullptr;
diff --git a/third_party/blink/renderer/core/layout/ng/ng_inline_layout_test.cc b/third_party/blink/renderer/core/layout/ng/ng_inline_layout_test.cc index cc971a2f..17487fa 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_inline_layout_test.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_inline_layout_test.cc
@@ -44,7 +44,7 @@ ASSERT_FALSE(Compositor().NeedsBeginFrame()); Element* target = GetDocument().getElementById("target"); - LayoutBlockFlow* block_flow = ToLayoutBlockFlow(target->GetLayoutObject()); + auto* block_flow = To<LayoutBlockFlow>(target->GetLayoutObject()); NGConstraintSpace constraint_space = ConstraintSpaceForElement(block_flow); NGBlockNode node(block_flow); @@ -69,7 +69,7 @@ ASSERT_FALSE(Compositor().NeedsBeginFrame()); Element* target = GetDocument().getElementById("target"); - LayoutBlockFlow* block_flow = ToLayoutBlockFlow(target->GetLayoutObject()); + auto* block_flow = To<LayoutBlockFlow>(target->GetLayoutObject()); NGConstraintSpace constraint_space = ConstraintSpaceForElement(block_flow); NGBlockNode node(block_flow);
diff --git a/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc b/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc index c28116a..1a98c06 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_layout_result_caching_test.cc
@@ -39,8 +39,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -79,8 +79,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -140,8 +140,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -177,8 +177,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -212,8 +212,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -247,8 +247,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -281,8 +281,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -315,8 +315,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -349,8 +349,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching(); @@ -383,8 +383,8 @@ </div> )HTML"); - LayoutBlockFlow* test = ToLayoutBlockFlow(GetLayoutObjectByElementId("test")); - LayoutBlockFlow* src = ToLayoutBlockFlow(GetLayoutObjectByElementId("src")); + auto* test = To<LayoutBlockFlow>(GetLayoutObjectByElementId("test")); + auto* src = To<LayoutBlockFlow>(GetLayoutObjectByElementId("src")); const NGConstraintSpace& space = src->GetCachedLayoutResult()->GetConstraintSpaceForCaching();
diff --git a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc index b24174f..a373b88 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part_test.cc
@@ -57,7 +57,7 @@ // Test whether the oof fragments have been collected at NG->Legacy boundary. Element* rel = GetDocument().getElementById("rel"); - LayoutBlockFlow* block_flow = ToLayoutBlockFlow(rel->GetLayoutObject()); + auto* block_flow = To<LayoutBlockFlow>(rel->GetLayoutObject()); scoped_refptr<const NGLayoutResult> result = block_flow->GetCachedLayoutResult(); EXPECT_TRUE(result);
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment_test.cc b/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment_test.cc index 332b50f..e135731 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment_test.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment_test.cc
@@ -13,14 +13,13 @@ NGPhysicalBoxFragmentTest() : NGLayoutTest() {} const NGPhysicalBoxFragment& GetBodyFragment() const { - return *ToLayoutBlockFlow(GetDocument().body()->GetLayoutObject()) + return *To<LayoutBlockFlow>(GetDocument().body()->GetLayoutObject()) ->CurrentFragment(); } const NGPhysicalBoxFragment& GetPhysicalBoxFragmentByElementId( const char* id) { - LayoutBlockFlow* layout_object = - ToLayoutBlockFlow(GetLayoutObjectByElementId(id)); + auto* layout_object = To<LayoutBlockFlow>(GetLayoutObjectByElementId(id)); DCHECK(layout_object); const NGPhysicalBoxFragment* fragment = layout_object->CurrentFragment(); DCHECK(fragment);
diff --git a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.cc b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.cc index e57161b..23dd88b 100644 --- a/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.cc +++ b/third_party/blink/renderer/core/layout/ng/ng_physical_container_fragment.cc
@@ -67,10 +67,11 @@ // added when we iterate the continuation chain. // See NGPhysicalBoxFragment::AddSelfOutlineRects(). if (LayoutObject* child_layout_object = child->GetLayoutObject()) { + auto* child_layout_block_flow = + DynamicTo<LayoutBlockFlow>(child_layout_object); if (child_layout_object->IsElementContinuation() || - (child_layout_object->IsLayoutBlockFlow() && - ToLayoutBlockFlow(child_layout_object) - ->IsAnonymousBlockContinuation())) + (child_layout_block_flow && + child_layout_block_flow->IsAnonymousBlockContinuation())) continue; }
diff --git a/third_party/blink/renderer/core/layout/scroll_anchor.cc b/third_party/blink/renderer/core/layout/scroll_anchor.cc index 0e03552..33870d9 100644 --- a/third_party/blink/renderer/core/layout/scroll_anchor.cc +++ b/third_party/blink/renderer/core/layout/scroll_anchor.cc
@@ -88,13 +88,11 @@ LayoutUnit max_y = std::max(local_bounds.MaxY(), ToLayoutBox(layout_object)->LayoutOverflowRect().MaxY()); - if (layout_object->IsLayoutBlockFlow() && - ToLayoutBlockFlow(layout_object)->ContainsFloats()) { + auto* layout_block_flow = DynamicTo<LayoutBlockFlow>(layout_object); + if (layout_block_flow && layout_block_flow->ContainsFloats()) { // Note that lowestFloatLogicalBottom doesn't include floating // grandchildren. - max_y = std::max( - max_y, - ToLayoutBlockFlow(layout_object)->LowestFloatLogicalBottom()); + max_y = std::max(max_y, layout_block_flow->LowestFloatLogicalBottom()); } local_bounds.ShiftMaxYEdgeTo(max_y); }
diff --git a/third_party/blink/renderer/core/layout/svg/svg_text_query.cc b/third_party/blink/renderer/core/layout/svg/svg_text_query.cc index 4c98322..93250c1 100644 --- a/third_party/blink/renderer/core/layout/svg/svg_text_query.cc +++ b/third_party/blink/renderer/core/layout/svg/svg_text_query.cc
@@ -54,7 +54,7 @@ if (layout_object->IsLayoutBlock()) { // If we're given a block element, it has to be a LayoutSVGText. DCHECK(layout_object->IsSVGText()); - LayoutBlockFlow* layout_block_flow = ToLayoutBlockFlow(layout_object); + auto* layout_block_flow = To<LayoutBlockFlow>(layout_object); // LayoutSVGText only ever contains a single line box. InlineFlowBox* flow_box = layout_block_flow->FirstLineBox();
diff --git a/third_party/blink/renderer/core/layout/text_autosizer.cc b/third_party/blink/renderer/core/layout/text_autosizer.cc index d2c81c9..ad780af 100644 --- a/third_party/blink/renderer/core/layout/text_autosizer.cc +++ b/third_party/blink/renderer/core/layout/text_autosizer.cc
@@ -699,8 +699,8 @@ flags |= POTENTIAL_ROOT; LayoutMultiColumnFlowThread* flow_thread = nullptr; - if (block->IsLayoutBlockFlow()) - flow_thread = ToLayoutBlockFlow(block)->MultiColumnFlowThread(); + if (auto* block_flow = DynamicTo<LayoutBlockFlow>(block)) + flow_thread = block_flow->MultiColumnFlowThread(); if ((mask & INDEPENDENT) && (IsIndependentDescendant(block) || block->IsTable() || (flow_thread && flow_thread->ColumnCount() > 1))) @@ -1394,7 +1394,7 @@ TextAutosizer::NGLayoutScope::NGLayoutScope(const NGBlockNode& node, LayoutUnit inline_size) : text_autosizer_(node.GetLayoutBox()->GetDocument().GetTextAutosizer()), - block_(ToLayoutBlockFlow(node.GetLayoutBox())) { + block_(To<LayoutBlockFlow>(node.GetLayoutBox())) { if (!text_autosizer_ || !text_autosizer_->ShouldHandleLayout() || block_->IsLayoutNGListMarker()) { // Bail if text autosizing isn't enabled, but also if this is a
diff --git a/third_party/blink/renderer/core/loader/BUILD.gn b/third_party/blink/renderer/core/loader/BUILD.gn index 2bd8b4c..a37bfeb 100644 --- a/third_party/blink/renderer/core/loader/BUILD.gn +++ b/third_party/blink/renderer/core/loader/BUILD.gn
@@ -6,6 +6,8 @@ blink_core_sources("loader") { sources = [ + "alternate_signed_exchange_resource_info.cc", + "alternate_signed_exchange_resource_info.h", "appcache/application_cache.cc", "appcache/application_cache.h", "appcache/application_cache_host.cc",
diff --git a/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.cc b/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.cc new file mode 100644 index 0000000..5867f42 --- /dev/null +++ b/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.cc
@@ -0,0 +1,124 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h" + +#include "third_party/blink/public/common/web_package/signed_exchange_consts.h" +#include "third_party/blink/public/platform/web_url.h" +#include "third_party/blink/renderer/platform/loader/link_header.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" +#include "third_party/blink/renderer/platform/wtf/hash_functions.h" +#include "third_party/blink/renderer/platform/wtf/text/string_hash.h" + +namespace blink { + +namespace { + +constexpr char kAlternate[] = "alternate"; +constexpr char kAllowedAltSxg[] = "allowed-alt-sxg"; + +using AlternateSignedExchangeMachingKey = + std::pair<String /* anchor */, + std::pair<String /* variants */, String /* variant_key */>>; + +AlternateSignedExchangeMachingKey MakeKey(const String& anchor, + const String& variants, + const String& variant_key) { + // Null string can't be used as a key of HashMap. + return std::make_pair( + anchor.IsNull() ? "" : anchor, + std::make_pair(variants.IsNull() ? "" : variants, + variant_key.IsNull() ? "" : variant_key)); +} + +void AddAlternateUrlIfValid( + const LinkHeader& header, + HashMap<AlternateSignedExchangeMachingKey, KURL>* alternate_urls) { + if (!header.Valid() || header.Url().IsEmpty() || + !header.Anchor().has_value() || header.Anchor()->IsEmpty() || + !EqualIgnoringASCIICase(header.Rel(), kAlternate) || + header.MimeType() != kSignedExchangeMimeType) { + return; + } + const KURL alternative_url(header.Url()); + const KURL anchor_url(*header.Anchor()); + if (!alternative_url.IsValid() || !anchor_url.IsValid()) + return; + alternate_urls->Set( + MakeKey(*header.Anchor(), header.Variants(), header.VariantKey()), + alternative_url); +} + +std::unique_ptr<AlternateSignedExchangeResourceInfo::Entry> +CreateEntryForLinkHeaderIfValid( + const LinkHeader& header, + const HashMap<AlternateSignedExchangeMachingKey, KURL>& alternate_urls) { + if (!header.Valid() || header.Url().IsEmpty() || + header.HeaderIntegrity().IsEmpty() || + !EqualIgnoringASCIICase(header.Rel(), kAllowedAltSxg)) { + return nullptr; + } + const KURL anchor_url(header.Url()); + if (!anchor_url.IsValid()) + return nullptr; + + KURL alternative_url; + const auto alternate_urls_it = alternate_urls.find( + MakeKey(header.Url(), header.Variants(), header.VariantKey())); + if (alternate_urls_it != alternate_urls.end()) + alternative_url = alternate_urls_it->value; + + return std::make_unique<AlternateSignedExchangeResourceInfo::Entry>( + anchor_url, alternative_url, header.HeaderIntegrity(), header.Variants(), + header.VariantKey()); +} + +} // namespace + +std::unique_ptr<AlternateSignedExchangeResourceInfo> +AlternateSignedExchangeResourceInfo::CreateIfValid( + const String& outer_link_header, + const String& inner_link_header) { + HashMap<AlternateSignedExchangeMachingKey, KURL> alternate_urls; + const auto outer_link_headers = LinkHeaderSet(outer_link_header); + for (const auto& header : outer_link_headers) { + AddAlternateUrlIfValid(header, &alternate_urls); + } + + EntryMap alternative_resources; + const auto inner_link_headers = LinkHeaderSet(inner_link_header); + for (const auto& header : inner_link_headers) { + auto alt_resource = CreateEntryForLinkHeaderIfValid(header, alternate_urls); + if (!alt_resource) + continue; + auto anchor_url = alt_resource->anchor_url(); + auto alternative_resources_it = alternative_resources.find(anchor_url); + if (alternative_resources_it == alternative_resources.end()) { + Vector<std::unique_ptr<Entry>> resource_list; + resource_list.emplace_back(std::move(alt_resource)); + alternative_resources.Set(anchor_url, std::move(resource_list)); + } else { + alternative_resources_it->value.emplace_back(std::move(alt_resource)); + } + } + if (alternative_resources.IsEmpty()) + return nullptr; + return std::make_unique<AlternateSignedExchangeResourceInfo>( + std::move(alternative_resources)); +} + +AlternateSignedExchangeResourceInfo::AlternateSignedExchangeResourceInfo( + EntryMap alternative_resources) + : alternative_resources_(std::move(alternative_resources)) {} + +AlternateSignedExchangeResourceInfo::Entry* +AlternateSignedExchangeResourceInfo::FindMatchingEntry(const KURL& url) const { + const auto it = alternative_resources_.find(url); + if (it == alternative_resources_.end()) + return nullptr; + // TODO(crbug.com/935267): Support variants and variant_key checking. + return it->value.back().get(); +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h b/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h new file mode 100644 index 0000000..15ef7f2 --- /dev/null +++ b/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h
@@ -0,0 +1,109 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_ALTERNATE_SIGNED_EXCHANGE_RESOURCE_INFO_H_ +#define THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_ALTERNATE_SIGNED_EXCHANGE_RESOURCE_INFO_H_ + +#include "base/macros.h" +#include "third_party/blink/renderer/core/core_export.h" +#include "third_party/blink/renderer/platform/weborigin/kurl.h" +#include "third_party/blink/renderer/platform/weborigin/kurl_hash.h" +#include "third_party/blink/renderer/platform/wtf/hash_map.h" +#include "third_party/blink/renderer/platform/wtf/hash_set.h" +#include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" +#include "third_party/blink/renderer/platform/wtf/vector.h" + +namespace blink { + +// AlternateSignedExchangeResourceInfo keeps the alternate signed exchange +// resource information which is extracted from "alternate" link headers in the +// outer response and "allowed-alt-sxg" link headers in the inner response while +// handling a signed exchange. +// Example: +// - In outer response: +// link: <https://distributor.example/publisher.example/image_jpeg.sxg>; +// rel="alternate"; +// type="application/signed-exchange;v=b3"; +// variants-04="accept;image/jpeg;image/webp"; +// variant-key-04="image/jpeg"; +// anchor="https://publisher.example/image"; +// - In inner response: +// link: <https://publisher.example/image>; +// rel="allowed-alt-sxg"; +// variants-04="accept;image/jpeg;image/webp"; +// variant-key-04="image/jpeg"; +// header-integrity="sha256-MEUCID..." +// - The |alternative_resources_| will be like this: +// { +// "https://publisher.example/image": [{ +// anchor_url: "https://publisher.example/image", +// alternative_url: +// "https://distributor.example/publisher.example/image_jpeg.sxg", +// header_integrity: "sha256-MEUCID...", +// variants: "accept;image/jpeg;image/webp", +// variant_key: "image/jpeg" +// }] +// } +// Note: When a valid "allowed-alt-sxg" link header exists in the inner response +// but there is no matching "alternate" link header in the outer response, this +// class keep the information with an invalid |alternative_url|. +// +// AlternateSignedExchangeResourceInfo is used only when +// SignedExchangeSubresourcePrefetch is enabled. +class CORE_EXPORT AlternateSignedExchangeResourceInfo { + public: + class CORE_EXPORT Entry { + public: + Entry(const KURL& anchor_url, + const KURL& alternative_url, + const String& header_integrity, + const String& variants, + const String& variant_key) + : anchor_url_(anchor_url), + alternative_url_(alternative_url), + header_integrity_(header_integrity), + variants_(variants), + variant_key_(variant_key) {} + const KURL& anchor_url() const { return anchor_url_; } + const KURL& alternative_url() const { return alternative_url_; } + const String& header_integrity() const { return header_integrity_; } + const String& variants() const { return variants_; } + const String& variant_key() const { return variant_key_; } + + private: + const KURL anchor_url_; + const KURL alternative_url_; + const String header_integrity_; + const String variants_; + const String variant_key_; + + DISALLOW_COPY_AND_ASSIGN(Entry); + }; + + using EntryMap = + HashMap<KURL /* anchor_url */, Vector<std::unique_ptr<Entry>>>; + + static std::unique_ptr<AlternateSignedExchangeResourceInfo> CreateIfValid( + const String& outer_link_header, + const String& inner_link_header); + + AlternateSignedExchangeResourceInfo(EntryMap alternative_resources); + ~AlternateSignedExchangeResourceInfo() = default; + + // Returns the best matching alternate resource. Currently this method just + // returns the last one. TODO(crbug.com/935267): Support variants and + // variant_key checking. + Entry* FindMatchingEntry(const KURL& url) const; + + private: + friend class AlternateSignedExchangeResourceInfoTest; + + const EntryMap alternative_resources_; + + DISALLOW_COPY_AND_ASSIGN(AlternateSignedExchangeResourceInfo); +}; + +} // namespace blink + +#endif // THIRD_PARTY_BLINK_RENDERER_CORE_LOADER_ALTERNATE_SIGNED_EXCHANGE_RESOURCE_INFO_H_
diff --git a/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info_test.cc b/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info_test.cc new file mode 100644 index 0000000..3787c9a --- /dev/null +++ b/third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info_test.cc
@@ -0,0 +1,310 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h" + +#include "base/macros.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" + +namespace blink { + +class AlternateSignedExchangeResourceInfoTest : public testing::Test { + public: + AlternateSignedExchangeResourceInfoTest() { + RuntimeEnabledFeatures::SetSignedExchangeSubresourcePrefetchEnabled(true); + } + ~AlternateSignedExchangeResourceInfoTest() override = default; + + protected: + const AlternateSignedExchangeResourceInfo::EntryMap& GetEntries( + const AlternateSignedExchangeResourceInfo* info) { + return info->alternative_resources_; + } + + private: + DISALLOW_COPY_AND_ASSIGN(AlternateSignedExchangeResourceInfoTest); +}; + +TEST_F(AlternateSignedExchangeResourceInfoTest, Empty) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid("", ""); + EXPECT_FALSE(info); +} + +TEST_F(AlternateSignedExchangeResourceInfoTest, Simple) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + // Outer link header + "<https://distributor.example/publisher.example/script.js.sxg>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "anchor=\"https://publisher.example/script.js\"", + // Inner link header + "<https://publisher.example/script.js>;" + "rel=\"allowed-alt-sxg\";" + "header-integrity=" + "\"sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=\""); + ASSERT_TRUE(info); + const auto& entries = GetEntries(info.get()); + ASSERT_EQ(1u, entries.size()); + const auto& it = entries.find(KURL("https://publisher.example/script.js")); + ASSERT_TRUE(it != entries.end()); + ASSERT_EQ(1u, it->value.size()); + const auto& resource = it->value.at(0); + EXPECT_EQ(KURL("https://publisher.example/script.js"), + resource->anchor_url()); + EXPECT_EQ(KURL("https://distributor.example/publisher.example/script.js.sxg"), + resource->alternative_url()); + EXPECT_EQ("sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=", + resource->header_integrity()); + EXPECT_TRUE(resource->variants().IsEmpty()); + EXPECT_TRUE(resource->variant_key().IsEmpty()); + + EXPECT_EQ(resource.get(), info->FindMatchingEntry( + KURL("https://publisher.example/script.js"))); + EXPECT_EQ(nullptr, + info->FindMatchingEntry(KURL("https://publisher.example/image"))); +} + +TEST_F(AlternateSignedExchangeResourceInfoTest, MultipleResources) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + // The first outer link header + "<https://distributor.example/publisher.example/script.js.sxg>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "anchor=\"https://publisher.example/script.js\"," + // The second outer_link_header + "<https://distributor.example/publisher.example/image.sxg>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "anchor=\"https://publisher.example/image\";", + // The first inner link header + "<https://publisher.example/script.js>;" + "rel=\"allowed-alt-sxg\";" + "header-integrity=" + "\"sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=\"," + // The second inner link header + "<https://publisher.example/image>;" + "rel=\"allowed-alt-sxg\";" + "header-integrity=" + "\"sha256-q1phjFcR+umcl0zBaEz6E5AGVlnc9yF0zOjDYi5c6aM=\""); + ASSERT_TRUE(info); + const auto& entries = GetEntries(info.get()); + ASSERT_EQ(2u, entries.size()); + { + const auto& it = entries.find(KURL("https://publisher.example/script.js")); + ASSERT_TRUE(it != entries.end()); + ASSERT_EQ(1u, it->value.size()); + const auto& resource = it->value.at(0); + EXPECT_EQ(KURL("https://publisher.example/script.js"), + resource->anchor_url()); + EXPECT_EQ( + KURL("https://distributor.example/publisher.example/script.js.sxg"), + resource->alternative_url()); + EXPECT_EQ("sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=", + resource->header_integrity()); + EXPECT_TRUE(resource->variants().IsEmpty()); + EXPECT_TRUE(resource->variant_key().IsEmpty()); + EXPECT_EQ(resource.get(), info->FindMatchingEntry( + KURL("https://publisher.example/script.js"))); + } + { + const auto& it = entries.find(KURL("https://publisher.example/image")); + ASSERT_TRUE(it != entries.end()); + ASSERT_EQ(1u, it->value.size()); + const auto& resource = it->value.at(0); + EXPECT_EQ(KURL("https://publisher.example/image"), resource->anchor_url()); + EXPECT_EQ(KURL("https://distributor.example/publisher.example/image.sxg"), + resource->alternative_url()); + EXPECT_EQ("sha256-q1phjFcR+umcl0zBaEz6E5AGVlnc9yF0zOjDYi5c6aM=", + resource->header_integrity()); + EXPECT_TRUE(resource->variants().IsEmpty()); + EXPECT_TRUE(resource->variant_key().IsEmpty()); + EXPECT_EQ(resource.get(), + info->FindMatchingEntry(KURL("https://publisher.example/image"))); + } +} + +TEST_F(AlternateSignedExchangeResourceInfoTest, + NoMatchingOuterAlternateLinkHeader) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + // Empty outer link header + "", + // Inner link header + "<https://publisher.example/script.js>;" + "rel=\"allowed-alt-sxg\";" + "header-integrity=" + "\"sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=\""); + ASSERT_TRUE(info); + const auto& entries = GetEntries(info.get()); + ASSERT_EQ(1u, entries.size()); + const auto& it = entries.find(KURL("https://publisher.example/script.js")); + ASSERT_TRUE(it != entries.end()); + ASSERT_EQ(1u, it->value.size()); + const auto& resource = it->value.at(0); + EXPECT_EQ(KURL("https://publisher.example/script.js"), + resource->anchor_url()); + EXPECT_FALSE(resource->alternative_url().IsValid()); + EXPECT_EQ("sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=", + resource->header_integrity()); + EXPECT_TRUE(resource->variants().IsEmpty()); + EXPECT_TRUE(resource->variant_key().IsEmpty()); + + EXPECT_EQ(resource.get(), info->FindMatchingEntry( + KURL("https://publisher.example/script.js"))); +} + +TEST_F(AlternateSignedExchangeResourceInfoTest, NoType) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + // Outer link header + "<https://distributor.example/publisher.example/script.js.sxg>;" + "rel=\"alternate\";" + "anchor=\"https://publisher.example/script.js\"", + // Inner link header + "<https://publisher.example/script.js>;" + "rel=\"allowed-alt-sxg\";" + "header-integrity=" + "\"sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=\""); + ASSERT_TRUE(info); + const auto& entries = GetEntries(info.get()); + ASSERT_EQ(1u, entries.size()); + const auto& it = entries.find(KURL("https://publisher.example/script.js")); + ASSERT_TRUE(it != entries.end()); + ASSERT_EQ(1u, it->value.size()); + const auto& resource = it->value.at(0); + EXPECT_EQ(KURL("https://publisher.example/script.js"), + resource->anchor_url()); + // If type is not "application/signed-exchange;v=b3", outer alternate link + // header is ignored. + EXPECT_FALSE(resource->alternative_url().IsValid()); + EXPECT_EQ("sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=", + resource->header_integrity()); + EXPECT_TRUE(resource->variants().IsEmpty()); + EXPECT_TRUE(resource->variant_key().IsEmpty()); + + EXPECT_EQ(resource.get(), info->FindMatchingEntry( + KURL("https://publisher.example/script.js"))); + EXPECT_EQ(nullptr, + info->FindMatchingEntry(KURL("https://publisher.example/image"))); +} + +TEST_F(AlternateSignedExchangeResourceInfoTest, InvalidOuterURL) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + // Outer link header: Outer URL is invalid. + "<INVALID_OUTER_URL>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "anchor=\"https://publisher.example/script.js\"", + // Inner link header + "<https://publisher.example/script.js>;" + "rel=\"allowed-alt-sxg\";" + "header-integrity=" + "\"sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=\""); + ASSERT_TRUE(info); + const auto& entries = GetEntries(info.get()); + ASSERT_EQ(1u, entries.size()); + const auto& it = entries.find(KURL("https://publisher.example/script.js")); + ASSERT_TRUE(it != entries.end()); + ASSERT_EQ(1u, it->value.size()); + const auto& resource = it->value.at(0); + EXPECT_EQ(KURL("https://publisher.example/script.js"), + resource->anchor_url()); + EXPECT_FALSE(resource->alternative_url().IsValid()); + EXPECT_EQ("sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=", + resource->header_integrity()); + EXPECT_TRUE(resource->variants().IsEmpty()); + EXPECT_TRUE(resource->variant_key().IsEmpty()); + + EXPECT_EQ(resource.get(), info->FindMatchingEntry( + KURL("https://publisher.example/script.js"))); +} + +TEST_F(AlternateSignedExchangeResourceInfoTest, InvalidInnerURL) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + // Outer link header: Inner URL is invalid. + "<https://distributor.example/publisher.example/script.js.sxg>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "anchor=\"INVALID_INNER_URL\"", + // Inner link header: Inner URL is invalid. + "<INVALID_INNER_URL>;" + "rel=\"allowed-alt-sxg\";" + "header-integrity=" + "\"sha256-7KheEN4nyNxE3c4yQZdgCBJthJ2UwgpLSBeSUpII+jg=\""); + ASSERT_FALSE(info); +} + +TEST_F(AlternateSignedExchangeResourceInfoTest, Variants) { + std::unique_ptr<AlternateSignedExchangeResourceInfo> info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + // The first outer link header + "<https://distributor.example/publisher.example/image_jpeg.sxg>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "variants-04=\"accept;image/jpeg,image/webp\";" + "variant-key-04=\"image/jpeg\";" + "anchor=\"https://publisher.example/image\";," + // The second outer link header + "<https://distributor.example/publisher.example/image_webp.sxg>;" + "rel=\"alternate\";" + "type=\"application/signed-exchange;v=b3\";" + "variants-04=\"accept;image/jpeg,image/webp\";" + "variant-key-04=\"image/webp\";" + "anchor=\"https://publisher.example/image\"", + // The first inner link header + "<https://publisher.example/image>;" + "rel=\"allowed-alt-sxg\";" + "variants-04=\"accept;image/jpeg,image/webp\";" + "variant-key-04=\"image/jpeg\";" + "header-integrity=" + "\"sha256-q1phjFcR+umcl0zBaEz6E5AGVlnc9yF0zOjDYi5c6aM=\"," + // The second inner link header + "<https://publisher.example/image>;" + "rel=\"allowed-alt-sxg\";" + "variants-04=\"accept;image/jpeg,image/webp\";" + "variant-key-04=\"image/webp\";" + "header-integrity=" + "\"sha256-KRcYU+BZK8Sb2ccJfDPz+uUKXDdB1PVToPugItdzRXY=\""); + ASSERT_TRUE(info); + const auto& entries = GetEntries(info.get()); + ASSERT_EQ(1u, entries.size()); + const auto& it = entries.find(KURL("https://publisher.example/image")); + ASSERT_TRUE(it != entries.end()); + ASSERT_EQ(2u, it->value.size()); + { + const auto& resource = it->value.at(0); + EXPECT_EQ(KURL("https://publisher.example/image"), resource->anchor_url()); + EXPECT_EQ( + KURL("https://distributor.example/publisher.example/image_jpeg.sxg"), + resource->alternative_url()); + EXPECT_EQ("sha256-q1phjFcR+umcl0zBaEz6E5AGVlnc9yF0zOjDYi5c6aM=", + resource->header_integrity()); + EXPECT_EQ("accept;image/jpeg,image/webp", resource->variants()); + EXPECT_EQ("image/jpeg", resource->variant_key()); + } + { + const auto& resource = it->value.at(1); + EXPECT_EQ(KURL("https://publisher.example/image"), resource->anchor_url()); + EXPECT_EQ( + KURL("https://distributor.example/publisher.example/image_webp.sxg"), + resource->alternative_url()); + EXPECT_EQ("sha256-KRcYU+BZK8Sb2ccJfDPz+uUKXDdB1PVToPugItdzRXY=", + resource->header_integrity()); + EXPECT_EQ("accept;image/jpeg,image/webp", resource->variants()); + EXPECT_EQ("image/webp", resource->variant_key()); + + // Currently FindMatchingEntry() just returns the last + // matching resource without checking variants and variant-key. + EXPECT_EQ(resource.get(), + info->FindMatchingEntry(KURL("https://publisher.example/image"))); + } +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc index f75d38e..09a26cc 100644 --- a/third_party/blink/renderer/core/loader/document_loader.cc +++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -58,6 +58,7 @@ #include "third_party/blink/renderer/core/inspector/console_message.h" #include "third_party/blink/renderer/core/inspector/inspector_trace_events.h" #include "third_party/blink/renderer/core/inspector/main_thread_debugger.h" +#include "third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h" #include "third_party/blink/renderer/core/loader/appcache/application_cache_host.h" #include "third_party/blink/renderer/core/loader/frame_fetch_context.h" #include "third_party/blink/renderer/core/loader/frame_loader.h" @@ -352,7 +353,8 @@ PreloadHelper::LoadLinksFromHeader( GetResponse().HttpHeaderField(http_names::kLink), GetResponse().CurrentRequestUrl(), *frame_, frame_->GetDocument(), - PreloadHelper::kOnlyLoadResources, media_policy, viewport); + PreloadHelper::kOnlyLoadResources, media_policy, viewport, + nullptr /* alternate_resource_info */); } void DocumentLoader::DidChangePerformanceTiming() { @@ -1158,7 +1160,9 @@ PreloadHelper::LoadLinksFromHeader( response_.HttpHeaderField(http_names::kLink), response_.CurrentRequestUrl(), *GetFrame(), nullptr, - PreloadHelper::kDoNotLoadResources, PreloadHelper::kLoadAll, nullptr); + PreloadHelper::kDoNotLoadResources, PreloadHelper::kLoadAll, + nullptr /* viewport_description_wrapper */, + nullptr /* alternate_resource_info */); if (!frame_->IsMainFrame() && response_.HasMajorCertificateErrors()) { MixedContentChecker::HandleCertificateError( GetFrame(), response_, mojom::RequestContextType::HYPERLINK);
diff --git a/third_party/blink/renderer/core/loader/preload_helper.cc b/third_party/blink/renderer/core/loader/preload_helper.cc index a4e53f9..9e4bfe4 100644 --- a/third_party/blink/renderer/core/loader/preload_helper.cc +++ b/third_party/blink/renderer/core/loader/preload_helper.cc
@@ -19,6 +19,7 @@ #include "third_party/blink/renderer/core/html/parser/html_preload_scanner.h" #include "third_party/blink/renderer/core/html/parser/html_srcset_parser.h" #include "third_party/blink/renderer/core/inspector/console_message.h" +#include "third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h" #include "third_party/blink/renderer/core/loader/importance_attribute.h" #include "third_party/blink/renderer/core/loader/link_load_parameters.h" #include "third_party/blink/renderer/core/loader/modulescript/module_script_fetch_request.h" @@ -465,7 +466,9 @@ Document* document, CanLoadResources can_load_resources, MediaPreloadPolicy media_policy, - ViewportDescriptionWrapper* viewport_description_wrapper) { + ViewportDescriptionWrapper* viewport_description_wrapper, + std::unique_ptr<AlternateSignedExchangeResourceInfo> + alternate_resource_info) { if (header_value.IsEmpty()) return; LinkHeaderSet header_set(header_value); @@ -478,7 +481,33 @@ if (media_policy == kOnlyLoadNonMedia && header.IsViewportDependent()) continue; - const LinkLoadParameters params(header, base_url); + LinkLoadParameters params(header, base_url); + if (alternate_resource_info && params.rel.IsLinkPreload()) { + DCHECK( + RuntimeEnabledFeatures::SignedExchangeSubresourcePrefetchEnabled()); + // TODO(crbug.com/935267): Support image_srcset and image_sizes. + const auto* alternative_resource = + alternate_resource_info->FindMatchingEntry(params.href); + if (alternative_resource && + alternative_resource->alternative_url().IsValid()) { + params.href = alternative_resource->alternative_url(); + // Change the rel to "prefetch" to trigger the prefetch logic. This + // request will be handled by a PrefetchURLLoader in the browser + // process. Note that this is triggered only during prefetch of the + // parent resource + // + // The prefetched signed exchange will be stored in the browser process. + // It will be passed to the renderer process in the next navigation, and + // the header integrity and the inner URL will be checked before + // processing the inner response. This renderer process can't add a new, + // undesirable alternative resource association that affects the next + // navigation, but can only populate things in the cache that can be + // used by the next navigation only when they requested the same URL + // with the same association mapping. TODO(crbug.com/935267): Implement + // this logic. + params.rel = LinkRelAttribute("prefetch"); + } + } // Sanity check to avoid re-entrancy here. if (params.href == base_url) continue;
diff --git a/third_party/blink/renderer/core/loader/preload_helper.h b/third_party/blink/renderer/core/loader/preload_helper.h index 1604bdb..7ef6395 100644 --- a/third_party/blink/renderer/core/loader/preload_helper.h +++ b/third_party/blink/renderer/core/loader/preload_helper.h
@@ -10,6 +10,7 @@ namespace blink { +class AlternateSignedExchangeResourceInfo; class Document; class LocalFrame; class SingleModuleClient; @@ -34,13 +35,15 @@ // can be preloaded at commit time. enum MediaPreloadPolicy { kLoadAll, kOnlyLoadNonMedia, kOnlyLoadMedia }; - static void LoadLinksFromHeader(const String& header_value, - const KURL& base_url, - LocalFrame&, - Document*, // can be nullptr - CanLoadResources, - MediaPreloadPolicy, - ViewportDescriptionWrapper*); + static void LoadLinksFromHeader( + const String& header_value, + const KURL& base_url, + LocalFrame&, + Document*, // can be nullptr + CanLoadResources, + MediaPreloadPolicy, + ViewportDescriptionWrapper*, + std::unique_ptr<AlternateSignedExchangeResourceInfo>); static Resource* StartPreload(ResourceType, FetchParameters&, ResourceFetcher*);
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc index 1462748..b43e4a7 100644 --- a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc +++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
@@ -11,6 +11,7 @@ #include "third_party/blink/renderer/core/frame/use_counter.h" #include "third_party/blink/renderer/core/frame/web_feature.h" #include "third_party/blink/renderer/core/inspector/inspector_trace_events.h" +#include "third_party/blink/renderer/core/loader/alternate_signed_exchange_resource_info.h" #include "third_party/blink/renderer/core/loader/document_loader.h" #include "third_party/blink/renderer/core/loader/frame_loader.h" #include "third_party/blink/renderer/core/loader/frame_or_imported_document.h" @@ -111,6 +112,21 @@ MixedContentChecker::CheckMixedPrivatePublic(&frame, response.RemoteIPAddress()); + std::unique_ptr<AlternateSignedExchangeResourceInfo> alternate_resource_info; + if (RuntimeEnabledFeatures::SignedExchangeSubresourcePrefetchEnabled() && + response.IsSignedExchangeInnerResponse() && + resource->GetType() == ResourceType::kLinkPrefetch && + resource->LastResourceResponse()) { + // If this is a prefetch for a SXG, see if the outer response (which must be + // the last response in the redirect chain) had provided alternate links for + // the prefetch. + alternate_resource_info = + AlternateSignedExchangeResourceInfo::CreateIfValid( + resource->LastResourceResponse()->HttpHeaderField( + http_names::kLink), + response.HttpHeaderField(http_names::kLink)); + } + PreloadHelper::CanLoadResources resource_loading_policy = response_source == ResponseSource::kFromMemoryCache ? PreloadHelper::kDoNotLoadResources @@ -118,7 +134,9 @@ PreloadHelper::LoadLinksFromHeader( response.HttpHeaderField(http_names::kLink), response.CurrentRequestUrl(), frame, &frame_or_imported_document_->GetDocument(), - resource_loading_policy, PreloadHelper::kLoadAll, nullptr); + resource_loading_policy, PreloadHelper::kLoadAll, + nullptr /* viewport_description_wrapper */, + std::move(alternate_resource_info)); if (response.HasMajorCertificateErrors()) { MixedContentChecker::HandleCertificateError(&frame, response,
diff --git a/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.cc b/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.cc index 4224ca1..3ed613fa 100644 --- a/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.cc +++ b/third_party/blink/renderer/core/paint/block_flow_paint_invalidator.cc
@@ -30,8 +30,9 @@ floating_object->GetLayoutObject()->IsDescendantOf(&block_flow_)))) { LayoutBox* floating_box = floating_object->GetLayoutObject(); floating_box->SetShouldDoFullPaintInvalidation(); - if (floating_box->IsLayoutBlockFlow()) - BlockFlowPaintInvalidator(*ToLayoutBlockFlow(floating_box)) + auto* floating_block_flow = DynamicTo<LayoutBlockFlow>(floating_box); + if (floating_block_flow) + BlockFlowPaintInvalidator(*floating_block_flow) .InvalidatePaintForOverhangingFloatsInternal( kDontInvalidateDescendants); }
diff --git a/third_party/blink/renderer/core/paint/block_painter.cc b/third_party/blink/renderer/core/paint/block_painter.cc index dfaa4c8..0914ddb 100644 --- a/third_party/blink/renderer/core/paint/block_painter.cc +++ b/third_party/blink/renderer/core/paint/block_painter.cc
@@ -292,14 +292,14 @@ } else if (ShouldPaintDescendantOutlines(paint_info.phase)) { ObjectPainter(layout_block_).PaintInlineChildrenOutlines(paint_info); } else { - LineBoxListPainter(ToLayoutBlockFlow(layout_block_).LineBoxes()) + LineBoxListPainter(To<LayoutBlockFlow>(layout_block_).LineBoxes()) .Paint(layout_block_, paint_info, paint_offset); } // If we don't have any floats to paint, or we're in the wrong paint phase, // then we're done for now. auto* floating_objects = - ToLayoutBlockFlow(layout_block_).GetFloatingObjects(); + To<LayoutBlockFlow>(layout_block_).GetFloatingObjects(); const PaintPhase paint_phase = paint_info.phase; if (!floating_objects || !(paint_phase == PaintPhase::kFloat || paint_phase == PaintPhase::kSelection ||
diff --git a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_test.cc b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_test.cc index d7dd29f8..f97b738 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_test.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_test.cc
@@ -57,8 +57,8 @@ <div id="container">12345 <span id="box">789 123456789 123<span> 567</div> </body> )HTML"); - LayoutBlockFlow* container = - ToLayoutBlockFlow(GetLayoutObjectByElementId("container")); + auto* container = + To<LayoutBlockFlow>(GetLayoutObjectByElementId("container")); ASSERT_TRUE(container); LayoutObject* text1 = container->FirstChild(); ASSERT_TRUE(text1 && text1->IsText());
diff --git a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_traversal_test.cc b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_traversal_test.cc index c9bc983..ca6e3ef 100644 --- a/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_traversal_test.cc +++ b/third_party/blink/renderer/core/paint/ng/ng_paint_fragment_traversal_test.cc
@@ -23,7 +23,7 @@ void SetUpHtml(const char* container_id, const char* html) { SetBodyInnerHTML(html); layout_block_flow_ = - ToLayoutBlockFlow(GetLayoutObjectByElementId(container_id)); + To<LayoutBlockFlow>(GetLayoutObjectByElementId(container_id)); root_fragment_ = layout_block_flow_->PaintFragment(); }
diff --git a/third_party/blink/renderer/core/paint/paint_invalidator.cc b/third_party/blink/renderer/core/paint/paint_invalidator.cc index 0b7d982..63239402 100644 --- a/third_party/blink/renderer/core/paint/paint_invalidator.cc +++ b/third_party/blink/renderer/core/paint/paint_invalidator.cc
@@ -164,8 +164,9 @@ context.painting_layer = object.PaintingLayer(); } - if (object.IsLayoutBlockFlow() && !object.IsLayoutNGBlockFlow() && - ToLayoutBlockFlow(object).ContainsFloats()) + auto* layout_block_flow = DynamicTo<LayoutBlockFlow>(object); + if (layout_block_flow && !object.IsLayoutNGBlockFlow() && + layout_block_flow->ContainsFloats()) context.painting_layer->SetNeedsPaintPhaseFloat(); if (object.IsFloating() &&
diff --git a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc index b4a021ac..9d00fbf 100644 --- a/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc +++ b/third_party/blink/renderer/core/paint/pre_paint_tree_walk.cc
@@ -170,8 +170,9 @@ } auto* node = object.GetNode(); - if (!node && object.IsLayoutBlockFlow() && - ToLayoutBlockFlow(object).IsAnonymousBlockContinuation()) { + auto* layout_block_flow = DynamicTo<LayoutBlockFlow>(object); + if (!node && layout_block_flow && + layout_block_flow->IsAnonymousBlockContinuation()) { // An anonymous continuation does not have handlers so we need to check the // DOM ancestor for handlers using |NodeForHitTest|. node = object.NodeForHitTest();
diff --git a/third_party/blink/renderer/core/svg/svg_element.cc b/third_party/blink/renderer/core/svg/svg_element.cc index 87fdfc6..9443f0d9 100644 --- a/third_party/blink/renderer/core/svg/svg_element.cc +++ b/third_party/blink/renderer/core/svg/svg_element.cc
@@ -1031,7 +1031,8 @@ } scoped_refptr<ComputedStyle> SVGElement::CustomStyleForLayoutObject() { - if (!CorrespondingElement()) + // TODO(http://crbug.com/953263): Eliminate isConnected check. + if (!CorrespondingElement() || !CorrespondingElement()->isConnected()) return GetDocument().EnsureStyleResolver().StyleForElement(this); const ComputedStyle* style = nullptr;
diff --git a/third_party/blink/renderer/core/svg/svg_element_test.cc b/third_party/blink/renderer/core/svg/svg_element_test.cc new file mode 100644 index 0000000..e60ce7d --- /dev/null +++ b/third_party/blink/renderer/core/svg/svg_element_test.cc
@@ -0,0 +1,55 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "third_party/blink/renderer/core/svg/svg_element.h" + +#include "third_party/blink/renderer/core/dom/flat_tree_traversal.h" +#include "third_party/blink/renderer/core/dom/shadow_root.h" +#include "third_party/blink/renderer/core/frame/local_dom_window.h" +#include "third_party/blink/renderer/core/html/html_element.h" +#include "third_party/blink/renderer/core/svg/svg_use_element.h" +#include "third_party/blink/renderer/core/testing/page_test_base.h" + +namespace blink { + +using LifecycleUpdateReason = DocumentLifecycle::LifecycleUpdateReason; + +class SVGElementTest : public PageTestBase {}; + +TEST_F(SVGElementTest, InstanceRemovedWhenNonAttachedTargetRemoved) { + GetDocument().body()->SetInnerHTMLFromString(R"HTML( + <style></style> + <svg> + <unknown> + <g id="parent"> + <a id="target"> + </g> + <use id="use" href="#parent"> + </unknown> + </svg> + )HTML"); + GetDocument().View()->UpdateAllLifecyclePhases(LifecycleUpdateReason::kTest); + + // Remove #target. + ASSERT_TRUE(GetDocument().getElementById("target")); + GetDocument().getElementById("target")->remove(); + + // This should cause a rebuild of the <use> shadow tree. + GetDocument().View()->UpdateAllLifecyclePhases(LifecycleUpdateReason::kTest); + + // There should be no instance for #target anymore, since that element was + // removed. + SVGUseElement* use = ToSVGUseElement(GetDocument().getElementById("use")); + ASSERT_TRUE(use); + ASSERT_TRUE(use->GetShadowRoot()); + Element* instance = use->GetShadowRoot()->getElementById("target"); + // TODO(https://crbug.com/953263): Change to ASSERT_FALSE once the issue + // is resolved. ASSERT_TRUE is used so we'll remember to update this test. + ASSERT_TRUE(instance); + + // TODO(https://crbug.com/953263): Remove when issue is resolved. + instance->EnsureComputedStyle(); // Don't crash. +} + +} // namespace blink
diff --git a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc index 78e6fc1..d84e7ac 100644 --- a/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc +++ b/third_party/blink/renderer/core/xmlhttprequest/xml_http_request.cc
@@ -1490,7 +1490,7 @@ continue; if (!same_origin_request_ && - !cors::IsOnAccessControlResponseHeaderWhitelist(it->key) && + !cors::IsCorsSafelistedResponseHeader(it->key) && access_control_expose_header_set.find(it->key.Ascii().data()) == access_control_expose_header_set.end()) continue; @@ -1525,8 +1525,7 @@ : network::mojom::FetchCredentialsMode::kSameOrigin, response_); - if (!same_origin_request_ && - !cors::IsOnAccessControlResponseHeaderWhitelist(name) && + if (!same_origin_request_ && !cors::IsCorsSafelistedResponseHeader(name) && access_control_expose_header_set.find(name.Ascii().data()) == access_control_expose_header_set.end()) { LogConsoleError(GetExecutionContext(),
diff --git a/third_party/blink/renderer/devtools/front_end/Tests.js b/third_party/blink/renderer/devtools/front_end/Tests.js index 49f2396..9ffe80a 100644 --- a/third_party/blink/renderer/devtools/front_end/Tests.js +++ b/third_party/blink/renderer/devtools/front_end/Tests.js
@@ -727,6 +727,35 @@ } }; + TestSuite.prototype.testKeyEventUnhandled = function() { + function onKeyEventUnhandledKeyDown(event) { + this.assertEquals('keydown', event.data.type); + this.assertEquals('F8', event.data.key); + this.assertEquals(119, event.data.keyCode); + this.assertEquals(0, event.data.modifiers); + this.assertEquals('', event.data.code); + InspectorFrontendHost.events.removeEventListener( + InspectorFrontendHostAPI.Events.KeyEventUnhandled, onKeyEventUnhandledKeyDown, this); + InspectorFrontendHost.events.addEventListener( + InspectorFrontendHostAPI.Events.KeyEventUnhandled, onKeyEventUnhandledKeyUp, this); + SDK.targetManager.mainTarget().inputAgent().invoke_dispatchKeyEvent( + {type: 'keyUp', key: 'F8', code: 'F8', windowsVirtualKeyCode: 119, nativeVirtualKeyCode: 119}); + } + function onKeyEventUnhandledKeyUp(event) { + this.assertEquals('keyup', event.data.type); + this.assertEquals('F8', event.data.key); + this.assertEquals(119, event.data.keyCode); + this.assertEquals(0, event.data.modifiers); + this.assertEquals('F8', event.data.code); + this.releaseControl(); + } + this.takeControl(); + InspectorFrontendHost.events.addEventListener( + InspectorFrontendHostAPI.Events.KeyEventUnhandled, onKeyEventUnhandledKeyDown, this); + SDK.targetManager.mainTarget().inputAgent().invoke_dispatchKeyEvent( + {type: 'rawKeyDown', key: 'F8', windowsVirtualKeyCode: 119, nativeVirtualKeyCode: 119}); + }; + TestSuite.prototype.testDispatchKeyEventDoesNotCrash = function() { SDK.targetManager.mainTarget().inputAgent().invoke_dispatchKeyEvent( {type: 'rawKeyDown', windowsVirtualKeyCode: 0x23, key: 'End'});
diff --git a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc index c39003e3..6b7e204d 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_layout_object.cc
@@ -693,11 +693,11 @@ // Ignore layout objects that are block flows with inline children. These // are usually dummy layout objects that pad out the tree, but there are // some exceptions below. - if (layout_object_->IsLayoutBlockFlow() && layout_object_->ChildrenInline() && - !CanSetFocusAttribute()) { + auto* block_flow = DynamicTo<LayoutBlockFlow>(*layout_object_); + if (block_flow && block_flow->ChildrenInline() && !CanSetFocusAttribute()) { // If the layout object has any plain text in it, that text will be // inside a LineBox, so the layout object will have a first LineBox. - bool has_any_text = HasLineBox(ToLayoutBlockFlow(*layout_object_)); + bool has_any_text = HasLineBox(*block_flow); // Always include interesting-looking objects. if (has_any_text || MouseButtonListener()) @@ -1789,12 +1789,12 @@ // Blocks with a previous continuation always have a next continuation, // so we can get the next continuation and do the same trick to get // the primary layout object associated with the node. - if (layout_object->IsLayoutBlockFlow() && - ToLayoutBlockFlow(layout_object)->InlineElementContinuation()) { - LayoutInline* result = ToLayoutInline(ToLayoutBlockFlow(layout_object) - ->InlineElementContinuation() - ->GetNode() - ->GetLayoutObject()); + auto* layout_block_flow = DynamicTo<LayoutBlockFlow>(layout_object); + if (layout_block_flow && layout_block_flow->InlineElementContinuation()) { + LayoutInline* result = + ToLayoutInline(layout_block_flow->InlineElementContinuation() + ->GetNode() + ->GetLayoutObject()); DCHECK_NE(result, layout_object); return result; } @@ -1825,11 +1825,9 @@ if (layout_object->IsElementContinuation()) return true; - if (layout_object->IsAnonymousBlock() && layout_object->IsLayoutBlockFlow() && - ToLayoutBlockFlow(layout_object)->Continuation()) - return true; - - return false; + auto* block_flow = DynamicTo<LayoutBlockFlow>(layout_object); + return block_flow && block_flow->IsAnonymousBlock() && + block_flow->Continuation(); } // See LAYOUT TREE WALKING ALGORITHM, above, for details. @@ -1839,8 +1837,8 @@ if (layout_object->IsLayoutInline()) return ToLayoutInline(layout_object)->Continuation(); - if (layout_object->IsLayoutBlockFlow()) - return ToLayoutBlockFlow(layout_object)->Continuation(); + if (auto* block_flow = DynamicTo<LayoutBlockFlow>(layout_object)) + return block_flow->Continuation(); return nullptr; } @@ -2100,15 +2098,13 @@ for (curr_layout_object = layout_object_; curr_layout_object && !curr_layout_object->GetNode(); curr_layout_object = curr_layout_object->Parent()) { - if (curr_layout_object->IsAnonymousBlock() && - curr_layout_object->IsLayoutBlockFlow()) { - LayoutObject* continuation = - ToLayoutBlockFlow(curr_layout_object)->Continuation(); - if (continuation) - return cache.GetOrCreate(continuation)->AnchorElement(); - } - } + auto* curr_block_flow = DynamicTo<LayoutBlockFlow>(curr_layout_object); + if (!curr_block_flow || !curr_block_flow->IsAnonymousBlock()) + continue; + if (LayoutObject* continuation = curr_block_flow->Continuation()) + return cache.GetOrCreate(continuation)->AnchorElement(); + } // bail if none found if (!curr_layout_object) return nullptr;
diff --git a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc index 19f1c4a..9764ccef 100644 --- a/third_party/blink/renderer/modules/accessibility/ax_node_object.cc +++ b/third_party/blink/renderer/modules/accessibility/ax_node_object.cc
@@ -1853,11 +1853,9 @@ static LayoutBlockFlow* NonInlineBlockFlow(LayoutObject* object) { LayoutObject* current = object; while (current) { - if (current->IsLayoutBlockFlow()) { - LayoutBlockFlow* block_flow = ToLayoutBlockFlow(current); - if (!block_flow->IsAtomicInlineLevel()) - return block_flow; - } + auto* block_flow = DynamicTo<LayoutBlockFlow>(current); + if (block_flow && !block_flow->IsAtomicInlineLevel()) + return block_flow; current = current->Parent(); }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc index eaaa6f3..c5cbe6e 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.cc
@@ -78,11 +78,6 @@ return TransportStateToString(current_state_.state()); } -const HeapVector<Member<DOMArrayBuffer>>& -RTCDtlsTransport::getRemoteCertificates() const { - return remote_certificates_; -} - RTCIceTransport* RTCDtlsTransport::iceTransport() const { return ice_transport_; } @@ -131,7 +126,6 @@ } void RTCDtlsTransport::Trace(Visitor* visitor) { - visitor->Trace(remote_certificates_); visitor->Trace(ice_transport_); DtlsTransportProxy::Delegate::Trace(visitor); EventTargetWithInlineData::Trace(visitor);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h index 04424f83..20d85e7 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.h
@@ -15,7 +15,6 @@ namespace blink { class DtlsTransportProxy; -class DOMArrayBuffer; class RTCIceTransport; enum class RTCDtlsTransportState { @@ -47,7 +46,6 @@ // rtc_dtls_transport.idl RTCIceTransport* iceTransport() const; String state() const; - const HeapVector<Member<DOMArrayBuffer>>& getRemoteCertificates() const; DEFINE_ATTRIBUTE_EVENT_LISTENER(statechange, kStatechange) DEFINE_ATTRIBUTE_EVENT_LISTENER(error, kError) @@ -68,7 +66,6 @@ private: webrtc::DtlsTransportInformation current_state_; - HeapVector<Member<DOMArrayBuffer>> remote_certificates_; rtc::scoped_refptr<webrtc::DtlsTransportInterface> native_transport_; std::unique_ptr<DtlsTransportProxy> proxy_; Member<RTCIceTransport> ice_transport_;
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.idl b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.idl index c514ca9..b7b9e42 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.idl +++ b/third_party/blink/renderer/modules/peerconnection/rtc_dtls_transport.idl
@@ -18,7 +18,8 @@ ] interface RTCDtlsTransport : EventTarget { readonly attribute RTCIceTransport iceTransport; readonly attribute RTCDtlsTransportState state; - sequence<ArrayBuffer> getRemoteCertificates(); + // TODO(https://crbug.com/943972): Implement getRemoteCertificates(). + // sequence<ArrayBuffer> getRemoteCertificates(); attribute EventHandler onstatechange; attribute EventHandler onerror; };
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc index cb729e1..e7db2c3 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.cc
@@ -23,6 +23,7 @@ #include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_peer_connection_ice_event_init.h" #include "third_party/blink/renderer/modules/peerconnection/rtc_quic_transport.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/scheduler/public/thread.h" #include "third_party/webrtc/api/ice_transport_factory.h" #include "third_party/webrtc/api/ice_transport_interface.h"
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.idl b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.idl index ce8f51f..6a14989 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.idl +++ b/third_party/blink/renderer/modules/peerconnection/rtc_ice_transport.idl
@@ -34,7 +34,6 @@ ConstructorCallWith=ExecutionContext, Exposed=Window, Measure, - RuntimeEnabled=RTCIceTransportExtension, SecureContext ] interface RTCIceTransport : EventTarget { // TODO(github.com/w3c/webrtc-ice/issues/4): role is non-null in the @@ -53,10 +52,10 @@ // The following is defined in the WebRTC-ICE extension specification. // https://w3c.github.io/webrtc-ice/#rtcicetransport* - [RaisesException] void gather(RTCIceGatherOptions options); - [RaisesException] void start(RTCIceParameters remoteParameters, optional RTCIceRole role = "controlled"); - void stop(); - [RaisesException] void addRemoteCandidate(RTCIceCandidate remoteCandidate); + [RuntimeEnabled=RTCIceTransportExtension, RaisesException] void gather(RTCIceGatherOptions options); + [RuntimeEnabled=RTCIceTransportExtension, RaisesException] void start(RTCIceParameters remoteParameters, optional RTCIceRole role = "controlled"); + [RuntimeEnabled=RTCIceTransportExtension] void stop(); + [RuntimeEnabled=RTCIceTransportExtension, RaisesException] void addRemoteCandidate(RTCIceCandidate remoteCandidate); // TODO(crbug.com/864871): Implement onerror. - attribute EventHandler onicecandidate; + [RuntimeEnabled=RTCIceTransportExtension] attribute EventHandler onicecandidate; };
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc index 12867593..590c14d4 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.cc
@@ -1924,28 +1924,43 @@ return false; } -ScriptPromise RTCPeerConnection::getStats( - ScriptState* script_state, - blink::ScriptValue callback_or_selector) { - auto argument = callback_or_selector.V8Value(); +ScriptPromise RTCPeerConnection::getStats(ScriptState* script_state) { + return getStats( + script_state, + ScriptValue(script_state, v8::Undefined(script_state->GetIsolate())), + ScriptValue(script_state, v8::Undefined(script_state->GetIsolate()))); +} + +ScriptPromise RTCPeerConnection::getStats(ScriptState* script_state, + ScriptValue callback_or_selector) { + return getStats( + script_state, std::move(callback_or_selector), + ScriptValue(script_state, v8::Undefined(script_state->GetIsolate()))); +} + +ScriptPromise RTCPeerConnection::getStats(ScriptState* script_state, + ScriptValue callback_or_selector, + ScriptValue legacy_selector) { + auto* isolate = script_state->GetIsolate(); + auto first_argument = callback_or_selector.V8Value(); // Custom binding for legacy "getStats(RTCStatsCallback callback)". - if (argument->IsFunction()) { + if (first_argument->IsFunction()) { V8RTCStatsCallback* success_callback = - V8RTCStatsCallback::Create(argument.As<v8::Function>()); - return LegacyCallbackBasedGetStats(script_state, success_callback, nullptr); + V8RTCStatsCallback::Create(first_argument.As<v8::Function>()); + MediaStreamTrack* selector_or_null = + V8MediaStreamTrack::ToImplWithTypeCheck(isolate, + legacy_selector.V8Value()); + return LegacyCallbackBasedGetStats(script_state, success_callback, + selector_or_null); } - // Custom binding for spec-compliant "getStats()" and "getStats(undefined)". - if (argument->IsUndefined()) - return PromiseBasedGetStats(script_state, nullptr); - auto* isolate = callback_or_selector.GetIsolate(); - // Custom binding for spec-compliant "getStats(MediaStreamTrack? selector)". - // null is a valid selector value, but value of wrong type isn't. |selector| - // set to no value means type error. - if (argument->IsNull()) + // Custom binding for spec-compliant + // "getStats(optional MediaStreamTrack? selector)". null is a valid selector + // value, but a value of the wrong type isn't. + if (first_argument->IsNullOrUndefined()) return PromiseBasedGetStats(script_state, nullptr); MediaStreamTrack* track = - V8MediaStreamTrack::ToImplWithTypeCheck(isolate, argument); + V8MediaStreamTrack::ToImplWithTypeCheck(isolate, first_argument); if (track) return PromiseBasedGetStats(script_state, track); @@ -1957,17 +1972,6 @@ return ScriptPromise::Reject(script_state, exception_state); } -ScriptPromise RTCPeerConnection::getStats(ScriptState* script_state, - V8RTCStatsCallback* success_callback, - MediaStreamTrack* selector) { - return LegacyCallbackBasedGetStats(script_state, success_callback, selector); -} - -ScriptPromise RTCPeerConnection::getStats(ScriptState* script_state, - MediaStreamTrack* selector) { - return PromiseBasedGetStats(script_state, selector); -} - ScriptPromise RTCPeerConnection::LegacyCallbackBasedGetStats( ScriptState* script_state, V8RTCStatsCallback* success_callback,
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h index 74d7161..20a59070 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.h
@@ -204,15 +204,14 @@ void removeStream(MediaStream*, ExceptionState&); - // Calls one of the below versions (or rejects with an exception) depending on - // type, see RTCPeerConnection.idl. - ScriptPromise getStats(ScriptState*, blink::ScriptValue callback_or_selector); - // Calls LegacyCallbackBasedGetStats(). - ScriptPromise getStats(ScriptState*, - V8RTCStatsCallback* success_callback, - MediaStreamTrack* selector = nullptr); - // Calls PromiseBasedGetStats(). - ScriptPromise getStats(ScriptState*, MediaStreamTrack* selector = nullptr); + // Calls LegacyCallbackBasedGetStats() or PromiseBasedGetStats() (or rejects + // with an exception) depending on type, see rtc_peer_connection.idl. + ScriptPromise getStats(ScriptState* script_state); + ScriptPromise getStats(ScriptState* script_state, + ScriptValue callback_or_selector); + ScriptPromise getStats(ScriptState* script_state, + ScriptValue callback_or_selector, + ScriptValue legacy_selector); ScriptPromise LegacyCallbackBasedGetStats( ScriptState*, V8RTCStatsCallback* success_callback,
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl index 7e247cc..548e300 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl +++ b/third_party/blink/renderer/modules/peerconnection/rtc_peer_connection.idl
@@ -109,23 +109,25 @@ [CallWith=ScriptState] Promise<void> setRemoteDescription(RTCSessionDescriptionInit description, VoidFunction successCallback, optional RTCPeerConnectionErrorCallback? failureCallback); [CallWith=ScriptState, RaisesException, MeasureAs=RTCPeerConnectionAddIceCandidateLegacy] Promise<void> addIceCandidate((RTCIceCandidateInit or RTCIceCandidate) candidate, VoidFunction successCallback, RTCPeerConnectionErrorCallback failureCallback); - // Legacy getStats() API. The returned metrics are a completely different - // set of metrics than the standard compliant version, presented in a - // different format. They are undocumented, implementation-specific and + // getStats() has a standardized version and a legacy non-standard version. + // + // In the legacy getStats() API the returned metrics are a completely + // different set of metrics than the standard compliant version, presented + // in a different format. They are undocumented, implementation-specific and // should go away but it is still heavily used. The selector argument can // optionally be used to filter the results only to return metrics relevant // for the selector. // TODO(hbos): Deprecate and remove this API. https://crbug.com/822696 - [CallWith=ScriptState] Promise<void> getStats(RTCStatsCallback successCallback, MediaStreamTrack? selector); + // // Due to a limitation of generated V8 bindings (https://crbug.com/828401), // it is not possible to express both legacy and spec-compliant versions of // getStats() in IDL. This version implements two different APIs with custom - // bindings to resolve which one to call in RTCPeerConnection.cpp: + // bindings to resolve which one to call in rtc_peer_connection.cc: // // 1. Promise<void> getStats(RTCStatsCallback successCallback, optional MediaStreamTrack? selector); - // This is the legacy getStats() API handling the case when the selector - // argument is missing, for more details on the legacy API and the IDL - // for when the selector is present, see above. + // Promise<void> getStats(RTCStatsCallback successCallback, any ignoredArgument) + // This is the legacy getStats() API, for more details on the legacy API + // and the IDL for when the selector is present, see above. // // 2. Promise<RTCStatsReport> getStats(optional MediaStreamTrack? selector = null); // This is the spec-compliant version of getStats(). Spec for API: @@ -134,7 +136,7 @@ // List of implemented stats: // https://cs.chromium.org/chromium/src/third_party/webrtc/api/stats/rtcstats_objects.h // See also RTCRtpSender.getStats() and RTCRtpReceiver.getStats(). - [CallWith=ScriptState] Promise<any> getStats(optional any callbackOrSelector); + [CallWith=ScriptState] Promise<any> getStats(optional any callbackOrSelector, optional any legacySelector); // RTP Media API // https://w3c.github.io/webrtc-pc/#dom-rtcpeerconnection-gettransceivers
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc index 6b00aee..0169fcc 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.cc
@@ -40,7 +40,7 @@ return transport_; } -RTCDtlsTransport* RTCRtpReceiver::rtcp_transport() { +RTCDtlsTransport* RTCRtpReceiver::rtcpTransport() { // Chrome does not support turning off RTCP-mux. return nullptr; }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.h b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.h index c6e4681..fa0b776 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.h
@@ -44,7 +44,7 @@ MediaStreamTrack* track() const; RTCDtlsTransport* transport(); - RTCDtlsTransport* rtcp_transport(); + RTCDtlsTransport* rtcpTransport(); double jitterBufferDelayHint(bool&, ExceptionState&); void setJitterBufferDelayHint(double, bool, ExceptionState&); RTCRtpReceiveParameters* getParameters();
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.idl b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.idl index 01827c2..4057ff28 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.idl +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_receiver.idl
@@ -7,7 +7,7 @@ interface RTCRtpReceiver { readonly attribute MediaStreamTrack track; [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? transport; - [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? rtcp_transport; + [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? rtcpTransport; [RaisesException, RuntimeEnabled=RtcJitterBufferDelayHint] attribute double? jitterBufferDelayHint; static RTCRtpCapabilities? getCapabilities(DOMString kind); RTCRtpReceiveParameters getParameters();
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc index 38ac347..db3ee08 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.cc
@@ -328,7 +328,7 @@ return transport_; } -RTCDtlsTransport* RTCRtpSender::rtcp_transport() { +RTCDtlsTransport* RTCRtpSender::rtcpTransport() { // Chrome does not support turning off RTCP-mux. return nullptr; }
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h index c216bec..14e5393 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.h
@@ -48,7 +48,7 @@ MediaStreamTrack* track(); RTCDtlsTransport* transport(); - RTCDtlsTransport* rtcp_transport(); + RTCDtlsTransport* rtcpTransport(); ScriptPromise replaceTrack(ScriptState*, MediaStreamTrack*); RTCDTMFSender* dtmf(); static RTCRtpCapabilities* getCapabilities(const String& kind);
diff --git a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl index c9bcb4bf..fb050cf 100644 --- a/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl +++ b/third_party/blink/renderer/modules/peerconnection/rtc_rtp_sender.idl
@@ -7,7 +7,7 @@ interface RTCRtpSender { readonly attribute MediaStreamTrack? track; [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? transport; - [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? rtcp_transport; + [RuntimeEnabled=RTCDtlsTransport] readonly attribute RTCDtlsTransport? rtcpTransport; static RTCRtpCapabilities? getCapabilities(DOMString kind); [RuntimeEnabled=RTCRtpSenderParameters, CallWith=ScriptState] Promise<void> setParameters(optional RTCRtpSendParameters parameters); [RuntimeEnabled=RTCRtpSenderParameters] RTCRtpSendParameters getParameters();
diff --git a/third_party/blink/renderer/platform/heap/asm/BUILD.gn b/third_party/blink/renderer/platform/heap/asm/BUILD.gn index 6c87950..a2fab32 100644 --- a/third_party/blink/renderer/platform/heap/asm/BUILD.gn +++ b/third_party/blink/renderer/platform/heap/asm/BUILD.gn
@@ -46,6 +46,10 @@ sources = [ "SaveRegisters_mips64.S", ] + } else if (current_cpu == "ppc64") { + sources = [ + "SaveRegisters_ppc64.S", + ] } if (current_cpu == "arm") {
diff --git a/third_party/blink/renderer/platform/heap/asm/SaveRegisters_ppc64.S b/third_party/blink/renderer/platform/heap/asm/SaveRegisters_ppc64.S new file mode 100644 index 0000000..14c8abaa --- /dev/null +++ b/third_party/blink/renderer/platform/heap/asm/SaveRegisters_ppc64.S
@@ -0,0 +1,54 @@ +/* + * typedef void (*PushAllRegistersCallback)(SafePointBarrier*, ThreadState*, intptr_t*); + * extern "C" void PushAllRegisters(SafePointBarrier*, ThreadState*, PushAllRegistersCallback) + */ + +.type PushAllRegisters, %function +.global PushAllRegisters +.hidden PushAllRegisters +PushAllRegisters: + // Push all callee-saves registers to get them + // on the stack for conservative stack scanning. + // Reserve space for callee-saved registers and minimal stack frame. + mflr 0 + std 0,16(1) + stdu 1,-176(1) // 3218*8 = min stack non-volatile registers + + // Save the callee-saved register + std 31,168(1) + std 30,160(1) + std 29,152(1) + std 28,144(1) + std 27,136(1) + std 26,128(1) + std 25,120(1) + std 24,112(1) + std 23,104(1) + std 22,96(1) + std 21,88(1) + std 20,80(1) + std 19,72(1) + std 18,64(1) + std 17,56(1) + std 16,48(1) + std 15,40(1) + std 14,32(1) + // Note: the callee-saved floating point registers do not need to be + // copied to the stack, because fp registers never hold heap pointers + // and so do not need to be kept visible to the garbage collector. + // Pass the two first arguments untouched in r3 and r4 and the + // stack pointer to the callback. + std 2, 24(1) + mtctr 5 + mr 12, 5 + mr 5, 1 + bctrl + ld 2, 24(1) + + // Adjust stack, restore return address and return. + // Note: the copied registers do not need to be reloaded here, + // because they were preserved by the called routine. + addi 1,1,176 + ld 0,16(1) + mtlr 0 + blr
diff --git a/third_party/blink/renderer/platform/heap/heap_page.h b/third_party/blink/renderer/platform/heap/heap_page.h index a6ac7118e..31f162f 100644 --- a/third_party/blink/renderer/platform/heap/heap_page.h +++ b/third_party/blink/renderer/platform/heap/heap_page.h
@@ -67,11 +67,12 @@ constexpr size_t kBlinkPagesPerRegion = 10; // TODO(nya): Replace this with something like #if ENABLE_NACL. -#if 0 +#if defined(ARCH_CPU_PPC64) // NaCl's system page size is 64 KiB. This causes a problem in Oilpan's heap // layout because Oilpan allocates two guard pages for each Blink page (whose // size is kBlinkPageSize = 2^17 = 128 KiB). So we don't use guard pages in // NaCl. +// The same issue holds for ppc64 systems, which use a 64k page size. constexpr size_t kBlinkGuardPageSize = 0; #else constexpr size_t kBlinkGuardPageSize = base::kSystemPageSize;
diff --git a/third_party/blink/renderer/platform/loader/cors/cors.cc b/third_party/blink/renderer/platform/loader/cors/cors.cc index f68005b..0fc8eba6 100644 --- a/third_party/blink/renderer/platform/loader/cors/cors.cc +++ b/third_party/blink/renderer/platform/loader/cors/cors.cc
@@ -432,7 +432,10 @@ return header_set; } -bool IsOnAccessControlResponseHeaderWhitelist(const String& name) { +bool IsCorsSafelistedResponseHeader(const String& name) { + // https://fetch.spec.whatwg.org/#cors-safelisted-response-header-name + // TODO(dcheng): Consider using a flat_set here with a transparent comparator. + // TODO(toyoshim): This set is missing "content-length". DEFINE_THREAD_SAFE_STATIC_LOCAL( WebHTTPHeaderSet, allowed_cross_origin_response_headers, ({
diff --git a/third_party/blink/renderer/platform/loader/cors/cors.h b/third_party/blink/renderer/platform/loader/cors/cors.h index 7704f15..c3a3a1443 100644 --- a/third_party/blink/renderer/platform/loader/cors/cors.h +++ b/third_party/blink/renderer/platform/loader/cors/cors.h
@@ -126,7 +126,7 @@ ExtractCorsExposedHeaderNamesList(network::mojom::FetchCredentialsMode, const ResourceResponse&); -PLATFORM_EXPORT bool IsOnAccessControlResponseHeaderWhitelist(const String&); +PLATFORM_EXPORT bool IsCorsSafelistedResponseHeader(const String&); // Checks whether request mode 'no-cors' is allowed for a certain context. PLATFORM_EXPORT bool IsNoCorsAllowedContext(mojom::RequestContextType);
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.cc b/third_party/blink/renderer/platform/loader/fetch/resource.cc index fb7a9475eb..2d9dbf6 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource.cc +++ b/third_party/blink/renderer/platform/loader/fetch/resource.cc
@@ -450,6 +450,12 @@ return redirect_chain_.back().request_; } +const ResourceResponse* Resource::LastResourceResponse() const { + if (!redirect_chain_.size()) + return nullptr; + return &redirect_chain_.back().redirect_response_; +} + void Resource::SetRevalidatingRequest(const ResourceRequest& request) { SECURITY_CHECK(redirect_chain_.IsEmpty()); SECURITY_CHECK(!is_unused_preload_);
diff --git a/third_party/blink/renderer/platform/loader/fetch/resource.h b/third_party/blink/renderer/platform/loader/fetch/resource.h index ae0da43..15d2c4fc 100644 --- a/third_party/blink/renderer/platform/loader/fetch/resource.h +++ b/third_party/blink/renderer/platform/loader/fetch/resource.h
@@ -176,6 +176,7 @@ return resource_request_; } const ResourceRequest& LastResourceRequest() const; + const ResourceResponse* LastResourceResponse() const; virtual void SetRevalidatingRequest(const ResourceRequest&);
diff --git a/third_party/blink/renderer/platform/loader/link_header.cc b/third_party/blink/renderer/platform/loader/link_header.cc index fdd6bf6..1972ff9a 100644 --- a/third_party/blink/renderer/platform/loader/link_header.cc +++ b/third_party/blink/renderer/platform/loader/link_header.cc
@@ -6,6 +6,8 @@ #include "base/strings/string_util.h" #include "components/link_header_util/link_header_util.h" +#include "third_party/blink/public/common/web_package/signed_exchange_consts.h" +#include "third_party/blink/renderer/platform/runtime_enabled_features.h" #include "third_party/blink/renderer/platform/wtf/text/parsing_utilities.h" namespace blink { @@ -44,6 +46,17 @@ return LinkHeader::kLinkParameterImageSrcset; if (base::EqualsCaseInsensitiveASCII(name, "imagesizes")) return LinkHeader::kLinkParameterImageSizes; + if (base::EqualsCaseInsensitiveASCII(name, "anchor")) + return LinkHeader::kLinkParameterAnchor; + + // "header-integrity" and "variants" and "variant-key" are used only for + // SignedExchangeSubresourcePrefetch. + if (base::EqualsCaseInsensitiveASCII(name, "header-integrity")) + return LinkHeader::kLinkParameterHeaderIntegrity; + if (base::EqualsCaseInsensitiveASCII(name, kSignedExchangeVariantsHeader)) + return LinkHeader::kLinkParameterVariants; + if (base::EqualsCaseInsensitiveASCII(name, kSignedExchangeVariantKeyHeader)) + return LinkHeader::kLinkParameterVariantKey; return LinkHeader::kLinkParameterUnknown; } @@ -51,7 +64,7 @@ if (name == kLinkParameterRel && !rel_) rel_ = value.DeprecatedLower(); else if (name == kLinkParameterAnchor) - is_valid_ = false; + anchor_ = value; else if (name == kLinkParameterCrossOrigin) cross_origin_ = value; else if (name == kLinkParameterAs) @@ -68,6 +81,12 @@ image_srcset_ = value; else if (name == kLinkParameterImageSizes) image_sizes_ = value; + else if (name == kLinkParameterHeaderIntegrity) + header_integrity_ = value; + else if (name == kLinkParameterVariants) + variants_ = value; + else if (name == kLinkParameterVariantKey) + variant_key_ = value; } template <typename Iterator> @@ -86,6 +105,16 @@ std::string value = param.second.value_or(""); SetValue(name, String(&value[0], value.length())); } + // According to Section 5.2 of RFC 5988, "anchor" parameters in Link headers + // must be either respected, or the entire header must be ignored: + // https://tools.ietf.org/html/rfc5988#section-5.2 + // Blink uses "anchor" parameters only when SignedExchangeSubresourcePrefetch + // is enabled and the rel is "alternate". + if (anchor_.has_value() && + (!RuntimeEnabledFeatures::SignedExchangeSubresourcePrefetchEnabled() || + rel_ != "alternate")) { + is_valid_ = false; + } } LinkHeaderSet::LinkHeaderSet(const String& header) {
diff --git a/third_party/blink/renderer/platform/loader/link_header.h b/third_party/blink/renderer/platform/loader/link_header.h index f717560..ebfecfe 100644 --- a/third_party/blink/renderer/platform/loader/link_header.h +++ b/third_party/blink/renderer/platform/loader/link_header.h
@@ -5,6 +5,7 @@ #ifndef THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_LINK_HEADER_H_ #define THIRD_PARTY_BLINK_RENDERER_PLATFORM_LOADER_LINK_HEADER_H_ +#include "base/optional.h" #include "third_party/blink/renderer/platform/platform_export.h" #include "third_party/blink/renderer/platform/wtf/allocator.h" #include "third_party/blink/renderer/platform/wtf/text/wtf_string.h" @@ -25,6 +26,10 @@ const String& Integrity() const { return integrity_; } const String& ImageSrcset() const { return image_srcset_; } const String& ImageSizes() const { return image_sizes_; } + const String& HeaderIntegrity() const { return header_integrity_; } + const String& Variants() const { return variants_; } + const String& VariantKey() const { return variant_key_; } + const base::Optional<String>& Anchor() const { return anchor_; } bool Valid() const { return is_valid_; } bool IsViewportDependent() const { return !Media().IsEmpty() || !ImageSrcset().IsEmpty() || @@ -47,6 +52,9 @@ kLinkParameterIntegrity, kLinkParameterImageSrcset, kLinkParameterImageSizes, + kLinkParameterHeaderIntegrity, + kLinkParameterVariants, + kLinkParameterVariantKey, }; private: @@ -66,6 +74,10 @@ String integrity_; String image_srcset_; String image_sizes_; + String header_integrity_; + String variants_; + String variant_key_; + base::Optional<String> anchor_; bool is_valid_; };
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5 index daa74c7..c4ddfad3 100644 --- a/third_party/blink/renderer/platform/runtime_enabled_features.json5 +++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1209,7 +1209,7 @@ // Enables the use of the RTCDtlsTransport object. { name: "RTCDtlsTransport", - status: "experimental", + status: "stable", }, // Enables the use of the RTCIceTransport with extensions. {
diff --git a/third_party/blink/renderer/platform/wtf/dtoa/utils.h b/third_party/blink/renderer/platform/wtf/dtoa/utils.h index d74ecd4..b964278 100644 --- a/third_party/blink/renderer/platform/wtf/dtoa/utils.h +++ b/third_party/blink/renderer/platform/wtf/dtoa/utils.h
@@ -46,7 +46,7 @@ // disabled.) // On Linux,x86 89255e-22 != Div_double(89255.0/1e22) #if defined(_M_X64) || defined(__x86_64__) || defined(__ARMEL__) || \ - defined(__aarch64__) || defined(__MIPSEL__) + defined(__aarch64__) || defined(__MIPSEL__) || defined(__powerpc64__) #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 #elif defined(_M_IX86) || defined(__i386__) #if defined(_WIN32)
diff --git a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG index 03715c1..d82d77396 100644 --- a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG +++ b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
@@ -236,6 +236,7 @@ crbug.com/591099 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-ltr.html [ Pass ] crbug.com/591099 external/wpt/css/cssom-view/elementsFromPoint-inline-vrl-rtl.html [ Pass ] crbug.com/953479 external/wpt/css/cssom-view/offsetTopLeftEmptyInline.html [ Failure ] +crbug.com/953572 external/wpt/css/cssom-view/offsetTopLeftInlineMultiLine.html [ Failure ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-align-self-horiz-002.xhtml [ Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox/flexbox-writing-mode-011.html [ Pass ] crbug.com/591099 external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/ib-split/emptyspan-1.html [ Pass ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations index fd58546..e65cdff 100644 --- a/third_party/blink/web_tests/TestExpectations +++ b/third_party/blink/web_tests/TestExpectations
@@ -3076,6 +3076,9 @@ crbug.com/952266 virtual/omt-worker-fetch/external/wpt/workers/modules/dedicated-worker-options-credentials.html [ Timeout ] # ====== New tests from wpt-importer added here ====== +crbug.com/626703 external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-002.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-001.html [ Failure ] +crbug.com/626703 external/wpt/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html [ Failure ] crbug.com/626703 [ Mac10.12 ] external/wpt/media-source/mediasource-config-change-webm-av-framesize.html [ Timeout ] crbug.com/626703 [ Mac10.13 ] external/wpt/media-source/mediasource-config-change-webm-av-framesize.html [ Timeout ] crbug.com/626703 [ Retina ] external/wpt/media-source/mediasource-config-change-webm-av-framesize.html [ Timeout ] @@ -6310,3 +6313,7 @@ # Sheriff 2019-04-17 crbug.com/953534 [ Mac ] virtual/layout_ng_experimental/external/wpt/css/css-flexbox/ttwf-reftest-flex-wrap.html [ Failure ] + +crbug.com/953591 [ Win ] css3/masking/mask-repeat-space-padding.html [ Pass Failure ] +crbug.com/953591 [ Win ] fast/forms/datalist/input-appearance-range-with-transform.html [ Pass Failure ] +crbug.com/953591 [ Win ] transforms/matrix-02.html [ Pass Failure ]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json index 3d2dd9c..0759291 100644 --- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json +++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
@@ -64703,6 +64703,30 @@ {} ] ], + "css/css-text/overflow-wrap/overflow-wrap-cluster-001.html": [ + [ + "css/css-text/overflow-wrap/overflow-wrap-cluster-001.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html", + "==" + ] + ], + {} + ] + ], + "css/css-text/overflow-wrap/overflow-wrap-cluster-002.html": [ + [ + "css/css-text/overflow-wrap/overflow-wrap-cluster-002.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [ [ "css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html", @@ -64751,6 +64775,18 @@ {} ] ], + "css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html": [ + [ + "css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html", + [ + [ + "/css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html", + "==" + ] + ], + {} + ] + ], "css/css-text/overflow-wrap/word-wrap-001.html": [ [ "css/css-text/overflow-wrap/word-wrap-001.html", @@ -93745,6 +93781,18 @@ {} ] ], + "css/cssom-view/offsetTopLeftInlineMultiLine.html": [ + [ + "css/cssom-view/offsetTopLeftInlineMultiLine.html", + [ + [ + "/css/reference/nothing.html", + "==" + ] + ], + {} + ] + ], "css/cssom-view/scrollTop-display-change.html": [ [ "css/cssom-view/scrollTop-display-change.html", @@ -145524,11 +145572,6 @@ {} ] ], - "css/css-tables/border-spacing-included-in-sizes-001-expected.txt": [ - [ - {} - ] - ], "css/css-tables/bounding-box-computation-1-expected.txt": [ [ {} @@ -147169,6 +147212,11 @@ {} ] ], + "css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html": [ + [ + {} + ] + ], "css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [ [ {} @@ -147189,6 +147237,11 @@ {} ] ], + "css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html": [ + [ + {} + ] + ], "css/css-text/parsing/hanging-punctuation-valid-expected.txt": [ [ {} @@ -167144,11 +167197,6 @@ {} ] ], - "html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-noopener-expected.txt": [ - [ - {} - ] - ], "html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-noreferrer-expected.txt": [ [ {} @@ -238444,6 +238492,12 @@ {} ] ], + "css/cssom-view/offsetTopLeftEmptyInline.html": [ + [ + "css/cssom-view/offsetTopLeftEmptyInline.html", + {} + ] + ], "css/cssom-view/offsetTopLeftInScrollableParent.html": [ [ "css/cssom-view/offsetTopLeftInScrollableParent.html", @@ -272985,12 +273039,6 @@ } ] ], - "mathml/relations/html5-tree/required-extensions-1.html": [ - [ - "mathml/relations/html5-tree/required-extensions-1.html", - {} - ] - ], "mathml/relations/html5-tree/unique-identifier-2.html": [ [ "mathml/relations/html5-tree/unique-identifier-2.html", @@ -392135,10 +392183,6 @@ "7248befef57932b2d849630637051e02b480a361", "reftest" ], - "css/css-tables/border-spacing-included-in-sizes-001-expected.txt": [ - "5e292f5722c603651d8b973b9ff9294da6f990cc", - "support" - ], "css/css-tables/border-spacing-included-in-sizes-001.html": [ "3f0802305fed5be27d92dc2d65dc273fc852ab85", "testharness" @@ -395947,6 +395991,14 @@ "39426d0420287a730dcac47696bd69520e8a6b72", "testharness" ], + "css/css-text/overflow-wrap/overflow-wrap-cluster-001.html": [ + "7911a1b214c04490e16418e71ff733f8f228b45c", + "reftest" + ], + "css/css-text/overflow-wrap/overflow-wrap-cluster-002.html": [ + "bd5c9a60d87aaff978d45c31fe9cfd51cc8823e9", + "reftest" + ], "css/css-text/overflow-wrap/overflow-wrap-min-content-size-001.html": [ "608d4853a2425d9b4157bbe331fd78763985cecd", "reftest" @@ -395963,6 +396015,10 @@ "7ee2b344f7fdee15b05e590ff93a23c04cf63ffc", "reftest" ], + "css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html": [ + "8047aba133af1e4ece4b66fffcec48fa853da386", + "reftest" + ], "css/css-text/overflow-wrap/reference/overflow-wrap-break-word-001-ref.html": [ "0e0300a72dc920a5ffb54cda6fbe84a2f517d010", "support" @@ -395983,6 +396039,10 @@ "0264bcf322f4a6f9af451ffd6bed6e0fbdc46ef2", "support" ], + "css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html": [ + "5a00d7284b2b8d3c592340819599e83f0bf4c216", + "support" + ], "css/css-text/overflow-wrap/reference/overflow-wrap-min-content-size-001-ref.html": [ "99d964777c663fb8ca37be00c162ddfbb82951c9", "support" @@ -395999,6 +396059,10 @@ "c37f3f107841a33afd891a7f39433146ab4704cc", "support" ], + "css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html": [ + "f0b41134fa0b84e6fce29ed5596598a358b2c2a9", + "support" + ], "css/css-text/overflow-wrap/word-wrap-001.html": [ "af326a6cdf2d02aa51e6eccfd11b90fcc4c16456", "reftest" @@ -416815,6 +416879,10 @@ "c88b616986511b3220449c03421e827be0d2e534", "testharness" ], + "css/cssom-view/offsetTopLeftEmptyInline.html": [ + "85abbb7c01cc95f46aeffb166fc8cd34669c85aa", + "testharness" + ], "css/cssom-view/offsetTopLeftInScrollableParent.html": [ "8f4433795424a00a896278173747aa9e192e181d", "testharness" @@ -416823,6 +416891,10 @@ "772cc34f05bffc5b8445cd23ba13d9357269b84b", "reftest" ], + "css/cssom-view/offsetTopLeftInlineMultiLine.html": [ + "b93095c886165c69743f6d5e5c06f1079c06db5b", + "reftest" + ], "css/cssom-view/resources/elementsFromPoint.js": [ "ba986ef3f568d4971eb4e84c4faaeae6e276b975", "support" @@ -438111,10 +438183,6 @@ "c839c6ca0661efce0ca531b6f35b470be4478d27", "testharness" ], - "html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-noopener-expected.txt": [ - "fe041cb6e3736d53d6b706541b4a07354a8bc94d", - "support" - ], "html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/open-features-tokenization-noopener.html": [ "c955e677899ed7fdb9028c4c3e0f39d54fbe2f80", "testharness" @@ -438332,7 +438400,7 @@ "testharness" ], "html/browsers/the-window-object/window-open-noopener_indexed-expected.txt": [ - "23fd0069af3c0df508400e67c522baa11dc3e54c", + "a7eef5f1fcfce4ae448b7450b1a8ccbfa2eb0c12", "support" ], "html/browsers/the-window-object/window-open-noreferrer-expected.txt": [ @@ -457955,10 +458023,6 @@ "1feb8317ff12252bc131dd7368c8162b79a0d803", "reftest" ], - "mathml/relations/html5-tree/required-extensions-1.html": [ - "3dd7f168ec1e2d61e7b98d8987b94050babe5bb0", - "testharness" - ], "mathml/relations/html5-tree/required-extensions-2-ref.html": [ "dcc5b2b7d337e769299df17a0eacafddc92665c6", "support" @@ -497240,7 +497304,7 @@ "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworklet-suspend.https.html": [ - "d5bcbfe990cacbb09c3dc22334cd0620e66b9ced", + "89d361d22f35ffc6e7fbff6abdfc60c57a1d8ebb", "testharness" ], "webaudio/the-audio-api/the-audioworklet-interface/audioworkletglobalscope-sample-rate.https.html": [ @@ -497364,7 +497428,7 @@ "testharness" ], "webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowpass.html": [ - "69dc85a2e2be61da92d8d48f34472e3da8d35fb1", + "d20786e36b16d7ba36841dd5fcfb30c081113fb2", "testharness" ], "webaudio/the-audio-api/the-biquadfilternode-interface/biquad-lowshelf.html": [ @@ -504592,7 +504656,7 @@ "support" ], "webxr/idlharness.https.window-expected.txt": [ - "20cbc03f1b67ec30b60be9da9729095a778956bc", + "2a2b3c7e7a31d908de707ee59eddc652f2898550", "support" ], "webxr/idlharness.https.window.js": [ @@ -504616,7 +504680,7 @@ "support" ], "webxr/resources/webxr_test_constants.js": [ - "aab0417aed0b08e930347ff666cd672d271b8e00", + "c38c012ba8462589c33fcdecab49299125c85ec5", "support" ], "webxr/resources/webxr_util.js": [
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-001.html new file mode 100644 index 0000000..7911a1b21 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-001.html
@@ -0,0 +1,22 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: overflow-wrap:break-word and grapheme clusters</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#overflow-wrap-property"> +<link rel="match" href="reference/overflow-wrap-cluster-001-ref.html"> +<meta name="assert" content="grapheme clusters must stay together as one unit when a line is broken by overflow-wrap:break-word"> +<style> + div { + font-size: 4em; + margin: 1rem; + width: 4em; + } + #test { + overflow-wrap: break-word; + width: 0; + } +</style> + +<p>Test passes if there are four identical lines of text below. +<div lang=hi id=ref>षि<br>षि</div> +<div lang=hi id=test>षिषि</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-002.html b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-002.html new file mode 100644 index 0000000..bd5c9a60 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-cluster-002.html
@@ -0,0 +1,22 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: overflow-wrap:anywhere and grapheme clusters</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#overflow-wrap-property"> +<link rel="match" href="reference/overflow-wrap-cluster-001-ref.html"> +<meta name="assert" content="grapheme clusters must stay together as one unit when a line is broken by overflow-wrap:break-word"> +<style> + div { + font-size: 4em; + margin: 1rem; + width: 4em; + } + #test { + overflow-wrap: anywhere; + width: 0; + } +</style> + +<p>Test passes if there are four identical lines of text below. +<div lang=hi id=ref>षि<br>षि</div> +<div lang=hi id=test>षिषि</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html new file mode 100644 index 0000000..8047aba1 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/overflow-wrap-normal-keep-all-001.html
@@ -0,0 +1,18 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test: word-break-keep-all and overflow-wrap:normal</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<link rel="help" href="https://www.w3.org/TR/css-text-3/#overflow-wrap-property"> +<link rel="match" href="reference/overflow-wrap-normal-keep-all-001-ref.html"> +<meta name="flags" content="may"> +<meta name="assert" content="with overflow-wrap:normal, the restrictions introduced by word-break:keep-all may be relaxed to match word-break:normal if there are no otherwise-acceptable break points in the line."> +<style> + div { + overflow-wrap: normal; + word-break: keep-all; + width: 0; + } +</style> + +<p>Test passes if there is a column of 文 characters on top of eachother below. +<div lang=ja>文文文文文文文文</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html new file mode 100644 index 0000000..5a00d72 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/reference/overflow-wrap-cluster-001-ref.html
@@ -0,0 +1,17 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test reference</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> +<style> + div { + font-size: 4em; + margin: 1rem; + width: 4em; + } +</style> + +<p>Test passes if there are four identical lines of text below. +<div lang=hi>षि</div> +<div lang=hi>षि</div> +<div lang=hi>षि</div> +<div lang=hi>षि</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html new file mode 100644 index 0000000..f0b4113 --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/css-text/overflow-wrap/reference/overflow-wrap-normal-keep-all-001-ref.html
@@ -0,0 +1,7 @@ +<!DOCTYPE html> +<meta charset="utf-8"> +<title>CSS Text level 3 Test reference</title> +<link rel="author" title="Florian Rivoal" href="https://florian.rivoal.net/"> + +<p>Test passes if there is a column of æ–‡ characters on top of eachother below. +<div lang=ja>æ–‡<br>æ–‡<br>æ–‡<br>æ–‡<br>æ–‡<br>æ–‡<br>æ–‡<br>æ–‡</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/cssom-view/offsetTopLeftInlineMultiLine.html b/third_party/blink/web_tests/external/wpt/css/cssom-view/offsetTopLeftInlineMultiLine.html new file mode 100644 index 0000000..b93095c --- /dev/null +++ b/third_party/blink/web_tests/external/wpt/css/cssom-view/offsetTopLeftInlineMultiLine.html
@@ -0,0 +1,55 @@ +<!DOCTYPE html> +<link rel="author" title="Morten Stenshorne" href="mstensho@chromium.org"> +<link rel="author" title="Xianzhu Wang" href="wangxianzhu@chromium.org"> +<link rel="help" href="https://drafts.csswg.org/cssom-view-1/#extensions-to-the-htmlelement-interface"> +<link rel="match" href="../reference/nothing.html"> +<style> + .container { + float: left; + width: 8em; + height: 7em; + padding: 1em; + color: red; + } + .correctionFluid { + position: absolute; + background: white; + + /* Add some fluff to cover text ink-overflow. */ + outline:2px solid white; + } +</style> +<p>There should be nothing below.</p> + <div class="container" style="writing-mode:horizontal-tb;"> + <br><span class="child">FAIL<br>FAIL<br>FAIL</span> + </div> + <div class="container" style="writing-mode:vertical-lr;"> + <br><span class="child">FAIL<br>FAIL<br>FAIL</span> + </div> + <div class="container" style="writing-mode:vertical-rl;"> + <br><span class="child">FAIL<br>FAIL<br>FAIL</span> + </div> + <div class="container" style="writing-mode:horizontal-tb; direction:rtl;"> + <br><span class="child">FAIL<br>FAIL<br>FAIL</span> + </div> + <div class="container" style="writing-mode:vertical-lr; direction:rtl;"> + <br><span class="child">FAIL<br>FAIL<br>FAIL</span> + </div> + <div class="container" style="writing-mode:vertical-rl; direction:rtl;"> + <br><span class="child">FAIL<br>FAIL<br>FAIL</span> + </div> +<script> + // Create a white absolutely positioned box for each span.child + // element and cover it. + + let elements = document.querySelectorAll("span.child"); + elements.forEach((element)=> { + let correctionFluid = document.createElement("div"); + correctionFluid.className = "correctionFluid"; + correctionFluid.style.left = element.offsetLeft + "px"; + correctionFluid.style.top = element.offsetTop + "px"; + correctionFluid.style.width = element.offsetWidth + "px"; + correctionFluid.style.height = element.offsetHeight + "px"; + document.body.appendChild(correctionFluid); + }); +</script>
diff --git a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-1.html b/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-1.html deleted file mode 100644 index 3dd7f16..0000000 --- a/third_party/blink/web_tests/external/wpt/mathml/relations/html5-tree/required-extensions-1.html +++ /dev/null
@@ -1,12 +0,0 @@ -<!DOCTYPE html> -<meta charset="utf-8"> -<title>SVG requiredExtensions</title> -<link rel="help" href="https://mathml-refresh.github.io/mathml-core/#dom"> -<meta name="assert" content="Verify whether the MathML namespace is recognized as a required extensions of SVG foreignObject when using the hasExtension javascript function."> -<script src="/resources/testharness.js"></script> -<script src="/resources/testharnessreport.js"></script> -<script> - test(function() { - assert_true(document.createElementNS("http://www.w3.org/2000/svg", "foreignObject").hasExtension("http://www.w3.org/1998/Math/MathML")) - }, "Testing foreignObject.hasExtension('http://www.w3.org/1998/Math/MathML')"); -</script>
diff --git a/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt b/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt index 9904644..5e62ee6 100644 --- a/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt +++ b/third_party/blink/web_tests/external/wpt/webrtc/idlharness.https.window-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 506 tests; 440 PASS, 66 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 506 tests; 442 PASS, 64 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS Test driver for asyncInitCertificate PASS Test driver for asyncInitTransports @@ -230,7 +230,7 @@ PASS RTCRtpSender interface: existence and properties of interface prototype object's @@unscopables property PASS RTCRtpSender interface: attribute track PASS RTCRtpSender interface: attribute transport -FAIL RTCRtpSender interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false +PASS RTCRtpSender interface: attribute rtcpTransport PASS RTCRtpSender interface: operation getCapabilities(DOMString) FAIL RTCRtpSender interface: operation setParameters(RTCRtpSendParameters) assert_equals: property has wrong .length expected 1 but got 0 PASS RTCRtpSender interface: operation getParameters() @@ -242,7 +242,7 @@ PASS Stringification of new RTCPeerConnection().addTransceiver('audio').sender PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "track" with the proper type PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "transport" with the proper type -FAIL RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "rtcpTransport" with the proper type assert_inherits: property "rtcpTransport" not found in prototype chain +PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "rtcpTransport" with the proper type PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "getCapabilities(DOMString)" with the proper type PASS RTCRtpSender interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').sender with too few arguments must throw TypeError PASS RTCRtpSender interface: new RTCPeerConnection().addTransceiver('audio').sender must inherit property "setParameters(RTCRtpSendParameters)" with the proper type @@ -262,7 +262,7 @@ PASS RTCRtpReceiver interface: existence and properties of interface prototype object's @@unscopables property PASS RTCRtpReceiver interface: attribute track PASS RTCRtpReceiver interface: attribute transport -FAIL RTCRtpReceiver interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false +PASS RTCRtpReceiver interface: attribute rtcpTransport PASS RTCRtpReceiver interface: operation getCapabilities(DOMString) PASS RTCRtpReceiver interface: operation getParameters() PASS RTCRtpReceiver interface: operation getContributingSources() @@ -272,7 +272,7 @@ PASS Stringification of new RTCPeerConnection().addTransceiver('audio').receiver PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "track" with the proper type PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "transport" with the proper type -FAIL RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "rtcpTransport" with the proper type assert_inherits: property "rtcpTransport" not found in prototype chain +PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "rtcpTransport" with the proper type PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getCapabilities(DOMString)" with the proper type PASS RTCRtpReceiver interface: calling getCapabilities(DOMString) on new RTCPeerConnection().addTransceiver('audio').receiver with too few arguments must throw TypeError PASS RTCRtpReceiver interface: new RTCPeerConnection().addTransceiver('audio').receiver must inherit property "getParameters()" with the proper type @@ -312,14 +312,14 @@ PASS RTCDtlsTransport interface: existence and properties of interface prototype object's @@unscopables property PASS RTCDtlsTransport interface: attribute iceTransport PASS RTCDtlsTransport interface: attribute state -PASS RTCDtlsTransport interface: operation getRemoteCertificates() +FAIL RTCDtlsTransport interface: operation getRemoteCertificates() assert_own_property: interface prototype object missing non-static operation expected property "getRemoteCertificates" missing PASS RTCDtlsTransport interface: attribute onstatechange PASS RTCDtlsTransport interface: attribute onerror PASS RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport PASS Stringification of idlTestObjects.dtlsTransport PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "iceTransport" with the proper type PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "state" with the proper type -PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type +FAIL RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "getRemoteCertificates()" with the proper type assert_inherits: property "getRemoteCertificates" not found in prototype chain PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onstatechange" with the proper type PASS RTCDtlsTransport interface: idlTestObjects.dtlsTransport must inherit property "onerror" with the proper type FAIL RTCIceTransport interface: existence and properties of interface object assert_throws: interface object didn't throw TypeError when called as a constructor function "function() {
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-getStats-overrides.https.html b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-getStats-overrides.https.html index a04e494..5bdc03c6 100644 --- a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-getStats-overrides.https.html +++ b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-getStats-overrides.https.html
@@ -56,8 +56,9 @@ let pc = new RTCPeerConnection(); let cp = new CallbackPromise(); let nonsense = 5; - await promise_rejects(t, new TypeError(), pc.getStats(cp.callback, nonsense)); -}, 'Signature: getStats(callback, nonsense) throws excpetion'); + assert_equals(await pc.getStats(cp.callback, nonsense), undefined); + await cp.promise; +}, 'Signature: getStats(callback, nonsense) uses callback'); promise_test(async t => { let pc = new RTCPeerConnection();
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats-expected.txt b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats-expected.txt index 3719706..73861e5d 100644 --- a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats-expected.txt +++ b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats-expected.txt
@@ -28,6 +28,15 @@ PASS res.names().length is >= 1 PASS status_g.namedItem(res.id) is non-null. PASS status_g[res.id] is non-null. +PASS pc.getStats(statsHandler4, 42) did not throw exception. +PASS statsHandler4 was called +PASS result.length is >= 2 +PASS timediff is >= 0 +PASS res.id is non-null. +PASS res.type is non-null. +PASS res.names().length is >= 1 +PASS status_g.namedItem(res.id) is non-null. +PASS status_g[res.id] is non-null. PASS successfullyParsed is true TEST COMPLETE
diff --git a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats.html b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats.html index 03eef51..185b1e8 100644 --- a/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats.html +++ b/third_party/blink/web_tests/fast/peerconnection/RTCPeerConnection-stats.html
@@ -77,8 +77,16 @@ shouldNotThrow('pc.getStats(statsHandler3)'); } -function statsHandler3(status) { - testPassed("statsHandler3 was called"); +function statsHandler3(status) +{ + testPassed("statsHandler3 was called"); + verifyStats(status); + // Silly non-MediaStreamTrack second argument should be interpreted as undefined. + shouldNotThrow('pc.getStats(statsHandler4, 42)'); +} + +function statsHandler4(status) { + testPassed("statsHandler4 was called"); verifyStats(status); finishJSTest(); }
diff --git a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt index 461e561..c3ec3d4 100644 --- a/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/virtual/stable/webexposed/global-interface-listing-expected.txt
@@ -4932,6 +4932,15 @@ attribute @@toStringTag getter channel method constructor +interface RTCDtlsTransport : EventTarget + attribute @@toStringTag + getter iceTransport + getter onerror + getter onstatechange + getter state + method constructor + setter onerror + setter onstatechange interface RTCError : DOMException attribute @@toStringTag getter errorDetail @@ -4963,6 +4972,23 @@ getter usernameFragment method constructor method toJSON +interface RTCIceTransport : EventTarget + attribute @@toStringTag + getter gatheringState + getter ongatheringstatechange + getter onselectedcandidatepairchange + getter onstatechange + getter role + getter state + method constructor + method getLocalCandidates + method getLocalParameters + method getRemoteCandidates + method getRemoteParameters + method getSelectedCandidatePair + setter ongatheringstatechange + setter onselectedcandidatepairchange + setter onstatechange interface RTCPeerConnection : EventTarget static method generateCertificate attribute @@toStringTag @@ -5025,7 +5051,9 @@ interface RTCRtpReceiver static method getCapabilities attribute @@toStringTag + getter rtcpTransport getter track + getter transport method constructor method getContributingSources method getParameters @@ -5035,7 +5063,9 @@ static method getCapabilities attribute @@toStringTag getter dtmf + getter rtcpTransport getter track + getter transport method constructor method getParameters method getStats
diff --git a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/idlharness.https.window-expected.txt b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/idlharness.https.window-expected.txt index c4d3b8fa..a63dc89 100644 --- a/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/idlharness.https.window-expected.txt +++ b/third_party/blink/web_tests/virtual/webrtc-wpt-plan-b/external/wpt/webrtc/idlharness.https.window-expected.txt
@@ -1,5 +1,5 @@ This is a testharness.js-based test. -Found 506 tests; 376 PASS, 130 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 506 tests; 377 PASS, 129 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS idl_test setup PASS Test driver for asyncInitCertificate FAIL Test driver for asyncInitTransports assert_unreached: Failed to run asyncInitTransports: Error: assert_true: Expect pc.sctp to be instance of RTCSctpTransport expected true got false Reached unreachable code @@ -230,7 +230,7 @@ PASS RTCRtpSender interface: existence and properties of interface prototype object's @@unscopables property PASS RTCRtpSender interface: attribute track PASS RTCRtpSender interface: attribute transport -FAIL RTCRtpSender interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false +PASS RTCRtpSender interface: attribute rtcpTransport PASS RTCRtpSender interface: operation getCapabilities(DOMString) FAIL RTCRtpSender interface: operation setParameters(RTCRtpSendParameters) assert_equals: property has wrong .length expected 1 but got 0 PASS RTCRtpSender interface: operation getParameters() @@ -262,7 +262,7 @@ PASS RTCRtpReceiver interface: existence and properties of interface prototype object's @@unscopables property PASS RTCRtpReceiver interface: attribute track PASS RTCRtpReceiver interface: attribute transport -FAIL RTCRtpReceiver interface: attribute rtcpTransport assert_true: The prototype object must have a property "rtcpTransport" expected true got false +PASS RTCRtpReceiver interface: attribute rtcpTransport PASS RTCRtpReceiver interface: operation getCapabilities(DOMString) PASS RTCRtpReceiver interface: operation getParameters() PASS RTCRtpReceiver interface: operation getContributingSources() @@ -312,7 +312,7 @@ PASS RTCDtlsTransport interface: existence and properties of interface prototype object's @@unscopables property PASS RTCDtlsTransport interface: attribute iceTransport PASS RTCDtlsTransport interface: attribute state -PASS RTCDtlsTransport interface: operation getRemoteCertificates() +FAIL RTCDtlsTransport interface: operation getRemoteCertificates() assert_own_property: interface prototype object missing non-static operation expected property "getRemoteCertificates" missing PASS RTCDtlsTransport interface: attribute onstatechange PASS RTCDtlsTransport interface: attribute onerror FAIL RTCDtlsTransport must be primary interface of idlTestObjects.dtlsTransport assert_equals: wrong typeof object expected "object" but got "undefined"
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt index ea8c4ca..bff890f 100644 --- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt +++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -5658,7 +5658,6 @@ getter onstatechange getter state method constructor - method getRemoteCertificates setter onerror setter onstatechange interface RTCError : DOMException @@ -5816,7 +5815,7 @@ static method getCapabilities attribute @@toStringTag getter jitterBufferDelayHint - getter rtcp_transport + getter rtcpTransport getter track getter transport method constructor @@ -5829,7 +5828,7 @@ static method getCapabilities attribute @@toStringTag getter dtmf - getter rtcp_transport + getter rtcpTransport getter track getter transport method constructor
diff --git a/third_party/fuchsia-sdk/gen_build_defs.py b/third_party/fuchsia-sdk/gen_build_defs.py index eeb3a4c9..67be3d6 100755 --- a/third_party/fuchsia-sdk/gen_build_defs.py +++ b/third_party/fuchsia-sdk/gen_build_defs.py
@@ -187,7 +187,7 @@ with open(build_output_path, 'w') as buildfile: buildfile.write(_GENERATED_PREAMBLE) - for part in toplevel_meta['new_parts']: + for part in toplevel_meta['parts']: parsed = json.load(open(os.path.join(sdk_base_dir, part['meta']))) convert_function = _CONVERSION_FUNCTION_MAP.get(part['type'])
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml index 41189c3..797398d 100644 --- a/tools/metrics/histograms/enums.xml +++ b/tools/metrics/histograms/enums.xml
@@ -50681,6 +50681,7 @@ <int value="14" label="Merkle integrity error"/> <int value="15" label="Invalid integrity header"/> <int value="16" label="Variant mismatch"/> + <int value="17" label="Certificate's validity period is too long"/> </enum> <enum name="SignedExchangeSignatureVerificationResult">
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml index 770c15b..8cf6703 100644 --- a/tools/metrics/histograms/histograms.xml +++ b/tools/metrics/histograms/histograms.xml
@@ -122574,6 +122574,16 @@ </summary> </histogram> +<histogram base="true" name="Sync.CommitLatency" units="ms" expires_after="M77"> + <owner>mastiz@chromium.org</owner> + <owner>mamir@chromium.org</owner> + <summary> + Records the time between the local model being changed until the commit + response is completed and propagated to the model thread. Note: This is only + recorded with a data type suffix. The base version is never recorded. + </summary> +</histogram> + <histogram name="Sync.ConfigureDataTypeManagerOption" enum="SyncFeatureOrTransport"> <owner>treib@chromium.org</owner> @@ -154904,6 +154914,7 @@ <suffix name="WALLET_METADATA" label="WALLET_METADATA"/> <suffix name="WIFI_CREDENTIAL" label="WIFI_CREDENTIAL"/> <affected-histogram name="FCMInvalidations.SubscriptionResponseCodeForTopic"/> + <affected-histogram name="Sync.CommitLatency"/> <affected-histogram name="Sync.DuplicateClientTagHashInApplyPendingUpdates"/> <affected-histogram name="Sync.DuplicateClientTagHashInGetUpdatesResponse"/> <affected-histogram
diff --git a/ui/chromeos/file_manager_strings.grdp b/ui/chromeos/file_manager_strings.grdp index be44a8b..87241afa 100644 --- a/ui/chromeos/file_manager_strings.grdp +++ b/ui/chromeos/file_manager_strings.grdp
@@ -80,6 +80,9 @@ <message name="IDS_FILE_BROWSER_RECENT_ROOT_LABEL" desc="A label for the 'Recent' root which shows files recently modified by the user."> Recent </message> + <message name="IDS_FILE_BROWSER_DOCPROVIDER_ROOT_LABEL_WITH_SUMMARY" desc="A label for a documents provider root, which has both title and summary."> + <ph name="ROOT_TITLE">$1<ex>MyCloudProvider</ex></ph> (<ph name="ROOT_SUMMARY">$2<ex>me@example.com</ex></ph>) + </message> <message name="IDS_FILE_BROWSER_DOWNLOADS_DIRECTORY_WARNING" desc="Warning displayed to user when viewing downloads folder."> <ph name="BEGIN_BOLD"><strong></ph>Caution:<ph name="END_BOLD"></strong></ph> These files are temporary and may be automatically deleted to free up disk space. <ph name="BEGIN_LINK"><a href="javascript://"></ph>Learn More<ph name="END_LINK"></a><ex></a></ex></ph> </message>
diff --git a/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_DOCPROVIDER_ROOT_LABEL_WITH_SUMMARY.png.sha1 b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_DOCPROVIDER_ROOT_LABEL_WITH_SUMMARY.png.sha1 new file mode 100644 index 0000000..1ffa6f9 --- /dev/null +++ b/ui/chromeos/file_manager_strings_grdp/IDS_FILE_BROWSER_DOCPROVIDER_ROOT_LABEL_WITH_SUMMARY.png.sha1
@@ -0,0 +1 @@ +da05ce5934b8c38c1b5f39785e9af308506d8ee1 \ No newline at end of file
diff --git a/ui/file_manager/file_manager/foreground/js/gear_menu_controller.js b/ui/file_manager/file_manager/foreground/js/gear_menu_controller.js index 48ca63b..d52488f 100644 --- a/ui/file_manager/file_manager/foreground/js/gear_menu_controller.js +++ b/ui/file_manager/file_manager/foreground/js/gear_menu_controller.js
@@ -146,9 +146,13 @@ // TODO(mtomasz): Add support for remaining space indication for provided // file systems. + // TODO(fukino): Add support for remaining space indication for documents + // provider roots. crbug.com/953657. if (currentVolumeInfo.volumeType == VolumeManagerCommon.VolumeType.PROVIDED || currentVolumeInfo.volumeType == VolumeManagerCommon.VolumeType.MEDIA_VIEW || + currentVolumeInfo.volumeType == + VolumeManagerCommon.VolumeType.DOCUMENTS_PROVIDER || currentVolumeInfo.volumeType == VolumeManagerCommon.VolumeType.ARCHIVE) { this.gearMenu_.setSpaceInfo(null, false); return;
diff --git a/ui/file_manager/image_loader/piex/tests.js b/ui/file_manager/image_loader/piex/tests.js index 38ad667..51a66b1 100644 --- a/ui/file_manager/image_loader/piex/tests.js +++ b/ui/file_manager/image_loader/piex/tests.js
@@ -118,11 +118,10 @@ } } - const testTime = await page.evaluate(() => { - return window.testTime; + await page.evaluate(() => { + console.log('test: done total time', window.testTime.toFixed(3)); }); - console.log('test: done total time', testTime.toFixed(3)); browser.close(); server.close();
diff --git a/ui/file_manager/integration_tests/file_manager/background.js b/ui/file_manager/integration_tests/file_manager/background.js index c8f8ca32..0ce98d7 100644 --- a/ui/file_manager/integration_tests/file_manager/background.js +++ b/ui/file_manager/integration_tests/file_manager/background.js
@@ -441,7 +441,6 @@ chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( 'fakeMouseRightClick', appId, ['.table-row[selected]'])); - await remoteCall.waitForElement(appId, '#file-context-menu:not([hidden])'); await remoteCall.waitForElement( appId,
diff --git a/ui/file_manager/integration_tests/file_manager/context_menu.js b/ui/file_manager/integration_tests/file_manager/context_menu.js index 66c5700..fb34051 100644 --- a/ui/file_manager/integration_tests/file_manager/context_menu.js +++ b/ui/file_manager/integration_tests/file_manager/context_menu.js
@@ -326,6 +326,9 @@ chrome.test.assertTrue(!!await remoteCall.callRemoteTestUtil( 'selectFolderInTree', appId, ['My Drive'])); + // Wait for My Drive to load. + await remoteCall.waitUntilCurrentDirectoryIsChanged(appId, '/My Drive'); + // Expand 'My Drive'. chrome.test.assertTrue(!!await remoteCall.callRemoteTestUtil( 'expandSelectedFolderInTree', appId, [])); @@ -334,6 +337,10 @@ await remoteCall.callRemoteTestUtil( 'selectFolderInTree', appId, [folderName]); + // Wait the folder to load. + await remoteCall.waitUntilCurrentDirectoryIsChanged( + appId, '/My Drive/' + folderName); + // Right-click inside the file list. chrome.test.assertTrue(!!await remoteCall.callRemoteTestUtil( 'fakeMouseRightClick', appId, ['#file-list']));
diff --git a/ui/file_manager/integration_tests/file_manager/drive_specific.js b/ui/file_manager/integration_tests/file_manager/drive_specific.js index 7d345aa..394baba 100644 --- a/ui/file_manager/integration_tests/file_manager/drive_specific.js +++ b/ui/file_manager/integration_tests/file_manager/drive_specific.js
@@ -177,14 +177,22 @@ chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( 'fakeMouseRightClick', appId, ['.table-row[selected]'])); + // Wait menu to appear and click on toggle pinned. await remoteCall.waitForElement(appId, '#file-context-menu:not([hidden])'); - await remoteCall.waitForElement(appId, ['[command="#toggle-pinned"]']); - await remoteCall.callRemoteTestUtil( - 'fakeMouseClick', appId, ['[command="#toggle-pinned"]']); + await remoteCall.waitAndClickElement( + appId, '[command="#toggle-pinned"]:not([hidden]):not([disabled])'); + + // Wait the toggle pinned async action to finish, so the next call to display + // context menu is after the action has finished. await remoteCall.waitForElement(appId, '#file-context-menu[hidden]'); + // TODO(crbug.com/953616): Change wait for a deterministic option. + await wait(100); + + // Open context menu again. chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( 'fakeEvent', appId, ['#file-list', 'contextmenu'])); + // Check: File is pinned. await remoteCall.waitForElement(appId, '[command="#toggle-pinned"][checked]'); await repeatUntil(async () => { const idSet = @@ -242,14 +250,22 @@ chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( 'fakeMouseRightClick', appId, ['.table-row[selected]'])); + // Wait menu to appear and click on toggle pinned. await remoteCall.waitForElement(appId, '#file-context-menu:not([hidden])'); - await remoteCall.waitForElement(appId, ['[command="#toggle-pinned"]']); - await remoteCall.callRemoteTestUtil( - 'fakeMouseClick', appId, ['[command="#toggle-pinned"]']); + await remoteCall.waitAndClickElement( + appId, '[command="#toggle-pinned"]:not([hidden]):not([disabled])'); + + // Wait the toggle pinned async action to finish, so the next call to display + // context menu is after the action has finished. await remoteCall.waitForElement(appId, '#file-context-menu[hidden]'); + // TODO(crbug.com/953616): Change wait for a deterministic option. + await wait(100); + + // Open context menu again. chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( 'fakeEvent', appId, ['#file-list', 'contextmenu'])); + // Check: File is pinned. await remoteCall.waitForElement(appId, '[command="#toggle-pinned"][checked]'); };
diff --git a/ui/file_manager/integration_tests/file_manager/gear_menu.js b/ui/file_manager/integration_tests/file_manager/gear_menu.js index a114875..c5b4fe1 100644 --- a/ui/file_manager/integration_tests/file_manager/gear_menu.js +++ b/ui/file_manager/integration_tests/file_manager/gear_menu.js
@@ -196,13 +196,11 @@ // Wait for the file list to appear. await remoteCall.waitForElement(appId, '#file-list'); - - // Wait for the gear menu button to appear. - await remoteCall.waitForElement(appId, '#gear-button:not([hidden])'); + await remoteCall.waitForFiles( + appId, TestEntryInfo.getExpectedRows(BASIC_ANDROID_ENTRY_SET)); // Click the gear menu button. - chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( - 'fakeMouseClick', appId, ['#gear-button'])); + await remoteCall.waitAndClickElement(appId, '#gear-button:not([hidden])'); // Wait for the gear menu to appear. await remoteCall.waitForElement(appId, '#gear-menu:not([hidden])'); @@ -266,13 +264,11 @@ // Wait for the file list to appear. await remoteCall.waitForElement(appId, '#file-list'); + await remoteCall.waitForFiles( + appId, TestEntryInfo.getExpectedRows(BASIC_ANDROID_ENTRY_SET)); // Wait for the gear menu button to appear. - await remoteCall.waitForElement(appId, '#gear-button:not([hidden])'); - - // Open the gear menu by clicking the gear button. - chrome.test.assertTrue(await remoteCall.callRemoteTestUtil( - 'fakeMouseClick', appId, ['#gear-button'])); + await remoteCall.waitAndClickElement(appId, '#gear-button:not([hidden])'); // Wait for menu to not be hidden. await remoteCall.waitForElement(appId, '#gear-menu:not([hidden])');
diff --git a/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js b/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js index 14f36e2..d9720f5b 100644 --- a/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js +++ b/ui/file_manager/integration_tests/file_manager/share_and_manage_dialog.js
@@ -107,16 +107,9 @@ chrome.test.assertTrue(!!await remoteCall.waitForElement( appId, '#file-context-menu:not([hidden])')); - // Wait for the "Manage in Drive" menu item to appear. - chrome.test.assertTrue(!!await remoteCall.waitForElement( - appId, '[command="#manage-in-drive"]:not([hidden]):not([disabled])')); - // Click the "Manage in Drive" menu item. - chrome.test.assertTrue( - !!await remoteCall.callRemoteTestUtil( - 'fakeMouseClick', appId, - ['[command="#manage-in-drive"]:not([hidden]):not([disabled])']), - 'fakeMouseClick failed'); + await remoteCall.waitAndClickElement( + appId, '[command="#manage-in-drive"]:not([hidden]):not([disabled])'); // Wait for the context menu to disappear. chrome.test.assertTrue(
diff --git a/ui/file_manager/integration_tests/file_manager/tasks.js b/ui/file_manager/integration_tests/file_manager/tasks.js index 4df0b6e7..48456fb 100644 --- a/ui/file_manager/integration_tests/file_manager/tasks.js +++ b/ui/file_manager/integration_tests/file_manager/tasks.js
@@ -46,6 +46,16 @@ ]; /** + * Fake tasks for a PDF file opening in browser. + * + * @type {Array<FakeTask>} + * @const + */ +const DOWNLOADS_FAKE_PDF = [ + new FakeTask(true, FILE_MANAGER_EXTENSIONS_ID + '|file|view-as-pdf'), +]; + +/** * Fake tasks for a drive volume. * * @type {Array<FakeTask>} @@ -184,6 +194,12 @@ appId, FILE_MANAGER_EXTENSIONS_ID + '|file|view-in-browser'); }; +testcase.defaultTaskForPdf = async () => { + const appId = await setupTaskTest(RootPath.DOWNLOADS, DOWNLOADS_FAKE_PDF); + await executeDefaultTask( + appId, FILE_MANAGER_EXTENSIONS_ID + '|file|view-as-pdf'); +}; + testcase.defaultTaskDialogDrive = async () => { const appId = await setupTaskTest(RootPath.DRIVE, DRIVE_FAKE_TASKS); await defaultTaskDialog(appId, 'dummytaskid-2|drive|open-with');
diff --git a/ui/gfx/BUILD.gn b/ui/gfx/BUILD.gn index 8b8ef45..076aea2 100644 --- a/ui/gfx/BUILD.gn +++ b/ui/gfx/BUILD.gn
@@ -495,6 +495,8 @@ sources = [ "buffer_format_util.cc", "buffer_format_util.h", + "buffer_usage_util.cc", + "buffer_usage_util.h", "ca_layer_params.cc", "ca_layer_params.h", "client_native_pixmap.h",
diff --git a/ui/gfx/OWNERS b/ui/gfx/OWNERS index a9f98f4..077be260c 100644 --- a/ui/gfx/OWNERS +++ b/ui/gfx/OWNERS
@@ -41,6 +41,7 @@ per-file buffer_format*=dcastagna@chromium.org per-file buffer_format*=rjkroege@chromium.org per-file buffer_format*=spang@chromium.org +per-file buffer_usage*=rjkroege@chromium.org per-file *buffer_types.*=reveman@chromium.org per-file *buffer_types.*=dcastagna@chromium.org per-file *buffer_types.*=rjkroege@chromium.org
diff --git a/ui/gfx/buffer_usage_util.cc b/ui/gfx/buffer_usage_util.cc new file mode 100644 index 0000000..78401d53 --- /dev/null +++ b/ui/gfx/buffer_usage_util.cc
@@ -0,0 +1,31 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "ui/gfx/buffer_usage_util.h" + +namespace gfx { + +const char* BufferUsageToString(BufferUsage usage) { + switch (usage) { + case BufferUsage::GPU_READ: + return "GPU_READ"; + case BufferUsage::SCANOUT: + return "SCANOUT"; + case BufferUsage::SCANOUT_CAMERA_READ_WRITE: + return "SCANOUT_CAMERA_READ_WRITE"; + case BufferUsage::CAMERA_AND_CPU_READ_WRITE: + return "CAMERA_AND_CPU_READ_WRITE"; + case BufferUsage::SCANOUT_CPU_READ_WRITE: + return "SCANOUT_CPU_READ_WRITE"; + case BufferUsage::SCANOUT_VDA_WRITE: + return "SCANOUT_VDA_WRITE"; + case BufferUsage::GPU_READ_CPU_READ_WRITE: + return "GPU_READ_CPU_READ_WRITE"; + case BufferUsage::GPU_READ_CPU_READ_WRITE_PERSISTENT: + return "GPU_READ_CPU_READ_WRITE_PERSISTENT"; + } + return "Invalid Usage"; +} + +} // namespace gfx
diff --git a/ui/gfx/buffer_usage_util.h b/ui/gfx/buffer_usage_util.h new file mode 100644 index 0000000..cf3c41b --- /dev/null +++ b/ui/gfx/buffer_usage_util.h
@@ -0,0 +1,18 @@ +// Copyright 2019 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_GFX_BUFFER_USAGE_UTIL_H_ +#define UI_GFX_BUFFER_USAGE_UTIL_H_ + +#include "ui/gfx/buffer_types.h" +#include "ui/gfx/gfx_export.h" + +namespace gfx { + +// Returns the name of |usage| as a string. +GFX_EXPORT const char* BufferUsageToString(BufferUsage usage); + +} // namespace gfx + +#endif // UI_GFX_BUFFER_USAGE_UTIL_H_